:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--radius: 6px;--radius-lg: 10px;--content-width: 46rem;--wide-width: 72rem}:root[data-theme=light]{color-scheme:light;--bg: #ffffff;--bg-subtle: #f6f7f8;--bg-inset: #eef0f2;--surface: #ffffff;--border: #dde1e5;--border-strong: #c4cad0;--text: #1c1e21;--text-secondary: #5a6169;--text-faint: #8a9199;--accent: #0b5cad;--accent-hover: #094e92;--accent-contrast: #ffffff;--danger: #b3261e;--success: #146c2e;--warning-bg: #fdf3e3;--danger-bg: #fdecea;--focus-ring: #0b5cad}:root[data-theme=dark]{color-scheme:dark;--bg: #15181c;--bg-subtle: #1b1f24;--bg-inset: #22272e;--surface: #1e2329;--border: #333a42;--border-strong: #454d56;--text: #e5e8ec;--text-secondary: #a8b0b9;--text-faint: #79828c;--accent: #5b9fe6;--accent-hover: #79b2ec;--accent-contrast: #10151b;--danger: #e06c64;--success: #5fbf7a;--warning-bg: #3a2f1d;--danger-bg: #3c2320;--focus-ring: #5b9fe6}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--accent-contrast);padding:var(--space-2) var(--space-4);z-index:100}.skip-link:focus{left:0}button{font:inherit;cursor:pointer}.btn{display:inline-flex;align-items:center;gap:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:.4rem .9rem;font-size:.92rem}.btn:hover{background:var(--bg-subtle)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn:disabled{opacity:.55;cursor:not-allowed}input[type=text],input[type=password],input[type=search],input[type=number],input[type=datetime-local],select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:.45rem .6rem;width:100%}label.field{display:block;margin-bottom:var(--space-4)}label.field>span{display:block;font-size:.88rem;color:var(--text-secondary);margin-bottom:var(--space-1)}.field-error{color:var(--danger);font-size:.85rem;margin-top:var(--space-1)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5)}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th,.table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border)}.table th{color:var(--text-secondary);font-weight:600;white-space:nowrap}.badge{display:inline-block;padding:.05rem .5rem;border-radius:999px;font-size:.78rem;border:1px solid var(--border-strong);color:var(--text-secondary);white-space:nowrap}.badge-published{color:var(--success);border-color:var(--success)}.badge-draft{color:var(--text-faint)}.badge-archived{color:var(--warning, #9a6a00);border-color:var(--warning, #9a6a00)}.badge-scheduled{color:var(--accent);border-color:var(--accent)}.muted{color:var(--text-secondary)}.faint{color:var(--text-faint)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-status{padding:var(--space-6);text-align:center;color:var(--text-secondary)}.error-box{background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.warning-box{background:var(--warning-bg);border:1px solid var(--border-strong);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.site-header{border-bottom:1px solid var(--border);background:var(--surface)}.site-header-inner{max-width:var(--wide-width);margin:0 auto;padding:0 var(--space-4);display:flex;align-items:center;gap:var(--space-4);height:3.5rem}.site-title{font-weight:700;font-size:1.1rem;color:var(--text)}.site-title:hover{text-decoration:none}.site-search{position:relative;width:12rem;margin-left:var(--space-4)}.site-search .field-error{position:absolute;z-index:10;top:calc(100% + .25rem);left:0;width:max-content;max-width:20rem;padding:var(--space-1) var(--space-2);border:1px solid var(--danger);border-radius:var(--radius);background:var(--surface)}.site-nav{display:flex;gap:var(--space-4);align-items:center;margin-left:auto;font-size:.95rem}.site-nav a{color:var(--text-secondary)}.site-nav a[aria-current=page]{color:var(--accent)}.container{max-width:var(--content-width);margin:0 auto;padding:var(--space-6) var(--space-4)}.container-wide{max-width:var(--wide-width)}.admin-shell{display:grid;grid-template-columns:14rem 1fr;min-height:calc(100vh - 3.5rem)}.admin-sidebar{border-right:1px solid var(--border);background:var(--bg-subtle);padding:var(--space-4) 0}.admin-sidebar a{display:block;padding:var(--space-2) var(--space-5);color:var(--text-secondary);border-left:3px solid transparent}.admin-sidebar a:hover{background:var(--bg-inset);text-decoration:none}.admin-sidebar a[aria-current=page]{color:var(--accent);border-left-color:var(--accent);background:var(--bg-inset)}.admin-sidebar .sidebar-section{padding:var(--space-3) var(--space-5) var(--space-1);font-size:.78rem;color:var(--text-faint);text-transform:uppercase}.admin-main{padding:var(--space-6);min-width:0}@media(max-width:56rem){.admin-shell{grid-template-columns:1fr}.admin-sidebar{border-right:none;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:var(--space-1);padding:var(--space-2)}.admin-sidebar a{border-left:none;border-radius:var(--radius);padding:var(--space-2) var(--space-3)}.admin-sidebar .sidebar-section{width:100%;padding:var(--space-2) var(--space-3) 0}}.post-card{border-bottom:1px solid var(--border);padding:var(--space-5) 0}.post-card h2{margin:0 0 var(--space-2);font-size:1.35rem}.post-meta{font-size:.85rem;color:var(--text-faint);display:flex;gap:var(--space-3);flex-wrap:wrap}.prose{line-height:1.8;word-wrap:break-word}.prose img{max-width:100%;height:auto}.prose pre{background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);overflow-x:auto;position:relative}.prose code{font-family:var(--font-mono);font-size:.88em}.prose :not(pre)>code{background:var(--bg-inset);border-radius:4px;padding:.1em .35em}.prose blockquote{margin:0;padding-left:var(--space-4);border-left:3px solid var(--border-strong);color:var(--text-secondary)}.prose table{border-collapse:collapse;width:100%}.prose th,.prose td{border:1px solid var(--border);padding:var(--space-2) var(--space-3)}.copy-code-btn{position:absolute;top:var(--space-2);right:var(--space-2);font-size:.78rem;padding:.15rem .5rem;opacity:.85}.editor-toolbar{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-3)}.editor-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);align-items:start}.editor-split.mode-source{grid-template-columns:1fr}.editor-split.mode-source .editor-preview-pane{display:none}.editor-split.mode-preview{grid-template-columns:1fr}.editor-split.mode-preview .editor-source-pane{display:none}.editor-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--bg);overflow:auto;padding:var(--space-4)}.editor-preview-pane,.editor-source-pane{min-width:0}.editor-preview-pane .prose{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);min-height:24rem;background:var(--surface)}.cm-editor{border:1px solid var(--border-strong);border-radius:var(--radius);min-height:24rem;font-size:.92rem}.cm-editor.cm-focused{outline:2px solid var(--focus-ring);outline-offset:-1px}.drop-zone-active{outline:2px dashed var(--accent);outline-offset:-4px}.upload-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);margin-top:var(--space-2);font-size:.88rem}.upload-progress{flex:1;height:6px;background:var(--bg-inset);border-radius:3px;overflow:hidden}.upload-progress>div{height:100%;background:var(--accent);transition:width .15s}.import-progress{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.asset-section{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border)}.asset-section h2{margin:0;font-size:1.05rem}.asset-list{display:grid;gap:var(--space-2);padding:0;margin:var(--space-3) 0 0;list-style:none}.asset-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.asset-main{display:grid;flex:1;min-width:0;gap:.2rem}.asset-main strong,.asset-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination{display:flex;justify-content:center;gap:var(--space-3);padding:var(--space-5) 0}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;padding:0;margin:0}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:80}.dialog{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-5);width:min(32rem,calc(100vw - 2rem));max-height:calc(100vh - 4rem);overflow:auto}.dialog h2{margin-top:0}.form-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-4)}.toolbar-row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-4)}.toolbar-row .spacer{flex:1}.toolbar-row select,.toolbar-row input[type=search]{width:auto}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.stat-card .stat-value{font-size:1.8rem;font-weight:700}.stat-card .stat-label{color:var(--text-secondary);font-size:.88rem}
