:root{
  --bg:#080b10; --bg2:#0d1219; --panel:#0f151d; --panel2:#131b25;
  --line:#1e2937; --line2:#2a3849;
  --tx:#e6edf5; --tx2:#93a4b8; --tx3:#5f7288;
  --ac:#5eead4; --ac2:#3b82f6; --warn:#fbbf24; --bad:#f43f5e; --good:#34d399;
  --r:12px; --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:
    radial-gradient(1100px 620px at 12% -8%, #10212b 0%, transparent 60%),
    radial-gradient(900px 520px at 92% 4%, #131a2e 0%, transparent 62%),
    var(--bg);
  color:var(--tx);
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased; display:flex; flex-direction:column;
}

/* ---------- top bar ---------- */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:14px 22px;border-bottom:1px solid var(--line);background:rgba(8,11,16,.86);
  backdrop-filter:blur(14px);position:sticky;top:0;z-index:20;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:13px}
.mark{width:38px;height:38px;flex:0 0 38px}
.bname{font-weight:650;letter-spacing:-.015em;font-size:16px}
.bsub{font-size:11.5px;color:var(--tx3);letter-spacing:.03em}
.controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}

.seg{display:flex;background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:3px}
.seg button{background:none;border:0;color:var(--tx3);font:inherit;font-size:12.5px;
  padding:6px 12px;border-radius:6px;cursor:pointer;transition:.15s;white-space:nowrap}
.seg button:hover{color:var(--tx2)}
.seg button.on{background:var(--line2);color:var(--tx)}

.btn{background:var(--panel2);border:1px solid var(--line);color:var(--tx2);
  font:inherit;font-size:12.5px;padding:8px 14px;border-radius:9px;cursor:pointer;
  transition:.15s;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.btn:hover{border-color:var(--line2);color:var(--tx)}
.btn.primary{background:linear-gradient(135deg,var(--ac),#2dd4bf);color:#04211d;border:0;font-weight:640}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent}
.btn.sm{padding:5px 10px;font-size:11.5px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--tx3);box-shadow:0 0 0 3px rgba(255,255,255,.04)}
.dot.live{background:var(--ac);box-shadow:0 0 10px var(--ac)}
.dot.err{background:var(--bad)}

/* ---------- layout ---------- */
.grid{flex:1;display:grid;grid-template-columns:300px minmax(0,1fr) 380px;gap:16px;padding:16px 22px;
  align-items:stretch;align-content:stretch;grid-auto-rows:minmax(0,1fr);min-height:0}
.panel{background:linear-gradient(180deg,var(--panel),#0c1118);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden}
.panel h2{font-size:12px;text-transform:uppercase;letter-spacing:.11em;color:var(--tx3);
  padding:15px 16px 0;font-weight:620}
.hint{font-size:12px;color:var(--tx3);padding:6px 16px 12px}

/* ---------- scenarios ---------- */
.scenarios{display:flex;flex-direction:column;min-height:0;height:100%}
#scenarioList{padding:0 12px 12px;overflow-y:auto}
.scn{width:100%;text-align:left;background:var(--panel2);border:1px solid var(--line);
  border-radius:10px;padding:11px 12px;margin-bottom:8px;cursor:pointer;transition:.15s;color:var(--tx)}
.scn:hover{border-color:var(--ac);transform:translateX(2px)}
.scn.playing{border-color:var(--ac);background:#0f2b28}
.scn .t{font-size:13px;font-weight:600;display:flex;align-items:center;gap:7px}
.scn .d{font-size:11.5px;color:var(--tx3);margin-top:3px;line-height:1.4}
.tag{font-size:9.5px;padding:2px 6px;border-radius:4px;letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.tag.red{background:rgba(244,63,94,.16);color:#fb7185}
.tag.amber{background:rgba(251,191,36,.15);color:var(--warn)}
.tag.teal{background:rgba(94,234,212,.14);color:var(--ac)}
.tag.blue{background:rgba(59,130,246,.18);color:#93c5fd}

.statcard{margin:auto 12px 12px;background:var(--panel2);border:1px solid var(--line);
  border-radius:10px;padding:13px}
.statcard h3{font-size:10.5px;text-transform:uppercase;letter-spacing:.11em;color:var(--tx3);margin-bottom:9px}
.statrow{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;
  color:var(--tx2);padding:3px 0}
.statrow b{color:var(--tx);font-variant-numeric:tabular-nums;font-size:13px}
.statrow.big{border-top:1px solid var(--line);margin-top:8px;padding-top:9px}
.statrow.big b{color:var(--ac);font-size:19px;font-weight:680}
.statcard .foot{font-size:10.5px;color:var(--tx3);margin-top:8px;line-height:1.45}

/* ---------- conversation ---------- */
.convo{display:flex;flex-direction:column;min-height:0;height:100%}
.convohead{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;
  border-bottom:1px solid var(--line)}
.live{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;letter-spacing:.1em;
  color:var(--ac);font-weight:700}
.live i{width:6px;height:6px;border-radius:50%;background:var(--ac);animation:pulse 1.7s infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(94,234,212,.5)}50%{opacity:.5;box-shadow:0 0 0 6px rgba(94,234,212,0)}}
.meta{font-size:11.5px;color:var(--tx3);margin-left:11px}

.thread{flex:1;overflow-y:auto;padding:18px 18px 8px;display:flex;flex-direction:column;gap:13px;scroll-behavior:smooth}
.msg{max-width:82%;display:flex;flex-direction:column;gap:4px;animation:rise .28s ease both}
@keyframes rise{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.msg .who{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--tx3);font-weight:650}
.msg .bub{padding:11px 14px;border-radius:14px;font-size:14.2px;line-height:1.6;white-space:pre-wrap}
.msg.p{align-self:flex-start}
.msg.p .bub{background:var(--panel2);border:1px solid var(--line);border-bottom-left-radius:5px}
.msg.a{align-self:flex-end;align-items:flex-end}
.msg.a .bub{background:linear-gradient(135deg,#123c39,#0e2f3f);border:1px solid #1d5a55;
  border-bottom-right-radius:5px;color:#d6fbf4}
.msg.sys{align-self:center;max-width:92%}
.msg.sys .bub{background:rgba(244,63,94,.08);border:1px solid rgba(244,63,94,.35);color:#fecdd3;
  font-size:12.5px;text-align:center}
.typing .bub{color:var(--tx3);font-style:italic}

.composer{display:flex;gap:9px;padding:12px 16px 8px;border-top:1px solid var(--line)}
.composer input{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:10px;
  padding:11px 14px;color:var(--tx);font:inherit;font-size:14px;outline:none;transition:.15s}
.composer input:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(94,234,212,.1)}
.quick{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 14px}
.qb{background:transparent;border:1px solid var(--line);color:var(--tx3);font:inherit;font-size:11.5px;
  padding:5px 10px;border-radius:20px;cursor:pointer;transition:.15s}
.qb:hover{border-color:var(--ac);color:var(--ac)}

/* ---------- right rail ---------- */
.right{display:flex;flex-direction:column;min-height:0;height:100%}
.tabs{display:flex;border-bottom:1px solid var(--line)}
.tabs button{flex:1;background:none;border:0;border-bottom:2px solid transparent;color:var(--tx3);
  font:inherit;font-size:12.5px;padding:13px 8px;cursor:pointer;transition:.15s}
.tabs button:hover{color:var(--tx2)}
.tabs button.on{color:var(--ac);border-bottom-color:var(--ac)}
.tabpane{flex:1;overflow-y:auto;min-height:0}
.tabpane.hidden{display:none}
.actions{padding:14px;display:flex;flex-direction:column;gap:9px}
.empty{color:var(--tx3);font-size:12.5px;text-align:center;padding:34px 18px;line-height:1.6}

.act{background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--line2);
  border-radius:9px;padding:10px 12px;animation:rise .3s ease both}
.act .l{font-size:12.5px;font-weight:640;display:flex;align-items:center;gap:7px}
.act .dt{font-size:11.5px;color:var(--tx2);margin-top:4px;line-height:1.5;word-break:break-word}
.act .ico{width:16px;height:16px;flex:0 0 16px;opacity:.9}
.act.book{border-left-color:var(--good)} .act.book .l{color:var(--good)}
.act.escalate{border-left-color:var(--bad);background:rgba(244,63,94,.07)} .act.escalate .l{color:#fb7185}
.act.triage{border-left-color:var(--warn)} .act.triage .l{color:var(--warn)}
.act.nlu{border-left-color:#475569;opacity:.85} .act.nlu .l{color:var(--tx3);font-family:var(--mono);font-size:11px}
.act.nlu .dt{font-family:var(--mono);font-size:10.5px;color:var(--tx3)}
.act.sms,.act.intake{border-left-color:var(--ac2)} .act.sms .l,.act.intake .l{color:#93c5fd}
.act.verify,.act.quote,.act.lookup,.act.info,.act.task,.act.cancel,.act.transfer{border-left-color:var(--ac)}
.act.verify .l,.act.quote .l,.act.lookup .l,.act.info .l,.act.task .l,.act.cancel .l,.act.transfer .l{color:var(--ac)}
.act .val{margin-left:auto;font-size:11px;color:var(--good);font-variant-numeric:tabular-nums}

/* ---------- schedule ---------- */
.schedhead{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;gap:10px}
.schedhead select{background:var(--panel2);border:1px solid var(--line);color:var(--tx);
  border-radius:8px;padding:7px 10px;font:inherit;font-size:12.5px;outline:none;flex:1}
.util{font-size:11.5px;color:var(--tx3);white-space:nowrap}
.sched{padding:0 14px 12px;font-family:var(--mono);font-size:10.5px}
.srow{display:grid;grid-template-columns:46px repeat(5,1fr);gap:3px;margin-bottom:3px}
.srow.head{position:sticky;top:0;background:var(--panel);padding-bottom:4px;z-index:2}
.srow.head div{color:var(--tx3);text-align:center;font-size:10px;letter-spacing:.05em}
.tlab{color:var(--tx3);text-align:right;padding-right:5px;line-height:20px}
.cell{height:20px;border-radius:3px;background:#0c1017;border:1px solid #161f2b}
.cell.booked{background:#1c2836;border-color:#243244}
.cell.ai{background:linear-gradient(135deg,#0f3d38,#12514a);border-color:var(--ac);
  box-shadow:0 0 9px rgba(94,234,212,.35)}
.cell.start{position:relative;overflow:hidden}
.cell.start::after{content:attr(data-l);position:absolute;left:4px;top:2px;font-size:9px;
  color:var(--tx2);white-space:nowrap}
.cell.ai.start::after{color:#a7f3e5}
.legend{display:flex;gap:14px;padding:0 14px 14px;font-size:11px;color:var(--tx3);flex-wrap:wrap}
.legend span{display:flex;align-items:center;gap:6px}
.sw{width:11px;height:11px;border-radius:3px;display:inline-block}
.sw.booked{background:#1c2836;border:1px solid #243244}
.sw.ai{background:#12514a;border:1px solid var(--ac)}
.sw.free{background:#0c1017;border:1px solid #161f2b}

.foot-note{padding:12px 22px 20px;font-size:11.5px;color:var(--tx3);text-align:center;line-height:1.6;
  max-width:900px;margin:0 auto}

::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#1e2937;border-radius:5px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:#2c3c4f;background-clip:padding-box}

@media(max-width:1180px){
  .grid{grid-template-columns:1fr;align-content:start;grid-auto-rows:min-content;flex:none}
  .convo,.right,.scenarios{height:auto;max-height:none}
  .thread{min-height:340px;max-height:70vh}
  .tabpane{max-height:70vh}
  .statcard{margin-top:12px}
  .topbar{gap:12px}
  .controls{width:100%;justify-content:flex-start}
}
