/* Bondline v22: Bondle, feedback, announcement banner, "how did you find us" card. Uses the app's colour tokens. */
[hidden]{display:none!important}
.bx-scrim{z-index:80}
.bx-dlg{width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:22px;box-shadow:0 40px 90px -30px rgba(0,0,0,.5);animation:bxIn .35s cubic-bezier(.16,1,.3,1)}
.bx-dh{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 22px 12px;border-bottom:1px solid var(--line)}
.bx-dh h2{margin:4px 0 0;font-size:21px;letter-spacing:-.01em}
.bx-db{padding:16px 22px 20px;display:flex;flex-direction:column;gap:8px}
.bx-lbl{font-weight:700;font-size:13.5px;margin-top:6px}
.bx-lbl small{font-weight:500;color:var(--muted);margin-left:4px}
.bx-db textarea,.bx-db input[type=email],.bx-db input[type=text]{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);padding:10px 12px;font:inherit;font-size:15px;resize:vertical}
.bx-db textarea:focus,.bx-db input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.bx-count{font-size:11.5px;color:var(--muted);text-align:right;margin-top:-4px}
.bx-kinds{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bx-kind{position:relative;cursor:pointer}
.bx-kind input{position:absolute;opacity:0;pointer-events:none}
.bx-kind span{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-weight:600;font-size:13.5px;background:var(--paper);transition:border-color .15s,background .15s}
.bx-kind i{font-style:normal;font-size:17px}
.bx-kind input:checked+span{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.bx-kind input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.bx-chk{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--muted);margin-top:6px}
.bx-chk input{margin-top:2px;accent-color:var(--accent)}
.bx-err{color:var(--bad);background:var(--bad-soft);border-radius:10px;padding:9px 12px;font-size:13.5px;margin:4px 0 0}
.bx-dacts{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.bx-fbdone{align-items:center;text-align:center;padding:34px 22px 28px}
.bx-fbdone h3{margin:6px 0 0;font-size:20px}.bx-fbdone p{color:var(--muted);margin:0 0 10px}
.bx-fbok{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--ok-soft);color:var(--ok);font-size:28px;font-weight:700}
@media (max-width:520px){.bx-kinds{grid-template-columns:1fr}}

/* announcement bar */
.bx-ann{display:flex;align-items:center;gap:10px;margin:10px clamp(12px,3vw,28px) 0;padding:9px 10px 9px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-size:14px;position:relative;z-index:2;animation:bxIn .4s cubic-bezier(.16,1,.3,1)}
.bx-ann-i svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:block}
.bx-ann-t{flex:1;min-width:0}
.bx-ann-a{font-weight:700;color:inherit;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
.bx-ann-x{border:0;background:none;color:inherit;opacity:.7;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none}
.bx-ann-x:hover{opacity:1;background:rgba(127,127,127,.15)}
.bx-ann-x svg,.bx-heard-x svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.bx-ann.k-info{background:var(--accent-soft);border-color:transparent;color:var(--ink)}.bx-ann.k-info .bx-ann-i{color:var(--accent)}
.bx-ann.k-new{background:var(--accent2-soft);border-color:transparent}.bx-ann.k-new .bx-ann-i{color:var(--accent2)}
.bx-ann.k-warn{background:var(--bad-soft);border-color:transparent}.bx-ann.k-warn .bx-ann-i{color:var(--bad)}
.bx-ann.k-party{background:linear-gradient(100deg,var(--accent-soft),var(--accent2-soft));border-color:transparent}.bx-ann.k-party .bx-ann-i{color:var(--curl)}
@media (max-width:600px){.bx-ann{flex-wrap:wrap;font-size:13.5px}.bx-ann-t{flex-basis:calc(100% - 70px)}.bx-ann-a{margin-left:30px}}

/* how did you find us */
.bx-heard{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:70;width:min(360px,calc(100vw - 32px));background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:16px 16px 12px;box-shadow:0 24px 60px -24px rgba(0,0,0,.45);transform:translateY(20px);opacity:0;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .3s}
.bx-heard.in{transform:none;opacity:1}
.bx-heard h2{font-size:16px;margin:0 28px 2px 0}
.bx-heard p{margin:0 0 10px;color:var(--muted);font-size:13px}
.bx-heard-x{position:absolute;top:10px;right:10px;border:0;background:none;color:var(--muted);width:28px;height:28px;border-radius:8px;display:grid;place-items:center}
.bx-heard-c{display:flex;flex-wrap:wrap;gap:6px}
.bx-chip{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:999px;padding:6px 11px;font-size:13px;font-weight:600}
.bx-chip:hover{border-color:var(--accent);color:var(--accent)}
.bx-heard-o{display:flex;gap:6px}
.bx-heard-o input{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:7px 10px;background:var(--paper);color:var(--ink);font:inherit;font-size:14px}
.bx-heard-skip{display:block;margin:10px 0 0;font-size:12.5px;color:var(--muted)}
.bx-heard-thx{margin:4px 0;font-weight:700;color:var(--ink);font-size:15px}
@media (max-width:820px){.bx-heard{left:16px;right:16px;width:auto;bottom:calc(76px + env(safe-area-inset-bottom,0px))}}

/* Bondle: rail button */
.bx-rail{position:relative}
.bx-rail .bx-rd{fill:currentColor;stroke:none}
.bx-rail.has-new::after{content:"";position:absolute;top:5px;right:calc(50% - 15px);width:8px;height:8px;border-radius:50%;background:var(--curl);box-shadow:0 0 0 2px var(--surface)}

/* Bondle: Home card */
.bx-home{display:flex;align-items:center;gap:16px;background:linear-gradient(110deg,var(--accent-soft),var(--surface) 70%);border:1px solid var(--line);border-radius:20px;padding:14px 18px;cursor:pointer;transition:transform .2s,box-shadow .2s}
.bx-home:hover{transform:translateY(-1px);box-shadow:0 14px 30px -20px var(--shadow)}
.bx-home-hex{width:54px;height:54px;flex:none}
.bx-ht{flex:1;min-width:0}
.bx-hk{font-size:11.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.bx-hs{font-weight:700;font-size:16px;margin-top:1px}
.bx-hs b{font-size:20px}
.bx-he{letter-spacing:1px;font-size:15px}
.bx-ht small{color:var(--muted);font-size:12.5px}
.bx-home .btn{flex:none}
.bx-hfb{text-align:center;color:var(--muted);font-size:13px;margin:-10px 0 0}
@media (max-width:520px){.bx-home{padding:12px 14px;gap:12px}.bx-home-hex{width:44px;height:44px}}

/* Bondle: hexagon */
.bx-hx-ring{fill:none;stroke:var(--line);stroke-width:3;stroke-linejoin:round}
.bx-hx-in{fill:none;stroke:var(--line);stroke-width:2;stroke-dasharray:4 5;opacity:.8}
.bx-hx-d{fill:var(--surface);stroke:var(--line);stroke-width:2.5;transition:fill .4s,r .3s}
.bx-hx-d.on{stroke:var(--surface)}
.bx-hx-d.cur{stroke:var(--accent);stroke-width:3;animation:bxPulse 1.4s ease-in-out infinite}
@keyframes bxPulse{50%{stroke-opacity:.35}}

/* Bondle: game window */
.bx-game-scrim{background:rgba(8,12,20,.6);backdrop-filter:blur(3px)}
.bx-game{position:relative;width:min(600px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:26px;box-shadow:0 50px 100px -30px rgba(0,0,0,.6);overflow:hidden;animation:bxIn .4s cubic-bezier(.16,1,.3,1)}
.bx-gh{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px 20px;border-bottom:1px solid var(--line)}
.bx-logo{display:flex;align-items:center;gap:9px;font-weight:800;font-size:21px;letter-spacing:-.02em}
.bx-logo-hex{width:30px;height:30px}
.bx-gnum{font-weight:600;font-size:13px;color:var(--muted);letter-spacing:0;font-variant-numeric:tabular-nums}
.bx-gb{overflow:auto;padding:22px 26px 26px;overscroll-behavior:contain}
.bx-load{display:flex;flex-direction:column;align-items:center;gap:14px;padding:50px 0;color:var(--muted)}
.bx-spin{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:bxSpin .8s linear infinite}
@keyframes bxSpin{to{transform:rotate(360deg)}}
.bx-kick{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.bx-h{font-size:clamp(22px,4.4vw,28px);line-height:1.15;letter-spacing:-.02em;margin:6px 0 12px}
.bx-theme{display:inline-block;background:var(--accent2-soft);color:var(--accent2);font-weight:700;border-radius:999px;padding:4px 12px;font-size:13px;margin-bottom:10px}
.bx-rules{margin:0 0 16px;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:1.45}
.bx-ladder{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:18px}
.bx-tier{display:flex;flex-direction:column;align-items:center;gap:2px;border-radius:12px;padding:8px 4px;background:color-mix(in srgb,var(--c) 13%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 35%,transparent);text-align:center}
.bx-tier i{font-style:normal;font-size:20px}
.bx-tier b{font-size:11.5px;line-height:1.15}
.bx-tier small{font-size:11px;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}
.bx-go{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.bx-big{padding:12px 20px!important;font-size:16px!important;border-radius:14px!important;gap:8px}
.bx-big svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bx-time{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--muted)}
.bx-time input{accent-color:var(--accent)}
.bx-mini{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:16px;font-size:13.5px;color:var(--muted)}
.bx-mini b{color:var(--ink)}
.bx-fine{font-size:12.5px;color:var(--muted);margin:14px 0 0}
.bx-prac-l{margin-top:6px;font-size:13.5px}

.bx-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.bx-prog{width:58px;height:58px;flex:none}
.bx-run{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.bx-run b{font-size:22px;color:var(--ink);letter-spacing:-.02em}
.bx-q{font-size:clamp(22px,4.6vw,30px);line-height:1.18;letter-spacing:-.02em;margin:0 0 6px;text-wrap:balance}
.bx-q.sm{font-size:18px;color:var(--muted);font-weight:600}
.bx-hint{margin:0 0 10px;color:var(--muted);font-size:14px}
.bx-timer{position:relative;height:8px;border-radius:99px;background:var(--line);margin:14px 0 14px;overflow:visible}
.bx-timer i{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:var(--accent);transition:width .1s linear}
.bx-timer i.low{background:var(--curl)}
.bx-timer span{position:absolute;right:0;top:12px;font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.bx-form{display:flex;gap:8px;margin-top:22px}
.bx-form input{flex:1;min-width:0;font:inherit;font-size:18px;padding:12px 14px;border-radius:14px;border:2px solid var(--line);background:var(--paper);color:var(--ink)}
.bx-form input:focus{outline:none;border-color:var(--accent)}
.bx-form .btn{border-radius:14px;padding:0 20px;font-size:16px}
.bx-shake{animation:bxShake .4s}
@keyframes bxShake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.bx-tries{font-size:12.5px;color:var(--muted);margin-top:8px}
.bx-msg{min-height:22px;margin-top:6px;font-size:14px}
.bx-miss{color:var(--bad);font-weight:600}

.bx-verdict{display:flex;align-items:center;gap:14px;margin:12px 0 10px;padding:14px 16px;border-radius:18px;background:color-mix(in srgb,var(--c) 14%,var(--surface));border:1.5px solid color-mix(in srgb,var(--c) 45%,transparent);animation:bxPop .45s cubic-bezier(.2,1.5,.4,1)}
.bx-ve{font-size:36px;line-height:1}
.bx-verdict>div{flex:1;min-width:0}
.bx-vt{font-weight:800;font-size:20px;letter-spacing:-.01em;color:color-mix(in srgb,var(--c) 75%,var(--ink))}
.bx-vs{font-size:14.5px;margin-top:2px}
.bx-vs small{color:var(--muted)}
.bx-vp{font-weight:800;font-size:22px;font-variant-numeric:tabular-nums}
.bx-verdict.t0{--c:var(--muted)}
.bx-deeper{font-size:14px;color:var(--muted);margin:4px 0}
.bx-deeper b{color:var(--ink);font-weight:600}
.bx-fact{font-size:14px;line-height:1.5;background:var(--paper);border-radius:12px;padding:10px 12px;margin:10px 0 0}
.bx-after .bx-big{margin-top:18px}
@keyframes bxPop{0%{transform:scale(.85);opacity:0}100%{transform:none;opacity:1}}
@keyframes bxIn{0%{transform:translateY(14px) scale(.98);opacity:0}100%{transform:none;opacity:1}}
.bx-p{position:absolute;pointer-events:none;font-size:18px;z-index:5;animation:bxFly 1.2s cubic-bezier(.2,.8,.3,1) forwards}
@keyframes bxFly{0%{transform:translate(-50%,-50%) scale(.4);opacity:1}100%{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(1);opacity:0}}

.bx-res{text-align:center}
.bx-score{position:relative;width:170px;height:170px;margin:12px auto 4px}
.bx-bighex{width:100%;height:100%}
.bx-total{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.bx-total b{font-size:40px;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.bx-total span{font-size:12.5px;color:var(--muted);font-weight:700}
.bx-bond{font-size:15.5px;margin:4px auto 6px;max-width:420px}
.bx-emo{font-size:26px;letter-spacing:4px;margin:2px 0 14px}
.bx-acts{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.bx-acts .btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.bx-pct{min-height:20px;margin:14px 0 4px;font-size:14.5px}
.bx-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0}
.bx-stats div{display:flex;flex-direction:column;gap:1px}
.bx-stats b{font-size:22px;font-variant-numeric:tabular-nums}
.bx-stats span{font-size:11.5px;color:var(--muted);font-weight:600}
.bx-dist{display:flex;flex-direction:column;gap:3px;max-width:360px;margin:6px auto 4px;text-align:left}
.bx-db-row{display:grid;grid-template-columns:42px 1fr 26px;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.bx-db-row i{display:block;height:14px;border-radius:4px;background:var(--line);width:var(--w)}
.bx-db-row.me i{background:var(--accent)}
.bx-db-row.me{color:var(--ink);font-weight:700}
.bx-db-row b{font-weight:600;text-align:right}
.bx-rh{text-align:left;font-size:15px;margin:20px 0 8px}
.bx-rh.c{text-align:center;font-size:13px;color:var(--muted);margin:16px 0 6px}
.bx-rl{list-style:none;margin:0;padding:0;text-align:left;display:flex;flex-direction:column;gap:6px}
.bx-rr{border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.bx-rrh{display:flex;align-items:center;gap:10px}
.bx-rre{width:34px;height:34px;flex:none;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 15%,var(--surface));font-size:18px}
.bx-rrq{flex:1;min-width:0;display:flex;flex-direction:column}
.bx-rrq b{font-size:14px}
.bx-rrq small{color:var(--muted);font-size:12.5px}
.bx-rrp{font-weight:800;font-variant-numeric:tabular-nums}
.bx-all summary{cursor:pointer;font-size:12.5px;color:var(--accent);font-weight:600;margin-top:6px;list-style-position:inside}
.bx-ag{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.bx-agt{font-size:11.5px;font-weight:800;letter-spacing:.04em;color:color-mix(in srgb,var(--c) 75%,var(--ink))}
.bx-agl{font-size:13px;line-height:1.5}
.bx-sugg{font-size:12.5px;margin-top:8px}
.bx-nextin{margin:18px 0 0;font-size:14px;color:var(--muted)}
.bx-nextin b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:16px}
@media (max-width:600px){
  .bx-game-scrim{padding:0;place-items:stretch}
  .bx-game{width:100%;max-height:none;height:100%;border-radius:0;border:0}
  .bx-gb{padding:16px 16px calc(24px + env(safe-area-inset-bottom,0px))}
  .bx-gh{padding-top:calc(10px + env(safe-area-inset-top,0px))}
  .bx-ladder{grid-template-columns:repeat(5,1fr);gap:4px}
  .bx-tier b{font-size:10px}
  .bx-form input{font-size:17px}
  .bx-stats b{font-size:19px}
}
@media (prefers-reduced-motion:reduce){.bx-dlg,.bx-game,.bx-verdict,.bx-ann,.bx-heard{animation:none!important;transition:none!important}.bx-hx-d.cur{animation:none}}

/* ---------- Bondline v27: teaching tools (Classes, My quizzes, live quizzes, worksheets) ---------- */
.tc-three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.tc-anonnote{margin:6px 0 0}
.tc-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.tc-tool{display:flex;flex-direction:column;gap:6px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:16px 18px;color:var(--ink);font:inherit;cursor:pointer}
.tc-tool b{font-size:15.5px}.tc-tool span{color:var(--muted);font-size:13.5px;line-height:1.45}
.tc-tool:hover,.cl-tile:hover,.tc-qmain:hover{border-color:var(--accent)}
.tc-tabs{display:flex;gap:4px;margin:18px 0 4px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tc-tabs::-webkit-scrollbar{display:none}
.tc-tabs button{border:0;background:none;color:var(--muted);font:600 14px/1 var(--font-ui);padding:11px 12px 12px;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;cursor:pointer}
.tc-tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}
.tc-acts{display:flex;gap:8px;flex-wrap:wrap}
.tc-asg{flex-wrap:wrap}
.tc-asgm{display:flex;gap:12px;font-size:12.5px;color:var(--muted)}
.tc-asgb{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tc-empty{border:1px dashed var(--line);border-radius:14px;padding:20px 22px;margin-top:10px}
.tc-empty p{margin:0 0 6px}
.tc-check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.45;margin:6px 0;cursor:pointer}
.tc-check input{margin-top:3px;flex:none}.tc-check.off{opacity:.65;cursor:default}
.tc-inl{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.tc-radio{display:inline-flex;gap:7px;align-items:center;font-size:14px;font-weight:600}
.cl-form h3{font-size:13px;margin:6px 0 0;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.cl-form h3 small{text-transform:none;letter-spacing:0;font-weight:500}
.tc-prevbar{background:var(--accent-soft);color:var(--ink);border-radius:10px;padding:8px 12px;margin-bottom:12px;font-size:13.5px;display:flex;align-items:center;gap:8px;justify-content:space-between}
.tc-typed{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}
.tc-typed input{flex:1;min-width:180px;font:inherit;font-size:16px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink)}
.tc-unit{color:var(--muted);font-weight:600}
.tc-v{color:var(--ok);font-weight:700}.tc-sw{color:var(--bad,#c4313a);font-size:12px}
.tc-cellb,.tc-stub{all:unset;display:grid;gap:2px;cursor:pointer;width:100%}
.tc-cellb small,.tc-stub small{color:var(--muted);font-size:11.5px;font-weight:500}
.cl-table tr.on th{background:var(--accent-soft)}
.cl-table th small{display:block;font-weight:500;color:var(--muted);font-size:11.5px}
.tc-legend{margin-top:8px}
.tc-sd{margin-top:16px;align-items:stretch}
.tc-sd-h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.tc-sd-h h2{margin:0}.tc-sd-h .linkbtn{margin-left:auto}
.tc-sd-row{display:grid;gap:4px;border-top:1px solid var(--line);padding:10px 0 4px;font-size:13.5px}
.tc-sd-row>span{color:var(--muted)}.tc-sd-row .linkbtn{justify-self:start;padding-left:0}
.tc-ticks{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.tc-tick{min-width:26px;height:26px;padding:0 5px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:3px;font:600 12px/1 var(--font-ui);box-sizing:border-box}
.tc-tick.ok{background:var(--ok-soft);color:var(--ok)}.tc-tick.bad{background:var(--bad-soft,rgba(229,72,77,.12));color:var(--bad,#c4313a)}
.tc-tick small{font-weight:500;opacity:.85}
.tc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:14px 0 4px}
.tc-kpis div{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 14px;display:grid;gap:2px}
.tc-kpis b{font-size:22px;font-variant-numeric:tabular-nums}.tc-kpis span{color:var(--muted);font-size:12.5px}
.tc-inspick{margin-top:14px}
.tc-iqs{display:grid;gap:8px}
.tc-iq{border:1px solid var(--line);background:var(--surface);border-radius:12px}
.tc-iq.low{border-color:color-mix(in srgb,var(--bad,#c4313a) 45%,var(--line))}
.tc-iq summary{display:grid;grid-template-columns:auto minmax(0,1fr) 110px 46px;gap:12px;align-items:center;padding:11px 14px;cursor:pointer;list-style:none}
.tc-iq summary::-webkit-details-marker{display:none}
.tc-iqn{font-weight:700;color:var(--muted);font-size:13px}
.tc-iqt{font-size:14px;min-width:0;overflow:hidden}.tc-iqt small{display:block;color:var(--muted);font-size:12px}
.tc-iq summary b{text-align:right;font-variant-numeric:tabular-nums}
.tc-iqb{padding:4px 16px 14px;border-top:1px solid var(--line)}
.tc-dist{display:grid;gap:6px;margin:10px 0}
.tc-dist span{display:grid;grid-template-columns:22px minmax(0,1fr) 34px;gap:8px;align-items:center;font-size:13px}
.tc-dist i{display:block;height:10px;border-radius:5px;background:var(--muted);opacity:.35;min-width:2px}
.tc-dist span.ok i{background:var(--ok);opacity:1}.tc-dist span.bad i{background:var(--bad,#c4313a);opacity:.85}
.tc-dist em{font-style:normal;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
.tc-wrong{margin:10px 0;font-size:13.5px;color:var(--muted)}.tc-wrong span{display:inline-block;background:var(--paper);border:1px solid var(--line);border-radius:99px;padding:2px 9px;margin:3px 4px 0 0;color:var(--ink)}
.tc-ppl{display:grid;gap:6px;margin-top:8px}
.tc-pp{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 14px;flex-wrap:wrap}
.tc-ppn{flex:1;min-width:160px;display:grid;gap:1px}.tc-ppn small{color:var(--muted);font-size:12.5px}
.tc-tcode{margin-top:10px}
.tc-set{display:flex;gap:8px;flex-wrap:wrap}
.tc-inlive{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}.tc-inlive input{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);width:150px}
.tc-inlive .cl-err{flex-basis:100%;margin:0}
/* flashcards */
.tc-card{border:1px solid var(--line);background:var(--surface);border-radius:16px;min-height:220px;display:grid;gap:0;overflow:hidden}
.tc-cside{padding:26px 26px 22px;display:grid;gap:10px;align-content:center;font-size:19px;line-height:1.45;text-align:center;justify-items:center}
.tc-cside small{font:600 11.5px/1 var(--font-ui);text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.tc-cside.back{border-top:1px dashed var(--line);background:var(--paper)}
.tc-cbtns{justify-content:center;margin-top:14px}
.tc-pill{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--accent);border-radius:14px;padding:8px 10px 8px 14px;box-shadow:0 14px 34px -14px rgba(0,0,0,.35);max-width:calc(100vw - 32px)}
.tc-pill-b{all:unset;display:grid;gap:1px;cursor:pointer;min-width:0}.tc-pill-b b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.tc-pill-b span{font-size:12.5px;color:var(--muted)}
/* My quizzes */
.tc-qlacts{margin:4px 0 14px}
.tc-qlist{display:grid;gap:10px}
.tc-qtile{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:6px 8px 10px}
.tc-qmain{all:unset;display:grid;gap:3px;padding:10px 10px 8px;border-radius:10px;cursor:pointer;width:calc(100% - 20px);border:1px solid transparent}
.tc-qmain b{font-size:15.5px}.tc-qmain span,.tc-qmain small{color:var(--muted);font-size:13px}
.tc-qbtns{display:flex;gap:6px;flex-wrap:wrap;padding:0 10px;align-items:center}
.tc-setpick{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;padding:10px 10px 0}
.tc-pastex{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font:13px/1.5 var(--font-mono,ui-monospace,monospace);white-space:pre-wrap;margin:8px 0 0}
.tc-paste textarea,.tc-qf textarea,.tc-qf input,.tc-qf select,.tc-qch select,.tc-optrow input:not([type=radio]),.tc-edtitle,.tc-eddesc{font:inherit;font-size:14.5px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);width:100%;box-sizing:border-box}
.tc-paste textarea{font-family:var(--font-mono,ui-monospace,monospace);font-size:13px;line-height:1.5}
.tc-edtitle{font:700 26px/1.2 var(--font-ui);letter-spacing:-.01em;border-color:transparent;background:transparent;padding:6px 8px;margin-left:-8px}
.tc-eddesc{border-color:transparent;background:transparent;color:var(--muted);padding:4px 8px;margin-left:-8px}
.tc-edtitle:hover,.tc-eddesc:hover,.tc-edtitle:focus,.tc-eddesc:focus{border-color:var(--line);background:var(--paper)}
.tc-edbar{position:sticky;top:0;z-index:5;display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--paper);padding:10px 0;border-bottom:1px solid var(--line);margin-bottom:12px}
.tc-warn{color:var(--bad,#c4313a)}
.tc-qcs{display:grid;gap:10px}
.tc-qc{border:1px solid var(--line);background:var(--surface);border-radius:14px;overflow:hidden}
.tc-qc.warn{border-color:color-mix(in srgb,var(--y,#f5a524) 60%,var(--line))}
.tc-qc.open{border-color:var(--accent)}
.tc-qch{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tc-qch select{width:auto;padding:6px 9px;font-size:13.5px}
.tc-qn{font:700 13px/1 var(--font-ui);width:26px;height:26px;border-radius:8px;background:var(--paper);display:grid;place-items:center;flex:none}
.tc-badge{font:600 11.5px/1 var(--font-ui);padding:5px 8px;border-radius:99px;background:var(--paper);border:1px solid var(--line);color:var(--muted)}
.tc-badge.bank{background:var(--accent2-soft);color:var(--accent2);border-color:transparent}.tc-badge.tag{color:var(--ink)}
.tc-badge.warn{background:var(--bad-soft,rgba(229,72,77,.12));color:var(--bad,#c4313a);border-color:transparent}
.tc-qtools{display:flex;gap:2px;flex-wrap:wrap}.tc-qtools .linkbtn{font-size:12.5px;padding:4px 6px}
.tc-qcb{all:unset;display:block;padding:12px 16px 14px;cursor:pointer;width:calc(100% - 32px)}
.tc-qcb[tabindex="-1"]{cursor:default}
.tc-qp{font-size:15px;line-height:1.5}.tc-qp .qz-struct,.tc-qfig .qz-struct{padding:6px 0 8px;align-items:flex-start}
.tc-qfig svg{max-width:240px;height:auto}
.tc-qo{margin:8px 0 0;padding-left:22px;display:grid;gap:3px;font-size:14px}.tc-qo li.ok{color:var(--ok);font-weight:600}.tc-qo li.ok::marker{color:var(--ok)}
.tc-qo svg{max-width:120px;height:auto;vertical-align:middle}
.tc-qans{margin:8px 0 0;font-size:13.5px;color:var(--ok);font-weight:600}.tc-qans small{color:var(--muted);font-weight:500}
.tc-qedit{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0}
.tc-qfields{padding:14px 16px;display:grid;gap:12px;align-content:start}
.tc-qf{display:grid;gap:5px;font-size:12.5px;font-weight:600;color:var(--muted)}.tc-qf small{font-weight:500}
.tc-qprev{padding:14px 16px;background:var(--paper);border-left:1px solid var(--line);display:grid;gap:8px;align-content:start}
.tc-qprev .qz-opts{grid-template-columns:minmax(0,1fr)}.tc-qprev .qz-opt{background:var(--surface);font-size:14px;padding:9px 12px}
.tc-opts{display:grid;gap:6px}
.tc-optrow{display:grid;grid-template-columns:auto 18px minmax(0,1fr) auto;gap:8px;align-items:center}
.tc-optrow input[type=radio]{width:18px;height:18px;accent-color:var(--ok)}
.tc-optl{font:700 13px/1 var(--font-ui);color:var(--muted)}
.tc-addopt{justify-self:start;color:var(--accent);font-weight:600}
.tc-addbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px 0;padding:12px 14px;border:1px dashed var(--line);border-radius:14px}
.tc-bank{margin:12px 0;align-items:stretch}
.tc-bankh{display:flex;align-items:center}.tc-bankh h2{margin:0}
.tc-bankbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tc-rand{min-width:0;width:auto}
.tc-bankl{display:grid;gap:8px}
.tc-bq{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;background:var(--paper)}
.tc-bq.on{border-color:var(--accent);background:var(--accent-soft)}.tc-bq.used{opacity:.6;cursor:default}
.tc-bq input{margin-top:4px;width:17px;height:17px}
.tc-bqb small{color:var(--muted);font-size:12px}
.tc-bqb .qz-struct svg,.tc-bqb .sp-qfig svg{max-width:260px;height:auto}
.tc-pager{display:flex;gap:10px;align-items:center;justify-content:center}
.tc-dlg{max-width:480px}
.tc-dlg h2{margin-top:0}
.tc-tpst{margin-bottom:14px}.tc-tpst.ok{border-color:var(--ok)}.tc-tpst.bad{border-color:var(--bad,#c4313a)}.tc-tpst h2{margin:0}.tc-tpst p{margin:0}
.tc-tpgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;align-items:start}
.tc-tpside p{margin:0}
.tc-nbform{margin-top:14px}
@media (max-width:820px){.tc-qedit{grid-template-columns:minmax(0,1fr)}.tc-qprev{border-left:0;border-top:1px solid var(--line)}.tc-tpgrid{grid-template-columns:minmax(0,1fr)}.tc-iq summary{grid-template-columns:auto minmax(0,1fr) 46px}.tc-iq summary .nm-meter{display:none}}

/* live quiz */
.lv{max-width:1100px;margin:0 auto}
.lv-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 0 12px;border-bottom:1px solid var(--line);margin-bottom:18px}
.lv-top>span{color:var(--muted);font-size:14px}
.lv-pinsm{font:700 14px/1 var(--font-ui);letter-spacing:.06em}
.lv-lobby{display:grid;justify-items:center;gap:14px;text-align:center;padding:16px 0}
.lv-join{display:grid;gap:10px;justify-items:center;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:22px 40px}
.lv-join>span:first-child{font-size:18px}
.lv-pin{font:800 clamp(56px,10vw,104px)/1 var(--font-ui);letter-spacing:.08em;font-variant-numeric:tabular-nums}
.lv-or{color:var(--muted);margin:0}
.lv-count b{font-size:20px}
.lv-players{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:900px}
.lv-chip{background:var(--accent-soft);color:var(--ink);border-radius:99px;padding:8px 14px;font-weight:700;animation:lvpop .25s ease}
@keyframes lvpop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
.lv-big{font-size:18px;padding:13px 30px;border-radius:12px}
.lv-q{display:grid;gap:16px}
.lv-qtop{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.lv-ring{--f:1;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--f)*360deg),var(--line) 0);position:relative}
.lv-ring::before{content:'';position:absolute;inset:6px;border-radius:50%;background:var(--paper)}
.lv-ring span{position:relative;font:800 24px/1 var(--font-ui);font-variant-numeric:tabular-nums}
.lv-ans{font-size:16px;color:var(--muted)}.lv-ans b{color:var(--ink)}
.lv-prompt{font-size:clamp(22px,2.6vw,32px);line-height:1.3;font-weight:600}
.lv-prompt.sm{font-size:18px}
.lv-fig .qz-struct{padding:0}.lv-fig svg{max-height:34vh;width:auto;max-width:100%}
.lv-fig.sm svg{max-height:26vh}
.lv-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.lv-opt{display:flex;align-items:center;gap:14px;background:var(--c);color:#fff;border-radius:14px;padding:18px 20px;font-size:clamp(17px,1.8vw,24px);font-weight:700;min-height:64px;position:relative;transition:opacity .3s}
.lv-opt[data-dim]{opacity:.32}
.lv-opt svg{background:#fff;border-radius:10px;max-height:150px;width:auto;max-width:100%}
.lv-opts.struct .lv-opt{justify-content:center}
.lv-shape{font-size:26px;flex:none}
.lv-n{margin-left:auto;font-size:26px;font-variant-numeric:tabular-nums}
.lv-typed{border:1px dashed var(--line);border-radius:14px;padding:22px;text-align:center;color:var(--muted);font-size:18px}
.lv-correct{font-size:22px;margin:0}
.lv-board{display:grid;justify-items:center;gap:18px;padding:10px 0}
.lv-board h2{font-size:30px;margin:0}
.lv-board ol,.lv-final ol{list-style:none;margin:0;padding:0;display:grid;gap:10px;width:min(640px,100%);counter-reset:lv}
.lv-board li,.lv-final li{counter-increment:lv;display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 18px;font-size:20px}
.lv-board li::before,.lv-final li::before{content:counter(lv);font-weight:800;color:var(--muted)}
.lv-final li{font-size:16px;padding:10px 14px}.lv-final ol{counter-reset:lv 3;margin:16px auto 0}
.lv-board li b,.lv-final li b{font-variant-numeric:tabular-nums}.lv-board li small{color:var(--ok);font-weight:700}
.lv-podium{display:flex;justify-content:center;align-items:flex-end;gap:14px;margin:10px 0 0}
.lv-pod{display:grid;justify-items:center;gap:6px;width:min(200px,30vw)}
.lv-pod span{font-weight:800;font-size:18px;text-align:center;overflow-wrap:anywhere}.lv-pod b{font-variant-numeric:tabular-nums;color:var(--muted)}
.lv-pod i{display:grid;place-items:center;width:100%;border-radius:12px 12px 0 0;background:var(--accent);color:var(--accent-ink);font:800 34px/1 var(--font-ui);font-style:normal}
.lv-pod.p1 i{height:170px}.lv-pod.p2 i{height:120px;background:var(--accent2)}.lv-pod.p3 i{height:84px;background:var(--muted)}
.lv-play{max-width:560px}
.lv-joinf{display:grid;gap:14px;padding:20px 0}.lv-joinf h1{margin:0}
.lv-joinf input{font:inherit;font-size:22px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);letter-spacing:.04em}
.lv-ptop{display:flex;align-items:center;gap:12px;padding:4px 0 12px;border-bottom:1px solid var(--line);margin-bottom:14px}.lv-ptop span{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}
.lv-wait{display:grid;justify-items:center;text-align:center;gap:8px;padding:48px 10px}.lv-wait h2{font-size:28px;margin:0}.lv-wait p{margin:0;color:var(--muted)}
.lv-pq{display:grid;gap:12px}.lv-pqh{color:var(--muted);font-size:13px;font-weight:600}
.lv-popts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lv-popt{display:flex;align-items:center;gap:10px;border:0;background:var(--c);color:#fff;border-radius:14px;padding:16px;min-height:84px;font:700 16px/1.3 var(--font-ui);text-align:left;cursor:pointer}
.lv-popt svg{background:#fff;border-radius:8px;max-width:100%;height:auto}
.lv-popts.struct .lv-popt{flex-direction:column}
.lv-popt:active{transform:scale(.97)}
.lv-ptyped input{font-size:18px}
.lv-res{display:grid;justify-items:center;text-align:center;gap:6px;padding:40px 18px;border-radius:18px;margin-top:6px}
.lv-res.ok{background:var(--ok-soft)}.lv-res.bad,.lv-res.none{background:var(--bad-soft,rgba(229,72,77,.12))}
.lv-res h2{font-size:30px;margin:0}.lv-res p{margin:0}.lv-gain{font:800 34px/1 var(--font-ui);color:var(--ok)}
@media (max-width:620px){.lv-opts{grid-template-columns:minmax(0,1fr)}.lv-join{padding:18px 20px}.lv-board li{font-size:16px}}

/* worksheets and join slips (printed through #printArea) */
.ws-root{font-family:Arial,Helvetica,sans-serif;color:#111;font-size:13.5px;line-height:1.45;background:#fff}
.ws-h{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1.5px solid #111;padding-bottom:10px;margin-bottom:12px}
.ws-k{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:#555}
.ws-h h1{font-size:22px;margin:3px 0 0}
.ws-fields{display:grid;gap:8px;min-width:230px}
.ws-fields span{display:block;border-bottom:1px solid #888;font-size:11px;color:#555;padding-top:10px}
.ws-ins{color:#444;margin:0 0 12px;font-size:12.5px}
.ws-qs{margin:0;padding-left:22px}
.ws-q{margin:0 0 16px;break-inside:avoid;page-break-inside:avoid}
.ws-p{font-weight:600}
.ws-fig{margin:6px 0}.ws-fig .qz-struct{padding:4px 0;align-items:flex-start}.ws-fig svg{max-width:300px;max-height:200px;width:auto;height:auto}
.ws-fig .sp-qfig svg{max-width:100%;max-height:none}
.ws-opts{margin:6px 0 0;padding-left:22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 20px}
.ws-sopts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:6px}
.ws-sopt{border:1px solid #bbb;border-radius:6px;padding:4px;display:grid;justify-items:center}.ws-sopt svg{max-width:100%;max-height:110px;width:auto;height:auto}
.ws-line{margin-top:10px;color:#333}
.ws-work{height:90px;border:1px dashed #bbb;border-radius:6px;margin-top:8px}
.ws-foot{margin-top:18px;font-size:10px;color:#777;text-align:right}
.ws-kt{width:100%;border-collapse:collapse;font-size:12.5px}
.ws-kt th,.ws-kt td{border-bottom:1px solid #ccc;padding:6px 8px;text-align:left;vertical-align:top}
.ws-kt td:first-child{width:28px;font-weight:700}.ws-kt small{color:#555}
.ws-slips{display:grid;grid-template-columns:1fr 1fr;gap:0}
.ws-slip{border:1px dashed #999;padding:16px 18px;display:grid;gap:5px;break-inside:avoid;page-break-inside:avoid;min-height:3.2in}
.ws-slip b{font-size:16px}.ws-code{font:800 34px/1.1 Arial,sans-serif;letter-spacing:.08em;margin:6px 0}.ws-slip small{color:#555;font-size:10.5px;overflow-wrap:anywhere}
@media print{
  #printArea .ws-root{page-break-after:always;break-after:page}
  #printArea .ws-root:last-child{page-break-after:auto;break-after:auto}
}
.cl-asg>.tc-asgb{flex:0 1 auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;min-width:0}
.cl-asg>.tc-asgb .btn{width:auto}
.ws-root button,.ws-root .nm-3d{display:none!important}

/* ---------- version 29: daily practice streak ---------- */
.sk-fl{width:1em;height:1em;flex:none}
.sk-fl .sk-fo{fill:#ff8a1f;stroke:none}.sk-fl .sk-fi{fill:#ffd43b;stroke:none}
.cold .sk-fl .sk-fo,.sk-rail:not(.lit) .sk-fl .sk-fo{fill:var(--muted);opacity:.55}.cold .sk-fl .sk-fi,.sk-rail:not(.lit) .sk-fl .sk-fi{fill:var(--surface)}
.sk-ice{width:1em;height:1em;flex:none;fill:none;stroke:#3aa7e0;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.12em}
.sk-rail{position:relative}.sk-rail .sk-fl{width:22px;height:22px}
.sk-rail .sk-rn{position:absolute;top:1px;left:calc(50% + 5px);min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:#ff7a1f;color:#fff;font:700 9.5px/15px var(--font-ui);font-style:normal;text-align:center;box-shadow:0 0 0 2px var(--surface)}
.sk-rail .sk-rn:empty{display:none}.sk-rail:not(.lit) .sk-rn{background:var(--muted)}
.sk-home{display:flex;align-items:center;gap:16px;background:linear-gradient(110deg,rgba(255,138,31,.16),var(--surface) 72%);border:1px solid var(--line);border-radius:20px;padding:14px 18px;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-bottom:12px}
.sk-home:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(255,122,31,.14)}
.sk-home.risk{border-color:#ff8a1f;animation:skPulse 1.8s ease-in-out infinite}
.sk-hf{position:relative;display:grid;place-items:center;font-size:54px;flex:none}
.sk-hf b{position:absolute;bottom:3px;font:800 17px/1 var(--font-ui);color:#fff;text-shadow:0 1px 3px rgba(120,40,0,.7)}
.sk-hf.cold b{color:var(--muted);text-shadow:none}
.sk-ht{flex:1;min-width:0}.sk-hk{font:700 11.5px/1.2 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sk-hs{font-weight:700;font-size:17px;margin:3px 0 6px}.sk-hs span{color:#e8791a;font-size:13.5px;margin-left:6px}
.sk-week{display:flex;gap:6px;justify-content:center}.sk-home .sk-week{justify-content:flex-start}
.sk-d{display:flex;flex-direction:column;align-items:center;gap:3px}
.sk-d i{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-style:normal;background:var(--surface)}
.sk-home .sk-d i{width:19px;height:19px;border-width:1.5px}.sk-home .sk-d small{display:none}
.sk-d small{font:600 10.5px/1 var(--font-ui);color:var(--muted)}
.sk-d svg{width:62%;height:62%;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.sk-d.done i{background:linear-gradient(180deg,#ffa63d,#ff7a1f);border-color:#ff7a1f}
.sk-d.ice i{background:#e3f4fd;border-color:#8fd0f2}.sk-d.ice .sk-ice{width:70%;height:70%}
.sk-d.today i{border-color:#ff8a1f;border-style:dashed}.sk-d.miss i{opacity:.55}
.sk-d.sk-pop i{animation:skPop .7s .9s cubic-bezier(.2,1.6,.4,1) both}
.sk-scrim{position:fixed;inset:0;z-index:80;background:rgba(8,12,20,.55);display:grid;place-items:center;padding:16px}
.sk-scrim[hidden]{display:none}
.sk-m{position:relative;width:min(560px,100%);max-height:min(860px,100%);background:var(--paper);border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;box-shadow:0 30px 80px rgba(0,0,0,.35)}
#skBody{flex:1;min-width:0;overflow:auto;padding:14px 20px 20px;display:flex;flex-direction:column}
.sk-cv{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.sk-top{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex:none}
.sk-title{flex:1;text-align:center;font-size:15px}
.sk-x{flex:none;width:34px;height:34px;border-radius:50%;border:0;background:none;display:grid;place-items:center;color:var(--muted);padding:0;box-shadow:none}
.sk-x:hover{background:var(--surface);color:var(--ink)}.sk-x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sk-x.off{opacity:.6}
.sk-prog{flex:1;height:14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);overflow:hidden}
.sk-prog i{display:block;height:100%;border-radius:999px;background:linear-gradient(180deg,#ffb04d,#ff7a1f);box-shadow:inset 0 3px 0 rgba(255,255,255,.28);transition:width .55s cubic-bezier(.2,1.4,.4,1)}
.sk-combo{display:flex;align-items:center;gap:2px;font-size:20px;color:var(--muted);min-width:42px;justify-content:flex-end;opacity:.45;transition:opacity .2s}
.sk-combo b{font:800 15px/1 var(--font-ui)}.sk-combo:not(.on) .sk-fo{fill:var(--muted)}.sk-combo:not(.on) .sk-fi{fill:var(--paper)}
.sk-combo.on{opacity:1;color:#e8791a;animation:skPop .45s cubic-bezier(.2,1.6,.4,1)}
.sk-quit{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin-bottom:12px;font-size:13.5px}.sk-quit span{flex:1;min-width:160px}
.sk-q{flex:1 0 auto;animation:skIn .28s ease-out}.sk-q.shown{animation:none}
.sk-topic{display:flex;align-items:center;gap:8px;font:700 11.5px/1.2 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.sk-rev{background:rgba(255,138,31,.16);color:#c9650f;border-radius:999px;padding:3px 8px;letter-spacing:.03em}
.sk-opts .sk-o{transition:transform .12s,border-color .15s,background .15s;border-width:2px}
.sk-opts .sk-o:not(:disabled):hover{border-color:#ffb04d}.sk-opts .sk-o:not(:disabled):active{transform:scale(.97)}
.sk-opts .sk-o.right{border-color:#2fb26b;background:rgba(47,178,107,.13);animation:skPop .4s cubic-bezier(.2,1.6,.4,1)}
.sk-opts .sk-o.wrong{border-color:#e5484d;background:rgba(229,72,77,.1);animation:skShake .38s}
.sk-fb{position:sticky;bottom:-20px;margin:16px -20px -20px;padding:14px 20px calc(16px + env(safe-area-inset-bottom,0px));display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;animation:skUp .26s cubic-bezier(.2,1.2,.4,1);z-index:2}
.sk-fb.ok{background:#e4f7ec;color:#14633a}.sk-fb.bad{background:#fde8e8;color:#8f1d22}
.sk-fbt{flex:1;min-width:200px;font-size:14px}.sk-fbt>b{font-size:18px;margin-right:8px}.sk-fbt p{margin:6px 0 0;font-size:13.5px;line-height:1.45}.sk-fbt small{display:block;margin-top:6px;opacity:.8}
.sk-xp{font-weight:700}
.sk-fb .sk-next{flex:none;min-width:130px}.sk-fb.ok .sk-next{background:#2fb26b;border-color:#2fb26b;color:#fff}.sk-fb.bad .sk-next{background:#e5484d;border-color:#e5484d;color:#fff}
.sk-end,.sk-hub{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin:auto 0;padding:10px 0}
.sk-end>small,.sk-hub>small,.sk-endh small{color:var(--muted);font-size:14px;max-width:360px}
.sk-endh{display:flex;flex-direction:column;gap:6px;align-items:center;animation:skPop .5s cubic-bezier(.2,1.5,.4,1)}
.sk-big{font:800 28px/1.1 var(--font-ui);letter-spacing:-.02em}
.sk-hero{position:relative;display:grid;place-items:center;font-size:132px;line-height:1;filter:drop-shadow(0 10px 22px rgba(255,122,31,.35))}
.sk-hero.cold{filter:none}
.sk-hero b{position:absolute;bottom:14px;font:800 40px/1 var(--font-ui);color:#fff;text-shadow:0 2px 6px rgba(120,40,0,.75)}
.sk-hero.cold b{color:var(--muted);text-shadow:none}
.sk-hero.lit .sk-fl,.sk-hero.go .sk-fl{animation:skFlick 1.6s ease-in-out infinite;transform-origin:50% 90%}
.sk-hero.go{animation:skGrow .9s .3s cubic-bezier(.2,1.7,.4,1) both}
.sk-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;margin:8px 0}
.sk-tile{border:2px solid var(--line);border-radius:16px;padding:12px 6px;display:flex;flex-direction:column;gap:4px;animation:skPop .5s cubic-bezier(.2,1.5,.4,1) both}
.sk-tile:nth-child(2){animation-delay:.12s}.sk-tile:nth-child(3){animation-delay:.24s}
.sk-tile small{font:700 11px/1 var(--font-ui);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.sk-tile b{font:800 26px/1.1 var(--font-ui)}
.sk-tile.xp{border-color:#ffb04d}.sk-tile.xp b{color:#e8791a}.sk-tile.ac{border-color:#7fd3a4}.sk-tile.ac b{color:#1f9a59}.sk-tile.co{border-color:#8fd0f2}.sk-tile.co b{color:#2b8fc7}
.sk-lvup,.sk-got{margin:0;padding:9px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-size:14px;display:flex;gap:8px;align-items:center;text-align:left}.sk-got .sk-ice{font-size:22px}
.sk-wide{width:100%;max-width:380px;justify-content:center;padding-block:12px;font-size:15.5px;margin-top:6px}
.sk-go{box-shadow:0 4px 0 rgba(0,0,0,.16);transition:transform .1s,box-shadow .1s}.sk-go:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.16)}
.sk-lim{font-size:12.5px!important}
.sk-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:100%;margin-top:10px}
.sk-stats div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 4px;display:flex;flex-direction:column;gap:3px}
.sk-stats b{font:800 19px/1.1 var(--font-ui);display:flex;align-items:center;justify-content:center;gap:3px}.sk-stats b i{font-style:normal;color:var(--muted);font-size:13px}.sk-stats small{font-size:11.5px;color:var(--muted)}
.sk-lv{width:100%;height:8px;border-radius:999px;background:var(--surface);border:1px solid var(--line);overflow:hidden}.sk-lv i{display:block;height:100%;background:var(--accent);border-radius:999px}
.sk-lvt{font-size:12.5px!important}
.sk-set{width:100%;text-align:left;border-top:1px solid var(--line);margin-top:8px;padding-top:10px;font-size:14px}.sk-set summary{cursor:pointer;font-weight:600;color:var(--muted)}
.sk-set p{margin:12px 0 6px;font-weight:600}.sk-set p.hm-muted{font-weight:400;font-size:13px}
.sk-rem{display:flex;gap:8px;align-items:center}.sk-rem input{border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--surface);color:var(--ink);font:inherit}
@keyframes skPop{0%{transform:scale(.6);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes skGrow{0%{transform:scale(.4)}100%{transform:scale(1)}}
@keyframes skShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}
@keyframes skIn{0%{transform:translateX(26px);opacity:0}100%{transform:none;opacity:1}}
@keyframes skUp{0%{transform:translateY(100%)}100%{transform:none}}
@keyframes skFlick{0%,100%{transform:scale(1) rotate(0)}30%{transform:scale(1.04,.97) rotate(-1.5deg)}60%{transform:scale(.98,1.04) rotate(1.5deg)}}
@keyframes skPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,138,31,.0)}50%{box-shadow:0 0 0 6px rgba(255,138,31,.18)}}
@media (max-width:600px){.sk-scrim{padding:0}.sk-m{width:100%;height:100%;max-height:none;border-radius:0;border:0}#skBody{padding:calc(10px + env(safe-area-inset-top,0px)) 16px 16px}.sk-fb{margin:16px -16px -16px;bottom:-16px;padding-inline:16px}.sk-fb .sk-next{width:100%}.sk-hero{font-size:116px}.sk-home{padding:12px 14px;gap:12px}.sk-hf{font-size:46px}}
@media (prefers-reduced-motion:reduce){.sk-q,.sk-fb,.sk-o,.sk-hero,.sk-hero .sk-fl,.sk-tile,.sk-endh,.sk-d i,.sk-combo,.sk-home{animation:none!important}.sk-prog i{transition:none}}
[data-theme="dark"] .sk-fb.ok,.dark .sk-fb.ok{background:#12301f;color:#9be3b9}[data-theme="dark"] .sk-fb.bad,.dark .sk-fb.bad{background:#3a1517;color:#f5a9ac}
[data-theme="dark"] .sk-d.ice i,.dark .sk-d.ice i{background:#12303f;border-color:#2b7aa6}
/* version 29: exam pass, ask a parent, centre licence */
.pro-plans.pro-plans3{grid-template-columns:repeat(3,1fr)}.pro-tag2{background:#e8791a}
.pro-parent{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 16px;border:1px dashed var(--line);border-radius:14px}.pro-parent div{flex:1;display:flex;flex-direction:column;gap:2px}.pro-parent small{color:var(--muted)}
@media (max-width:760px){.pro-plans.pro-plans3{grid-template-columns:1fr;gap:18px}}
.tc-tpside{display:flex;flex-direction:column;gap:10px}.lc-sum{font-size:14px;color:var(--muted)}.lc-sum b{font-size:24px;color:var(--ink);margin-right:4px}
.lc-row{display:flex;gap:8px;flex-wrap:wrap}.lc-now{display:flex;gap:8px;align-items:center;background:var(--accent-soft);border-radius:10px;padding:8px 10px;font-size:13.5px}.lc-now svg{width:18px;height:18px;flex:none}
