*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f8f7f4;--surface: #ffffff;--border: #e8e6e1;--border-strong: #d0cdc6;--text: #1c1917;--text-2: #57534e;--text-3: #a8a29e;--accent: #1c1917;--blue: #2563eb;--blue-hover: #1d4ed8;--blue-faint: #eff6ff;--blue-ring: #bfdbfe;--green-bg: #f0fdf4;--green-text: #15803d;--amber-bg: #fffbeb;--amber-text: #b45309;--red: #dc2626;--red-bg: #fef2f2;--red-border: #fca5a5;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 8px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.04);--r-sm: 6px;--r: 10px;--r-lg: 14px}body{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.75;-webkit-font-smoothing:antialiased}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:740px;margin:0 auto;padding:3rem 1.5rem}.navbar{background:#ffffffe0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.navbar-inner{max-width:1100px;margin:0 auto;padding:0 1.5rem;height:62px;display:flex;align-items:center;justify-content:space-between}.nav-brand{font-size:1.1rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.nav-brand:hover{text-decoration:none;color:var(--text)}.nav-links{display:flex;align-items:center;gap:1.5rem;font-size:.875rem}.nav-user,.nav-links a{color:var(--text-2);font-weight:500}.nav-links a:hover{color:var(--text);text-decoration:none}.btn-link{background:none;border:none;cursor:pointer;color:var(--text-2);font-size:.875rem;font-weight:500;padding:0;font-family:inherit}.btn-link:hover{color:var(--text)}h1{font-size:1.875rem;font-weight:800;letter-spacing:-.03em;line-height:1.2;margin-bottom:1.75rem}h2{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;line-height:1.3;margin-bottom:1rem}.post-list{display:flex;flex-direction:column;gap:0}.post-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.75rem 2rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.post-meta{font-size:.8rem;color:var(--text-3);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.post-excerpt{color:var(--text-2);font-size:.95rem;line-height:1.65;margin-bottom:1rem}.empty{color:var(--text-3);text-align:center;padding:4rem 0;font-size:.95rem}.feed{display:flex;flex-direction:column}.feed-item{padding:2.5rem 0;border-bottom:1px solid var(--border)}.feed-date{display:block;font-size:.78rem;font-weight:500;color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.6rem}.feed-title{font-size:2.25rem;font-weight:800;letter-spacing:-.03em;line-height:1.25;margin-bottom:.75rem}.feed-title a{color:var(--text)}.feed-title a:hover{color:var(--blue);text-decoration:none}.feed-excerpt{color:var(--text-2);font-size:.975rem;line-height:1.7;margin-bottom:0}.feed-more{font-size:.825rem;font-weight:600;color:var(--text-3);letter-spacing:.02em}.feed-more:hover{color:var(--text);text-decoration:none}.back-link{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem;font-weight:500;color:var(--text-2);margin-bottom:2.5rem;padding:.4rem .75rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);box-shadow:var(--shadow-xs)}.back-link:hover{text-decoration:none;color:var(--text);background:var(--bg)}.post-detail header{margin-bottom:2.5rem;padding-bottom:1.75rem;border-bottom:1px solid var(--border)}.post-detail h1{font-size:2.25rem;letter-spacing:-.04em;margin-bottom:.75rem}.badge-draft{display:inline-block;padding:.15rem .6rem;background:var(--amber-bg);color:var(--amber-text);border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;vertical-align:middle;margin-left:.5rem}.auth-wrap{min-height:calc(100vh - 62px);display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:2.5rem;width:100%;max-width:420px;box-shadow:var(--shadow-md)}.form-card h1{font-size:1.5rem;margin-bottom:.4rem}.form-card h2{margin-bottom:1.25rem}form{display:flex;flex-direction:column;gap:1.1rem}label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--text-2);letter-spacing:.01em}input,textarea,select{padding:.6rem .9rem;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:.95rem;font-family:inherit;color:var(--text);background:var(--surface);transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring)}button[type=submit]{margin-top:.25rem;padding:.65rem 1.5rem;background:var(--text);color:#fff;border:none;border-radius:var(--r-sm);font-size:.95rem;font-weight:600;cursor:pointer;letter-spacing:.01em;transition:background .15s,transform .1s}button[type=submit]:hover{background:#3f3f46}button[type=submit]:active{transform:scale(.99)}button[type=submit]:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{padding:.55rem 1.1rem;background:var(--surface);color:var(--text-2);border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:.875rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s,color .15s}.btn-secondary:hover{background:var(--bg);color:var(--text)}.btn-danger{padding:.55rem 1.1rem;background:var(--surface);color:var(--red);border:1px solid var(--red-border);border-radius:var(--r-sm);font-size:.875rem;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s}.btn-danger:hover{background:var(--red-bg)}.form-actions{display:flex;gap:.6rem;align-items:center}.form-error{color:var(--red);font-size:.875rem;padding:.6rem .9rem;background:var(--red-bg);border:1px solid var(--red-border);border-radius:var(--r-sm)}.form-note{color:var(--text-3);font-size:.82rem;margin-bottom:1.25rem;line-height:1.5}.dashboard{max-width:860px;margin:0 auto;padding:2.5rem 1.5rem}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}@media (max-width: 700px){.dashboard-grid{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.75rem;box-shadow:var(--shadow-sm)}.panel h2{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.post-card--manage{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.post-card--manage h3{font-size:.92rem;font-weight:600;line-height:1.4;margin-bottom:.3rem;color:var(--text)}.post-actions{display:flex;gap:.4rem;flex-shrink:0;margin-top:.1rem}.badge{display:inline-flex;align-items:center;padding:.1rem .55rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.badge--published{background:var(--green-bg);color:var(--green-text)}.badge--draft{background:var(--amber-bg);color:var(--amber-text)}.editor-label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--text-2)}.btn-upload{align-self:flex-start;padding:.3rem .7rem;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:.8rem;font-weight:500;cursor:pointer;font-family:inherit;color:var(--text-2);transition:background .15s}.btn-upload:hover{background:var(--border)}.btn-upload:disabled{opacity:.5;cursor:not-allowed}.markdown{line-height:1.85;color:var(--text)}.markdown h1,.markdown h2,.markdown h3{margin:2rem 0 .75rem;font-weight:800;letter-spacing:-.02em;line-height:1.25}.markdown h1{font-size:1.75rem}.markdown h2{font-size:1.4rem}.markdown h3{font-size:1.15rem}.markdown p{margin-bottom:1.25rem}.markdown ul,.markdown ol{padding-left:1.5rem;margin-bottom:1.25rem}.markdown li{margin-bottom:.35rem}.markdown blockquote{border-left:3px solid var(--border-strong);padding:.25rem 1.25rem;color:var(--text-2);margin:1.5rem 0;font-style:italic}.markdown code{background:#f1f0ed;padding:.15em .45em;border-radius:4px;font-size:.875em;font-family:Fira Code,Cascadia Code,JetBrains Mono,monospace;color:#c2410c}.markdown pre{background:#1c1917;color:#e7e5e4;padding:1.25rem 1.5rem;border-radius:var(--r);overflow-x:auto;margin:1.5rem 0;box-shadow:var(--shadow-sm)}.markdown pre code{background:none;padding:0;color:inherit;font-size:.875rem}.markdown img{max-width:100%;border-radius:var(--r);margin:1.5rem 0;box-shadow:var(--shadow-sm)}.markdown table{border-collapse:collapse;width:100%;margin-bottom:1.5rem;font-size:.95rem}.markdown th,.markdown td{border:1px solid var(--border);padding:.6rem 1rem}.markdown th{background:var(--bg);font-weight:700}.markdown a{color:var(--blue)}.markdown hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.loading{display:flex;align-items:center;justify-content:center;padding:5rem;color:var(--text-3);font-size:.9rem}.error{text-align:center;padding:4rem;color:var(--red);font-size:.9rem}
