:root{--text:#52525b;--text-h:#18181b;--bg:#f7f7f8;--panel:#fff;--border:#e4e4e7;--code-bg:#f4f4f5;--accent:#7c3aed;--accent-hover:#6d28d9;--accent-bg:#7c3aed14;--danger:#dc2626;--danger-bg:#dc262614;--success:#16a34a;--success-bg:#16a34a1a;--shadow:#0000000f 0 1px 3px, #0000000a 0 1px 2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:15px/150% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#a1a1aa;--text-h:#f4f4f5;--bg:#0f0f12;--panel:#17171b;--border:#2a2a30;--code-bg:#1c1c21;--accent:#a78bfa;--accent-hover:#c4b5fd;--accent-bg:#a78bfa1f;--danger:#f87171;--danger-bg:#f871711f;--success:#4ade80;--success-bg:#4ade801f;--shadow:#0006 0 1px 3px}}*{box-sizing:border-box}body{margin:0}h1{color:var(--text-h);margin:0 0 4px;font-size:22px}h2{color:var(--text-h);margin:0 0 12px;font-size:16px}code{font-family:var(--mono);background:var(--code-bg);border-radius:4px;padding:2px 6px;font-size:13px}.shell{min-height:100vh;display:flex}.sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;padding:20px 16px;display:flex}.brand{color:var(--text-h);margin-bottom:24px;font-size:18px;font-weight:600}.sidebar nav{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar nav a{color:var(--text);border-radius:8px;padding:8px 10px;font-size:14px;text-decoration:none}.sidebar nav a.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:12px;display:flex}.content{flex:1;max-width:920px;padding:32px 40px}.auth-shell{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{flex-direction:column;gap:14px;width:320px;display:flex}.card{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;margin-bottom:20px;padding:20px}.muted{color:var(--text);opacity:.75}.small{font-size:12px}label{color:var(--text);flex-direction:column;flex:1;gap:4px;font-size:13px;display:flex}.checkbox-row{flex-direction:row;align-items:center;gap:8px;margin:10px 0}input[type=text],input[type=number],input[type=password],input:not([type]){border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;padding:8px 10px;font-size:14px}input:focus{outline:2px solid var(--accent);outline-offset:1px}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:500}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--code-bg);color:var(--text-h)}button.ghost{color:var(--text);border:1px solid var(--border);background:0 0}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.post-list{flex-direction:column;gap:8px;max-height:320px;margin:12px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.post-list li{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.article-list{margin:0;padding:0;list-style:none}.jobs-layout{grid-template-columns:280px 1fr;align-items:start;gap:16px;display:grid}.job-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.job-list li{background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:10px 12px}.job-list li.selected{border-color:var(--accent)}.log-panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;min-height:300px;padding:16px}.log{font-family:var(--mono);white-space:pre-wrap;max-height:60vh;margin:0;font-size:12.5px;overflow-y:auto}.badge{text-transform:uppercase;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.badge-queued{background:var(--code-bg);color:var(--text)}.badge-running{background:var(--accent-bg);color:var(--accent)}.badge-done{background:var(--success-bg);color:var(--success)}.badge-error{background:var(--danger-bg);color:var(--danger)}.comparison-card{padding:0;overflow:hidden}.comparison-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.comparison-header h2{margin-bottom:2px}.view-switcher{border:1px solid var(--border);background:var(--code-bg);border-radius:9px;padding:3px;display:inline-flex}.view-switcher button{min-height:36px;color:var(--text);background:0 0;border-radius:6px;padding:6px 11px}.view-switcher button:hover:not(:disabled){background:var(--panel)}.view-switcher button.active{color:var(--text-h);background:var(--panel);box-shadow:var(--shadow)}.view-switcher button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.html-preview{background:#fff;border:0;width:100%;height:min(72vh,820px);min-height:480px;display:block}.preview-empty{text-align:center;padding:32px 20px}.diff{font-family:var(--mono);white-space:pre-wrap;background:var(--code-bg);border-radius:8px;max-height:500px;margin:0;padding:12px;font-size:12.5px;overflow-y:auto}.comparison-card>.diff{border-radius:0;max-height:min(72vh,820px)}.diff-add{background:var(--success-bg);color:var(--success)}.diff-del{background:var(--danger-bg);color:var(--danger)}.diff-hunk{color:var(--accent)}.artifact-body{font-family:var(--mono);white-space:pre-wrap;background:var(--code-bg);border-radius:8px;max-height:300px;padding:10px;font-size:12px;overflow-y:auto}.notice{background:var(--success-bg);color:var(--success);border-radius:8px;padding:10px 14px;font-size:14px}.error{background:var(--danger-bg);color:var(--danger);border-radius:8px;padding:10px 14px;font-size:14px}.center-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}@media (width<=720px){.comparison-header{flex-direction:column;align-items:flex-start}.view-switcher{width:100%}.view-switcher button{flex:1}.html-preview{min-height:420px}}
