:root{--bg:#0f1115;--card:#171a21;--line:#262b36;--fg:#e8eaed;--mut:#9aa4b2;--acc:#6ea8fe;--ok:#3fb950;--warn:#e3b341;--err:#f85149}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
.topbar{display:flex;align-items:baseline;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line);background:#12141a;position:sticky;top:0}
.brand{font-weight:700;color:var(--fg);text-decoration:none;font-size:18px}
.sub{color:var(--mut);font-size:13px}
.wrap{max-width:820px;margin:24px auto;padding:0 16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:18px}
h2{margin:0 0 12px;font-size:18px}h3{margin:18px 0 8px;font-size:15px;color:var(--acc)}
.uploadform{display:flex;flex-wrap:wrap;gap:10px}
.uploadform input[type=text]{flex:1;min-width:180px}
input[type=text],input[type=file]{background:#0e1015;border:1px solid var(--line);color:var(--fg);border-radius:8px;padding:9px 11px}
button{background:var(--acc);color:#08131f;border:0;border-radius:8px;padding:9px 16px;font-weight:600;cursor:pointer}
button:hover{filter:brightness(1.08)}
.hint,.muted{color:var(--mut);font-size:13px}
.list{width:100%;border-collapse:collapse}
.list th{text-align:left;color:var(--mut);font-weight:500;font-size:12px;text-transform:uppercase;padding:6px 8px;border-bottom:1px solid var(--line)}
.list td{padding:11px 8px;border-bottom:1px solid var(--line)}
.list tbody tr{cursor:pointer}.list tbody tr:hover{background:#1c202a}
.badge{font-size:11px;padding:3px 9px;border-radius:20px;background:#222834;color:var(--mut);text-transform:capitalize}
.badge.s-done{background:rgba(63,185,80,.15);color:var(--ok)}
.badge.s-failed{background:rgba(248,81,73,.15);color:var(--err)}
.badge.s-transcribing,.badge.s-summarizing,.badge.s-extracting,.badge.s-delivering{background:rgba(227,179,65,.15);color:var(--warn)}
.badge.s-bot_dispatched,.badge.s-bot_in_call,.badge.s-uploaded{background:rgba(110,168,254,.15);color:var(--acc)}
code{background:#0e1015;border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:12px}
.linkbtn{color:var(--acc);text-decoration:none;font-size:13px;border:1px solid var(--line);padding:6px 12px;border-radius:8px}
.linkbtn:hover{background:#1c202a}
.stackform{display:flex;flex-direction:column;gap:10px;max-width:520px}
.stackform input{width:100%}
button.danger{background:transparent;color:var(--err);border:1px solid rgba(248,81,73,.4);padding:5px 12px}
button.danger:hover{background:rgba(248,81,73,.1)}
.badge.s-bot-calendar{background:rgba(110,168,254,.15);color:var(--acc)}
.userbox{margin-left:auto;color:var(--mut);font-size:13px}
.userbox a{color:var(--acc);text-decoration:none}
.landing{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.landing-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:40px;max-width:440px;text-align:center}
.landing .logo{font-size:44px}
.landing h1{margin:8px 0 12px;font-size:26px}
.landing .lede{color:var(--mut);font-size:15px;line-height:1.6}
.gbtn{display:inline-flex;align-items:center;gap:10px;background:#fff;color:#1f1f1f;border-radius:10px;padding:12px 22px;text-decoration:none;font-weight:600;margin:22px 0 10px}
.gbtn:hover{filter:brightness(.96)}
.gicon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#4285f4;color:#fff;font-weight:700;font-size:14px}
.landing .fine{color:var(--mut);font-size:12px;line-height:1.5;margin-top:8px}
.mhead{display:flex;align-items:center;gap:12px;justify-content:space-between}
.back{color:var(--mut);text-decoration:none;display:inline-block;margin-bottom:12px}
.err{background:rgba(248,81,73,.1);border:1px solid rgba(248,81,73,.4);color:#ffb4ae;border-radius:8px;padding:10px 12px;margin-top:12px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.actions li{margin-bottom:6px}.due{color:var(--warn);font-size:12px;margin-left:6px}
.tag{display:inline-block;background:#222834;color:var(--mut);border-radius:20px;padding:2px 10px;font-size:12px;margin:2px 4px 2px 0}
.topics{margin-top:12px}
.transcript{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:#0e1015}
.transcript p{margin:0 0 8px}
.spk{font-weight:600;color:var(--acc);margin-right:6px}
.spk-1{color:#f0883e}.spk-2{color:#a371f7}.spk-3{color:#3fb950}.spk-4{color:#db61a2}
