:root{
  --bg:#F2F6F9; --card:#fff; --ink:#0F1E2B; --muted:#4B5C6B; --line:#DDE5EB;
  --navy:#0F1E2B; --teal:#0F1E2B; --teal-soft:#E6EDF2; --on-teal:#fff; --accent:#F2B134; --accent-soft:#FCEFD0;
  --amber:#8A5A00; --amber-soft:#FCEFD0; color-scheme:light;
  --red:#b3261e; --red-soft:#fde8e6; --green:#1F7A5A; --green-soft:#DDF0E8; --shadow:0 2px 10px rgba(15,30,43,.08);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0B1620; --card:#13242F; --ink:#E9F0F4; --muted:#9FB2C2; --line:#26404D;
  --navy:#08121B; --teal:#F2B134; --teal-soft:#1C3340; --on-teal:#0F1E2B; --accent:#F2B134; --accent-soft:#1C3340;
  --amber:#FFB454; --amber-soft:#1B3243;
  --red:#ff8a80; --red-soft:#3A2230; --green:#6fd69b; --green-soft:#15341f; --shadow:none; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0B1620; --card:#13242F; --ink:#E9F0F4; --muted:#9FB2C2; --line:#26404D;
  --navy:#08121B; --teal:#F2B134; --teal-soft:#1C3340; --on-teal:#0F1E2B; --accent:#F2B134; --accent-soft:#1C3340;
  --amber:#FFB454; --amber-soft:#1B3243;
  --red:#ff8a80; --red-soft:#3A2230; --green:#6fd69b; --green-soft:#15341f; --shadow:none; color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 'Plus Jakarta Sans',system-ui,-apple-system,"Segoe UI",sans-serif}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--navy);color:#fff}
.brand{display:flex;gap:12px;align-items:center}.brand b{font-size:20px;display:block;line-height:1.1}.brand small{opacity:.75;font-size:12px}
.logo{font-size:26px;background:#117a8b;border-radius:10px;width:42px;height:42px;display:grid;place-items:center}
nav{display:flex;gap:4px;flex-wrap:wrap}
nav button{background:transparent;color:#cfe1ea;border:0;padding:8px 14px;border-radius:8px}
nav button[aria-selected=true]{background:#fff;color:var(--navy);font-weight:600}
.badge{background:var(--red);color:#fff;border-radius:99px;padding:0 7px;font-size:12px;margin-left:4px}
main{padding:20px 24px;max-width:1400px;margin:0 auto}
h2{margin:0 0 4px;font-size:20px}h3{margin:16px 0 6px;font-size:15px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.muted{color:var(--muted)}.small{font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}
.grid-member{display:grid;grid-template-columns:260px 400px 1fr;gap:20px;align-items:start}
@media(max-width:1100px){.grid-member{grid-template-columns:1fr}}
.scn{display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;color:var(--ink)}
.scn[aria-pressed=true]{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-soft);background:var(--teal-soft)}
.scn b{display:block}.scn span{font-size:13px;color:var(--muted)}
.chip{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--teal-soft);color:var(--teal);margin-right:4px}
.chip.red{background:var(--red-soft);color:var(--red)}.chip.amber{background:var(--amber-soft);color:var(--amber)}.chip.green{background:var(--green-soft);color:var(--green)}.chip.grey{background:var(--line);color:var(--muted)}
/* phone */
.phone{width:380px;height:760px;margin:0 auto;border:10px solid #1b2b36;border-radius:42px;background:var(--card);position:relative;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.phone .bar{background:var(--navy);color:#fff;padding:26px 16px 10px;display:flex;justify-content:space-between;align-items:center;font-size:14px}
.phone .body{flex:1;overflow:auto;padding:14px;background:var(--bg)}
.phone .foot{padding:10px 12px;border-top:1px solid var(--line);background:var(--card);display:flex;flex-wrap:wrap;gap:6px;max-height:48%;overflow:auto}
.row{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
.row:last-child{border:0}
.btn{border:1px solid var(--teal);background:var(--teal);color:#fff;border-radius:10px;padding:10px 14px;font-weight:600}
.btn.alt{background:var(--card);color:var(--teal)}.btn.danger{background:var(--red);border-color:var(--red)}.btn.ghost{background:transparent;color:var(--muted);border-color:var(--line)}
.btn.block{width:100%}.btn.sm{padding:6px 10px;font-size:13px}
.choice{background:var(--card);border:1.5px solid var(--teal);color:var(--teal);border-radius:18px;padding:8px 12px;font-weight:600;text-align:left}
.choice:hover{background:var(--teal-soft)}
.msg{max-width:88%;padding:9px 12px;border-radius:14px;margin:6px 0;font-size:14.5px;animation:pop .25s ease}
.msg.bot{background:var(--card);border:1px solid var(--line);border-top-left-radius:4px}
.msg.me{background:var(--teal);color:#fff;margin-left:auto;border-top-right-radius:4px}
.msg.sys{background:var(--amber-soft);color:var(--ink);max-width:100%;font-size:13px}
@keyframes pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.msg{animation:none}}
.notif{background:rgba(255,255,255,.96);color:#14232e;border-radius:16px;padding:12px;margin:10px;box-shadow:0 6px 20px rgba(0,0,0,.25);font-size:14px}
.lock{background:linear-gradient(160deg,#0f2f45,#117a8b);color:#fff;height:100%;padding-top:40px}
.lock .time{font-size:56px;text-align:center;font-weight:200}
.outcome{border-radius:12px;padding:12px;margin:8px 0;font-size:14px}
.outcome.green{background:var(--green-soft)}.outcome.red{background:var(--red-soft)}.outcome.amber{background:var(--amber-soft)}.outcome.teal{background:var(--teal-soft)}
.why{border-left:4px solid var(--amber);background:var(--amber-soft);padding:8px 12px;border-radius:8px;margin:6px 0;font-size:14px}
/* timeline */
.tl{list-style:none;margin:0;padding:0}
.tl li{display:grid;grid-template-columns:128px 1fr;gap:8px;padding:5px 0;border-bottom:1px dashed var(--line);font-size:13.5px}
.tl li.hit{background:var(--amber-soft);border-radius:8px;padding:6px;font-weight:600}
.tl li.trigger{background:var(--red-soft);border-radius:8px;padding:6px;font-weight:600}
.tl time{color:var(--muted);font-variant-numeric:tabular-nums}
/* console */
.console{display:grid;grid-template-columns:340px 1fr;gap:20px}
@media(max-width:900px){.console{grid-template-columns:1fr}}
.case{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:10px 12px;border-radius:12px;margin-bottom:8px}
.case[aria-pressed=true]{border-color:var(--teal);background:var(--teal-soft)}
.case b{display:flex;justify-content:space-between}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.coach li{margin:4px 0}
.log{font-size:13px;color:var(--muted)}
/* sim */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:12px 0}
.tile{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--card)}
.tile b{font-size:26px;display:block}
.sim{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:1000px){.sim{grid-template-columns:1fr}}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
tr[data-id]{cursor:pointer}tr[data-id]:hover,tr[aria-selected=true]{background:var(--teal-soft)}
.tablewrap{max-height:520px;overflow:auto}
.ctl{display:grid;grid-template-columns:200px 1fr 50px;align-items:center;gap:8px;font-size:14px;margin:4px 0}
.banner{background:var(--amber-soft);border:1px solid var(--amber);border-radius:12px;padding:10px 14px;font-size:14px;margin-bottom:12px}
.notes{columns:2;column-gap:28px}@media(max-width:900px){.notes{columns:1}}
.notes .card{break-inside:avoid;margin-bottom:14px}

/* diagrams */
.dg{width:100%;height:auto;display:block;margin-top:8px}
.dg-box{fill:var(--card);stroke:var(--line);stroke-width:1.5}
.dg-box.dg-arm{fill:var(--amber-soft);stroke:var(--amber)}.dg-box.dg-decide{fill:var(--red-soft);stroke:var(--red)}
.dg-box.dg-ok{fill:var(--green-soft);stroke:var(--green)}.dg-box.dg-teal{fill:var(--teal-soft);stroke:var(--teal)}
.dg-t{fill:var(--ink);font:600 14.5px system-ui,sans-serif}.dg-s{fill:var(--muted);font:13px system-ui,sans-serif}
.dg-t.red{fill:var(--red)}.dg-t.amber{fill:var(--amber)}
.dg-arrow{fill:none;stroke:var(--muted);stroke-width:2}.dg-head{fill:var(--muted)}
.dg-grid{stroke:var(--line);stroke-width:1}
.dg-dot{fill:var(--teal);stroke:var(--card);stroke-width:2}.dg-dot.pay{fill:var(--muted)}.dg-dot.last{fill:var(--red)}
.dg-arm-line{stroke:var(--amber);stroke-width:2;stroke-dasharray:5 4}.dg-decide-line{stroke:var(--red);stroke-width:2.5}
.dg-brk{fill:none;stroke:var(--muted);stroke-width:1.5}
.checks{list-style:none;margin:6px 0 0;padding:0;font-size:14px}.checks li{padding:2px 0}
.checks li.ok span:first-child{color:var(--green)}.checks li.no span:first-child{color:var(--muted)}
.livebox{display:flex;gap:6px;width:100%;align-items:flex-end}
.livebox textarea{flex:1;resize:none;border:1.5px solid var(--line);border-radius:12px;padding:8px 10px;font:inherit;background:var(--card);color:var(--ink)}
.choice:disabled,.btn:disabled{opacity:.5;cursor:default}
code{background:var(--line);padding:1px 5px;border-radius:5px;font-size:12.5px}
.dg-lbl{paint-order:stroke;stroke:var(--card);stroke-width:4px;stroke-linejoin:round}
.dg-box.dg-topic{fill:var(--teal-soft);stroke:var(--teal);stroke-dasharray:0}
.dg-arrow.dash{stroke-dasharray:6 5}
.dg-badge{fill:var(--teal);}.dg-badge.no{fill:var(--red)}.dg-badge-t{fill:var(--on-teal);font:700 11px system-ui,sans-serif}
.code{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:13px/1.5 ui-monospace,Menlo,monospace;overflow:auto}
.convo{display:flex;flex-direction:column;max-height:340px;overflow:auto;padding:4px}
.navlink{color:#cfe1ea;text-decoration:none;padding:8px 14px;border-radius:8px;border:1px dashed rgba(255,255,255,.35);align-self:center}.navlink:hover{background:rgba(255,255,255,.12);color:#fff}

/* ---- lighthouse look: fog ground, ink text, lantern accent; Harbor speaks in a serif ---- */
.logo{background:var(--accent);color:#0F1E2B}
.btn{color:var(--on-teal)}.btn.alt{color:var(--teal)}.btn.danger{color:var(--on-teal)}.btn.ghost{color:var(--muted)}
.livebox .btn{background:var(--accent);border-color:var(--accent);color:#0F1E2B}
.scn[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 2px var(--accent);background:var(--accent-soft)}
.case[aria-pressed=true]{border-color:var(--ink);background:var(--accent-soft)}
.chip{color:var(--ink)}
.phone{border-color:#0F1E2B;border-radius:44px}
.phone .bar{background:var(--card);color:var(--ink);border-bottom:1px solid var(--line)}
.phone .body{background:var(--bg)}
.msg{font-size:15px}
.msg.bot{font-family:'Newsreader',Georgia,serif;font-size:17px;line-height:1.4;border:0;border-radius:20px 20px 20px 6px;padding:11px 15px}
.msg.me{background:var(--ink);color:var(--card);border-radius:20px 20px 6px 20px;padding:10px 15px}
.msg.sys{font-family:inherit}
.choice{border-radius:99px;border-color:var(--ink);color:var(--ink);min-height:40px;padding:8px 14px}
.choice:hover{background:var(--accent-soft)}
.lock{background:#0F1E2B;padding:84px 14px 20px}
.ldate{text-align:center;margin:0;color:#9FB2C2;font-size:15px}
.lock .time{font-size:88px;font-weight:500;letter-spacing:-3px;line-height:1.05}
.lwho{text-align:center;margin:6px 0 64px;color:#9FB2C2;font-size:13px}
.notif{display:flex;gap:12px;align-items:flex-start;background:#fff;color:#0F1E2B;border-radius:22px;padding:14px;margin:0 0 14px}
.nmark{width:38px;height:38px;border-radius:12px;background:#F2B134;display:grid;place-items:center;font-size:20px;flex-shrink:0}
.nhead{display:flex;justify-content:space-between;font-size:13px;color:#4B5C6B}.nhead b{color:#0F1E2B}
.nt{font-weight:800;font-size:15.5px;line-height:1.3;margin-top:2px}.nb{font-size:14px;line-height:1.45;color:#33434F}
.notif .small{color:#4B5C6B}
.lnote{text-align:center;color:#9FB2C2;font-size:13px;line-height:1.5;margin:0 12px}
.pill{display:inline-block;background:var(--accent-soft);color:#6B4A00;font-size:12.5px;font-weight:700;padding:4px 12px;border-radius:99px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pill{color:var(--amber)}}
.ptitle{font-size:26px;line-height:1.15;font-weight:800;letter-spacing:-.5px;margin:10px 0 4px}
.pcard{background:var(--card);border-radius:20px;padding:16px;margin:12px 0}
.pamt{font-size:34px;font-weight:800;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.pwhy{font-size:15px;line-height:1.45;margin:6px 0}.pcap{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:14px}
.pvoice{font-family:'Newsreader',Georgia,serif;font-style:italic;font-size:17px;text-align:center;color:var(--muted);margin:14px 0 0}

/* ---- lighter page: soft ground, white header ---- */
:root{--top-bg:#fff;--top-ink:#0F1E2B;--top-line:#DDE5EB}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--top-bg:#08121B;--top-ink:#fff;--top-line:#1B3342}}
:root[data-theme="dark"]{--top-bg:#08121B;--top-ink:#fff;--top-line:#1B3342}
.top{background:var(--top-bg);color:var(--top-ink);border-bottom:1px solid var(--top-line)}
.brand small{opacity:.7}
nav button{color:var(--muted)}
nav button:hover{color:var(--ink);background:var(--teal-soft)}
nav button[aria-selected=true]{background:var(--ink);color:var(--card)}
.navlink{color:var(--muted);border-color:var(--line)}
.navlink:hover{background:var(--teal-soft);color:var(--ink)}
.banner{background:var(--amber-soft)}

/* ---- selection: cool tint + crisp outline (no amber or brown fill) ---- */
.scn[aria-pressed=true],.case[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--teal-soft)}
.phone{border-color:#0F1E2B}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .phone{border-color:#050C12}}

.themebtn{margin-left:auto;align-self:center;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:99px;padding:7px 14px;font-weight:700;font-size:13.5px}
.themebtn:hover{background:var(--teal-soft)}

/* ---- the phone always shows a white, light app UI, whichever theme the page is in ---- */
.phone{--bg:#fff;--card:#fff;--ink:#0F1E2B;--muted:#4B5C6B;--line:#DDE5EB;--teal:#0F1E2B;--teal-soft:#E6EDF2;--on-teal:#fff;
  --accent-soft:#FCEFD0;--amber:#8A5A00;--amber-soft:#FCEFD0;--red:#b3261e;--red-soft:#fde8e6;--green:#1F7A5A;--green-soft:#DDF0E8;
  color:var(--ink);color-scheme:light;background:#fff}
.phone .msg.bot,.phone .pcard{background:#F2F6F9}
.phone .row{border-color:#DDE5EB}
.phone .choice{background:#fff}
.phone .livebox textarea{background:#fff;color:#0F1E2B;border-color:#C8D3DB}

/* ---- calmer chat pacing: each message eases in once; typing dots; no replay on re-render ---- */
.msg{animation:none}
.msg.fresh,.outcome.fresh{animation:rise .6s cubic-bezier(.2,.7,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.msg.typing{display:flex;gap:5px;align-items:center;width:62px;padding:14px 16px}
.msg.typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:blip 1.3s infinite ease-in-out}
.msg.typing span:nth-child(2){animation-delay:.2s}.msg.typing span:nth-child(3){animation-delay:.4s}
@keyframes blip{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.phone .foot.fresh .choice,.phone .foot.fresh .btn{animation:rise .6s cubic-bezier(.2,.7,.2,1) both}
@media (prefers-reduced-motion:reduce){.msg.fresh,.outcome.fresh,.msg.typing span,.phone .foot.fresh .choice,.phone .foot.fresh .btn{animation:none}}

/* ---- warnings are orange (cool-tinted in dark mode, so never brown) ---- */
:root{--warn:#E8590C;--warn-soft:#FFEBDD;--warn-ink:#8F3A06}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--warn:#FF9F43;--warn-soft:#1B3243;--warn-ink:#FFB070}}
:root[data-theme="dark"]{--warn:#FF9F43;--warn-soft:#1B3243;--warn-ink:#FFB070}
.why{border-left-color:var(--warn);background:var(--warn-soft)}
.why b{color:var(--warn-ink)}
.chip.warn{background:var(--warn-soft);color:var(--warn-ink)}
.chip.warn::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--warn);margin-right:6px}
.tl li.hit{background:var(--warn-soft)}
.msg.sys{background:var(--warn-soft)}
.tl li.hit{background:var(--warn-soft);box-shadow:inset 4px 0 0 var(--warn);padding-left:12px}

/* ---- collapsible windows + model-log dashboards ---- */
.coll{padding:0;margin-bottom:16px}
.coll-h{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;background:transparent;border:0;padding:14px 16px;color:var(--ink);font-weight:800;font-size:18px;text-align:left}
.coll-h:hover{background:var(--teal-soft);border-radius:14px}
.coll-t{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.chev{transition:transform .25s ease;flex-shrink:0;color:var(--muted)}.chev.open{transform:rotate(180deg)}
.coll-b{padding:0 16px 16px;border-top:1px solid var(--line)}
.dash{margin:10px 0}
.dash2{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:900px){.dash2{grid-template-columns:1fr}}
.meter{display:flex;gap:6px}.meter .seg{flex:1;height:14px;border-radius:7px;background:var(--line)}
.meter .seg.on.green{background:var(--green)}.meter .seg.on.warn{background:var(--warn)}.meter .seg.on.red{background:var(--red)}
.spark{width:100%;max-width:340px;height:auto}.spark-t{fill:var(--muted);font:11px system-ui,sans-serif}
.heat{display:grid;grid-template-columns:minmax(150px,1.4fr) repeat(var(--n),minmax(34px,1fr));gap:4px;align-items:center;font-size:12px}
.heat .hh{color:var(--muted);text-align:center}.heat .hl{color:var(--ink);padding-right:6px}
.heat .hc{height:22px;border-radius:6px;background:var(--line)}.heat .hc.on{background:var(--muted)}.heat .hc.on.red{background:var(--red)}
.turn{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0;background:var(--bg)}
.turn-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.tq{font-size:14px;margin:6px 0;line-height:1.45}.tq>span:first-child{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.linkbtn{background:transparent;border:0;color:var(--ink);text-decoration:underline;padding:4px 0;font-weight:600;font-size:13px}
.rawpre{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;overflow:auto;white-space:pre-wrap;word-break:break-word;font:12px/1.5 ui-monospace,Menlo,monospace;margin:4px 0 0}
.navlink2{color:var(--ink);font-weight:700}
.chip.grey{background:var(--line);color:var(--muted)}
.tiles.dash{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.tiles.dash{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tiles.dash .tile b{font-size:22px}
.heat{grid-template-columns:minmax(150px,1.4fr) repeat(var(--n),minmax(34px,64px));justify-content:start}
.coll-b{padding-top:12px}

/* ---- larger text for older members, ONLY in the chat and the lock-screen notification.
   --ts is the scale (Large 1.3, Extra large 1.55). Every other phone screen keeps its original size. ---- */
.phone{--ts:1}
.phone.is-chat{--ts:1.3}
.phone.is-chat.xl{--ts:1.55}
.phone.is-chat .bar{font-size:calc(14px*var(--ts))}
.phone.is-chat .msg{font-size:calc(15px*var(--ts));line-height:1.4}
.phone.is-chat .msg.bot{font-size:calc(17px*var(--ts))}
.phone.is-chat .msg.sys{font-size:calc(13px*var(--ts))}
.phone.is-chat .choice{font-size:calc(15px*var(--ts));min-height:calc(44px*var(--ts));padding:calc(9px*var(--ts)) calc(16px*var(--ts));line-height:1.25}
.phone.is-chat .btn{font-size:calc(15px*var(--ts));padding:12px 16px}
.phone.is-chat .btn.sm{font-size:calc(14px*var(--ts));padding:10px 16px;min-height:44px}
.phone.is-chat .livebox textarea{font-size:calc(16px*var(--ts));line-height:1.35;padding:10px 12px}
.phone.is-chat .outcome{font-size:calc(14px*var(--ts))}
.phone.is-chat .small{font-size:calc(13px*var(--ts))}
.phone.is-chat .foot{max-height:62%}
.phone.is-lock .notif{--ts:1.3}
.phone.is-lock.xl .notif{--ts:1.55}
.phone.is-lock .notif .nhead{font-size:calc(13px*var(--ts))}
.phone.is-lock .notif .nt{font-size:calc(15.5px*var(--ts))}
.phone.is-lock .notif .nb{font-size:calc(14px*var(--ts))}
.phone.is-lock .notif .small{font-size:calc(13px*var(--ts))}
.phone.is-lock .notif .btn.sm{font-size:calc(14px*var(--ts));padding:10px 16px;min-height:44px}
/* the microphone */
.phone .mic{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:calc(46px*var(--ts));border:0;border-radius:99px;background:var(--accent);color:#0F1E2B;font-weight:800;font-size:calc(15px*var(--ts));padding:10px 18px}
.phone .mic.on{background:var(--red);color:#fff;animation:ring 1.4s infinite}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(179,38,30,.45)}70%{box-shadow:0 0 0 14px rgba(179,38,30,0)}100%{box-shadow:0 0 0 0 rgba(179,38,30,0)}}
.phone .hear{width:100%;text-align:center;color:var(--muted);font-size:calc(14px*var(--ts));line-height:1.35;margin:2px 0 4px}
.phone .micnote{width:100%;text-align:center;color:var(--muted);margin:0 0 4px}
@media (prefers-reduced-motion:reduce){.phone .mic.on{animation:none}}

/* ---- layout: phone | demo controls (with the story picker) | case + model log ---- */
.grid-member{grid-template-columns:400px minmax(270px,320px) minmax(0,1fr)}
@media(max-width:1180px){.grid-member{grid-template-columns:400px minmax(0,1fr)}.grid-member>section:nth-child(3){grid-column:1 / -1}}
@media(max-width:860px){.grid-member{grid-template-columns:1fr}}
.grid-member .scn{padding:9px 11px;margin-bottom:6px}
/* compact story list: one line each; only the selected story shows its description */
.grid-member .scn{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:8px 11px}
.grid-member .scn b{display:inline;margin:0}
.grid-member .scn br{display:none}
.grid-member .scn>span:not(.chip){display:none;flex-basis:100%;margin-top:2px}
.grid-member .scn[aria-pressed=true]>span:not(.chip){display:block}

/* ---- demo controls: a button above the phone that opens a popover ---- */
.grid-member{grid-template-columns:400px minmax(0,1fr)}
@media(max-width:1100px){.grid-member{grid-template-columns:1fr}}
.demo-wrap{position:relative;width:380px;margin:0 auto 12px}
.demo-btn{display:flex;align-items:center;gap:8px;width:100%;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:10px 14px;font-weight:700;text-align:left;min-height:46px}
.demo-btn:hover,.demo-btn[aria-expanded=true]{background:var(--teal-soft)}
.demo-btn .chev{margin-left:auto}
.pop{position:absolute;top:calc(100% + 8px);left:0;width:min(380px,92vw);max-height:min(78vh,760px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.28);z-index:40}
.pop-h{display:flex;justify-content:space-between;align-items:center;padding:10px 12px 10px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card);z-index:1}
.pop-x{width:40px;height:40px;border-radius:10px;border:0;background:transparent;color:var(--ink);font-size:26px;line-height:1}
.pop-x:hover{background:var(--teal-soft)}
.pop-b{padding:4px 16px 16px}

/* ---- demo controls fills the screen ---- */
body.modal-open{overflow:hidden}
.pop{position:fixed;inset:0;width:auto;max-height:none;border:0;border-radius:0;box-shadow:none;background:var(--bg);z-index:100;display:flex;flex-direction:column;overflow:hidden}
.pop-h{display:flex;align-items:center;gap:10px;padding:14px 28px;border-bottom:1px solid var(--line);background:var(--card);font-size:20px}
.pop-h b{font-size:20px}
.pop-x{margin-left:auto;width:auto;height:44px;padding:0 18px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font-size:16px;font-weight:700}
.pop-x:hover{background:var(--teal-soft)}
.pop-b{flex:1;min-height:0;overflow:auto;padding:28px;display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:36px;align-content:start;width:100%;max-width:1240px;margin:0 auto}
@media(max-width:860px){.pop-b{grid-template-columns:1fr;gap:20px;padding:18px}}
.story-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.story-grid .scn{display:block;margin:0;padding:14px 16px;height:100%}
.story-grid .scn b{display:block;margin-bottom:6px;font-size:17px}
.story-grid .scn br{display:block}
.story-grid .scn>span:not(.chip){display:block;margin-top:8px;font-size:14px}
.pop .small{font-size:15px}
.pop .btn{padding:12px 18px;font-size:16px}
.pop label{display:inline-flex;align-items:center;gap:6px;margin:4px 14px 4px 0}
.pop input[type=radio]{width:20px;height:20px}
.story-grid .scn{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left}
.story-grid .scn>span:not(.chip){flex-basis:auto}

/* ---- demo controls: a centered, bordered panel (about 80% of the screen) over a dimmed copy of the page ---- */
.pop-backdrop{position:fixed;inset:0;z-index:100;background:rgba(10,22,32,.42);display:flex;align-items:center;justify-content:center}
.pop{position:relative;inset:auto;width:80vw;height:80vh;max-width:1280px;border:2px solid var(--muted);border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden}
@media(max-width:860px){.pop{width:94vw;height:90vh}}
.story-grid .scn{flex-wrap:nowrap;align-content:flex-start;gap:0}
.story-grid .scn .chip{align-self:flex-start}
.story-grid .scn br{display:none}
.story-grid{grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:10px}.story-grid .scn{padding:12px 14px}

/* ---- Sound Credit Union logo beside the Harbor mark ---- */
.sound-logo{height:44px;width:auto;border-radius:8px;display:block}

/* ---- employee console v2: queue on top, then an operator window ---- */
.console2{display:flex;flex-direction:column;gap:16px}
.op-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.op-h h2{margin:0}
.sum{background:var(--warn-soft);border-left:5px solid var(--warn);border-radius:12px;padding:14px 18px}
.sum-k{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--warn-ink)}
.sum-h{margin:4px 0 8px;font-size:21px;line-height:1.3;font-weight:800;letter-spacing:-.2px}
.sum-p{margin:4px 0 0;font-size:15.5px;line-height:1.5}
.sum-chips{display:flex;gap:6px;flex-wrap:wrap}
.chip.accent{background:var(--accent-soft);color:var(--amber)}.chip.ink{background:var(--ink);color:var(--card)}
.txn{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:stretch}
.txn-side{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.txn-side .k{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.txn-side b{font-size:17px}
.txn-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 6px}
.txn-mid .amt{font-size:26px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.txn-mid .arrow{font-size:26px;color:var(--muted);line-height:1}
@media(max-width:760px){.txn{grid-template-columns:1fr}.txn-mid{flex-direction:row;gap:10px}.txn-mid .arrow{transform:rotate(90deg)}}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 18px;margin:12px 0 0}
.facts dt{font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.facts dd{margin:1px 0 0;font-weight:600}
.steps{list-style:none;margin:0;padding:0}
.step{display:grid;grid-template-columns:34px 1fr;gap:12px;position:relative;padding-bottom:18px}
.step:not(:last-child)::before{content:"";position:absolute;left:16px;top:34px;bottom:2px;width:2px;background:var(--line)}
.step .dot{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;background:var(--green);color:var(--card);z-index:1}
.step.wait .dot{background:var(--card);color:var(--warn-ink);border:2px solid var(--warn)}
.step.todo .dot{background:var(--card);color:var(--muted);border:2px dashed var(--muted)}
.sh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sh b{font-size:16px}
.sbody{margin-top:4px;font-size:14.5px;line-height:1.5;color:var(--ink)}
.mini{margin:6px 0 0;padding-left:18px}.mini li{margin:2px 0}
.chk{margin-top:8px;padding:8px 12px;background:var(--bg);border:1px solid var(--line);border-radius:10px;font-size:13.5px}
.chk>b{display:block;margin-bottom:2px}.chk span{display:block}.chk .ok span:first-child{color:var(--green)}.chk .no{color:var(--muted)}.chk i{color:var(--muted);font-style:normal}
.quote{margin-top:6px;padding:8px 12px;border-left:3px solid var(--line);background:var(--bg);border-radius:0 10px 10px 0;font-family:'Newsreader',Georgia,serif;font-size:16px;line-height:1.45}
.discs{margin-top:14px;border-top:1px solid var(--line)}
.disc{border-bottom:1px solid var(--line)}
.disc-h{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;background:transparent;border:0;padding:12px 4px;color:var(--ink);font-weight:700;font-size:15px;text-align:left}
.disc-h:hover{background:var(--teal-soft)}
.disc-b{padding:2px 4px 14px}
.tl-msg{margin:6px 0;padding:8px 12px;border-radius:12px;max-width:760px;font-size:14.5px;line-height:1.45}.tl-msg span{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.tl-msg.bot{background:var(--bg);border:1px solid var(--line)}.tl-msg.me{background:var(--ink);color:var(--card);margin-left:auto}
.chk>span{display:block}.chk>span>span:first-child{display:inline;margin-right:6px}

/* ---- case switcher: a search / dropdown bar instead of a table ---- */
.qbox{padding:12px 14px}
.qrowbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.qfield{position:relative;flex:1;min-width:280px}
.qcur{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;min-height:48px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:8px 14px;color:var(--ink);text-align:left;font-size:15px}
.qcur:hover{background:var(--teal-soft)}.qcur .chev{margin-left:auto;color:var(--muted)}
#qsearch{width:100%;min-height:48px;border:2px solid var(--ink);border-radius:12px;padding:0 14px;font:inherit;font-size:16px;background:var(--card);color:var(--ink)}
.qlist{position:absolute;left:0;right:0;top:calc(100% + 6px);max-height:360px;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.28);z-index:30}
.qitem{display:flex;gap:10px;align-items:center;flex-wrap:wrap;width:100%;text-align:left;background:transparent;border:0;border-top:1px solid var(--line);padding:10px 14px;color:var(--ink);font-size:15px}
.qitem:first-child{border-top:0}.qitem:hover,.qitem:focus-visible,.qitem[aria-selected=true]{background:var(--teal-soft)}
