/* ==================================================================
   Test series — same look as MSG ERP (assets/theme.css + report-card dashboard).
   Only the 4 test screens use it: html.erp is set while one of them is open.
   Dark by default, light with html[data-ts="light"]. All names start with ts- / --e-
   so nothing here touches the kids' practice screens.
   ================================================================== */
html.erp{
  --e-hero:linear-gradient(135deg,#8b5cf6 0%,#ec4899 50%,#f97316 100%);
  --e-g1:linear-gradient(135deg,#8b5cf6,#ec4899);
  --e-bg:#0d0a1f;--e-s1:#171233;--e-s2:#1e1745;--e-s3:#2a2159;--e-bd:rgba(139,92,246,.25);
  --e-tx:#f3f0ff;--e-mt:#b9aee0;--e-dm:#7d6fb3;
  --e-blue:#38bdf8;--e-green:#34d399;--e-red:#fb7185;--e-purple:#a78bfa;--e-orange:#fb923c;
  --e-r:14px;--e-shadow:0 4px 24px rgba(76,29,149,.35);color-scheme:dark}
html.erp[data-ts=light]{
  --e-bg:#f4f1ff;--e-s1:#ffffff;--e-s2:#f6f3ff;--e-s3:#ede8ff;--e-bd:rgba(139,92,246,.28);
  --e-tx:#1e1145;--e-mt:#5b4a91;--e-dm:#8b7cc0;
  --e-blue:#0284c7;--e-green:#059669;--e-red:#e11d48;--e-purple:#7c3aed;--e-orange:#ea580c;
  --e-shadow:0 4px 20px rgba(124,58,237,.14);color-scheme:light}

/* page: ERP background + glows instead of the kids' bubbles */
html.erp body{background:var(--e-bg);color:var(--e-tx)}
html.erp .bubbles{display:none}
html.erp body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(600px 400px at 8% -5%,rgba(139,92,246,.22),transparent 60%),
  radial-gradient(700px 500px at 100% 0%,rgba(236,72,153,.16),transparent 60%),
  radial-gradient(800px 600px at 50% 110%,rgba(6,182,212,.14),transparent 60%)}
html.erp[data-ts=light] body::before{background:
  radial-gradient(600px 400px at 8% -5%,rgba(139,92,246,.12),transparent 60%),
  radial-gradient(700px 500px at 100% 0%,rgba(236,72,153,.09),transparent 60%),
  radial-gradient(800px 600px at 50% 110%,rgba(6,182,212,.08),transparent 60%)}
html.erp main{max-width:1280px}
html.erp .topbar .brand b,html.erp .foot,html.erp .foot b{color:var(--e-mt)}
html.erp .me,html.erp .iconbtn{background:var(--e-s1);color:var(--e-tx);box-shadow:none;border:1px solid var(--e-bd)}
html.erp ::selection{background:#8b5cf6;color:#fff}

.ts{font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-size:14px;line-height:1.45;color:var(--e-tx);gap:0!important}
.ts button{font:inherit;color:inherit;cursor:pointer}
.ts [hidden]{display:none!important}
.ts .fa-solid,.ts .fa-regular{line-height:1}

/* slim gradient title bar */
.ts-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--e-hero);color:#fff;border-radius:12px;padding:10px 14px;margin-bottom:14px;box-shadow:0 10px 26px -14px #8b5cf6}
.ts-bar .ic{width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.22);display:grid;place-items:center;font-size:16px;flex:none}
.ts-bar h1{font-size:17px;font-weight:800;line-height:1.15;margin:0}
.ts-bar small{display:block;font-size:11px;opacity:.9;font-weight:500}
.ts-bar .sp{flex:1}
.ts-tbtn{border:0;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:700;background:rgba(255,255,255,.2);color:#fff!important;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ts-tbtn:hover,.ts-tbtn:focus-visible{background:rgba(255,255,255,.32);outline:none}
.ts-tbtn.white{background:#fff;color:#7c3aed!important}
.ts-theme{display:inline-flex;background:rgba(0,0,0,.18);border-radius:8px;padding:2px}
.ts-theme button{border:0;background:none;color:#fff;padding:5px 9px;border-radius:6px;font-size:12px;opacity:.75}
.ts-theme button.on{background:rgba(255,255,255,.28);opacity:1}

/* compact gradient stat tiles: 8 → 4 → 2 a row */
.ts-tiles{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin-bottom:14px}
.ts-tile{border-radius:10px;padding:8px 10px;color:#fff;background:linear-gradient(135deg,var(--k1),var(--k2));box-shadow:0 6px 14px -10px var(--k1);min-width:0}
.ts-tile .i{width:22px;height:22px;border-radius:6px;background:rgba(255,255,255,.22);display:grid;place-items:center;font-size:10px;margin-bottom:4px}
.ts-tile b{display:block;font-size:17px;font-weight:800;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ts-tile span{display:block;font-size:8.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;opacity:.92}
.ts-tile em{display:block;font-style:normal;font-size:9.5px;font-weight:600;opacity:.92;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.k-1{--k1:#6366f1;--k2:#8b5cf6}.k-2{--k1:#ec4899;--k2:#f97316}.k-3{--k1:#06b6d4;--k2:#3b82f6}.k-4{--k1:#10b981;--k2:#14b8a6}
.k-5{--k1:#f97316;--k2:#facc15}.k-6{--k1:#8b5cf6;--k2:#ec4899}.k-7{--k1:#0ea5e9;--k2:#6366f1}.k-8{--k1:#f43f5e;--k2:#ec4899}

/* filter bar + pills */
.ts-fbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:10px 12px;background:var(--e-s1);border:1px solid var(--e-bd);border-radius:var(--e-r);margin-bottom:14px}
.ts-fbar .sp{flex:1}
.ts-fbar label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--e-mt)}
.ts select{padding:6px 10px;background:var(--e-s2);border:1px solid var(--e-bd);border-radius:8px;color:var(--e-tx);font:inherit;font-size:12.5px;width:auto}
.ts select:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.25);outline:none}
.ts-pill{border:1px solid var(--e-bd);background:var(--e-s2);border-radius:20px;padding:5px 12px;font-size:12px;font-weight:600;color:var(--e-mt)!important;display:inline-flex;gap:6px;align-items:center}
.ts-pill em{font-style:normal;font-size:10px;font-weight:800;background:color-mix(in srgb,var(--pc,#8b5cf6) 22%,transparent);color:var(--e-tx);border-radius:10px;padding:0 6px}
.ts-pill.on{background:color-mix(in srgb,var(--pc,#8b5cf6) 22%,transparent);border-color:var(--pc,#8b5cf6);color:var(--e-tx)!important}

/* cards: coloured top + tinted title strip */
.ts-card{background:var(--e-s1);border:1px solid var(--e-bd);border-top:3px solid var(--cc,#8b5cf6);border-radius:var(--e-r);margin-bottom:14px;overflow:hidden;box-shadow:var(--e-shadow);min-width:0}
.ts-card>.ch{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 16px;background:color-mix(in srgb,var(--cc,#8b5cf6) 14%,transparent);color:color-mix(in srgb,var(--cc,#8b5cf6) 75%,var(--e-tx));font-weight:700;font-size:14px}
.ts-card>.ch i.ci{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:color-mix(in srgb,var(--cc,#8b5cf6) 22%,transparent);font-size:12px}
.ts-card>.ch .sp{flex:1}.ts-card>.ch small{font-weight:600;color:var(--e-mt);font-size:11px}
.ts-card>.cb{padding:14px 16px}
.c-purple{--cc:#8b5cf6}.c-pink{--cc:#ec4899}.c-blue{--cc:#3b82f6}.c-green{--cc:#10b981}.c-orange{--cc:#f97316}.c-cyan{--cc:#06b6d4}

/* buttons + badges */
.ts-btn{border:0;border-radius:8px;padding:8px 14px;font-weight:700;font-size:12.5px;display:inline-flex;align-items:center;gap:7px;justify-content:center;background:var(--e-g1);color:#fff!important;box-shadow:0 4px 14px rgba(139,92,246,.4);transition:transform .15s,box-shadow .15s;white-space:nowrap}
.ts-btn:hover,.ts-btn:focus-visible{transform:translateY(-2px);box-shadow:0 8px 22px rgba(236,72,153,.45);outline:none}
.ts-btn.ghost{background:var(--e-s2);color:var(--e-tx)!important;border:1px solid var(--e-bd);box-shadow:none}
.ts-btn.ghost:focus-visible{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.3)}
.ts-btn.amber{background:linear-gradient(135deg,#f97316,#facc15);box-shadow:0 4px 14px rgba(249,115,22,.35)}
.ts-btn.sm{padding:6px 11px;font-size:11.5px}.ts-btn.big{padding:11px 18px;font-size:14px;width:100%}
.ts-btn[disabled]{opacity:.45;transform:none;box-shadow:none;cursor:not-allowed}
.ts-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:5px;font-size:10px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;background:color-mix(in srgb,var(--bc) 18%,transparent);color:color-mix(in srgb,var(--bc) 85%,var(--e-tx));white-space:nowrap}
.b-open{--bc:#10b981}.b-school{--bc:#8b5cf6}.b-resume{--bc:#f97316}.b-done{--bc:#3b82f6}.b-closed{--bc:#94a3b8}

/* test tiles, tinted by status */
.ts-tests{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:10px}
.ts-tt{--g:#10b981;background:linear-gradient(135deg,color-mix(in srgb,var(--g) 16%,var(--e-s2)),color-mix(in srgb,var(--g) 5%,var(--e-s2)));border:1px solid color-mix(in srgb,var(--g) 35%,transparent);border-left:4px solid var(--g);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:9px;transition:transform .15s,box-shadow .15s;min-width:0}
.ts-tt:hover{transform:translateY(-1px);box-shadow:0 8px 18px -10px var(--g)}
.ts-tt .top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.ts-tt h3{font-size:14px;font-weight:700;line-height:1.3;margin:0}
.ts-tt .kind{font-size:11px;color:var(--e-mt);margin-top:2px}
.ts-chips{display:flex;flex-wrap:wrap;gap:5px}
.ts-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:12px;background:color-mix(in srgb,var(--g,#8b5cf6) 12%,transparent);color:var(--e-tx)}
.ts-chip i{color:color-mix(in srgb,var(--g,#8b5cf6) 85%,var(--e-tx));font-size:10px}
.ts-tt .foot{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11.5px;color:var(--e-mt);padding:0;text-align:left}
.ts-tt .foot b{color:var(--e-tx)}
.ts-mbar{height:6px;border-radius:6px;background:color-mix(in srgb,var(--g,#8b5cf6) 15%,var(--e-s3));overflow:hidden;flex:1;min-width:40px}
.ts-mbar i{display:block;height:100%;background:var(--g,#8b5cf6);border-radius:6px}
.ts-scoreln{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}
.ts-bigpct{font-size:22px;font-weight:800;color:color-mix(in srgb,var(--g) 85%,var(--e-tx))}
.ts-empty{text-align:center;color:var(--e-mt);padding:28px 10px;font-size:13px}
.ts-empty i{font-size:28px;display:block;margin-bottom:8px;color:var(--e-purple)}

/* gradient header (student / test / score) */
.ts-hero{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:linear-gradient(135deg,var(--hc1,#2563eb),var(--hc2,#7c3aed));color:#fff;border-radius:12px;padding:14px 18px;margin-bottom:14px;box-shadow:0 10px 26px -14px var(--hc1,#2563eb)}
.ts-hero .av{width:56px;height:56px;border-radius:50%;border:3px solid rgba(255,255,255,.85);background:rgba(255,255,255,.15);display:grid;place-items:center;font-size:28px;flex:none}
.ts-hero h2{font-size:18px;font-weight:800;margin:0}.ts-hero p{font-size:12px;opacity:.88;margin:0}
.ts-hero .meta{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.ts-hero .meta div{background:rgba(0,0,0,.16);border-radius:8px;padding:5px 10px;font-size:11px}
.ts-hero .meta span{display:block;opacity:.8;font-size:9.5px;text-transform:uppercase;letter-spacing:.4px;font-weight:700}
.ts-hero .meta b{font-size:13px}
.ts-ring{width:96px;height:96px;flex:none}

/* instructions */
.ts-two{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;align-items:start}
.ts-rules{list-style:none;display:flex;flex-direction:column;gap:8px;margin:0;padding:0}
.ts-rules li{display:flex;gap:10px;align-items:flex-start;font-size:13px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--cc,#8b5cf6) 6%,transparent)}
.ts-rules li i{width:24px;height:24px;flex:none;border-radius:6px;display:grid;place-items:center;font-size:11px;color:#fff;background:linear-gradient(135deg,var(--k1),var(--k2))}
.ts-legend{display:flex;flex-direction:column;gap:8px;font-size:13px}
.ts-legend div{display:flex;align-items:center;gap:10px}
.ts-legend .p{width:30px;flex:none;display:grid;place-items:center}
.ts-agree{display:flex;gap:8px;align-items:center;margin:12px 0;font-size:13px;font-weight:600;cursor:pointer}
.ts-agree input{width:18px;height:18px;accent-color:#8b5cf6;padding:0;margin:0}
.ts-qopts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}

/* exam */
.ts-xbar{position:sticky;top:6px;z-index:10}
.ts-timer{display:inline-flex;align-items:center;gap:7px;font-variant-numeric:tabular-nums;font-weight:800;font-size:17px;background:rgba(0,0,0,.22);border-radius:8px;padding:5px 12px}
.ts-timer.low{background:#f43f5e;animation:ts-pulse 1s infinite}
@keyframes ts-pulse{50%{box-shadow:0 0 0 4px rgba(244,63,94,.35)}}
.ts-xprog{height:5px;border-radius:5px;background:var(--e-s3);overflow:hidden;margin:-6px 0 14px}
.ts-xprog i{display:block;height:100%;background:var(--e-hero);transition:width .3s}
.ts-exam{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}
.ts-qno{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ts-qno .n{font-size:12px;font-weight:800;color:#fff;background:var(--e-g1);border-radius:6px;padding:3px 9px}
.ts-qno .mk{margin-left:auto;font-size:11px;color:var(--e-mt)}
.ts-qno .mk b.p{color:var(--e-green)}.ts-qno .mk b.m{color:var(--e-red)}
.ts-qpic{font-size:48px;text-align:center;margin-top:10px;line-height:1.2}
.ts-qtext{font-size:16px;font-weight:500;line-height:1.6;margin:12px 0 14px;white-space:pre-wrap}
.ts-opts{display:grid;gap:8px}
.ts-opt{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--e-bd);background:var(--e-s2);border-radius:10px;padding:11px 12px;font-size:14px;transition:all .15s;width:100%}
.ts-opt:hover,.ts-opt:focus-visible{border-color:#8b5cf6;transform:translateX(2px);outline:none}
.ts-opt .l{width:30px;height:30px;flex:none;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:12px;background:var(--e-s3);color:var(--e-mt)}
.ts-opt.sel{border-color:transparent;background:linear-gradient(135deg,color-mix(in srgb,#8b5cf6 22%,var(--e-s2)),color-mix(in srgb,#ec4899 12%,var(--e-s2)));box-shadow:0 0 0 2px #8b5cf6 inset}
.ts-opt.sel .l{background:var(--e-g1);color:#fff}
.ts-qnav{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--e-bd)}
.ts-qnav .sp{flex:1}
.ts-pal{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;max-height:320px;overflow-y:auto;padding:4px}
.ts .p{aspect-ratio:1;border-radius:8px;border:1px solid var(--e-bd);background:var(--e-s2);font-weight:800;font-size:12px;color:var(--e-mt);position:relative;padding:0}
.ts .p.a{background:linear-gradient(135deg,#10b981,#14b8a6);color:#fff;border:0}
.ts .p.n{background:color-mix(in srgb,#f43f5e 20%,var(--e-s2));color:var(--e-red);border-color:color-mix(in srgb,#f43f5e 45%,transparent)}
.ts .p.m,.ts .p.am{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;border:0;border-radius:50%}
.ts .p.am::after{content:"";position:absolute;right:-2px;bottom:-2px;width:10px;height:10px;border-radius:50%;background:#10b981;border:2px solid var(--e-s1)}
.ts .p.cur{box-shadow:0 0 0 2px var(--e-s1),0 0 0 4px #ec4899}
.ts-sum{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px}
.ts-sum div{display:flex;align-items:center;gap:7px;font-size:11.5px;padding:6px 8px;border-radius:8px;background:var(--e-s2)}
.ts-sum b{margin-left:auto;font-size:13px}
.ts-sw{width:14px;height:14px;border-radius:4px;flex:none}
.ts-who{display:flex;gap:10px;align-items:center;padding:10px;border-radius:10px;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;margin-bottom:12px}
.ts-who span{font-size:24px}.ts-who small{display:block;opacity:.85;font-size:11px}
.ts-keys{font-size:11px;color:var(--e-mt);margin-top:10px;text-align:center}

/* result */
.ts-res{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:14px;align-items:start}
.ts-res.one{grid-template-columns:1fr}
.ts-cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(170px,100%),1fr));gap:8px}
.ts-ctile{--g:#22c55e;background:linear-gradient(135deg,color-mix(in srgb,var(--g) 16%,var(--e-s2)),color-mix(in srgb,var(--g) 6%,var(--e-s2)));border:1px solid color-mix(in srgb,var(--g) 35%,transparent);border-left:4px solid var(--g);border-radius:10px;padding:10px 12px;position:relative;min-width:0}
.ts-ctile .gr{position:absolute;top:9px;right:10px;font-size:10px;font-weight:800;padding:2px 7px;border-radius:5px;background:var(--g);color:#fff}
.ts-ctile .nm{font-size:12.5px;font-weight:600;padding-right:34px}
.ts-ctile .pc{font-size:20px;font-weight:800;color:color-mix(in srgb,var(--g) 85%,var(--e-tx))}
.ts-ctile .sb{font-size:10.5px;color:var(--e-mt)}
.ts-ctile button{margin-top:6px}
.g-ap{--g:#22c55e}.g-a{--g:#3b82f6}.g-b{--g:#eab308}.g-c{--g:#f97316}.g-d{--g:#ef4444}
.ts-bands{display:flex;flex-wrap:wrap;gap:6px;font-size:11px;font-weight:700;margin-bottom:10px;align-items:center}
.ts-bands .lb{color:var(--e-mt);font-weight:600}
.ts-bands .b{display:inline-flex;gap:5px;align-items:center;padding:3px 10px;border-radius:12px;color:#fff;background:var(--bc)}
.ts-bands .b em{font-style:normal;font-weight:900}
.ts-tip{margin-top:10px;font-size:12px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,#f97316 12%,transparent)}
.ts-tip i{color:#f97316}
.ts-lead{width:100%;border-collapse:collapse;font-size:12.5px}
.ts-lead th{text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:7px 9px;background:color-mix(in srgb,var(--cc) 14%,transparent);color:color-mix(in srgb,var(--cc) 80%,var(--e-tx));border-bottom:2px solid color-mix(in srgb,var(--cc) 35%,transparent)}
.ts-lead td{padding:8px 9px;border-bottom:1px solid var(--e-bd)}
.ts-lead tr:nth-child(even) td{background:color-mix(in srgb,var(--cc) 5%,transparent)}
.ts-lead tr.m1 td{background:color-mix(in srgb,#f59e0b 14%,transparent)}
.ts-lead tr.m2 td{background:color-mix(in srgb,#94a3b8 14%,transparent)}
.ts-lead tr.m3 td{background:color-mix(in srgb,#b45309 12%,transparent)}
.ts-lead tr.you td{background:color-mix(in srgb,#8b5cf6 22%,transparent);font-weight:700}
.ts-lead tr.gap td{text-align:center;color:var(--e-mt);padding:2px}
.ts-rv{border-radius:10px;padding:12px 14px;margin-top:10px;background:var(--e-s2);border-left:4px solid var(--rc,#f43f5e)}
.ts-rv.ok{--rc:#10b981}.ts-rv.skip{--rc:#94a3b8}
.ts-rv .rh{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--e-mt);margin-bottom:6px}
.ts-rv .rh b{color:var(--e-tx);font-size:12px}
.ts-rv p{font-size:14px;font-weight:500;margin:0 0 8px;white-space:pre-wrap}
.ts-ra{display:flex;gap:8px;align-items:center;font-size:13px;padding:6px 10px;border-radius:7px;margin-top:5px;font-weight:600}
.ts-ra.your{background:color-mix(in srgb,#f43f5e 15%,transparent);color:var(--e-red)}
.ts-ra.right{background:color-mix(in srgb,#10b981 15%,transparent);color:var(--e-green)}
.ts-ra.none{background:color-mix(in srgb,#94a3b8 15%,transparent);color:var(--e-mt)}
.ts-rv .ex{font-size:12.5px;color:var(--e-mt);margin-top:8px;padding:7px 10px;border-radius:7px;background:color-mix(in srgb,#06b6d4 8%,transparent)}
.ts-rv .ex i{color:var(--e-blue)}

/* confirm dialog */
.ts-modal{position:fixed;inset:0;z-index:80;background:rgba(5,3,15,.65);display:grid;place-items:center;padding:16px}
.ts-modal[hidden]{display:none}
.ts-modal .box{background:var(--e-s1);color:var(--e-tx);border:1px solid var(--e-bd);border-top:3px solid #ec4899;border-radius:var(--e-r);max-width:420px;width:100%;padding:18px;box-shadow:var(--e-shadow);font-family:'Inter',system-ui,sans-serif;font-size:14px}
.ts-modal h3{font-size:16px;margin:0 0 8px;display:flex;gap:8px;align-items:center}
.ts-modal p{color:var(--e-mt);margin:0 0 14px}
.ts-modal .row{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}

@media (max-width:1280px){.ts-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:900px){.ts-exam,.ts-two,.ts-res{grid-template-columns:1fr}.ts-hero .meta{margin-left:0}}
@media (max-width:640px){
  .ts-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ts-pal{grid-template-columns:repeat(8,1fr)}
  .ts-bar h1{font-size:15px}.ts-qtext{font-size:15px}
  .ts-bar .hide-s{display:none}
  .ts-card>.cb{padding:12px}
}
@media print{
  html.erp body::before{display:none}
  .ts-bar .ts-tbtn,.ts-bar .ts-theme,.ts-tabs{display:none!important}
  .ts-card,.ts-tile,.ts-hero{break-inside:avoid;box-shadow:none}
}

/* small extras */
.ts-lbl{font-size:12px;font-weight:600;color:var(--e-mt);display:inline-flex;gap:8px;align-items:center;min-width:72px}
.ts-scroll{overflow-x:auto}
.ts-tabs{display:flex;gap:5px;flex-wrap:wrap}
.ts-legend .p{display:grid;place-items:center;width:30px;height:30px}
.ts-rules li i{font-style:normal;font-weight:800}
.ts-ctile button.ts-btn{color:var(--e-tx)!important}
@media print{
  html.erp{--e-bg:#fff;--e-s1:#fff;--e-s2:#f6f3ff;--e-s3:#ede8ff;--e-tx:#1e1145;--e-mt:#5b4a91;--e-dm:#8b7cc0;--e-green:#059669;--e-red:#e11d48;--e-blue:#0284c7;--e-shadow:none;color-scheme:light}
  .ts-xbar{position:static}
}
.ts small{color:inherit}.ts-bar small{opacity:.9}

/* ===== test series plus: insights on the hub, mistakes practice, board sections, fair play, family ===== */
.ts-ins{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.ts-mist{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;background:linear-gradient(135deg,color-mix(in srgb,#f43f5e 16%,transparent),color-mix(in srgb,#f97316 10%,transparent));border:1px solid color-mix(in srgb,#f43f5e 35%,transparent)}
.ts-mist .ic{width:44px;height:44px;flex:none;border-radius:12px;display:grid;place-items:center;color:#fff;font-size:18px;background:linear-gradient(135deg,#f43f5e,#f97316)}
.ts-mist .tx{flex:1;min-width:0}.ts-mist .tx b{font-size:20px;font-weight:800}.ts-mist small{display:block;color:var(--e-mt);font-size:11.5px}
.ts-dots,.ts-dkey{display:flex;gap:4px;align-items:center}.ts-dots{margin-top:7px}
.ts-dots i,.ts-dkey i{width:16px;height:6px;border-radius:3px;background:var(--e-s3)}.ts-dots i.g,.ts-dkey i.g{background:#10b981}.ts-dots i.h,.ts-dkey i.h{background:#f59e0b}
.ts-dkey{margin-top:8px;font-size:11px;color:var(--e-mt);flex-wrap:wrap}.ts-dkey i{margin-left:6px}.ts-dkey i:first-child{margin-left:0}
.ts-bars{display:grid;gap:8px}
.ts-barrow{display:grid;grid-template-columns:minmax(0,1fr) 34% 40px;gap:10px;align-items:center;font-size:12.5px}
.ts-barrow .nm{display:flex;align-items:center;gap:6px;min-width:0}.ts-barrow .nm span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ts-barrow .tr{height:8px;border-radius:4px;background:var(--e-s3);overflow:hidden}.ts-barrow .tr i{display:block;height:100%;border-radius:4px}
.ts-barrow b{text-align:right;font-variant-numeric:tabular-nums}
.ts-band{font-style:normal;font-size:10px;font-weight:700;padding:1px 7px;border-radius:999px;flex:none}
.ts-band.st{background:color-mix(in srgb,#10b981 16%,transparent);color:var(--e-green)}
.ts-band.ok{background:color-mix(in srgb,#f59e0b 18%,transparent);color:#d97706}
.ts-band.wk{background:color-mix(in srgb,#f43f5e 16%,transparent);color:var(--e-red)}
.ts-strf{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:11px;color:var(--e-mt)}
.ts-lg{display:flex;gap:14px;font-size:11.5px;color:var(--e-mt);margin-bottom:4px}.ts-lg span{display:flex;align-items:center;gap:6px}.ts-lg i{width:14px;height:3px;border-radius:2px}
.ts-chart{position:relative}.ts-chart svg{width:100%;height:auto;max-height:230px;display:block}
.ts-chart .gl line{stroke:var(--e-bd);stroke-width:1}.ts-chart text{fill:var(--e-mt);font-size:9.5px;font-family:inherit}.ts-chart text.lv{fill:var(--e-tx);font-weight:800;font-size:11px}
.ts-chart .dot{stroke:var(--e-s1);stroke-width:2}.ts-chart .hit{fill:transparent;cursor:pointer}
.ts-ctip{position:absolute;top:0;pointer-events:none;background:var(--e-s2);border:1px solid var(--e-bd);border-radius:8px;padding:6px 9px;font-size:11px;display:grid;gap:2px;box-shadow:var(--e-shadow);max-width:200px}
.ts-ctip span{display:flex;align-items:center;gap:5px;color:var(--e-mt)}.ts-ctip i{width:10px;height:3px;border-radius:2px}
.ts-streak{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;margin-bottom:10px;background:linear-gradient(135deg,color-mix(in srgb,#f97316 18%,transparent),color-mix(in srgb,#ec4899 12%,transparent))}
.ts-streak .f{font-size:28px}.ts-streak .tx{min-width:0}.ts-streak small{display:block;color:var(--e-mt);font-size:11px}
.ts-streak .wk{display:flex;gap:4px;margin-left:auto}.ts-streak .wk i{width:21px;height:21px;border-radius:6px;background:var(--e-s3);font-style:normal;font-size:10px;font-weight:700;display:grid;place-items:center;color:var(--e-mt)}
.ts-streak .wk i.y{background:#f97316;color:#fff}
.ts-badges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.ts-badges .bd{text-align:center;padding:8px 4px;border-radius:10px;background:var(--e-s2);border:1px solid var(--e-bd);min-width:0}
.ts-badges .e{font-size:24px;line-height:1.2}.ts-badges b{display:block;font-size:11px;margin-top:3px}.ts-badges span{display:block;font-size:10px;color:var(--e-mt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ts-badges .bd.off{opacity:.42;filter:grayscale(1)}
.ts-chip.hot{--g:#f97316;font-weight:700}
/* practice my mistakes */
.ts-fix{max-width:780px;margin:0 auto}
.ts-opt.good{border-color:transparent;box-shadow:0 0 0 2px #10b981 inset;background:color-mix(in srgb,#10b981 14%,var(--e-s2))}.ts-opt.good .l{background:#10b981;color:#fff}
.ts-opt.bad{border-color:transparent;box-shadow:0 0 0 2px #f43f5e inset;background:color-mix(in srgb,#f43f5e 12%,var(--e-s2))}.ts-opt.bad .l{background:#f43f5e;color:#fff}
.ts-opt[disabled]{cursor:default;transform:none}
.ts-fxres{margin-top:12px;padding:10px 12px;border-radius:10px;font-size:13px}
.ts-fxres.ok{background:color-mix(in srgb,#10b981 14%,transparent)}.ts-fxres.ok>i{color:var(--e-green)}
.ts-fxres.no{background:color-mix(in srgb,#f43f5e 12%,transparent)}.ts-fxres.no>i{color:var(--e-red)}
.ts-fxres .ex{margin-top:6px;color:var(--e-mt)}.ts-fxres .ex i{color:#f59e0b}
.ts-fxdone{text-align:center;padding:12px 0}.ts-fxdone .big{font-size:46px}.ts-fxdone h2{font-size:20px;margin:4px 0}.ts-fxdone p{color:var(--e-mt)}
.ts-fxdone .ts-qnav{justify-content:center;margin-top:14px}
/* board sections + fair play in the exam */
.ts-secs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}
.ts-secs button{border:1px solid var(--e-bd);background:var(--e-s2);border-radius:9px;padding:6px 4px;text-align:center}
.ts-secs button b{display:block;font-size:15px}.ts-secs button span{font-size:10.5px;color:var(--e-mt)}
.ts-secs button.on{border-color:transparent;background:var(--e-g1);color:#fff}.ts-secs button.on span{color:rgba(255,255,255,.85)}
.ts-pal .ps{grid-column:1/-1;font-size:11px;font-weight:700;color:var(--e-mt);margin-top:4px}
.ts-pal .ps:first-child{margin-top:0}
.ts-warn{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;margin-bottom:12px;border-radius:10px;font-size:12.5px;background:color-mix(in srgb,#f59e0b 14%,transparent);border:1px solid color-mix(in srgb,#f59e0b 45%,transparent)}
.ts-warn>i{color:#f59e0b;font-size:16px;margin-top:2px}
/* family */
.ts-kids{display:grid;gap:10px}
.ts-kid{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border-radius:12px;background:var(--e-s2);border:1px solid var(--e-bd)}
.ts-kid .av{width:46px;height:46px;border-radius:50%;background:var(--e-s3);display:grid;place-items:center;font-size:24px;overflow:hidden}.ts-kid .av img{width:100%;height:100%;object-fit:cover}
.ts-kid .tx small{display:block;color:var(--e-mt);font-size:12px;margin-top:2px}.ts-kid .tx small b{color:var(--e-tx)}
.ts-kid .pc{font-size:22px;font-weight:800;text-align:right}.ts-kid .pc span{display:block;font-size:10.5px;font-weight:600;color:var(--e-mt)}
.ts-note{font-size:12px;color:var(--e-mt);text-align:center;margin:4px 0 14px}
@media (max-width:900px){.ts-ins{grid-template-columns:1fr}}
@media (max-width:420px){.ts-badges{grid-template-columns:repeat(2,minmax(0,1fr))}.ts-barrow{grid-template-columns:minmax(0,1fr) 26% 36px}.ts-kid{grid-template-columns:40px minmax(0,1fr) auto}.ts-streak .wk i{width:17px;height:17px}}
/* new question types */
.ts-qpic .qk-img{max-height:260px}
.ts-qtext .qk-q{white-space:pre-wrap}
.ts-qtext .qk-psg,.ts-rvq .qk-psg{font-size:14px}
.ts-rvq{margin:4px 0 8px}.ts-rvq .qk-q{font-weight:500}
#tOpts .qk-in,#fxOpts .qk-in{grid-column:1/-1}
