/* Wholesale Study — v2 (2026-10-27 redesign). Calm editorial study app, iPhone first. */
:root{
  --bg:#f6f3ec; --surface:#fffdf8; --surface-2:#efeadf; --surface-3:#e7e1d4;
  --ink:#1c2420; --ink-2:#3f4a44; --muted:#6b756f; --line:#e1d9ca; --line-2:#d3cab9;
  --accent:#1f6a50; --accent-ink:#ffffff; --accent-soft:#e0ede5; --accent-line:#b9d6c6;
  --good:#1f6a50; --good-soft:#e0ede5;
  --bad:#a6412a; --bad-soft:#f5e2da;
  --better:#8f5d00; --better-soft:#f5ead2;
  --mixed:#46527d; --mixed-soft:#e3e6f1;
  --shadow:0 1px 2px rgba(28,36,32,.06),0 6px 20px rgba(28,36,32,.06);
  --radius:14px; --radius-s:10px;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Figtree",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --tab:60px; --head:56px; --maxw:760px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#111513; --surface:#181d1a; --surface-2:#1f2622; --surface-3:#28302b;
  --ink:#ecebe4; --ink-2:#c9cec8; --muted:#97a099; --line:#29312c; --line-2:#36403a;
  --accent:#62c398; --accent-ink:#0c1a13; --accent-soft:#1b3027; --accent-line:#2c4d3e;
  --good:#62c398; --good-soft:#1b3027; --bad:#e58a71; --bad-soft:#36211b;
  --better:#e2b257; --better-soft:#332a19; --mixed:#a3add9; --mixed-soft:#242839;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25); color-scheme:dark;}}
:root[data-theme="dark"]{
  --bg:#111513; --surface:#181d1a; --surface-2:#1f2622; --surface-3:#28302b;
  --ink:#ecebe4; --ink-2:#c9cec8; --muted:#97a099; --line:#29312c; --line-2:#36403a;
  --accent:#62c398; --accent-ink:#0c1a13; --accent-soft:#1b3027; --accent-line:#2c4d3e;
  --good:#62c398; --good-soft:#1b3027; --bad:#e58a71; --bad-soft:#36211b;
  --better:#e2b257; --better-soft:#332a19; --mixed:#a3add9; --mixed-soft:#242839;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25); color-scheme:dark;}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.55 var(--sans);
  padding-bottom:calc(var(--tab) + env(safe-area-inset-bottom) + 24px);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
img{display:block;max-width:100%}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
svg.i{width:22px;height:22px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- header ---------- */
.top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s}
.top.scrolled{border-bottom-color:var(--line)}
.top .bar{max-width:1040px;margin:0 auto;height:calc(var(--head) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0 16px;display:flex;align-items:center;gap:6px}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-weight:600;font-size:19px;letter-spacing:-.01em;white-space:nowrap}
.brand .mark{width:26px;height:26px;border-radius:7px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font:700 12px/1 var(--sans);letter-spacing:.02em}
.topnav{display:none;gap:4px;margin-left:18px}
.topnav a{padding:8px 12px;border-radius:9px;color:var(--ink-2);font-weight:500;font-size:15px}
.topnav a:hover{background:var(--surface-2)}
.topnav a.on{color:var(--ink);background:var(--surface-2)}
.top .spacer{flex:1}
.iconbtn{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;border:0;background:transparent;cursor:pointer;color:var(--ink-2)}
.iconbtn:hover{background:var(--surface-2)}
.who{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px 0 4px;border-radius:999px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:14px;font-weight:600;color:var(--ink);max-width:150px}
.who .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who .av{width:30px;height:30px;flex:none;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:13px}

/* ---------- bottom tab bar (phone) ---------- */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:color-mix(in srgb,var(--surface) 94%,transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);
  height:calc(var(--tab) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}
.tabs a{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.01em}
.tabs a.on{color:var(--accent)}
.tabs a.on svg.i{stroke-width:2.2}
@media (min-width:1200px){.tabs{display:none}.topnav{display:flex}body{padding-bottom:48px}}   /* was 880px: 10 top links overflow below ~1200px (2026-10-31, On the Go added) */

/* ---------- layout + type ---------- */
main{max-width:var(--maxw);margin:0 auto;padding:8px 16px 0}
.display{font-family:var(--serif);font-weight:500;font-size:34px;line-height:1.1;letter-spacing:-.02em;margin:0}
h1.page{font-family:var(--serif);font-weight:500;font-size:32px;line-height:1.12;letter-spacing:-.02em;margin:6px 0 6px}
h2.sec{font-family:var(--serif);font-weight:500;font-size:23px;line-height:1.2;letter-spacing:-.01em;margin:0}
h3{font-size:17px;line-height:1.35;margin:0;font-weight:600}
.lede{color:var(--ink-2);font-size:17px;margin:8px 0 0}
.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0}
.muted{color:var(--muted)}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:36px 0 14px}
.sec-head a{color:var(--accent);font-weight:600;font-size:15px;white-space:nowrap}
.crumb{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-weight:600;font-size:14.5px;margin:6px 0 4px;min-height:40px}
.crumb svg.i{width:18px;height:18px}
@media (min-width:880px){.display{font-size:44px}h1.page{font-size:40px}main{padding-top:20px}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:12px;border:0;cursor:pointer;
  font-weight:600;font-size:16px;background:var(--accent);color:var(--accent-ink);transition:transform .12s,filter .15s}
.btn:hover{filter:brightness(1.06)}
.btn:active{transform:scale(.98)}
.btn.quiet{background:var(--surface);color:var(--ink);border:1px solid var(--line-2)}
.btn.block{display:flex;width:100%}
.btn svg.i{width:20px;height:20px}

/* ---------- motion ---------- */
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.rise{animation:rise .5s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 45ms)}
.press{transition:transform .14s ease,box-shadow .2s,border-color .2s}
.press:active{transform:scale(.985)}
@media (prefers-reduced-motion:reduce){.rise{animation:none}.press,.btn{transition:none}}

/* ---------- home ---------- */
.hello{padding:18px 0 4px}
.resume{display:grid;grid-template-columns:1fr;margin-top:22px;border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.resume .body{padding:16px 16px 18px}
.resume h3{font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.25;margin:6px 0 4px}
.resume .btn{margin-top:14px}
.resume.start{background:var(--accent-soft);border-color:var(--accent-line);box-shadow:none}
@media (min-width:640px){.resume{grid-template-columns:300px 1fr}.resume.start{grid-template-columns:1fr}.resume .thumb{height:100%;aspect-ratio:auto}}

.thumb{position:relative;aspect-ratio:16/9;background:var(--surface-3);overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb .noimg{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.thumb .prog{position:absolute;left:0;bottom:0;height:4px;background:var(--accent)}
.thumb .dur{position:absolute;right:6px;bottom:6px;background:rgba(0,0,0,.72);color:#fff;font-size:11.5px;font-weight:600;padding:1px 6px;border-radius:5px;font-variant-numeric:tabular-nums}

.tracks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
@media (min-width:700px){.tracks{grid-template-columns:1fr 1fr;gap:14px}}
.track-tile{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:18px 14px 18px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);min-height:92px;height:100%}
.track-tile:hover{border-color:var(--line-2);box-shadow:var(--shadow)}
.track-tile .num{font-family:var(--serif);font-size:30px;line-height:1;color:var(--accent);font-weight:500;width:36px;font-variant-numeric:lining-nums}
.track-tile .tt{display:block;font-weight:700;font-size:17.5px;line-height:1.3}
.track-tile .tg{display:block;color:var(--ink-2);font-size:14.5px;line-height:1.4;margin-top:2px}
.track-tile .tm{display:block;color:var(--muted);font-size:13px;margin-top:6px}
.track-tile svg.i{color:var(--muted)}

.reviews-tile{display:block;margin-top:12px;padding:20px 18px;border-radius:var(--radius);background:var(--ink);color:var(--bg)}
:root[data-theme="dark"] .reviews-tile{background:var(--surface-2);color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .reviews-tile{background:var(--surface-2);color:var(--ink)}}
.reviews-tile .eyebrow{color:inherit;opacity:.7}
.reviews-tile h3{font-family:var(--serif);font-weight:500;font-size:24px;margin:6px 0 4px}
.reviews-tile p{margin:0;opacity:.85;font-size:15px}
.stats{display:flex;gap:24px;margin-top:16px}
.stats b{display:block;font-family:var(--serif);font-weight:500;font-size:28px;line-height:1}
.stats span{font-size:12.5px;opacity:.75;font-weight:600}
.more-links{display:grid;gap:8px;margin-top:28px}
.more-links a{display:flex;align-items:center;justify-content:space-between;padding:16px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line);font-weight:600;min-height:56px}
.more-links svg.i{color:var(--muted)}

/* ---------- course ---------- */
.track-head{padding:4px 0 6px}
.track-head .num{font-family:var(--serif);color:var(--accent);font-size:20px}
.steps{list-style:none;padding:0;margin:22px 0 0;border-top:1px solid var(--line)}
.step-row{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:18px 2px;border-bottom:1px solid var(--line);min-height:76px}
.step-row .n{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--accent-line);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:15px}
.step-row b{display:block;font-size:17px;font-weight:600;line-height:1.3}
.step-row small{display:block;color:var(--muted);font-size:13.5px;margin-top:3px}
.step-row svg.i{color:var(--muted)}
.next-track{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;padding:18px;border-radius:var(--radius);background:var(--surface-2);font-weight:600}
.next-track small{display:block;color:var(--muted);font-weight:700;font-size:12px;letter-spacing:.07em;text-transform:uppercase}
.explainer{margin-top:16px;font-size:17.5px;line-height:1.65;color:var(--ink)}
.explainer p{margin:0 0 14px}
.source{display:flex;gap:10px;align-items:stretch;margin-top:6px;color:var(--muted);font-size:13.5px;line-height:1.45}
.source::before{content:"";width:3px;flex:none;border-radius:2px;background:var(--accent)}
.keypoints{list-style:none;margin:18px 0 0;padding:16px 16px 4px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.keypoints .h{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.keypoints li{display:grid;grid-template-columns:24px 1fr;gap:8px;padding:0 0 12px;font-size:16px;line-height:1.5}
.keypoints li svg.i{width:18px;height:18px;color:var(--accent);margin-top:3px}
.listen{margin-top:14px;padding:14px 16px;border-radius:var(--radius-s);background:var(--accent-soft);color:var(--ink);font-size:15.5px;line-height:1.5}
.listen b{color:var(--accent)}
.stepnav{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:32px}
.stepnav a{padding:14px;border-radius:var(--radius-s);border:1px solid var(--line);background:var(--surface);min-height:64px}
.stepnav a small{display:block;color:var(--muted);font-size:12.5px;font-weight:600}
.stepnav a span{font-weight:600;font-size:15px;line-height:1.3}
.stepnav a.next{text-align:right;grid-column:2}

/* ---------- clip rows + call cards ---------- */
.clip{display:grid;grid-template-columns:116px 1fr;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}
.clip .thumb{border-radius:8px}
.clip .t{font-size:15.5px;line-height:1.45;color:var(--ink)}
.clip .m{font-size:13px;color:var(--muted);margin-top:4px}
.ts{font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
.calls{display:grid;gap:12px}
.call{padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.call .hd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:13.5px;color:var(--muted);font-weight:600}
.call p{margin:0;font-size:15.5px;line-height:1.5}
.call .who2{font-size:13.5px;color:var(--muted);margin-top:8px}
.call .go{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.call .go a{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:700;min-height:40px}
.call .go small{color:var(--muted);font-size:13px}
.showall{margin-top:12px}
.empty{padding:22px 18px;border-radius:var(--radius);border:1px dashed var(--line-2);color:var(--muted);text-align:center;font-size:15px;line-height:1.5}

.badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;padding:3px 9px 3px 8px;border-radius:999px;white-space:nowrap}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.badge.good{color:var(--good);background:var(--good-soft)}
.badge.bad{color:var(--bad);background:var(--bad-soft)}
.badge.better{color:var(--better);background:var(--better-soft)}
.badge.mixed{color:var(--mixed);background:var(--mixed-soft)}

/* ---------- deal reviews ---------- */
.toolbar{display:flex;gap:10px;align-items:center;margin:18px 0 6px;flex-wrap:wrap}
.select{position:relative}
.select select{appearance:none;-webkit-appearance:none;min-height:44px;padding:0 40px 0 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:600 15px var(--sans)}
.select svg.i{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;pointer-events:none;color:var(--muted)}
.seg{display:inline-flex;padding:3px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}
.seg button{min-height:38px;padding:0 14px;border:0;border-radius:9px;background:transparent;font-weight:600;font-size:14.5px;color:var(--ink-2);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.shelf{margin-top:30px}
.shelf .sec-head{margin:0 0 4px}
.shelf .sub{margin:0 0 12px;color:var(--muted);font-size:14.5px}
.shelf-row{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 16px 10px;margin:0 -16px;scrollbar-width:none;scroll-padding:0 16px}
.shelf-row::-webkit-scrollbar{display:none}
.shelf-row>*{scroll-snap-align:start}
@media (min-width:700px){.shelf-row{grid-auto-flow:row;grid-template-columns:1fr 1fr;grid-auto-columns:auto;overflow:visible;margin:0;padding:0}}
.review{display:flex;flex-direction:column;padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);height:100%}
.review .stu{font-weight:700;font-size:17px;line-height:1.3;margin-top:10px}
.review .place{color:var(--muted);font-size:14px;margin-top:2px}
.review .why{margin:10px 0 0;font-size:15.5px;line-height:1.5;color:var(--ink-2);flex:1}
.review .foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:8px}
.review .foot a{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--accent);min-height:44px}
.review .foot small{color:var(--muted);font-size:12.5px;text-align:right}
.list-v{display:grid;gap:12px;margin-top:14px}
@media (min-width:700px){.list-v{grid-template-columns:1fr 1fr}}

/* ---------- replays ---------- */
.group{margin-top:26px}
.group h2{font-family:var(--serif);font-weight:500;font-size:21px;margin:0 0 4px;display:flex;align-items:baseline;gap:10px}
.group h2 small{font-family:var(--sans);font-size:13px;color:var(--muted);font-weight:600}
.rep{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}
.rep .thumb{border-radius:9px}
.rep .t{font-weight:600;font-size:15.5px;line-height:1.35}
.rep .m{color:var(--muted);font-size:13px;margin-top:4px;line-height:1.4}

/* ---------- replay detail ---------- */
.hero-thumb{margin:6px -16px 0}
@media (min-width:700px){.hero-thumb{margin:10px 0 0;border-radius:var(--radius)}}
.meta-line{color:var(--muted);font-size:14.5px;margin-top:6px}
.teach{margin-top:10px;font-size:15px;color:var(--ink-2);line-height:1.5}
.teach b{color:var(--ink)}
.synopsis{font-size:17px;line-height:1.65;margin-top:16px}
.topics{color:var(--muted);font-size:14px;margin-top:10px;line-height:1.5}
.outline{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.outline a,.outline .row{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:13px 2px;border-bottom:1px solid var(--line);cursor:pointer}
.outline .tt{font-weight:600;font-size:15.5px;line-height:1.35}
.outline .sp{font-size:13px;color:var(--muted);margin-top:2px}
.outline .su{font-size:14px;color:var(--ink-2);margin-top:4px;line-height:1.45}
.outline .row{transition:background-color .35s}
.outline .row.now{background:var(--accent-soft);border-radius:10px;border-bottom-color:transparent;padding-left:8px;padding-right:8px;margin:0 -8px}
.outline .row.now .tt{color:var(--accent)}
details.more{margin-top:12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
details.more>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px;cursor:pointer;font-weight:600;font-size:16px;min-height:56px}
details.more>summary::-webkit-details-marker{display:none}
details.more>summary svg.i{transition:transform .2s;color:var(--muted)}
details.more[open]>summary svg.i{transform:rotate(90deg)}
details.more .in{padding:0 16px 8px}
.item{padding:12px 0;border-top:1px solid var(--line)}
.item p{margin:0;font-size:15.5px;line-height:1.5}
.item q{display:block;margin-top:6px;color:var(--muted);font-size:14px;font-style:italic}
.item ol{margin:8px 0 0;padding-left:20px;font-size:15.5px;line-height:1.5}
.item .ts{display:inline-block;margin-bottom:4px}

/* ---------- watch ---------- */
.player-wrap{margin:0 -16px}
@media (min-width:700px){.player-wrap{margin:8px 0 0}}
.stage{position:relative;width:100%;aspect-ratio:16/9;background:#000;overflow:hidden}
@media (min-width:700px){.stage{border-radius:var(--radius)}}
.stage .inner{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0}
.stage video,.stage iframe,.stage #yt{width:100%;height:100%;display:block;border:0}
.stage .fsbar{display:none;position:absolute;left:0;right:0;bottom:0;z-index:5;gap:8px;justify-content:center;padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom));background:linear-gradient(transparent,rgba(0,0,0,.78));opacity:.45;transition:opacity .2s}
.stage .fsbar:hover,.stage .fsbar:active,.stage .fsbar:focus-within{opacity:1}
.stage .fsbar button{min-height:44px;min-width:44px;padding:0 14px;border-radius:11px;border:1px solid rgba(255,255,255,.25);background:rgba(20,20,20,.55);color:#fff;font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.stage .fsbar svg.i{width:20px;height:20px}
body:has(.stage.fs){overflow:hidden}
.stage.fs{position:fixed;inset:0;z-index:1000;width:100vw;height:100vh;height:100dvh;aspect-ratio:auto!important;border-radius:0}
.stage.fs .fsbar{display:flex}
.stage:fullscreen{width:100%;height:100%;aspect-ratio:auto!important;border-radius:0}
.stage:fullscreen .fsbar{display:flex}
.stage:-webkit-full-screen{width:100%;height:100%;aspect-ratio:auto!important;border-radius:0}
.stage:-webkit-full-screen .fsbar{display:flex}
.w-title{font-family:var(--serif);font-weight:500;font-size:23px;line-height:1.22;margin:16px 0 4px;letter-spacing:-.01em}
.nowch{font-size:15px;color:var(--ink-2);min-height:22px;line-height:1.45}
.nowch b{color:var(--accent);font-weight:600}
.controls{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:16px 0 4px}
.cbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:12px;font-weight:600;color:var(--ink-2);padding:0 2px;white-space:nowrap;letter-spacing:-.01em}
.cbtn:active{transform:scale(.97)}
.cbtn[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}
.cbtn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.share{display:flex;justify-content:flex-end;margin-top:2px}
.share button{border:0;background:transparent;color:var(--muted);font-weight:600;font-size:14px;cursor:pointer;min-height:40px;display:inline-flex;align-items:center;gap:6px}
.share svg.i{width:18px;height:18px}
.segcard{margin-top:14px;padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.segcard p{margin:8px 0 0;font-size:15.5px;line-height:1.5}
.cue{display:grid;grid-template-columns:58px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:15px;line-height:1.5;cursor:pointer}
.cue.now{background:var(--accent-soft);border-radius:8px;margin:0 -8px;padding:10px 8px}

/* ---------- search ---------- */
.searchbox{position:relative;margin-top:14px}
.searchbox input{width:100%;min-height:54px;padding:0 16px 0 48px;border-radius:14px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:500 17px var(--sans)}
.searchbox svg.i{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--muted)}
.hit{display:block;padding:14px 0;border-bottom:1px solid var(--line)}
.hit .sn{font-size:16px;line-height:1.55}
.hit mark{background:var(--better-soft);color:inherit;font-weight:700;border-radius:3px;padding:0 2px}
.hit .m{font-size:13px;color:var(--muted);margin-top:6px}

/* ---------- account sheet ---------- */
dialog.sheet{border:0;padding:0;border-radius:18px;background:var(--surface);color:var(--ink);width:min(420px,calc(100vw - 24px));box-shadow:0 20px 60px rgba(0,0,0,.25)}
dialog.sheet::backdrop{background:rgba(10,14,12,.4)}
dialog.sheet .in{padding:22px 20px}
dialog.sheet h3{font-family:var(--serif);font-weight:500;font-size:23px}
dialog.sheet .row{display:flex;justify-content:space-between;align-items:center;margin-top:18px;gap:12px}
dialog.sheet .acts{display:grid;gap:10px;margin-top:22px}
.err{color:var(--bad)}

/* ---------- sign in ---------- */
.login-body{padding-bottom:0}
.login{max-width:420px;padding:calc(48px + env(safe-area-inset-top)) 20px 40px}
.login .brand{margin-bottom:40px}
.login form{margin-top:28px;display:grid;gap:8px}
.login label{font-weight:600;font-size:14.5px;margin-top:8px}
.login input{min-height:52px;padding:0 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:500 17px var(--sans)}
.login .btn{margin-top:16px}
.login .err{margin:6px 0 0;font-weight:600}
.login .note{font-size:13.5px;text-align:center;margin:10px 0 0}

/* ======================================================================
   v2.1 (2026-10-27): MasterClass look + Udemy course-player structure
   ====================================================================== */
main.roomy{max-width:1040px}
main.wide{max-width:1280px}
.btn.light{background:#fff;color:#141414}
.btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45)}

/* cinematic image card: still + scrim + calm copy + one Play button */
.hero-card{position:relative;display:block;margin-top:20px;border-radius:var(--radius);overflow:hidden;background:#151816;color:#fff;isolation:isolate}
.hero-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transform:scale(1.02);transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.hero-card:hover>img{transform:scale(1.05)}
.hero-card .scrim,.poster .scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,10,9,.08) 0%,rgba(8,10,9,.35) 40%,rgba(8,10,9,.9) 100%)}
.hero-card .hc{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:6px;min-height:340px;padding:22px 20px 22px}
.hero-card .eyebrow{color:rgba(255,255,255,.78)}
.hero-card .ht{font-family:var(--serif);font-weight:500;font-size:27px;line-height:1.15;letter-spacing:-.015em;max-width:30ch}
.hero-card .hs{color:rgba(255,255,255,.8);font-size:15px;line-height:1.45;max-width:52ch}
.hero-card .inst{font-weight:700;font-size:34px;line-height:1;letter-spacing:.02em;text-transform:uppercase;margin-top:4px}
.hero-card .btn{margin-top:12px}
.hero-card .pline{position:absolute;left:0;bottom:0;height:4px;background:var(--accent)}
.hero-card.start{background:#1a2a22}
@media (min-width:700px){.hero-card .hc{min-height:400px;padding:36px 36px 32px}.hero-card .ht{font-size:36px}.hero-card .inst{font-size:52px}}
.pp{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;margin-top:6px;width:100%;max-width:340px}
.pp>span:last-child{white-space:nowrap;opacity:.85}
.pbar{position:relative;flex:1;display:block;height:4px;border-radius:4px;background:color-mix(in srgb,currentColor 22%,transparent);overflow:hidden;min-width:60px}
.pbar>span{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:4px}
.hero-card .pbar>span,.poster .pbar>span{background:#fff}

/* track posters */
.posters{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (min-width:880px){.posters{grid-template-columns:repeat(3,1fr);gap:16px}}
.posters>div{display:flex}
.poster{position:relative;display:flex;flex-direction:column;justify-content:flex-end;width:100%;aspect-ratio:3/4;border-radius:var(--radius);overflow:hidden;background:#1a1f1c;color:#fff;isolation:isolate}
@media (min-width:880px){.poster{aspect-ratio:4/5}}
.poster>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.poster:hover>img{transform:scale(1.05)}
.poster .pc{display:flex;flex-direction:column;gap:4px;padding:14px 14px 16px}
.poster .pn{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.poster .pt{font-family:var(--serif);font-weight:500;font-size:20px;line-height:1.15;letter-spacing:-.01em}
.poster .pi{font-size:13px;color:rgba(255,255,255,.8);font-weight:600}
.poster .pi .tg{display:none;font-weight:400}
.poster .pp{font-size:12px;margin-top:8px}
@media (min-width:880px){.poster .pc{padding:22px}.poster .pt{font-size:27px}.poster .pi .tg{display:inline}}

/* course content (Udemy sections > lectures) */
.curric{display:grid;gap:10px}
details.csec{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);overflow:hidden}
details.csec>summary{list-style:none;display:grid;grid-template-columns:1fr auto;grid-template-areas:"n i" "t i" "m i";column-gap:12px;padding:16px 16px 14px;cursor:pointer;min-height:64px}
details.csec>summary::-webkit-details-marker{display:none}
details.csec>summary svg.i{grid-area:i;align-self:center;color:var(--muted);transition:transform .2s}
details.csec[open]>summary svg.i{transform:rotate(180deg)}
.cs-n{grid-area:n;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.cs-t{grid-area:t;font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.2;margin-top:2px}
.cs-m{grid-area:m;font-size:13.5px;color:var(--muted);margin-top:4px}
.sec-more{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-top:1px solid var(--line);color:var(--accent);font-weight:600;font-size:15px;min-height:52px}
.sec-more svg.i{width:18px;height:18px}
ol.lessons{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.lrow{display:grid;grid-template-columns:52px 1fr;align-items:center;border-bottom:1px solid var(--line);transition:background-color .3s}
.lrow:last-child{border-bottom:0}
.lrow .chk{width:52px;height:56px;display:grid;place-items:center;border:0;background:transparent;cursor:pointer;padding:0}
.lrow .chk svg.i{width:24px;height:24px;padding:3px;border-radius:50%;border:1.6px solid var(--line-2);color:transparent;stroke-width:3;transition:background-color .2s,border-color .2s,color .2s}
.lrow.done .chk svg.i{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.lrow .lk{display:grid;grid-template-columns:26px 1fr;gap:6px;align-items:start;padding:12px 14px 12px 0;min-height:56px}
.lrow .ln{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600;font-size:14px;line-height:1.4}
.lrow .lt{display:block;font-weight:600;font-size:15.5px;line-height:1.35}
.lrow .lm{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:3px}
.lrow .lm svg.i{width:14px;height:14px}
.lrow.done .lt{color:var(--ink-2)}
.lrow.now{background:var(--accent-soft)}
.lrow.now .lt,.lrow.now .ln{color:var(--accent)}
.lrow .lk:hover .lt{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}

/* numbered outline with durations (MasterClass lesson list) */
ol.olist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.orow{display:grid;grid-template-columns:44px 1fr;gap:10px;padding:14px 2px;border-bottom:1px solid var(--line);cursor:pointer;transition:background-color .35s}
.orow .on{font-family:var(--serif);font-size:24px;line-height:1.05;color:var(--muted);font-variant-numeric:lining-nums tabular-nums}
.orow .tt{display:block;font-weight:600;font-size:16px;line-height:1.35}
.orow .om{display:block;font-size:13px;color:var(--muted);margin-top:3px;font-variant-numeric:tabular-nums}
.orow .su{display:block;font-size:14.5px;color:var(--ink-2);margin-top:5px;line-height:1.45}
.orow.now{background:var(--accent-soft);border-radius:10px;border-bottom-color:transparent;padding-left:8px;padding-right:8px;margin:0 -8px}
.orow.now .on,.orow.now .tt{color:var(--accent)}

/* course player: curriculum beside the video (desktop) / under it (phone) */
.cp{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "side" "extra"}
.cp>.cp-main{grid-area:main;min-width:0}
.cp>.cp-side{grid-area:side;margin-top:22px}
.cp>.cp-extra{grid-area:extra;min-width:0}
.cp-head{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line)}
.cp-head>span:last-child{display:flex;align-items:center;gap:10px}
.cp-side{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);overflow:hidden}
.cp-sec+.cp-sec{border-top:1px solid var(--line)}
.cp-st{margin:0;padding:12px 16px 10px;font-family:var(--serif);font-weight:500;font-size:17px;background:var(--surface-2)}
@media (min-width:1024px){
  .cp{grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"main side" "extra side";column-gap:28px;align-items:start}
  .cp>.cp-side{margin-top:8px;position:sticky;top:calc(var(--head) + 12px);max-height:calc(100vh - var(--head) - 36px);overflow:auto;overscroll-behavior:contain}
  .cp-head{position:sticky;top:0;z-index:1;background:var(--surface)}
}
.clip-sub{margin:6px 0 0;color:var(--ink-2);font-size:15px;line-height:1.5}
.clip-sub .badge{margin-right:4px;vertical-align:1px}
.clip-meta{display:block;color:var(--muted);font-size:13.5px;margin-top:4px}
.upnext{position:absolute;inset:0;z-index:8;display:grid;place-items:center;background:rgba(8,10,9,.82);color:#fff;text-align:center;padding:16px}
.upnext[hidden]{display:none}
.upnext .eyebrow{color:rgba(255,255,255,.75)}
.un-t{font-family:var(--serif);font-size:22px;line-height:1.2;margin:8px auto 14px;max-width:30ch}
.un-a{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* stills are 4:3 YouTube frames with letterbox bars: crop the bars, calm the busy Zoom grid */
.hero-card>img,.poster>img{inset:auto;left:0;top:-16.7%;width:100%;height:133.4%;filter:saturate(.55) brightness(.62) contrast(1.05) blur(.6px)}
.hero-card .scrim,.poster .scrim{background:linear-gradient(180deg,rgba(8,10,9,.15) 0%,rgba(8,10,9,.45) 38%,rgba(8,10,9,.94) 100%)}
.hero-card>img.own,.poster>img.own{top:0;height:100%;filter:saturate(.8) brightness(.78)}

/* ======================================================================
   v3 (2026-10-27): key-point lessons, clips, step quizzes, exams
   ====================================================================== */
.flag{color:var(--better);font-weight:700}
.lrow.rv .chk svg.i{background:var(--better);border-color:var(--better);color:#fff;stroke-width:2.2}
.lrow.rv .lt{color:var(--ink)}
.lrow .chk{cursor:default}
.lrow.quizrow{background:var(--surface-2)}
.lrow.quizrow .ln svg.i{width:18px;height:18px;color:var(--accent)}
.lrow.quizrow .lt{font-weight:700}

/* lesson page */
.kp{margin-top:14px;padding:16px 18px;border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent-line)}
.kp .eyebrow{color:var(--accent)}
.kp p:last-child{margin:6px 0 0;font-size:17px;line-height:1.55;color:var(--ink)}
.flagline{display:flex;gap:8px;align-items:flex-start;margin:8px 0 0;padding:12px 14px;border-radius:var(--radius-s);background:var(--better-soft);color:var(--ink);font-size:15px;line-height:1.45}
.flagline svg.i{flex:none;color:var(--better);width:20px;height:20px;margin-top:1px}
.nowp{margin:18px 0 0;display:grid;gap:4px;font-size:15px;line-height:1.5;color:var(--ink-2)}
.nowp b{font-size:17px;color:var(--ink);font-weight:600}
.nowp .clip-meta{margin-top:2px}
ol.plist{list-style:none;margin:0;padding:0}
.prow{display:grid;grid-template-columns:30px 1fr;gap:8px;width:100%;text-align:left;padding:13px 16px 13px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;cursor:pointer;min-height:64px;transition:background-color .25s}
.plist li:last-child .prow{border-bottom:0}
.prow .pn{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:700;font-size:14px;line-height:1.5;text-align:center}
.prow .pb{display:grid;gap:2px}
.prow .pk{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.prow .pt{font-weight:600;font-size:15.5px;line-height:1.35;color:var(--ink)}
.prow .pm{font-size:13px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.prow.now{background:var(--accent-soft)}
.prow.now .pt,.prow.now .pn{color:var(--accent)}
.cp-next{padding:14px 16px;border-top:1px solid var(--line)}
.cp-next .btn{justify-content:space-between;text-align:left;line-height:1.3;padding-top:10px;padding-bottom:10px}
.rd{font-size:16.5px;line-height:1.65;margin:0 0 12px}
.remlist{display:grid;gap:8px;margin-top:12px}
.remclip{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;text-align:left;padding:12px 14px;border-radius:var(--radius-s);border:1px solid var(--line-2);background:var(--surface);cursor:pointer;min-height:60px;color:var(--ink)}
.remclip>svg.i{width:36px;height:36px;padding:9px;border-radius:50%;background:var(--accent);color:var(--accent-ink)}
.remclip b{display:block;font-weight:600;font-size:15px;line-height:1.35}
.remclip small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.remclip.seen>svg.i{background:var(--surface-3);color:var(--muted)}

/* clip sheet */
dialog.clip-sheet{width:min(860px,calc(100vw - 16px));max-height:calc(100dvh - 24px)}
dialog.clip-sheet .in{padding:16px}
.cs-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.cs-top h3{margin-top:4px;font-size:20px;line-height:1.25}
dialog.clip-sheet .player-wrap{margin:0}
dialog.clip-sheet .stage{border-radius:var(--radius-s)}

/* quiz */
.quiz{margin-top:6px}
.qhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.qcount{font-size:13.5px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.qbar{display:block;margin:10px 0 0;height:6px;color:var(--accent)}
.qtext{font-family:var(--serif);font-weight:500;font-size:25px;line-height:1.28;letter-spacing:-.01em;margin:22px 0 18px}
@media (min-width:880px){.qtext{font-size:30px}}
.retrytag{display:inline-block;margin:18px 0 -10px;padding:3px 10px;border-radius:999px;background:var(--better-soft);color:var(--better);font-weight:700;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase}
.choices{display:grid;gap:10px}
.choice{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;width:100%;text-align:left;min-height:60px;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink);font-size:16.5px;line-height:1.4;cursor:pointer;transition:border-color .2s,background-color .2s}
.choice:hover:not(:disabled){border-color:var(--accent-line)}
.choice .ck{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);font-weight:700;font-size:14px;color:var(--ink-2)}
.choice:disabled{cursor:default}
.choice.right{border-color:var(--good);background:var(--good-soft)}
.choice.right .ck{background:var(--good);color:#fff}
.choice.wrong{border-color:var(--bad);background:var(--bad-soft)}
.choice.wrong .ck{background:var(--bad);color:#fff}
.choice:disabled:not(.right):not(.wrong){opacity:.6}
.qfeed{margin-top:16px}
.verdict{font-family:var(--serif);font-size:22px;font-weight:500}
.verdict.ok{color:var(--good)} .verdict.no{color:var(--bad)}
.why{margin:6px 0 0;font-size:16px;line-height:1.55;color:var(--ink-2)}
.srclink{display:inline-flex;align-items:center;gap:8px;margin-top:12px;min-height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:14.5px;cursor:pointer}
.srclink svg.i{width:18px;height:18px}
.remed{margin-top:16px;padding:16px;border-radius:var(--radius);background:var(--better-soft);border:1px solid color-mix(in srgb,var(--better) 30%,transparent)}
.remed .eyebrow{color:var(--better)}
.remed h3{font-family:var(--serif);font-weight:500;font-size:21px;margin-top:4px}
.remed .muted{margin:2px 0 0;font-size:14.5px}
.qacts{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.qacts .btn{flex:1 1 220px}
.result{margin-top:10px;padding:22px 18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);text-align:center}
.result .big{font-family:var(--serif);font-size:72px;line-height:1;margin-top:10px;color:var(--ink)}
.result .big span{font-size:32px;color:var(--muted)}
.result.pass .big{color:var(--good)} .result.fail .big{color:var(--bad)}
.rline{margin:10px 0 0;color:var(--ink-2)}
.result details.more{text-align:left}
.reviewbox{margin-top:14px;padding:16px;border-radius:var(--radius);background:var(--better-soft)}
.reviewbox .eyebrow{color:var(--better)}
.rvrow{display:grid;grid-template-columns:24px 1fr 20px;gap:10px;align-items:center;padding:12px 0;border-top:1px solid color-mix(in srgb,var(--better) 25%,transparent);min-height:56px}
.reviewbox .eyebrow+.rvrow{border-top:0}
.rvrow b{display:block;font-weight:600} .rvrow small{display:block;color:var(--muted);font-size:13px}
.rvrow svg.i{color:var(--better)}
.parts{display:grid;gap:10px;margin-top:20px}
.part{display:grid;grid-template-columns:76px 1fr;gap:12px;align-items:center;padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.part .pn{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.part b{display:block;font-size:16.5px;line-height:1.35} .part small{display:block;color:var(--muted);font-size:14px;margin-top:3px}

/* final exams card */
.exam-card{display:block;margin-top:14px;padding:20px 18px;border-radius:var(--radius);background:var(--ink);color:var(--bg)}
:root[data-theme="dark"] .exam-card{background:var(--surface-2);color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .exam-card{background:var(--surface-2);color:var(--ink)}}
.exam-card .eyebrow{color:inherit;opacity:.7}
.final-row{display:flex;align-items:center;gap:12px;margin:14px 4px 6px;padding:14px 16px;border-radius:14px;border:1.5px solid var(--accent);background:var(--surface);color:var(--ink)}.final-row .lb{flex:1;display:grid;gap:2px}.final-row small{color:var(--muted)}.final-row .ln svg{width:22px;height:22px;color:var(--accent)}.final-row.locked{border-color:var(--line-2);opacity:.75}
.rf-link{display:flex;align-items:center;gap:8px;margin:0 4px 8px;padding:10px 14px;border-radius:12px;background:var(--accent-soft,var(--surface-2));color:var(--ink);font-size:14px;font-weight:600}.rf-link svg{width:18px;height:18px}.rf-pt{margin-top:18px;padding:16px;border:1px solid var(--line-2);border-radius:14px;background:var(--surface)}.rf-pt h3{margin:4px 0}.rf-pt .item{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-2)}
.exam-card .et{display:block;font-family:var(--serif);font-weight:500;font-size:24px;margin:4px 0 8px}
.exam-card .er{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid color-mix(in srgb,currentColor 18%,transparent)}
.exam-card .er b{display:block;font-weight:600} .exam-card .er small{display:block;opacity:.75;font-size:13.5px}
.exam-card .sc{font-weight:700;white-space:nowrap;font-size:14px;opacity:.9}

/* v3.1 quick checks, daily review, refresher (2026-10-28) */
.chk{margin-top:18px}
.chk-card{display:grid;gap:14px;padding:18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--accent-line)}
.chk-card .eyebrow{color:var(--accent)}
.chk-t{margin:6px 0 0;color:var(--ink-2);font-size:15.5px;line-height:1.5}
@media (min-width:640px){.chk-card{grid-template-columns:1fr auto;align-items:center}}
.backnote{display:flex;gap:6px;align-items:center;font-size:14px;margin:10px 0 0}
.backnote svg.i{width:16px;height:16px;color:var(--better)}
.atnote{display:block;font-size:13.5px;color:var(--accent);font-weight:600;margin-bottom:6px}
.daily{display:grid;grid-template-columns:44px 1fr auto 20px;gap:12px;align-items:center;margin-top:14px;padding:16px;border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent-line);min-height:72px}
.daily .dl-ic{width:44px;height:44px;border-radius:12px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center}
.daily .dl-b b{display:block;font-weight:700;font-size:16.5px}
.daily .dl-b small{display:block;color:var(--ink-2);font-size:14px;line-height:1.4;margin-top:2px}
.daily .dl-n{min-width:30px;height:30px;padding:0 9px;border-radius:999px;background:var(--bad);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px}
.daily>svg.i:last-child{color:var(--accent)}
.glance{display:grid;grid-template-columns:24px 1fr 20px;gap:12px;align-items:center;margin-top:14px;padding:14px 16px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line);min-height:60px}
.glance b{display:block;font-weight:700} .glance small{display:block;color:var(--muted);font-size:13.5px}
.glance svg.i{color:var(--accent)}
.refgrid{display:grid;gap:12px}
@media (min-width:640px){.refgrid{grid-template-columns:1fr 1fr}}
.refcard{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);min-height:150px}
.refcard .rc-k{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.refcard b{font-family:var(--serif);font-size:23px;font-weight:600;line-height:1.2}
.refcard .rc-s{color:var(--ink-2);font-size:15px;line-height:1.45}
.refcard .rc-l{margin-top:auto;padding-top:6px;color:var(--muted);font-size:13px}
.facts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.fact{min-width:0}
.sumtxt{font-size:16.5px;line-height:1.6;color:var(--ink-2);margin:10px 0 0}
.facthead{margin:30px 0 12px}.facthead p{margin:4px 0 0;color:var(--muted);font-size:14px}
.fact{padding:16px 18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.fact .fl{margin:0;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.fact .ft{margin:6px 0 0;font-size:16.5px;line-height:1.5;color:var(--ink)}
.fclips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.fplay{display:inline-flex;align-items:center;gap:8px;max-width:100%;min-height:40px;padding:6px 12px 6px 6px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);cursor:pointer;font-size:14px;font-weight:600;text-align:left}
.fplay svg.i{width:28px;height:28px;padding:7px;border-radius:50%;background:var(--accent);color:var(--accent-ink);flex:none}
.fplay span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.fplay small{color:var(--muted);font-weight:500;flex:none}
.fplay.seen svg.i{background:var(--surface-3);color:var(--muted)}
.refhit{margin-top:16px;padding:18px;border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent-line)}
.refhit .eyebrow{color:var(--accent)}
.refhit h2{font-family:var(--serif);font-size:26px;font-weight:600;margin:4px 0 0}
.refhit .rh-s{color:var(--ink-2);margin:8px 0 14px;line-height:1.5}
.refhit .btn{margin-top:14px}

.review .foot .rvwatch{display:inline-flex;align-items:center;gap:6px;border:0;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:8px 14px 8px 10px;font-weight:700;font-size:14px;cursor:pointer;min-height:40px}
.review .foot .rvwatch svg.i{width:18px;height:18px}
.review .foot .full{color:var(--muted);font-size:13.5px;font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* spot the deal (2026-10-28) */
.gametile{display:grid;grid-template-columns:44px 1fr 20px;gap:12px;align-items:center;margin-top:10px;padding:16px;border-radius:var(--radius);background:var(--better-soft);border:1px solid color-mix(in srgb,var(--better) 30%,transparent);min-height:72px}
.gametile .gt-ic{width:44px;height:44px;border-radius:12px;background:var(--better);color:#fff;display:grid;place-items:center}
.gametile b{display:block;font-weight:700;font-size:16.5px} .gametile small{display:block;color:var(--ink-2);font-size:14px;line-height:1.4;margin-top:2px}
.gametile>svg.i:last-child{color:var(--better)}
.modes{display:grid;gap:10px;margin-top:22px}
@media (min-width:640px){.modes{grid-template-columns:1fr 1fr}}
.mode{display:flex;flex-direction:column;gap:4px;text-align:left;padding:18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink);box-shadow:var(--shadow)}
.mode:first-child{background:var(--accent-soft);border-color:var(--accent-line)}
.mode .m-t{font-family:var(--serif);font-size:22px;font-weight:600}
.mode .m-s{color:var(--ink-2);font-size:14.5px;line-height:1.4}
.mode .m-n{margin-top:6px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.gnote{font-size:13.5px;margin-top:18px;line-height:1.5}
.gcard{margin-top:8px}
.gphoto{margin-top:14px;border-radius:var(--radius);overflow:hidden;background:var(--surface-2);aspect-ratio:16/10}
.gphoto img{width:100%;height:100%;object-fit:cover}
.gh{font-family:var(--serif);font-size:26px;font-weight:600;line-height:1.2;margin:14px 0 0}
.gfacts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 0}
.gfacts div{padding:10px 12px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line);min-width:0}
.gfacts dt{font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.gfacts dd{margin:3px 0 0;font-size:15.5px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.gask{margin:18px 0 8px;font-weight:700;font-size:17px}
.gopts{display:grid;gap:8px}
.gopt{display:flex;flex-direction:column;gap:2px;text-align:left;padding:14px 16px;border-radius:var(--radius-s);border:1px solid var(--line-2);background:var(--surface);cursor:pointer;color:var(--ink);min-height:56px}
.gopt b{font-size:16px} .gopt small{color:var(--muted);font-size:13.5px}
.gopt.right{border-color:var(--good);background:var(--good-soft)} .gopt.wrong{border-color:var(--bad);background:var(--bad-soft)}
.gopt:disabled{cursor:default}
.gfeed{margin-top:14px}
.gq{margin:10px 0 0;padding:10px 14px;border-left:3px solid var(--accent);background:var(--surface);border-radius:0 var(--radius-s) var(--radius-s) 0;font-family:var(--serif);font-size:18px;line-height:1.45}
.gbtns{display:grid;gap:8px;margin-top:12px}
.gmissed{display:grid;gap:8px;margin-top:14px;text-align:left}

/* faq (2026-10-28) */
.fqcat{margin-top:26px}
.fqcat .sec{margin-bottom:10px}
.fq{border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);margin-top:8px}
.fq summary{list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;cursor:pointer;font-weight:600;font-size:16px;line-height:1.4;min-height:52px}
.fq summary::-webkit-details-marker{display:none}
.fq summary svg.i{flex:none;color:var(--muted);transition:transform .2s}
.fq[open] summary svg.i{transform:rotate(180deg)}
.fq .fa{padding:0 16px 14px}
.fq .fa>p:first-child{margin:0;color:var(--ink-2);font-size:15.5px;line-height:1.55}
.fq .fsrc{margin:10px 0 0;font-size:12.5px;color:var(--muted)}
.faqhit{margin-top:16px}
.faqhit .eyebrow{margin-bottom:4px}
.more-faq{display:inline-flex;align-items:center;gap:4px;margin-top:10px;color:var(--accent);font-weight:600;font-size:15px}

/* ---------- dictionary (2026-10-28) ---------- */
.dtools{display:grid;gap:10px;margin-top:18px}
.dtools .searchbox{margin-top:0}
.dtools .select select{width:100%}
@media (min-width:700px){.dtools{grid-template-columns:1fr 280px;align-items:center}}
.az{position:sticky;top:calc(var(--head) + env(safe-area-inset-top));z-index:5;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;margin:14px -16px 0;padding:8px 16px;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.az::-webkit-scrollbar{display:none}
.az a{flex:none;min-width:34px;height:38px;display:grid;place-items:center;border-radius:9px;font-weight:700;font-size:15px;color:var(--accent)}
.az a:hover{background:var(--accent-soft)}
@media (min-width:880px){.az{flex-wrap:wrap;margin:14px 0 0;padding:8px 0}}
.dcount{margin:12px 0 0;font-size:14px}
.dletter{font-family:var(--serif);font-weight:500;font-size:34px;line-height:1;margin:30px 0 4px;color:var(--accent);scroll-margin-top:calc(var(--head) + 70px)}
.dentry{padding:16px 0 18px;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--head) + 80px);transition:background-color .6s}
.dentry.flash{background:var(--accent-soft);border-radius:12px;margin:0 -10px;padding-left:10px;padding-right:10px}
.dhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dhead h3{font-family:var(--serif);font-weight:600;font-size:22px;line-height:1.2;margin:0}
.dcat{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.ddef{margin:8px 0 0;font-size:16.5px;line-height:1.6;color:var(--ink)}
.dex{margin:10px 0 0;padding:10px 14px;border-radius:10px;background:var(--surface-2);font-size:15px;line-height:1.55;color:var(--ink-2)}
.dex b{display:block;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.drel{margin:10px 0 0;font-size:14.5px;line-height:1.7;color:var(--muted)}
.drel span{font-weight:700;color:var(--ink-2);margin-right:4px}
.drel a{color:var(--accent);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.dicthit{margin-top:16px;padding:18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--accent-line);box-shadow:var(--shadow)}
.dicthit .eyebrow{color:var(--accent)}
.dicthit h2{font-family:var(--serif);font-weight:500;font-size:26px;margin:4px 0 0}
.dicthit .btn{margin-top:14px}
.dtap{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline dotted;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:4px}
.dtap:hover{color:var(--accent)}
dialog.dict-sheet .in{padding:18px 18px 20px}
dialog.dict-sheet h3{font-family:var(--serif);font-weight:500;font-size:24px;margin-top:4px}

/* ---------- practice + toolkit (practice.js, 2026-10-28) ---------- */
.chips{display:flex;gap:8px;overflow-x:auto;padding:14px 0 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.chips::-webkit-scrollbar{display:none}
.chips.sticky{position:sticky;top:56px;z-index:5;background:var(--bg);margin:0 -16px;padding:12px 16px 10px}
.chip{flex:none;min-height:36px;padding:0 14px;display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font-weight:600;font-size:14px;cursor:pointer;white-space:nowrap}
.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.seg{display:flex;max-width:100%;overflow-x:auto;margin-top:14px;scrollbar-width:none}
.seg button{flex:none}
.tag{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:600;text-transform:capitalize;vertical-align:middle}
.tag.must{background:var(--bad-soft);color:var(--bad);text-transform:none}
.csec{margin-top:24px}
.csec h2.sec{display:flex;align-items:center;gap:8px}
.cnum{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:13px}
.cqs{list-style:none;padding:0;margin:10px 0 0}
.cq{padding:14px 16px;margin-top:10px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line)}
.cq.must{border-left:4px solid var(--bad)}
.cq-h b{font-size:16px;line-height:1.4}
.cq-why{margin:6px 0 0;color:var(--ink-2);font-size:15px;line-height:1.5}
.cq-red{margin:6px 0 0;color:var(--bad);font-size:14.5px;line-height:1.45}
.cq-red svg.i{width:15px;height:15px;vertical-align:-2px}
.cq .fclips{margin-top:8px}
.objq{font-family:Newsreader,Georgia,serif;font-size:24px;line-height:1.3}
.gopts.qopts{grid-template-columns:1fr}
.gopts.qopts .gopt b{font-weight:600;line-height:1.4}
.gsteps{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:12px 0 0}
.gsteps li{padding:4px 10px;border-radius:999px;font-size:13px;background:var(--good-soft);color:var(--good)}
.gsteps li.no{background:var(--bad-soft);color:var(--bad)}
.gal{position:relative;margin:14px -16px 0;background:#0e0f0e}
.gal-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.gal-strip::-webkit-scrollbar{display:none}
.gal-strip img{flex:none;width:auto;max-width:100%;height:auto;max-height:clamp(200px,58vw,360px);object-fit:contain;scroll-snap-align:center}
.gal-dots{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:6px;pointer-events:none}
.gal-dots span{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.45)}
.gal-dots span.on{background:#fff}
.gal-n{position:absolute;top:8px;right:10px;padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;font-weight:600}
@media (min-width:700px){.gal{margin:14px 0 0;border-radius:var(--radius-s);overflow:hidden}}
.tkg{margin-top:22px;scroll-margin-top:110px}
.tkg h2.sec{display:flex;align-items:center;gap:8px}
.tkg h3.sub{margin:18px 0 4px;font-size:14px;color:var(--muted);text-transform:capitalize;letter-spacing:.02em}
.tk{display:block;margin-top:10px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line)}
.tk>summary,.tk.link{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;cursor:pointer;list-style:none;min-height:64px}
.tk>summary::-webkit-details-marker{display:none}
.tk[open]>summary svg.i:last-child{transform:rotate(180deg)}
.tk-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--accent)}
.tk-t{min-width:0}.tk-t b{display:block;font-size:15.5px}.tk-t small{display:block;margin-top:2px;color:var(--muted);font-size:13.5px;line-height:1.4}
.tk-b{padding:0 16px 16px;font-size:15px;line-height:1.55;color:var(--ink-2)}
.tk-b ul{padding-left:20px;margin:8px 0}
.tk-b video,.tk-b audio{width:100%;margin:8px 0;border-radius:10px;background:#000}
.tk-b audio{background:transparent}
.guide{max-height:420px;overflow:auto;padding:10px 12px;border-radius:10px;background:var(--surface-2);font-size:14.5px}
.guide p{margin:6px 0}
.seeks{list-style:none;padding:0;margin:6px 0 12px}
.seeks li{padding:6px 0;border-top:1px solid var(--line);font-size:14.5px}
.seek,.srcplay{min-height:30px;padding:0 10px;margin-right:6px;border-radius:999px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:13px;cursor:pointer}
.script h1{font-size:20px}.script h2{font-size:17px;margin-top:20px}.script blockquote{margin:8px 0;padding:8px 12px;border-left:3px solid var(--accent-line);background:var(--surface-2);border-radius:6px}
.script table{display:block;overflow-x:auto;font-size:13px;border-collapse:collapse}.script td,.script th{padding:4px 8px;border:1px solid var(--line)}
.script li{margin:6px 0}
.calc{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.cf{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);font-weight:600}
.cf input{min-height:44px;padding:0 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink);font-size:16px;font-variant-numeric:tabular-nums}
.cf .select select{width:100%}
.cres{display:grid;gap:6px}
.cr{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;background:var(--surface-2);font-size:14.5px}
.cr b{text-align:right;font-variant-numeric:tabular-nums}
.cr.big{background:var(--accent-soft)}.cr.big b{font-size:20px;color:var(--accent)}
.cr.warn{background:var(--bad-soft);color:var(--bad)}.cr.warn b{font-weight:500;text-align:left}
.cr.list{flex-direction:column}.cr.list b{text-align:left;font-weight:500;line-height:1.7}
@media (max-width:420px){.calc{grid-template-columns:1fr}}
.tabs a{font-size:10.5px}
.tabs a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:430px){.who .nm{display:none}.who{padding:0 4px;max-width:none;width:40px;justify-content:center}.tabs a{font-size:10px;letter-spacing:0}}
@media (max-width:400px){.tabs a{font-size:9px;letter-spacing:-.015em}}
@media (max-width:340px){.brand span:last-child{display:none}}
/* 390 px iPhone (2026-11-11): header had 0 px slack in Chrome, so Safari's wider serif pushed it to ~404. Brand shrinks with an ellipsis, buttons tighter. */
@media (max-width:430px){.brand{min-width:0;flex:0 1 auto;font-size:17px;gap:7px}.brand span:last-child{overflow:hidden;text-overflow:ellipsis}.top .askbtn{padding:0 10px;margin-left:2px}.top .bar{gap:4px}}
/* 2026-10-31 QA: nothing may widen the page at 375px - stage chips wrap inside their box, wide tables scroll inside themselves */
@media (max-width:640px){.crm-stages{flex-wrap:wrap;overflow:visible;margin:0;padding-left:0;padding-right:0}
  table.crm-off{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}}
.sw{margin-top:10px;padding:14px 16px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line);font-size:15px;line-height:1.5;color:var(--ink-2)}
.sw[hidden],.swlv[hidden]{display:none}
.sw-h b{font-size:17px;color:var(--ink)}.sw p{margin:6px 0}.sw-cat{color:var(--muted);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.sw-cost b{color:var(--accent)}
.road{list-style:none;padding:0;margin:8px 0 0}
.rstep{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.rn{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:700}
.rstep.done .rn{background:var(--good-soft);color:var(--good)}
.rh{display:flex;justify-content:space-between;align-items:center;gap:10px}.rh b{font-size:16.5px}
.rchk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);white-space:nowrap}
.rb p,.rb ul{margin:6px 0;font-size:15px;line-height:1.5;color:var(--ink-2)}.rb ul{padding-left:20px}
.fplay.go{border-color:var(--accent-line)}

/* ---------- Toolkit v2 (2026-10-28): hub + one view per category ---------- */
.tkhero .searchbox{margin-top:18px}
.tkhead{margin-bottom:6px}
.startcard{display:grid;gap:6px;margin-top:20px;padding:20px 18px 18px;border-radius:var(--radius);background:var(--ink);color:var(--bg);box-shadow:var(--shadow)}
.startcard .sc-k{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--accent) 70%,var(--bg))}
.startcard .sc-t{font-family:Newsreader,Georgia,serif;font-size:25px;font-weight:600;line-height:1.15}
.startcard .sc-s{font-size:14.5px;opacity:.82}
.startcard .pbar{margin-top:6px;background:color-mix(in srgb,var(--bg) 22%,transparent)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.tiles.one{grid-template-columns:1fr}
.tile{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0;padding:16px 14px 14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);color:var(--ink);transition:border-color .15s,transform .15s,box-shadow .15s}
.tile:hover{border-color:var(--accent-line);box-shadow:var(--shadow)}
.tile b{font-size:15.5px;line-height:1.25}.tile small{color:var(--muted);font-size:13px;line-height:1.4}
.tile .cnt{position:absolute;top:14px;right:14px;min-width:26px;height:22px;padding:0 7px;display:grid;place-items:center;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-size:12px;font-weight:700}
.tile.wide{flex-direction:row;align-items:center;gap:12px;padding:14px}
.tile.wide .row-t{flex:1}
.tile .kind{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700;color:var(--accent)}
.tk-ic{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent-soft);color:var(--accent)}
.press:active{transform:scale(.985)}
.sec-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.sec-row a{font-weight:600;font-size:14px;color:var(--accent);display:flex;align-items:center;gap:2px}
.musts{margin-top:26px}
.mustrow{display:flex;gap:10px;overflow-x:auto;padding:4px 16px 8px;margin:6px -16px 0;scroll-snap-type:x proximity;scrollbar-width:none}
.mustrow::-webkit-scrollbar{display:none}
.mustc{flex:none;width:124px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);scroll-snap-align:start;color:var(--ink)}
.mustc b{font-size:14.5px;line-height:1.2}.mustc small{color:var(--accent);font-weight:700;font-size:13px}
.sw-logo{width:36px;height:36px;border-radius:10px;background:#fff;object-fit:contain;padding:5px;border:1px solid var(--line);flex:none}
.sw-logo.txt{display:grid;place-items:center;padding:0;background:var(--accent-soft);color:var(--accent);font-weight:800;font-size:16px}
.row,.swc{margin-top:8px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line);min-width:0}
.row>summary,.swc>summary,.tls summary{display:flex;align-items:center;gap:12px;padding:13px 14px;cursor:pointer;list-style:none;min-height:60px}
.row>summary::-webkit-details-marker,.swc>summary::-webkit-details-marker,.tls summary::-webkit-details-marker{display:none}
.row>summary>svg.i:last-child,.tls summary>svg.i:last-child{flex:none;color:var(--muted);transition:transform .2s}
.row[open]>summary>svg.i:last-child,.tls details[open] summary>svg.i:last-child{transform:rotate(180deg)}
.row-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.row-t b{font-size:15.5px;line-height:1.3;color:var(--ink)}.row-t small{color:var(--muted);font-size:13.5px;line-height:1.4}
.swc>summary .row-t small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.row-b{padding:0 16px 16px;font-size:15px;line-height:1.55;color:var(--ink-2);overflow-wrap:anywhere}
.row-b p{margin:8px 0}.row-b video,.row-b audio{width:100%;margin:8px 0;border-radius:10px}
.when b{color:var(--ink)}
.how{margin:8px 0;padding-left:22px}.how li{margin:5px 0}
.acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center}
.acts .btn{min-height:42px;padding:0 16px;display:inline-flex;align-items:center;gap:6px}
.ftype{flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:10px;font-size:10.5px;font-weight:800;letter-spacing:.04em;background:var(--surface-2);color:var(--ink-2)}
.ftype.pdf{background:#f6e3df;color:#a6412a}.ftype.docx,.ftype.doc{background:#e1e9f6;color:#2c5aa0}.ftype.xlsx{background:#dff0e4;color:#1f6a50}
.ftype.video{background:var(--ink);color:var(--bg)}.ftype.guide,.ftype.png{background:var(--accent-soft);color:var(--accent)}
.price{flex:none;padding:5px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink);font-size:13px;font-weight:700;white-space:nowrap;max-width:118px;overflow:hidden;text-overflow:ellipsis}
.price.free{background:var(--good-soft);color:var(--good)}
.cost b{color:var(--ink)}
.seg.wide{display:flex;width:100%}.seg.wide button{flex:1}
.tgl{display:flex;align-items:center;gap:8px;margin:12px 0 2px;font-weight:600;font-size:14.5px;color:var(--ink-2)}
.tgl input,.rchk input{width:20px;height:20px;accent-color:var(--accent)}
.swlv h2.sec{margin-top:26px}.sub2{margin:2px 0 6px;font-size:14px}
.swlv[hidden],.swc[hidden],.row[hidden]{display:none}
.rprog{display:flex;align-items:center;gap:12px;margin:12px 0 4px}.rprog .pbar{flex:1}.rprog b{font-size:13.5px;color:var(--ink-2);white-space:nowrap}
.tl{list-style:none;padding:0;margin:8px 0 0;position:relative}
.tl::before{content:"";position:absolute;left:28px;top:24px;bottom:24px;width:2px;background:var(--line-2)}
.tls{position:relative;margin-top:8px}
.tls details{border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line)}
.tls details[open]{border-color:var(--accent-line);box-shadow:var(--shadow)}
.tln{flex:none;z-index:1;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:14px;box-shadow:0 0 0 4px var(--surface)}
.tls.done .tln{background:var(--good-soft);color:var(--good)}.tls.done .row-t b{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}
.tlb{padding:0 16px 16px 58px;font-size:15px;line-height:1.55;color:var(--ink-2);overflow-wrap:anywhere}
.warn{display:flex;gap:8px;align-items:flex-start;margin:10px 0;padding:10px 12px;border-radius:10px;background:var(--bad-soft);color:var(--bad);font-size:14.5px}
.warn svg.i{flex:none;width:16px;height:16px;margin-top:3px}
.golinks{display:grid;gap:8px;margin:12px 0}
.golink{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:14.5px;min-height:46px}
.golink:hover{filter:brightness(1.06)}.golink svg.i{flex:none}
.rchk{display:flex;align-items:center;gap:8px;margin-top:12px;font-weight:600;font-size:14px;color:var(--ink-2);cursor:pointer}
.playdot{flex:none;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent)}
.seeks li{display:flex;gap:8px;align-items:flex-start}.seeks .seek{flex:none}
.ccat h2.sec{margin-top:24px}
.calcbox{margin-top:14px;padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.calcbox .calc{margin-top:0}
.flash{animation:flash 1.6s ease-out}
@keyframes flash{0%{box-shadow:0 0 0 3px var(--accent)}100%{box-shadow:0 0 0 0 transparent}}
@media (min-width:700px){.tiles{grid-template-columns:repeat(3,1fr)}.tiles.one{grid-template-columns:1fr 1fr}.golinks{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){.flash{animation:none}.tile,.press:active{transition:none;transform:none}}
.tls summary{align-items:flex-start}.tls summary .tln{margin-top:1px}.tls summary .row-t small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tls details[open] summary .row-t small{display:block}
.row>summary .row-t small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.row[open]>summary .row-t small{display:block}.tkhead+h2.sec{margin-top:18px}
.gal-strip figure{flex:none;width:100%;height:clamp(200px,58vw,360px);margin:0;scroll-snap-align:center;display:flex;align-items:center;justify-content:center}.gal-strip figure img{width:auto;max-width:100%;height:auto;max-height:100%;object-fit:contain;display:block;image-rendering:auto}
/* game levels (2026-10-28) */
.lv-h{margin-top:30px}
.lv-p{margin:4px 0 0}
.levels{display:grid;gap:10px;margin-top:12px}
.level{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink);box-shadow:var(--shadow)}
.level:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.level .lv-n{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:var(--serif);font-size:20px;font-weight:700}
.level .lv-b{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.level .lv-b b{font-family:var(--serif);font-size:19px}
.level .lv-b small{color:var(--ink-2);font-size:14px;line-height:1.35}
.level .lv-s{flex:none;max-width:34%;text-align:right;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:4px;justify-content:flex-end}
.level .lv-s .i{width:14px;height:14px}
.level.locked{background:var(--bg);box-shadow:none}
.level.locked .lv-n{background:var(--line);color:var(--muted)}
.level.locked .lv-s{color:var(--muted)}
.level:disabled{opacity:.5;cursor:default}
.lv-up{display:flex;align-items:center;gap:8px;justify-content:center;margin:10px 0 0;font-weight:600;color:var(--good)}
/* leveled course (2026-10-28) */
.clvs{display:grid;gap:10px;margin-top:12px}
.clv{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
.clv>summary{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;list-style:none}
.clv>summary::-webkit-details-marker{display:none}
.clv>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.clv>summary>.i:last-child{flex:none;width:18px;height:18px;color:var(--muted);transition:transform .2s}
.clv[open]>summary>.i:last-child{transform:rotate(180deg)}
.clv .lv-n{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:var(--serif);font-size:20px;font-weight:700}
.clv .lv-n .i{width:16px;height:16px}
.clv .lv-b{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.clv .lv-b b{font-family:var(--serif);font-size:19px}
.clv .lv-b small{color:var(--ink-2);font-size:14px;line-height:1.35}
.clv .lv-s{flex:none;max-width:30%;text-align:right;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:4px;justify-content:flex-end}
.clv .lv-s .i{width:14px;height:14px}
.clv.locked{background:var(--bg);box-shadow:none}
.clv.locked .lv-n{background:var(--line);color:var(--muted)}
.clv.locked .lv-s{color:var(--muted)}
.clv-in{padding:0 12px 14px;border-top:1px solid var(--line)}
.clv-sec{margin-top:12px}
.clv-sec .cs-n{margin:0 4px 6px;font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.sreset{margin:6px 4px 4px;min-height:36px;font-size:13px;color:var(--muted)}.treset{display:block;margin:22px auto 0}.lreset{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px;padding-top:12px;border-top:1px solid var(--line,rgba(127,127,127,.25))}.lreset .undobar{flex-basis:100%}.undobar{margin:0 0 10px;font-size:14px;color:var(--muted)}.linkbtn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer;font-weight:600}
.lockline{display:flex;gap:6px;align-items:center;margin:12px 4px 0}
.lockline .i{width:15px;height:15px}
.rlesson{margin-top:18px;padding:18px;border-radius:var(--radius);border:1px solid var(--accent-line);background:var(--accent-soft)}
.rlesson h3{font-family:var(--serif);font-size:19px;margin:14px 0 4px}
.rlesson h3:first-of-type{margin-top:6px}
.rlesson p{margin:0;line-height:1.55}
.rlesson .keypoints{margin-top:14px}
.seecard{margin-top:18px;padding:16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface)}
.exam-card.locked,.next-track.locked{opacity:.75}

/* ---------- deals CRM (MVP 1, 2026-10-28) ---------- */
.crm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-top:6px}
.crm-add{min-height:44px;padding:0 16px;border-radius:999px;flex:none}
.crm-seg{display:flex;margin-top:16px;padding:4px;border-radius:12px;background:var(--surface-2);gap:4px}
.crm-seg a{flex:1;text-align:center;min-height:40px;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:9px;font-weight:600;font-size:15px;color:var(--ink-2)}
.crm-seg a small{font-size:12px;font-weight:700;color:var(--muted)}
.crm-seg a.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.crm-seg a.on small{color:var(--accent)}
.crm-chips{display:flex;gap:8px;overflow-x:auto;padding:14px 16px 4px;margin:0 -16px;scrollbar-width:none}
.crm-chips::-webkit-scrollbar{display:none}
.crm-chips .chip{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 13px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);font:600 14px var(--sans);color:var(--ink-2);cursor:pointer}
.crm-chips .chip b{color:var(--muted);font-weight:700}
.crm-chips .chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.crm-chips .chip.on b{color:inherit;opacity:.8}
.crm-stages .chip.on.s-dead{background:var(--bad);border-color:var(--bad);color:#fff}
.crm-stages .chip.on.s-contract,.crm-stages .chip.on.s-assigned,.crm-stages .chip.on.s-closed{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.crm-search{margin-top:10px}
.crm-search input{min-height:48px;font-size:16px}
.crm-overdue{margin:14px 0 0;padding:12px 14px;border-radius:var(--radius-s);background:var(--bad-soft);color:var(--bad);font-weight:600;font-size:14.5px}
.crm-list{display:grid;gap:10px;margin-top:14px}
.crm-row{display:block;padding:14px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.crm-row:hover{border-color:var(--line-2);box-shadow:var(--shadow)}
.crm-row-t{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.crm-row-t b{font-size:16.5px;line-height:1.3}
.crm-row-s{color:var(--ink-2);font-size:14px;margin-top:3px;line-height:1.4}
.crm-row-d{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:13.5px;font-weight:600;color:var(--accent)}
.crm-row-d svg.i{width:16px;height:16px}
.crm-row-d.over{color:var(--bad)}
.crm-dnc{color:var(--bad);font-weight:600;display:inline-flex;align-items:center;gap:3px}
.crm-dnc svg.i{width:14px;height:14px}
.crm-stage{flex:none;font-size:12px;font-weight:700;letter-spacing:.02em;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}
.crm-stage.s-contract,.crm-stage.s-assigned,.crm-stage.s-closed{background:var(--accent-soft);color:var(--accent)}
.crm-stage.s-offer{background:var(--better-soft);color:var(--better)}
.crm-stage.s-dead{background:var(--bad-soft);color:var(--bad)}
.crm-empty{padding:36px 16px;text-align:center;color:var(--muted);border:1px dashed var(--line-2);border-radius:var(--radius);display:grid;gap:6px}
.crm-empty b{color:var(--ink);font-size:17px}
.crm-empty a{color:var(--accent);font-weight:600}
.crm-tools{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.crm-tools .btn{min-height:44px;font-size:15px}
.crm-tools .btn.danger{color:var(--bad);border-color:var(--bad-soft)}
.crm-locked{padding:40px 0;text-align:center;display:grid;justify-items:center;gap:8px;color:var(--muted)}
.crm-locked svg.i{width:36px;height:36px}
.crm-toast{position:fixed;left:50%;bottom:calc(var(--tab) + env(safe-area-inset-bottom) + 16px);transform:translate(-50%,20px);opacity:0;z-index:50;background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:999px;font-weight:600;font-size:14.5px;transition:all .25s;pointer-events:none;max-width:calc(100vw - 32px)}
.crm-toast.on{opacity:1;transform:translate(-50%,0)}
.crm-toast.bad{background:var(--bad);color:#fff}
/* form */
.crm-form{display:grid;gap:10px;margin-top:14px}
.crm-form label,label.crm-form{display:grid;gap:5px;font-weight:600;font-size:14px;color:var(--ink-2)}
.crm-form input,.crm-form textarea,.crm-form select{width:100%;min-height:48px;padding:0 13px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:500 16px var(--sans)}
.crm-form textarea{padding:12px 13px;line-height:1.45;resize:vertical}
.crm-form .select select{min-height:48px;font-size:16px;width:100%}
.crm-form .g2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.crm-form .g3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}
.crm-form .g4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.crm-form .eyebrow{margin-top:10px}
.crm-form .err,.crm-sheet .err{color:var(--bad);font-weight:600;font-size:14.5px;margin:0}
.crm-form .btn{margin-top:6px}
/* sheets */
.crm-sheet{width:min(520px,calc(100vw - 20px));max-height:calc(100dvh - 24px);overflow:auto}
.crm-file{display:block;margin-top:16px}
.crm-file input{position:absolute;width:1px;height:1px;opacity:0}
.crm-prev{margin-top:14px;font-size:14.5px}
.crm-prev p{margin:0}
.crm-map{margin:6px 0 0;padding-left:18px;color:var(--ink-2);font-size:13.5px}
.crm-consent{display:flex;gap:10px;margin:12px 0 0;padding:12px;border-radius:var(--radius-s);background:var(--better-soft);color:var(--better);font-size:13.5px;font-weight:600;line-height:1.4}
.crm-consent svg.i{flex:none;width:20px;height:20px}
.crm-outcomes{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}
.crm-outcomes .chip{min-height:38px;padding:0 13px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);font:600 14px var(--sans);color:var(--ink-2);cursor:pointer}
.crm-outcomes .chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.crm-outcomes input[type=date]{min-height:38px;padding:0 10px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:600 14px var(--sans)}
/* lead card */
.crm-card{margin-top:14px;padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.crm-card-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.crm-big{font-family:var(--serif);font-size:22px;line-height:1.25;margin:6px 0 0;font-weight:500}
.crm-big small{font-family:var(--sans);font-size:14px;font-weight:600}
.crm-due{font-weight:700;font-size:14px;color:var(--accent)}
.crm-due.over{color:var(--bad)}
.crm-note{margin:12px 0 0;padding:12px 14px;border-radius:var(--radius-s);background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:14.5px}
.crm-dncbox{display:flex;gap:12px;align-items:flex-start;border-color:var(--line-2)}
.crm-dncbox svg.i{flex:none;width:24px;height:24px;margin-top:2px}
.crm-dncbox b{font-size:15.5px}
.crm-dncbox p{margin:3px 0 0;font-size:14px;color:var(--ink-2);line-height:1.45}
.crm-dncbox.blocked{background:var(--bad-soft);border-color:transparent;color:var(--bad)}
.crm-dncbox.blocked p{color:inherit}
.crm-dncbox.warn{background:var(--better-soft);border-color:transparent;color:var(--better)}
.crm-dncbox.warn p{color:inherit}
.crm-dncbox.ok{background:var(--accent-soft);border-color:transparent;color:var(--accent)}
.crm-dncbox.ok p{color:inherit}
.crm-mini{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.crm-mini .btn{min-height:36px;font-size:13.5px;padding:0 12px;color:var(--ink)}
.crm-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.crm-act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:68px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line);font:600 13px var(--sans);color:var(--ink);cursor:pointer}
.crm-act svg.i{color:var(--accent)}
.crm-act.off{color:var(--muted);background:var(--surface-2);border-color:transparent;cursor:default}
.crm-act.off svg.i{color:var(--muted)}
.crm-kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin-top:10px;font-size:14.5px}
.crm-kv span:nth-child(odd){color:var(--muted);font-weight:600}
.crm-kv a{color:var(--accent);font-weight:600;overflow-wrap:anywhere}
.crm-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}
.crm-nums div{display:grid;gap:2px}
.crm-nums small{color:var(--muted);font-weight:600;font-size:12px}
.crm-nums b{font-family:var(--serif);font-weight:500;font-size:19px;font-variant-numeric:tabular-nums}
.crm-hint{font-size:13.5px;margin:10px 0 0;line-height:1.45}
.crm-notes{width:100%;margin-top:8px;padding:12px 13px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink);font:400 15.5px/1.5 var(--sans);resize:vertical}
.crm-tl{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:12px}
.crm-tl li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:start}
.crm-tl p{margin:0;font-size:15px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.crm-tl small{color:var(--muted);font-size:12.5px}
.crm-tl-k{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 0;color:var(--muted)}
.crm-tl-k.k-call{color:var(--accent)}.crm-tl-k.k-stage{color:var(--mixed)}.crm-tl-k.k-offer{color:var(--better)}
@media (max-width:420px){.crm-form .g4{grid-template-columns:1fr 1fr}.crm-nums{grid-template-columns:1fr 1fr}}
.crm-inbox{margin-top:28px}
.crm-mail{position:relative;padding:12px 40px 12px 0;border-top:1px solid var(--line)}
.crm-mail:first-child{border-top:0}
.crm-mail-t{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.crm-mail-t b{font-size:15px;line-height:1.3}
.crm-mail-t small{color:var(--muted);white-space:nowrap;font-size:12.5px}
.crm-mail-l{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.crm-mail-l .chip{display:inline-flex;align-items:center;min-height:34px;padding:0 11px;border-radius:999px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);font:600 13px var(--sans)}
.crm-mail details{margin-top:8px;font-size:14px}
.crm-mail details summary{cursor:pointer;color:var(--accent);font-weight:600}
.crm-mail details p{margin:6px 0 0;white-space:pre-wrap;color:var(--ink-2);line-height:1.45}
.crm-mail-x{position:absolute;right:0;top:10px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line-2);background:var(--surface);color:var(--muted);display:grid;place-items:center;cursor:pointer;transform:rotate(45deg)}
.crm-mail-x svg.i{width:16px;height:16px}
/* software: who uses it (2026-10-28) */
.sw-who{margin:12px 0 4px}
.sw-who .swho{padding:8px 0;border-top:1px solid var(--line)}
.sw-who .swho p{margin:0 0 6px;line-height:1.45}
.sp-from{margin:6px 0 0}
.sp-how{margin-top:18px}
/* deals CRM MVP 4: Offers card + list offer line (2026-10-28) */
.crm-row-o{margin-top:6px;font-size:13.5px;color:var(--ink-2)}
.crm-row-o b{font-family:var(--serif);font-weight:600;font-size:15.5px;color:var(--accent);font-variant-numeric:tabular-nums}
.crm-off-rh{margin:8px 0 0;font-size:14.5px;line-height:1.45}
.crm-off-rh b{font-family:var(--serif);font-weight:600;font-size:17px}
.crm-off-h{margin:16px 0 4px;font:700 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.crm-off{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.crm-off th,.crm-off td{padding:7px 4px;text-align:right;white-space:nowrap}
.crm-off th:first-child{text-align:left;padding-left:0;font-weight:600;color:var(--ink-2)}
.crm-off tr:first-child th{font-size:11.5px;font-weight:700;color:var(--muted);padding-bottom:4px;border-bottom:1px solid var(--line)}
.crm-off td:last-child{padding-right:0}
.crm-off td b{font-family:var(--serif);font-weight:600;font-size:16.5px;color:var(--accent)}
.crm-off tr.sub td{text-align:left;padding:0 0 8px;font-size:12.5px;color:var(--muted);white-space:normal;border-bottom:1px solid var(--line)}
.crm-off tr.main th{color:var(--ink)}
.crm-need{margin:4px 0 0;font-size:14px;font-weight:600;color:var(--better)}
.crm-off-t{margin:4px 0 0;font-size:14.5px;line-height:1.45}
.crm-chk{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crm-chk li{font-size:12.5px;font-weight:600;padding:4px 9px;border-radius:999px}
.crm-chk li.ok{background:var(--good-soft);color:var(--good)}
.crm-chk li.no{background:var(--bad-soft);color:var(--bad)}
.crm-copy{margin-top:16px}
.crm-copy[disabled]{opacity:.5}

/* How to use this site (toolkit ?s=howto): narrated walkthrough videos */
.howto{display:grid;gap:18px;margin-top:8px}
.hv{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.hv video{display:block;width:100%;aspect-ratio:16/9;background:#000}
.hv-b{padding:14px 16px 16px}.hv-b h2{font-family:Newsreader,serif;font-weight:500;font-size:22px;margin:4px 0 4px}.hv-b p{margin:0;color:var(--muted)}
@media (min-width:900px){.howto{grid-template-columns:1fr 1fr}}

/* Practice call (2026-10-29) */
.calltile{margin-top:10px;border-color:var(--accent-line)}
.calltile .lv-n svg.i{width:18px;height:18px}
.call-gate{display:flex;align-items:center;gap:14px;margin-top:18px;padding:14px 16px;border-radius:var(--radius);border:1px dashed var(--line-2);background:var(--surface)}
.call-gate>svg.i{flex:none;width:22px;height:22px;color:var(--muted)}
.call-gate span{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.call-gate small{color:var(--ink-2);font-size:14px}
.call-brief{margin-top:8px}
.call-brief .facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:16px 0}
.call-brief .facts div{padding:10px 12px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line)}
.call-brief dt{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.call-brief dd{margin:2px 0 0;font-weight:600}
.call-go{margin-top:18px}
.call-screen{text-align:center;padding-top:28px}
.call-st{color:var(--ink-2);font-weight:600;min-height:1.5em;margin:6px 0 0}
.call-orb{position:relative;width:150px;height:150px;margin:28px auto 10px;border-radius:50%;background:var(--accent-soft);border:1px solid var(--accent-line);display:grid;place-items:center}
.call-orb span{width:64px;height:64px;border-radius:50%;background:var(--accent);opacity:.35;transition:transform .25s ease,opacity .25s ease}
.call-orb.them span{transform:scale(1.55);opacity:.9;animation:orb 1.1s ease-in-out infinite}
.call-orb.you{border-color:var(--better)}
.call-orb.you span{background:var(--better);transform:scale(1.3);opacity:.8}
@keyframes orb{50%{transform:scale(1.25)}}
@media (prefers-reduced-motion:reduce){.call-orb.them span{animation:none}}
.call-time{font-variant-numeric:tabular-nums;color:var(--muted);margin:4px 0 0}
.call-cap{max-height:190px;overflow:auto;text-align:left;margin:16px 0 0;padding:12px 14px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line);font-size:15px}
.call-cap p,.ctrans p{margin:0 0 8px}.call-cap p.you b,.ctrans p.you b{color:var(--better)}.call-cap p.them b,.ctrans p.them b{color:var(--accent)}
.call-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.btn.call-end{background:var(--bad);color:#fff}
.cobjs{display:grid;gap:10px}
.cobj{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.cobj summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none}
.cobj summary::-webkit-details-marker{display:none}
.cobj .cg{flex:none;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.cobj.g-good .cg{background:var(--good-soft);color:var(--good)}.cobj.g-ok .cg{background:var(--better-soft);color:var(--better)}.cobj.g-missed .cg{background:var(--bad-soft);color:var(--bad)}
.cobj .ct{flex:1;min-width:0}
.cobj summary svg.i{flex:none;width:18px;height:18px;color:var(--muted)}
.cobj .cin{padding:0 14px 14px}.cobj .cin p{margin:8px 0 0}
.cobj .rich{color:var(--ink-2)}.cobj .rich-say{font-family:var(--serif);font-size:17px}
.cobj .fplay,.csil .fplay{margin-top:10px}
.csil{padding:14px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}.csil p{margin:0}
.cmust{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.cmust li{display:flex;gap:10px;align-items:flex-start}.cmust li svg.i{flex:none;width:18px;height:18px;margin-top:3px}
.cmust li.y svg.i{color:var(--good)}.cmust li.n svg.i{color:var(--bad)}.cmust li.n span{color:var(--ink-2)}
.cfix{margin:0;padding-left:20px}.cfix li{margin:0 0 6px}
.ctrans{margin-top:24px;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface)}
.ctrans summary{cursor:pointer;font-weight:600;display:flex;align-items:center;gap:6px}.ctrans summary svg.i{width:16px;height:16px}
.call-deal{margin:22px 0 0;padding:14px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);text-align:left}
.call-deal .cd-h{margin:4px 0 0;font-weight:600}
.call-deal dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px 14px;margin:10px 0 0}
.call-deal dt{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.call-deal dd{margin:2px 0 0}

/* home: everything except the next step folds away (ops st2) */
.home-more{margin-top:22px}
.home-more>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;font-weight:600;color:var(--muted,#6b6b6b);padding:10px 2px}
.home-more>summary::-webkit-details-marker{display:none}
.home-more[open]>summary svg{transform:rotate(180deg)}
.pg-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.pg-c{border:1px solid var(--line);border-radius:12px;padding:10px 8px;text-align:center}
.pg-c b{display:block;font-size:1.15rem}
.pg-c small{color:var(--muted);font-size:.72rem;line-height:1.2;display:block;margin-top:2px}
/* I found a property walkthrough (found.js) */
.fd-form{margin-top:18px}
.fd-opt,.fd-sim{margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface)}
.fd-opt.best{border-color:var(--accent-line);background:var(--accent-soft)}
.fd-oh{display:flex;align-items:center;justify-content:space-between;gap:10px}
.fd-opt p,.fd-sim p{margin:8px 0 0;line-height:1.45}
.fd-sim b{display:block;margin-top:6px}
.fd-q{font-style:italic;color:var(--ink-2)}
.fd-sim .fplay{margin-top:10px}
.fd-chk{margin:8px 0 0;padding-left:18px;font-size:14px}.fd-chk .ok{color:var(--good)}.fd-chk .no{color:var(--bad)}
.fd-loi{display:block;width:100%;box-sizing:border-box;margin-top:10px;padding:12px 13px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:500 14.5px/1.5 var(--mono,ui-monospace,monospace);resize:vertical}
#fdOut h2.sec{margin-top:28px}

.askbtn{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;margin-left:4px;border-radius:99px;border:1px solid var(--line,#8884);font-weight:600;font-size:.9rem;color:inherit;text-decoration:none}
.askbtn:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.topnav a{white-space:nowrap}

/* Coaching moments (2026-10-31): you said / Richard teaches / rewatch. Warm paper cards, no dashboard chrome. */
.coach{display:grid;gap:12px;margin:10px 0 0}
.coach-row{padding:14px 16px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line)}
.coach-row small{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.coach-said{margin:0 0 10px;color:var(--ink-2);font-size:15px;line-height:1.5}
.coach-richard{margin:0;font-size:15.5px;line-height:1.55;border-left:3px solid var(--accent);padding-left:12px}
.coach-watch{display:inline-flex;align-items:center;gap:8px;margin-top:12px;min-height:44px;font-weight:700;font-size:14.5px;color:var(--accent)}
.coach-watch svg.i{width:18px;height:18px}

/* Daily deal drill (2026-10-31): warm paper, serif numbers, no dashboard chrome */
.dr-house,.dr-form,.dr-res,.dr-hist{margin-top:18px;padding:18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.dr-addr{font:600 26px/1.2 var(--serif);margin:6px 0 2px}
.dr-city{margin:0 0 14px;font-size:15px}
.dr-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px 16px;margin:0}
.dr-facts div{min-width:0}
.dr-facts dt{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.dr-facts dd{margin:2px 0 0;font:600 20px/1.25 var(--serif)}
.dr-quote{margin:16px 0 0;padding:2px 0 2px 14px;border-left:3px solid var(--line-2);color:var(--ink-2);font-size:15.5px;line-height:1.55}
.dr-photos{display:flex;gap:8px;overflow-x:auto;margin:16px 0 0;padding-bottom:4px}
.dr-photos img{height:96px;width:auto;border-radius:10px;border:1px solid var(--line)}
.dr-link{margin:14px 0 0}.dr-link a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:700;color:var(--accent)}
.dr-how{margin:6px 0 14px;font-size:15px}
.dr-f{display:block;margin:0 0 14px}
.dr-f>span:first-child{display:block;font-weight:700}
.dr-f small{display:block;color:var(--muted);font-size:13.5px;margin-bottom:6px}
.dr-in{display:flex;align-items:center;gap:8px;min-height:54px;padding:0 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg)}
.dr-in:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.dr-in b{color:var(--muted);font-weight:600}
.dr-in input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:600 22px var(--serif);outline:0}
.dr-score{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:6px 0 4px}
.dr-big{font:600 56px/1 var(--serif);color:var(--accent)}
.dr-head{font-size:17px;font-weight:600;line-height:1.45;margin:6px 0 14px}
.dr-tbl{width:100%;border-collapse:collapse;font-size:15.5px}
.dr-tbl th,.dr-tbl td{padding:10px 8px;text-align:right;border-bottom:1px solid var(--line)}
.dr-tbl thead th{color:var(--muted);font-weight:700;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase}
.dr-tbl th:first-child{text-align:left}
.dr-tbl tbody th{font-weight:700;text-transform:none;font-size:15.5px;letter-spacing:0;color:var(--ink)}
.dr-tbl td{font-family:var(--serif);font-weight:600;font-size:18px}
.dr-tbl .dr-gap{color:var(--ink-2)}
.dr-sub{font-size:14px;margin:12px 0 0}
.dr-why{display:grid;gap:14px;margin-top:16px}
.dr-why h3{font:700 13px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}
.dr-why p{margin:0;font-size:15.5px;line-height:1.6;color:var(--ink-2)}
.dr-why ul{margin:0;padding-left:18px;font-size:15.5px;line-height:1.6;color:var(--ink-2)}
.dr-next{padding:12px 14px;border-radius:var(--radius-s);background:var(--accent-soft)}.dr-next p{color:var(--ink)}
.dr-watch{margin-top:14px;display:grid}
.dr-engine{font-size:13px;margin:16px 0 0}
.dr-stat{margin:6px 0 8px;font-size:15px;color:var(--ink-2)}.dr-stat b{font:600 28px var(--serif);color:var(--accent);margin-right:4px}
.dr-spark{width:100%;height:auto;max-height:110px;display:block}
.dr-line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.dr-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2}
.dr-ref{stroke:var(--line-2);stroke-dasharray:4 4}
.dr-list{list-style:none;margin:12px 0 0;padding:0}
.dr-list li{display:grid;grid-template-columns:56px 1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}
.dr-d{color:var(--muted)}.dr-a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dr-n{font:600 18px var(--serif)}
@media(min-width:760px){.dr-addr{font-size:32px}}
@media(max-width:480px){.dr-house,.dr-form,.dr-res,.dr-hist{padding:16px 14px}.dr-tbl{table-layout:fixed}.dr-tbl th,.dr-tbl td{padding:10px 3px}.dr-tbl td{font-size:15px}.dr-tbl th:first-child{width:21%;font-size:13px}.dr-tbl thead th{font-size:11px}}
/* On the Go (listen.html, 2026-10-31): big touch targets for use in a car */
.ls .ls-pick{display:flex;flex-direction:column;gap:6px;margin:16px 0}
.ls .ls-now{background:var(--card,rgba(0,0,0,.03));border-radius:16px;padding:18px;margin:12px 0}
.ls .ls-what{font-size:20px;font-weight:600;margin:0}
.ls .ls-sub{margin:4px 0 12px}
.ls .ls-bar{height:8px;border-radius:4px;background:rgba(127,127,127,.25);overflow:hidden}
.ls .ls-bar i{display:block;height:100%;width:0;background:var(--accent,#2f6b4f)}
.ls .ls-time{margin:6px 0 0;font-variant-numeric:tabular-nums}
.ls .ls-ctl{display:flex;justify-content:space-between;gap:8px;margin:16px 0}
.ls .ls-b{flex:1;min-height:64px;border-radius:14px;border:1px solid rgba(127,127,127,.35);background:transparent;color:inherit;font-size:20px;font-weight:600}
.ls .ls-play{flex:1.6;font-size:28px;background:var(--accent,#2f6b4f);color:#fff;border:0}
.ls .ls-opts{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}
.ls .ls-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ls .ls-step{width:100%;text-align:left;min-height:56px;padding:12px 14px;border-radius:12px;border:1px solid rgba(127,127,127,.3);background:transparent;color:inherit;display:flex;flex-direction:column;gap:2px}
.ls .ls-step.on{border-color:var(--accent,#2f6b4f);box-shadow:inset 3px 0 0 var(--accent,#2f6b4f)}

/* typed practice call + mic-blocked card (2026-10-31 QA) */
.call-micerr{margin:14px 0 8px;padding:12px 14px;border-radius:var(--radius-s);background:var(--bad-soft);color:var(--bad);font-size:15px;line-height:1.45}
.call-brief .call-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.call-brief .call-btns .btn{flex:1 1 150px}
.tchat{display:grid;gap:8px;margin:14px 0 10px;max-height:44vh;overflow-y:auto;padding:2px}
.tchat p{text-align:left;margin:0;padding:9px 12px;border-radius:14px;max-width:88%;font-size:15.5px;line-height:1.42;overflow-wrap:anywhere}
.tchat p small{display:block;font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.tchat p.you{justify-self:end;background:var(--accent-soft)}.tchat p.them{justify-self:start;background:var(--surface-2)}
.tform{text-align:left;display:flex;gap:8px;align-items:flex-end}.tform textarea{flex:1;min-width:0;min-height:48px;padding:10px 12px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:inherit;font-size:16px;resize:vertical}
.tform .btn{flex:none}
.ls .ls-row{display:flex;gap:8px;align-items:stretch}
.ls .ls-row .ls-step{flex:1}
.ls .ls-go{display:flex;flex-direction:column;gap:6px}
.ls .ls-go .btn{min-height:44px;padding:0 14px}
.ls .ls-todo{border:1px solid var(--accent,#2f6b4f);border-radius:14px;padding:12px 14px;margin:8px 0 4px;display:flex;flex-direction:column;gap:8px}
.ls .ls-todo .btn{justify-content:flex-start}
@media (max-width:1400px){.who .nm{display:none}.who{padding:0 4px;max-width:none;width:40px;justify-content:center}}   /* 10 top tabs: avatar only so the header fits (2026-10-31 VM check, 31px overflow at 1280) */

.chips.wrap{flex-wrap:wrap;overflow:visible;padding-top:10px}   /* teacher picker: wrapped, no side-scroll (2026-10-31) */
.rep .t,.rep .m{overflow-wrap:anywhere}   /* long replay titles wrapped past 375px (2026-10-31 VM check) */

/* quiz review pop-ups (2026-10-31): clip switcher + lesson sheet */
dialog.clip-sheet .cs-list{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
dialog.clip-sheet .cs-list .chip{max-width:100%;white-space:normal;text-align:left}
dialog.lesson-sheet{width:min(640px,calc(100vw - 16px))}
dialog.lesson-sheet .in{max-height:calc(100dvh - 40px);overflow:auto}
dialog.lesson-sheet h4{margin:12px 0 4px;font-size:15px}
dialog.lesson-sheet p,dialog.lesson-sheet li{line-height:1.5}
dialog.lesson-sheet .qacts{margin-top:16px;flex-wrap:wrap}
/* On the Go offline download (2026-10-31) */
.ls-off{margin:12px 0 4px;display:grid;gap:8px}
.ls-off .btn{justify-self:start}
.ls-offst{display:flex;align-items:center;gap:6px;font-weight:600;margin:0}
.ls-off .pbar{flex:none;width:100%;height:6px}
.ls-dlb{display:flex;flex-wrap:wrap;gap:8px}
/* On the Go: Richard's clips show his screen in the player (2026-10-31) */
.ls-stage{position:relative;overflow:hidden;background:#000;border-radius:12px;width:100%;aspect-ratio:16/9;margin:10px 0 6px;cursor:pointer}
.ls-stage video{position:absolute;left:0;top:0;transform-origin:0 0;max-width:none}
.ls-stage:fullscreen,.ls-stage:-webkit-full-screen{border-radius:0;width:100vw;height:100vh}
.ls-vctl{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.ls-vctl .btn[aria-pressed=true]{background:var(--ink);color:var(--bg)}

/* On the Go full screen (2026-10-31): browser full screen on laptops, full-window mode on iPad; Zoom works in both */
.ls-stage.fs{position:fixed;inset:0;z-index:1000;width:100vw;height:100dvh!important;aspect-ratio:auto!important;border-radius:0;margin:0}
body.ls-fsb{overflow:hidden}
.ls-fsx{display:none;position:absolute;top:12px;right:12px;z-index:2;align-items:center;gap:6px;padding:10px 14px;border:0;border-radius:999px;background:rgba(0,0,0,.65);color:#fff;font-weight:600;cursor:pointer}
.ls-stage.fs .ls-fsx,.ls-stage:fullscreen .ls-fsx,.ls-stage:-webkit-full-screen .ls-fsx{display:inline-flex}

/* Finished sections / steps fold away (Kenneth 2026-10-31) + quiz score list */
details.clv-sec>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px}
details.clv-sec>summary::-webkit-details-marker{display:none}
details.clv-sec>summary>span:first-child{flex:1}
details.clv-sec>summary svg.i:last-child{transition:transform .2s}
details.clv-sec[open]>summary svg.i:last-child{transform:rotate(180deg)}
details.clv-sec .cs-done{display:inline-flex;align-items:center;gap:4px;color:var(--accent,#2f6b4f);text-transform:none;letter-spacing:0}
.ls .ls-fin details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;min-height:48px;padding:10px 14px;border-radius:12px;border:1px dashed rgba(127,127,127,.4);font-weight:600}
.ls .ls-fin details>summary::-webkit-details-marker{display:none}
.ls .ls-fin details[open]>summary{margin-bottom:8px}
.ls .ls-scores{margin-top:16px}
.ls .ls-sc{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid rgba(127,127,127,.2);color:inherit;text-decoration:none}
.ls .ls-sc>span{flex:1;display:flex;flex-direction:column;gap:2px}
.ls .ls-pct{font-size:20px}
.ls .ls-pct.ok{color:var(--accent,#2f6b4f)}

/* Quiz read aloud (Kenneth 2026-10-31) */
.crow{display:flex;gap:8px;align-items:stretch}
.crow .choice{flex:1}
.say1{flex:0 0 52px;display:grid;place-items:center;border-radius:14px;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink-2);cursor:pointer}
.say1 svg{width:22px;height:22px}
.sayrow{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.sayrow .sayq{margin:0}
.qauto{display:inline-flex;align-items:center;gap:8px}.qauto[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}
.sayq{margin:0 0 14px;display:inline-flex;align-items:center;gap:8px}
.qfeed .sayq{margin:8px 0}

/* Deal journeys (Kenneth 2026-10-31) */
.jlist{display:grid;gap:12px;margin-top:18px}
.jcard{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line);color:inherit;text-decoration:none}
.jcard b{font-size:17px} .jcard small{color:var(--muted)}
.jbridge{display:flex;flex-direction:column;gap:4px;margin:14px 0 10px;padding:14px 16px;border-radius:var(--radius-s);background:var(--surface-2);border-left:4px solid var(--accent)}
.jbridge b{font-size:17px}
.jchap{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}
.jchap button{width:100%;display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:start;text-align:left;padding:12px 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:inherit;cursor:pointer}
.jchap button.on{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.jchap .jn{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);font-weight:700}
.jchap .jb{display:flex;flex-direction:column;gap:2px}
.jchap .jbr{font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}
.jchap small{color:var(--muted)}
.jwatch{margin:0;padding-left:20px;display:grid;gap:6px}

.sayq.on,.say1.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.ls .ls-exam{display:flex;flex-direction:column;gap:2px;text-decoration:none;border-style:dashed}

/* Keep listening + notes (Kenneth 2026-11-01) */
.cbtn[hidden],.stage .fsbar button[hidden]{display:none}
.controls.ctl2{grid-template-columns:repeat(auto-fit,minmax(0,1fr));margin-top:6px}
.controls.ctl2 .cbtn{min-height:56px;white-space:normal;text-align:center;line-height:1.15}
.stage .lmsg{display:none}
.stage.listen{aspect-ratio:auto!important;height:auto!important;background:var(--surface-2)}
.stage.listen .inner{position:absolute!important;left:0;top:0;width:2px!important;height:2px!important;opacity:.02;pointer-events:none;transform:none!important;clip-path:none!important;overflow:hidden}
.stage.listen .lmsg{display:flex;align-items:center;gap:14px;padding:20px 16px;color:var(--ink)}
.stage .lmsg svg.i{width:30px;height:30px;color:var(--accent);flex:none}
.stage .lmsg span{display:grid;gap:2px}.stage .lmsg b{font-size:17px}.stage .lmsg small{color:var(--muted);font-size:13.5px}
.bghint{margin:12px 0 4px;padding:14px;border-radius:var(--radius-s);background:var(--accent-soft);border:1px solid var(--accent-line);font-size:14.5px;line-height:1.5}
.bghint p{margin:0}.bghint .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.bghint .btn{min-height:44px;font-size:14.5px}
.share{justify-content:space-between;align-items:center;flex-wrap:wrap}
.share a{color:var(--accent);font-weight:600;font-size:14px;min-height:40px;display:inline-flex;align-items:center;gap:6px}
dialog.sheet textarea{width:100%;box-sizing:border-box;min-height:110px;margin-top:8px;padding:12px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink);font:16px/1.45 var(--sans);resize:vertical}
dialog.sheet .ns-syn{margin:12px 0 0;padding:12px;border-radius:12px;background:var(--surface-2);font-size:15px;line-height:1.5;color:var(--ink-2)}
dialog.sheet .ns-lab{display:block;margin-top:16px;font-weight:600;font-size:15px}
.nt-card{margin-top:14px;padding:16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface)}
.nt-hd{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.nt-title{font-weight:700;font-size:16.5px;line-height:1.3;color:var(--ink)}
.nt-time{flex:none;padding:2px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:13.5px;font-variant-numeric:tabular-nums}
.nt-meta{margin:4px 0 0;font-size:13px}
.nt-syn{margin:10px 0 0;font-size:15px;line-height:1.5;color:var(--ink-2)}
.nt-note{margin:10px 0 0;padding:10px 12px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 10px 10px 0;font-size:15.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.nt-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.nt-acts .btn{min-height:44px;padding:0 14px;font-size:14.5px}
.nt-sync{margin:12px 0 0;font-size:14px}
.nt-pick{display:flex;flex-direction:column;gap:6px;margin:14px 0 0}.nt-pick>span:first-child{font-size:13px;font-weight:700;color:var(--muted)}
@media (max-width:600px){.nt-acts .btn:first-child{flex:1 1 100%}.nt-acts .btn:not(:first-child){flex:1 1 0}}

/* Scrub bar + resume note (Kenneth 2026-11-01): a draggable bar wherever the picture's own bar is missing (full screen, Zoom, Listen mode, On the Go) */
.scrub{display:flex;align-items:center;gap:10px;width:100%;margin:6px 0;font-size:13.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
.scrub[hidden],#pgScrub[hidden],.pgscrub[hidden]{display:none}
.scrub .sc-t,.scrub .sc-d{flex:none;min-width:42px}.scrub .sc-d{text-align:right}
.scrub .sc-r{flex:1;min-width:0;height:32px;margin:0;padding:0;background:transparent;-webkit-appearance:none;appearance:none;touch-action:none;cursor:pointer;--p:0%}
.scrub .sc-r:disabled{opacity:.5;cursor:default}
.scrub .sc-r::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:linear-gradient(to right,var(--accent) var(--p),rgba(127,127,127,.35) var(--p))}
.scrub .sc-r::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:28px;height:28px;margin-top:-10px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 5px rgba(0,0,0,.45)}
.scrub .sc-r::-moz-range-track{height:8px;border-radius:4px;background:linear-gradient(to right,var(--accent) var(--p),rgba(127,127,127,.35) var(--p))}
.scrub .sc-r::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 5px rgba(0,0,0,.45)}
.stage .fsbar{flex-wrap:wrap}.stage .fsbar .scrub{flex:1 0 100%;margin:0 0 4px;color:#fff}
.stage .fsbar .scrub .sc-r{--accent:#62c398}
.ls-stage .scrub{display:none;position:absolute;left:0;right:0;bottom:0;z-index:3;margin:0;padding:10px 14px;padding-bottom:max(10px,env(safe-area-inset-bottom));width:auto;box-sizing:border-box;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.78))}
.ls-stage.fs .scrub,.ls-stage:fullscreen .scrub,.ls-stage:-webkit-full-screen .scrub{display:flex}
.ls-stage .scrub .sc-r{--accent:#62c398}
.ls .scrub{margin:8px 0 0}
.rsnote{margin:6px 0 0;font-size:14px;color:var(--muted)}.rsnote[hidden]{display:none}
.linkbtn{background:none;border:0;padding:6px 2px;min-height:32px;font:inherit;font-weight:700;color:var(--accent);text-decoration:underline;cursor:pointer}

/* Explain bot in the graded window (Kenneth 2026-11-04; public/explain.js) */
.xask{margin-top:10px;min-height:40px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--accent);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.xask[aria-expanded="true"]{background:var(--accent);color:var(--paper,#fff);border-color:var(--accent)}
.xask.xbig{width:100%;min-height:48px;font-size:16px;margin:0}
.xcall{margin:12px 0 0}
.cmust li{flex-wrap:wrap}.cmust li .xask{margin-top:2px;margin-left:28px}
.xpanel{flex-basis:100%;width:100%;margin-top:10px;padding:12px;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg,#fff);text-align:left}
.xchips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.xchip{min-height:36px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.xthread{display:grid;gap:8px;margin-bottom:10px}
.xmsg{margin:0;padding:8px 12px;border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.45}
.xmsg.you{justify-self:end;background:var(--accent);color:var(--paper,#fff);max-width:90%}
.xmsg.coach{background:var(--surface);border:1px solid var(--line)}
.xmsg.wait{color:var(--muted);font-style:italic}.xmsg.err{color:var(--bad,#b3261e);border:1px solid var(--bad,#b3261e)}
.xform{display:flex;gap:8px}.xform input{flex:1;min-width:0;min-height:44px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:16px}
/* Before you dial: the math card (crm.js dealMath) */
.crm-math .crm-kv small{display:block;font-weight:400}
.crm-math .crm-kv{grid-template-columns:1fr;gap:0}
.crm-math .crm-kv span:nth-child(odd){font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-top:12px}
.crm-math .crm-kv span:nth-child(even){font-size:16px;overflow-wrap:anywhere}
.simpart>.xask,.simpart>.xpanel{grid-column:1/-1}.xask{justify-self:start;align-self:start}
.xpanel,.xthread,.xmsg,.xform{min-width:0;box-sizing:border-box}
.crm-math .mt{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.crm-math .mt>div{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-width:0}
.crm-math .mt small{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.crm-math .mt b{display:block;font-size:20px;margin-top:2px}.crm-math .mt span{display:block;font-size:12.5px;color:var(--muted);line-height:1.3;margin-top:2px}
.crm-math .mt em{font-style:normal}.crm-math .mt em.ok{color:var(--good)}.crm-math .mt em.no{color:var(--bad)}
.crm-math .mt-more{margin-top:10px}.crm-math .mt-more summary{cursor:pointer;font-weight:600;min-height:36px;display:flex;align-items:center}
.crm-math .mt-exit{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.crm-math .mt-exit small{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.crm-math .mt-exit>b{display:block;font-size:20px;margin-top:2px}.crm-math .mt-exit>span{display:block;font-size:13.5px;color:var(--muted);margin-top:2px}
.crm-math .mt-exit ul{margin:10px 0 0;padding-left:18px;display:grid;gap:6px;font-size:14px;line-height:1.4}

/* Replays list watched state (Kenneth 2026-11-05) */
.rep .wt{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:7px;font-size:12.5px;color:var(--muted)}
.rep .wtb{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-weight:600}
.rep .wtb svg{width:14px;height:14px}
.rep .wbar{flex:1 1 80px;max-width:150px;height:4px;background:var(--line);border-radius:2px;overflow:hidden}
.rep .wbar>span{display:block;height:100%;background:var(--accent)}
.rep .wtog{font:inherit;font-size:12px;min-height:32px;padding:4px 11px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;margin-left:auto}

/* Richard's whole course rows, walkthrough videos and Full lives on this topic (Kenneth 2026-11-05) */
.glance.whole{margin-top:12px}
.walkbox{margin-top:16px}.walkbox .walk{margin-top:10px}.walkbox video{display:block;width:100%;margin-top:6px;border-radius:var(--radius-s);background:#000;max-height:60vh}
.lives{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface)}
.lives .lv-row{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);min-height:48px}
.lives .lv-row:first-of-type{border-top:0}
.lives .lv-row b{display:block;font-weight:600;font-size:14.5px;line-height:1.35;overflow-wrap:anywhere}.lives .lv-row small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px;overflow-wrap:anywhere}
/* What the lives say, under the point on a lesson (Kenneth 2026-11-06) */
.livenote{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface)}
.livenote .ln-say{margin:6px 0 4px;font-size:15.5px;line-height:1.5;color:var(--ink)}
.livenote .ln-ref{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);min-height:48px}
.livenote .ln-ref b{display:block;font-weight:600;font-size:14.5px;line-height:1.35;overflow-wrap:anywhere}
.livenote .ln-ref small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px;overflow-wrap:anywhere}
.livenote .ln-rule{margin:0;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
/* Step 1: Richard's course video opens the track (Kenneth 2026-11-07) */
.step1{margin-top:18px} .step1 .eyebrow{margin:0} .step1 .glance{margin-top:10px} .step1 .vwatched{margin-top:10px}
a.vlink{display:grid;grid-template-columns:1fr 20px;gap:10px;align-items:center;margin-top:14px;padding:12px 14px;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line);color:inherit;text-decoration:none}
a.vlink b{display:block;font-weight:600;font-size:14.5px;line-height:1.35} a.vlink small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
/* Weak signal notice under the replay player (Kenneth 2026-11-07) */
.netnote{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px;font-size:14px} .netnote[hidden]{display:none} .netnote .btn{padding:6px 12px;font-size:13.5px}
/* Pull to refresh in the Home Screen app (Kenneth 2026-11-07) */
.ptr{position:fixed;top:env(safe-area-inset-top,0);left:50%;width:170px;margin-left:-85px;padding:8px 0;text-align:center;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink);font-size:13.5px;z-index:9999;opacity:0;transform:translateY(-50px);pointer-events:none;box-shadow:0 4px 16px rgba(0,0,0,.18)}
/* Teachers' strategies (2026-11-07) */
.t-sec{margin:22px 0 0}.t-sec h2{font-size:17px;margin:0 0 8px}.t-sec ul{margin:0;padding-left:18px}.t-sec li{margin:0 0 10px;line-height:1.45}
.t-refs{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:6px;vertical-align:middle}
.t-ref{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:600;padding:2px 7px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--accent);text-decoration:none}
.t-ref svg{width:11px;height:11px}
.t-ours{font-size:11px;font-weight:600;padding:1px 6px;border-radius:6px;background:var(--surface-2,#eee);color:var(--ink-2)}
.t-note{font-size:13px;margin:4px 0 8px}
.t-fit{margin:18px 0 6px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}.t-fit p{margin:6px 0 0;line-height:1.45}
.t-fit.tv-go{border-color:var(--accent-line);background:var(--accent-soft)}.t-fit.tv-later{border-color:#d8b35a}.t-fit.tv-no{border-color:#c98b8b}
.t-chip{font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;border:1px solid var(--line);margin-left:6px;vertical-align:middle;white-space:nowrap}
.t-chip.tv-go{color:var(--accent);border-color:var(--accent-line)}.t-chip.tv-later{color:#9a7419;border-color:#d8b35a}.t-chip.tv-no{color:#a34f4f;border-color:#c98b8b}
.t-card{display:flex;align-items:center;gap:12px;padding:14px 16px;margin:0 0 10px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:inherit;text-decoration:none}
.t-card>div{flex:1;min-width:0}.t-card .t{font-weight:700;font-size:16px}.t-card .m{font-size:14px;color:var(--ink-2);margin-top:4px;line-height:1.4}.t-card svg{flex:none}
/* replay zoom: pinch / drag / wheel / double-tap layer and +/- buttons (Kenneth 2026-11-08) */
.stage .zpad{position:absolute;inset:0;z-index:4;touch-action:none;cursor:grab}
.stage .zpad:active{cursor:grabbing}
.stage .zctl{position:absolute;top:8px;right:8px;z-index:6;display:flex;gap:6px}
.stage .zctl button{width:44px;height:44px;border-radius:11px;border:1px solid rgba(255,255,255,.3);background:rgba(20,20,20,.6);color:#fff;font-size:24px;font-weight:600;line-height:1;cursor:pointer}
.stage .zpad[hidden],.stage .zctl[hidden]{display:none}
.stage.listen .zpad,.stage.listen .zctl{display:none}
@media (min-width:1200px){.top .bar{max-width:1180px}.topnav{margin-left:10px;gap:2px}.topnav a{padding:8px 9px}}   /* RT button added to the header (2026-11-08): tighter top links so the account button stays on screen */
/* centered Back 15 / Play / Ahead 15 over a filled share or Zoom (Kenneth 2026-11-09: the phone's own buttons sat in a corner) */
.stage .zmid{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;display:flex;align-items:center;gap:18px}
.stage .zmid[hidden]{display:none}
.stage .zmid button{display:inline-flex;align-items:center;justify-content:center;gap:2px;width:56px;height:56px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(20,20,20,.6);color:#fff;font-weight:700;font-size:13px;cursor:pointer}
.stage .zmid .zplay{width:72px;height:72px}
.stage .zmid svg.i{width:22px;height:22px}
.stage .zmid .zplay svg.i{width:32px;height:32px}
.stage.listen .zmid{display:none}
/* skip hit boxes about 3x the old 56 px circle (Kenneth 2026-11-09): the whole left/right third of the picture's middle is the button; the circle stays a mark */
.stage .zmid{gap:4px}
.stage .zmid .zskip{width:min(34vw,150px);height:min(46vw,170px);border-radius:16px;border:0;background:transparent}
.stage .zmid .zskip .zc{display:inline-flex;align-items:center;justify-content:center;gap:2px;width:72px;height:72px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(20,20,20,.6);font-size:15px}
.stage .zmid .zskip svg.i{width:26px;height:26px}
.stage .zmid .zskip:active .zc{background:rgba(255,255,255,.28)}
/* Objection answers not on the lives (2026-11-11): 191 of 367 are covered=0 in D1 rt_bank */
.ob-tag{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:99px;background:var(--surface-2);color:var(--muted);font:600 11px/1.6 var(--sans);font-style:normal;vertical-align:middle;white-space:nowrap}
.ob-warn{margin:0 0 10px;padding:8px 10px;border-left:3px solid var(--muted);background:var(--surface-2);color:var(--ink-2);font-size:13.5px;line-height:1.45}
.ob-taught{margin:10px 0 0}
.ob-taught[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
/* playback speed picker up to 3x (Kenneth 2026-11-11) */
.spd{display:inline-flex;align-items:center;gap:6px;font-size:14px;cursor:pointer}
.spd select{font:inherit;font-weight:600;border:1px solid var(--line);border-radius:8px;padding:4px 6px;background:var(--surface);color:inherit;min-height:32px}
.spd.cbtn{display:flex;flex-direction:column;gap:2px}
.spd.cbtn select{border:0;background:transparent;padding:0 2px;min-height:0}
.spd-under{margin:6px 0 2px}
.spdrow{display:flex;justify-content:flex-end;margin:6px 0 2px}
.hv .spd-under{margin:10px 16px 0}
/* Buyer practice calls: the buy box card on screen, the reveal in the graded window, the coach chat under the grade (Kenneth 2026-11-13) */
.call-box{border-color:var(--accent)}
.call-box dl,.bbrev{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:10px 0 0}
.call-box dd,.bbrev dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}
.call-box dt,.bbrev dt{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.xchat{margin:14px 0 0;padding:14px;border-radius:var(--radius);border:2px solid var(--accent);background:var(--surface)}
.xchat h2{margin:0 0 4px;font-size:18px}.xchat .xhint{margin:0 0 10px;font-size:14px;color:var(--muted)}
.xchat .xpanel{margin-top:0;padding:0;border:0;background:none}
.xchat .xthread{max-height:60vh;overflow-y:auto}
/* teacher resources: free item -> its paid upgrade (2026-11-14) */
.t-sub{font-size:14px;margin:14px 0 4px}.t-sub small{color:var(--muted,#888);font-weight:400}
.t-up{margin:8px 0 2px 12px;padding:8px 10px;border-left:3px solid #d8b35a;background:rgba(216,179,90,.10);border-radius:6px;font-size:14px}
.t-up-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:#b8892a;border-radius:999px;padding:2px 8px;margin-right:4px}
.t-upof{margin-top:6px;font-size:13px;color:#9a7419}
