*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f6f8fa;--fg:#1f2328;--border:#d0d7de;--accent:#0969da;--danger:#d1242f;--ok-bg:#dafbe1;--err-bg:#ffebe9}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--fg);line-height:1.6}a{color:var(--accent);text-decoration:none}code{background:#eff1f3;padding:0.1em 0.4em;border-radius:4px;font-size:0.9em}.topbar{background:#fff;border-bottom:1px solid var(--border)}.topbar-inner{max-width:1100px;margin:0 auto;padding:12px 20px;display:flex;justify-content:space-between;align-items:center}.topbar-actions{display:flex;gap:8px}.container{max-width:1100px;margin:24px auto;padding:0 20px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.page-head h1{font-size:22px}.btn{display:inline-block;padding:7px 14px;border-radius:6px;border:1px solid var(--border);background:#fff;color:var(--fg);font-size:14px;cursor:pointer;text-decoration:none}.btn:hover{background:#f3f4f6;text-decoration:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#0860c5}.btn-danger{color:var(--danger);border-color:#ffb3b3}.btn-danger:hover{background:var(--err-bg)}.btn-ghost{background:transparent}.btn-block{width:100%}.btn-mini{padding:3px 10px;font-size:13px}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#f0f6ff}.login-card{width:360px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:32px 28px;box-shadow:0 4px 16px rgba(0,0,0,0.06)}.login-card h1{font-size:22px;text-align:center}.login-card .sub{text-align:center;color:#57606a;margin:4px 0 20px;font-size:14px}.login-card label{display:block;font-size:14px;margin-bottom:14px}.login-card input{width:100%;margin-top:6px;padding:9px 12px;border:1px solid var(--border);border-radius:6px;font-size:15px}.login-card input:focus{outline:2px solid #b6d7ff;border-color:var(--accent)}.tip{font-size:12px;color:#57606a;margin-top:10px;text-align:center}.alert{padding:10px 14px;border-radius:6px;margin-bottom:16px;font-size:14px}.alert-ok{background:var(--ok-bg);border:1px solid #aceebb}.alert-error{background:var(--err-bg);border:1px solid #ffc9c7}.table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden}.table th,.table td{padding:10px 14px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}.table th{background:#f6f8fa;font-weight:600}.table tr:last-child td{border-bottom:none}.table tr.row-sep td{border-top:2px solid #d0d7de}.muted{color:#57606a}.th-actions,.td-actions{text-align:right}.td-actions{white-space:nowrap}.td-actions .btn{margin-left:6px}.inline-form{display:inline}.empty{background:#fff;border:1px dashed var(--border);border-radius:8px;padding:40px;text-align:center;color:#57606a}.hint{margin-top:18px;font-size:13px;color:#57606a}.editor-wrap .field-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px;flex-wrap:wrap}.field-file label{display:block;font-size:14px;font-weight:600}.field-file input{margin-top:4px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;width:320px;font-size:14px}.editor-actions{display:flex;gap:8px}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.editor-grid textarea{width:100%;min-height:420px;padding:14px;border:1px solid var(--border);border-radius:8px;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:13.5px;line-height:1.7;resize:vertical;background:#fff}.editor-grid textarea:focus{outline:2px solid #b6d7ff;border-color:var(--accent)}.preview-pane{background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px 18px;min-height:420px;max-height:640px;overflow-y:auto}.editor-grid.hide-preview{grid-template-columns:1fr}.editor-grid.hide-preview .preview-pane{display:none}.preview-pane h1,.preview-pane h2,.preview-pane h3{margin:1.2em 0 0.5em;border-bottom:1px solid var(--border);padding-bottom:0.2em}.preview-pane h1{font-size:1.6em}.preview-pane h2{font-size:1.35em}.preview-pane h3{font-size:1.15em}.preview-pane p{margin:0.6em 0}.preview-pane ul,.preview-pane ol{margin:0.6em 0;padding-left:1.6em}.preview-pane blockquote{margin:0.8em 0;padding:0.1em 1em;border-left:4px solid #d0d7de;color:#57606a;background:#f6f8fa}.preview-pane pre{background:#0d1117;color:#e6edf3;padding:12px 14px;border-radius:6px;overflow-x:auto;margin:0.8em 0}.preview-pane pre code{background:transparent;color:inherit;padding:0}.preview-pane code{background:#eff1f3;padding:0.1em 0.4em;border-radius:4px;font-size:0.9em}.preview-pane table{border-collapse:collapse;margin:0.8em 0}.preview-pane th,.preview-pane td{border:1px solid var(--border);padding:6px 10px}@media (max-width:768px){.editor-grid{grid-template-columns:1fr}.field-file input{width:100%}}.nav-tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:1px solid var(--border);padding-bottom:0}.nav-tabs a{padding:8px 16px;font-size:14px;color:var(--fg);border:1px solid transparent;border-bottom:none;border-radius:8px 8px 0 0}.nav-tabs a:hover{background:#fff;text-decoration:none}.nav-tabs a.active{background:#fff;border-color:var(--border);border-bottom:2px solid var(--accent);font-weight:600}.recent-bar{background:#fff;border:1px solid var(--border);border-radius:8px;padding:8px 14px;margin-bottom:16px;font-size:13px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.recent-label{color:#57606a;font-weight:600}.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:20px 24px;margin-bottom:18px}.card h2{font-size:16px;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--border)}.settings-form label{display:block;margin-bottom:14px;font-size:14px;font-weight:600}.settings-form input,.settings-form select{display:block;width:100%;max-width:460px;margin-top:6px;padding:9px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:#fff}.settings-form input:focus,.settings-form select:focus{outline:2px solid #b6d7ff;border-color:var(--accent)}.form-tip{font-size:13px;color:#57606a;margin-bottom:12px}.toolbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;background:#fff;border:1px solid var(--border);border-radius:8px 8px 0 0;padding:6px 8px;margin-bottom:-1px}.toolbar button,.toolbar .btn-file-label{padding:5px 10px;font-size:13px;cursor:pointer;background:#fff;border:1px solid var(--border);border-radius:6px;color:var(--fg)}.toolbar button:hover{background:#f3f4f6}.toolbar-sep{width:1px;height:20px;background:var(--border);margin:0 4px}.btn-file-label{font-weight:400}.upload-status{font-size:13px;color:#57606a;margin-left:6px}.upload-status.ok{color:#1a7f37}.upload-status.err{color:var(--danger)}.upload-status.uploading{color:var(--accent)}.field-file select{margin-top:4px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;width:320px;font-size:14px;background:#fff}@media (max-width:768px){.field-file select{width:100%}}.page-head-actions{display:flex;gap:8px;align-items:center}.dir-row{display:flex;gap:6px;align-items:center}.dir-row select{flex:1;min-width:0}.badge{display:inline-block;font-size:11px;line-height:1.5;padding:1px 8px;border-radius:999px;background:#ddf4ff;color:#0969da;text-transform:uppercase}.writer-form{max-width:900px}.writer-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.form-field{margin-bottom:14px}.form-field label{display:block;font-size:13px;font-weight:600;color:#444;margin-bottom:6px}.form-field input[type=text],.form-field textarea,.form-field select{width:100%;padding:8px 10px;border:1px solid #d0d7de;border-radius:6px;font-size:13px;box-sizing:border-box}.form-field input:focus,.form-field textarea:focus{border-color:var(--accent,#0969da);outline:none}.dir-row select{max-width:220px}.writer-actions{margin-bottom:8px}.writer-preview{line-height:1.7;font-size:14px}.writer-preview img{max-width:100%}@media (max-width:640px){.writer-grid{grid-template-columns:1fr}.dir-row{flex-direction:column;align-items:stretch}.dir-row select{max-width:none}}.writer-upload{margin:18px 0;padding:16px 18px;border:1px solid #d0d7de;border-radius:10px;background:#f6f8fa}.writer-upload h2,.writer-files h2{font-size:15px;margin:0 0 8px}.writer-sub{font-size:12px;color:#666;margin:0 0 12px}.upload-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.upload-form input[type=file]{flex:1;min-width:220px}.writer-files{margin:18px 0 26px}:root{--bg:#f3f5f9;--border:#e3e8ef;--accent-2:#4f46e5;--grad:linear-gradient(135deg,#0969da 0%,#4f46e5 100%);--radius:14px;--shadow-sm:0 1px 2px rgba(16,24,40,.05);--shadow-md:0 8px 24px rgba(16,24,40,.08)}body{background:var(--bg)}.topbar{background:var(--grad);border-bottom:none;box-shadow:0 2px 12px rgba(9,105,218,.22)}.topbar-inner{padding:14px 20px}.topbar-inner strong{color:#fff;font-weight:700;letter-spacing:.2px}.topbar-actions .btn{border-color:rgba(255,255,255,.38);color:#fff;background:rgba(255,255,255,.12)}.topbar-actions .btn:hover{background:rgba(255,255,255,.24)}.container{max-width:1060px;margin:28px auto;padding:0 20px}.page-head{margin-bottom:20px}.page-head h1{font-size:24px;letter-spacing:.2px}.page-sub{font-size:13px;color:#5b6472;margin-top:4px}.btn{border-radius:8px;transition:all .15s ease;box-shadow:var(--shadow-sm)}.btn-primary{background:var(--grad);border:none;box-shadow:0 4px 12px rgba(9,105,218,.28)}.btn-primary:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 6px 16px rgba(9,105,218,.34)}.btn-mini{padding:4px 12px;font-size:12.5px;border-radius:6px}.alert{border-radius:10px;box-shadow:var(--shadow-sm)}.alert-ok{background:var(--ok-bg);border:1px solid #c8e9d3;border-left:4px solid #2da44e}.alert-error{background:var(--err-bg);border:1px solid #f4c8c6;border-left:4px solid var(--danger)}.table{border-radius:12px;box-shadow:var(--shadow-sm)}.table th{background:#f8fafc;font-weight:600}.table tbody tr:nth-child(even){background:#fafbfc}.table tbody tr:hover{background:#f0f6ff}.login-page{background:linear-gradient(135deg,#e8f0fe 0%,#efe9fe 100%)}.login-card{border:none;border-radius:16px;box-shadow:0 16px 40px rgba(30,60,120,.16)}.login-logo{width:52px;height:52px;margin:0 auto 14px;border-radius:14px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;letter-spacing:.5px;box-shadow:0 8px 18px rgba(9,105,218,.32)}.form-field input[type=text],.form-field textarea,.form-field select,.field-file input{border-color:#d4dbe4;border-radius:8px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.form-field input:focus,.form-field textarea:focus,.form-field select:focus,.field-file input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(9,105,218,.14)}.empty{border-radius:12px;border-color:#d7dde5;background:#fff}.hint{color:#5b6472}.writer-upload,.writer-files,.writer-form{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px 22px}.writer-upload{margin:20px 0}.writer-files{margin:20px 0}.writer-form{margin-top:24px}.writer-upload h2,.writer-files h2{display:flex;align-items:center;gap:8px}.writer-upload h2::before,.writer-files h2::before{content:"";width:4px;height:16px;border-radius:2px;background:var(--grad)}.writer-sub{color:#5b6472}.upload-form input[type=file]{padding:8px 10px;border:1px dashed #c9d2dc;border-radius:8px;background:#f8fafc}