:root{--bg:#f8f9fb;--fg:#111827;--muted:#5a6374;--line:#e2e8f0;--card:#fff;--accent:#6d28d9;--accent-soft:rgba(109,40,217,.1);--shadow:0 12px 28px rgba(15,23,42,.08);--radius:14px}:root[data-theme=dark]{--bg:#0b111d;--fg:#e5e7eb;--muted:#9aa5b8;--line:#263244;--card:#121a2a;--accent:#b794f4;--accent-soft:rgba(183,148,244,.14);--shadow:0 12px 30px rgba(2,8,23,.45)}*{box-sizing:border-box}html{min-width:320px}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;margin:0;font-family:Avenir Next,Inter,PingFang SC,Microsoft YaHei,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.65}h1,h2,h3,h4{margin:0 0 12px;line-height:1.25}p{margin:0 0 12px}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}.app-shell{max-width:1060px;margin:0 auto;padding:16px 20px 48px}.topbar{border-radius:calc(var(--radius) - 2px);border:1px solid var(--line);background:color-mix(in srgb, var(--card) 94%, transparent);box-shadow:var(--shadow);z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px 16px;margin:10px 0 24px;padding:10px 12px 10px 14px;display:grid;position:-webkit-sticky;position:sticky;top:8px}.brand{letter-spacing:.01em;font-size:1.04rem;font-weight:700}.brand-dot{color:var(--accent)}.main-nav{scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;justify-content:center;align-items:center;gap:4px;padding:2px 0;display:flex;overflow-x:auto}.main-nav::-webkit-scrollbar{display:none}.main-nav a{color:var(--muted);white-space:nowrap;border-radius:12px;padding:6px 10px;font-size:.92rem;transition:color .16s,background .16s}.main-nav a:hover{background:color-mix(in srgb, var(--accent-soft) 60%, transparent)}.main-nav a.is-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.content{padding:8px 0 56px}.headline{letter-spacing:-.02em;margin:8px 0 14px;font-size:max(34px,min(6vw,58px));line-height:1.05}.subline{color:var(--muted);max-width:65ch;margin:0}.hero-block{border-radius:var(--radius);border:1px solid var(--line);background:radial-gradient(circle at 10% 0%, var(--accent-soft), transparent 55%), var(--card);box-shadow:var(--shadow);margin:14px 0 26px;padding:20px}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:12px;margin:0 0 8px;padding:4px 10px;font-size:.75rem;display:inline-block}.channel-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.channel-card h3,.post-item h3,.post-item h4{letter-spacing:-.01em;margin:0 0 10px}.channel-card,.post-item,.admin-form,.article{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);padding:16px 18px}.channel-card{transition:transform .18s,box-shadow .18s,border-color .18s}.channel-card:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--line));transform:translateY(-2px)}.post-list{gap:14px;margin-top:12px;display:grid}.excerpt{color:var(--muted)}.section-title{margin-top:28px}.page-subtitle,.muted-text{color:var(--muted)}.empty-tip{color:var(--muted);font-style:italic}.actions{flex-wrap:wrap;gap:8px;display:flex}.topbar-menu{justify-self:end;align-items:center;display:flex;position:relative}.topbar-menu-desktop{align-items:center;gap:10px;display:flex}.topbar-menu-mobile{display:none;position:relative}.topbar-loading{justify-content:center;min-width:1.5rem;display:inline-flex}.icon-btn{border:1px solid var(--line);background:color-mix(in srgb, var(--card) 92%, transparent);width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:10px;align-items:center;justify-items:center;padding:0;transition:color .16s,border-color .16s,background .16s;display:inline-grid}.icon-btn:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, var(--line));background:var(--accent-soft)}.icon-btn svg{width:18px;height:18px}.topbar-dropdown{border:1px solid var(--line);border-radius:calc(var(--radius) - 2px);background:var(--card);min-width:min(320px,100vw - 28px);max-height:min(78vh,640px);box-shadow:var(--shadow);padding:12px;animation:.18s dropdown-in;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.topbar-dropdown-row{justify-content:space-between;align-items:center;gap:12px;padding:6px 4px;display:flex}.topbar-dropdown-row-auth{flex-direction:column;align-items:stretch}.topbar-dropdown-label{color:var(--muted);font-size:.88rem}.topbar-dropdown-divider{background:var(--line);height:1px;margin:10px 0}.mobile-nav-panel{padding:2px 0}.mobile-nav-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;padding:0 4px;font-size:.72rem}.mobile-nav-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.mobile-nav-link{color:inherit;border:1px solid transparent;border-radius:10px;flex-direction:column;gap:3px;padding:10px 11px;transition:background .16s,border-color .16s,transform .12s;display:flex}.mobile-nav-link:hover{background:color-mix(in srgb, var(--accent-soft) 70%, transparent);transform:translateY(-1px)}.mobile-nav-link.is-active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 28%, var(--line))}.mobile-nav-label{color:var(--fg);font-size:.92rem;font-weight:600}.mobile-nav-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.72rem;line-height:1.35;display:-webkit-box;overflow:hidden}.mobile-nav-extra{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.mobile-nav-chip{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:.86rem;transition:background .16s,color .16s,border-color .16s}.mobile-nav-chip:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, var(--line));background:var(--accent-soft)}.mobile-nav-chip.is-active{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, var(--line));background:var(--accent-soft);font-weight:600}.theme-toggle{cursor:pointer;background:0 0;border:none;padding:0;line-height:0}.theme-toggle-track{border:1px solid var(--line);background:color-mix(in srgb, var(--card) 88%, var(--bg));border-radius:999px;grid-template-columns:1fr 1fr;align-items:center;width:56px;height:30px;padding:3px;display:grid;position:relative}.theme-toggle-icon{z-index:1;justify-self:center;width:14px;height:14px;transition:opacity .22s}.theme-toggle-icon-sun{color:#d97706;opacity:.45}.theme-toggle-icon-moon{color:var(--accent);opacity:.45}.theme-toggle[data-dark=true] .theme-toggle-icon-sun,.theme-toggle[data-dark=false] .theme-toggle-icon-moon{opacity:.35}.theme-toggle[data-dark=true] .theme-toggle-icon-moon,.theme-toggle[data-dark=false] .theme-toggle-icon-sun{opacity:.85}.theme-toggle-thumb{background:var(--card);border-radius:50%;align-items:center;justify-items:center;width:24px;height:24px;transition:transform .28s cubic-bezier(.4,0,.2,1);display:grid;position:absolute;top:3px;left:3px;box-shadow:0 2px 8px rgba(15,23,42,.14)}.theme-toggle[data-dark=true] .theme-toggle-thumb{transform:translate(26px)}.theme-toggle-thumb-icon{width:14px;height:14px}.theme-toggle[data-dark=true] .theme-toggle-thumb-icon{color:var(--accent)}.theme-toggle[data-dark=false] .theme-toggle-thumb-icon{color:#d97706;stroke-width:2.2px}.auth-user{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:.88rem;overflow:hidden}.auth-profile{align-items:center;gap:8px;display:flex}.auth-profile-compact{flex-direction:column;align-items:stretch;gap:10px;width:100%}.auth-profile-compact .auth-user{text-align:center;max-width:none}.auth-profile-compact .btn-compact{width:100%}.auth-avatar{border:1px solid var(--line);object-fit:cover;background:var(--card);border-radius:50%;flex-shrink:0;width:32px;height:32px}.github-login-btn{border:1px solid color-mix(in srgb, var(--fg) 12%, var(--line));background:color-mix(in srgb, var(--fg) 94%, transparent);color:var(--bg);font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:8px 14px 8px 12px;font-size:.875rem;font-weight:600;line-height:1;transition:transform .12s,box-shadow .16s,opacity .16s;display:inline-flex}.github-login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,23,42,.14)}.github-login-btn:disabled{opacity:.65;cursor:not-allowed}.github-login-btn-compact{width:100%;padding:9px 12px;font-size:.84rem}.github-login-icon{flex-shrink:0;width:16px;height:16px}.btn-compact{padding:6px 10px;font-size:.88rem}.oauth-callback-page{background:var(--bg);align-items:center;justify-items:center;min-height:100vh;padding:24px;display:grid}.oauth-callback-card{border-radius:var(--radius);border:1px solid var(--line);background:var(--card);width:min(480px,100%);box-shadow:var(--shadow);text-align:center;padding:28px 24px}.btn{background:var(--accent);color:#fff;cursor:pointer;border:1px solid transparent;border-radius:10px;padding:8px 14px;font-weight:600;transition:transform .12s,opacity .12s}.btn:hover{transform:translateY(-1px)}.btn-secondary{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 20%, var(--line))}label{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}input,select,textarea{border:1px solid var(--line);background:color-mix(in srgb, var(--card) 92%, transparent);color:var(--fg);border-radius:10px;padding:8px 10px}input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb, var(--accent) 70%, var(--line));box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent);outline:none}textarea{resize:vertical;min-height:120px}.admin-layout{grid-template-columns:minmax(320px,1fr) minmax(300px,1fr);gap:16px;display:grid}.filters{grid-template-columns:1fr 170px;gap:8px;margin-bottom:12px;display:grid}.status-badge{border:1px solid var(--line);border-radius:12px;margin-left:8px;padding:2px 8px;font-size:.7rem;display:inline-block}.status-draft{color:#9f5f00;background:rgba(245,158,11,.12)}.status-published{color:#0f7b41;background:rgba(22,163,74,.12)}.status-archived{color:var(--muted);background:rgba(148,163,184,.12)}.notice{border:1px solid var(--line);border-radius:10px;margin:8px 0 12px;padding:10px 12px}.notice-success{color:#136f3f;background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.35)}.notice-error{color:#a61b1b;background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.35)}.panel-list{gap:12px;margin-top:12px;display:grid}.article{max-width:76ch}.markdown-content h1,.markdown-content h2,.markdown-content h3{margin-top:1.3em;margin-bottom:.45em;line-height:1.25}.markdown-content p,.markdown-content li{line-height:1.78}.markdown-content code{background:color-mix(in srgb, var(--accent-soft) 50%, transparent);border-radius:6px;padding:2px 6px;font-size:.9em}.markdown-content pre{border:1px solid var(--line);background:color-mix(in srgb, var(--card) 80%, transparent);border-radius:12px;padding:14px;overflow-x:auto}.auth-card{max-width:620px}@media (max-width:1024px){.topbar{position:static}}@media (max-width:920px){.admin-layout{grid-template-columns:1fr}}@media (max-width:768px){.topbar{grid-template-columns:1fr auto;gap:10px;padding:8px 10px 8px 12px}.main-nav-desktop,.topbar-menu-desktop{display:none}.topbar-menu-mobile{display:block}}@media (max-width:620px){.app-shell{padding:12px 14px 40px}.brand{font-size:.98rem}.filters{grid-template-columns:1fr}}