:root{--bg:#f5f6f3;--panel:#fff;--ink:#1c2321;--muted:#5b6661;--line:#d9ded9;--accent:#0f6f74;--accent-soft:#e2f0f0;--warn:#a3650f;--hl:#fff3c4;--ok:#2f7d4a}
@media (prefers-color-scheme:dark){:root{--bg:#131716;--panel:#1b201f;--ink:#e5e9e6;--muted:#9aa5a0;--line:#2d3533;--accent:#56c3c6;--accent-soft:#163b3d;--warn:#e0a54a;--hl:#4a4320;--ok:#6cc48a}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:var(--accent)}
.top{display:flex;align-items:center;gap:20px;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--panel)}
.top nav{display:flex;gap:14px}.top nav a{text-decoration:none;color:var(--muted);font-weight:500}.top nav a.active{color:var(--accent)}
.brand{font-weight:700;letter-spacing:-.01em;text-decoration:none;color:var(--ink)}
.pill{margin-left:auto;font:12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;padding:6px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.pill.ready{border-color:var(--ok);color:var(--ok)}.pill.busy{border-color:var(--warn);color:var(--warn)}.pill.err{border-color:#c33;color:#c33}
main{max-width:980px;margin:0 auto;padding:20px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px 20px;margin-bottom:16px}
.narrow{max-width:460px;margin:60px auto}
h1{font-size:1.5rem;margin:.2em 0 .6em}h2{font-size:1.15rem;margin:.2em 0 .6em}h3{font-size:1rem;margin:1em 0 .4em}
label{display:block;margin:10px 0;color:var(--muted);font-size:.9rem}
input:not([type=checkbox]),select,textarea{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font:inherit}
textarea{resize:vertical;min-height:120px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-top:8px}.row label{margin:0;flex:1 1 160px}
.check{display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}
button,.button{font:inherit;padding:8px 14px;border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block}
button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
button:disabled{opacity:.5;cursor:default}
.msg{min-height:1.2em;color:var(--warn);font-size:.9rem;margin:8px 0 0}
.muted{color:var(--muted);font-size:.9rem}
ul{list-style:none;padding:0;margin:0}#library li,#voice-list li,#pk-list li,#sess-list li{padding:8px 0;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#library li a{flex:1;text-decoration:none;color:var(--ink)}#library li a:hover{color:var(--accent)}
.doc{font-size:1.12rem;line-height:1.75;white-space:pre-wrap;max-width:72ch}
.u{border-radius:3px;cursor:pointer;transition:background .15s}
.u:hover{background:var(--accent-soft)}
.u.done{text-decoration:underline dotted transparent}
.u.pending{color:var(--muted)}
.u.synth{background:var(--accent-soft)}
.u.current{background:var(--hl);color:var(--ink)}
.u.error{color:#c33}
.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;position:sticky;top:8px;z-index:2}
#progress{margin-left:auto}
.small{font-size:.85rem}
.tag{font-size:.75em;color:var(--muted)}
.tagchip{font:600 .68em/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:0 5px;margin:0 3px;user-select:none;white-space:nowrap;display:inline-block;vertical-align:baseline}
.addcomma{color:var(--accent);font-weight:700;background:var(--accent-soft);border-radius:3px;padding:0 1px;margin:0 1px}
