/* CalmAnswer. Built for a phone lying flat on a desk, glanced at from ~50cm.
   Everything is sized so the LIVE screen is readable without leaning in. */

:root{
  --teal:#6FDDEC;
  --gold:#35CE7C;
  --graphite:#1B2B57;
  --bg:#050E2C;
  --bg2:#0E1E48;
  --line:#21376E;
  --text:#EAF2FF;
  --dim:#93A6CC;
  --red:#E5484D;
  --green:#37C46B;
  --prompt-size:34px;      /* driven by the A-/A+ buttons */
  --safe-b:env(safe-area-inset-bottom,0px);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;
  overscroll-behavior:none;
  display:flex;flex-direction:column;
}

/* ---------- chrome ---------- */
#topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;background:var(--bg2);border-bottom:1px solid var(--line);
  flex:0 0 auto;
}
.brand{display:flex;align-items:center;gap:9px;font-size:15px;letter-spacing:.2px}
.brandname b{color:var(--teal);font-weight:700}
.dot{width:10px;height:10px;border-radius:50%;background:var(--dim);transition:background .2s}
.dot.listening{background:var(--green);box-shadow:0 0 0 0 rgba(55,196,107,.7);animation:pulse 1.6s infinite}
.dot.thinking{background:var(--gold)}
.dot.error{background:var(--red)}
@keyframes pulse{
  70%{box-shadow:0 0 0 12px rgba(55,196,107,0)}
  100%{box-shadow:0 0 0 0 rgba(55,196,107,0)}
}
.status{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.8px}

#tabs{display:flex;background:var(--bg2);border-bottom:1px solid var(--line);flex:0 0 auto}
.tab{
  flex:1;padding:13px 0;background:none;border:0;border-bottom:2px solid transparent;
  color:var(--dim);font-size:14px;font-weight:600;letter-spacing:.3px;
}
.tab.active{color:var(--text);border-bottom-color:var(--teal)}

.screen{display:none;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.screen.active{display:flex;flex-direction:column}

/* ---------- LIVE ---------- */
#live{padding:0;overflow:hidden}

.heard{
  flex:0 0 auto;display:flex;gap:8px;align-items:baseline;
  padding:7px 14px;background:#03091F;border-bottom:1px solid var(--line);
  font-size:13px;color:var(--dim);min-height:34px;
  white-space:nowrap;overflow:hidden;
}
.heard-label{font-size:9px;letter-spacing:1.2px;color:#5A6E96;flex:0 0 auto}
#heardText{overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:left}
.heard.hot{color:var(--teal)}

.prompter{
  flex:1 1 auto;min-height:0;overflow-y:auto;
  padding:20px 18px 8px;position:relative;
}
.opener{
  font-size:calc(var(--prompt-size) * 1.06);
  line-height:1.24;font-weight:700;color:#fff;
  padding-left:14px;border-left:5px solid var(--teal);
  margin-bottom:20px;
}
.opener:empty{display:none}
.beats{list-style:none;margin:0;padding:0}
.beats li{
  font-size:var(--prompt-size);line-height:1.3;font-weight:600;
  color:var(--text);margin-bottom:16px;padding-left:26px;position:relative;
}
.beats li::before{
  content:"";position:absolute;left:2px;top:.52em;
  width:11px;height:11px;border-radius:50%;background:var(--gold);
}
.closer{
  font-size:calc(var(--prompt-size) * .92);line-height:1.3;
  color:var(--teal);font-weight:600;margin-top:22px;
  padding-top:16px;border-top:1px solid var(--line);
}
.closer:empty{display:none}
.prompter .caret{
  display:inline-block;width:.5em;height:1em;vertical-align:-.12em;
  background:var(--teal);animation:blink .9s steps(1) infinite;margin-left:2px;
}
@keyframes blink{50%{opacity:0}}

.placeholder{text-align:center;padding-top:14vh;color:#4A5E86}
.ph-big{font-size:30px;font-weight:700;margin-bottom:10px;color:#5A6E96}
.ph-sub{font-size:15px;line-height:1.6}

.quickrow{
  flex:0 0 auto;display:flex;gap:7px;padding:8px 12px;
  border-top:1px solid var(--line);background:var(--bg2);overflow-x:auto;
}
.qbtn{
  flex:1 0 auto;padding:11px 12px;border-radius:9px;border:1px solid var(--line);
  background:#15295E;color:var(--text);font-size:13px;font-weight:600;white-space:nowrap;
}
.qbtn:active{background:var(--teal);color:#04122A;border-color:var(--teal)}
.qbtn[disabled]{opacity:.35}

.controls{
  flex:0 0 auto;display:flex;gap:10px;align-items:stretch;
  padding:10px 12px calc(10px + var(--safe-b));background:var(--bg2);
  border-top:1px solid var(--line);
}
.mic{
  flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:11px;
  min-height:64px;border-radius:13px;border:0;
  background:var(--teal);color:#04122A;font-size:19px;font-weight:800;letter-spacing:1px;
}
.mic.on{background:var(--red);color:#fff}
.mic-icon{
  width:15px;height:22px;border-radius:8px;background:currentColor;
  position:relative;flex:0 0 auto;
}
.mic-icon::after{
  content:"";position:absolute;left:-6px;right:-6px;bottom:-8px;height:9px;
  border:2.5px solid currentColor;border-top:0;border-radius:0 0 9px 9px;
}
.ctrl-side{display:flex;flex-direction:column;gap:6px;width:100px;flex:0 0 auto}
.ctrl{
  flex:1;border-radius:11px;border:1px solid var(--line);background:#15295E;
  color:var(--dim);font-size:12px;font-weight:800;letter-spacing:.6px;line-height:1.15;
}
.ctrl[data-mode="auto"]{color:var(--green);border-color:#1E5A46}
.ctrl.accent{background:var(--gold);color:#04221A;border-color:var(--gold)}
.ctrl.accent:active{filter:brightness(1.2)}

.sizerow{
  flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:16px;
  padding:5px 0 calc(6px + var(--safe-b));background:var(--bg2);font-size:11px;color:#5A6E96;
}
.sz{
  width:44px;height:28px;border-radius:7px;border:1px solid var(--line);
  background:#15295E;color:var(--dim);font-size:13px;font-weight:700;
}
.szlabel{letter-spacing:.8px;text-transform:uppercase}

/* ---------- PREP ---------- */
#prep{padding:14px 12px calc(20px + var(--safe-b))}
.toolgrid{display:grid;grid-template-columns:1fr;gap:9px}
.tool{
  text-align:left;padding:14px 15px;border-radius:12px;
  border:1px solid var(--line);background:var(--bg2);color:var(--text);
  display:flex;flex-direction:column;gap:4px;
}
.tool:active{border-color:var(--teal)}
.tool-t{font-size:16px;font-weight:700}
.tool-d{font-size:13px;color:var(--dim);line-height:1.4}

.preppanel{display:flex;flex-direction:column;gap:12px}
.preppanel.hidden{display:none}
.toolgrid.hidden{display:none}
.prep-head{display:flex;align-items:center;gap:12px}
.prep-title{font-size:17px;font-weight:700}
.linkbtn{background:none;border:0;color:var(--teal);font-size:14px;font-weight:600;padding:4px 0}
.prep-input-wrap{display:flex;flex-direction:column;gap:8px}
.prep-actions{display:flex;gap:8px}
.ta,textarea,input,select{
  width:100%;padding:11px 12px;border-radius:10px;
  border:1px solid var(--line);background:#0A1740;color:var(--text);
  font-size:15px;font-family:inherit;line-height:1.45;
}
textarea{resize:vertical}
input:focus,textarea:focus,select:focus{outline:0;border-color:var(--teal)}

.prepout{
  font-size:16px;line-height:1.62;padding-bottom:20px;
}
.prepout h3{font-size:17px;color:var(--teal);margin:20px 0 8px}
.prepout ul{padding-left:20px;margin:8px 0}
.prepout li{margin-bottom:7px}
.prepout p{margin:10px 0}
.prepout strong{color:#fff}
.prepout .qa{
  border-left:3px solid var(--gold);padding-left:12px;margin:16px 0;
  font-weight:600;font-size:17px;
}

/* ---------- PROFILE ---------- */
#profile{padding:14px 14px calc(30px + var(--safe-b));gap:0}
.hint{font-size:13.5px;color:var(--dim);line-height:1.6;margin:0 0 16px}
.hint.small{font-size:11px;margin-top:14px}
.fld{display:block;margin-bottom:14px}
.fld>span{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:#C3D2EC}
.fld>span em{font-style:normal;color:var(--dim);font-weight:400}
.rule{border:0;border-top:1px solid var(--line);margin:20px 0}
.btnrow{display:flex;gap:9px;flex-wrap:wrap}
.primary,.ghost,.danger{
  padding:13px 18px;border-radius:10px;font-size:15px;font-weight:700;border:1px solid transparent;
}
.primary{background:var(--teal);color:#04122A}
.ghost{background:#15295E;color:var(--text);border-color:var(--line)}
.danger{background:#2A1416;color:var(--red);border-color:#4A2226}
.msg{font-size:13px;margin-top:10px;min-height:18px}
.msg.ok{color:var(--green)}
.msg.err{color:var(--red)}

/* Landscape: phone propped sideways behind the laptop = more prompter, less chrome */
@media (orientation:landscape) and (max-height:520px){
  #tabs .tab{padding:8px 0}
  .prompter{padding-top:12px}
  .quickrow{padding:5px 10px}
  .mic{min-height:52px}
  .sizerow{display:none}
  .mocklaunch{display:none}
}

/* Dim mode: lowers teleprompter brightness to cut screen glare and reflections. */
.prompter.dim{filter:brightness(.5)}   /* no fade: nothing on this screen moves */
.sz.on{background:var(--teal);color:#05122b;border-color:var(--teal)}
/* Mock-interview launcher on the Live tab. */
.mocklaunch{margin:2px 0 8px;font-size:14px}

/* ---------- Mock tab ---------- */
#mock{padding:16px;overflow-y:auto}
.mockpick{max-width:560px;margin:0 auto}
.scr-h{font-size:22px;font-weight:700;margin:2px 0 6px;color:#fff}
.mockopt-label{font-weight:600;margin:18px 0 8px;color:var(--text)}
.mockopts{display:flex;flex-direction:column;gap:10px}
.mockopt{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:2px;
  padding:14px 16px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg2);
  color:var(--text);cursor:pointer;width:100%}
.mockopt b{font-size:16px;color:#fff}
.mockopt span{font-size:13px;color:#9fb0d0}
.mockopt .costnote{font-size:12px;color:var(--gold);font-style:normal;margin-top:4px}
.mockopt.on{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal) inset}
/* Label on its own centered line, buttons full width below, so the button text
   never has to wrap or truncate on a phone. */
.mocklen{display:block;margin:16px 0}
.mocklen>span{display:block;text-align:center;font-weight:600;margin-bottom:8px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.seg button{background:var(--bg2);color:var(--text);border:0;padding:8px 14px;cursor:pointer}
.seg button.on{background:var(--teal);color:#05122b;font-weight:600}
.btnlink{display:inline-block;margin:8px 0;text-decoration:none;padding:8px 14px;border-radius:8px}
#mockHumanSetup{margin:10px 0}

/* Collapsible "more" block (interview-process research under the employer one-pager). */
.moreblock{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.moreblock>summary{cursor:pointer;font-weight:600;color:var(--teal);font-size:14px;padding:4px 0}

/* Compact "Speak to type" voice-input buttons on the Me and Jobs fields. */
.minibtn{margin:-4px 0 6px;padding:6px 12px;font-size:13px;width:auto}
.minibtn.on{background:var(--teal);color:#05122b;border-color:var(--teal)}
.minibtn.on::before{content:"● "}

/* Login gate + marketing landing (shown to logged-out visitors). */
#licGate{position:fixed;inset:0;z-index:9999;background:var(--bg);color:var(--text);overflow-y:auto}
/* Simple views (sent / nolicense / error): centered narrow column. */
#licGate:not(.landing){display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:28px 22px;text-align:center}
#licGate:not(.landing) > *{width:100%;max-width:420px}
#licGate .lic-brand{font-size:20px;font-weight:700;margin-bottom:6px}
#licGate .lic-brand b{color:var(--teal)}
#licGate h2{font-size:24px;font-weight:700;margin:2px 0}
#licGate p{color:#bccbe8;line-height:1.4}
#licGate .lic-small{font-size:13px;color:#8fa2c6}
#licGate input{padding:13px 14px;border-radius:10px;border:1px solid var(--line);background:#0A1740;color:var(--text);font-size:16px}
#licGate .lic-ghost{padding:11px 16px;border-radius:10px;border:1px solid var(--line);background:#15295E;color:var(--text);cursor:pointer}
#licGate .lic-msg{font-size:13px;color:var(--gold);min-height:16px}
.lic-primary{padding:13px 18px;border-radius:10px;border:0;background:var(--teal);color:#04122A;font-weight:700;font-size:16px;cursor:pointer;text-decoration:none;display:inline-block}

/* Landing page */
#licGate.landing{padding:0}
.lp{max-width:920px;margin:0 auto;padding:0 18px 40px}
.lp-top{display:flex;justify-content:space-between;align-items:center;padding:16px 0}
.lp-brand{font-size:19px;font-weight:700}
.lp-brand b{color:var(--teal)}
.lp-topcta{color:var(--teal);text-decoration:none;font-weight:600;border:1px solid var(--line);padding:8px 16px;border-radius:9px}
.lp-hero{text-align:center;padding:24px 0 12px}
.lp-hero h1{font-size:clamp(28px,6vw,44px);line-height:1.1;font-weight:800;margin:0 0 14px;color:#fff}
.lp-sub{font-size:clamp(15px,2.4vw,19px);color:#bccbe8;max-width:640px;margin:0 auto 22px;line-height:1.5}
/* Teal "ALLY" in the wordmark wherever the brand name appears in prose. */
.wm{color:var(--teal)}
.lp-google{display:flex;justify-content:center;margin:0 auto 4px;min-height:44px}
.lp-google > div{max-width:100%}
.lp-or{display:flex;align-items:center;gap:12px;max-width:470px;margin:14px auto;color:#8fa2c6;font-size:13px}
.lp-or::before,.lp-or::after{content:"";flex:1;height:1px;background:var(--line)}
.lp-signinrow{display:flex;gap:8px;max-width:470px;margin:0 auto;flex-wrap:wrap}
.lp-signinrow input{flex:1 1 220px;padding:13px 14px;border-radius:10px;border:1px solid var(--line);background:#0A1740;color:var(--text);font-size:16px}
.lp-small{font-size:13px;color:#8fa2c6;margin-top:10px}
.lp-big{font-size:18px;padding:15px 30px}
.lp-inlink{color:var(--teal);text-decoration:none}
.lp-pricing .lp-buycta{border:0;cursor:pointer}

/* Cloud vs phone data selector (Me tab). */
.seg.wideseg{display:flex;width:100%}
.seg.wideseg button{flex:1;padding:11px 8px}
#cloudPanel{margin-top:12px}
#recoveryKeyBox{width:100%;font-family:monospace;font-size:12px;word-break:break-all}
.lp-sec{padding:34px 0;border-top:1px solid var(--line)}
.lp-sec h2{font-size:clamp(22px,4vw,30px);font-weight:700;text-align:center;margin:0 0 8px;color:#fff}
.lp-lead{text-align:center;color:#bccbe8;max-width:640px;margin:0 auto 18px}
.lp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:18px}
.lp-card{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:18px}
.lp-card h3{margin:0 0 6px;font-size:17px;color:var(--teal)}
.lp-card p{margin:0;color:#bccbe8;font-size:14px;line-height:1.45}
.lp-tablewrap{overflow-x:auto}
.lp-table{width:100%;border-collapse:collapse;margin-top:12px;min-width:440px}
.lp-table th,.lp-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);font-size:14px}
.lp-table th{color:#8fa2c6;font-weight:600}
.lp-table tr.lp-us{background:rgba(111,221,236,.10)}
.lp-table tr.lp-us td{color:#fff;font-weight:700}
.lp-price{background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:26px;max-width:420px;margin:0 auto;text-align:center}
.lp-amount{font-size:40px;font-weight:800;color:#fff}
.lp-amount span{font-size:16px;color:#8fa2c6;font-weight:600}
.lp-price ul{list-style:none;padding:0;margin:16px 0;text-align:left;display:inline-block}
.lp-price li{color:#bccbe8;padding:5px 0 5px 24px;position:relative}
.lp-price li::before{content:"\2713";position:absolute;left:0;color:var(--gold);font-weight:700}
.lp-buycta{margin-top:8px}
.lp-foot{text-align:center;color:#8fa2c6;font-size:13px;padding:28px 0 0}
.lp-foot a{color:#8fa2c6}

/* ---------- v2: jobs, cases, competencies ---------- */

.activebar{
  display:flex;gap:9px;align-items:baseline;padding:6px 14px;
  background:#0A1740;border-bottom:1px solid var(--line);
  font-size:13px;color:var(--teal);font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 0 auto;
}
.ab-label{font-size:9px;letter-spacing:1.2px;color:#5A6E96;flex:0 0 auto}

#jobs,#case{padding:14px 12px calc(24px + var(--safe-b))}
.joblist{display:flex;flex-direction:column;gap:9px;margin-bottom:14px}
.job{
  text-align:left;padding:13px 14px;border-radius:12px;
  border:1px solid var(--line);background:var(--bg2);color:var(--text);
  display:flex;flex-direction:column;gap:6px;
}
.job.active{border-color:var(--teal)}
.job-t{font-size:16px;font-weight:700;line-height:1.3}
.job-d{font-size:12.5px;color:var(--dim)}
.bar{display:block;height:4px;border-radius:2px;background:#16295A;overflow:hidden}
.bar-f{display:block;height:100%;background:var(--teal);transition:width .3s}

.pill{
  display:inline-block;font-size:9.5px;letter-spacing:.8px;font-weight:800;
  padding:2px 6px;border-radius:4px;background:var(--teal);color:#04122A;
  vertical-align:middle;margin-left:4px;
}
.pill.bc{background:var(--gold);color:#04221A}

.wide{width:100%}
.card{
  border:1px solid var(--line);background:var(--bg2);border-radius:12px;
  padding:14px;margin-top:12px;
}
.card.hidden,.hidden{display:none}
.card-h{font-size:16px;margin:0 0 12px;font-weight:700}

.casemeta{font-size:12.5px;color:var(--dim);margin:2px 0 14px}

.preplog{max-height:0;overflow:hidden;transition:max-height .3s}
.preplog.on{max-height:220px;overflow-y:auto;margin:12px 0;padding:10px 12px;
  background:#03091F;border:1px solid var(--line);border-radius:10px}
.plog{font-size:12.5px;color:var(--dim);padding:3px 0;line-height:1.45}
.plog.running::before{content:"... ";color:var(--gold)}
.plog.done{color:var(--green)}
.plog.done::before{content:"OK  ";font-weight:800}
.plog.error{color:var(--red)}
.plog.info{color:var(--teal)}

.subtabs{display:flex;gap:6px;overflow-x:auto;margin:14px 0 12px;padding-bottom:2px}
.subtab{
  flex:0 0 auto;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:600;
  border:1px solid var(--line);background:#15295E;color:var(--dim);white-space:nowrap;
}
.subtab.active{background:var(--teal);color:#04122A;border-color:var(--teal)}
.pane{display:none}
.pane.active{display:block}

.kcard{
  border:1px solid var(--line);background:var(--bg2);border-radius:12px;
  padding:13px 14px;margin-bottom:10px;
}
.kcard-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.kname{font-size:16px;font-weight:700;line-height:1.3}
.kdot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;background:var(--dim)}
.kdot.ok{background:var(--green)}
.kdot.warn{background:var(--gold)}
.kdot.bad{background:var(--red)}
.kdef{font-size:12.5px;color:var(--dim);line-height:1.55;margin-top:8px;
  padding-left:10px;border-left:2px solid var(--gold)}
.kdef b{color:#C3D2EC}
.kwhy{font-size:13px;color:var(--dim);margin-top:8px;line-height:1.5}
.kstory{font-size:15px;line-height:1.6;margin-top:10px;padding-top:10px;
  border-top:1px solid var(--line)}
.kgaps{margin-top:10px;padding:10px;background:#191410;border:1px solid #3A2E1A;border-radius:9px;
  font-size:13px;line-height:1.5;color:#E4CE9A}
.kgaps b{color:var(--gold)}
.kgaps ul{margin:6px 0 8px;padding-left:18px}
.kgaps li{margin-bottom:4px}
.kgaps .ta{margin-bottom:8px;font-size:14px}

.mock{margin-bottom:14px;padding-left:12px;border-left:3px solid var(--line)}
.mock.assistant{border-left-color:var(--teal)}
.mock.user{border-left-color:var(--gold);color:var(--dim)}
#mockLog{max-height:52vh;overflow-y:auto}

.styleq{font-size:17px;font-weight:600;line-height:1.4;margin-bottom:12px}
#styleBox .ta{margin-bottom:10px}
.err{color:var(--red)}
.dim{color:var(--dim)}

/* ---------- v3: link research, AI warning, scenario builder ---------- */

.aiwarn{
  background:#2A1416;border:1px solid var(--red);border-radius:11px;
  padding:12px 14px;margin:0 0 14px;font-size:14px;line-height:1.55;color:#F3B0B3;
}
.aiwarn b{color:#FF8A8E}
.pill.warn{background:var(--red);color:#fff}

.scbtn{width:100%;margin-top:10px;font-size:14px}

.scbank{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.scbank-item{
  border:1px solid var(--line);background:var(--bg2);border-radius:10px;
  padding:10px 12px;position:relative;
}
.scbank-t{font-size:15px;font-weight:700}
.scbank-c{font-size:12px;color:var(--gold);margin-top:2px}
.scbank-del{position:absolute;top:9px;right:12px;color:var(--red);font-size:12px}

/* scenario builder overlay */
.modal{
  position:fixed;inset:0;z-index:50;background:var(--bg);
  display:flex;flex-direction:column;padding:14px 14px calc(14px + var(--safe-b));
  overflow-y:auto;
}
.modal[hidden]{display:none}
.modal-head{
  display:flex;align-items:center;justify-content:space-between;
  padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:10px;
}
.scthread{flex:1 1 auto;min-height:120px;overflow-y:auto;margin-bottom:10px}
.scmsg{margin-bottom:12px;padding:10px 12px;border-radius:11px;font-size:15px;line-height:1.55}
.scmsg.agent{background:var(--bg2);border:1px solid var(--line)}
.scmsg.you{background:#14231C;border:1px solid #244A38;color:#CFE9DA}
.scdraft{
  border:1px solid var(--teal);border-radius:12px;padding:14px;margin-bottom:12px;background:#0A1A44;
}
.scdraft-h{font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:var(--teal);margin-bottom:8px}
.scdraft-title{font-size:17px;font-weight:700;margin-bottom:8px}
.scdraft-spoken{font-size:16px;line-height:1.65}
.scdraft-notes{margin-top:12px;font-size:13px;color:var(--dim)}
.scdraft-notes summary{cursor:pointer;color:var(--teal)}

/* ---------- v2.2: multi-provider key setup ---------- */
.setup{
  border:1px solid var(--line);background:#0A1740;border-radius:11px;
  padding:12px 14px;margin:0 0 14px;
}
.setup-h{font-size:13px;font-weight:700;color:var(--teal);margin-bottom:8px}
.setup ol{margin:0 0 10px;padding-left:20px}
.setup li{font-size:13.5px;line-height:1.55;margin-bottom:6px;color:#C3D2EC}
.setup-link{
  display:inline-block;font-size:13px;font-weight:700;color:#04122A;background:var(--teal);
  padding:8px 14px;border-radius:9px;text-decoration:none;
}
.setup-warn{
  margin-top:10px;font-size:12.5px;line-height:1.5;color:#E4CE9A;
  background:#191410;border:1px solid #3A2E1A;border-radius:8px;padding:8px 10px;
}
.setup-details{margin:0 0 14px}
.setup-details summary{font-size:13px;color:var(--dim);cursor:pointer;padding:4px 0}

/* ---------- v2.2: mock studio config ---------- */
.tipbox{
  background:#191410;border:1px solid #3A2E1A;border-radius:9px;padding:10px 12px;
  font-size:12.5px;line-height:1.55;color:#E4CE9A;margin:2px 0 8px;
}
.tipbox b{color:var(--gold)}
.mockcfg{display:flex;flex-direction:column;gap:14px}
.cfg-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cfg-label{font-size:14px;font-weight:600;color:#C3D2EC}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.seg button{
  padding:9px 16px;background:#15295E;color:var(--dim);border:0;font-size:14px;font-weight:700;
  border-right:1px solid var(--line);
}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--teal);color:#04122A}

/* ---------- mock studio (full screen) ---------- */
.studio{
  position:fixed;inset:0;z-index:60;background:#03091F;
  display:flex;flex-direction:column;padding:0 0 calc(10px + var(--safe-b));
}
.studio[hidden]{display:none}
.studio-top{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 16px;background:#050E2C;border-bottom:1px solid var(--line);
}
.studio-phase{font-size:13px;font-weight:700;letter-spacing:.5px;color:var(--teal);text-transform:uppercase}
.studio-timer{font-size:15px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;margin-left:auto;margin-right:14px}
.studio-stage{
  flex:1 1 auto;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 35%, #0E2050, #03091F);overflow:hidden;
}
.selfcam{
  position:absolute;bottom:12px;right:12px;width:34%;max-width:150px;border-radius:12px;
  border:2px solid var(--line);transform:scaleX(-1);z-index:2;background:#000;
}
.selfcam[hidden]{display:none}
.la-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;background:#03091F}
.la-video[hidden]{display:none}
.av3d{position:absolute;inset:0;width:100%;height:100%;z-index:1;background:radial-gradient(circle at 50% 35%,#0E2050,#03091F)}
.av3d[hidden]{display:none}
.av3d canvas{width:100%!important;height:100%!important;display:block}
.avatar{display:flex;flex-direction:column;align-items:center;gap:10px}
.avatar-name{font-size:13px;color:var(--dim);letter-spacing:.5px}
.face{width:min(52vw,240px);height:auto;filter:drop-shadow(0 8px 30px rgba(0,0,0,.5))}
.a-head{fill:#D8B08C}
.a-hair{fill:#3A2E27}
.a-eye{fill:#2B2320;transform-box:fill-box;transform-origin:center;animation:blink 5s infinite}
.a-brow{stroke:#3A2E27;stroke-width:4;fill:none;stroke-linecap:round}
.a-mouth{fill:#7A3B34;transform-box:fill-box;transform-origin:center}
@keyframes blink{0%,96%,100%{transform:scaleY(1)}98%{transform:scaleY(.1)}}
.avatar.talking .a-mouth{animation:talk .24s infinite alternate}
@keyframes talk{from{transform:scaleY(.55)}to{transform:scaleY(2.1)}}
.avatar.talking .face{animation:nod 1.8s ease-in-out infinite}
@keyframes nod{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

.studio-caption{
  /* FIXED height on purpose. When this grew with the length of the line being
     spoken, the stage above it shrank and the portrait re-fitted to the smaller
     box, which read as the camera zooming in and out on every turn. */
  flex:0 0 24vh;height:24vh;overflow-y:auto;padding:14px 18px;font-size:18px;line-height:1.5;
  text-align:center;color:#EAF2FF;background:#050E2C;border-top:1px solid var(--line);
}
.studio-controls{
  flex:0 0 auto;display:flex;gap:10px;padding:10px 14px 0;
}
.studio-controls .mic{flex:1 1 auto;min-height:58px}
.studio-controls .ctrl{width:130px;flex:0 0 auto}
.studio-score{
  position:absolute;inset:0;z-index:5;overflow-y:auto;padding:18px 16px calc(20px + var(--safe-b));
  background:#050E2C;font-size:15.5px;line-height:1.6;
}
.studio-score[hidden]{display:none}
.studio-score h3{color:var(--teal);margin:0 0 12px}
.studio-score .wide{margin-top:18px}

/* ---------- v2.4: story library cards ---------- */
.storycard{
  border:1px solid var(--line);background:var(--bg2);border-radius:12px;
  padding:13px 14px;margin-bottom:10px;
}
.storycard-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.storycard-t{font-size:16px;font-weight:700;line-height:1.3}
.story-del{color:var(--red);font-size:12px;flex:0 0 auto}
.storycard-c{font-size:12px;color:var(--gold);margin-top:3px}
.storycard-body{font-size:15px;line-height:1.6;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.storycard-gaps{
  margin-top:10px;padding:10px;background:#191410;border:1px solid #3A2E1A;border-radius:9px;
  font-size:13px;line-height:1.5;color:#E4CE9A;
}
.storycard-gaps b{color:var(--gold)}
.storycard-gaps ul{margin:6px 0 8px;padding-left:18px}
.storycard-gaps .ta{margin-bottom:8px;font-size:14px}

/* ---------- v2.6: onboarding wizard ---------- */
.onboard{
  position:fixed;inset:0;z-index:70;background:var(--bg);
  display:flex;align-items:flex-start;justify-content:center;padding:20px 16px calc(20px + var(--safe-b));
  overflow-y:auto;
}
.onboard[hidden]{display:none}
.onboard-inner{width:100%;max-width:460px;display:flex;flex-direction:column;gap:14px}
.ob-h{font-size:24px;font-weight:800;margin:0;line-height:1.2}
.ob-p{font-size:15.5px;line-height:1.6;color:#C3D2EC;margin:0}
.ob-input{font-size:16px}
.ob-steps{margin:0;padding-left:20px}
.ob-steps li{font-size:14px;line-height:1.55;margin-bottom:6px;color:#C3D2EC}
.ob-btn-link{
  display:block;text-align:center;font-size:15px;font-weight:700;color:#04122A;background:var(--teal);
  padding:13px 16px;border-radius:11px;text-decoration:none;
}
.ob-note{font-size:12.5px;line-height:1.5;color:#E4CE9A;background:#191410;border:1px solid #3A2E1A;
  border-radius:8px;padding:9px 11px}
.ob-choices{display:flex;flex-direction:column;gap:10px}
/* Recording consent screen. .ob-p carries margin:0, so the wrapper owns the rhythm. */
.consent-body{display:flex;flex-direction:column;gap:12px;max-width:640px;margin:0 auto;padding-bottom:12px}
.ob-choice{
  text-align:left;padding:14px 15px;border-radius:12px;border:1px solid var(--line);
  background:var(--bg2);color:var(--text);display:flex;flex-direction:column;gap:3px;
}
.ob-choice.on{border-color:var(--teal);background:#0A1A44}
.ob-choice b{font-size:16px}
.ob-choice span{font-size:13px;color:var(--dim)}
.ob-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}
.ob-dots{font-size:12px;color:var(--dim)}
.ob-wide{width:100%}

/* Onboarding checklist */
.ob-head{display:flex;flex-direction:column;gap:8px}
.ob-progress{height:6px;border-radius:6px;background:var(--bg2);overflow:hidden;border:1px solid var(--line)}
.ob-bar{height:100%;background:var(--teal);border-radius:6px;transition:width .35s ease}
.ob-sub{font-size:13px;color:var(--dim);margin:0}
.ob-check{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ob-item{display:flex;gap:11px;align-items:flex-start;padding:13px 13px;border-radius:12px;border:1px solid var(--line);background:var(--bg2);opacity:.55;transition:opacity .25s,border-color .25s,background .25s}
.ob-item.active{opacity:1;border-color:var(--teal);background:#0A1A44}
.ob-item.done .ob-title{text-decoration:line-through;color:var(--dim)}
.ob-item.done{opacity:.5;border-color:var(--green)}
.ob-tick{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--dim);margin-top:1px}
.ob-item.active .ob-tick{color:var(--teal)}
.ob-item.done .ob-tick{color:var(--green);font-weight:800}
.ob-itembody{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:10px}
.ob-title{font-size:16px;font-weight:700}
.ob-title em{font-weight:400;font-size:13px;color:var(--dim)}
.ob-p2{font-size:14px;line-height:1.55;color:#C3D2EC;margin:0}
.ob-row{display:flex;gap:8px;flex-wrap:wrap}
.ob-row .primary,.ob-row .ghost{flex:1 1 auto}
.ob-chips{display:flex;gap:8px;flex-wrap:wrap}
.ob-chip{flex:1 1 auto;padding:11px 10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--text);font-weight:700;font-size:14px}
.ob-chip.on{border-color:var(--teal);background:#0A1A44;color:var(--teal)}
.ob-lil{font-size:13px;color:var(--dim)}

/* Connection tiles (Me tab) */
.tile{border:1px solid var(--line);background:var(--bg2);border-radius:14px;padding:14px 14px;margin-bottom:14px;display:flex;flex-direction:column;gap:10px}
.tile-h{display:flex;align-items:center;gap:9px;font-size:16.5px}
.tile-ic{font-size:20px;line-height:1}
.tile-opt{font-size:12px;font-weight:600;color:var(--dim);border:1px solid var(--line);border-radius:20px;padding:2px 9px;margin-left:auto}
.provwarn{font-size:13px;line-height:1.5;border-radius:9px;padding:9px 11px;
  color:#FF9B9B;background:#2A1114;border:1px solid #4A2126}
.provwarn.ok{color:#9FE3C2;background:#0C2419;border-color:#1D4F38}
.provwarn:empty{display:none}
.chosenav{font-size:13.5px;color:var(--text)}
.chosenav:empty{display:none}

/* Avatar picker */
.apick{position:fixed;inset:0;z-index:80;background:var(--bg);display:flex;align-items:flex-start;justify-content:center;padding:20px 16px calc(20px + var(--safe-b));overflow-y:auto}
.apick[hidden]{display:none}
.apick-wrap{width:100%;max-width:460px;display:flex;flex-direction:column;gap:14px}
.ap-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ap-tile{position:relative;border:2px solid var(--line);background:var(--bg2);border-radius:14px;padding:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;aspect-ratio:3/4}
.ap-tile.on{border-color:var(--teal)}
.ap-tile img{width:100%;height:100%;object-fit:cover;flex:1 1 auto}
.ap-ph{flex:1 1 auto;display:flex;align-items:center;justify-content:center;width:100%;font-size:44px;font-weight:800;color:var(--teal);background:radial-gradient(circle at 50% 35%,#0E2050,#03091F)}
.ap-name{padding:8px 6px;font-size:14px;font-weight:700;color:var(--text)}

/* Guided "get ready" flow (case detail) */
.getready{margin:4px 0 2px}
.getready:empty{display:none}
.gr-card{border:1px solid var(--teal);background:#0A1A44;border-radius:14px;padding:15px 15px;display:flex;flex-direction:column;gap:11px}
.gr-card.gr-confirm{border-color:var(--gold,#C9A227)}
.gr-title{font-size:18px;font-weight:800}
.gr-p{font-size:14px;line-height:1.55;color:#C3D2EC;margin:0}
.gr-jobline{font-size:16px}
.gr-meta{font-size:12.5px;color:var(--dim);margin:0}
.gr-list{list-style:none;margin:2px 0;padding:0;display:flex;flex-direction:column;gap:9px}
.gr-item{display:flex;align-items:center;gap:10px;font-size:14.5px}
.gr-tick{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;border:1px solid var(--line)}
.gr-item.ok .gr-tick{color:var(--green);border-color:var(--green);font-weight:800}
.gr-item.todo .gr-tick{color:var(--dim)}
.gr-item.todo .gr-label{color:var(--dim)}
.gr-label{flex:1 1 auto;min-width:0}
.gr-act{flex:0 0 auto;color:var(--teal);font-size:13px}

/* "You are all set" state on the mock avatar setup button */
.allset{padding:11px 16px;border-radius:10px;border:0;background:var(--green);color:#04122A;font-weight:700;cursor:pointer}

/* Interviewer face picker (Mock tab). Real headshots, so keep them large enough
   to read as people rather than icons. */
.facepick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0 4px}
.facetile{background:var(--bg2);border:2px solid var(--line);border-radius:12px;padding:0;
  cursor:pointer;overflow:hidden;display:flex;flex-direction:column;align-items:center}
.facetile img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:50% 22%;display:block}
.facetile span{font-size:11.5px;font-weight:600;color:var(--dim);padding:5px 2px}
.facetile.on{border-color:var(--teal)}
.facetile.on span{color:var(--teal)}

/* ---------- Photograph anything (capture.js) ---------- */
.capmodal{position:fixed;inset:0;z-index:90;background:rgba(3,9,31,.94);
  display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;
  padding:18px 14px calc(20px + var(--safe-b))}
.capmodal[hidden]{display:none}
.cap-wrap{width:100%;max-width:460px;display:flex;flex-direction:column;gap:12px}
.cap-thumb{width:100%;max-height:34vh;object-fit:contain;border-radius:12px;
  border:1px solid var(--line);background:#03091F}
.cap-head{font-size:19px;font-weight:700;color:#fff}
.cap-sum{font-size:15px;line-height:1.55;color:var(--text);margin:0}
.cap-details{border:1px solid var(--line);border-radius:10px;background:var(--bg2)}
.cap-details summary{padding:10px 12px;font-size:13.5px;color:var(--dim);cursor:pointer}
.cap-text{padding:0 12px 12px;font-size:13px;line-height:1.55;color:var(--dim);
  white-space:pre-wrap;max-height:34vh;overflow-y:auto}
.cap-spin{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);
  border-top-color:var(--teal);animation:capspin .9s linear infinite;margin:6px auto}
@keyframes capspin{to{transform:rotate(360deg)}}
.cap-toast{position:fixed;left:50%;bottom:calc(22px + var(--safe-b));transform:translateX(-50%) translateY(14px);
  background:var(--teal);color:#04122A;font-weight:700;font-size:14px;padding:11px 18px;border-radius:22px;
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:95;max-width:88vw;text-align:center}
.cap-toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* Picking which parts of a photo to keep */
.cap-shot{position:relative;touch-action:none}
.cap-shot.cropping{cursor:crosshair}
.cap-cropbtn{position:absolute;left:8px;bottom:8px;background:rgba(5,14,44,.86);color:var(--teal);
  border:1px solid var(--teal);border-radius:18px;padding:7px 13px;font-size:12.5px;font-weight:600}
.cap-sel{position:absolute;display:none;border:2px solid var(--teal);background:rgba(111,221,236,.16);
  border-radius:4px;pointer-events:none}
.cap-picker{display:flex;flex-direction:column;gap:7px}
.cap-pickhead{display:flex;align-items:center;justify-content:space-between;font-size:13px;
  font-weight:600;color:var(--dim)}
.cap-pickall{display:flex;gap:12px}
.cap-block{display:grid;grid-template-columns:22px 1fr;gap:4px 9px;align-items:start;
  border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:var(--bg2)}
.cap-block.on{border-color:var(--teal);background:#0C2140}
.cap-block.done{opacity:.5}
.cap-block input{width:20px;height:20px;grid-row:1/3;margin:2px 0 0;accent-color:var(--teal)}
.cap-blabel{font-size:13.5px;font-weight:700;color:var(--text)}
.cap-btext{font-size:12.5px;line-height:1.5;color:var(--dim);white-space:pre-wrap;
  max-height:5.4em;overflow:hidden}
.cap-block.on .cap-btext{max-height:none}


/* ---- interview recordings list (Me tab) ---- */
.reccard{display:flex;align-items:center;gap:10px;padding:11px 12px;margin:8px 0;
  border:1px solid var(--line);border-radius:10px;background:#0E1B45}
.reccard .recmain{flex:1 1 auto;min-width:0}
.reccard .recmain b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reccard .recdel{flex:0 0 auto}
#recPlayer{display:none}

/* ---- coaching review ---- */
.creview .chead{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:6px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.chip{font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);
  background:#0E1B45;color:#bccbe8;white-space:nowrap}
.chip.ok{border-color:#1f6f4a;color:#7fe0b0}
.chip.warn{border-color:#7a6320;color:#e8c86a}
.chip.bad{border-color:#7a2f2f;color:#f0a0a0}
.citem{border:1px solid var(--line);border-radius:12px;padding:13px;margin:14px 0;background:#0B1636}
.citem .cq{font-weight:700;line-height:1.35}
.cverdict{color:#bccbe8;margin:6px 0}
.crate{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;margin:4px 0}
.crate.ok{background:#123a2a;color:#7fe0b0}
.crate.warn{background:#3a3012;color:#e8c86a}
.crate.bad{background:#3a1a1a;color:#f0a0a0}
.csents h4,.cblock h4{font-size:14px;margin:14px 0 6px;color:#8fa2c6;text-transform:uppercase;letter-spacing:.04em}
.csent,.ceng,.cesl{border-left:3px solid var(--line);padding:8px 0 8px 11px;margin:9px 0}
.csent.ok{border-left-color:#1f6f4a}
.csent.warn{border-left-color:#7a6320}
.csent.bad{border-left-color:#7a2f2f}
.csaid{color:#cfe0ff}
.cbetter{margin-top:5px;color:#7fe0b0}
.cwhy{margin-top:4px;font-size:13px;color:#8fa2c6}
.cblock.esl{border:1px solid #1f4f6f;border-radius:10px;padding:10px 12px;background:#0A1B33}
.cmodel{margin-top:12px}
.cmodel summary{cursor:pointer;color:var(--teal)}
.cmodel p{margin-top:8px;color:#cfe0ff;line-height:1.5}
.coverall{margin:10px 0}

/* ---- pronunciation practice ---- */
.cpron{border:1px solid #1f4f6f;border-radius:10px;padding:12px;background:#0A1B33}
.cword{border-top:1px solid var(--line);padding:12px 0}
.cword:first-of-type{border-top:0}
.cwordtop{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.cwordtop b{font-size:17px}
.cword .btnrow{display:flex;gap:8px;margin-top:9px}
.cword .minibtn.on{background:#7a2f2f;border-color:#7a2f2f;color:#fff}
.cresult{margin-top:8px;min-height:18px}

/* ---- progress trend + follow up mail ---- */
.ctrend{border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0;background:#0B1636}
.trendrow{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--line)}
.trendrow.trendhead{border-top:0;padding-top:0}
.trendlab{flex:1 1 auto;color:#bccbe8;font-size:14px;min-width:0}
.trendval{flex:0 0 auto;font-weight:700;font-variant-numeric:tabular-nums}
.trendval.big{font-size:26px;color:var(--teal)}
.trendspark{flex:0 0 auto;line-height:0}
.trenddelta{flex:0 0 auto;min-width:62px;text-align:right}
.spark{display:block}
.cmailout{margin-top:10px}
.cmailbox{width:100%;background:#0A1740;color:var(--text);border:1px solid var(--line);
  border-radius:10px;padding:11px;font-size:15px;line-height:1.45}

/* ---- tier 2: tracker, question bank, one-way practice ---- */
.stagerow{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.stagebtn{padding:7px 12px;border-radius:999px;border:1px solid var(--line);
  background:#0E1B45;color:#bccbe8;font-size:13px;cursor:pointer}
.stagebtn.on{background:var(--teal);border-color:var(--teal);color:#05203a;font-weight:700}
.hint.nudge{color:var(--gold);margin-top:8px}
#owModal{position:fixed;inset:0;z-index:80;background:var(--bg);overflow-y:auto;padding:20px}
.owbox{max-width:640px;margin:0 auto}
.owq{font-size:21px;font-weight:700;line-height:1.35;margin:18px 0}
.owtimer{font-size:44px;font-weight:700;color:var(--teal);font-variant-numeric:tabular-nums;margin:10px 0}
.seclist{margin:8px 0 4px;padding-left:20px}
.seclist li{margin:7px 0;line-height:1.45;color:#bccbe8}

/* ---- landing page comparison matrix ---- */
.lp-matrix{font-size:14px}
.lp-matrix th,.lp-matrix td{padding:9px 10px;text-align:center;white-space:nowrap}
.lp-matrix th:first-child,.lp-matrix td:first-child{text-align:left;white-space:normal;min-width:190px}
.lp-matrix th.lp-us,.lp-matrix td.lp-us{background:rgba(32,197,216,.10)}
.lp-matrix td.y{color:#7fe0b0;font-weight:700}
.lp-matrix td.p{color:#e8c86a}
.lp-matrix td.n{color:#8fa2c6}
.lp-compare .lp-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---- live prompter ----
   Discreet by design. A point that is done disappears, the current point is
   shown plainly, the next appears when there is room. No transitions, no
   highlights, no colour changes: from across a desk this must look like a
   phone sitting on a table, not a screen doing something. */
.beats li.beat-hidden{display:none}
.closer.beat-hidden{display:none}
.livetiming{font-size:12px;color:#8fa2c6;padding:4px 14px;text-align:center;min-height:16px}
.livetiming b{color:#bccbe8}

/* ---- question bank ---- */
.qbtabs{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.qbtab{padding:7px 12px;border-radius:999px;border:1px solid var(--line);
  background:#0E1B45;color:#bccbe8;font-size:13px;cursor:pointer}
.qbtab.on{background:var(--teal);border-color:var(--teal);color:#05203a;font-weight:700}
.citem.qbdone{opacity:.55}
.citem.qbdone .cq::after{content:' \2713';color:#7fe0b0}
