/* ==================================================================
   EngPeak TCAS · TGAT1 Sprint — the TCAS lane sheet (Phase 2 redesign, 19 Sep 2026)
   Load order: app.css → grammar-sprint.css (Sprint sheet, scoped by .sprint/.gsprint) → this file.
   Everything is scoped under .tcas, so no other EngPeak product changes.

   Lane decisions (owner, 19 Sep 2026)
   · base = EngPeak navy #1B2A6B / #1E3A8A; ONE accent = brand orange #C2410C, used only for
     "what to do next": the primary button, the "start here" / "today" marker. No pink, no gold.
   · glass only for chrome (top bar, side bar, bottom nav, runner bar/footer, public header);
     reading, answering and lists sit on white paper. No nested cards.
   · one 760px app column; spacing scale 6/10/16/24/36/52 (Sprint --s1…--s6); 48px targets;
     state is never colour alone; no mono for learners (body font + tabular numerals).
   ================================================================== */

.tcas{
  --tc-accent:#C2410C;          /* primary button: white text 5.18:1 */
  --tc-accent-h:#A8360A;        /* hover */
  --tc-accent-ink:#B3380A;      /* accent as text on the page background ≥5.58:1 */
  --tc-accent-soft:rgba(194,65,12,.07);
  --tc-paper:#fff;
  --tc-read:#FCFCFA;            /* reading paper (passages) */
  --tc-hair:rgba(27,42,107,.09);
  --tc-lift:0 1px 2px rgba(27,42,107,.04),0 10px 28px rgba(27,42,107,.06);
  --tc-col:760px;
  --tc-wide:1160px;
  --tc-pane-mh:40svh;
  --tc-measure:66ch;
  --accent:var(--navy2);
}

/* ---------- page background: navy + a faint brand-orange glow, no pink ---------- */
body.tcas{background:#F1F3F8;
  background-image:radial-gradient(60% 42% at 6% 0%,rgba(30,58,138,.13),transparent 62%),
                   radial-gradient(38% 30% at 100% 4%,rgba(194,65,12,.07),transparent 60%);
  background-attachment:fixed}

/* ---------- type: Thai rules (line-height ≥1.35, letter-spacing 0, no uppercase, no mono) ---------- */
.tcas h1,.tcas h2,.tcas h3{letter-spacing:0!important;line-height:1.35}
.tcas h1{font-weight:800;color:var(--ink)}
.tcas .t-label{color:var(--ink2)}
.tcas .mono,.tcas .opt .k,.tcas .topbar .chip,.tcas .kpi .v{font-family:inherit;font-variant-numeric:tabular-nums}
.tcas .num{font-variant-numeric:tabular-nums;white-space:nowrap}
.tcas .nw{white-space:nowrap}
.tcas .muted{color:var(--ink2)}
.tcas .sub{color:var(--ink2)}
.tcas .t-note{border-left-color:var(--line2)}
.tcas [lang=en]{hyphens:manual}

/* ---------- buttons: one primary (orange) · secondary (line/ghost) · tertiary (text link) ---------- */
.tcas .btn{background:var(--tc-accent);color:#fff!important;font-weight:700;border:0;
  box-shadow:0 8px 18px rgba(194,65,12,.22);text-decoration:none;gap:8px}
.tcas .btn:hover{background:var(--tc-accent-h)}
.tcas .btn.ghost{background:rgba(255,255,255,.62);color:var(--navy)!important;border:1px solid rgba(27,42,107,.28);box-shadow:none}
.tcas .btn.ghost:hover{background:#fff}
.tcas .btn.line{background:#fff;color:var(--navy)!important;border:1.5px solid rgba(27,42,107,.55);box-shadow:none}
.tcas .btn.line:hover{background:var(--soft)}
.tcas .btn[disabled]{opacity:1;background:#E6E9F0;color:#4B5563!important;box-shadow:none;cursor:not-allowed}
.tcas .btn.big{min-height:52px}
.tcas .chev{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;color:var(--navy2);font-weight:600;
  text-decoration:none;white-space:nowrap}
.tcas .chev:hover{text-decoration:underline;text-underline-offset:3px}
.tcas .backlink{display:inline-flex;align-items:center;min-height:44px;gap:6px}
.tcas form.inline{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;margin:0}
.tcas .actions{align-items:center}

/* ---------- prototype strip (quiet, outside the product copy) ---------- */
.tcas .tg-proto{margin:0;padding:6px var(--s3);font-size:.8rem;line-height:1.5;color:var(--ink2);
  text-align:center;background:rgba(255,255,255,.6);border-bottom:1px solid var(--tc-hair)}
.tcas .tg-proto b{color:var(--ink);font-weight:600}

/* ---------- paper surface (lists, maps, tables, access) — white, one level only ---------- */
.tcas .tc-surface,.tcas .slist,.tcas .kpis.three,.tcas .trows{background:var(--tc-paper);
  border:1px solid var(--tc-hair);border-radius:var(--r);box-shadow:var(--tc-lift);
  -webkit-backdrop-filter:none;backdrop-filter:none}
.tcas .tc-surface{padding:0;margin:0;list-style:none}

/* ================================================================== app shell */
.tcas .page{max-width:calc(var(--tc-col) + 48px);margin-inline:auto}
.tcas .sb .sbsec{text-transform:none;letter-spacing:0;font-size:.82rem;font-weight:600}
.tcas .sb a.nv.on{background:var(--soft);color:var(--navy);font-weight:700}
.tcas .sb a.nv.dev{font-size:.85rem}
.tcas .topbar{background:rgba(255,255,255,.62)}
.tcas .topbar .chip{background:var(--soft);color:var(--navy);font-size:.8rem;font-weight:600;padding:5px 12px;border-radius:999px}
.tcas .topbar .chip.days{background:rgba(255,255,255,.7);color:var(--ink2);border:1px solid var(--tc-hair);font-weight:500}
.tcas .topbar .who{text-decoration:none;width:44px;height:44px;flex:none}
.tcas .topbar .mlogo{min-height:44px}
.tcas .sb a.nv{min-height:44px}
.tcas .sp-top nav a{min-height:44px;display:inline-flex;align-items:center}
.tcas .sp-top .btn{min-height:44px}
.tcas .sp-logo{min-height:44px}
@media(max-width:900px){
  .tcas .mnav{grid-template-columns:repeat(4,1fr)}
  .tcas .mnav a{font-size:.76rem;min-height:48px}
  .tcas .mnav a.on{color:var(--navy);font-weight:700}
  .tcas .mnav a.on svg{filter:none}
  .tcas .mnav{background:rgba(255,255,255,.92)}
  .tcas .mnav a{color:#374151}
}
/* next-action card: the one dark surface on a page */
.tcas .nextcard{background:linear-gradient(140deg,#1B2A6B 0%,#223C8C 100%);border:0;
  box-shadow:0 18px 40px rgba(27,42,107,.22);padding:var(--s5)}
.tcas .nextcard .lb{color:rgba(255,255,255,.84);opacity:1;font-size:.88rem;font-weight:600}
.tcas .nextcard b{display:block;font-size:1.45rem;line-height:1.35;margin:var(--s1) 0 var(--s1);letter-spacing:0}
.tcas .nextcard p{color:rgba(255,255,255,.9);opacity:1;margin:0 0 var(--s4)}
.tcas .nextcard .row{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
.tcas .nextcard .btn{box-shadow:0 8px 20px rgba(0,0,0,.18)}
.tcas .nextcard .btn.ghost{background:rgba(255,255,255,.1);color:#fff!important;border-color:rgba(255,255,255,.5)}
.tcas .nextcard .btn.ghost:hover{background:rgba(255,255,255,.18)}
@media(max-width:760px){
  .tcas .nextcard{padding:var(--s4) var(--s3)}
  .tcas .nextcard b{font-size:1.25rem}
  .tcas .nextcard .row .btn:not(.ghost){flex:1 1 100%}
}
.tcas .kpis.three .kpi .v{color:var(--navy)}

/* ---------- learning path (home): one surface, one row per family, sets as numbered pills ---------- */
.tcas .tc-path>li{display:grid;grid-template-columns:36px minmax(0,1fr) auto;column-gap:var(--s3);row-gap:var(--s2);
  align-items:start;padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}
.tcas .tc-path>li:last-child{border-bottom:0}
.tcas .tp-i{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--soft);
  color:var(--navy);font-weight:700;font-size:.9rem;font-variant-numeric:tabular-nums;margin-top:2px}
.tcas .is-done>.tp-i{background:var(--goodsoft);color:var(--good)}
.tcas .tp-b{min-width:0}
.tcas .tp-b>b{display:block;font-size:1.02rem;line-height:1.45}
.tcas .tp-b>small{display:block;color:var(--ink2);font-size:.86rem;line-height:1.5}
.tcas .tc-path .chev{margin-top:-6px}
.tcas .tp-sets{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.tcas .tp-sets a,.tcas .tp-sets span{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;
  border-radius:999px;border:1px solid var(--line2);background:#fff;color:var(--ink);text-decoration:none;
  font-size:.92rem;font-weight:600;white-space:nowrap}
.tcas .tp-sets a:hover{border-color:var(--navy2);background:var(--soft)}
.tcas .tp-sets .is-done{color:var(--ink2);font-weight:500;border-color:var(--line)}
.tcas .tp-sets .is-done i{font-style:normal;color:var(--good);font-weight:700}
.tcas .tp-sets .is-locked{color:var(--ink2);font-weight:500;background:transparent;border-style:dashed}
.tcas .tp-sets .k-lesson{border-color:rgba(27,42,107,.35)}
@media(max-width:760px){
  .tcas .tc-path>li{grid-template-columns:32px minmax(0,1fr) auto;padding:var(--s3);column-gap:var(--s2)}
  .tcas .tp-sets{grid-column:1/-1}
}

/* ---------- weakness map: one surface, one "start here" row, a word for every state ---------- */
.tcas .tc-map>li{padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}
.tcas .tc-map>li:last-child{border-bottom:0}
.tcas .tc-map .mh{display:flex;align-items:baseline;gap:var(--s2) var(--s3);flex-wrap:wrap}
.tcas .tc-map .mn{font-size:1.02rem;flex:1 1 auto;min-width:0}
.tcas .tc-map .ms{font-size:.86rem;color:var(--ink2);white-space:nowrap}
.tcas .tc-map .ms.mgood{color:var(--good);font-weight:600}
.tcas .tc-map .mv{font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums;min-width:3.2em;text-align:right}
.tcas .tc-map .mbar{height:8px;border-radius:4px;background:rgba(27,42,107,.1);margin-top:var(--s2);overflow:hidden}
.tcas .tc-map .mbar i{display:block;height:100%;background:var(--navy2);border-radius:4px}
.tcas .tc-map .mt{margin:var(--s1) 0 0;font-size:.86rem;color:var(--ink2);line-height:1.5}
.tcas .tc-map .is-start{background:var(--tc-accent-soft);box-shadow:inset 3px 0 0 var(--tc-accent)}
.tcas .tc-map .is-start .ms{color:var(--tc-accent-ink);font-weight:700}
.tcas .tc-map>li:first-child.is-start{border-top-left-radius:var(--r);border-top-right-radius:var(--r)}
.tcas .tc-map>li:last-child.is-start{border-bottom-left-radius:var(--r);border-bottom-right-radius:var(--r)}
@media(max-width:760px){.tcas .tc-map>li{padding:var(--s3)}}

/* one-line fact row under a heading ("ตอบถูก 17/24 · ใช้เวลา 24:10") */
.tcas .tc-facts{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);margin:0;padding:0;list-style:none;color:var(--ink2)}
.tcas .tc-facts b{color:var(--ink);font-variant-numeric:tabular-nums}
.tcas .tc-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.tcas .tc-chips li{padding:6px 12px;border-radius:12px;background:#fff;border:1px solid var(--tc-hair);font-size:.92rem;line-height:1.5}
.tcas .tc-chips li b{font-variant-numeric:tabular-nums;color:var(--navy)}

/* disclosure blocks (plan preview, "all answers") — one line, + / − marker */
.tcas details.tc-disc>summary,.tcas .review-all>summary{cursor:pointer;min-height:52px;display:flex;align-items:center;
  gap:var(--s2);font-weight:700;color:var(--navy);list-style:none;padding:var(--s2) var(--s4)}
.tcas details.tc-disc>summary::-webkit-details-marker,.tcas .review-all>summary::-webkit-details-marker{display:none}
.tcas details.tc-disc>summary::after,.tcas .review-all>summary::after{content:"+";margin-left:auto;font-weight:400;color:var(--ink2);font-size:1.3rem}
.tcas details.tc-disc[open]>summary::after,.tcas .review-all[open]>summary::after{content:"−"}
.tcas details.tc-disc>.in,.tcas .review-all>.in{padding:0 var(--s4) var(--s4)}
.tcas .review-all{margin-top:var(--s5)}
@media(max-width:760px){
  .tcas details.tc-disc>summary,.tcas .review-all>summary{padding:var(--s2) var(--s3)}
  .tcas details.tc-disc>.in,.tcas .review-all>.in{padding:0 var(--s3) var(--s3)}
}

/* review rows inside the disclosure */
.tcas .review .q{padding:var(--s3) 0}
.tcas .review .q>summary{min-height:44px;list-style:none}
.tcas .review .q>summary::-webkit-details-marker{display:none}
.tcas .review .q>summary .qno{font-variant-numeric:tabular-nums;color:var(--ink2);min-width:2.2em}
.tcas .review .q>summary .topic{flex:1 1 100%;padding-left:calc(2.2em + var(--s2))}
.tcas .review .q>summary .more{margin-left:auto;color:var(--navy2);font-size:.88rem;white-space:nowrap}
.tcas .review .q[open]>summary .more{visibility:hidden}
.tcas .review .qgroup-h{margin:var(--s4) 0 0;font-size:.9rem;color:var(--ink2);font-weight:600}
.tcas .pill{font-size:.8rem;padding:3px 10px;white-space:nowrap}
.tcas .pill.n{background:#EEF0F5;color:#374151}
.tcas .review .stim-d{margin:var(--s2) 0}
.tcas .review .stim-d>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;color:var(--navy2)}

/* ---------- study plan ---------- */
.tcas .tc-seg{border:0;margin:0;padding:0;min-width:0}
.tcas .tc-seg legend{font-weight:700;margin:0 0 var(--s2);padding:0}
.tcas .seg-track{display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;padding:4px;
  border-radius:999px;background:rgba(27,42,107,.07);border:1px solid var(--tc-hair);max-width:100%}
.tcas .seg-track input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.tcas .seg-track label{display:flex;align-items:center;justify-content:center;gap:4px;min-height:44px;min-width:92px;
  padding:0 var(--s3);border-radius:999px;cursor:pointer;color:var(--ink2);font-weight:600;white-space:nowrap}
.tcas .seg-track input:checked+label{background:#fff;color:var(--navy);font-weight:700;box-shadow:0 2px 8px rgba(27,42,107,.14)}
.tcas .seg-track input:checked+label::before{content:"✓"}
.tcas .seg-track input:focus-visible+label{outline:3px solid var(--navy2);outline-offset:2px}
.tcas .tc-planform{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s4);align-items:flex-end}
@media(max-width:420px){.tcas .seg-track{display:grid;width:100%}.tcas .seg-track label{min-width:0;padding:0 8px}}

.tcas .tc-week{margin:0}
.tcas .tc-week+.tc-week{margin-top:var(--s3)}
.tcas .tc-week>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:var(--s3);
  padding:var(--s3) var(--s4);min-height:56px}
.tcas .tc-week>summary .wk{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--s3);flex:1 1 auto;min-width:0}
.tcas .tc-week>summary::-webkit-details-marker{display:none}
.tcas .tc-week>summary b{font-size:1.02rem}
.tcas .tc-week>summary .wk>span{color:var(--ink2);font-size:.92rem}
.tcas .tc-week>summary::after{content:"+";margin-left:auto;color:var(--ink2);font-size:1.3rem;line-height:1}
.tcas .tc-week[open]>summary::after{content:"−"}
.tcas .tc-days{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.tcas .tc-day{display:grid;grid-template-columns:7.2rem minmax(0,1fr) auto;gap:var(--s1) var(--s3);align-items:start;
  padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}
.tcas .tc-day:last-child{border-bottom:0;border-radius:0 0 var(--r) var(--r)}
.tcas .tc-day .dd b{display:block;font-size:.95rem;white-space:nowrap}
.tcas .tc-day .dd small{color:var(--ink2);font-size:.82rem}
.tcas .tc-day .dt{min-width:0;display:grid;gap:4px}
.tcas .tc-day .dt a.task{font-weight:600;color:var(--navy);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.tcas .tc-day .dt a.task:hover{text-decoration:underline;text-underline-offset:3px}
.tcas .tc-day .dt .okd{color:var(--good);font-weight:600;font-size:.86rem;margin-left:6px;white-space:nowrap}
.tcas .tc-day .dt small{color:var(--ink2);font-size:.86rem;line-height:1.5}
.tcas .tc-day .dx{margin:2px 0 0;font-size:.86rem;color:var(--ink2)}
.tcas .tc-day .dx span+span::before{content:" · "}
.tcas .tc-day .dtag{font-size:.82rem;font-weight:700;color:var(--tc-accent-ink);white-space:nowrap}
.tcas .tc-day .dtag.dmute{color:var(--ink2);font-weight:600}
.tcas .sec>.t-help,.tcas .sec>.tc-list+.t-help{margin-top:var(--s2)}
.tcas .tc-day.is-today{background:var(--tc-accent-soft);box-shadow:inset 3px 0 0 var(--tc-accent)}
.tcas .tc-day.is-done .dd b{color:var(--ink2)}
@media(max-width:560px){
  .tcas .tc-day{grid-template-columns:minmax(0,1fr) auto;padding:var(--s3)}
  .tcas .tc-day .dd{display:flex;gap:var(--s2);align-items:baseline}
  .tcas .tc-day .dt{grid-column:1/-1}
  .tcas .tc-day .dtag{grid-row:1;grid-column:2}
  .tcas .tc-week>summary{padding:var(--s3)}
}
.tcas .tc-prio{margin:var(--s2) 0 0;padding:0 0 0 1.4em;line-height:1.7}
.tcas .tc-prio li{margin:4px 0}
.tcas .tc-prio small{color:var(--ink2)}

/* ---------- lessons ---------- */
.tcas .tc-steps{list-style:none;counter-reset:st;margin:0;padding:0;display:grid;gap:var(--s3)}
.tcas .tc-steps li{counter-increment:st;display:grid;grid-template-columns:32px minmax(0,1fr);gap:var(--s3);line-height:1.75}
.tcas .tc-steps li::before{content:counter(st);width:30px;height:30px;border-radius:50%;background:var(--navy2);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:.88rem;font-variant-numeric:tabular-nums;margin-top:1px}
.tcas .tc-list{margin:0;padding:0;list-style:none;display:grid;gap:var(--s2)}
.tcas .tc-list li{position:relative;padding-left:22px;line-height:1.75}
.tcas .tc-list li::before{content:"";position:absolute;left:4px;top:.72em;width:8px;height:2px;background:var(--ink2);border-radius:1px}
.tcas .tc-sections{margin:0;padding:0;list-style:none;display:grid;gap:0}
.tcas .tc-sections li{padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);line-height:1.75}
.tcas .tc-sections li:last-child{border-bottom:0}
.tcas .tc-sections li b{display:block;color:var(--navy);margin-bottom:2px}
.tcas .tc-callout{margin:0;padding:var(--s3) var(--s4);border-radius:16px;background:rgba(30,58,138,.06);line-height:1.7;max-width:none}
.tcas .tc-callout b{color:var(--navy);margin-right:6px}
.tcas .tc-examples>.we{padding:var(--s4);border-bottom:1px solid var(--line)}
.tcas .tc-examples>.we:last-child{border-bottom:0}
.tcas .we .wn{margin:0 0 var(--s2);font-size:.86rem;color:var(--ink2);font-weight:600}
.tcas .we>details{margin-top:var(--s3)}
.tcas .we>details>summary{cursor:pointer;min-height:44px;display:inline-flex;align-items:center;font-weight:700;color:var(--navy2);
  list-style:none}
.tcas .we>details>summary::-webkit-details-marker{display:none}
.tcas .we>details>summary::after{content:"+";margin-left:10px;font-weight:400;color:var(--ink2)}
.tcas .we>details[open]>summary::after{content:"−"}
.tcas .tc-finish{margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
@media(max-width:760px){.tcas .tc-finish .btn{flex:1 1 100%}.tcas .tc-examples>.we{padding:var(--s3)}.tcas .tc-sections li{padding:var(--s3)}}

/* ---------- questions (runner, lessons, reviews) ---------- */
.tcas .qstem{font-size:1.12rem;line-height:1.75;margin:0 0 var(--s3);color:var(--ink)}
.tcas .qstem.inline{white-space:pre-line}
.tcas .qhint{margin:0 0 var(--s1);font-size:.9rem;color:var(--ink2)}
.tcas .opts{display:grid;gap:var(--s2);margin:0;padding:0;list-style:none}
.tcas .opt{display:flex;gap:var(--s3);align-items:center;min-height:56px;padding:12px 16px;border:1px solid var(--ctl-line);
  border-radius:14px;background:#fff;line-height:1.55;color:var(--ink)}
.tcas .opts:not(.rev) .opt{cursor:pointer}
.tcas .opts:not(.rev) .opt:hover{background:#F7F9FD}
.tcas .opt .k{flex:none;width:30px;height:30px;min-width:30px;border-radius:50%;border:1.5px solid var(--line2);display:grid;place-items:center;
  font-weight:700;font-size:.86rem;color:var(--navy)}
.tcas .opt.sel{border:2px solid var(--navy2);padding:11px 15px;background:#F3F6FE}
.tcas .opt.sel .k{background:var(--navy2);border-color:var(--navy2);color:#fff}
.tcas .opt .k::after,.tcas .opt.sel .k::after{content:""!important}
.tcas .opt .mark{margin-left:auto;font-size:.86rem;font-weight:700;white-space:nowrap;padding-left:var(--s2)}
.tcas .opt.right{background:var(--goodsoft);border:2px solid var(--good);padding:11px 15px}
.tcas .opt.right .k{background:var(--good);border-color:var(--good);color:#fff}
.tcas .opt.right .mark{color:var(--good)}
.tcas .opt.wrong{background:var(--critsoft);border:2px solid var(--crit);padding:11px 15px}
.tcas .opt.wrong .k{background:#fff;border-color:var(--crit);color:var(--crit)}
.tcas .opt.wrong .mark{color:var(--crit)}
.tcas .opt>span[lang]{flex:1 1 0%;min-width:0}
@media(max-width:420px){.tcas .opt{flex-wrap:wrap;gap:var(--s2) var(--s3)}.tcas .opt .mark{flex-basis:100%;margin-left:calc(30px + var(--s3));padding-left:0}}

/* explanation: key first → quote → why right → why each wrong option → trap → scoped rule → takeaway */
.tcas .expl{margin-top:var(--s3);padding:var(--s4);border-radius:18px;background:#F4F6FB;border:1px solid var(--tc-hair);line-height:1.7}
.tcas .expl>p,.tcas .expl>div,.tcas .expl>blockquote,.tcas .expl>details{margin:0 0 var(--s3)}
.tcas .expl>:last-child{margin-bottom:0}
.tcas .expl .verdict{font-weight:700;font-size:1.02rem;margin-bottom:var(--s1)}
.tcas .expl .verdict.v-ok{color:var(--good)}
.tcas .expl .verdict.v-no{color:var(--crit)}
.tcas .expl .ekey{font-size:1.04rem}
.tcas .expl .ekey b{color:var(--good)}
.tcas .expl .ev{margin-left:0;margin-right:0;padding:var(--s2) var(--s3);border-left:3px solid var(--navy2);background:#fff;border-radius:0 12px 12px 0}
.tcas .expl .ev small{display:block;font-size:.82rem;color:var(--ink2);font-weight:600}
.tcas .expl .lb{display:block;font-weight:700;color:var(--ink);margin-bottom:2px}
.tcas .expl .emine{padding:var(--s2) var(--s3);background:#fff;border-radius:12px;border:1px solid rgba(180,35,24,.25)}
.tcas .expl .emine .lb{color:var(--crit)}
.tcas .expl .ewrong>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;color:var(--navy);list-style:none}
.tcas .expl .ewrong>summary::-webkit-details-marker{display:none}
.tcas .expl .ewrong>summary::after{content:"+";margin-left:10px;font-weight:400;color:var(--ink2)}
.tcas .expl .ewrong[open]>summary::after{content:"−"}
.tcas .expl ul.why{margin:var(--s1) 0 0;padding:0;list-style:none;display:grid;gap:var(--s2)}
.tcas .expl ul.why li{line-height:1.65}
.tcas .expl ul.why li b{display:block}
.tcas .expl .take{border-left:3px solid var(--navy2);padding-left:var(--s3);font-weight:500}
@media(max-width:760px){.tcas .expl{padding:var(--s3)}}

/* ================================================================== runner */
.tcas.run .runwrap{max-width:calc(var(--tc-col) + 32px);padding:0 16px 136px}
.tcas.run.has-pane .runwrap{max-width:var(--tc-wide)}
.tcas .runbar{position:sticky;top:0;z-index:20;display:block;margin:0 -16px;padding:8px 16px 0;border-bottom:0;
  background:rgba(241,243,248,.86);box-shadow:0 0 0 100vmax rgba(241,243,248,.86);clip-path:inset(0 -100vmax);
  -webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%)}
.tcas .runbar .rb-row{display:flex;align-items:center;gap:var(--s3);min-height:48px}
.tcas .runbar .rx{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 12px 0 6px;border-radius:999px;
  border:1px solid var(--tc-hair);background:rgba(255,255,255,.7);color:var(--ink);text-decoration:none;font-size:.92rem;font-weight:600}
.tcas .runbar .rx svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tcas .runbar .rt{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;color:var(--ink)}
.tcas .runbar .rp{margin-left:0;color:var(--ink2);font-size:.92rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.tcas .runbar .timer{margin-left:0;display:inline-flex;align-items:center;gap:6px;font-size:1.15rem;font-weight:700;color:var(--navy);
  font-variant-numeric:tabular-nums;white-space:nowrap;font-family:inherit}
.tcas .runbar .timer svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.tcas .runbar .timer.low{color:var(--crit)}
.tcas .runbar .tlow{font-size:.82rem;font-weight:700;color:var(--crit);white-space:nowrap}
.tcas .runbar .rb-bar{height:4px;margin:6px -16px 0;background:rgba(27,42,107,.08)}
.tcas .runbar .rb-bar i{display:block;height:100%;width:0;background:var(--navy2);transition:width .25s ease}
.tcas .save{margin:var(--s1) 0 0;font-size:.82rem;min-height:1.3em;color:var(--ink2);text-align:right}
.tcas .save.bad{color:var(--crit)}
@media(max-width:560px){.tcas .runbar .rx{min-width:44px;justify-content:center}.tcas .runbar .rp{display:none}.tcas .runbar .rx span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.tcas .runbar .rx{padding:0 10px}}

.tcas .tgrun{display:grid;gap:var(--s3);padding-top:var(--s2)}
.tcas .qcard{padding:var(--s2) 0 0}
.tcas .qtop{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s2);margin:0 0 var(--s3);font-size:.88rem;color:var(--ink2)}
.tcas .qtop .qno{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.tcas .qtop .flag{margin-left:auto;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:999px;
  border:1px solid var(--line2);background:#fff;color:var(--ink);font:inherit;font-size:.88rem;font-weight:600;cursor:pointer}
.tcas .qtop .flag[aria-pressed=true]{border-color:var(--warn);background:var(--warnsoft);color:#7A3E00}
.tcas .retry-tag{display:inline-flex;align-items:center;font-size:.82rem;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--soft);color:var(--navy)}
.tcas .qcard .qstem{font-size:1.2rem;line-height:1.75;font-weight:500}
@media(max-width:760px){.tcas .qcard .qstem{font-size:1.1rem}}

/* passage pane: beside the questions on desktop, above them (sticky when there is room, collapsible) on mobile */
.tcas .tc-pane{background:var(--tc-read);border:1px solid rgba(27,42,107,.12);border-radius:18px;overflow:hidden;
  display:flex;flex-direction:column;box-shadow:var(--tc-lift)}
.tcas .tc-pane .pane-h{display:flex;align-items:center;gap:var(--s2);min-height:52px;padding:4px 6px 4px var(--s3);
  background:#fff;border-bottom:1px solid var(--line)}
.tcas .tc-pane .sk{margin:0;flex:1 1 auto;min-width:0;font-size:.86rem;color:var(--ink2);line-height:1.4}
.tcas .tc-pane .sk b{color:var(--ink);font-weight:700}
.tcas .tc-pane .pane-t{flex:none;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--line2);background:#fff;
  color:var(--navy);font:inherit;font-size:.86rem;font-weight:700;cursor:pointer}
.tcas .tc-pane .pane-b{padding:var(--s3) var(--s4) var(--s4);overflow:auto;max-height:var(--tc-pane-mh);line-height:1.8;overscroll-behavior:contain}
.tcas .tc-pane .pane-b:focus-visible{outline:3px solid var(--navy2);outline-offset:-3px}
.tcas .tc-pane .pane-b h2{font-size:1rem;margin:0 0 var(--s2);color:var(--ink)}
.tcas .tc-pane .pane-b p{margin:0 0 var(--s3);font-size:1.04rem;max-width:var(--tc-measure)}
.tcas .tc-pane.closed .pane-b{display:none}
.tcas .tc-pane.closed .pane-h{border-bottom:0}
@media(max-width:959px) and (min-height:700px){
  .tcas .tgrun.split .tc-pane{position:sticky;top:66px;z-index:5}
}
@media(min-width:960px){
  .tcas .tgrun.split{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:var(--s5);align-items:start}
  .tcas .tgrun.split .tc-pane{position:sticky;top:76px;max-height:calc(100dvh - 76px - 112px)}
  .tcas .tgrun.split .tc-pane .pane-b{max-height:none;flex:1 1 auto}
  .tcas .tgrun.split .tc-pane.closed .pane-b{display:block}
  .tcas .tc-pane .pane-t{display:none}
  .tcas .tgrun.split .qcard{padding-top:var(--s1)}
}
/* stimulus rendered on result/lesson/notebook pages */
.tcas .stim{background:var(--tc-read);border:1px solid rgba(27,42,107,.12);border-radius:16px;padding:var(--s3) var(--s4);
  line-height:1.8;margin:0 0 var(--s3);max-height:22rem;overflow:auto}
.tcas .stim:focus-visible{outline:3px solid var(--navy2);outline-offset:2px}
.tcas .stim h2{font-size:1rem;margin:0 0 var(--s2)}
.tcas .stim p{margin:0 0 var(--s2);font-size:1.02rem}
.tcas .conv{margin:0;display:grid;gap:var(--s2)}
.tcas .conv div{display:grid;grid-template-columns:minmax(3.6rem,max-content) minmax(0,1fr);gap:var(--s3);font-size:1.04rem}
.tcas .conv dt{font-weight:700;color:var(--navy)}
.tcas .conv dd{margin:0}
/* blanks: a number chip + an empty line; the current one is filled navy with a thicker line (not colour only) */
.tcas .blank{display:inline-flex;align-items:baseline;gap:4px;padding:0 2px;border-radius:6px;white-space:nowrap;vertical-align:baseline}
.tcas .blank .bn{display:inline-block;min-width:1.6em;padding:0 5px;border-radius:6px;background:var(--soft);color:var(--navy);
  font-weight:700;font-size:.82em;text-align:center;font-variant-numeric:tabular-nums}
.tcas .blank .bt{display:inline-block;min-width:3.6em;border-bottom:2px solid var(--line2);line-height:1.2;color:var(--ink);font-weight:600}
.tcas .blank.cur{background:rgba(30,58,138,.08);box-shadow:0 0 0 2px rgba(30,58,138,.28)}
.tcas .blank.cur .bn{background:var(--navy2);color:#fff}
.tcas .blank.cur .bt{border-bottom:3px solid var(--navy2)}

/* footer: one floating glass pill, same width at every size */
.tcas .runfoot{left:50%;right:auto;transform:translateX(-50%);width:min(600px,calc(100% - 24px));justify-content:space-between;
  gap:var(--s2);padding:8px;background:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.9);
  -webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%);box-shadow:0 12px 32px rgba(27,42,107,.16);z-index:30}
.tcas .runfoot .btn{flex:1 1 0;min-width:0;padding:0 12px;white-space:nowrap}
.tcas .runfoot .btn.pal-t{flex:0 1 auto;font-variant-numeric:tabular-nums;padding:0 14px}
.tcas .runfoot .btn.pal-t svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2}
.tcas .runfoot #btnSubmit.fin{background:var(--tc-accent);color:#fff!important;border:0;box-shadow:0 8px 18px rgba(194,65,12,.22)}
.tcas .runfoot #btnPrev[disabled]{background:transparent;border-color:var(--line);color:#6B7280!important}
@media(max-width:360px){.tcas .runfoot .btn{padding:0 8px;font-size:.9rem}.tcas .runfoot .btn.pal-t{padding:0 10px}}

/* question palette: a bottom sheet (dialog), not an always-open grid under every question */
.tcas .tc-sheet{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:rgba(22,33,58,.34)}
.tcas .tc-sheet-in{width:min(560px,100%);max-height:82dvh;overflow:auto;background:#fff;border-radius:24px 24px 0 0;
  padding:var(--s4) var(--s4) max(var(--s4),env(safe-area-inset-bottom));box-shadow:0 -12px 40px rgba(27,42,107,.2)}
.tcas .tc-sheet-in h2{font-size:1.1rem;margin:0 0 var(--s1)}
.tcas .tc-sheet-in .t-help{margin:0 0 var(--s3)}
.tcas .tc-sheet-in .sheet-f{display:flex;justify-content:flex-end;gap:var(--s3);margin-top:var(--s2);flex-wrap:wrap}
.tcas .tc-sheet-in #palSum{margin:var(--s3) 0 0}
.tcas .btn.sub-x{background:#fff;color:var(--crit)!important;border:1.5px solid var(--crit);box-shadow:none;margin-right:auto}
.tcas .btn.sub-x:hover{background:var(--critsoft)}
@media(min-width:761px){.tcas .tc-sheet{align-items:center}.tcas .tc-sheet-in{border-radius:24px}}
.tcas .palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:8px;margin:0}
.tcas .palette button{position:relative;min-height:48px;border-radius:12px;border:1px solid var(--ctl-line);background:#fff;
  font:inherit;font-weight:600;color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums}
.tcas .palette button.ans{background:var(--soft);border-color:var(--navy2);color:var(--navy)}
.tcas .palette button.ans::after{content:"✓";position:absolute;top:1px;right:5px;font-size:.66rem;font-weight:700}
.tcas .palette button.flag::before{content:"⚑";position:absolute;top:1px;left:5px;font-size:.72rem;color:#92400E}
.tcas .palette button.cur{outline:3px solid var(--navy2);outline-offset:2px}
.tcas .palette-sec{grid-column:1/-1;margin:var(--s3) 0 0;font-size:.86rem;font-weight:700;color:var(--ink2)}
.tcas .palette-sec:first-child{margin-top:0}

/* ================================================================== session intro / result / notebook */
.tcas .tc-meta{display:flex;flex-wrap:wrap;gap:var(--s2);margin:0;padding:0;list-style:none}
.tcas .tc-meta li{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:999px;background:#fff;
  border:1px solid var(--tc-hair);font-size:.92rem;color:var(--ink)}
.tcas .tc-meta li b{font-variant-numeric:tabular-nums;color:var(--navy)}
.tcas .tc-rules{margin:0;padding:var(--s2) var(--s4)}
.tcas .tc-rules li{padding:var(--s2) 0 var(--s2) 28px;position:relative;line-height:1.65;border-bottom:1px solid var(--line)}
.tcas .tc-rules li:last-child{border-bottom:0}
.tcas .tc-rules li::before{content:"";position:absolute;left:4px;top:1.15em;width:10px;height:10px;border-radius:50%;border:2px solid var(--navy2)}
.tcas .tc-rows>li{display:flex;gap:var(--s3);align-items:center;padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}
.tcas .tc-rows>li:last-child{border-bottom:0}
.tcas .tc-rows .rb{flex:1 1 auto;min-width:0}
.tcas .tc-rows .rb b{display:block;line-height:1.5}
.tcas .tc-rows .rb small{display:block;color:var(--ink2);font-size:.86rem;line-height:1.5}
.tcas .tc-rows .rv{font-weight:700;color:var(--navy);white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:760px){.tcas .tc-rows>li,.tcas .tc-rules{padding-left:var(--s3);padding-right:var(--s3)}}
.tcas .tc-empty{padding:var(--s4);color:var(--ink2);line-height:1.7}
.tcas .tc-empty b{display:block;color:var(--ink);margin-bottom:2px}

/* mistake notebook */
.tcas .tc-group-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--s3);margin:0 0 var(--s2)}
.tcas .tc-group-h .t-section{margin:0;flex:1 1 18rem}
.tcas .tc-group-h .t-help{flex:1 1 100%;margin:2px 0 0}
.tcas .mlist{margin-top:var(--s2)}
.tcas .mlist .mistake{padding:0 var(--s4);border-bottom:1px solid var(--line)}
.tcas .mlist .mistake:last-child{border-bottom:0}
.tcas .mlist .mistake>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:var(--s3);row-gap:2px;
  align-items:center;min-height:64px;padding:var(--s2) 0;cursor:pointer;list-style:none}
.tcas .mlist .mistake>summary::-webkit-details-marker{display:none}
.tcas .mlist .mistake>summary>b{font-size:1rem;line-height:1.45}
.tcas .mlist .mistake>summary>small{grid-column:2/3;font-size:.86rem;color:var(--ink2);line-height:1.5}
.tcas .mlist .mistake>summary>.more{grid-column:3;grid-row:1/3;margin:0;font-size:.88rem;color:var(--navy2);font-weight:600;white-space:nowrap}
.tcas .mlist .mistake[open]>summary>.more{visibility:hidden}
.tcas .mlist .mistake[open]{padding-bottom:var(--s4)}
.tcas .mst{grid-row:1/3;font-size:.8rem;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap;background:#EEF0F5;color:#374151}
.tcas .mst.open{background:var(--critsoft);color:var(--crit)}
.tcas .mst.ok{background:var(--goodsoft);color:var(--good)}
.tcas .mlist .mistake.is-cleared>summary>b{color:var(--ink2);font-weight:600}
@media(max-width:760px){.tcas .mlist .mistake{padding:0 var(--s3)}}

/* tables (progress) */
.tcas .tc-table-w{overflow-x:auto}
.tcas table.tc-table{border-collapse:collapse;width:100%;font-size:.95rem}
.tcas table.tc-table th,.tcas table.tc-table td{padding:12px var(--s3);border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.tcas table.tc-table thead th{font-size:.84rem;color:var(--ink2);font-weight:600;background:#FAFBFD}
.tcas table.tc-table tbody tr:last-child>*{border-bottom:0}
.tcas table.tc-table td{font-variant-numeric:tabular-nums;white-space:nowrap}
.tcas table.tc-table th[scope=row]{font-weight:600}
.tcas table.tc-table td.na{color:var(--ink2)}
.tcas table.tc-table thead th:first-child{border-top-left-radius:var(--r)}
.tcas table.tc-table thead th:last-child{border-top-right-radius:var(--r)}

/* ---------- access / entitlement ---------- */
.tcas .tc-access{padding:var(--s4)}
.tcas .tc-access .ah{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);margin:0 0 var(--s3)}
.tcas .tc-access .ah b{font-size:1.05rem}
.tcas .state{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.86rem;padding:4px 12px;border-radius:999px;white-space:nowrap}
.tcas .state.ACTIVE{background:var(--goodsoft);color:var(--good)}
.tcas .state.NONE{background:#EEF0F5;color:#374151}
.tcas .state.EXPIRED{background:var(--critsoft);color:var(--crit)}
.tcas .tc-until{margin:0 0 var(--s3);font-size:1.5rem;font-weight:800;line-height:1.45;color:var(--navy)}
.tcas .tc-until .nw{display:inline-block}
.tcas .tc-until .t{font-size:1.15rem;font-weight:700;color:var(--ink)}
.tcas .tc-dl{margin:0;display:grid;grid-template-columns:minmax(8.5rem,max-content) minmax(0,1fr);border-top:1px solid var(--line)}
.tcas .tc-dl dt,.tcas .tc-dl dd{margin:0;padding:var(--s2) 0;border-bottom:1px solid var(--line);line-height:1.6}
.tcas .tc-dl dt{color:var(--ink2);font-size:.92rem;padding-right:var(--s3)}
.tcas .tc-dl dd{font-weight:500}
.tcas .tc-dl>:nth-last-child(-n+2){border-bottom:0}
.tcas .tc-dl .ref{font-variant-numeric:tabular-nums;letter-spacing:.02em}
.tcas .tc-flag{margin:var(--s3) 0 0;padding:var(--s2) var(--s3);border-radius:12px;background:var(--warnsoft);color:#7A3E00;line-height:1.6;font-size:.95rem}
.tcas .tc-flag b{display:block;color:#5C2E00}
@media(max-width:560px){
  .tcas .tc-access{padding:var(--s3)}
  .tcas .tc-until{font-size:1.3rem}
  .tcas .tc-dl{grid-template-columns:1fr}
  .tcas .tc-dl dt{border-bottom:0;padding-bottom:0}
  .tcas .tc-dl>:nth-last-child(2){border-bottom:0}
}
.tcas .tc-soon{padding:var(--s4)}
.tcas .tc-soon .ah{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);align-items:center;margin:0 0 var(--s2)}
.tcas .tc-soon p{margin:0 0 var(--s2);color:var(--ink2);line-height:1.7}
.tcas .tc-soon p:last-child{margin:0}
@media(max-width:560px){.tcas .tc-soon{padding:var(--s3)}}

/* ================================================================== public pages */
.tcas-pub .tc-pub{max-width:var(--tc-wide);margin:0 auto;padding:0 var(--s4) var(--s6)}
.tcas-pub .tc-narrow{max-width:calc(var(--tc-col) + 48px);margin:0 auto;padding:var(--s5) var(--s4) var(--s6)}
.tcas-pub .sp-top .t small{white-space:nowrap}
.tcas .sp-top nav a[aria-current]{color:var(--navy);box-shadow:inset 0 -2px 0 var(--navy)}
.tcas .sp-logo .t b i{color:var(--tc-accent-ink)}
.tcas .tc-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px;align-items:center;padding:64px 0 8px}
.tcas .tc-hero h1{font-size:2.6rem;line-height:1.35;color:var(--navy);margin:var(--s2) 0 var(--s3);max-width:20ch}
.tcas .tc-hero h1 .ln{white-space:nowrap}
.tcas .tc-hero .sp-lede{color:var(--ink2);max-width:48ch}
.tcas .tc-mech{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;margin:0 0 var(--s4);padding:0;list-style:none}
.tcas .tc-mech li{font-weight:700;color:var(--navy);font-size:1rem}
.tcas .tc-mech li+li::before{content:"→";color:var(--line2);font-weight:400;margin:0 var(--s2)}
.tcas .tc-cta{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);align-items:center}
.tcas .tc-cta .t-help{flex:1 1 100%;margin:var(--s1) 0 0}
.tcas .tc-bp{padding:var(--s4)}
.tcas .tc-bp figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2);flex-wrap:wrap;margin:0 0 var(--s3)}
.tcas .tc-bp figcaption b{font-size:1.02rem}
.tcas .tc-bp figcaption span{color:var(--ink2);font-size:.92rem;white-space:nowrap}
.tcas .bp-sec{margin:var(--s3) 0 var(--s1);font-size:.82rem;font-weight:700;color:var(--ink2)}
.tcas .bp-sec:first-of-type{margin-top:0}
.tcas .bp-rows{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}
.tcas .bp-rows li{display:grid;grid-template-columns:minmax(0,1fr) 5.2rem;gap:4px var(--s3);align-items:center}
.tcas .bp-rows .bp-n{line-height:1.35}
.tcas .bp-rows .bp-n small{display:block;color:var(--ink2);font-size:.78rem}
.tcas .bp-rows .bp-v{text-align:right;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap}
.tcas .bp-rows .bp-bar{grid-column:1/-1;height:6px;border-radius:3px;background:rgba(27,42,107,.08);overflow:hidden}
.tcas .bp-rows .bp-bar i{display:block;height:100%;background:var(--navy2);border-radius:3px}
.tcas .tc-bp .t-help{margin:var(--s3) 0 0;font-size:.84rem}
.tcas .tc-sec{padding:72px 0 0}
.tcas .tc-sec>.t-label{margin:0 0 var(--s1)}
.tcas .tc-sec h2{font-size:1.6rem;font-weight:800;color:var(--ink);margin:0 0 var(--s3);max-width:26ch}
.tcas .sp-how li::before{background:var(--navy)}
.tcas .tc-prods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);margin-top:var(--s4)}
.tcas .tc-prods>div{padding:var(--s4);border-top:2px solid var(--line)}
.tcas .tc-prods>div.is-on{border-top:0;border-radius:var(--r);background:#fff;box-shadow:var(--tc-lift);outline:1.5px solid rgba(27,42,107,.28)}
.tcas .tc-prods h3{font-size:1.1rem;margin:0 0 var(--s1)}
.tcas .tc-prods p{margin:0 0 var(--s2);color:var(--ink2);line-height:1.65}
.tcas .tc-prods .st{display:inline-block;font-size:.82rem;font-weight:700;color:var(--ink2);margin:0 0 var(--s1)}
.tcas .tc-inc{list-style:none;margin:0;padding:0}
.tcas .tc-inc li{position:relative;padding:var(--s2) 0 var(--s2) 28px;border-bottom:1px solid var(--line);line-height:1.6}
.tcas .tc-inc li:last-child{border-bottom:0}
.tcas .tc-inc li::before{content:"✓";position:absolute;left:2px;top:var(--s2);color:var(--good);font-weight:700}
.tcas .tc-inc li small{display:block;color:var(--ink2);font-size:.86rem}
.tcas .tc-msg{max-width:560px;padding:var(--s6) 0}
@media(max-width:980px){
  .tcas .tc-hero{grid-template-columns:1fr;gap:var(--s5);padding-top:var(--s5)}
  .tcas .tc-hero h1{font-size:2.2rem}
}
@media(max-width:760px){
  .tcas-pub .tc-pub,.tcas-pub .tc-narrow{padding-left:var(--s3);padding-right:var(--s3)}
  .tcas-pub .tc-narrow{padding-top:var(--s4)}
  .tcas .tc-hero{padding-top:var(--s4)}
  .tcas .tc-hero h1{font-size:1.8rem}
  .tcas .tc-cta .btn{flex:1 1 100%}
  .tcas .tc-sec{padding-top:52px}
  .tcas .tc-sec h2{font-size:1.35rem}
  .tcas .tc-prods{grid-template-columns:1fr;gap:var(--s3)}
  .tcas .tc-bp{padding:var(--s3)}
}
@media(max-width:360px){.tcas .tc-hero h1{font-size:1.6rem}}

/* narrow public pages (diagnostic intro, errors): same rhythm as the app page */
.tcas .tc-narrow>*+*{margin-top:var(--s4)}
.tcas .tc-narrow>h1{margin:var(--s1) 0 var(--s1)}
.tcas .tc-narrow>h1+.sub{margin-top:0}
.tcas .tc-narrow>.sec,.tcas .tc-narrow>.actions{margin-top:var(--s5)}
.tcas .tc-bp-sec .tc-bp{max-width:560px}
.tcas .tc-hero-dev{grid-template-columns:1fr;padding-bottom:0}

/* owner review panel (dev only) */
.tcas .cards2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:var(--s3);margin:var(--s4) 0}
.tcas .cards2 .panel{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--tc-hair);box-shadow:var(--tc-lift);backdrop-filter:none}
.tcas .cards2 .panel h2{font-size:1.05rem;margin:0}
.tcas .cards2 .panel p{margin:0;line-height:1.6}
.tcas .cards2 .panel .row{margin-top:auto;padding-top:8px}
.tcas-pub .panel .mono,.tcas-pub .panel li{overflow-wrap:anywhere}
.tcas .tc-review-sec{padding:var(--s4);margin-top:var(--s3);overflow-wrap:anywhere}
.tcas .tc-review-sec li a{display:inline-flex;align-items:center;min-height:44px}

/* ---------- footer ---------- */
.tcas .tg-foot{max-width:calc(var(--tc-col) + 48px);margin:var(--s6) auto 120px;padding:var(--s4) var(--s4) 0;color:var(--ink2);
  font-size:.8rem;line-height:1.6;border-top:1px solid var(--tc-hair)}
.tcas .tg-foot p{margin:0 0 var(--s1)}
@media(min-width:761px){body.app.tcas .tg-foot{margin-left:calc(232px + max(0px,(100% - 232px - var(--tc-col) - 48px) / 2));margin-bottom:var(--s5)}}
.tcas-pub .tg-foot{max-width:var(--tc-wide);margin-bottom:var(--s5)}
.tcas.run .tg-foot{display:none}

/* ---------- focus, motion, transparency ---------- */
.tcas .opt:focus-visible,.tcas .palette button:focus-visible,.tcas .pane-t:focus-visible,.tcas .flag:focus-visible,
.tcas .tp-sets a:focus-visible,.tcas summary:focus-visible,.tcas .chev:focus-visible,.tcas .rx:focus-visible,
.tcas .who:focus-visible,.tcas .btn:focus-visible{outline:3px solid var(--navy2);outline-offset:2px}
.tcas .nextcard a:focus-visible,.tcas .nextcard button:focus-visible{outline-color:#fff}
@media (prefers-reduced-motion:reduce){
  .tcas *,.tcas *::before,.tcas *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
@media (prefers-reduced-transparency:reduce){
  .tcas .topbar,.tcas .sb,.tcas .mnav,.tcas .runbar,.tcas .runfoot,.tcas .sp-top,.tcas .btn.ghost,.tcas .tg-proto{
    background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
}
.tcas .tc-table-w{scroll-margin:100px 0 120px}

/* ================================================================== sale page (flow 16) — 760 reading column,
   white paper sections, one orange primary per view, samples = real components labelled ตัวอย่าง */
.tcas .tc-sale{max-width:calc(var(--tc-col) + 48px);margin:0 auto;padding:0 var(--s4) var(--s6)}
.tcas .ts-hero{padding:64px 0 var(--s2)}
.tcas .ts-hero h1{font-size:2.6rem;line-height:1.35;color:var(--navy);margin:var(--s2) 0 var(--s3)}
.tcas .ts-hero .sp-lede{color:var(--ink);font-size:1.12rem;max-width:40ch}
.tcas .ts-for{margin:0 0 var(--s4);color:var(--ink2);line-height:1.7;max-width:52ch}
.tcas .ts-hero .t-help{margin:var(--s3) 0 0}
.tcas .ts-sec{margin-top:64px}
.tcas .ts-sec>h2{font-size:1.5rem;font-weight:800;line-height:1.4;color:var(--ink);margin:0 0 var(--s3)}
.tcas .ts-sec>.t-label{margin:0 0 var(--s1)}
.tcas .ts-sec>.sp-lede{color:var(--ink2);margin:0 0 var(--s4);max-width:56ch}
.tcas .ts-recog{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}
.tcas .ts-recog li{padding:var(--s3) var(--s4);background:#fff;border-radius:16px;border:1px solid var(--tc-hair);
  font-size:1.05rem;line-height:1.65;color:var(--ink)}
.tcas .ts-free{padding:var(--s5) var(--s4)}
.tcas .ts-free>h2{margin:0 0 var(--s2)}
.tcas .ts-free>p{margin:0 0 var(--s3);color:var(--ink2);line-height:1.7}
.tcas .ts-free .ts-act{margin:var(--s4) 0 0}
.tcas .ts-demo{margin:0}
.tcas .ts-demo>figcaption{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2);margin:0 0 var(--s2);font-size:.86rem;color:var(--ink2)}
.tcas .ts-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:#EEF0F5;color:#374151;font-weight:700;font-size:.8rem}
.tcas .ts-start{margin:0 0 var(--s2);font-size:1.05rem}
.tcas .ts-start b{color:var(--navy)}
.tcas .ts-start span{display:block;color:var(--ink2);font-size:.92rem}
.tcas .ts-steps li b{display:block;color:var(--ink)}
.tcas .ts-steps li span{color:var(--ink2)}
.tcas .ts-days .tc-day{grid-template-columns:5.5rem minmax(0,1fr)}
.tcas .ts-days .task-s{font-weight:600;color:var(--navy)}
.tcas .ts-days .tc-day:last-child{border-radius:0 0 var(--r) var(--r)}
.tcas .ts-paper{background:#fff;border:1px solid var(--tc-hair);border-radius:var(--r);box-shadow:var(--tc-lift);padding:var(--s4)}
.tcas .ts-row{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--s3);row-gap:2px;align-items:center;padding:var(--s3) var(--s4)!important}
.tcas .ts-row>b{font-size:1rem;line-height:1.45}
.tcas .ts-row>small{grid-column:2;color:var(--ink2);font-size:.86rem}
.tcas .ts-inc{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:0}
.tcas .ts-inc .tc-inc{padding:var(--s3) var(--s4)}
.tcas .ts-buy{padding:var(--s4);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:var(--s2);justify-content:center}
.tcas .ts-buy p{margin:0}
.tcas .ts-term{font-size:1.02rem;line-height:1.6}
.tcas .ts-term b{color:var(--navy)}
.tcas .ts-price{padding:var(--s2) var(--s3);border-radius:12px;background:var(--warnsoft);color:#5C2E00;font-weight:700}
.tcas .ts-price small{font-weight:500}
.tcas .ts-buy .btn{margin-top:var(--s2);width:100%}
@media(min-width:1024px){.tcas .tc-sale>.ts-wide{margin-left:-100px;margin-right:-100px}}
.tcas .ts-cmp{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--tc-hair);border-radius:var(--r);
  box-shadow:var(--tc-lift);overflow:hidden;font-size:.95rem}
.tcas .ts-cmp th,.tcas .ts-cmp td{padding:12px var(--s3);border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.55}
.tcas .ts-cmp tbody tr:last-child>*{border-bottom:0}
.tcas .ts-cmp thead th{font-size:.86rem;color:var(--ink2);font-weight:600;background:#FAFBFD}
.tcas .ts-cmp th[scope=row]{font-weight:700;color:var(--ink)}
.tcas .ts-cmp td{color:var(--ink2)}
.tcas .ts-cmp .is-us{background:rgba(30,58,138,.05);color:var(--navy);font-weight:600}
.tcas .ts-cmp thead .is-us{color:var(--navy);font-weight:800}
.tcas .ts-wide>.t-help{margin-top:var(--s2)}
.tcas .sp-faq details p{color:var(--ink2)}
.tcas .ts-parent{margin:0 0 var(--s3);padding:var(--s3);border-radius:14px;background:rgba(30,58,138,.06);line-height:1.7;color:var(--ink)}
.tcas .ts-parent b{display:block;color:var(--navy)}
.tcas .ts-final{padding:var(--s5) var(--s4);text-align:left}
.tcas .ts-final>h2{margin:0 0 var(--s2)}
.tcas .ts-final>p{margin:0 0 var(--s4);color:var(--ink2)}
@media(max-width:760px){
  .tcas .tc-sale{padding:0 var(--s3) var(--s5)}
  .tcas .ts-hero{padding-top:var(--s4)}
  .tcas .ts-hero h1{font-size:2rem}
  .tcas .ts-sec{margin-top:52px}
  .tcas .ts-sec>h2{font-size:1.3rem}
  .tcas .ts-free,.tcas .ts-final{padding:var(--s4) var(--s3)}
  .tcas .ts-inc{grid-template-columns:1fr}
  .tcas .ts-inc .tc-inc{padding:var(--s2) var(--s3)}
  .tcas .ts-buy{border-left:0;border-top:1px solid var(--line);padding:var(--s3)}
  .tcas .ts-paper{padding:var(--s3)}
  .tcas .ts-row{padding:var(--s3)!important}
  .tcas .ts-days .tc-day{grid-template-columns:1fr}
}
/* comparison: a real table on wide screens, one block per row on phones (no sideways scroll) */
@media(max-width:700px){
  .tcas .ts-cmp,.tcas .ts-cmp tbody,.tcas .ts-cmp tr,.tcas .ts-cmp th,.tcas .ts-cmp td{display:block}
  .tcas .ts-cmp thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tcas .ts-cmp tbody tr{border-bottom:1px solid var(--line);padding:var(--s2) 0}
  .tcas .ts-cmp tbody tr:last-child{border-bottom:0}
  .tcas .ts-cmp th[scope=row]{border:0;padding:var(--s2) var(--s3) var(--s1)}
  .tcas .ts-cmp td{display:grid;grid-template-columns:8.5rem minmax(0,1fr);gap:var(--s2);border:0;padding:4px var(--s3)}
  .tcas .ts-cmp td::before{content:attr(data-label);color:var(--ink2);font-weight:500}
  .tcas .ts-cmp td.is-us{background:none;border-radius:0}
  .tcas .ts-cmp td.is-us::before{color:var(--navy);font-weight:700}
}
.tcas .ts-hero .sp-lede{max-width:46ch}
.tcas .ts-buy{justify-content:flex-start}
@media(min-width:701px){
  .tcas .ts-cmp{table-layout:fixed}
  .tcas .ts-cmp thead th:first-child{width:24%}
  .tcas .ts-cmp thead th.is-us{width:24%}
  .tcas .ts-cmp th[scope=row]{background:#fff}
}

/* Phase 3 plan: completion + plan choices */
.tcas .tc-complete{margin:var(--s3) 0;padding:var(--s3);background:var(--tc-paper);border:1px solid var(--tc-hair);border-radius:var(--rc)}
.tcas .tc-complete p{margin:0 0 8px;line-height:1.5}
.tcas .tc-complete p span{color:var(--ink2)}
.tcas .tc-complete .bar{height:8px;border-radius:99px;background:var(--soft);overflow:hidden}
.tcas .tc-complete .bar i{display:block;height:100%;background:var(--navy)}
.tcas .tc-planchoice{display:grid;gap:var(--s3)}
@media (min-width:768px){.tcas .tc-planchoice{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}
.tcas .tc-note{padding:var(--s3);border:1px solid var(--line2);border-radius:var(--rc);background:var(--tc-paper);margin:var(--s3) 0}
.tcas .tc-note p{margin:0 0 8px}
.tcas .tc-form{display:grid;gap:10px;padding:var(--s3);margin:var(--s3) 0}
.tcas .tc-form input{min-height:48px;font-size:1.05rem;padding:0 12px;border:1px solid var(--line2);border-radius:var(--rc)}
.tcas .tc-sample{padding:var(--s3);margin:var(--s2) 0 var(--s3)}
.tcas .ts-inv{padding:var(--s2) var(--s3)}
.tcas .ts-invrow{display:grid;gap:2px;padding:12px 0;border-bottom:1px solid var(--tc-hair)}
.tcas .ts-invrow:last-child{border-bottom:0}
.tcas .ts-invrow small,.tcas .ts-pats{color:var(--ink2);line-height:1.5}
.tcas .ts-fit{display:grid;gap:var(--s3)}
.tcas .ts-fit>div{padding:var(--s3)}
@media (min-width:768px){.tcas .ts-fit{grid-template-columns:1fr 1fr}}
.tcas .tc-form label{display:block;min-height:44px;padding:10px 0 0;font-weight:600}
.tcas .ts-pats summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--navy2)}
.tcas .ts-pats p{margin:0 0 8px}
/* 19 Sep 2026: lead form (email before the free test) and checkout */
.tcas .tc-form .tc-check{display:flex;gap:10px;align-items:flex-start;font-weight:400;min-height:44px;padding:8px 0 0;line-height:1.5}
.tcas .tc-form .tc-check input{min-height:0;width:22px;height:22px;flex:none;margin:2px 0 0;padding:0}
.tcas .tc-form .bad{margin:0;color:#b42318;font-weight:600}
.tcas .tc-form fieldset{border:0;padding:0;margin:0;display:grid;gap:6px}
.tcas .tc-form legend{font-weight:700;padding:0 0 4px}
.tcas .tc-form .tc-role{display:flex;gap:10px;align-items:flex-start;font-weight:400;padding:10px 12px;border:1px solid var(--line2);border-radius:var(--rc);min-height:44px}
.tcas .tc-form .tc-role input{min-height:0;width:22px;height:22px;flex:none;margin:2px 0 0;padding:0}
.tcas .tc-terms{padding-left:20px;display:grid;gap:10px;line-height:1.7}
.tcas .tc-terms ul{margin:6px 0;padding-left:18px}
