
:root{--sky:#89ACFE;--sky-2:#B9CDFE;--pale:#EEF3FF;--navy:#2C5595;--ink:#16213A;--muted:#5B6782;--line:#DCE4F5;--green:#1F9D6B;--greenbg:#E6F6EF;--gold:#F5A623;--radius:18px}
*{box-sizing:border-box}
body{margin:0;font-family:Nunito,system-ui,sans-serif;color:var(--ink);background:#F6F8FD;font-size:17px;line-height:1.5}
.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
aside{background:var(--navy);color:#fff;padding:22px 16px;display:flex;flex-direction:column;gap:6px}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:17px;margin:0 6px 22px}
.brand img{width:44px;height:44px;background:#fff;border-radius:50%}
.school{background:rgba(255,255,255,.1);border-radius:14px;padding:12px 14px;margin-bottom:14px}
.school small{display:block;color:var(--sky-2);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.6px}
.school b{font-size:16px}
aside a{color:#DDE6FF;text-decoration:none;font-weight:700;padding:11px 14px;border-radius:12px;display:flex;align-items:center;gap:10px}
aside a.on,aside a:hover{background:#fff;color:var(--navy)}
aside .sp{margin-top:auto;font-size:14px;color:var(--sky-2);padding:0 14px}
main{padding:28px 36px 60px;max-width:1000px}
.top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:22px}
h1{margin:0;font-size:32px;color:var(--navy);font-weight:900;letter-spacing:-.5px}
.pill{background:var(--greenbg);color:var(--green);font-weight:800;font-size:14px;padding:6px 12px;border-radius:999px}
.bar{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;display:flex;gap:14px;flex-wrap:wrap;align-items:end;margin-bottom:18px}
label{display:block;font-size:13px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px}
select{font:inherit;font-weight:700;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;min-width:190px}
.format{margin-left:auto;display:flex;align-items:center;gap:10px;font-weight:700;color:var(--muted)}
.tog{display:inline-flex;background:var(--pale);border-radius:999px;padding:4px}
.tog button{border:0;background:none;font:inherit;font-weight:800;font-size:14px;padding:7px 14px;border-radius:999px;color:var(--muted);cursor:pointer}
.tog button.on{background:#fff;color:var(--navy);box-shadow:0 2px 6px rgba(22,33,58,.1)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.stat small{color:var(--muted);font-weight:700;font-size:14px}
.stat b{display:block;font-size:28px;color:var(--navy);font-weight:900;line-height:1.2}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
table{width:100%;border-collapse:collapse}
th{background:var(--pale);text-align:left;font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:11px 16px}
td{padding:10px 16px;border-top:1px solid var(--line);font-weight:600}
.num{text-align:right;font-variant-numeric:tabular-nums}
.name b{font-weight:800}
.best{color:var(--navy);font-weight:900}
.counts[hidden]{display:none}
.counts{display:inline-block;background:var(--pale);color:var(--navy);font-size:12px;font-weight:800;padding:2px 8px;border-radius:999px;margin-left:6px}
input[type=number]{width:110px;font:inherit;font-weight:800;font-size:18px;text-align:right;border:2px solid var(--line);border-radius:12px;padding:8px 12px;color:var(--ink)}
input[type=number]:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 4px var(--pale)}
input.filled{border-color:var(--sky);background:#F8FAFF}
.pb{color:var(--green);font-weight:800;font-size:14px;visibility:hidden}
.pb.show{visibility:visible}
.foot{display:flex;align-items:center;gap:14px;padding:16px;border-top:1px solid var(--line);background:#FBFCFF;flex-wrap:wrap}
.btn{border:0;border-radius:999px;padding:13px 26px;font:inherit;font-weight:900;cursor:pointer}
.btn-primary{background:var(--navy);color:#fff}
.btn-light{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 2px var(--line)}
.hint{color:var(--muted);font-size:15px}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120px);background:var(--green);color:#fff;font-weight:800;padding:14px 22px;border-radius:14px;opacity:0;pointer-events:none;transition:transform .25s ease,opacity .25s ease;z-index:50}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1}
@media (max-width:860px){
  .app{grid-template-columns:minmax(0,1fr)}
  aside,main{min-width:0}
  aside{flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px}
  .brand{margin:0 auto 0 0}.brand span,.school,aside .sp{display:none}
  aside a{padding:8px 12px;font-size:15px}
  main{padding:20px 16px 60px}
  .format{margin-left:0}
  .stats{grid-template-columns:1fr 1fr 1fr}.stat b{font-size:22px}
  .hide-sm{display:none}
  input[type=number]{width:90px}
  td,th{padding:10px}
}

.cols{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}
.teams{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px}
.t{display:block;width:100%;text-align:left;border:0;background:none;font:inherit;padding:12px 14px;border-radius:12px;cursor:pointer}
.t b{display:block;color:var(--ink)}
.t small{color:var(--muted);font-weight:700;font-size:14px}
.t.on{background:var(--pale)}
.t.on b{color:var(--navy)}
.addteam{margin:8px 4px 4px;width:calc(100% - 8px)}
.head{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:16px 18px;border-bottom:1px solid var(--line)}
.head h2{margin:0;font-size:22px;color:var(--navy)}
.head .format{margin-left:auto}
.paste{padding:18px;border-bottom:1px solid var(--line);background:#FBFCFF}
.paste h3{margin:0 0 4px;font-size:18px;color:var(--navy)}
.paste p{margin:0 0 10px;color:var(--muted);font-size:15px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
textarea{width:100%;min-height:190px;font:inherit;font-size:16px;border:2px solid var(--line);border-radius:14px;padding:12px;resize:vertical}
textarea:focus{outline:none;border-color:var(--sky)}
.chips{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;min-height:190px;border:2px dashed var(--line);border-radius:14px;padding:12px}
.chip{background:var(--pale);color:var(--navy);font-weight:800;padding:6px 12px;border-radius:999px;font-size:15px}
.chip.dup{background:#FFF4DB;color:#8A5A00}
.empty{color:var(--muted);font-size:15px}
.ctrls{display:flex;gap:12px;align-items:end;margin-top:12px;flex-wrap:wrap}
.warn{color:#8A5A00;font-weight:700;font-size:14px}
.txt{font:inherit;font-weight:700;border:2px solid var(--line);border-radius:12px;padding:9px 12px;width:200px}
.txt:focus{outline:none;border-color:var(--sky)}
.txt.ini{width:90px;text-align:center;text-transform:uppercase}
[hidden]{display:none!important}
.x{border:0;background:none;color:var(--muted);font:inherit;font-weight:800;cursor:pointer;padding:6px 10px;border-radius:10px}
.x:hover{background:#FDECEC;color:#B42318}
.mv{font-size:14px;min-width:0;padding:6px 8px}
@media (max-width:860px){.cols{grid-template-columns:1fr}.row{grid-template-columns:1fr}}

/* shared app extras */
[hidden]{display:none!important}
aside button.linkish{background:none;border:0;font:inherit;color:#DDE6FF;font-weight:700;padding:11px 14px;border-radius:12px;text-align:left;cursor:pointer}
aside button.linkish:hover{background:rgba(255,255,255,.12)}
aside select{width:100%;margin-top:6px;min-width:0;font-size:14px}
.view{display:none}.view.on{display:block}
.notice{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;text-align:center}
.notice h2{margin:6px 0 8px;color:var(--navy);display:block}
.notice p{color:var(--muted);margin:0 auto;max-width:520px}
.notice .big{font-size:40px}
.empty{color:var(--muted);text-align:center;padding:28px 16px;font-weight:700}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.tcard h3{margin:0;color:var(--navy);font-size:19px}
.tcard .meta{color:var(--muted);font-weight:700;font-size:14px}
.tcard .nums{display:flex;gap:22px;margin-top:12px}
.tcard .nums b{display:block;font-size:24px;color:var(--navy);font-weight:900}
.tcard .nums small{color:var(--muted);font-weight:700;font-size:13px}
.inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:end;padding:14px}
.danger{color:#B42318}
.small-btn{border:0;background:var(--pale);color:var(--navy);font:inherit;font-weight:800;font-size:14px;border-radius:10px;padding:7px 12px;cursor:pointer}
.small-btn.danger{background:#FDECEC;color:#B42318}
.link-box{background:var(--pale);border-radius:12px;padding:10px 14px;font-weight:700;color:var(--navy);word-break:break-all}
@media (max-width:860px){.grid2{grid-template-columns:1fr}}
/* skipping nicknames + surname letters */
.nick{display:inline-block;font-weight:800;font-style:italic;color:#8A5A00;background:#FFF4DB;border-radius:999px;padding:0 9px;font-size:.9em;margin-left:2px}
.chip .nick{background:#fff;padding:0 7px}
.chip.more{background:var(--greenbg);color:var(--green)}
.opt{text-transform:none;letter-spacing:0;font-weight:700;opacity:.8}
.nk-btn{display:block;font-size:13px;margin:2px 0 0 -10px;padding:2px 10px;white-space:nowrap}
#pList td:nth-child(2),#uList td:nth-child(2){white-space:nowrap}
.nk-btn:hover{background:var(--pale);color:var(--navy)}
.tcard .nums .lbl{align-self:center;font-weight:900;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.5px;min-width:52px}
.tcard .nums + .nums{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}

/* pupil progress */
.pname{border:0;background:none;font:inherit;font-weight:800;color:var(--ink);padding:0;cursor:pointer;text-align:left;border-bottom:2px dotted var(--sky-2)}
.pname:hover{color:var(--navy);border-bottom-color:var(--navy)}
#pp{border:0;border-radius:22px;padding:24px;width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 32px);color:var(--ink);background:#F6F8FD;box-shadow:0 20px 60px rgba(22,33,58,.3)}
#pp::backdrop{background:rgba(22,33,58,.45)}
.pp-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:14px}
.pp-head h2{margin:0;font-size:26px;color:var(--navy);font-weight:900}
.pp-head .meta{color:var(--muted);font-weight:700}
.pp-actions{display:flex;gap:8px;align-items:center}
.pp-close{border:0;background:#fff;box-shadow:inset 0 0 0 2px var(--line);width:38px;height:38px;border-radius:50%;font-size:24px;line-height:1;color:var(--navy);cursor:pointer}
.pp-ctrls{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.pp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}
.pp-stats .stat{padding:12px 14px}.pp-stats .stat b{font-size:26px}
.pp-say{margin:0 0 12px;font-weight:700;color:var(--ink)}
.pp-say b{color:var(--green)}
.pp-chart{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin-bottom:12px}
.pp-chart:empty{display:none}
.pp-chart svg{display:block;width:100%;height:auto;font-family:Nunito,system-ui,sans-serif}
.pp-chart .gl{stroke:var(--line);stroke-width:1}
.pp-chart .yl{font-size:12px;fill:var(--muted);text-anchor:end;font-weight:700}
.pp-chart .xl{font-size:13px;fill:var(--ink);text-anchor:middle;font-weight:800}
.pp-chart .xl.fut{fill:#A9B3C8;font-weight:700}
.pp-chart .ln{fill:none;stroke:var(--navy);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.pp-chart .dot{fill:#fff;stroke:var(--navy);stroke-width:3}
.pp-chart .vl{font-size:13px;fill:var(--navy);text-anchor:middle;font-weight:900}
.up{color:var(--green);font-weight:900}.down{color:#B42318;font-weight:800}.same,.muted{color:var(--muted);font-weight:700}
#ppRows td.num{white-space:nowrap}
#pp td,#pp th{padding:10px 12px}
#pp .nw{white-space:nowrap}
.rn-short{display:none}
@media (max-width:560px){.rn-full{display:none}.rn-short{display:inline}#pp td,#pp th{padding:9px 8px;font-size:15px}#pp th{font-size:12px}}
.pbtag{display:inline-block;background:#FFF4DB;color:#8A5A00;font-size:12px;font-weight:900;padding:1px 7px;border-radius:999px;margin-left:4px}
#ppRows tr.fut td{color:#A9B3C8}
@media (max-width:860px){#pp{padding:16px}.pp-head h2{font-size:22px}.pp-stats{gap:8px}.pp-stats .stat{padding:10px}.pp-stats .stat small{font-size:12px;line-height:1.2;display:block}.pp-stats .stat b{font-size:20px}.pp-chart{padding:6px}}
@media print{
  body:has(#pp[open]) .app{display:none}
  #pp[open]{position:static;box-shadow:none;max-height:none;width:auto;background:#fff;padding:0}
  #pp::backdrop{display:none}
  .pp-actions,.pp-ctrls select{display:none}
}

.brand .brand-name{color:inherit;text-decoration:none}
.logo-link{display:inline-block;line-height:0;border-radius:50%;cursor:pointer;transition:transform .2s ease,filter .2s ease}
.logo-link:hover{transform:scale(1.06) rotate(-4deg);filter:drop-shadow(0 4px 12px rgba(44,85,149,.35))}
@media (max-width:860px){aside .brand a:not(.logo-link){display:none}}

/* score checks + edit saved scores */
input[type=number].high{border-color:#E0A100;background:#FFF8E6}
.hi{display:none;color:#8A5A00;background:#FFF4DB;font-weight:900;font-size:13px;padding:2px 8px;border-radius:999px;white-space:nowrap}
.hi.show{display:inline-block}
.checkbar{flex-basis:100%;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;background:#FFF4DB;border:2px solid #F5A623;border-radius:14px;padding:12px 14px;color:#5C3D00}
.checkbar b{flex-basis:100%}
.checkbar .cb-btns{display:flex;gap:8px;margin-left:auto}
.btn.sm{padding:9px 16px;font-size:15px}
.edit-att{border:0;background:none;font:inherit;font-size:13px;font-weight:800;color:var(--muted);cursor:pointer;padding:2px 6px;border-radius:8px;margin-left:2px}
.edit-att:hover{background:var(--pale);color:var(--navy)}
#att{border:0;border-radius:22px;padding:24px;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 32px);color:var(--ink);background:#F6F8FD;box-shadow:0 20px 60px rgba(22,33,58,.3)}
#att::backdrop{background:rgba(22,33,58,.45)}
#att td,#att th{padding:10px 12px}
#att input[type=number]{width:90px}
.att-btns{white-space:nowrap}
.del-q{font-weight:800;color:#B42318;margin-right:4px}
@media (max-width:560px){#att{padding:16px}#att td,#att th{padding:8px 6px;font-size:15px}.att-btns .small-btn{padding:6px 8px}}

/* counting rule */
.rulebar{background:var(--pale);border:1px solid var(--line);border-radius:14px;padding:10px 16px;margin:-6px 0 18px;font-weight:700;color:var(--navy);font-size:15px}

/* class average */
.avg-note{margin:-6px 2px 12px;font-size:14px}
@media (max-width:860px){.app{grid-template-rows:auto 1fr}aside{align-content:flex-start;row-gap:4px}}

/* improvement line on dashboard */
.imp-line{margin-top:10px;font-weight:800;font-size:14px;border-radius:10px;padding:6px 10px;background:var(--greenbg);color:var(--green)}
.imp-line.down{background:#FDECEC;color:#B42318}
.lg-sel{min-width:0;padding:6px 8px;font-size:14px;max-width:150px}
/* awards & badges (v12) */
.gain-up{color:var(--green);font-weight:900}.muted{color:var(--muted);font-weight:700}
.bdgs{display:inline-flex;flex-wrap:wrap;gap:4px;margin-left:8px;vertical-align:middle}
.bdg{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;line-height:1;padding:4px 9px 4px 5px;border-radius:999px;border:1.5px solid;white-space:nowrap;text-decoration:none;cursor:default}
.bdg i{font-style:normal;display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;font-size:11px;color:#fff}
.bdg.p1{background:#FFF6DA;border-color:#E9B83A;color:#7A5A00}.bdg.p1 i{background:#D9A21B}
.bdg.p2{background:#F1F3F7;border-color:#B7BFCC;color:#4A5465}.bdg.p2 i{background:#8E97A6}
.bdg.p3{background:#FBEBDD;border-color:#D99A63;color:#7A3F12}.bdg.p3 i{background:#B8733A}
.bdg.league{box-shadow:inset 0 0 0 1.5px #fff;outline:2px solid var(--navy);outline-offset:0}
a.bdg{cursor:pointer}a.bdg:hover{filter:brightness(.95);text-decoration:underline}
.pill.live{background:#FFF6DA;color:#7A5A00}
.aw-note{margin:-4px 2px 14px;color:var(--muted);font-weight:600}
.aw-year{margin:22px 0 10px;color:var(--navy);font-size:22px}.aw-year small{color:var(--muted);font-size:15px}
.awgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.awcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.awcard.aw-league{border:2px solid var(--navy)}
.awcard h3{margin:0 0 8px;font-size:15px;color:var(--navy);text-transform:uppercase;letter-spacing:.4px}
.awcard ol{list-style:none;margin:0;padding:0}
.awcard li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.awcard li:first-child{border-top:0}
.awcard li.none{color:var(--muted);font-weight:600;font-size:15px}
.awcard .who{flex:1;min-width:0}.awcard .who small{display:block;color:var(--muted);font-size:13px;font-weight:700}
.awcard .val{white-space:nowrap;color:var(--ink)}.awcard .val small{color:var(--muted)}
.awcard .medal{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:900;color:#fff;flex:none}
.awcard .medal.m1{background:#D9A21B}.awcard .medal.m2{background:#8E97A6}.awcard .medal.m3{background:#B8733A}
@media (max-width:560px){.bdgs{display:flex;margin:4px 0 0}#aPrintAll{margin-left:0!important;width:100%;text-align:center}}
.awcard .who .pname{display:inline;text-align:left}
.awcard .who small{text-transform:none;letter-spacing:0;background:none;padding:0;border-radius:0}
.awcard li{align-items:flex-start}
.awcard .who{flex:1 1 auto;min-width:0;padding-top:3px}
.awcard .medal{margin-top:2px}
.awcard .val{flex:none;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding-top:3px}
.awcard .who small{white-space:nowrap}

/* ---- Nickname spinner & editor ---- */
.nk-field{display:flex;gap:8px;align-items:center;flex-wrap:wrap;max-width:100%}
.nk-field .txt{flex:1 1 150px;min-width:0}
.ctrls .nk-field .txt{flex:0 1 200px}
.ctrls > div:has(.nk-field){max-width:100%}
@media (max-width:560px){.nk-dlg .nk-field .txt{flex-basis:100%}.nk-dlg .nk-spin-btn{flex:1}.ctrls .nk-field .txt{flex:1 1 150px}}
.nk-spin-btn{white-space:nowrap}
.nk-dlg{border:0;border-radius:22px;padding:26px 24px 22px;width:min(480px,calc(100vw - 32px));color:var(--ink);background:#F6F8FD;box-shadow:0 20px 60px rgba(22,33,58,.3);position:relative}
.nk-dlg::backdrop{background:rgba(22,33,58,.45)}
.nk-dlg h2{margin:0 0 6px;font-size:24px;color:var(--navy)}
.nk-dlg label{display:block;font-weight:800;margin:10px 0 6px}
.nk-close{position:absolute;top:12px;right:14px;border:0;background:none;font-size:28px;line-height:1;color:var(--muted,#5B6782);cursor:pointer}
.nk-for{margin:0 0 4px}
.nk-reels{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 8px}
.nk-reel{background:#fff;border-radius:16px;height:76px;position:relative;overflow:hidden;
  box-shadow:inset 0 0 0 3px #DCE4F5,inset 0 10px 14px -10px rgba(22,33,58,.25),inset 0 -10px 14px -10px rgba(22,33,58,.25)}
.nk-strip{will-change:transform}
.nk-reel span{display:flex;align-items:center;justify-content:center;height:76px;font-weight:900;font-size:24px;color:var(--navy);text-align:center;padding:0 6px}
.spinning .nk-reel:not(.landed) span{filter:blur(1.2px)}
.spinning .nk-reel:not(.landed)::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(#fff,rgba(255,255,255,0) 28%,rgba(255,255,255,0) 72%,#fff);border-radius:16px}
.nk-reel.landed{box-shadow:inset 0 0 0 3px #F5CF5B,0 0 0 4px rgba(245,207,91,.25)}
.nk-reel.landed span{filter:none;opacity:1;animation:nk-pop .35s ease-out}
@keyframes nk-pop{0%{transform:scale(.8)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
.nk-hint{min-height:1.2em;margin:6px 0 0;font-size:14px;color:var(--muted,#5B6782);font-weight:600}
.nk-warn{min-height:1.2em;margin:8px 0 0;font-size:14px;font-weight:800;color:#A0522D}
.nk-btns{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:18px}
.nk-btns .btn:disabled{opacity:.5;cursor:default}
@media (max-width:560px){.nk-reel span{font-size:19px}.nk-btns .btn{flex:1}}

.nk-dlg{max-height:calc(100dvh - 24px);overflow:auto}

/* class nickname + teacher */
.tc-head{display:flex;flex-direction:column;gap:2px;margin-bottom:4px}
.tc-nick{font-weight:900;color:#B7791F;font-size:15px}
.tc-teacher{font-weight:700;color:var(--ink);font-size:14px}

.class-info{display:flex;gap:12px;align-items:end;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line)}
.class-info .txt{width:280px;max-width:100%}
.class-info select{max-width:100%}

/* pupil profile: every score */
.pp-sub{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-top:2px}
.pp-chart .bsf{fill:none;stroke:#9FB3D9;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.pp-chart .sd{stroke:#fff;stroke-width:1.5}
.pp-chart .sd.pe{fill:#2C5595}.pp-chart .sd.pg{fill:#D97706}
.pp-chart .sd.pb{stroke:#D9A21B;stroke-width:3;visibility:visible}
.pp-chart .xl.mo{font-size:12px;fill:var(--muted);font-weight:700}
.pp-chart .vl.pbv{fill:#8A5A00}
.pp-key{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;font-weight:800;color:var(--muted);margin:-4px 2px 12px}
.pp-key i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.pp-key .k-pe{background:#2C5595}.pp-key .k-pg{background:#D97706}.pp-key .k-pb{background:#fff;box-shadow:inset 0 0 0 3px #D9A21B}
.pp-key .k-line{width:18px;height:3px;border-radius:2px;background:#9FB3D9;vertical-align:3px}
.pp-all{margin-top:12px}
.pp-all summary{cursor:pointer;font-weight:900;color:var(--navy);padding:6px 2px}
.pp-all .card{margin-top:8px;max-height:320px;overflow:auto}
.src{display:inline-block;font-size:12px;font-weight:900;border-radius:999px;padding:1px 8px}
.src.pe{background:#EEF3FF;color:#2C5595}.src.pg{background:#FDF0DC;color:#9A5200}
@media (max-width:560px){.pp-stats{grid-template-columns:repeat(2,1fr)}}
@media print{.pp-all[open] .card,.pp-all .card{max-height:none;overflow:visible}.pp-all{display:block}.pp-all summary{list-style:none}}
@media (max-width:560px){.pp-head{flex-wrap:wrap}.pp-head>div:first-child{order:2;flex:1 1 100%}.pp-actions{order:1;margin-left:auto}}
.join-notice{display:block;background:#FFF4DB;color:#6B4500;border-radius:14px;padding:12px 16px;margin:0 0 16px;font-weight:700;text-decoration:none}
.join-notice b{font-weight:900}

/* skip-hop shop */
aside a.shop-link{flex-direction:column;align-items:flex-start;gap:0;margin-top:6px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
aside a.shop-link .menu-rope{width:120px;height:38px;margin:2px 0 -4px -4px;transition:transform .35s ease}
aside a.shop-link:hover .menu-rope,aside a.shop-link.on .menu-rope{transform:rotate(-4deg) translateY(-1px)}
.shop-intro{color:var(--muted);font-weight:600;margin:-6px 0 18px;max-width:720px}
.shop-intro b{color:var(--ink)}
.shop-wrap{display:grid;grid-template-columns:1fr 290px;gap:18px;align-items:start}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.prod{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,border-color .2s}
.prod.in{border-color:var(--sky);box-shadow:0 0 0 3px var(--pale)}
.prod-pic{position:relative;display:block;width:100%;border:0;background:linear-gradient(160deg,#FFF8E6,#EEF3FF);padding:10px 14px 0;cursor:pointer}
.prod-pic svg{display:block;width:100%;height:auto;transition:transform .3s ease}
.prod-pic:hover svg{transform:scale(1.04) rotate(-2deg)}
.brandtag{position:absolute;top:10px;left:12px;background:var(--navy);color:#fff;font-weight:900;font-size:12px;letter-spacing:.2px;padding:2px 10px;border-radius:999px}
.prod-body{padding:12px 14px 14px;display:flex;flex-direction:column;flex:1}
.prod-body h3{margin:0;font-size:17px;color:var(--navy);line-height:1.25}
.prod-body p{margin:6px 0 12px;color:var(--muted);font-size:14px;font-weight:600;flex:1}
.prod-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.price{font-size:22px;font-weight:900;color:var(--ink)}
.qty{display:inline-flex;align-items:center;background:var(--pale);border-radius:999px;padding:3px}
.qty button{width:34px;height:34px;border:0;border-radius:50%;background:#fff;color:var(--navy);font:inherit;font-weight:900;font-size:20px;line-height:1;cursor:pointer;box-shadow:0 1px 3px rgba(22,33,58,.12)}
.qty button:hover{background:var(--navy);color:#fff}
.qty input[type=number]{width:44px;border:0;background:none;text-align:center;font-size:17px;padding:4px 0;-moz-appearance:textfield}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.basket{padding:18px;position:sticky;top:18px;overflow:visible}
.basket h2{margin:0 0 10px;font-size:20px;color:var(--navy)}
.bl{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-weight:700;font-size:15px}
.bl b{white-space:nowrap}
.bl.sub{border-top:1px solid var(--line);margin-top:4px;padding-top:10px;color:var(--muted)}
.bl.tot{font-size:19px;color:var(--navy)}
.bl.tot b{font-weight:900}
.bl.vat{color:var(--muted);font-size:13px;padding-top:0}
.basket .pay{width:100%;margin-top:12px}
.basket .pay:disabled{opacity:.45;cursor:default}
.pay-note{color:var(--muted);font-size:13px;font-weight:600;margin:10px 0 8px}
.cards{display:flex;gap:6px;flex-wrap:wrap}
.cards span{font-size:11px;font-weight:900;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:2px 7px}
.shop-banner{border-radius:14px;padding:14px 16px;margin-bottom:16px;font-weight:600}
.shop-banner.ok{background:var(--greenbg);color:#0E5C3D}
.shop-banner.warn{background:#FFF4DB;color:#8A5A00}
.orders-h{color:var(--navy);margin:30px 0 12px;font-size:22px}
.ostat{font-weight:800;font-size:13px;padding:3px 10px;border-radius:999px;background:var(--pale);color:var(--navy)}
.ostat.paid{background:var(--greenbg);color:var(--green)}
.ostat.cancelled{background:#FDECEC;color:#B42318}
@media (max-width:1100px){.shop-wrap{grid-template-columns:1fr}.basket{position:static}}
@media (max-width:860px){
  aside a.shop-link{flex-direction:row;align-items:center;gap:6px;margin-top:0}
  aside a.shop-link .menu-rope{width:54px;height:18px;margin:0}
  .shop-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){.shop-grid{grid-template-columns:1fr}}
aside a.shop-link.on,aside a.shop-link:hover{background:#fff;color:var(--navy)}
.ship{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}
.ship-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.ship-h b{color:var(--navy);font-size:15px}
.linkbtn{border:0;background:none;color:var(--navy);font:inherit;font-weight:800;font-size:14px;cursor:pointer;text-decoration:underline;padding:0}
.ship address{font-style:normal;font-weight:700;font-size:14px;line-height:1.45;color:var(--ink)}
.ship-from{color:var(--green);font-size:12.5px;font-weight:700;margin:6px 0 0}
.ship-form label{font-size:11.5px;margin:8px 0 3px}
.ship-form .txt{width:100%;padding:7px 10px;font-size:15px}

/* ---- pupil set-up (v25): privacy notices, routes, dialogs ---- */
.gdpr{display:flex;gap:12px;align-items:flex-start;background:var(--greenbg);border:1px solid #BfE6D4;color:#14573D;border-radius:14px;padding:12px 16px;font-size:15px;line-height:1.45}
.gdpr b{color:#0F4A33}
.gdpr a{color:#0F4A33;font-weight:800}
.gdpr-ic{font-size:20px;line-height:1.2}
.gdpr-banner{margin-bottom:16px}
.gdpr-mini{color:#14573D!important;background:var(--greenbg);border-radius:10px;padding:7px 11px;font-size:14px!important;font-weight:700;margin:0 0 10px!important}
.gdpr-mini-inline{color:#14573D;font-weight:700}
.linkish-inline{display:inline;text-transform:none;letter-spacing:0;font-size:inherit;color:var(--navy);font-weight:800;text-decoration:underline;cursor:pointer;margin:0}
.routes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.routes-q{grid-column:1/-1;margin:0;font-weight:800;color:var(--navy)}
.route{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;font:inherit;background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:16px 18px;cursor:pointer;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.route:hover,.route:focus-visible{border-color:var(--sky);box-shadow:0 4px 14px rgba(44,85,149,.12);outline:none}
.route b{color:var(--navy);font-size:17px}
.route small{color:var(--muted);font-weight:600;font-size:14px;line-height:1.4}
.route-ic{font-size:26px}
.routes.compact{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.routes.compact .routes-q{margin-right:4px;font-size:15px}
.routes.compact .route{flex-direction:row;align-items:center;padding:8px 14px;border-radius:999px;gap:8px}
.routes.compact .route small{display:none}
.routes.compact .route b{font-size:15px}
.routes.compact .route-ic{font-size:18px}
@media (max-width:860px){.routes{grid-template-columns:1fr}}

.dlg{border:0;border-radius:22px;padding:24px;width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 32px);color:var(--ink);background:#F6F8FD;box-shadow:0 20px 60px rgba(22,33,58,.3)}
.dlg::backdrop{background:rgba(22,33,58,.45)}
.dlg h2{margin:0 36px 6px 0;color:var(--navy);font-size:24px}
.dlg-x{position:absolute;top:14px;right:16px;border:0;background:none;font-size:28px;line-height:1;color:var(--muted);cursor:pointer;padding:4px 8px;border-radius:10px}
.dlg-x:hover{background:var(--pale)}
.dlg-btns{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}
.dlg .hint.small,.hint.small{font-size:14px}
.dlg textarea{min-height:170px;background:#fff}
.drop{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;text-transform:none;letter-spacing:0;font-size:16px;color:var(--navy);background:#fff;border:2px dashed var(--sky);border-radius:16px;padding:26px 16px;cursor:pointer;margin:0 0 8px}
.drop small{color:var(--muted);font-weight:600;font-size:14px}
.drop.over{background:var(--pale);border-color:var(--navy)}
.drop-ic{font-size:30px}
.ws-found{margin:14px 0 8px}
.ws-found p{margin:0 0 6px}
.ws-big{font-size:18px;color:var(--navy)}
.ws-order{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 12px}
.ws-order label{margin:0}
.ws-table{margin:4px 0 10px}
.ws-table td{vertical-align:top}
.ws-table .txt{width:min(240px,100%)}
.ws-table select{min-width:0}
.counts.new{background:#FFF4DB;color:#8A5A00}
.ws-peek summary{cursor:pointer;color:var(--navy);font-weight:700;font-size:14px;margin-top:6px}
.chips.small{min-height:0;border:0;padding:8px 0 0;gap:6px}
.chips.small .chip{font-size:13px;padding:4px 10px}
.chk{display:flex;gap:8px;align-items:center;text-transform:none;letter-spacing:0;font-size:15px;color:var(--ink);font-weight:700}
.cb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin-bottom:10px}
.cb-y{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin:0}
.cb-y span{flex:1;font-weight:800}
.cb-y select{min-width:0;padding:6px 8px;font-size:14px}
.cb-more summary{cursor:pointer;color:var(--navy);font-weight:700;font-size:14px;margin-bottom:8px}
.cb-names{margin:6px 0 12px}
.steps{padding-left:22px;margin:0}
.steps li{margin-bottom:14px}
.steps .small-btn{margin-top:6px}
.at-msg{min-height:200px!important;font-size:14px!important;margin:8px 0 6px;background:#fff}
.ok-tick{color:var(--green);font-weight:800;font-size:14px}
@media (max-width:560px){.dlg{padding:16px}.dlg h2{font-size:20px}.ws-table td,.ws-table th{padding:8px}}
.dlg-btns{position:sticky;bottom:-24px;background:#F6F8FD;padding:12px 0 4px;margin-bottom:-4px}
@media (max-width:560px){.dlg-btns{bottom:-16px}}
.cb-grid{grid-template-columns:repeat(auto-fill,minmax(235px,1fr))}
.cb-y select{flex:0 0 auto;width:auto}
@media (max-width:560px){
  #wsRows tr{display:grid;grid-template-columns:1fr auto;gap:6px 10px;padding:10px;border-top:1px solid var(--line)}
  #wsRows td{display:block;border:0;padding:0}
  #wsRows td:first-child{grid-column:1/-1}
  #wsDlg .ws-table thead{display:none}
  #wsDlg .ws-table .txt{width:100%}
  #wsRows td.num{align-self:center}
  #wsRows td.num b::after{content:" pupils";font-weight:600;color:var(--muted)}
  .dlg-btns .btn{flex:1}
}
@media (max-width:560px){
  #wsDlg .ws-table table,#wsRows{display:block;width:100%}
  #wsRows tr{box-sizing:border-box;width:100%}
  #wsRows td{min-width:0}
  .dlg-btns .btn-light{flex:0 0 auto}
}

/* Feedback button + form (v27) */
aside .fb-btn{display:flex;align-items:center;gap:8px;margin:4px 0 0 14px;align-self:flex-start;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.35);color:#fff;font:inherit;font-weight:800;font-size:14px;padding:7px 14px;border-radius:999px;cursor:pointer}
aside .fb-btn:hover,aside .fb-btn:focus-visible{background:#fff;color:var(--navy);border-color:#fff}
aside .fb-btn[hidden]{display:none}
@media (max-width:860px){aside .fb-btn{margin:0;padding:7px 12px}}
.fb-dlg{width:min(600px,calc(100vw - 32px))}
.fb-info{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin:8px 0 14px}
.fb-info p{margin:0 0 8px}.fb-info p:last-child{margin:0}
.fb-addr{color:var(--navy);white-space:nowrap}
.fb-kinds{border:0;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:8px}
.fb-kinds legend{font-weight:800;color:var(--navy);margin-bottom:8px;padding:0}
.fb-kind{display:inline-flex;align-items:center;gap:8px;margin:0;text-transform:none;letter-spacing:0;font-size:15px;font-weight:800;color:var(--navy);background:#fff;border:2px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer}
.fb-kind input{width:18px;height:18px;margin:0;accent-color:var(--navy)}
.fb-kind:has(input:checked){border-color:var(--navy);background:var(--pale)}
.fb-dlg textarea{min-height:150px}
.fb-count{text-align:right;margin-top:4px}
.fb-err{color:#B42318;font-weight:700;margin:8px 0 0}
.fb-done{text-align:center;padding:10px 0 0}
.fb-done h3{color:var(--navy);margin:8px 0}
.fb-tick{width:56px;height:56px;border-radius:50%;background:var(--greenbg);color:var(--green);font-size:30px;font-weight:900;display:grid;place-items:center;margin:6px auto 0}
.fb-done .dlg-btns{justify-content:center}
/* v31: class teacher in the class list */
.t small.t-teacher{display:block;color:var(--navy,#2C5595);font-size:13.5px;margin:1px 0 1px}
.t small.t-teacher.none{color:var(--muted);font-weight:600;font-style:italic}
.tm-email{font-size:14px;color:var(--muted);word-break:break-all}
.tm-email a{color:inherit}
.copy-btn{margin-left:6px;padding:3px 9px;font-size:13px}
/* v31: add one pupil on Enter scores */
.quick-add{margin:0 0 12px}
.qa-form{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}
.qa-form > div{display:flex;flex-direction:column;min-width:0}
.qa-form .txt{width:12em;max-width:100%}
.qa-form .qa-btns{flex-direction:row;gap:8px}
.qa-form .qa-note{flex-basis:100%;margin:0}
.qa-form .warn{flex-basis:100%}
tr.just-added td{background:#FFF8E1}
@media (max-width:520px){.qa-form > div{flex:1 1 100%}.qa-form .txt{width:100%}}
.staff-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 10px}
/* v32: Virtual Skipping League page (which leagues the school is in) */
.vl-intro{margin:-10px 0 14px;color:var(--muted);max-width:720px}
.vl-lock{background:#FFF8E1;border:1px solid #F3DC9B;border-radius:14px;padding:10px 14px;margin:0 0 14px;font-weight:700;font-size:15px}
.vl-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:22px}
.vl-opt{display:flex;gap:14px;align-items:flex-start;background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:16px 18px;cursor:pointer;text-transform:none;letter-spacing:0;font-size:16px;color:var(--ink);font-weight:600;margin:0;position:relative;transition:border-color .15s,background .15s}
.vl-opt:hover{border-color:var(--sky)}
.vl-opt.on{border-color:var(--navy);background:#F7FAFF}
.vl-opt.dis{cursor:default}
.vl-opt.dis:hover{border-color:var(--line)}
.vl-opt.on.dis:hover{border-color:var(--navy)}
.vl-opt input{position:absolute;opacity:0;width:1px;height:1px}
.vl-box{flex:none;width:28px;height:28px;border-radius:8px;border:2px solid #AFC0E6;background:#fff;display:grid;place-items:center;margin-top:2px}
.vl-opt input:checked + .vl-box{background:var(--navy);border-color:var(--navy)}
.vl-opt input:checked + .vl-box::after{content:"";width:8px;height:14px;border:solid #fff;border-width:0 3px 3px 0;transform:translateY(-2px) rotate(45deg)}
.vl-opt input:focus-visible + .vl-box{box-shadow:0 0 0 4px var(--pale);border-color:var(--sky)}
.vl-opt input:disabled + .vl-box{opacity:.55}
.vl-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.vl-txt b{font-size:18px;color:var(--navy);font-weight:900}
.vl-txt em{font-style:normal;font-weight:800;color:var(--ink)}
.vl-txt small{color:var(--green);font-weight:700;font-size:14px;margin-top:4px}
.vl-txt small .vl-off{color:#B45309}
.vl-txt small a{color:var(--navy)}
.vl-h2{color:var(--navy);margin:26px 0 12px;font-size:22px}
.vl-lg{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:12px}
.vl-lg-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.vl-lg-head h3{margin:0;color:var(--navy);font-size:19px}
.vl-sub{color:var(--muted);font-weight:700;font-size:14px}
.vl-acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.vl-codebox{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--pale);border-radius:14px;padding:10px 14px;margin:12px 0 4px}
.vl-codebox > div{margin-right:auto}
.vl-codebox small{display:block;color:var(--muted);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.vl-code{font-size:24px;letter-spacing:3px;color:var(--navy);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.vl-codebox .small-btn{background:#fff}
.vl-schools{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.vl-schools li{background:#F3F6FC;border-radius:999px;padding:5px 6px 5px 12px;font-weight:700;font-size:15px;display:flex;align-items:center;gap:4px}
.vl-schools li:not(:has(.x)){padding-right:12px}
.vl-schools li.me{background:var(--greenbg);color:#135E41}
.vl-schools li small{color:var(--muted);font-weight:700}
.vl-schools .x{padding:0 7px;font-size:18px;line-height:1}
.vl-forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:4px}
.vl-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.vl-form h3{margin:0;color:var(--navy);font-size:18px}
.vl-form .hint{margin:2px 0 10px;font-size:14px}
.vl-row{display:flex;gap:8px;align-items:center}
.vl-row .txt{flex:1 1 auto;width:auto;min-width:0}
.vl-code-in{text-transform:uppercase;letter-spacing:2px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.vl-tnote{margin:-6px 2px 10px;font-size:14px}
.vl-table .medal{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:900;color:#fff}
.vl-table .medal.m1{background:#D9A21B}.vl-table .medal.m2{background:#8E97A6}.vl-table .medal.m3{background:#B8733A}
.vl-table tr.vl-my td{background:#F1F8F4}
.vl-mine{display:inline-block;background:var(--greenbg);color:#135E41;font-size:12px;font-weight:800;padding:2px 8px;border-radius:999px;margin-left:6px;vertical-align:1px}
.vl-mine.hid{background:#FFF1DC;color:#92400E}
.vl-sch-sm{display:none;color:var(--muted);font-size:14px;font-weight:700}
@media (max-width:860px){.vl-sch-sm{display:block}}
@media (max-width:700px){.vl-opts,.vl-forms{grid-template-columns:minmax(0,1fr)}.vl-acts{margin-left:0}.vl-code{font-size:21px}}
#v-league .bar > div{min-width:0;max-width:100%}
#v-league .bar select{max-width:100%}
@media (max-width:700px){#v-league .bar > div{flex:1 1 100%}#v-league .bar select{width:100%;min-width:0}}
.vl-txt > span{color:#3C4863;font-weight:600;font-size:15.5px}
/* v34: awards in every league the school takes part in */
.bdg.national,.bdg.ssp,.bdg.sgo{box-shadow:inset 0 0 0 1.5px #fff;outline:2px solid var(--navy);outline-offset:0}
.awcard.aw-national,.awcard.aw-ssp,.awcard.aw-sgo{border:2px solid var(--navy)}
.aw-leagues{display:inline-block;margin-top:6px;font-size:15px}
.aw-leagues a{color:var(--navy);font-weight:800}
#v-awards .bar > div{min-width:0;max-width:100%}
#v-awards .bar select{max-width:100%}
@media (max-width:700px){#v-awards .bar > div{flex:1 1 100%}#v-awards .bar select{width:100%;min-width:0}}
.awgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:640px){.awgrid{grid-template-columns:minmax(0,1fr)}}
.awcard .medal.mx{background:#2C5595;font-size:13px}

/* v36: pupil list with the girl / boy column */
.ptbl-wrap{overflow-x:auto}
.ptbl th,.ptbl td{padding-left:8px;padding-right:8px}
.ptbl th:first-child,.ptbl td:first-child{padding-left:16px}
.ptbl th{white-space:nowrap}
.gd{display:block;width:auto!important;min-width:0;margin-top:4px;font:inherit;font-size:13px;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:3px 4px;background:#fff}

/* v37: class battles */
.bt-intro{margin:-6px 0 16px;color:var(--muted);font-weight:600}
.bt-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:18px;align-items:start}
@media(max-width:1000px){.bt-grid{grid-template-columns:minmax(0,1fr)}}
.bt-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;min-width:0}
.bt-card h2{margin:0 0 4px;color:var(--navy);font-size:19px}
.bt-card .sub{margin:0 0 12px;color:var(--muted);font-weight:600;font-size:14px}
.bt-lab{display:block;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:14px 0 6px}
.bt-lab .opt{text-transform:none;letter-spacing:0;font-weight:600}
.bt-cls{display:flex;flex-wrap:wrap;gap:6px}
.bt-cls label{border:1.5px solid var(--line);border-radius:999px;padding:6px 12px;font-weight:800;font-size:14px;display:flex;gap:6px;align-items:center;cursor:pointer;text-transform:none;letter-spacing:0;margin:0;color:var(--ink)}
.bt-cls label.on{border-color:var(--navy);background:var(--pale);color:var(--navy)}
.bt-how{display:grid;gap:8px}
.bt-how label{border:1.5px solid var(--line);border-radius:14px;padding:10px 12px;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;cursor:pointer;text-transform:none;letter-spacing:0;margin:0;color:var(--ink);align-items:center}
.bt-how label.on{border-color:var(--navy);background:var(--pale)}
.bt-how b{font-size:15px}.bt-how small{grid-column:2;color:var(--muted);font-weight:600;font-size:13px;line-height:1.35}
.bt-row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.bt-row2>div{min-width:0}
@media(max-width:520px){.bt-row2{grid-template-columns:minmax(0,1fr)}}
.bt-inp{width:100%;min-width:0;max-width:100%;font:inherit;font-weight:700;border:1.5px solid #C9D2E4;border-radius:10px;padding:9px 10px;background:#fff;color:var(--ink)}
.bt-btns{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px}
.bt-battle{border:1.5px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:12px}
.bt-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.bt-battle h3{margin:0;font-size:16px;color:var(--ink)}
.bt-pill{font-size:11.5px;font-weight:900;border-radius:999px;padding:2px 9px;white-space:nowrap}
.bt-pill.live{background:#E3F4EC;color:#1F7A55}.bt-pill.done{background:#FFF1C2;color:#8A5A00}.bt-pill.soon{background:#EEF1F7;color:var(--muted)}
.bt-meta{font-size:13px;color:var(--muted);font-weight:700;margin:2px 0 8px}
.bt-lane{display:grid;grid-template-columns:minmax(90px,130px) 1fr minmax(56px,auto);gap:8px;align-items:center;margin:6px 0;font-weight:800;font-size:14px}
.bt-lane small{display:block;font-size:11px;color:var(--muted);font-weight:700}
.bt-bar{height:14px;background:#EDF0F6;border-radius:8px;position:relative;overflow:hidden}
.bt-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:8px;background:var(--navy)}
.bt-lane.lead .bt-bar i{background:#D9A21B}
.bt-lane .v{text-align:right;font-variant-numeric:tabular-nums}
.bt-lane.wait .v{color:var(--muted);font-size:12px;max-width:110px}
.bt-winner{background:linear-gradient(90deg,#FFF6D6,#FFFDF5);border-radius:12px;padding:8px 12px;font-weight:900;color:#8A5A00;margin-bottom:6px}
.bt-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.bt-acts a,.bt-acts button{font:inherit;font-size:13px;font-weight:800;text-decoration:none;border:0;border-radius:999px;padding:6px 12px;background:var(--pale);color:var(--navy);cursor:pointer}
.bt-acts a.pri{background:var(--navy);color:#fff}

/* v39: effort badges, not skipped lately, Young Leaders */
.eb{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:10.5px;font-weight:900;color:#fff;vertical-align:middle;margin-left:6px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55);flex:none}
.eb.b{background:linear-gradient(135deg,#C07A45,#8A4E22)}.eb.s{background:linear-gradient(135deg,#C9D0DA,#8E97A6);color:#16213A}.eb.g{background:linear-gradient(135deg,#F5CF5B,#D9A21B);color:#16213A}.eb.st{background:linear-gradient(135deg,#2C5595,#16213A);color:#F5CF5B;font-size:13px}
.lately{margin-top:12px;background:#FFF7E6;border-radius:12px;padding:8px 12px;font-size:13.5px;font-weight:700}
.lately b{color:#8A5A00}.lately span{display:inline-block;background:#fff;border-radius:999px;padding:2px 9px;margin:4px 4px 0 0;font-size:13px}
.ld-card,.ef-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-top:18px}
.ld-card h2,.ef-card h2{margin:0 0 4px;color:var(--navy);font-size:18px}
.ld-card h3{margin:12px 0 4px;font-size:14px;color:var(--ink)}
.ld-card .sub,.ef-card .sub{margin:0 0 10px;color:var(--muted);font-weight:600;font-size:14px}
.ld-pill{display:inline-block;font-size:11px;font-weight:900;background:#FFF1C2;color:#8A5A00;border-radius:999px;padding:1px 8px;margin-left:6px;vertical-align:middle}
.ld-t,.ef-t{width:100%;border-collapse:collapse}.ld-t td,.ef-t td,.ef-t th{padding:7px 8px;border-top:1px solid var(--line);font-size:14px}
.ld-t td small{display:block;color:var(--muted);font-size:12px;font-weight:700}
.ld-t input{width:80px;border:1.5px solid #C9D2E4;border-radius:8px;padding:6px;font:inherit;font-weight:800;text-align:right}
.ld-btn{font:inherit;font-size:13px;font-weight:800;border:0;border-radius:999px;padding:6px 12px;background:var(--pale);color:var(--navy);cursor:pointer}
.ld-btns{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.ld-code{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--line)}
.ld-code:first-child{border-top:0}
.ld-code .code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:19px;font-weight:900;letter-spacing:2px;color:var(--navy);background:var(--pale);border-radius:10px;padding:5px 11px}
.ld-code.off .code{color:var(--muted);text-decoration:line-through}
.ld-meta{font-size:13px;font-weight:700;color:var(--muted);flex:1;min-width:160px}
.ld-new{margin-top:12px}.ld-new summary{list-style:none;display:inline-block;cursor:pointer}.ld-new summary::-webkit-details-marker{display:none}
.ld-cls{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.ld-cls label{border:1.5px solid var(--line);border-radius:999px;padding:5px 11px;font-weight:800;font-size:13.5px;display:flex;gap:6px;align-items:center;text-transform:none;letter-spacing:0;margin:0;color:var(--ink);cursor:pointer}
.ef-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ef-head h2{margin-right:auto}
.ef-t th{background:var(--pale);font-size:12px;text-align:left}.ef-t .num{text-align:right}

/* v40: unsaved data warning */
#unsavedDlg{border:0;border-radius:22px;padding:26px 24px 22px;width:min(440px,calc(100vw - 32px));color:var(--ink);background:#fff;box-shadow:0 20px 60px rgba(22,33,58,.35);text-align:center;position:relative}
#unsavedDlg::backdrop{background:rgba(22,33,58,.5)}
#unsavedDlg .uv-x{position:absolute;top:10px;right:10px}
#unsavedDlg .uv-icon{width:52px;height:52px;border-radius:50%;background:#FFF1C2;color:#B7791F;font-weight:900;font-size:30px;line-height:52px;margin:0 auto 10px}
#unsavedDlg h2{margin:0 0 10px;color:var(--navy);font-size:22px}
#unsavedDlg ul{text-align:left;margin:0 auto 8px;padding-left:20px;max-width:340px;font-weight:700;font-size:15px;line-height:1.5}
#unsavedDlg .hint{margin:0 0 16px}
#unsavedDlg .uv-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* v52 shop redesign: photos, hero, reward ropes */
.shop-hero{background:linear-gradient(135deg,#16213A 0%,#2C5595 100%);color:#fff;border-radius:22px;padding:28px 30px;margin-bottom:22px;display:grid;gap:22px}
.shop-hero h2{margin:0 0 8px;font-size:30px;font-weight:900;letter-spacing:-.4px;line-height:1.15}
.shop-hero p{margin:0;color:#DDE6FF;font-weight:600;max-width:680px}
.shop-hero .shop-hero-sub{margin-top:10px;color:#fff;font-weight:800}
.usps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.usps li{background:rgba(255,255,255,.1);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:2px}
.usp-i{width:40px;height:40px;border-radius:50%;background:var(--gold);color:var(--ink);font-weight:900;font-size:15px;display:grid;place-items:center;margin-bottom:6px}
.usps b{font-size:15px;line-height:1.25}
.usps small{color:#C9D6F8;font-weight:600;font-size:13px;line-height:1.35}
.shop-main{min-width:0}
.shop-h{color:var(--navy);font-size:22px;margin:26px 0 12px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.shop-h span{font-size:15px;color:var(--muted);font-weight:700}
.shop-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.prod-pic{background:#fff;padding:0;border-bottom:1px solid var(--line)}
.prod-pic img,.reward-pic img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;transition:transform .35s ease}
.prod-pic:hover img{transform:scale(1.05)}
.prod-pic .svgpic svg{display:block;width:100%;height:auto}
.facts{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.facts li{background:var(--pale);color:var(--navy);font-size:12px;font-weight:800;padding:3px 9px;border-radius:999px}
.prod-body p{font-size:14px;line-height:1.45;margin:10px 0 14px}
.pricebox{display:flex;flex-direction:column;line-height:1.1}
.each{color:var(--muted);font-weight:700;font-size:12px;margin-top:3px}
.reward{margin-bottom:6px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);background:linear-gradient(135deg,#FFF8E6,#FFEFC2);border:2px solid var(--gold);border-radius:22px;overflow:hidden}
.reward.in{border-color:var(--gold);box-shadow:0 0 0 4px #FFE7A3}
.reward-pic{border:0;padding:0;background:#fff;cursor:pointer;align-self:stretch;display:flex;align-items:center}
.reward-body{padding:22px 24px}
.reward-kicker{display:inline-block;background:var(--ink);color:var(--gold);font-weight:900;font-size:12px;letter-spacing:.4px;text-transform:uppercase;padding:4px 12px;border-radius:999px}
.reward h2{margin:10px 0 8px;font-size:24px;color:var(--ink);line-height:1.2}
.reward p{margin:0 0 10px;font-weight:600;font-size:15px;color:#4A3A12}
.ticks{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:6px}
.ticks li{position:relative;padding-left:26px;font-weight:600;font-size:14px;color:#4A3A12}
.ticks li::before{content:'✓';position:absolute;left:0;top:0;width:19px;height:19px;border-radius:50%;background:var(--gold);color:var(--ink);font-weight:900;font-size:12px;display:grid;place-items:center}
.reward .qty{background:#fff}
.sizes{margin-top:26px;padding:0}
.sizes summary{cursor:pointer;padding:14px 18px;font-weight:900;color:var(--navy)}
.sizes table{width:100%;border-collapse:collapse}
.sizes-tip{margin:0;padding:12px 18px 16px;color:var(--muted);font-weight:600;font-size:14px}
@media (max-width:1100px){.usps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.reward{grid-template-columns:1fr}.shop-hero{padding:22px 18px}.shop-hero h2{font-size:25px}}
@media (max-width:420px){.usps{grid-template-columns:1fr 1fr;gap:8px}.usps li{padding:11px}.reward-body{padding:18px 16px}}
main:has(#v-shop.on){max-width:1240px}
.shop-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}

/* v54 shop: ×10 badge, photo viewer */
.prod-pic{position:relative;cursor:zoom-in}
.x10{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:baseline;gap:1px;background:linear-gradient(145deg,#FFD66B,var(--gold));color:var(--ink);font-weight:900;font-size:20px;line-height:1;padding:9px 13px 8px;border-radius:14px;box-shadow:0 4px 12px rgba(22,33,58,.18),inset 0 -2px 0 rgba(0,0,0,.08);transform:rotate(-6deg);letter-spacing:-.3px;border:2px solid #fff}
.x10 span{font-size:15px;margin-right:1px}
.zoom-hint{position:absolute;right:10px;bottom:10px;z-index:2;width:34px;height:34px;border-radius:50%;background:rgba(22,33,58,.72);color:#fff;display:grid;place-items:center;opacity:0;transform:scale(.85);transition:opacity .2s,transform .2s}
.prod-pic:hover .zoom-hint,.prod-pic:focus-visible .zoom-hint{opacity:1;transform:none}
@media (hover:none){.zoom-hint{opacity:.9;transform:none}}
.reward-pic{position:relative}
.reward-pic:hover img{transform:scale(1.04)}
html.zv-open{overflow:hidden}
.zv{position:fixed;inset:0;z-index:1000;background:rgba(14,22,40,.94);backdrop-filter:blur(6px);display:grid;grid-template-rows:auto 1fr auto;opacity:0;transition:opacity .22s ease}
.zv.open{opacity:1}.zv.closing{opacity:0}
.zv-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;color:#fff}
.zv-title{min-width:0}
.zv-title b{display:block;font-size:19px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zv-title small{color:#B9CDFE;font-weight:700;font-size:14px}
.zv-tools{display:flex;gap:8px;flex:none}
.zv-b{width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font:inherit;font-size:24px;font-weight:900;line-height:1;cursor:pointer}
.zv-b:hover,.zv-nav:hover{background:#fff;color:var(--ink)}
.zv-x{background:var(--gold);color:var(--ink)}
.zv-stage{position:relative;overflow:hidden;display:grid;place-items:center;padding:0 72px;touch-action:none;min-height:0}
.zv-img{max-width:100%;max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);width:auto;height:auto;background:#fff;border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.45);cursor:zoom-in;user-select:none;transform-origin:center center;will-change:transform;opacity:1;transition:opacity .2s}
.zv.open .zv-img{animation:zvIn .32s cubic-bezier(.2,.7,.2,1)}
.zv.zoomed .zv-img{cursor:grab}.zv.zoomed .zv-img:active{cursor:grabbing}
.zv-img.loading{opacity:.35}
@keyframes zvIn{from{transform:scale(.92)}to{transform:scale(1)}}
.zv-nav{position:absolute;top:50%;margin-top:-26px;width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:34px;line-height:1;font-weight:700;cursor:pointer;z-index:2}
.zv-nav.prev{left:12px}.zv-nav.next{right:12px}
.zv.zoomed .zv-nav{opacity:.35}
.zv-hint{margin:0;padding:12px 16px 18px;text-align:center;color:#B9CDFE;font-weight:700;font-size:14px}
.zv-hint .t-touch{display:none}
@media (hover:none),(pointer:coarse){.zv-hint .t-touch{display:inline}.zv-hint .t-mouse{display:none}}
@media (max-width:640px){.zv-stage{padding:0 10px}.zv-nav{top:auto;bottom:62px;margin:0;width:46px;height:46px;font-size:30px}.zv-top{padding:10px 12px}.zv-title b{font-size:16px}.zv-b{width:40px;height:40px}.x10{font-size:17px;padding:7px 11px 6px}}
@media (prefers-reduced-motion:reduce){.zv,.zv-img{transition:none!important;animation:none!important}}
.zv{grid-template-columns:minmax(0,1fr)}
.zv-stage{grid-template-columns:minmax(0,1fr)}
.zv-img{max-width:calc(100vw - 144px);justify-self:center}
.zv-title{flex:1 1 auto;min-width:0}
@media (max-width:640px){.zv-img{max-width:calc(100vw - 20px);border-radius:16px}.zv-tools{gap:6px}}

/* v55 shop: choose how to pay */
.paywith{border:0;border-top:1px solid var(--line);margin:12px 0 0;padding:12px 0 0;min-width:0}
.paywith legend{font-weight:900;color:var(--navy);font-size:15px;padding:0;margin-bottom:8px}
.pw-opt{display:flex;gap:10px;align-items:flex-start;border:2px solid var(--line);border-radius:14px;padding:10px 12px;margin:0 0 8px;cursor:pointer;text-transform:none;letter-spacing:0;font-size:15px;color:var(--ink);font-weight:700;transition:border-color .15s,background .15s}
.pw-opt:has(input:checked){border-color:var(--navy);background:var(--pale)}
.pw-opt input{margin-top:4px;accent-color:var(--navy);width:18px;height:18px;flex:none}
.pw-opt b{display:block;color:var(--ink);font-size:15px}
.pw-opt small{display:block;color:var(--muted);font-weight:600;font-size:13px;line-height:1.35}
.pw-inv{background:#FFF8E6;border-radius:14px;padding:10px 12px 4px;margin:2px 0 4px}
.pw-inv label{margin:6px 0 4px;font-size:12px}
.pw-inv .txt{width:100%;font:inherit;font-size:15px;font-weight:700;border:2px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}
.pw-note{margin:8px 0 6px;color:#6B4500;font-weight:700;font-size:13px}
.ostat.invoiced{background:#FFF4DB;color:#8A5A00}

/* v58 Young Leaders register */
.yl-wrap{overflow-x:auto}
.yl-t th{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);text-align:left;padding:6px 8px}
.yl-t th.num,.yl-t td.num{text-align:right;white-space:nowrap}
.yl-act{white-space:nowrap}.yl-act .ld-btn+.ld-btn{margin-left:6px}
.ld-card a.btn{text-decoration:none}.ld-card .sub a{color:var(--navy)}
a.ld-btn{text-decoration:none;display:inline-block}
.yl-lab{display:flex;gap:8px;align-items:center;margin:12px 0 0;font-weight:800;font-size:14px}
.yl-lab select{font:inherit;font-weight:700;border:1.5px solid #C9D2E4;border-radius:10px;padding:6px 10px;max-width:100%}
@media (max-width:560px){.yl-t td:nth-child(2),.yl-t th:nth-child(2){display:none}}

/* v59 active minutes */
.am-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-top:18px}
.am-card h2{margin:0 0 4px;color:var(--navy);font-size:18px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.am-card .sub{margin:0 0 10px;color:var(--muted);font-weight:600;font-size:14px}
.am-pill{background:#E3F4EC;color:#1F7A55;font-size:13px;font-weight:900;border-radius:999px;padding:3px 10px}
.am-row{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.am-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.am-chip{font:inherit;font-weight:800;font-size:14px;border:1.5px solid var(--line);background:#fff;color:var(--navy);border-radius:999px;padding:7px 14px;cursor:pointer}
.am-chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.am-other{display:flex;align-items:center;gap:6px;font-weight:800;font-size:13.5px;color:var(--muted);margin-left:4px}
.am-other input{width:70px;border:1.5px solid #C9D2E4;border-radius:8px;padding:6px;font:inherit;font-weight:800}
.am-more{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.am-more select,.am-more input{font:inherit;font-weight:700;font-size:14px;border:1.5px solid #C9D2E4;border-radius:10px;padding:6px 10px;background:#fff}
.am-t{width:100%;border-collapse:collapse}.am-t td{padding:6px 8px;border-top:1px solid var(--line);font-size:14px}
.am-t .num{text-align:right;white-space:nowrap}.am-by{color:var(--muted);font-size:12.5px}
.am-line{margin-top:10px;font-size:13.5px;color:var(--muted);font-weight:700}.am-line b{color:var(--ink)}.am-line a{color:var(--navy);font-weight:800}
@media (max-width:560px){.am-by{display:none}}

/* v60 inclusion flags */
.flags{display:inline-flex;gap:8px;margin:4px 0 0 6px;vertical-align:middle}
.flags label{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:800;color:var(--muted);text-transform:none;letter-spacing:0;margin:0;cursor:pointer}
.flags input{width:auto;margin:0}

/* v60 area challenges on the dashboard */
.chcard{background:linear-gradient(135deg,#FFF8E1,#fff 60%);border:1.5px solid #F5CF5B;border-radius:var(--radius);padding:14px 18px;margin-bottom:16px}
.chcard.finished{background:#fff;border-color:var(--line)}
.chh{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.chtag{font-size:12px;font-weight:900;color:#8A5A00;text-transform:uppercase;letter-spacing:.5px;margin-right:auto}
.chst{font-size:12.5px;font-weight:900;background:#E3F4EC;color:#1F7A55;border-radius:999px;padding:3px 10px}
.chcard h3{margin:4px 0 2px;color:var(--navy);font-size:20px}.chm{margin:0 0 8px;color:var(--muted);font-weight:700;font-size:14px}
.chmine{list-style:none;padding:0;margin:0 0 6px;display:grid;gap:4px}.chmine li{font-size:15px;color:var(--muted);font-weight:700}.chmine b{color:var(--ink)}
.chp{background:var(--navy);color:#fff;border-radius:999px;padding:1px 9px;font-weight:900;font-size:13px}
.chcard details summary{cursor:pointer;color:var(--navy);font-weight:800;font-size:14px}
.chy{font-weight:900;margin:8px 0 2px}.chl{margin:0;padding-left:22px;font-size:14px}.chl li{padding:2px 0}.chl li span{margin-right:8px}.chl li.me{font-weight:900;color:var(--navy)}

/* v61 finals week, champions, school v school */
.fin-card{background:#EEF3FF;border:1.5px solid #89ACFE;border-radius:var(--radius);padding:12px 16px;margin-bottom:12px;font-weight:700;color:var(--ink);line-height:1.5}
.fin-card a{color:var(--navy);font-weight:900}
.fin-card.champ{background:linear-gradient(135deg,#FFF8E1,#fff);border-color:#F5CF5B}.fin-card ul{margin:6px 0 6px;padding-left:4px;list-style:none}
.dl-note{background:#FFF1F0;border:1.5px solid #F4A7A0;border-radius:var(--radius);padding:12px 16px;margin-bottom:12px;font-weight:700}.dl-note a{color:var(--navy);font-weight:900}
.dl-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-top:20px}
.dl-wrap h2{margin:0 0 4px;color:var(--navy)}.dl-wrap .sub{margin:0 0 12px;color:var(--muted);font-weight:600;font-size:14px}
.dl-card{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:10px}
.dl-card.inv{background:#FFF8E1;border-color:#F5CF5B}
.dl-h{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dl-h h3{margin:0;color:var(--navy);font-size:17px}
.dl-pill{font-size:12px;font-weight:900;border-radius:999px;padding:3px 10px;background:var(--pale);color:var(--navy)}
.dl-pill.gold{background:#F5A623;color:#16213A}.dl-pill.live{background:#E3F4EC;color:#1F7A55}.dl-pill.finished{background:#FFF1C2;color:#8A5A00}
.dl-m{margin:6px 0;color:var(--muted);font-weight:700;font-size:14px}.dl-msg{margin:4px 0 8px;font-style:italic;color:var(--ink)}
.dl-btns{display:flex;gap:8px;flex-wrap:wrap}
.dl-vs{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin:8px 0}
.dl-side{background:var(--pale);border-radius:12px;padding:10px 12px;text-align:center}.dl-side.lead{background:#E3F4EC;box-shadow:0 0 0 2px #1F9D6B inset}
.dl-side b{display:block;color:var(--ink)}.dl-val{display:block;font-size:28px;font-weight:900;color:var(--navy)}.dl-side small{color:var(--muted);font-weight:700}
.dl-x{font-weight:900;color:var(--muted)}.dl-res{font-weight:900;color:#8A5A00;margin:4px 0 8px}
.dl-new summary{list-style:none;display:inline-block;cursor:pointer}.dl-new summary::-webkit-details-marker{display:none}
.dl-form{display:grid;gap:10px;margin-top:10px;max-width:620px}
.dl-form label{display:grid;gap:4px;font-weight:800;font-size:14px;text-transform:none;letter-spacing:0;color:var(--ink);margin:0}
.dl-form input:not([type=radio]):not([type=checkbox]){font:inherit;font-weight:700;border:1.5px solid #C9D2E4;border-radius:10px;padding:8px 10px}
.dl-form fieldset{border:1px solid var(--line);border-radius:12px;padding:8px 12px}.dl-form legend{font-weight:900;font-size:14px}
.dl-form .rad{display:grid;grid-template-columns:auto 1fr;column-gap:8px;margin:4px 0}.dl-form .rad small{grid-column:2;color:var(--muted);font-weight:600}
.dl-form .yrs{display:flex;flex-wrap:wrap;gap:6px}.dl-form .yrs label{display:inline-flex;align-items:center;gap:4px;border:1.5px solid var(--line);border-radius:999px;padding:4px 10px}
.dl-form .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dl-hits{display:grid;gap:6px}.dl-hit{font:inherit;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;cursor:pointer}.dl-hit b{display:block}.dl-hit small{color:var(--muted);font-weight:700}
@media (max-width:560px){.dl-vs{grid-template-columns:1fr}.dl-x{text-align:center}.dl-form .two{grid-template-columns:1fr}}

/* v63 Toolbox menu */
aside .tb-btn{background:none;border:0;font:inherit;color:#DDE6FF;text-decoration:none;font-weight:700;padding:11px 14px;border-radius:12px;display:flex;align-items:center;gap:10px;cursor:pointer;text-align:left;width:100%}
aside .tb-btn.on,aside .tb-btn:hover{background:#fff;color:var(--navy)}
aside .tb-caret{margin-left:auto;transition:transform .2s ease;font-size:.9em}
aside .tb-btn.on .tb-caret{transform:rotate(180deg)}
aside .tb-items{display:contents}
aside .tb-items[hidden]{display:none}
@media (max-width:860px){aside .tb-btn{width:auto;padding:8px 12px;font-size:15px}}
/* ---------- v68 league page: table first, tabs, podium, highlights, show to class ---------- */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lt-top{margin-bottom:16px}
.lt-acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.lt-setbtn .pill{font-size:12px;padding:2px 8px;margin-left:4px}
.lt-picks{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.lt-row{display:flex;gap:8px 10px;flex-wrap:wrap;align-items:center}
.lt-lab{font-size:12px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;width:92px;flex:none}
.lt-chips{display:flex;gap:8px;flex-wrap:wrap;min-width:0}
.lt-chip{font:inherit;font-weight:800;font-size:14px;border:2px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:6px 13px;cursor:pointer;position:relative}
.lt-chip small{font-weight:700;color:var(--muted)}
.lt-chip:hover{border-color:var(--sky)}
.lt-chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.lt-chip.on small{color:var(--sky-2)}
.lt-dot{position:absolute;top:-3px;right:-3px;width:11px;height:11px;border-radius:50%;background:var(--gold);border:2px solid #fff}
.lt-kinds{flex-wrap:wrap}
.lt-round select{min-width:0;padding:7px 10px;font-size:15px}
.lt-mine{margin-bottom:14px}
.lt-mine:empty{display:none}
.lt-mine-h{font-weight:900;color:var(--navy);margin:0 2px 8px}
.lt-mine-h small{color:var(--muted);font-weight:700}
.lt-mine-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.lt-mc{font:inherit;text-align:left;border:0;cursor:pointer;background:linear-gradient(135deg,#2C5595,#3F6CB5);color:#fff;border-radius:var(--radius);padding:12px 16px;display:flex;gap:14px;align-items:center;box-shadow:0 0 0 3px transparent}
.lt-mc.on{box-shadow:0 0 0 3px var(--gold)}
.lt-mc.off{background:#fff;color:var(--muted);border:1px dashed var(--line)}
.lt-mc-big{font-size:32px;font-weight:900;line-height:1;flex:none}
.lt-mc-big sup{font-size:14px}
.lt-mc b{display:block;font-size:16px}
.lt-mc span span{font-size:14px;color:var(--sky-2);font-weight:700}
.lt-mc.off span span{color:var(--muted)}
.lt-mc .up{color:#8EF0C3}.lt-mc .down{color:#FFC2A1}
.lt-podium{display:grid;grid-template-columns:1fr 1.12fr 1fr;gap:12px;align-items:end;margin-bottom:12px}
.lt-podium:empty{display:none}
.lt-pd{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 10px 0;text-align:center;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.lt-pd[data-open]{cursor:pointer}
.lt-pd[data-open]:hover{border-color:var(--sky)}
.lt-pd.me{border:2px solid var(--gold);background:#FFFBF0}
.lt-pd .medal{width:40px;height:40px;font-size:18px;margin-bottom:4px;display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:900}
.lt-pd b{color:var(--navy);font-size:16px;line-height:1.2;overflow-wrap:anywhere}
.lt-pd-sch{color:var(--muted);font-size:13px;font-weight:700;overflow-wrap:anywhere}
.lt-pd-val{font-size:26px;font-weight:900}
.lt-step{align-self:stretch;margin-top:8px;color:#fff;font-weight:900;font-size:13px;letter-spacing:.5px;padding:6px 0}
.lt-pd.p1 .lt-step{background:#D9A21B;padding:18px 0}.lt-pd.p2 .lt-step{background:#8E97A6;padding:11px 0}.lt-pd.p3 .lt-step{background:#B8733A}
.medal{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:900;color:#fff;background:#D9A21B}
.medal.m2{background:#8E97A6}.medal.m3{background:#B8733A}
.lt-table{width:100%;border-collapse:collapse}
.lt-table th{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);text-align:left;padding:10px 12px;background:#FAFBFF;border-bottom:1px solid var(--line)}
.lt-table th.num{text-align:right}
.lt-table td{padding:10px 12px;border-bottom:1px solid #EEF2FA;vertical-align:middle}
.lt-table tr.lt-r{cursor:pointer}
.lt-table tr.lt-r:hover td,.lt-table tr.lt-r:focus-visible td{background:#F7FAFF}
.lt-table tr.me td{background:#FFF8E6}
.lt-table tr.me td:first-child{box-shadow:inset 4px 0 0 var(--gold)}
.lt-pos{font-size:17px;width:56px}
.lt-mvc,.lt-mvh{width:44px;padding-left:0!important;padding-right:0!important}
.lt-mv{font-size:12px;font-weight:900;white-space:nowrap}
.lt-mv.up{color:var(--green)}.lt-mv.down{color:#C2410C}.lt-mv.same{color:#A3AEC6}
.lt-mv.new{color:var(--navy);background:var(--pale);border-radius:999px;padding:1px 7px}
.lt-pd .lt-mv{margin-top:2px}
.lt-cls b{color:var(--ink)}
.lt-sch{display:block;color:var(--muted);font-size:13px;font-weight:700}
.lt-tag{display:inline-block;font-size:11px;font-weight:900;border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:2px;background:var(--gold);color:#fff;white-space:nowrap}
.lt-tag.hid{background:#FEF3C7;color:#92400E}
.lt-tag.star{background:var(--pale);color:var(--navy)}
.lt-barc{width:32%}
.lt-bar{height:10px;background:var(--pale);border-radius:99px;overflow:hidden}
.lt-bar i{display:block;height:100%;background:var(--sky);border-radius:99px}
tr.me .lt-bar i{background:var(--gold)}
.lt-val{font-weight:900;font-size:17px;white-space:nowrap}
.lt-part{font-size:13px;color:var(--muted);font-weight:700;white-space:nowrap}
.lt-ring{width:22px;height:22px;vertical-align:-6px;margin-right:4px}
.lt-podnote td,.lt-gap td{text-align:center;color:#8A96B3;font-weight:800;font-size:13px;padding:6px;background:#FBFCFF}
.lt-more{font:inherit;font-weight:800;color:var(--navy);background:none;border:0;cursor:pointer;text-decoration:underline}
tr.lt-det td{background:#F7FAFF;padding:4px 14px 14px}
.lt-det-h{display:block;color:var(--navy);padding-top:8px}
.lt-detgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;padding-top:10px}
.lt-detgrid h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.lt-detgrid .hint{margin:0 0 8px;font-size:14px}
.lt-top3{margin:0;padding-left:22px;font-weight:700}
.lt-top3 li span{color:var(--muted)}
.lt-spark{width:100%;max-width:280px;height:48px;display:block}
.lt-spark-l{display:flex;justify-content:space-between;max-width:280px;font-size:12px;font-weight:800;color:var(--muted)}
.lt-foot{font-size:13px;color:var(--muted);padding:10px 14px;font-weight:700}
.lt-anon{color:var(--muted);font-style:italic;font-weight:600}
.lt-hl-h{display:flex;align-items:baseline;gap:6px 10px;flex-wrap:wrap;margin:24px 0 10px}
.lt-hl-h h2{margin:0;color:var(--navy);font-size:21px}
.lt-hl-h small{color:var(--muted);font-weight:700;font-size:14px}
.lt-hls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.lt-hl{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:6px;border-top:5px solid var(--sky)}
.lt-hl.k-gold{border-top-color:var(--gold)}.lt-hl.k-green{border-top-color:var(--green)}.lt-hl.k-red{border-top-color:#F08A4B}
.lt-hl-empty{color:var(--muted);font-weight:700;grid-column:1/-1}
.lt-hl-ic{font-size:26px;line-height:1}
.lt-hl b{font-size:16px;line-height:1.3}
.lt-hl p{margin:0;color:var(--muted);font-size:14px;font-weight:600}
.lt-hl .small-btn{margin-top:auto;align-self:flex-start;text-decoration:none}
.lt-shade{position:fixed;inset:0;background:rgba(22,33,58,.35);z-index:60}
.lt-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);background:#F6F8FD;box-shadow:-10px 0 30px rgba(22,33,58,.2);z-index:61;padding:20px;overflow:auto}
.lt-drawer-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.lt-drawer-top h2{margin:0;color:var(--navy);margin-right:auto}
.lt-drawer .vl-intro{margin:0 0 12px}
.lt-drawer .vl-opts{grid-template-columns:minmax(0,1fr)}
body.lt-noscroll{overflow:hidden}
.lt-stage{position:fixed;inset:0;background:radial-gradient(circle at 50% 0,#3F6CB5,#16213A 75%);color:#fff;z-index:70;display:flex;flex-direction:column;align-items:center;padding:30px 20px;overflow:auto}
.lt-stage[hidden]{display:none}
.lt-stage h2{font-size:clamp(22px,4vw,46px);margin:0;text-align:center}
.lt-stage-s{color:var(--sky-2);font-weight:800;font-size:clamp(15px,2vw,24px);margin-bottom:20px;text-align:center}
.lt-stage ol{list-style:none;margin:0;padding:0;width:min(960px,100%)}
.lt-stage li{display:flex;align-items:center;gap:16px;background:rgba(255,255,255,.09);border-radius:16px;padding:12px 18px;margin-bottom:8px;font-size:clamp(16px,2.3vw,28px);font-weight:800;opacity:0;transform:translateY(16px);animation:ltIn .5s forwards}
.lt-stage li.me{background:var(--gold);color:var(--ink)}
.lt-stage li.gap{background:none;justify-content:center}
.lt-stage li .p{width:2.4em;font-weight:900;flex:none}
.lt-stage li .n{min-width:0}
.lt-stage li small{opacity:.7;font-size:.7em}
.lt-stage li .s{margin-left:auto;font-weight:900}
.lt-stage-x{position:absolute;top:14px;right:16px}
@keyframes ltIn{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.lt-stage li{animation:none;opacity:1;transform:none}}
@media (max-width:820px){
  .lt-hls{grid-template-columns:minmax(0,1fr)}
  .lt-acts{margin-left:0}
}
@media (max-width:640px){
  .lt-lab{width:100%}
  .lt-podium{gap:6px}
  .lt-pd{padding:10px 4px 0}
  .lt-pd b{font-size:13px}.lt-pd-sch{font-size:11px}.lt-pd-val{font-size:20px}
  .lt-pd .medal{width:32px;height:32px;font-size:15px}
  .lt-table td,.lt-table th{padding:9px 8px}
  .lt-tag{margin-left:0;margin-right:4px}
}
.lt-detgrid a.btn{text-decoration:none;display:inline-block}
.pill.lt-pill-off{background:#FEF3C7;color:#92400E}

/* v76: new logo in a white lozenge on the dark menus */
.wm-pill{display:inline-flex;align-items:center;background:#fff;border-radius:12px;padding:6px 14px 6px 8px;box-shadow:0 2px 8px rgba(0,0,0,.12);line-height:0}
.wm-pill a{display:block;line-height:0}
.wm-pill img{width:auto;height:66px;background:none;border-radius:0}
.wm-pill .wm-text{margin-left:-2px}
.brand.brand-wm{flex-direction:column;align-items:flex-start;gap:8px;margin:0 0 22px}
.brand-wm .wm-mark{border-radius:12px}
.brand-wm .wm-mark:hover{transform:scale(1.05) rotate(-3deg);filter:none}
.brand-wm .wm-sub{color:#fff;text-decoration:none;font-weight:900;font-size:15px;padding:0 0 0 12px;display:block}
@media (max-width:860px){
  .brand.brand-wm{margin:0 auto 0 0;flex-direction:row;align-items:center;gap:10px}
  aside .brand-wm .wm-pill a.wm-text{display:block}
  aside .brand-wm a.wm-sub{display:none}
  .wm-pill{padding:4px 10px 4px 6px}
  .wm-pill img{height:44px}
}
aside .brand-wm span.wm-pill{display:inline-flex}
aside .wm-pill a{padding:0;border-radius:0;gap:0;background:none}
aside .wm-pill a.wm-mark{border-radius:12px}

/* v80: on computers the left menu stays put while the page scrolls */
@media (min-width:861px){
  aside{position:sticky;top:0;align-self:start;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}
  aside::-webkit-scrollbar{width:8px}
  aside::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);border-radius:8px}
}

/* v81: header logo has no hover effect and goes to the home page (no longer opens the timer) */
.brand-wm .wm-mark,.brand-wm .wm-mark:hover{transform:none;filter:none;transition:none}

/* v86: League tables + School progress */
:root{--lg-xc:#2C5595;--lg-ex:#7FB7E8;--lg-wt:#F2B8A0;--lg-ns:#E3E8F2}
.lg-top{flex-wrap:wrap;gap:10px}
.lg-sp{flex:1}
.lg-roundpill{background:#FFF6E3!important;color:#8A5A00!important}
.btn-gold{background:var(--gold);color:var(--ink);border:0;font-weight:900;text-decoration:none;display:inline-block}
.lg-how{padding:12px 16px;margin-bottom:14px}
.lg-how-h{display:flex;align-items:center;gap:10px}.lg-how-h b{color:var(--navy)}
.lg-how-h button{margin-left:auto;background:none;border:0;font:inherit;font-weight:800;font-size:14px;color:var(--muted);cursor:pointer}
.lg-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;counter-reset:lgs}
.lg-step{background:var(--pale);border-radius:12px;padding:9px 11px;font-size:14.5px;line-height:1.35}
.lg-step b{display:block;color:var(--navy);font-size:15.5px}
.lg-step b::before{counter-increment:lgs;content:counter(lgs);display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--navy);color:#fff;font-size:11.5px;margin-right:6px;vertical-align:1px}
.lg-step a{color:var(--navy);font-weight:800}
.lg-how.min .lg-steps{display:none}
.lg-glance{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:10px;margin-bottom:14px}
.lg-tile{padding:13px 15px}
.lg-tile small{display:block;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.lg-tile .v{font-size:30px;font-weight:900;color:var(--navy);line-height:1.15}
.lg-tile .v sup{font-size:14px}
.lg-tile .lg-of{font-size:16px;font-weight:800}
.lg-tile .s{font-size:13.5px;color:var(--muted)}
.lg-tile.hero{background:var(--navy);border-color:var(--navy);color:#fff}
.lg-tile.hero small,.lg-tile.hero .s{color:#cfdcff}.lg-tile.hero .v{color:#fff}
.lg-mine{background:#fff;border:1px solid var(--line);border-left:6px solid var(--gold);border-radius:var(--radius);padding:14px 16px;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin-bottom:16px}
.lg-big{font-size:44px;font-weight:900;color:var(--navy);line-height:1}.lg-big sup{font-size:18px}
.lg-mine h3{margin:0;font-size:18px}.lg-mine p{margin:2px 0 0;color:var(--muted);font-size:14.5px}
.lg-nudge{margin-top:8px!important;color:var(--ink)!important}
.lg-up{color:var(--green);font-weight:800}.lg-dn{color:#C8442B;font-weight:800}
.lg-bandbar{display:flex;height:12px;border-radius:999px;overflow:hidden;margin:8px 0 4px;background:var(--lg-ns);max-width:420px}
.lg-bandbar i{display:block}
.lg-key{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.lg-key span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px;background:var(--c)}
.lg-ctl{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:12px}
.lg-ctl2{margin-bottom:10px}
.lg-round{min-width:0;font-size:14px;padding:7px 10px;border-radius:999px}
.lg-other{border-style:dashed;color:var(--muted)}
.lg-tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin:4px 0 12px;overflow-x:auto}
.lg-tabs button{font:inherit;font-weight:900;font-size:15.5px;border:0;background:none;color:var(--muted);padding:9px 14px;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.lg-tabs button.on{color:var(--navy);border-color:var(--navy)}
.lg-sorts{display:flex;gap:6px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line)}
.lt-chip.dis,.lt-chip:disabled{opacity:.45;cursor:not-allowed}
.lg-table{width:100%}
.lg-ibar{position:relative;height:10px;background:var(--pale);border-radius:999px;min-width:110px}
.lg-ibar i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--navy)}
.lg-ibar .lg-tk{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--gold)}
.lg-q{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:var(--pale);color:var(--navy);font-size:11px;font-weight:900;cursor:help;margin-left:3px}
.lg-why{flex-basis:100%}.lg-why summary{cursor:pointer;color:var(--navy);font-weight:800;list-style:none}.lg-why p{margin:6px 0 0;color:var(--ink)}
.lg-empty{padding:18px;text-align:center}.lg-empty b{color:var(--navy);font-size:17px}.lg-empty p{margin:4px 0 0;color:var(--muted)}
.lg-h2{margin:6px 2px 10px}
.lg-champs{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-bottom:10px}
.lg-champ{padding:12px 14px}.lg-champ h3{margin:0 0 6px;font-size:15.5px;color:var(--navy)}
.lg-champ ol{list-style:none;margin:0;padding:0}
.lg-champ li{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;padding:5px 0}
.lg-champ li small{display:block;color:var(--muted);font-size:12.5px}
.lg-champ li.me{background:#FFF6E3;border-radius:8px}
.lg-tot{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin:12px 0}
.lg-rec h2{padding:12px 14px 4px;font-size:17px;margin:0}
.lg-rec ul{list-style:none;margin:0;padding:0 14px 8px}
.lg-rec li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #EEF2FA}
.lg-rec li:last-child{border-bottom:0}.lg-rec li.me{font-weight:800}
.lg-setline{margin:14px 2px 0;font-size:14.5px;color:var(--muted)}
.lg-setline .linkish{font-weight:800;color:var(--navy)}
.lg-help h3{color:var(--navy);margin:18px 0 6px;font-size:16.5px}
.lg-help ol{padding-left:20px}.lg-help li{margin:5px 0}
.lg-gl dt{font-weight:900;color:var(--navy);margin-top:6px}.lg-gl dd{margin:0}
.lg-aw{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 5px;border-radius:999px;font-size:11.5px;font-weight:900;color:#fff;margin-left:3px}
.lg-aw.g{background:#D9A21B}.lg-aw.s{background:#9AA3B5}.lg-aw.b{background:#C98A4B}
.lg-awv .lg-aw{min-width:34px;height:34px;font-size:15px}
.lg-sec{margin:18px 2px 8px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.lg-sec h2{margin:0}.lg-sec small{color:var(--muted)}
.lg-gap{display:grid;grid-template-columns:160px 1fr 1fr;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid #EEF2FA;font-size:14.5px}
.lg-gap:last-child{border-bottom:0}
.lg-gap-h{font-size:11.5px;font-weight:900;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.lg-mini{display:flex;align-items:center;gap:8px;margin:2px 0}.lg-mini span:first-child{width:96px;font-size:13px}.lg-mini .lg-ibar{flex:1;min-width:60px}
.lg-band{font-size:12px;font-weight:900;border-radius:999px;padding:2px 9px;white-space:nowrap}
.lg-band.wt{background:#FDEDE6;color:#9A3B1A}.lg-band.ex{background:#E3F0FB;color:#1F5C93}.lg-band.xc{background:var(--navy);color:#fff}.lg-band.ns{background:var(--lg-ns);color:var(--muted)}
.lg-nick{color:var(--muted);font-size:13px}
.lg-trend{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:14px 16px}
.lg-trend h4{margin:0 0 6px;color:var(--navy)}
.lg-spark{width:100%;max-width:340px;height:auto}
.lg-trend-l{display:flex;gap:12px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.lg-yoy{list-style:none;margin:0;padding:0}.lg-yoy li{padding:3px 0}
#pgClasses tr.opened td{background:#F3F7FF}
@media (max-width:860px){
  .lg-steps{grid-template-columns:1fr 1fr}
  .lg-glance{grid-template-columns:1fr 1fr}.lg-glance .hero{grid-column:1/-1}
  .lg-mine{grid-template-columns:auto 1fr;gap:12px}.lg-mine .lg-act{grid-column:1/-1}
  .lg-tot,.lg-trend{grid-template-columns:1fr}
  .lg-gap{grid-template-columns:1fr;gap:4px}
  .lg-ibar{min-width:60px}
  .lg-top .lg-sp{display:none}
}
@media print{
  aside,.lg-top .tog,.lg-top select,#pgPrint{display:none!important}
  .app{display:block}
}

.lg-setline #vlPill{display:none}
.lg-table .lt-pos{white-space:nowrap;width:80px}
.lt-top3 li{margin:3px 0}
/* v88 champion certificates */
.lg-champ .lg-cert{display:inline-block;margin-top:3px;font-size:12.5px;font-weight:800;color:var(--navy);text-decoration:none;background:var(--pale,#EEF3FF);border-radius:999px;padding:2px 9px}
.lg-champ .lg-cert:hover{text-decoration:underline}
.lg-mycerts{padding:12px 16px;margin-bottom:10px;border:2px solid #F5CF5B;background:#FFFBEA}
.lg-mycerts h3{margin:0 0 6px;font-size:15.5px;color:var(--navy)}
.lg-mycerts ul{margin:0;padding:0;list-style:none;display:grid;gap:5px}
.lg-mycerts li{font-size:14.5px;line-height:1.4}
.lg-mycerts a{font-weight:800;color:var(--navy);margin-left:4px;white-space:nowrap}
/* v90 pupil bands: a small medal dot beside a score */
.bd{display:inline-block;width:11px;height:11px;border-radius:50%;margin-left:6px;vertical-align:1px;flex:none}
.bd-gold{background:radial-gradient(circle at 35% 35%,#F5CF5B,#D9A21B)}
.bd-silver{background:radial-gradient(circle at 35% 35%,#EEF1F6,#9AA3B2)}
.bd-bronze{background:radial-gradient(circle at 35% 35%,#E6A871,#B8733A)}
.bd-none{background:#fff;border:2px solid #C9D3E6;width:10px;height:10px}
.bd-slot{display:inline}
.bd-key{display:inline-flex;flex-wrap:wrap;gap:4px 12px;align-items:center}
.bd-key>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.bd-key .bd{margin-left:0}

/* v91: Teaching videos (DB v89_teaching_videos) */
.tv-intro{margin:-4px 0 18px;color:var(--muted);max-width:760px}
.tv-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;max-width:960px}
.tv-stage{position:relative;aspect-ratio:16/9;background:var(--navy);user-select:none;-webkit-user-select:none}
.tv-player,.tv-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tv-idle{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#fff;text-align:center;padding:16px;background:radial-gradient(circle at 50% 40%,#3B6BB5,var(--navy) 70%);border:0;font:inherit;width:100%}
.tv-idle b{font-size:20px}.tv-idle p{margin:0;opacity:.85}
.tv-playbtn{cursor:pointer}.tv-playbtn:hover .tv-big,.tv-playbtn:focus-visible .tv-big{transform:scale(1.08)}
.tv-big{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:var(--gold);color:var(--ink);font-size:30px;margin-bottom:8px;transition:transform .15s;padding-left:4px;box-sizing:border-box}
.tv-wm{position:absolute;z-index:2;pointer-events:none;color:#fff;opacity:.38;font-weight:800;font-size:clamp(11px,1.6vw,16px);text-shadow:0 1px 3px rgba(0,0,0,.7);white-space:nowrap;transition:left 2s ease,top 2s ease;transform:rotate(-8deg)}
.tv-fs{position:absolute;z-index:3;right:10px;top:10px;width:38px;height:38px;border-radius:10px;border:0;background:rgba(22,33,58,.55);color:#fff;font-size:20px;cursor:pointer}
.tv-fs:hover{background:rgba(22,33,58,.85)}
.tv-stage:fullscreen{aspect-ratio:auto;width:100vw;height:100vh;border-radius:0}
.tv-stage.tv-max{position:fixed;inset:0;z-index:1000;aspect-ratio:auto}
.tv-now{padding:16px 20px}.tv-now h2{margin:0;color:var(--navy);font-size:21px}.tv-now p{margin:4px 0 0;color:var(--muted)}
.tv-list{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;max-width:960px}
.tv-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:2px solid var(--line);border-radius:14px;padding:12px 14px;font:inherit;color:var(--ink);cursor:pointer}
.tv-item:hover{border-color:var(--sky)}.tv-item.on{border-color:var(--navy);background:var(--pale)}
.tv-num{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-weight:900}
.tv-txt{flex:1;min-width:0}.tv-txt b{display:block;line-height:1.25}.tv-txt small{color:var(--muted);font-weight:700}
.tv-soon{color:#9A6400!important}
.tv-go{flex:none;color:var(--navy);font-size:18px}
.tv-foot{color:var(--muted);font-size:14px;margin:14px 0 0}
.tv-foot button{border:0;background:none;padding:0;font-family:inherit}
.tv-agree{border:0;border-radius:22px;padding:26px;width:min(560px,calc(100vw - 32px));color:var(--ink);box-shadow:0 20px 60px rgba(22,33,58,.3)}
.tv-agree::backdrop{background:rgba(22,33,58,.55)}
.tv-agree h2{margin:0 0 10px;color:var(--navy)}
.tv-agree p{margin:0 0 10px}
.tv-tick{text-transform:none;letter-spacing:0;font-size:16px;display:flex;gap:10px;align-items:flex-start;background:var(--pale);border-radius:12px;padding:12px 14px;font-weight:800;color:var(--navy);margin:14px 0;cursor:pointer}
.tv-tick input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--navy)}
.tv-agree-btns{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.tv-agree-btns .btn:disabled{opacity:.45;cursor:not-allowed}
.tv-small{font-size:13px;color:var(--muted);margin:12px 0 0!important}
@media (max-width:560px){.tv-agree{padding:20px}.tv-agree-btns{flex-direction:column-reverse}.tv-agree-btns .btn{width:100%}.tv-now{padding:12px 14px}}
/* v93: grouped menu (Results, Toolbox, Your school) and phone Menu button */
aside .nav-main{display:contents}
aside .nav-menu-btn,aside a.nav-quick{display:none}
aside .tb-items a{padding:8px 14px 8px 28px;font-size:15px}
aside .nav-rule{border:0;border-top:1px solid rgba(255,255,255,.18);margin:8px 6px;width:auto}
aside .nav-grp[hidden]{display:none}
@media (max-width:860px){
  aside .nav-menu-btn{display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--navy);border:0;font:inherit;font-weight:900;font-size:15px;padding:8px 14px;border-radius:999px;cursor:pointer;order:3}
  aside a.nav-quick{display:flex;order:2;background:rgba(255,255,255,.12)}
  aside a.nav-quick[hidden]{display:none}
  aside .nav-main{display:none}
  body.nav-open aside .nav-main{display:flex;flex-direction:column;gap:4px;flex-basis:100%;order:4;padding-top:10px;margin-top:8px;border-top:1px solid rgba(255,255,255,.18)}
  body.nav-open aside .nav-main a,body.nav-open aside .nav-main .tb-btn{width:100%;padding:11px 14px;font-size:16px}
  body.nav-open aside .nav-main .tb-items a{padding-left:30px;font-size:15px}
  body.nav-open aside .nav-main .fb-btn{margin:6px 0 0 14px}
  body.nav-open aside .sp{display:block;order:5;flex-basis:100%;padding:10px 14px 0}
  aside .brand{order:1}
}
aside .nav-grp.on{background:rgba(255,255,255,.1);color:#fff}
aside .nav-grp.on:hover{background:#fff;color:var(--navy)}
aside .nav-grp .tb-caret{display:inline-block}

/* v96: printed pupil skipping record (pupil progress → Print) */
.pp-ph,.pp-pf,.pp-pband,.pp-pall{display:none}
@media print{
  body:has(#pp[open]){background:#fff}
  #pp[open]{display:block;position:static;inset:auto;margin:0;border-radius:0;padding:0;width:auto;max-width:none;max-height:none;overflow:visible;background:#fff;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:14px}
  #pp .pp-head,#pp .pp-ctrls,#pp .pp-all{display:none!important}
  /* header */
  #pp .pp-ph{display:flex;align-items:center;gap:18px;position:relative;overflow:hidden;border-radius:20px;padding:16px 22px 16px 16px;margin-bottom:14px;color:#fff;background:linear-gradient(120deg,#1E3F75 0%,#2C5595 55%,#4C78C4 100%)}
  #pp .pp-ph::before{content:"";position:absolute;right:-60px;top:-90px;width:300px;height:300px;border-radius:50%;border:16px solid rgba(255,255,255,.07)}
  #pp .pp-ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,#F5A623,#F5CF5B 50%,#89ACFE)}
  #pp .pp-ph-logo{width:104px;height:104px;flex:none;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.35)}
  #pp .pp-ph-txt{flex:1;min-width:0;position:relative}
  #pp .pp-ph-kick{font-size:11.5px;font-weight:900;letter-spacing:1.6px;text-transform:uppercase;color:#F5CF5B}
  #pp .pp-ph-name{font-size:30px;font-weight:900;line-height:1.1;margin:2px 0 4px;letter-spacing:-.4px}
  #pp .pp-ph-name .nick{display:inline-block;font-size:15px;font-style:italic;font-weight:800;color:#16213A;background:#F5CF5B;border-radius:999px;padding:2px 11px;vertical-align:5px;margin-left:4px}
  #pp .pp-ph-meta{font-size:13.5px;font-weight:700;color:#DDE6FF}
  #pp .pp-ph-meta *{color:inherit!important;background:none!important}
  #pp .pp-ph-school{font-size:14.5px;font-weight:900;margin-top:2px}
  #pp .pp-ph-side{flex:none;position:relative;text-align:right;display:flex;flex-direction:column;gap:2px;max-width:180px;font-size:12.5px;font-weight:700;color:#DDE6FF}
  #pp .pp-ph-side b{font-size:14px;font-weight:900;color:#fff}
  #pp .pp-ph-date{margin-top:6px;font-size:11.5px;opacity:.85}
  /* tiles */
  #pp .pp-stats{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
  #pp .pp-stats .stat{position:relative;overflow:hidden;border:0;border-radius:16px;padding:12px 14px 11px;background:#EEF3FF;break-inside:avoid}
  #pp .pp-stats .stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:#2C5595}
  #pp .pp-stats .stat small{font-size:11px;text-transform:uppercase;letter-spacing:.8px;font-weight:900;color:#5B6782}
  #pp .pp-stats .stat b{font-size:30px;line-height:1.1}
  #pp .pp-stats .stat:nth-child(2){background:#FFF6DC}#pp .pp-stats .stat:nth-child(2)::before{background:#E0A100}#pp .pp-stats .stat:nth-child(2) b{color:#8A5A00}
  #pp .pp-stats .stat:nth-child(3){background:#E6F6EF}#pp .pp-stats .stat:nth-child(3)::before{background:#1F9D6B}#pp .pp-stats .stat:nth-child(3) b{color:#1F9D6B!important}
  #pp .pp-stats .stat:nth-child(4){background:#F1EEFB}#pp .pp-stats .stat:nth-child(4)::before{background:#6D5BC9}#pp .pp-stats .stat:nth-child(4) b{color:#4B3BA3}
  #pp .pp-sub{font-size:11.5px}
  /* the summary sentence */
  #pp .pp-say{position:relative;background:#FFFBEA;border:2px solid #F5CF5B;border-radius:16px;padding:10px 16px 10px 46px;margin:0 0 12px;font-size:14.5px;line-height:1.45}
  #pp .pp-say::before{content:"★";position:absolute;left:14px;top:50%;transform:translateY(-52%);font-size:22px;color:#E0A100}
  #pp .pp-say:empty{display:none}
  /* chart */
  #pp .pp-chart{border:1px solid #DCE4F5;border-radius:16px;padding:8px 12px 4px;margin-bottom:6px}
  #pp .pp-chart::before{content:"Progress chart";display:block;font-size:11px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;color:#5B6782;margin:2px 0 0 4px}
  #pp .pp-chart svg{width:100%;height:58mm}
  #pp .pp-key{margin:0 4px 12px;font-size:11.5px}
  /* rounds table */
  #pp > .card{border-radius:16px;break-inside:avoid;margin-bottom:6px}
  #pp > .card th{background:#2C5595;color:#fff;font-size:11px;letter-spacing:.8px;padding:8px 12px}
  #pp > .card td{padding:7px 12px;font-size:14px}
  #pp > .card tbody tr:nth-child(even) td{background:#F6F8FD}
  #pp .hide-sm{display:table-cell!important}
  #pp .rn-full{display:inline!important}#pp .rn-short{display:none!important}
  #pp .pp-pband{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-size:11px;font-weight:700;color:#5B6782;margin:0 4px 12px}
  /* every score */
  #pp .pp-pall{display:block;break-inside:avoid-page}
  #pp .pp-pall[hidden]{display:none}
  #pp .pp-pall h3{margin:0 0 6px 2px;font-size:11px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;color:#5B6782}
  #pp .pp-chips{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:5px}
  #pp .pp-chips li{display:flex;flex-direction:column;align-items:center;min-width:52px;padding:4px 6px 3px;border-radius:12px;background:#EEF3FF;border-top:4px solid #2C5595;break-inside:avoid}
  #pp .pp-chips li.ch-pg{background:#FDF0DC;border-top-color:#D97706}
  #pp .pp-chips li.ch-pb{box-shadow:inset 0 0 0 2px #E0A100;background:#FFF6DC}
  #pp .pp-chips b{font-size:15.5px;font-weight:900;color:#16213A;line-height:1.1}
  #pp .pp-chips li.ch-pb b::after{content:" PB";font-size:9.5px;font-weight:900;color:#8A5A00;vertical-align:3px}
  #pp .pp-chips span{font-size:10.5px;font-weight:700;color:#5B6782;white-space:nowrap}
  #pp .pp-chips.many{gap:4px}#pp .pp-chips.many li{min-width:44px;padding:3px 4px 2px;border-radius:10px;border-top-width:3px}#pp .pp-chips.many b{font-size:13.5px}#pp .pp-chips.many span{font-size:9.5px}
  #pp .pp-hint{font-size:11px!important;line-height:1.4;color:#5B6782;margin:4px 2px 12px!important}
  /* footer */
  #pp .pp-pf{display:flex;align-items:center;gap:12px;border-top:2px solid #DCE4F5;padding-top:10px;font-size:13px;color:#16213A;break-inside:avoid}
  #pp .pp-pf img{width:40px;height:40px;flex:none}
  #pp .pp-pf div{flex:1}
  #pp .pp-pf b{color:#2C5595;font-weight:900}
  #pp .pp-pf-url{text-align:right;font-size:11px;font-weight:800;color:#5B6782;line-height:1.3}
}

/* v95: drag a spreadsheet onto Classes & pupils; no line under the Toolbox */
.drop.drop-sm{flex-direction:row;justify-content:flex-start;gap:14px;text-align:left;padding:14px 16px;margin:0 0 12px}
.drop.drop-sm .drop-ic{font-size:26px}
.drop.drop-sm .drop-txt{display:flex;flex-direction:column;gap:2px}
.drop.drop-sm .drop-or{color:var(--muted);font-weight:600;font-size:14px}
.drop.drop-sm b{color:var(--navy)}
.drop.drop-sm:hover{background:var(--pale);border-color:var(--navy)}
.pupils-drop-hint{display:none}
body.file-drag .pupils-drop-hint{display:block;position:sticky;top:10px;z-index:30;margin:0 0 12px;padding:12px 16px;border-radius:14px;background:var(--navy);color:#fff;font-weight:800;text-align:center;box-shadow:0 8px 24px rgba(22,33,58,.25)}
body.file-drag .pupils-drop-hint::before{content:"📄  "}
body.file-drag #rtWhole,body.file-drag #teamDetail .paste{transition:background .12s,outline-color .12s}
.drop-hot{outline:3px dashed var(--navy);outline-offset:-3px;background:var(--pale)!important}
#teamDetail .paste.drop-hot #classDrop{background:#fff;border-color:var(--navy)}
@media (max-width:600px){.drop.drop-sm{padding:12px}.drop.drop-sm small{font-size:13px}}
.touch-only{display:none}
@media (hover:none),(pointer:coarse){.drag-only{display:none!important}.touch-only{display:inline}}

/* v99: same printed look for School progress and League tables (body.pr-pretty is set just before printing) */
.print-head,.print-foot{display:none}
@media print{
  body.pr-pretty{background:#fff}
  body.pr-pretty main{padding:0;max-width:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.pr-pretty .lg-top{display:none!important}
  body.pr-pretty .print-head{display:flex;align-items:center;gap:18px;position:relative;overflow:hidden;border-radius:20px;padding:14px 22px 16px 14px;margin-bottom:16px;color:#fff;background:linear-gradient(120deg,#1E3F75 0%,#2C5595 55%,#4C78C4 100%)}
  body.pr-pretty .print-head::before{content:"";position:absolute;right:-60px;top:-90px;width:300px;height:300px;border-radius:50%;border:16px solid rgba(255,255,255,.07)}
  body.pr-pretty .print-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,#F5A623,#F5CF5B 50%,#89ACFE)}
  body.pr-pretty .print-head img{width:92px;height:92px;flex:none;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.35)}
  body.pr-pretty .ph-txt{flex:1;min-width:0;position:relative}
  body.pr-pretty .ph-kick{font-size:11.5px;font-weight:900;letter-spacing:1.6px;text-transform:uppercase;color:#F5CF5B}
  body.pr-pretty .ph-title{font-size:30px;font-weight:900;line-height:1.1;margin:2px 0 4px;letter-spacing:-.4px}
  body.pr-pretty .ph-sub{font-size:14px;font-weight:700;color:#DDE6FF}
  body.pr-pretty .ph-side{flex:none;position:relative;text-align:right;display:flex;flex-direction:column;gap:4px;max-width:220px;font-size:12px;font-weight:700;color:#DDE6FF}
  body.pr-pretty .ph-side b{font-size:15px;font-weight:900;color:#fff}
  body.pr-pretty .print-foot{display:flex;align-items:center;gap:12px;border-top:2px solid #DCE4F5;margin-top:18px;padding-top:10px;font-size:13px;color:#16213A;break-inside:avoid}
  body.pr-pretty .print-foot img{width:40px;height:40px;flex:none}
  body.pr-pretty .print-foot div{flex:1}
  body.pr-pretty .print-foot b{color:#2C5595;font-weight:900}
  body.pr-pretty .pf-url{text-align:right;font-size:11px;font-weight:800;color:#5B6782;line-height:1.3}
  /* section headings, cards and tables */
  body.pr-pretty .lg-sec{margin:16px 2px 8px;break-after:avoid}
  body.pr-pretty .lg-sec h2{font-size:19px;color:#2C5595;padding-bottom:2px;border-bottom:3px solid #F5CF5B}
  body.pr-pretty .lg-sec small{font-size:12px}
  body.pr-pretty .card,body.pr-pretty .lg-mine,body.pr-pretty .lg-glance>*{break-inside:avoid;box-shadow:none}
  body.pr-pretty .lg-table thead th{background:#2C5595;color:#fff;font-size:11px;letter-spacing:.6px}
  body.pr-pretty .lg-table tbody tr:nth-child(even) td{background:#F6F8FD}
  body.pr-pretty .lg-table td{padding-top:7px;padding-bottom:7px}
  body.pr-pretty #pgGroups thead th{background:#2C5595;color:#fff;font-size:11px;letter-spacing:.6px}
  body.pr-pretty .lg-table td:first-child{white-space:nowrap}
  body.pr-pretty tr{break-inside:avoid}
  body.pr-pretty .hide-sm{display:table-cell!important}
  body.pr-pretty .lg-glance{grid-template-columns:1.3fr 1fr 1fr 1fr}
  /* league tables: drop the on-screen controls (the header says which league, period and table) */
  body.pr-pretty #lgHow,body.pr-pretty .lg-ctl,body.pr-pretty #lgTabs,body.pr-pretty #lgSorts,body.pr-pretty #lgSetLine,body.pr-pretty #lgHidNote,body.pr-pretty .lg-mine .lg-act,body.pr-pretty .lg-panel[hidden]{display:none!important}
  body.pr-pretty #lgSchools,body.pr-pretty #lgClasses>.card{border-radius:16px;overflow:hidden}
  body.pr-pretty .lt-foot a,body.pr-pretty .lt-foot button{display:none}
}

/* v97: getting started checklist on the Dashboard */
.gs-card{background:#fff;border:2px solid var(--sky-2,#B9CDFE);border-radius:var(--radius);padding:20px 22px;margin:0 0 20px}
.gs-head{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.gs-head h2{margin:0 0 2px;color:var(--navy);font-size:22px}
.gs-head p{margin:0;color:var(--muted);font-size:15px}
.gs-tools{display:flex;gap:8px;flex-wrap:wrap}
.gs-tools a{text-decoration:none}
.gs-bar{height:8px;border-radius:99px;background:var(--pale);margin:14px 0 6px;overflow:hidden}
.gs-bar span{display:block;height:100%;background:var(--green);border-radius:99px;transition:width .4s ease}
.gs-list{list-style:none;margin:0;padding:0}
.gs-list li{display:grid;grid-template-columns:30px 1fr auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.gs-list li:first-child{border-top:0}
.gs-tick{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-weight:900;font-size:15px;color:#fff}
.gs-list li.done .gs-tick{background:var(--green);border-color:var(--green)}
.gs-list li.done .gs-txt b{color:var(--muted);font-weight:700}
.gs-list li.next{background:var(--pale);margin:0 -12px;padding:12px;border-radius:12px;border-top-color:transparent}
.gs-list li.next+li{border-top-color:transparent}
.gs-list li.next .gs-tick{border-color:var(--navy)}
.gs-list li.wait .gs-txt b{color:var(--muted)}
.gs-txt b{display:block;color:var(--ink)}
.gs-txt small{display:block;color:var(--muted);font-size:14px;margin-top:2px}
.gs-next{display:inline-block;background:var(--navy);color:#fff;font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;border-radius:99px;padding:2px 8px;margin-left:6px;vertical-align:2px}
.gs-acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.gs-acts a.small-btn{text-decoration:none;display:inline-block}
.gs-list li.next .gs-go{background:var(--navy);color:#fff}
.gs-list li.next .small-btn:not(.gs-go){background:#fff}
.gs-how{font-size:14px;font-weight:800;color:var(--navy)}
.gs-all .gs-bar{margin-bottom:0}
.gs-showlink{text-align:center;margin-top:18px}
.gs-show{border:0;background:none;color:var(--navy);font:inherit;font-weight:800;font-size:14px;text-decoration:underline;cursor:pointer}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:640px){
  .gs-card{padding:16px}
  .gs-list li{grid-template-columns:30px 1fr}
  .gs-acts{grid-column:2;justify-content:flex-start}
  .gs-list li.next{margin:0 -8px;padding:12px 8px}
}
/* v98: hidden-league note and "School not shown" rows */
.lg-hidnote{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:#f3f5f9;border:1px dashed #b9c3d6;font-size:14px;line-height:1.45;color:var(--ink)}
.lg-hidnote button{border:0;background:none;padding:0;font:inherit;font-weight:800;color:var(--navy);text-decoration:underline;cursor:pointer}
tr.lt-masked .lt-cls b{color:var(--muted);font-weight:700;font-style:italic}

/* v100: the pupil progress pop-up gets the same look as the printed record */
@media screen{
  #pp{padding:0 0 22px;width:min(800px,calc(100vw - 24px));background:#fff;border-radius:24px;overflow:auto}
  #pp > :not(.pp-ph){margin-left:24px;margin-right:24px}
  #pp .pp-head{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:0;padding:0}
  #pp .pp-ph{display:flex;align-items:center;gap:18px;position:relative;overflow:hidden;padding:18px 20px 22px 18px;margin-bottom:16px;color:#fff;background:linear-gradient(120deg,#1E3F75 0%,#2C5595 55%,#4C78C4 100%)}
  #pp .pp-ph::before{content:"";position:absolute;right:-70px;top:-100px;width:320px;height:320px;border-radius:50%;border:18px solid rgba(255,255,255,.07);pointer-events:none}
  #pp .pp-ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,#F5A623,#F5CF5B 50%,#89ACFE)}
  #pp .pp-ph-logo{width:96px;height:96px;flex:none;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.35),0 6px 18px rgba(0,0,0,.2)}
  #pp .pp-ph-txt{flex:1;min-width:0;position:relative}
  #pp .pp-ph-kick{font-size:11.5px;font-weight:900;letter-spacing:1.6px;text-transform:uppercase;color:#F5CF5B}
  #pp .pp-ph-name{font-size:30px;font-weight:900;line-height:1.1;margin:2px 0 5px;letter-spacing:-.4px}
  #pp .pp-ph-name .nick{display:inline-block;font-size:15px;font-style:italic;font-weight:800;color:#16213A;background:#F5CF5B;border-radius:999px;padding:2px 11px;vertical-align:5px;margin-left:4px}
  #pp .pp-ph-meta{font-size:14px;font-weight:700;color:#DDE6FF}
  #pp .pp-ph-meta *{color:inherit!important;background:none!important}
  #pp .pp-ph-school{font-size:15px;font-weight:900;margin-top:2px}
  #pp .pp-ph-side{display:none}
  #pp .pp-ph .pp-actions{position:absolute;top:14px;right:14px;z-index:1}
  #pp .pp-ph .small-btn{background:rgba(255,255,255,.14);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
  #pp .pp-ph .small-btn:hover{background:#fff;color:var(--navy)}
  #pp .pp-ph .pp-close{background:#fff;box-shadow:none;color:var(--navy)}
  #pp .pp-ph-txt{padding-top:28px}
  /* period / event pickers */
  #pp .pp-ctrls{align-items:flex-end;margin-bottom:14px}
  #pp .pp-ctrls select{min-width:170px;padding:8px 12px;border-radius:999px;background:var(--pale);border-color:var(--pale);color:var(--navy)}
  /* tiles */
  #pp .pp-stats{gap:10px;margin-bottom:12px}
  #pp .pp-stats .stat{position:relative;overflow:hidden;border:0;border-radius:16px;padding:12px 14px 11px 18px;background:#EEF3FF}
  #pp .pp-stats .stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:#2C5595}
  #pp .pp-stats .stat small{font-size:11px;text-transform:uppercase;letter-spacing:.8px;font-weight:900;color:#5B6782}
  #pp .pp-stats .stat b{font-size:30px;line-height:1.1}
  #pp .pp-stats .stat:nth-child(2){background:#FFF6DC}#pp .pp-stats .stat:nth-child(2)::before{background:#E0A100}#pp .pp-stats .stat:nth-child(2) b{color:#8A5A00}
  #pp .pp-stats .stat:nth-child(3){background:#E6F6EF}#pp .pp-stats .stat:nth-child(3)::before{background:#1F9D6B}#pp .pp-stats .stat:nth-child(3) b{color:#1F9D6B!important}
  #pp .pp-stats .stat:nth-child(4){background:#F1EEFB}#pp .pp-stats .stat:nth-child(4)::before{background:#6D5BC9}#pp .pp-stats .stat:nth-child(4) b{color:#4B3BA3}
  /* summary sentence */
  #pp .pp-say{position:relative;background:#FFFBEA;border:2px solid #F5CF5B;border-radius:16px;padding:10px 16px 10px 46px;line-height:1.45}
  #pp .pp-say::before{content:"★";position:absolute;left:14px;top:50%;transform:translateY(-52%);font-size:22px;color:#E0A100}
  #pp .pp-say:empty{display:none}
  /* chart */
  #pp .pp-chart{border-radius:16px;padding:8px 12px 4px}
  #pp .pp-chart::before{content:"Progress chart";display:block;font-size:11px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;color:#5B6782;margin:2px 0 0 4px}
  /* rounds table */
  #pp > .card{border-radius:16px;margin-bottom:6px}
  #pp > .card th{background:#2C5595;color:#fff;font-size:11.5px;letter-spacing:.8px}
  #pp > .card tbody tr:nth-child(even) td{background:#F6F8FD}
  #pp .pp-pband{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-size:12px;font-weight:700;color:#5B6782;margin-top:0;margin-bottom:14px}
  /* every score as chips (the old "Every score" list is left for printing only) */
  #pp .pp-all{display:none}
  #pp .pp-pall{display:block}
  #pp .pp-pall[hidden]{display:none}
  #pp .pp-pall h3{margin:0 0 8px 2px;font-size:11.5px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;color:#5B6782}
  #pp .pp-chips{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
  #pp .pp-chips li{display:flex;flex-direction:column;align-items:center;min-width:58px;padding:5px 8px 4px;border-radius:12px;background:#EEF3FF;border-top:4px solid #2C5595;cursor:default}
  #pp .pp-chips li.ch-pg{background:#FDF0DC;border-top-color:#D97706}
  #pp .pp-chips li.ch-pb{box-shadow:inset 0 0 0 2px #E0A100;background:#FFF6DC}
  #pp .pp-chips li.ch-pb b::after{content:" PB";font-size:9.5px;font-weight:900;color:#8A5A00;vertical-align:3px}
  #pp .pp-chips b{font-size:17px;font-weight:900;color:#16213A;line-height:1.1}
  #pp .pp-chips span{font-size:11px;font-weight:700;color:#5B6782;white-space:nowrap}
  #pp .pp-hint{font-size:12.5px!important;color:#5B6782;margin:10px 24px 0!important}
}
@media screen and (max-width:560px){
  #pp{width:calc(100vw - 16px);max-height:calc(100vh - 16px);border-radius:20px;padding-bottom:16px}
  #pp > :not(.pp-ph){margin-left:14px;margin-right:14px}
  #pp .pp-hint{margin:10px 14px 0!important}
  #pp .pp-ph{gap:12px;padding:14px 14px 18px}
  #pp .pp-ph-logo{width:58px;height:58px;align-self:flex-start;margin-top:42px}
  #pp .pp-ph-txt{padding-top:42px}
  #pp .pp-ph .pp-actions{top:10px;right:10px;left:14px;justify-content:flex-end}
  #pp .pp-ph-name{font-size:23px}
  #pp .pp-ph-name .nick{font-size:13px;vertical-align:3px}
  #pp .pp-ph-meta{font-size:13px}
  #pp .pp-stats .stat{padding:10px 10px 9px 14px}
  #pp .pp-stats .stat b{font-size:24px}
  #pp .pp-ctrls select{min-width:0;max-width:100%}
  #pp .pp-chips li{min-width:52px;padding:4px 6px 3px}
}

/* v104 – simple league tables: class → whole school → leagues */
.lg-views{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;align-items:center;margin:4px 0 14px;padding:12px 16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.lg-vgrp{display:contents}
.lg-vlab{font-size:11.5px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.lg-vrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.lg-vgrp+.lg-vgrp .lg-vlab,.lg-vgrp+.lg-vgrp .lg-vrow{padding-top:10px;border-top:1px solid var(--line)}
.lg-vleagues{display:flex;flex-wrap:wrap;gap:6px}
.lg-vbtn{font:inherit;font-weight:900;font-size:14.5px;border:2px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:7px 14px;cursor:pointer;white-space:nowrap}
.lg-vbtn small{font-weight:700;font-size:11.5px;color:var(--muted)}
.lg-vbtn:hover{border-color:var(--sky)}
.lg-vbtn.on{background:var(--navy);border-color:var(--navy);color:#fff}
.lg-vbtn.on small{color:var(--sky-2)}
.lg-vclass{display:inline-flex;align-items:center;border:2px solid var(--line);border-radius:999px;background:#fff;overflow:hidden}
.lg-vclass .lg-vbtn{border:0;border-radius:0;padding-right:8px}
.lg-vclass select{font:inherit;font-weight:800;font-size:14.5px;border:0;border-left:1px solid var(--line);background:transparent;color:var(--navy);padding:7px 10px;max-width:190px;cursor:pointer}
.lg-vclass.on{border-color:var(--navy);background:var(--navy)}
.lg-vclass.on .lg-vbtn{background:var(--navy);color:#fff}
.lg-vclass.on select{color:#fff;border-left-color:rgba(255,255,255,.35)}
.lg-vclass.on select option{color:var(--ink)}
.lg-measure button.dis{opacity:.45;cursor:not-allowed}
.lg-classline{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between;margin:0 2px 10px}
.lg-classline:empty{display:none}
.lg-classline h2{margin:0;font-size:21px;color:var(--navy)}
.lg-classline p{margin:2px 0 0;color:var(--muted);font-size:14.5px}
.lg-nudge-t{color:#B5530B}
.lg-restrow td{font-size:14px;color:var(--muted);padding:10px 12px;background:#FAFBFE}
.lg-restrow .pname{font-size:14px}
#lgBRows tr[data-cls]{cursor:pointer}
#lgBRows tr[data-cls]:hover td{background:var(--pale)}
#lgTabs{margin-top:0}
@media (max-width:720px){
  .lg-views{padding:10px 12px;gap:6px;grid-template-columns:1fr}
  .lg-vgrp+.lg-vgrp .lg-vrow{border-top:0;padding-top:0}
  .lg-vrow{width:100%}
  .lg-vclass{flex:1;min-width:0}.lg-vclass select{flex:1;max-width:none;min-width:0}
  .lg-vbtn{font-size:13.5px;padding:6px 11px}
  .lg-measure{width:100%;overflow-x:auto}.lg-measure button{white-space:nowrap;padding:7px 10px;font-size:13.5px}
}
@media print{
  body.pr-pretty #lgViews,body.pr-pretty .lg-classline .btn,body.pr-pretty #lgTabs,body.pr-pretty .lg-ctl{display:none!important}
}

/* v105 – League settings page */
.set-lead{max-width:860px;font-size:16px;color:var(--ink);margin:0 0 16px}
.set-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
.set-card{padding:18px 20px}
.set-card h2{margin:0 0 10px;font-size:19px;color:var(--navy)}
.set-card h3{margin:0 0 8px;font-size:17px;color:var(--navy)}
.set-card ul,.set-card ol{margin:0;padding-left:20px}
.set-card li{margin:0 0 7px;line-height:1.45}
.set-card p{margin:0 0 8px;line-height:1.5}
.set-ladder{list-style:none;padding:0!important;counter-reset:none}
.set-ladder li{padding:10px 12px;border:1px solid var(--line);border-radius:12px;margin:0 0 8px;background:#FAFBFE}
.set-ladder b{display:block;color:var(--ink)}
.set-ladder small{display:block;color:var(--muted);font-size:13.5px;line-height:1.4;margin-top:2px}
.set-ladder small b{display:inline;color:var(--navy)}
.set-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
#vlHost .vl-opts{margin-top:0;grid-template-columns:minmax(0,1fr)}
.vl-more{margin:14px 2px 0;font-weight:800}
@media (max-width:860px){.set-grid,.set-info{grid-template-columns:1fr}}

/* v107 – Enter scores: How it works, spreadsheet upload, paste, paper score sheet */
.sc-top h1{margin-right:4px}
@media (max-width:700px){.sc-top .lg-sp{display:none}.sc-top .btn{flex:1 1 auto;padding-left:10px;padding-right:10px}}
.sc-ways dt{font-size:15.5px}
.sc-k{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-weight:900;font-size:12px;color:#fff;vertical-align:-3px}
.sc-k.ok,.xs-ok .xs-ic{background:var(--green)}.sc-k.warn,.xs-warn .xs-ic{background:var(--gold)}.sc-k.dup,.xs-dup .xs-ic{background:#8D99B3}.sc-k.err,.xs-err .xs-ic{background:#D64545}
.sc-drop-hint{display:none}
#v-scores.drop-hot .sc-drop-hint{display:block;position:sticky;top:10px;z-index:30;margin:0 0 12px;padding:12px 16px;border-radius:14px;background:var(--navy);color:#fff;font-weight:800;text-align:center;box-shadow:0 8px 24px rgba(22,33,58,.25)}
#v-scores.drop-hot .sc-drop-hint::before{content:"📊  "}
#v-scores.drop-hot{background:transparent!important;outline-offset:6px;border-radius:18px}
.xs-steps{display:grid;gap:14px;margin-top:8px}
.xs-step{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}
.xs-step>div{flex:1;min-width:0}.xs-step b{color:var(--navy);font-size:17px}.xs-step p{margin:4px 0 10px}
.xs-n{flex:0 0 34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center;font-size:17px}
.xs-btns{display:flex;gap:8px;flex-wrap:wrap}.xs-or{margin:10px 0 0!important}
.xs-step .drop{margin:10px 0 0}
.xs-closed{margin:10px 0 0;padding:10px 14px;font-size:14.5px}
.xs-file{margin:4px 0 10px;font-weight:700;color:var(--ink);word-break:break-word}
.xs-note{display:block;font-weight:600;color:#7A4B00;background:#FFF4D6;border-radius:10px;padding:8px 12px;margin-top:8px}
.xs-sum{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.xs-chip{border-radius:999px;padding:6px 12px;font-size:14.5px;font-weight:700;background:#fff;border:1px solid var(--line)}
.xs-chip.ok{background:var(--greenbg);border-color:#BFE6D3;color:#156B49}.xs-chip.warn{background:#FFF4D6;border-color:#F7D894;color:#7A4B00}
.xs-chip.dup{background:#F1F3F8;color:#4A5570}.xs-chip.err{background:#FDECEC;border-color:#F4C2C2;color:#A42F2F}
.xs-bar{margin:0 0 12px}
.xs-h{margin:6px 0 8px;color:var(--navy);font-size:16.5px}
.xs-table{padding:0;overflow:auto;margin:0 0 12px}.xs-table table{width:100%}
.xs-table td{padding:8px 10px;vertical-align:middle;border-top:1px solid var(--line)}.xs-table tr:first-child td{border-top:0}
.xs-table td:first-child{width:34px}.xs-ic{display:inline-flex;width:22px;height:22px;border-radius:50%;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:12.5px}
.xs-table .name{font-weight:700}.xs-table .name small{display:block;font-weight:600;color:var(--muted);font-size:12.5px}
.xs-table .num{text-align:right;white-space:nowrap;width:1%}.xs-why{color:var(--muted);font-size:14px}
.xs-err .xs-why{color:#A42F2F;font-weight:700}.xs-warn .xs-why{color:#7A4B00;font-weight:700}
.xs-pb{display:inline-block;background:var(--greenbg);color:#156B49;border-radius:999px;font-size:11.5px;font-weight:800;padding:2px 7px;margin-left:4px}
.xs-all summary{cursor:pointer;font-weight:800;color:var(--navy);margin:0 0 10px}
.xs-hi{display:flex;gap:10px;align-items:flex-start;background:#FFF4D6;border-radius:12px;padding:10px 14px;font-weight:700;margin:4px 0 0}
.xs-donebox{text-align:center;padding:20px 10px 6px}.xs-donebox h3{color:var(--navy);font-size:22px;margin:10px 0 6px}
.xs-tick{width:64px;height:64px;margin:0 auto;border-radius:50%;background:var(--green);color:#fff;font-size:34px;font-weight:900;display:flex;align-items:center;justify-content:center}
@media (max-width:560px){.xs-step{padding:12px;gap:10px}.xs-n{flex-basis:28px;height:28px;font-size:15px}.xs-why{display:block}.xs-table tr{display:grid;grid-template-columns:30px 1fr auto}.xs-table td.xs-why{grid-column:2/4;padding-top:0}.xs-table td{border-top:0}.xs-table tr{border-top:1px solid var(--line)}}
@media print{#scHelp,#scHelpShade,.sc-top .btn{display:none!important}}

/* v108 – several goes per pupil in one box ("45, 52, 48"), Goes column */
input.sc-in{width:120px;font:inherit;font-weight:800;font-size:18px;text-align:right;border:2px solid var(--line);border-radius:12px;padding:8px 12px;color:var(--ink);background:#fff}
input.sc-in:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 4px var(--pale)}
input.sc-in.filled{border-color:var(--sky);background:#F8FAFF}
input.sc-in.high{border-color:#E0A100;background:#FFF8E6}
.gn{display:block;font-size:12px;font-weight:800;color:var(--navy);margin-top:3px;white-space:nowrap}.gn:empty{display:none}
.goes-c{color:var(--muted);font-weight:700}
.bad-go{background:#FDECEC!important;color:#A42F2F!important}
@media (max-width:700px){input.sc-in{width:100px}}
.xs-goes{font-weight:800;color:var(--ink)}.xs-goes s{color:var(--muted);font-weight:600}

/* v109 – 📱 Tap counter (full-screen class queue) */
body.tc-on{overflow:hidden}
.tc{position:fixed;inset:0;z-index:90;background:linear-gradient(160deg,#1E3F75,#2C5595 60%,#4C78C4);color:#fff;display:flex;flex-direction:column;height:100vh;height:100dvh;-webkit-user-select:none;user-select:none}
.tc[hidden]{display:none}
.tc-top{display:flex;align-items:center;gap:10px;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top))}
.tc-top b{font-size:17px}.tc-q{flex:1;text-align:center;font-weight:700;opacity:.85;font-size:14.5px}
.tc-x{border:0;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font:inherit;font-weight:800;padding:8px 14px;cursor:pointer}
.tc-body{flex:1;overflow:auto;display:flex;justify-content:center;padding:0 16px 16px}
.tc-pane{width:100%;max-width:560px;display:flex;flex-direction:column;gap:12px}
.tc-pane[hidden]{display:none}
.tc-lead{margin:4px 0 6px;font-size:16px;opacity:.92}
.tc-lab{font-weight:800;font-size:13px;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.tc-sel{font:inherit;font-weight:800;font-size:18px;padding:12px;border-radius:14px;border:0;color:var(--ink)}
.tc-meta{margin:0;font-size:14px;opacity:.8}
.tc-plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;max-height:38vh;overflow:auto;padding:2px}
.tc-p{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:0;border-radius:14px;background:rgba(255,255,255,.12);color:#fff;font:inherit;font-weight:800;padding:10px 12px;cursor:pointer}
.tc-p small{font-weight:600;opacity:.8;font-size:12.5px}.tc-p.done{background:rgba(31,157,107,.45)}
.tc-big{border:0;border-radius:18px;font:inherit;font-weight:900;font-size:21px;padding:18px;cursor:pointer;background:#fff;color:var(--navy);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.tc-big.go{background:var(--gold);color:#16213A}.tc-big:disabled{opacity:.5}
.tc-start{font-size:26px;padding:28px}
.tc-row{display:flex;gap:10px}.tc-row .tc-sm{flex:1}
.tc-sm{border:2px solid rgba(255,255,255,.35);border-radius:14px;background:transparent;color:#fff;font:inherit;font-weight:800;font-size:15.5px;padding:12px;cursor:pointer}
.tc-sm:disabled{opacity:.4}.tc-sm.wide{width:100%}
.tc-hint{margin:0;font-size:13.5px;opacity:.75}
.tc-who{margin:18px 0 6px;text-align:center;font-size:34px;font-weight:900;line-height:1.15}
.tc-who small{display:block;font-size:15px;font-weight:700;opacity:.85;margin-top:6px}
.tc-who.sm{font-size:22px;margin:4px 0 0}
.tc-clock{text-align:center;font-size:56px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.tc-clock.low{color:var(--gold)}
.tc-pad{flex:1;min-height:42vh;border:0;border-radius:28px;background:rgba(255,255,255,.1);color:#fff;font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;cursor:pointer;transition:background .15s}
.tc-pad b{font-size:min(30vw,150px);line-height:1;font-weight:900;font-variant-numeric:tabular-nums}
.tc-pad span{font-weight:800;font-size:18px;opacity:.9}
.tc-pad.live{background:#fff;color:var(--navy);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.tc-pad.live.hit{animation:tcHit .12s}
@keyframes tcHit{from{transform:scale(.97);background:#FFF4C2}to{transform:none}}
.tc-pad.over{background:rgba(255,255,255,.18)}
.tc-result{display:flex;align-items:center;justify-content:center;gap:22px;margin:10px 0}
.tc-result b{font-size:min(32vw,140px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.tc-adj{width:64px;height:64px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;font-size:34px;font-weight:900;cursor:pointer}
.tc-note{text-align:center;margin:0 0 6px;font-weight:700;font-size:16px}
.tc-pb{background:var(--green);padding:6px 14px;border-radius:999px}
.tc-hi{background:#FFF4D6;color:#7A4B00;padding:6px 12px;border-radius:12px;display:inline-block}
.tc-tick{width:80px;height:80px;margin:30px auto 0;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center;font-size:44px;font-weight:900}
.tc-wait{margin:0;padding:10px 16px;padding-bottom:max(10px,env(safe-area-inset-bottom));background:#FFF4D6;color:#7A4B00;font-weight:700;font-size:14px;text-align:center}
@media (max-width:700px){#scTapBtn{flex-basis:100%}}
@media (max-width:500px){.tc-top b{display:none}.tc-q{text-align:left}}
@media (min-width:701px){.sc-top{gap:8px}.sc-top .btn.sm{padding-left:12px;padding-right:12px}.sc-top h1{margin-right:2px}}
.sc-btns{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
@media (max-width:700px){.sc-btns{width:100%;margin-left:0}.sc-btns .btn{flex:1 1 auto}#scTapBtn{flex-basis:100%}}

/* v110 – tap counter: two at once */
.tc-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:rgba(255,255,255,.12);padding:5px;border-radius:16px}
.tc-mode button{border:0;border-radius:12px;background:transparent;color:#fff;font:inherit;font-weight:800;font-size:16px;padding:11px 8px;cursor:pointer}
.tc-mode button.on{background:#fff;color:var(--navy)}
.tc-amp{opacity:.6;font-weight:700}
.tc-runp{max-width:980px}
.tc-pads{flex:1;display:flex;flex-direction:column;gap:12px;min-height:0}
.tc-pads .tc-pad{position:relative;min-height:46vh}
.tc-pads.two .tc-pad{min-height:28vh}
.tc-pads.two .tc-pad b{font-size:min(22vw,120px)}
@media (min-width:600px),(orientation:landscape){.tc-pads.two{flex-direction:row}.tc-pads.two .tc-pad{flex:1;min-height:52vh}}
.tc-pn{font-style:normal;font-weight:900;font-size:19px;opacity:.9}
.tc-undo{position:absolute;left:10px;bottom:10px;width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:22px;font-weight:900;background:rgba(44,85,149,.12);color:inherit}
.tc-pads:not(.two) .tc-undo{display:none}
.tc-pad.wait .tc-undo,.tc-pad.over .tc-undo{opacity:.3}
.tc-ress{display:flex;flex-direction:column;gap:10px}
.tc-ress.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tc-res[hidden]{display:none}
.tc-ress.two .tc-res{background:rgba(255,255,255,.1);border-radius:20px;padding:10px 8px}
.tc-rn{text-align:center;margin:6px 0 0;font-weight:900;font-size:24px}
.tc-ress.two .tc-rn{font-size:18px}
.tc-ress.two .tc-result{gap:8px;margin:6px 0}
.tc-ress.two .tc-result b{font-size:min(15vw,90px)}
.tc-ress.two .tc-adj{width:44px;height:44px;font-size:26px}
.tc-ress.two .tc-note{font-size:13.5px}
.tc-keep{display:flex;gap:8px;align-items:center;justify-content:center;font-weight:700;font-size:14px;opacity:.9}
.tc-keep[hidden]{display:none}
.tc-ress.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.tc-ress.two .tc-result{gap:6px}
.tc-ress.two .tc-result b{font-size:min(13vw,90px)}
@media (max-width:420px){.tc-ress.two .tc-adj{width:36px;height:36px;font-size:22px}}
.tc .tc-keep{text-transform:none;letter-spacing:0;color:#fff;font-size:14px;opacity:1;margin:2px 0 0;cursor:pointer}
.tc .tc-keep input{width:18px;height:18px;accent-color:var(--gold)}
@media (orientation:landscape) and (max-height:520px){
  .tc-top{padding-top:8px;padding-bottom:6px}.tc-clock{font-size:34px}
  .tc-pads .tc-pad,.tc-pads.two .tc-pad{min-height:calc(100vh - 170px);min-height:calc(100dvh - 170px)}
  .tc-pad b,.tc-pads.two .tc-pad b{font-size:min(18vh,110px)}
  .tc-ress.two .tc-result b{font-size:min(16vh,80px)}.tc-rn{margin:2px 0 0}
  .tc-big{padding:12px;font-size:18px}.tc-start{padding:18px;font-size:22px}.tc-who{margin:6px 0 2px;font-size:26px}
}

/* v111 – How to add your scores guide */
.sc-help h3{scroll-margin-top:12px}
.sc-toc{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px}
.sc-toc a{font-size:13.5px;font-weight:800;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 11px;text-decoration:none}
.sc-toc a:hover{background:var(--pale)}
.sc-vid{display:flex;gap:12px;align-items:center;background:var(--navy);color:#fff;border-radius:16px;padding:12px 14px;text-decoration:none;margin:4px 0 10px}
.sc-vid[hidden]{display:none}
.sc-vid-ic{flex:0 0 40px;height:40px;border-radius:50%;background:var(--gold);color:#16213A;display:flex;align-items:center;justify-content:center;font-size:16px}
.sc-vid small{display:block;opacity:.85;font-weight:600}
.sc-steps li{margin:6px 0}
.sc-ways dd i,.sc-read dd i{color:var(--muted);font-style:normal;font-weight:700}
.sc-ways dd a{font-weight:800}

/* v131: How to add your scores video inside the Enter scores How it works panel */
.sc-pv{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:var(--navy);margin:4px 0 12px}
.sc-pv iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.sc-pv-start{all:unset;cursor:pointer;position:absolute;inset:0;display:block}
.sc-pv-start img{width:100%;height:100%;object-fit:cover;display:block}
.sc-pv-btn{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;background:var(--gold);color:#16213A;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.sc-pv-start:hover .sc-pv-btn,.sc-pv-start:focus-visible .sc-pv-btn{transform:translate(-50%,-50%) scale(1.08)}
.sc-pv-start:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.sc-pv-cap{position:absolute;left:10px;right:10px;bottom:10px;background:rgba(22,33,58,.85);color:#fff;border-radius:10px;padding:7px 10px;font-size:13.5px;font-weight:600}
.sc-pv.loading .sc-pv-btn{opacity:.6}
.sc-pv-err{position:absolute;left:10px;right:10px;top:10px;margin:0;color:#fff;font-weight:700;font-size:13px}
.sc-pv-err:empty{display:none}
/* v134 tap counter: go-count lozenges, key, picking two */
.tc-p{position:relative}
.tc-p.g1,.tc-p.g2,.tc-p.g3,.tc-p.g4,.tc-p.g5,.tc-key span{color:#16213A}
.tc-g1,.tc-p.g1{background:#FFF3B0}
.tc-g2,.tc-p.g2{background:#CDEFD6}
.tc-g3,.tc-p.g3{background:#F8C9C9}
.tc-g4,.tc-p.g4{background:#FFD9B3}
.tc-g5,.tc-p.g5{background:linear-gradient(135deg,#F2F4F7,#D5DAE1)}
.tc-p.pick{outline:4px solid var(--gold);outline-offset:1px;box-shadow:0 0 0 7px rgba(255,255,255,.18)}
.tc-pk{position:absolute;top:6px;right:8px;width:24px;height:24px;border-radius:50%;background:var(--gold);color:#16213A;font-style:normal;font-weight:900;font-size:14px;display:grid;place-items:center}
.tc-key{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.tc-key span{border-radius:999px;padding:5px 12px;font-weight:800;font-size:13px;white-space:nowrap}
/* v135 tap counter: every name starts blue; colours = goes this session */
.tc-p{background:#3A6BD6;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.tc-g0{background:#3A6BD6;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.tc-p.g1,.tc-p.g2,.tc-p.g3,.tc-p.g4,.tc-p.g5{box-shadow:none}
/* v138 tap counter: timing voice */
.tc-voxrow{display:flex;align-items:center;gap:10px}.tc-voxrow .tc-lab{flex:none}.tc-voxrow .tc-sel{flex:1;min-width:0;font-size:16px;padding:10px}
.tc-cap{min-height:1.4em;margin:2px 0 6px;text-align:center;font-weight:900;font-size:22px;color:var(--gold);opacity:0;transition:opacity .15s}
.tc-cap.on{opacity:1}
.tc-cap.call{font-size:clamp(24px,6vw,40px);color:#16213A;background:var(--gold);border-radius:16px;padding:6px 10px}

/* v139 shop: VSL rope set */
.kit{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);background:linear-gradient(135deg,#F2F6FF,#E3ECFF);border:2px solid #89ACFE;border-radius:22px;overflow:hidden;flex-direction:initial}
.kit.in{border-color:var(--navy);box-shadow:0 0 0 4px #CFDDFF}
.kit-pic{border:0;border-right:1px solid var(--line);padding:0;background:#fff;align-self:stretch;display:flex;align-items:center}
.kit-pic img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;transition:transform .35s ease}
.kit-pic:hover img{transform:scale(1.04)}
.kit-body{padding:20px 22px}
.kit-kicker{display:inline-block;background:var(--navy);color:#fff;font-weight:900;font-size:12px;letter-spacing:.4px;text-transform:uppercase;padding:4px 12px;border-radius:999px}
.kit h2{margin:10px 0 6px;font-size:22px;color:var(--ink);line-height:1.2}
.kit p{margin:0 0 10px;font-weight:600;font-size:14px;line-height:1.45}
.kit-list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:5px}
.kit-list li{display:grid;grid-template-columns:44px 1fr;gap:6px;font-size:14px;font-weight:700;color:var(--ink);line-height:1.3}
.kit-list b{color:var(--navy);font-weight:900;text-align:right}
.kit-list small{display:block;color:var(--muted);font-weight:600;font-size:12px}
.kit .qty{background:#fff}
.bl-note{margin:6px 0;padding:8px 10px;background:#FFF4DB;border-radius:10px;font-size:13px;font-weight:700;color:#8A5A00}
.kit-list .kit-free{margin-top:4px;padding:8px 10px 8px 0;background:#FFF4DB;border-radius:10px}
.kit-list .kit-free b{color:#8A5A00}
@media (max-width:760px){.kit{grid-template-columns:1fr}.kit-pic{border-right:0;border-bottom:1px solid var(--line)}.kit-body{padding:16px}}

/* v143: area skip total card (dashboard) */
.at-big{font-weight:800;color:var(--muted);font-size:14.5px;margin:6px 0}.at-big b{font-size:30px;color:var(--navy);font-weight:900;margin-right:4px}.at-big span{white-space:nowrap}
.at-bar{height:14px;background:#E2E9F5;border-radius:999px;overflow:hidden}.at-bar i{display:block;height:100%;background:linear-gradient(90deg,#3A6BD6,#22A06B);border-radius:999px}

/* v162: on phones, show the school name and school switcher when the menu is open */
@media (max-width:860px){body.nav-open aside .school{display:block;order:3;flex-basis:100%;margin:10px 0 0}}
