*{box-sizing:border-box}:root{--navy: #0f2747;--blue: #1f6feb;--green: #1a9d54;--bg: #f5f7fa;--border: #e1e6ed;--muted: #6b7888}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#14202e;background:var(--bg)}button{cursor:pointer;font:inherit}.login{min-height:100vh;display:grid;place-items:center}.login form{background:#fff;padding:32px;border-radius:12px;box-shadow:0 8px 30px #0f27471a;width:320px;display:flex;flex-direction:column;gap:12px}.login h1{font-size:18px;margin:0 0 8px;color:var(--navy)}.login input{padding:10px 12px;border:1px solid var(--border);border-radius:8px}.login button{padding:10px;background:var(--blue);color:#fff;border:0;border-radius:8px;font-weight:600}.err{color:#c0392b;font-size:13px;margin:4px 0 0}.loading{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.denied-box{background:#fff;padding:32px;border-radius:12px;box-shadow:0 8px 30px #0f27471a;width:360px;text-align:center}.denied-box h1{color:#c0392b;font-size:20px;margin:0 0 12px}.denied-box .muted{color:var(--muted);font-size:13px}.denied-box button{margin-top:16px;padding:9px 16px;background:var(--navy);color:#fff;border:0;border-radius:8px}.app{height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;padding:10px 18px;background:var(--navy);color:#fff}.topbar .spacer{flex:1}.topbar .progress{background:#ffffff26;padding:3px 10px;border-radius:20px;font-size:13px}.topbar .who{font-size:13px;opacity:.8}.topbar button{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:6px;padding:5px 10px}.body{flex:1;display:flex;overflow:hidden}.sidebar{width:320px;border-right:1px solid var(--border);background:#fff;overflow-y:auto}.sidebar-head{padding:12px 16px;font-weight:600;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;background:#fff;border-bottom:1px solid var(--border)}.rec{width:100%;display:flex;align-items:center;gap:10px;padding:10px 16px;border:0;border-bottom:1px solid #f0f2f5;background:#fff;text-align:left}.rec:hover{background:#f7f9fc}.rec.active{background:#eaf2ff}.rec .check{font-size:16px;color:#c2c9d3;width:18px}.rec .check.on{color:var(--green)}.rec-main{flex:1;display:flex;flex-direction:column}.rec-main b{font-size:14px}.rec-main small{color:var(--muted);font-size:12px}.status{font-size:10px;padding:2px 6px;border-radius:4px;background:#eef1f5;color:var(--muted);text-transform:uppercase}.status.s-transcribed{background:#e6f4ec;color:var(--green)}.status.s-error{background:#fdecea;color:#c0392b}.detail{flex:1;overflow-y:auto;padding:20px 26px}.detail.empty{display:grid;place-items:center;color:var(--muted)}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.detail-head h2{margin:0;color:var(--navy);font-size:18px}.detail-head h2 small{color:var(--muted);font-weight:400}.head-info{min-width:0}.meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{font-size:12px;padding:3px 9px;border-radius:20px;background:#eef1f5;color:var(--muted);white-space:nowrap}.chip.warn{background:#fdf3e0;color:#b9770a}.chip.defect-edit{display:inline-flex;align-items:center;gap:5px;padding-right:4px}.chip.defect-edit input{border:1px solid #ecd3a6;background:#fff;border-radius:12px;padding:1px 8px;font:inherit;font-size:12px;color:#b9770a;width:180px}.chip.defect-edit input:focus{outline:none;border-color:#b9770a}.chip.role-agent{background:#e7f0ff;color:var(--blue)}.chip.role-client{background:#fdf0e0;color:#b9770a}.actions{display:flex;gap:10px;flex-shrink:0}.actions .savestate{font-size:12px;color:var(--muted);align-self:center;min-width:120px;text-align:right}.actions .savestate.saving{color:#b9770a}.actions .savestate.saved{color:var(--green)}.actions .verify{padding:8px 14px;border:0;background:var(--green);color:#fff;border-radius:8px;font-weight:600}.actions .verify.done{background:#d8efe0;color:var(--green)}.actions .verify:disabled{opacity:.5;cursor:default}.player{width:100%;margin:16px 0;position:sticky;top:0;z-index:5}.player.empty{background:#fff;border:1px dashed var(--border);border-radius:8px;padding:16px;text-align:center;color:var(--muted)}.msg{color:var(--green);font-size:13px}.turns{display:flex;flex-direction:column;gap:10px;margin-top:8px;padding-bottom:40px}.turn{display:flex}.turn.role-agent{justify-content:flex-end}.turn.role-client,.turn.role-unknown{justify-content:flex-start}.bubble{max-width:78%;min-width:320px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:8px 10px;box-shadow:0 1px 2px #0f27470a}.turn.role-agent .bubble{border-top-right-radius:3px;background:#f4f8ff}.turn.role-client .bubble{border-top-left-radius:3px;background:#fffaf3}.turn.active .bubble{box-shadow:0 0 0 2px var(--green);border-color:var(--green)}.turn.edited .bubble{outline:2px dashed #e3c065;outline-offset:-2px}.turn.added .bubble{outline:2px solid rgba(26,157,84,.45);outline-offset:-2px}.bubble-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.rolepills{display:flex;gap:3px}.rolepills .pill{border:1px solid var(--border);background:#fff;color:var(--muted);border-radius:6px;padding:3px 9px;font-size:12px;font-weight:600;cursor:pointer}.rolepills .pill.unknown{padding:3px 7px}.rolepills .pill:hover{background:#f3f6fa}.rolepills .pill.agent.on{background:var(--blue);color:#fff;border-color:var(--blue)}.rolepills .pill.client.on{background:#b9770a;color:#fff;border-color:#b9770a}.rolepills .pill.unknown.on{background:var(--muted);color:#fff;border-color:var(--muted)}.bubble-top .play{border:0;background:#eef1f5;color:var(--navy);border-radius:6px;width:28px;height:26px;font-size:12px;cursor:pointer}.bubble-top .play:hover{background:#dde6f2}.timeedit{display:flex;align-items:center;gap:2px}.timeedit .dash{color:var(--muted)}.time-in{width:48px;text-align:center;border:1px solid var(--border);border-radius:6px;padding:3px 4px;font:inherit;font-size:12px;font-variant-numeric:tabular-nums;color:var(--navy);background:#fbfcfe}.time-in:focus{outline:none;border-color:var(--blue);background:#fff}.bubble-top .edited-badge{font-size:11px;color:#b9770a}.bubble-top .added-badge{font-size:11px;color:var(--green);font-weight:600}.bubble-top .del{margin-left:auto;border:0;background:transparent;color:#b6bdc7;border-radius:6px;width:28px;height:26px;font-size:14px;cursor:pointer}.bubble-top .del:hover{background:#fdecea;color:#c0392b}.addrow{display:flex;align-items:center;justify-content:center;padding:2px 0}.addrow button{border:1px dashed #c2cad6;background:#fff;color:var(--muted);border-radius:16px;font-size:12px;padding:3px 14px;opacity:.55;transition:all .12s}.addrow button:hover{opacity:1;border-color:var(--blue);color:var(--blue);background:#eaf2ff}.bubble textarea{width:100%;border:1px solid transparent;background:transparent;border-radius:6px;padding:4px 6px;resize:none;font:inherit;line-height:1.45;field-sizing:content}.bubble textarea:focus{border-color:var(--border);background:#fff;outline:none}.end-marker{text-align:center;color:var(--muted);font-size:13px;margin:18px 0}.end-marker span{background:#eef1f5;padding:6px 16px;border-radius:20px}.snackbar{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px;display:flex;align-items:center;gap:16px;box-shadow:0 8px 24px #0f274740;z-index:20}.snackbar button{background:transparent;border:0;color:#7db3ff;font-weight:700;cursor:pointer}.snackbar button:hover{text-decoration:underline}
