/* Code Kitchen identity: a late-night kitchen. Warm ink backgrounds, ember orange for the one main action, herb lime for wins,
   cream paper in light mode. Order-ticket cards, tactile keycap buttons, IBM Plex type.
   Every colour, radius, shadow and motion time below is a token. Use them, do not hard-code. */
:root{
  /* colour */
  --bg:#0d0c18; --surface:#171528; --surface2:#221f3b; --line:#352f58; --ink:#f8f4ee; --muted:#b9b2d0;
  --accent:#ff7a3d; --accent-deep:#c2481a; --accent-text:#ff9a66; --on-accent:#1c0b02;
  --hi:#c8f542; --hi-text:#c8f542; --on-hi:#101400;
  --good:#3ddc97; --bad:#ff5c7a; --warn:#ffb020;
  --m1:#ff7a59; --m2:#c8f542; --m3:#4cc2ff; --m4:#ff7ab8; --m5:#a08dff; --m6:#ffb020;
  --paper:#fffdf8; --paper-ink:#1b1630; --code-bg:#080714;
  --tint:var(--m1);
  /* shape */
  --r-1:8px; --r-2:12px; --r-3:16px; --r-4:22px; --r-pill:999px;
  --sh-1:0 1px 0 rgba(255,255,255,.04) inset,0 10px 28px -10px rgba(0,0,0,.55);
  --sh-2:0 1px 0 rgba(255,255,255,.06) inset,0 18px 40px -14px rgba(0,0,0,.7);
  --glow:0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent),0 12px 34px -10px color-mix(in srgb,var(--accent) 55%,transparent);
  /* motion */
  --t-fast:.12s; --t-med:.25s; --t-slow:.55s; --ease:cubic-bezier(.2,.8,.2,1); --spring:cubic-bezier(.34,1.56,.64,1);
  /* type */
  --sans:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --fs-1:13px; --fs-2:15px; --fs-3:17px; --fs-4:20px; --fs-5:26px; --fs-6:32px;
  --tap:44px;
  color-scheme:dark;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    --bg:#f7f1e8; --surface:#fffdf8; --surface2:#f0e7d9; --line:#dcd0bb; --ink:#1b1630; --muted:#5a536f;
    --accent:#ff7a3d; --accent-deep:#c2481a; --accent-text:#b13a0a; --on-accent:#1c0b02;
    --hi:#6a9a00; --hi-text:#476b00;
    --good:#0b7a4b; --bad:#c81e46; --warn:#8f5700;
    --m1:#d94a22; --m2:#5d8a00; --m3:#0a73b5; --m4:#c42a78; --m5:#5b3fe6; --m6:#8f5700;
    --paper:#ffffff; --paper-ink:#1b1630; --code-bg:#14122a;
    --sh-1:0 1px 0 rgba(255,255,255,.9) inset,0 10px 26px -12px rgba(60,38,10,.28);
    --sh-2:0 1px 0 rgba(255,255,255,.9) inset,0 18px 40px -16px rgba(60,38,10,.38);
    color-scheme:light;
  }
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55;
  padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);overscroll-behavior-y:none}
h1,h2,h3{font-weight:700;line-height:1.15;margin:0;letter-spacing:-.02em;text-wrap:balance}
h1{font-size:32px}h2{font-size:25px}h3{font-size:19px}
p{margin:0 0 12px}
button{font:inherit;color:inherit}
code{font-family:var(--mono);font-size:.86em;background:var(--surface2);padding:1px 6px;border-radius:var(--r-1)}
.hide{display:none!important}
#app{max-width:600px;margin:0 auto;min-height:100%;padding:calc(env(safe-area-inset-top,0px) + 16px) 16px calc(92px + env(safe-area-inset-bottom,0px))}
.muted{color:var(--muted)}
.eyebrow{font:600 12px var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.ic{flex:none;vertical-align:-0.15em}
.ic.fill{fill:currentColor}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;padding:0 20px;border:0;border-radius:var(--r-3);
  background:var(--accent);color:var(--on-accent);font:700 18px var(--sans);cursor:pointer;text-align:center;position:relative;
  box-shadow:0 4px 0 var(--accent-deep),0 14px 26px -10px color-mix(in srgb,var(--accent) 60%,transparent);
  transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),filter var(--t-fast)}
.btn:hover:not(:disabled){filter:brightness(1.06)}
.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--accent-deep),0 4px 10px -6px color-mix(in srgb,var(--accent) 60%,transparent)}
.btn:disabled{background:var(--surface2);color:var(--muted);cursor:default;box-shadow:none}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:0 0 0 1.5px var(--line) inset}
.btn.ghost:active:not(:disabled){transform:scale(.985);box-shadow:0 0 0 1.5px var(--muted) inset}
.btn.danger{background:var(--bad);color:#fff;box-shadow:none}
.btn.small{min-height:var(--tap);width:auto;padding:0 16px;font-size:15px;box-shadow:none;border-radius:var(--r-2)}
.btn.small:not(.ghost):active:not(:disabled){transform:scale(.97)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:18px;margin-bottom:14px}
.row{display:flex;gap:12px;align-items:center}
.grow{flex:1;min-width:0}

/* header */
.hud{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.logo{display:flex;align-items:center;gap:9px;font:600 20px var(--sans);letter-spacing:-.01em}
.logo .mark{width:32px;height:32px;border-radius:var(--r-1);background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center}
.chips{display:flex;gap:8px}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px 12px;font:600 14px var(--sans);white-space:nowrap}
.chip .ic{color:var(--warn)}
.level{margin-bottom:16px}
.bar{height:6px;border-radius:var(--r-pill);background:var(--surface2);overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill);transition:width .4s ease}

.goal{display:flex;gap:10px;margin-bottom:16px}
.goal .g{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:10px 12px;font:500 15px var(--sans);display:flex;gap:8px;align-items:center;color:var(--muted)}
.goal .g.ok{color:var(--good);border-color:var(--good)}

.review-banner{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:14px;margin-bottom:18px;width:100%;text-align:left;cursor:pointer;color:var(--ink)}
.review-banner .tile{width:42px;height:42px;border-radius:var(--r-2);background:var(--surface2);color:var(--warn);display:flex;align-items:center;justify-content:center}

/* course list */
.mod{margin:28px 0 10px}
.mod h3{font-size:17px}
.mod p{color:var(--muted);font-size:15px;margin:2px 0 0}
.lrow{display:flex;gap:14px;align-items:center;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:12px 14px;margin-bottom:10px;min-height:64px;cursor:pointer;color:var(--ink)}
.lrow:hover{border-color:var(--tint)}
.lrow.next{border-color:var(--accent)}
.tile{flex:none;width:44px;height:44px;border-radius:var(--r-2);display:flex;align-items:center;justify-content:center;color:var(--tint);background:color-mix(in srgb,var(--tint) 14%,transparent)}
.lrow .t{font-weight:600;line-height:1.25}
.lrow .s{display:block;font-size:14px;color:var(--muted);font-weight:400;margin-top:2px}
.lrow .end{flex:none;display:flex;align-items:center;gap:8px;color:var(--muted)}
.dots{display:inline-flex;gap:4px}
.dots i{width:8px;height:8px;border-radius:50%;background:var(--line)}
.dots i.on{background:var(--accent)}
.lrow .done{color:var(--good)}

/* tab bar */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:color-mix(in srgb,var(--surface) 90%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom,0px)}
.tabbar .in{display:flex;width:100%;max-width:600px}
.tab{position:relative;flex:1;background:none;border:0;padding:9px 4px 8px;min-height:60px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--muted);font:500 12px var(--sans);cursor:pointer}
.tab[aria-selected="true"]{color:var(--accent)}
.tab .dot{position:absolute;top:6px;left:calc(50% + 8px);background:var(--accent);color:var(--on-accent);border-radius:var(--r-pill);font:600 11px var(--sans);padding:0 6px;min-width:18px;line-height:18px}

/* player */
.player{position:fixed;inset:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;--tint:var(--m1)}
.player .top{display:flex;align-items:center;gap:14px;padding:calc(env(safe-area-inset-top,0px) + 10px) 16px 8px;max-width:600px;width:100%;margin:0 auto}
.x{width:var(--tap);height:var(--tap);border-radius:var(--r-2);border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink);flex:none;display:flex;align-items:center;justify-content:center}
.player .bar{flex:1}
.player .body{flex:1;overflow-y:auto;padding:12px 16px 28px;max-width:600px;width:100%;margin:0 auto}
.player .foot{padding:12px 16px calc(env(safe-area-inset-bottom,0px) + 14px);border-top:1px solid var(--line);background:var(--surface)}
.player .foot .in{max-width:600px;margin:0 auto;display:flex;gap:10px}
.tag{display:inline-flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--tint) 14%,transparent);color:var(--tint);font:600 13px var(--sans);padding:3px 11px;border-radius:var(--r-pill);margin-bottom:12px}
.bigtile{width:68px;height:68px;border-radius:var(--r-3);display:flex;align-items:center;justify-content:center;color:var(--tint);background:color-mix(in srgb,var(--tint) 14%,transparent);margin:6px 0 14px}
.scene{font-size:19px;margin:14px 0;color:var(--ink)}
.analogy{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--tint);border-radius:var(--r-2);padding:14px 16px}
.analogy .eyebrow{margin-bottom:4px}
.aidbox{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-2);padding:20px 18px;margin:6px 0 18px}
.aidbox .big{font:600 26px/1.25 var(--sans);text-wrap:balance}
.aidbox small{display:block;margin-top:10px;color:var(--muted);font-size:15px}
.say{background:var(--surface2);border-radius:var(--r-2);padding:14px 16px;font:500 18px/1.4 var(--sans)}
.try{border:1px dashed var(--line);border-radius:var(--r-2);padding:12px 14px;margin-top:14px;color:var(--muted)}
.try b{color:var(--ink)}

/* options and quiz */
.opts{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.opt{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;min-height:54px;padding:12px 14px;border-radius:var(--r-2);background:var(--surface);border:1px solid var(--line);cursor:pointer;font:500 17px/1.35 var(--sans);color:var(--ink)}
.opt:hover:not(:disabled){border-color:var(--muted)}
.opt .k{flex:none;width:26px;height:26px;border-radius:var(--r-1);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font:600 13px var(--mono);color:var(--muted)}
.opt:disabled{cursor:default}
.opt.right{border-color:var(--good);background:color-mix(in srgb,var(--good) 9%,var(--surface))}
.opt.right .k{background:var(--good);border-color:var(--good);color:var(--bg)}
.opt.wrong{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 9%,var(--surface))}
.opt.wrong .k{background:var(--bad);border-color:var(--bad);color:var(--bg)}
.fb{margin-top:14px;padding:12px 14px;border-radius:var(--r-2);background:var(--surface);border:1px solid var(--line);font-size:16px}
.fb b{font-weight:600}
.fb.ok b{color:var(--good)}.fb.no b{color:var(--bad)}

/* flip cards */
.flips{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
@media (max-width:380px){.flips{grid-template-columns:1fr}}
.flip{perspective:800px;background:none;border:0;padding:0;cursor:pointer;min-height:156px;text-align:left}
.flip .in{position:relative;width:100%;height:100%;min-height:156px;transition:transform .45s;transform-style:preserve-3d}
.flip.on .in{transform:rotateY(180deg)}
.flip .f,.flip .b{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--r-3);padding:14px;display:flex;flex-direction:column;justify-content:center;overflow:auto}
.flip .f{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--tint);align-items:center;text-align:center}
.flip .f .t{font:600 20px/1.2 var(--sans);word-break:break-word}
.flip .f small{display:flex;gap:5px;align-items:center;color:var(--muted);font-size:13px;margin-top:8px}
.flip .b{background:color-mix(in srgb,var(--tint) 9%,var(--surface));border:1px solid var(--tint);transform:rotateY(180deg);font-size:15px;line-height:1.4}
.counter{font:500 14px var(--sans);color:var(--muted);margin-top:12px}
.facts{margin:16px 0 0;padding:0 0 0 20px;color:var(--muted);font-size:16px}
pre{background:var(--code-bg);color:#d6e4ee;font:500 13.5px/1.65 var(--mono);padding:14px;border-radius:var(--r-2);overflow-x:auto;margin:14px 0 0;border:1px solid var(--line)}

/* alternatives */
.alts{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.alt{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:12px 14px;text-align:left;cursor:pointer;color:var(--ink);width:100%}
.alt .n{font-weight:600;display:flex;justify-content:space-between;gap:8px;align-items:center}
.alt .n .ic{color:var(--muted);transition:transform .2s}
.alt.on{border-color:var(--tint)}
.alt.on .n .ic{transform:rotate(180deg)}
.alt .d{color:var(--muted);margin-top:6px;font-size:16px}

/* games */
.gtitle{margin:4px 0 4px}
.gstat{display:flex;justify-content:space-between;color:var(--muted);font:500 14px var(--sans);margin:4px 0 12px}
.gcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:26px 16px;text-align:center;font:600 22px/1.25 var(--sans);min-height:104px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.buckets{display:grid;gap:10px}
.bucket{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:12px 14px;text-align:left;cursor:pointer;color:var(--ink)}
.bucket:hover:not(:disabled){border-color:var(--tint)}
.bucket:disabled{opacity:.45;cursor:default}
.bucket b{font-weight:600;font-size:17px}
.bucket .placed{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.bucket .placed span{background:var(--surface2);border-radius:var(--r-1);padding:1px 8px;font-size:14px;color:var(--muted)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:12px;min-height:62px;text-align:left;cursor:pointer;color:var(--ink);font:500 15px/1.3 var(--sans);width:100%;margin-bottom:10px}
.mi.sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.mi.done{border-color:var(--good);opacity:.75;cursor:default}
.ord{display:flex;flex-direction:column;gap:10px}
.oi{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:12px;min-height:56px;text-align:left;cursor:pointer;color:var(--ink);font:500 16px/1.3 var(--sans);width:100%}
.oi .nb{flex:none;width:30px;height:30px;border-radius:var(--r-1);border:1px dashed var(--muted);display:flex;align-items:center;justify-content:center;font:600 14px var(--mono)}
.oi.done{border-color:var(--good);cursor:default}
.oi.done .nb{background:var(--good);border:0;color:var(--bg)}
.sentence{font-size:20px;line-height:2.2;margin:10px 0}
.blank{display:inline-block;min-width:92px;padding:0 10px;border-radius:var(--r-1);border:1px dashed var(--muted);background:var(--surface);color:var(--ink);font:600 17px var(--sans);cursor:pointer;text-align:center;line-height:1.7}
.blank.filled{border-style:solid;border-color:var(--accent)}
.blank.good{border-color:var(--good)}.blank.bad{border-color:var(--bad)}
.bank{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.bank button{background:var(--surface2);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-2);padding:8px 14px;font:600 16px var(--sans);cursor:pointer}
.bank button:disabled{opacity:.3;cursor:default}
.shake{animation:shake .32s}
@keyframes shake{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
.pop{animation:pop .25s}
@keyframes pop{50%{transform:scale(1.03)}}

/* result */
.result{text-align:center;padding-top:20px}
.seal{width:84px;height:84px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.stat3{display:flex;gap:10px;margin:18px 0}
.stat3 div{flex:1;background:var(--surface);border-radius:var(--r-2);padding:12px 6px;border:1px solid var(--line);font-size:14px;color:var(--muted)}
.stat3 b{display:block;font:600 24px var(--sans);color:var(--ink)}
.bigdots{display:flex;justify-content:center;gap:8px;margin:10px 0}
.bigdots i{width:14px;height:14px;border-radius:50%;background:var(--line)}
.bigdots i.on{background:var(--accent)}

/* lists */
.seg{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:3px;gap:3px;margin:14px 0}
.seg button{flex:1;min-height:var(--tap);border:0;border-radius:var(--r-1);background:none;font:500 15px var(--sans);color:var(--muted);cursor:pointer}
.seg button[aria-selected="true"]{background:var(--accent);color:var(--on-accent);font-weight:600}
.li{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line)}
.li .tile{width:38px;height:38px;border-radius:var(--r-2)}
.li b{font-weight:600}
input[type="search"],textarea{width:100%;min-height:48px;border-radius:var(--r-2);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:500 16px var(--sans);padding:10px 14px}
textarea{min-height:90px;font:500 13px var(--mono);resize:vertical}
dl{margin:0}
dl div{padding:12px 0;border-top:1px solid var(--line)}
dt{font-weight:600;color:var(--accent)}
dd{margin:2px 0 0}
.stat{display:flex;justify-content:space-between;padding:11px 0;border-top:1px solid var(--line)}
.stat:first-child{border-top:0}
.avatar{width:64px;height:64px;border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;background:var(--surface2);color:var(--accent)}
.toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:var(--r-pill);font:600 15px var(--sans);z-index:70;box-shadow:var(--sh-2);animation:toastIn var(--t-med) var(--spring)}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,10px) scale(.94)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* today's plan */
.plan{display:flex;gap:14px;align-items:center;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:14px;margin-bottom:12px;color:var(--ink);cursor:pointer;min-height:68px}
.plan.go{border-color:var(--accent)}
.plan.off{opacity:.65}
.plan.done{cursor:default;border-color:var(--good)}
.plan .pn{flex:none;width:34px;height:34px;border-radius:50%;background:var(--surface2);display:flex;align-items:center;justify-content:center;font:600 15px var(--sans);color:var(--muted)}
.plan.go .pn{background:var(--accent);color:var(--on-accent)}
.plan.done .pn{background:var(--good);color:var(--bg)}
.lrow.locked{opacity:.6}
.lrow.cp{border-style:dashed}

/* animated explainer */
.eli5{font-size:24px;line-height:1.3;margin-bottom:14px}
.exbtns{display:flex;gap:10px;margin-bottom:14px}
.stage{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:22px 8px 18px;overflow:hidden}
.nodes{display:flex;justify-content:space-around;align-items:flex-start;gap:4px;position:relative;z-index:1}
.nd{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:6px;width:25%;min-width:70px;cursor:default;color:var(--ink);padding:0}
.nd .tl{width:56px;height:56px;border-radius:var(--r-3);display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--tint) 14%,var(--surface2));color:var(--tint);border:1px solid var(--line);transition:transform .2s,box-shadow .2s}
.nd .nl{font:600 14px/1.15 var(--sans);text-align:center}
.nd .ns{font:400 12px/1.1 var(--sans);color:var(--muted);text-align:center}
.nd.glow{cursor:pointer}
.nd.glow .tl{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 55%,transparent);animation:glow 1.4s ease-in-out infinite}
.nd.arrive .tl{transform:scale(1.14);border-color:var(--good)}
@keyframes glow{50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--accent) 12%,transparent)}}
.packet{position:absolute;left:0;top:0;z-index:2;opacity:0;white-space:nowrap;background:var(--accent);color:var(--on-accent);font:600 13px var(--sans);padding:4px 11px;border-radius:var(--r-pill);pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.demo{margin-top:12px}
.demo:empty{display:none}
.dm{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;padding:14px;background:var(--surface2);border-radius:var(--r-2)}
.dmb{font:500 16px var(--sans);padding:8px 16px;border:1px solid var(--muted);background:transparent;color:var(--ink);border-radius:var(--r-1)}
.dmb.styled{background:var(--accent);color:var(--on-accent);border-color:var(--accent);border-radius:var(--r-2);font-weight:600}
.dmc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:8px 12px;font:500 14px var(--sans)}
.dmj{margin:0}
.dmx{font:500 16px var(--mono);padding:6px 12px;border-radius:var(--r-1)}
.dmx.bad{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad);text-decoration:underline wavy}
.dmx.ok{background:color-mix(in srgb,var(--good) 14%,transparent);color:var(--good)}
.caption{margin-top:14px;font:500 19px/1.4 var(--sans);min-height:56px}
.exdots{display:flex;gap:6px;margin-top:8px}
.exdots i{width:22px;height:4px;border-radius:var(--r-pill);background:var(--line)}
.exdots i.on{background:var(--accent)}
.accb{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;background:none;border:0;padding:0;font:600 17px var(--sans);color:var(--ink);text-align:left;cursor:pointer;min-height:28px}
.alt .accb .ic{color:var(--muted);transition:transform .2s}
.alt.on .accb .ic{transform:rotate(180deg)}
.alt .d{margin-top:10px}

/* labs, welcome, test-out */
.linkbtn{display:block;margin:16px auto 0;background:none;border:0;color:var(--muted);font:500 15px var(--sans);text-decoration:underline;cursor:pointer;padding:8px}
.outcomes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.outcomes li{display:flex;gap:10px;align-items:flex-start}
.outcomes .ic{color:var(--accent);margin-top:3px}
textarea.code{min-height:170px;font:500 14px/1.55 var(--mono);white-space:pre;overflow:auto;tab-size:2}
.labprev{margin-top:12px;border:1px solid var(--line);border-radius:var(--r-2);overflow:hidden;background:#fff}
.labprev iframe{display:block;width:100%;height:130px;border:0;background:#fff}
.labstatus{margin-top:10px;padding:10px 12px;border-radius:var(--r-2);font:500 14px/1.45 var(--mono);background:var(--surface);border:1px solid var(--line)}
.labstatus.ok{border-color:var(--good);color:var(--good)}
.labstatus.bad{border-color:var(--bad)}
.labstatus .ok{color:var(--good)}.labstatus .bad{color:var(--bad)}
.tasks{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.task{display:flex;gap:10px;align-items:flex-start;color:var(--muted)}
.task .tk{margin-top:2px}
.task.ok{color:var(--good)}
.flab{display:block;font:600 15px var(--sans);margin:12px 0 6px}
.flab .muted{font-weight:400;font-size:14px}
textarea.brf{min-height:64px;font:500 15px/1.4 var(--sans)}
.term{background:var(--code-bg);color:#d6e4ee;border:1px solid var(--line);border-radius:var(--r-2);padding:12px;font:500 14px/1.6 var(--mono);min-height:150px;max-height:220px;overflow:auto}
.termrow{display:flex;gap:8px;align-items:center;margin-top:10px}
.termrow .tp{font:500 13px var(--mono);color:var(--accent);white-space:nowrap}
.termrow input{flex:1;min-width:0;min-height:44px;border-radius:var(--r-2);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:500 15px var(--mono);padding:0 12px}
.chips2{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chipb{min-height:var(--tap);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);padding:6px 12px;font:500 14px var(--mono);color:var(--ink);cursor:pointer}

.termrow{flex-wrap:wrap}
.termrow .tp{flex:0 0 100%}
.termrow input{flex:1 1 140px}


/* ---- v4 refinements: bolder titles, richer colour, clearer hierarchy ---- */
.eyebrow{font-weight:700;letter-spacing:.1em}
.lrow .t,.plan b,.card h3,.mod h3,.alt .n,.accb,.opt{font-weight:700}
.opt{font-weight:600}
.mod h3{font-size:20px;letter-spacing:-.01em}
.mod .mp{display:flex;align-items:center;gap:10px;margin-top:8px}
.mod .mp .bar{flex:1;height:5px}
.mod .mp span{font:600 13px var(--sans);color:var(--muted)}
.card{box-shadow:var(--sh-1)}
.lrow{padding:14px 16px;min-height:72px}
.lrow .t{font-size:17px}
.tile{width:46px;height:46px;border-radius:var(--r-2);background:color-mix(in srgb,var(--tint) 20%,transparent)}
.hero{position:relative;border-radius:var(--r-4);padding:20px;margin-bottom:14px;border:1px solid color-mix(in srgb,var(--tint) 45%,var(--line));background:linear-gradient(160deg,color-mix(in srgb,var(--tint) 18%,var(--surface)),var(--surface) 70%)}
.hero .row{margin-bottom:12px}
.hero h2{font-size:27px;margin-bottom:8px}
.hero p{color:var(--muted);margin-bottom:16px}
.hero .bigtile{margin:0;width:52px;height:52px;border-radius:var(--r-3)}
.stepper{display:flex;align-items:center;gap:0;margin:2px 0 18px}
.stepper .st{display:flex;align-items:center;gap:8px;font:600 14px var(--sans);color:var(--muted)}
.stepper .st i{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:700 13px var(--sans);font-style:normal;background:var(--surface2);color:var(--muted);border:1px solid var(--line)}
.stepper .st.on{color:var(--ink)}
.stepper .st.on i{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.stepper .st.ok i{background:var(--good);color:var(--bg);border-color:var(--good)}
.stepper .ln{flex:1;height:2px;background:var(--line);margin:0 10px;min-width:20px}
.barwrap{flex:1;min-width:0}
.steplab{font:600 13px var(--sans);color:var(--muted);margin-top:6px;letter-spacing:.02em}
.tab{font-weight:600}
.tab .ic{transition:transform .15s}
.tab[aria-selected="true"]{position:relative}
.tab[aria-selected="true"]::before{content:"";position:absolute;top:0;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:var(--accent)}
.tab[aria-selected="true"] .ic{transform:translateY(-1px)}
.tag{font-weight:700}
.aidbox .big{font-weight:700}
.eli5{font-weight:700;letter-spacing:-.015em}
.result h1,.hero h2{font-weight:800}

/* ---- palette v5 accents ---- */
.chip .ic{color:var(--hi-text)}
.stepper .st.on i{background:var(--hi);color:var(--on-hi);border-color:var(--hi)}
.tab[aria-selected="true"]{color:var(--accent-text)}
.tab[aria-selected="true"]::before{background:var(--accent)}
.bar i{background:linear-gradient(90deg,var(--accent),var(--hi))}
.eli5{color:var(--ink)}
.seal{background:color-mix(in srgb,var(--hi) 16%,transparent);color:var(--hi-text)}
.bigdots i.on,.dots i.on{background:var(--hi)}
.exdots i.on{background:var(--hi)}
.lrow.next{border-color:var(--accent)}
.plan.go{border-color:var(--accent)}
.plan.go .pn{background:var(--accent);color:var(--on-accent)}
.aidbox{border-left-color:var(--hi)}
.hero{border-color:color-mix(in srgb,var(--tint) 55%,var(--line))}
dt{color:var(--hi-text)}
.outcomes .ic{color:var(--hi-text)}
.nd.glow .tl{box-shadow:0 0 0 3px color-mix(in srgb,var(--hi) 55%,transparent)}
@keyframes glow{50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--hi) 14%,transparent)}}
.packet{background:var(--hi);color:var(--on-hi)}
.mark{background:var(--accent)}


/* ---- Build tab ---- */
.herob{display:block;width:100%;text-align:left;cursor:pointer;color:inherit;font:inherit}
.herob .btn{pointer-events:none;margin-top:6px}
.back{display:inline-flex;align-items:center;gap:4px;background:none;border:0;color:var(--muted);font:600 15px var(--sans);padding:8px 0;min-height:44px;cursor:pointer}
.flipx{transform:rotate(180deg)}
.ext{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);padding:6px 12px;font:600 14px var(--sans);color:var(--ink);text-decoration:none}
.ext:hover{border-color:var(--accent)}
.linkgrid{display:flex;flex-wrap:wrap;gap:8px}
.cpy{display:inline-flex;align-items:center;gap:6px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-2);padding:7px 11px;font:600 14px var(--sans);color:var(--ink);cursor:pointer;min-height:var(--tap)}
.cpy:hover{border-color:var(--accent)}
.shot{display:block;width:100%;height:auto;background:var(--surface2)}
.bstep{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);margin-bottom:10px;overflow:hidden}
.bstep.done{border-color:color-mix(in srgb,var(--good) 55%,var(--line))}
.bhead{display:flex;align-items:center;gap:6px;padding:6px 8px 6px 10px}
.chk{flex:none;width:32px;height:32px;position:relative;border-radius:50%;border:2px solid var(--muted);background:transparent;color:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer}
.bstep.done .chk{background:var(--good);border-color:var(--good)}
.btitle{flex:1;display:flex;align-items:center;gap:8px;background:none;border:0;text-align:left;color:var(--ink);padding:12px 4px;min-height:52px;cursor:pointer;font:inherit}
.btitle .ic{color:var(--muted);transition:transform .2s;flex:none}
.btitle[aria-expanded="true"] .ic{transform:rotate(180deg)}
.bbody{padding:0 16px 16px}
.bbody .why{color:var(--muted);margin:0 0 10px}
.dolist{margin:0 0 10px;padding-left:22px}.dolist li{margin-bottom:6px}
.cmd{display:flex;align-items:center;gap:8px;background:var(--code-bg);border:1px solid var(--line);border-radius:var(--r-2);padding:8px 8px 8px 12px;margin:6px 0}
.cmd code{flex:1;min-width:0;background:none;padding:0;color:#d6e4ee;font:500 13.5px var(--mono);overflow-x:auto;white-space:nowrap}
.termbox{background:var(--code-bg);color:#d6e4ee;border:1px solid var(--line);border-radius:var(--r-2);padding:12px;font:500 13px/1.55 var(--mono);min-height:84px;overflow-x:auto}
.termbox .pr{color:var(--hi)}
.termbox .cur{display:inline-block;width:8px;height:15px;background:#d6e4ee;vertical-align:-2px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.termbox .tout{white-space:pre;color:#aab2d8}
.pp{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:var(--r-2);margin-bottom:6px;font-size:15px;background:color-mix(in srgb,var(--c) 10%,transparent);border-left:3px solid var(--c)}
.pp.g{--c:var(--m3)}.pp.c{--c:var(--m5)}.pp.k{--c:var(--m6)}.pp.e{--c:var(--m4)}.pp.d{--c:var(--good)}
.pp .pl{flex:0 0 84px;font:700 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--c);padding-top:2px}
.pp.in{animation:ppIn .5s both}
@keyframes ppIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.promptbox{background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-2);padding:12px 14px;font:500 15px/1.5 var(--sans);margin:12px 0}
.prompt.weak{background:color-mix(in srgb,var(--bad) 12%,transparent);border:1px dashed var(--bad);border-radius:var(--r-2);padding:10px 12px;margin-bottom:10px;font-weight:600;transition:opacity .4s}
.prompt.weak.done{opacity:.45}
.qmeter{margin-top:12px}
.qmeter .bar{margin-top:6px;height:8px}
.qmeter .bar i{transition:width .8s ease}
.convo{display:flex;flex-direction:column;gap:10px;max-height:360px;min-height:220px;overflow-y:auto}
.bub{max-width:88%;padding:10px 14px;border-radius:var(--r-3);font-size:16px;line-height:1.4;animation:ppIn .3s both}
.bub.me{align-self:flex-end;background:var(--accent);color:var(--on-accent);border-bottom-right-radius:4px}
.bub.ai{align-self:flex-start;background:var(--surface2);border-bottom-left-radius:4px}
.dotsy{display:inline-flex;gap:4px}.dotsy i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:dy 1s infinite}
.dotsy i:nth-child(2){animation-delay:.15s}.dotsy i:nth-child(3){animation-delay:.3s}
@keyframes dy{50%{transform:translateY(-4px);opacity:.5}}
.vs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.vs{grid-template-columns:1fr}.dd{grid-template-columns:1fr}}
.dd{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dd>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:14px}
.dd ul{margin:8px 0 0;padding-left:18px;font-size:15px}.dd li{margin-bottom:6px}
.dd .do b{color:var(--good)}.dd .dont b{color:var(--bad)}
.wsbox{min-height:260px}
.wsp{min-height:190px;font:500 13px/1.7 var(--mono);display:flex;gap:12px}
.wsp span,.wsp .bub{opacity:0;animation:wsIn .45s both;animation-delay:var(--d,0s)}
@keyframes wsIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.wtree{flex:0 0 100px;display:flex;flex-direction:column;border-right:1px solid var(--line);padding-right:10px;color:var(--muted);font-size:12px}
.wtree b{color:var(--ink);margin-bottom:4px}
.wcode{flex:1;display:flex;flex-direction:column;color:#d6e4ee;background:var(--code-bg);border-radius:var(--r-2);padding:10px;white-space:pre;overflow-x:auto}
.wsp.term2{flex-direction:column;background:var(--code-bg);border-radius:var(--r-2);padding:12px;color:#aab2d8;white-space:pre;overflow-x:auto;gap:0}
.wsp.term2 .pr{color:var(--hi)}
.bwin{flex:1;border:1px solid var(--line);border-radius:var(--r-2);overflow:hidden;background:#fff;color:#111;font-family:var(--sans)}
.burl{background:#e8ebf5;padding:6px 10px;font:500 12px var(--mono);color:#444}
.bpage{padding:22px 16px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;min-height:130px}
.bpage span{opacity:1!important;animation:none!important;color:#555;font:400 14px var(--sans)}
.bpage b{font:700 20px var(--sans)}
.bbtn{margin-top:8px;padding:8px 16px;border:1px solid #888;background:#fff;color:#111;border-radius:var(--r-1);font:500 15px var(--sans);animation:btnStyle 1s 1.6s both}
@keyframes btnStyle{to{background:#16a34a;border-color:#16a34a;color:#fff;border-radius:var(--r-2);font-weight:700}}
.wsp.chat{flex-direction:column;font-family:var(--sans)}
.stepdots{display:flex;gap:6px;margin:12px 0 4px}
.stepdots i{flex:1;height:5px;border-radius:var(--r-pill);background:var(--line)}
.stepdots i.on{background:var(--hi)}.stepdots i.ok{background:var(--accent)}
.gprev{border-radius:var(--r-3);overflow:hidden;border:1px solid var(--line);background:#0b1016}
.gprev iframe{display:block;width:100%;height:440px;border:0;background:#0b1016}
textarea.gcode{min-height:300px;font-size:12.5px}
.task .grow{flex:1}
.task .btn.small{min-height:var(--tap);padding:0 14px;font-size:14px}

.wcode{white-space:pre-wrap;word-break:break-all}
/* more labs */
.reqrow{display:flex;gap:8px;margin-bottom:10px}
.reqrow select,.reqrow input,select#pty,.rulerow select,.envrow select{min-height:44px;border-radius:var(--r-2);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:500 15px var(--mono);padding:0 10px}
.reqrow input{flex:1;min-width:0}
.apiout{margin-top:12px;background:var(--code-bg);border:1px solid var(--line);border-radius:var(--r-2);padding:12px;color:#d6e4ee;font:500 13px/1.5 var(--mono);min-height:90px}
.apiout pre{margin:8px 0 0;padding:0;background:none;border:0;white-space:pre-wrap}
.apiout .st{font:700 15px var(--sans)}.apiout .s2{color:var(--good)}.apiout .s4{color:var(--bad)}
.cardsprev{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.bk{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:10px 14px;display:flex;flex-direction:column;min-width:100px}
.bk b{font-weight:700}.bk span{color:var(--muted);font-size:14px}.bk i{font-style:normal;font-size:12px;color:var(--hi-text);margin-top:4px}
.rulerow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.rulerow label{font-weight:600}
.uview{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:12px;margin-top:10px}
.vchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.vchips span{background:var(--surface2);border-radius:var(--r-1);padding:2px 9px;font-size:13px}
.vchips .none{color:var(--bad)}
.dns{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:10px;font:500 14px var(--mono)}
.dh,.dr{display:grid;grid-template-columns:56px 52px 1fr;gap:8px;align-items:center;padding:6px 0}
.dh{color:var(--muted);border-bottom:1px solid var(--line)}
.dr input{min-height:40px;border-radius:var(--r-1);border:1px solid var(--line);background:var(--bg);color:var(--ink);font:500 14px var(--mono);padding:0 8px;width:100%;min-width:0}
.ev{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:12px;margin-bottom:10px}
.evb{display:flex;gap:8px;margin-top:10px}
.evw{margin-top:8px;font-size:14px;color:var(--bad)}.evw.ok{color:var(--good)}.evw:empty{display:none}
.aireport{display:flex;flex-direction:column;gap:8px}
.sent{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:12px 14px;font:500 16px/1.4 var(--sans);color:var(--ink);cursor:pointer}
.sent.flag{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,var(--surface))}
.diff{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--r-2);overflow:hidden}
.dl{display:flex;gap:10px;width:100%;text-align:left;background:none;border:0;padding:8px 12px;color:#d6e4ee;cursor:pointer;font:500 12.5px/1.5 var(--mono)}
.dl span{flex:0 0 12px}.dl code{background:none;padding:0;white-space:pre-wrap;word-break:break-all}
.dl.add{background:rgba(61,220,151,.12)}.dl.del{background:rgba(255,92,122,.14)}
.dl.flag{outline:2px solid var(--warn);outline-offset:-2px}
.envrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.envrow code{font-size:13px}
.plin{width:100%;min-height:48px;border-radius:var(--r-2);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:500 16px var(--sans);padding:0 14px}
#pbrief .btn{margin-top:12px}

.term div{white-space:pre-wrap;word-break:break-word}

.goalline{display:flex;gap:10px;align-items:flex-start;margin:10px 0 12px;font-size:17px;font-weight:700;line-height:1.35}
.goalline svg{flex:0 0 auto;margin-top:2px;color:var(--hi-text)}
.gprev{border-radius:var(--r-3);transition:box-shadow .3s}
.gprev.flash{animation:gflash .7s ease-out}
@keyframes gflash{0%{box-shadow:0 0 0 0 var(--hi)}40%{box-shadow:0 0 0 6px color-mix(in srgb,var(--hi) 55%,transparent)}100%{box-shadow:0 0 0 0 transparent}}
.gtasks .task{align-items:center;flex-wrap:wrap;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);padding:12px}
.gtasks .task.ok{border-color:var(--good)}
.knob{display:inline-flex;align-items:center;gap:8px}
.kb{width:44px;height:44px;border-radius:var(--r-2);border:1px solid var(--line);background:var(--bg);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.kb:active{transform:scale(.94)}
.kv{min-width:36px;text-align:center;font-family:'IBM Plex Mono',monospace;font-size:17px}
.kb.pulse,.btn.pulse{animation:kpulse 1.4s ease-in-out infinite}
@keyframes kpulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 60%,transparent)}50%{box-shadow:0 0 0 7px transparent}}
.knobc{width:56px;height:44px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--bg);padding:3px;cursor:pointer}
.gdet{margin-top:14px;border:1px solid var(--line);border-radius:var(--r-3);padding:12px 14px;background:var(--surface)}
.gdet summary{cursor:pointer;font-weight:700;display:flex;gap:8px;align-items:center}
@media (prefers-reduced-motion:reduce){.kb.pulse,.btn.pulse,.gprev.flash{animation:none}}

.seg.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.seg.scroll::-webkit-scrollbar{display:none}
.seg.scroll button{flex:0 0 auto;padding:0 14px;white-space:nowrap}
.promptbox.long{max-height:340px;overflow:auto}

.lvl{color:var(--hi-text);font-weight:700}

/* course mode: 7 days, certificate, offer, integrations. Logical properties so Arabic (dir="rtl") flips cleanly. */
.cwrap{text-align:start}
.cwrap .lrow,.cwrap .herob,.cwrap .back,.cwrap .crow{text-align:start}
.cwrap .dolist,.cwrap .facts{padding-left:0;padding-inline-start:22px}
.cwrap .facts{margin-block:8px 0}
.cwrap.rtl h1,.cwrap.rtl h2,.cwrap.rtl h3,.cwrap.rtl .eyebrow{letter-spacing:0;text-transform:none}
.cwrap.rtl .eyebrow{font-size:13px}
.langsw{max-width:260px;margin-block:4px 14px}
.langsw button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);font-weight:600}
.cwrap.rtl .flipr{transform:scaleX(-1)}
.cherob{margin-top:0}
.lrow.locked{opacity:.65}
.skiplink{margin-block:-4px 10px;margin-inline:0;text-align:start;display:block;width:auto}
.crow{display:flex;gap:12px;align-items:center;width:100%;min-height:52px;padding:8px 12px;margin-bottom:8px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-2);color:var(--ink);font:500 16px var(--sans);cursor:pointer}
.crow .chk{pointer-events:none}
.crow.on{border-color:color-mix(in srgb,var(--good) 60%,var(--line))}
.crow.on .chk{background:var(--good);border-color:var(--good)}
.clabel{display:block;font:600 14px var(--sans);color:var(--muted);margin-block:4px}
.cinput{width:100%;min-height:48px;border-radius:var(--r-2);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:500 16px var(--sans);padding:10px 14px}
textarea.cans{min-height:110px}
.cerr{color:var(--bad);font-weight:600;margin:8px 0 0}
.cok{color:var(--good);font-weight:600;margin:8px 0 0;overflow-wrap:anywhere}
.vidcard .tile{--tint:var(--m3)}
.csteps li{margin-bottom:8px}
.exnote{display:flex;gap:10px;align-items:flex-start;border-color:var(--warn);color:var(--ink);font-size:15px}
.exnote .ic{color:var(--warn);margin-top:3px}
.offer,.integ,.guarantee{border-color:color-mix(in srgb,var(--tint) 45%,var(--line))}
.offer .price{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.offer .price b{font-size:24px}
.exchip{font-size:12px;color:var(--warn)}
.gtext{font-size:19px;font-weight:700;line-height:1.4;margin-block:12px}
a.btn{text-decoration:none}
.warnbox{background:color-mix(in srgb,var(--warn) 12%,transparent);border:1px solid color-mix(in srgb,var(--warn) 50%,var(--line));border-radius:var(--r-2);padding:10px 14px;font-size:15px}
.integ .cmd{margin-bottom:8px}
.cwrap .cmd{justify-content:space-between}

/* certificate */
.cert{background:#fffdf5;color:#1a1a2e;border:3px double #b8962e;border-radius:var(--r-2);padding:8px;margin-block:6px}
.cert-in{border:1px solid #b8962e;border-radius:var(--r-1);padding:22px 16px;text-align:center}
.cert-mark{color:#b8962e;display:flex;justify-content:center;margin-bottom:6px}
.cert-h{font:800 26px/1.2 var(--sans);margin-bottom:10px}
.cert-sm{color:#4a4a62;margin:6px 0;font-size:15px}
.cert-name{font:800 30px/1.3 var(--sans);border-bottom:2px solid #b8962e;display:inline-block;min-width:60%;max-width:100%;padding:2px 10px;margin-block:6px;overflow-wrap:anywhere}
.cert-course{font:700 21px/1.3 var(--sans);margin-block:8px 14px}
.cert-meta{margin:0 0 14px;text-align:start;display:grid;gap:8px;font-size:14px}
.cert-meta dt{color:#4a4a62;font-weight:600}
.cert-meta dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.cert-line{margin:6px 0;font-size:15px}
.cert-fine{color:#4a4a62;font-size:12px;margin:6px 0 0}
@media print{
  @page{margin:14mm}
  html,body{height:auto;background:#fff!important;color:#000!important}
  .noprint,.tabbar,.toast{display:none!important}
  #app{max-width:none;padding:0!important}
  .cert{break-inside:avoid;margin:0}
  .cert-in{padding:34px 26px}
  .cert-h{font-size:34px}.cert-name{font-size:38px}.cert-course{font-size:26px}
  .cert-meta{font-size:16px}.cert-fine{font-size:11px}
}
