@font-face{font-family:"Comic Neue";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/comic-neue-400.woff2") format("woff2")}
@font-face{font-family:"Comic Neue";font-style:normal;font-weight:700 900;font-display:swap;src:url("fonts/comic-neue-700.woff2") format("woff2")}
:root{
  --ink:#1F2340;--muted:#5A607F;--bg:#F4F6FC;--paper:#fff;--line:#E1E5F2;
  --violet:#6C4CF1;--violet-d:#5536D6;--sun:#FFC83D;--mint:#1FA97B;--coral:#F0644F;--sky:#2F8FEF;
  --display:"Comic Neue","Comic Sans MS","Chalkboard SE","Comic Sans",cursive,system-ui,sans-serif;--body:"Comic Neue","Comic Sans MS","Chalkboard SE","Comic Sans",cursive,system-ui,sans-serif;
  --r-lg:28px;--r-md:18px;--r-sm:12px;
}
*{box-sizing:border-box;margin:0;padding:0}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:80px}
body{font-family:var(--body);font-size:1.05rem;line-height:1.6;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:var(--violet-d)}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:8px}
h1:focus{outline:none}
h1,h2,h3{font-family:var(--display);line-height:1.1;letter-spacing:-.01em}
h1{font-size:clamp(2rem,5vw,3rem);font-weight:800}
h2{font-size:1.6rem;font-weight:700}
h3{font-size:1.4rem;font-weight:700}
.wrap{width:min(1120px,100% - 2rem);margin-inline:auto}
.main{padding-block:2rem 4rem}
.lead{font-size:1.12rem;color:var(--muted);max-width:56ch;margin-top:.6rem}
.small{font-size:.9rem;color:var(--muted);margin-top:1.5rem}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:52px;padding:.7rem 1.4rem;border-radius:999px;border:0;font-family:var(--display);font-weight:700;font-size:1.1rem;text-decoration:none;cursor:pointer;transition:transform .15s,box-shadow .15s}
.btn:active{transform:translateY(2px)}
.btn-main{background:var(--violet);color:#fff;box-shadow:0 5px 0 var(--violet-d)}
.btn-main:active{box-shadow:0 2px 0 var(--violet-d)}
.btn-main:disabled{opacity:.6;cursor:wait}
.btn-ghost{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 2px var(--line)}
.btn.sm{min-height:42px;padding:.4rem 1rem;font-size:1rem}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem}

/* header */
.demo-bar{background:var(--sun);color:var(--ink);text-align:center;font-size:.85rem;padding:.35rem 1rem}
.top{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top-in{display:flex;align-items:center;gap:.8rem;min-height:66px}
.logo{font-family:var(--display);font-weight:800;font-size:1.9rem;color:var(--violet);text-decoration:none;letter-spacing:-.02em}
.top-r{margin-left:auto}
.back{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--bg);color:var(--ink)}
.me{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink);background:var(--bg);padding:.25rem .9rem .25rem .3rem;border-radius:999px;font-weight:600}
.me-av{font-size:1.5rem;width:38px;height:38px;display:grid;place-items:center;background:var(--paper);border-radius:50%}

/* landing */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center;padding-block:1.5rem 3rem}
.hero h1{font-size:clamp(2.4rem,6vw,4rem);max-width:13ch}
.hero p{font-size:1.15rem;color:var(--muted);margin-top:1rem;max-width:50ch}
.hall{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-items:end;padding:2rem 1.2rem 0;background:linear-gradient(#fff,#fff) padding-box;border-radius:var(--r-lg);background:var(--paper);border-bottom:14px solid #D9DEEE}
.hall .door{height:auto;aspect-ratio:3/5;animation:none}
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;padding-block:2rem;border-top:2px dashed var(--line)}
.how p{color:var(--muted);margin-top:.4rem}
.cur-note{text-align:center;color:var(--muted);margin-top:1rem}

/* doors: the corridor of classrooms */
.corridor{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1.4rem;margin-top:2rem;padding:2rem 1.4rem 0;background:var(--paper);border-radius:var(--r-lg);border-bottom:16px solid #D9DEEE;box-shadow:inset 0 -6px 0 #E8EBF6}
.door{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.7rem;aspect-ratio:3/4.6;padding:1rem .8rem;background:var(--c);border-radius:90px 90px 10px 10px;text-decoration:none;color:#fff;box-shadow:inset 0 0 0 8px rgba(255,255,255,.18),0 0 0 6px var(--s);transform-origin:left center;transition:transform .35s cubic-bezier(.3,1.4,.5,1);animation:doorIn .6s cubic-bezier(.3,1.3,.5,1) both;animation-delay:calc(var(--i) * 80ms)}
@keyframes doorIn{from{opacity:0;transform:translateY(24px)}}
.door:hover,.door:focus-visible{transform:perspective(700px) rotateY(-14deg)}
.door-sign{font-family:var(--display);font-weight:800;font-size:1.1rem;text-align:center;line-height:1.1;background:rgba(255,255,255,.2);padding:.3rem .8rem;border-radius:999px;max-width:100%}
.door-win{display:grid;place-items:center;width:78%;aspect-ratio:1;border-radius:50%;background:var(--s);box-shadow:inset 0 0 0 6px rgba(255,255,255,.6)}
.door-win .char{width:82%;height:auto}
.door-knob{position:absolute;right:16%;top:62%;width:14px;height:14px;border-radius:50%;background:var(--sun);box-shadow:0 2px 0 rgba(0,0,0,.2)}
.door-note{margin-top:auto;font-size:.85rem;font-weight:600;background:rgba(0,0,0,.18);padding:.2rem .7rem;border-radius:999px}
.door.soon{filter:saturate(.6);opacity:.85}
.door.soon:hover{transform:none}
.char .pupil{animation:look 6s infinite}
@keyframes look{0%,40%,100%{transform:translateX(0)}45%,60%{transform:translateX(2px)}65%,80%{transform:translateX(-2px)}}

/* auth and forms */
.auth{max-width:520px;margin:1rem auto}
.auth.wide{max-width:640px}
.form{display:grid;gap:1.1rem;margin-top:1.6rem;background:var(--paper);padding:1.6rem;border-radius:var(--r-lg)}
.form label{display:grid;gap:.35rem;font-weight:600}
.form small,.note{font-weight:400;color:var(--muted);font-size:.88rem}
.form input:not([type=radio]):not([type=checkbox]),.form select,.pin{font:inherit;padding:.8rem 1rem;border:2px solid var(--line);border-radius:var(--r-sm);background:var(--bg);width:100%}
.form input:focus,.form select:focus,.pin:focus{outline:none;border-color:var(--violet);background:#fff}
fieldset{border:0;display:grid;gap:.5rem}
legend{font-weight:600;margin-bottom:.5rem}
.err{color:#C0392B;font-weight:600;min-height:1.2em}
.swap{text-align:center;color:var(--muted)}
.av-pick{display:flex;flex-wrap:wrap;gap:.5rem}
.av-pick input,.seg input,.pref input{position:absolute;opacity:0;pointer-events:none}
.av-pick span{display:grid;place-items:center;width:56px;height:56px;font-size:1.8rem;border-radius:50%;background:var(--bg);border:3px solid transparent;cursor:pointer}
.av-pick input:checked+span{border-color:var(--violet);background:#ECE8FF}
.av-pick input:focus-visible+span,.seg input:focus-visible+span,.pref input:focus-visible+span{outline:3px solid var(--sun);outline-offset:2px}
.seg,.pref{display:grid;gap:.6rem}
.seg{grid-template-columns:1fr 1fr}
.seg span,.pref span{display:block;padding:.8rem 1rem;border:2px solid var(--line);border-radius:var(--r-md);cursor:pointer;background:var(--bg)}
.pref span b{display:block}
.seg input:checked+span,.pref input:checked+span{border-color:var(--violet);background:#ECE8FF}
.danger{margin-top:2rem;display:grid;gap:.4rem;justify-items:start}
.danger small{color:var(--muted)}

/* profiles */
.profiles{text-align:center}
.who{display:flex;flex-wrap:wrap;justify-content:center;gap:1.2rem;margin-top:2rem}
.who-card{display:grid;justify-items:center;gap:.3rem;width:160px;padding:1.2rem .8rem;border:0;background:var(--paper);border-radius:var(--r-lg);cursor:pointer;transition:transform .2s}
.who-card:hover{transform:translateY(-4px)}
.who-av{display:grid;place-items:center;width:96px;height:96px;font-size:3rem;border-radius:50%;background:#ECE8FF}
.who-av.sm{width:60px;height:60px;font-size:2rem}
.who-card b{font-family:var(--display);font-size:1.3rem}
.who-card small{color:var(--muted)}
.who-card.add .who-av{background:var(--bg);border:3px dashed var(--line);color:var(--muted);font-family:var(--display)}
.parent-row{margin-top:2.5rem}

/* classroom */
.continue{display:inline-flex;align-items:center;gap:1rem;margin-top:1.4rem;padding:.6rem 1.4rem .6rem .6rem;background:var(--s);border-radius:999px;text-decoration:none;color:var(--ink)}
.continue small{display:block;color:var(--muted);font-size:.85rem}
.continue b{font-family:var(--display);font-size:1.25rem}

/* subject */
.subj-head,.topic-head{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
.bubble-say{display:inline-block;margin-top:.6rem;background:var(--paper);padding:.5rem 1rem;border-radius:18px 18px 18px 4px;color:var(--muted);font-style:italic}
.terms{display:flex;gap:.5rem;margin-top:1.8rem;flex-wrap:wrap}
.term{padding:.6rem 1.2rem;border-radius:999px;background:var(--paper);text-decoration:none;color:var(--ink);font-weight:600}
.term.on{background:var(--c);color:#fff}
.path{position:relative;display:grid;gap:1rem;margin-top:1.6rem;padding-left:1.6rem}
.path::before{content:"";position:absolute;left:calc(1.6rem + 26px);top:20px;bottom:20px;width:4px;background:repeating-linear-gradient(var(--line) 0 10px,transparent 10px 18px)}
.stop{position:relative;display:grid;grid-template-columns:56px 1fr auto;gap:1rem;align-items:center;padding:1rem 1.2rem 1rem 0;margin-left:-1.6rem;text-decoration:none;color:var(--ink);background:var(--paper);border-radius:var(--r-md);padding-left:1.6rem}
.stop:hover .stop-body b{text-decoration:underline}
.stop-dot{position:relative;z-index:1;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--s);color:var(--c);font-family:var(--display);font-weight:800;font-size:1.4rem}
.st-mastered .stop-dot{background:var(--sun);color:var(--ink)}
.stop.test{background:var(--s)}
.stop.test .stop-dot{background:var(--c);color:#fff}
.stop-body b{font-family:var(--display);font-size:1.25rem;display:block}
.stop-body small{color:var(--muted);display:block}
.meter{display:block;height:8px;border-radius:8px;background:var(--bg);margin-top:.5rem;max-width:260px;overflow:hidden}
.meter span{display:block;height:100%;background:var(--c);border-radius:8px}
.chip{font-size:.8rem;font-weight:600;padding:.25rem .7rem;border-radius:999px;white-space:nowrap}
.c-mastered{background:#FFF1C7;color:#7A5600}.c-practise{background:#FFE6E1;color:#A3321F}.c-started{background:#E2F0FF;color:#1D5FA8}.c-new{background:var(--bg);color:var(--muted)}
.planned{background:var(--paper);border-radius:var(--r-md);padding:1.5rem;margin-top:1.6rem}
.planned ul{margin:.8rem 0 0 1.2rem;color:var(--muted)}

/* topic */
.topic-head p{color:var(--muted)}
.mats{display:flex;gap:.6rem;margin-top:1.6rem;overflow-x:auto;padding-bottom:.4rem}
.mat{flex:none;display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem .6rem .6rem;border-radius:999px;background:var(--paper);text-decoration:none;color:var(--ink);font-weight:600;box-shadow:inset 0 0 0 2px var(--line)}
.mat small{display:block;font-size:.72rem;color:var(--c);font-weight:600;line-height:1}
.mat-ic{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--s);color:var(--c);font-weight:800}
.mat.on{background:var(--c);color:#fff;box-shadow:none}
.mat.on small{color:#fff}
.mat.on .mat-ic{background:#fff}
.mat.done .mat-ic{background:var(--sun);color:var(--ink)}
.stage{margin-top:1.4rem;background:var(--paper);border-radius:var(--r-lg);padding:clamp(1.2rem,3vw,2.2rem);min-height:320px}
.video{aspect-ratio:16/9;border-radius:var(--r-md);overflow:hidden;background:var(--s)}
.video iframe{width:100%;height:100%;border:0}
.video.empty{display:grid;place-items:center;align-content:center;gap:1rem;text-align:center;padding:2rem;color:var(--muted)}
.video.empty p{max-width:40ch}
.lesson{display:grid;gap:1rem}
.slide{display:grid;grid-template-columns:minmax(120px,240px) 1fr auto;gap:1.2rem;align-items:center;padding:1rem;border-radius:var(--r-md);background:var(--bg)}
.slide p{font-size:1.2rem}
.slide-n{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--s);color:var(--c);font-family:var(--display);font-weight:800;font-size:2rem;margin:auto}
.say{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:0;background:var(--s);font-size:1.3rem;cursor:pointer;flex:none}

/* quiz and games */
.quiz,.game{max-width:760px;margin:0 auto;text-align:center}
.qbar{height:10px;border-radius:10px;background:var(--bg);overflow:hidden}
.qbar span{display:block;height:100%;background:var(--c);transition:width .3s}
.qcount{color:var(--muted);font-size:.9rem;margin:.6rem 0}
.qhead{display:flex;align-items:center;justify-content:center;gap:.8rem}
.qtext,.game h3{font-size:clamp(1.6rem,4vw,2.2rem)}
.sub{color:var(--muted)}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.8rem;margin-top:1.4rem}
.opt{min-height:72px;border:0;border-radius:var(--r-md);background:var(--s);font-family:var(--display);font-weight:800;font-size:1.8rem;color:var(--ink);cursor:pointer;box-shadow:0 5px 0 rgba(31,35,64,.12);transition:transform .1s}
.opt:active{transform:translateY(3px)}
.opt.right{background:#C9F2DF;box-shadow:0 5px 0 var(--mint)}
.opt.wrong{background:#FFD9D2;box-shadow:0 5px 0 var(--coral)}
.opt.picked{background:var(--c);color:#fff}
.opt:disabled{cursor:default}
.fb{margin-top:1.2rem;min-height:1em}
.fb p{font-size:1.15rem;margin-bottom:1rem}
.good{color:#137A57;font-weight:600}.hint{color:#A3321F;font-weight:600}
.items-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin-top:1.2rem}
.items{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem;max-width:300px;font-size:2.2rem;line-height:1.1}
.items .cross{position:relative;opacity:.35}
.items .cross::after{content:"";position:absolute;left:-2px;right:-2px;top:50%;height:4px;background:var(--coral);transform:rotate(-30deg);border-radius:4px}
.op{font-family:var(--display);font-size:2.4rem;font-weight:800;color:var(--muted)}
.groups{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.2rem}
.grp{background:var(--bg);border-radius:var(--r-md);padding:.8rem}
.grp b{font-family:var(--display);display:block;margin-bottom:.3rem}
.frame{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;max-width:300px;margin:1.2rem auto 0;padding:8px;border-radius:14px;background:var(--ink)}
.frame span,.frame button{aspect-ratio:1;border-radius:8px;background:#fff;border:0;position:relative}
.frame .on::after{content:"";position:absolute;inset:18%;border-radius:50%;background:var(--coral)}
.frame .added::after{background:var(--sky);animation:popIn .25s}
.frame.big{max-width:420px}
.frame button:not(.fixed){cursor:pointer}
.slide .frame{margin:0;max-width:220px}
.tap-field{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin:1.4rem auto;max-width:560px}
.tapit{position:relative;width:76px;height:76px;border-radius:50%;border:0;background:var(--bg);font-size:2.4rem;cursor:pointer;transition:transform .2s}
.tapit.done{background:var(--s);transform:scale(.92)}
.tapit.done::after{content:attr(data-n);position:absolute;top:-6px;right:-6px;width:30px;height:30px;border-radius:50%;background:var(--c);color:#fff;font-family:var(--display);font-weight:800;font-size:1rem;display:grid;place-items:center;animation:popIn .25s}
@keyframes popIn{from{transform:scale(0)}}
.pond{display:flex;flex-wrap:wrap;justify-content:center;gap:1.2rem;margin-top:1.4rem;padding:1.5rem;border-radius:var(--r-lg);background:linear-gradient(#E2F0FF,#CFE6FF)}
.bubble{width:104px;height:104px;border-radius:50%;border:0;cursor:pointer;font-family:var(--display);font-weight:800;font-size:1.6rem;color:var(--ink);background:radial-gradient(circle at 32% 28%,#fff 0 12%,rgba(255,255,255,.75) 13%,rgba(173,214,255,.75) 60%,rgba(108,76,241,.35));box-shadow:inset 0 0 0 3px rgba(255,255,255,.8);animation:float 3s ease-in-out infinite;animation-delay:var(--d)}
@keyframes float{50%{transform:translate(calc(var(--x) * 6px),-12px)}}
.bubble.pop{animation:pop .45s forwards}
@keyframes pop{40%{transform:scale(1.25)}100%{transform:scale(0);opacity:0}}
.bubble.wobble{animation:wobble .4s}
@keyframes wobble{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.result,.intro{text-align:center;max-width:560px;margin:0 auto;padding-block:1rem}
.result .actions,.intro .btn{justify-content:center;margin-top:1.4rem}
.result p,.intro p{color:var(--muted);margin-top:.5rem}
.stars{display:flex;justify-content:center;gap:.3rem;font-size:3rem;color:var(--line);margin-bottom:.6rem}
.stars .on{color:var(--sun);animation:popIn .4s both}
.stars .on:nth-child(2){animation-delay:.15s}.stars .on:nth-child(3){animation-delay:.3s}
.review{text-align:left;margin-top:1.2rem;background:var(--bg);border-radius:var(--r-md);padding:1rem}
.review summary{cursor:pointer;font-weight:600}
.review ul{margin:.8rem 0 0 1.2rem;display:grid;gap:.4rem}

/* parent */
.ph{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem}
.pcard{background:var(--paper);border-radius:var(--r-lg);padding:1.5rem;margin-top:1.6rem}
.pcard header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.pcard header p{color:var(--muted);font-size:.95rem}
.pcard header .btn{margin-left:auto}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.2rem}
.kpis div{background:var(--bg);border-radius:var(--r-md);padding:1rem}
.kpis b{display:block;font-family:var(--display);font-size:1.8rem}
.kpis span{color:var(--muted);font-size:.9rem}
.needs{margin-top:1rem;padding:.8rem 1rem;background:#FFE6E1;border-radius:var(--r-sm)}
.tbl{overflow-x:auto;margin-top:1.2rem}
table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:620px}
th,td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-weight:500}
.trow td{background:var(--bg)}

/* misc */
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:1rem;background:rgba(31,35,64,.5)}
.sheet{background:var(--paper);border-radius:var(--r-lg);padding:1.8rem;width:min(380px,100%);text-align:center}
.sheet p{color:var(--muted);margin:.4rem 0 1rem}
.pin{text-align:center;font-size:2rem;letter-spacing:.6em;font-family:var(--display)}
.sheet .actions{justify-content:center}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);opacity:0;background:var(--ink);color:#fff;padding:.8rem 1.3rem;border-radius:999px;z-index:60;transition:all .3s;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
.loading{display:grid;place-items:center;align-content:center;gap:1rem;min-height:70vh;color:var(--muted)}
.loading .char{animation:bounce 1s infinite}
@keyframes bounce{50%{transform:translateY(-10px)}}

@media (max-width:820px){
  .hero{grid-template-columns:1fr}
  .how{grid-template-columns:1fr}
  .slide{grid-template-columns:1fr auto}
  .slide-vis{grid-column:1/-1}
  .seg{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr 1fr 1fr}
  .stop{grid-template-columns:56px 1fr}
  .stop .chip{grid-column:2;justify-self:start}
}
@media (max-width:520px){
  .corridor{grid-template-columns:1fr 1fr;padding:1.2rem .8rem 0;gap:1rem}
  .door-sign{font-size:.95rem}
  .kpis{grid-template-columns:1fr}
  .bubble{width:86px;height:86px}
  .tapit{width:64px;height:64px;font-size:2rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

.check{display:flex!important;gap:.7rem;align-items:flex-start;font-weight:400!important;font-size:.95rem}
.check input{width:22px;height:22px;margin-top:.15rem;accent-color:var(--violet);flex:none}
.forgot{justify-self:end;font-size:.95rem}
.linkish{background:none;border:0;color:var(--violet-d);text-decoration:underline;cursor:pointer;margin-top:1rem;font-size:.95rem}
.legal{max-width:720px;margin:0 auto;background:var(--paper);border-radius:var(--r-lg);padding:clamp(1.4rem,4vw,2.6rem)}
.legal .meta{color:var(--muted);font-size:.9rem;margin:.6rem 0 1.4rem}
.legal h2{font-size:1.35rem;margin:1.6rem 0 .4rem}
.legal p,.legal li{max-width:66ch}
.legal ul{margin:.4rem 0 0 1.3rem;display:grid;gap:.35rem}
.foot{display:flex;flex-wrap:wrap;gap:1.4rem;justify-content:center;padding:1.5rem 0 2.5rem;font-size:.9rem}
.foot a{color:var(--muted)}

.fb-btn{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:30;display:flex;align-items:center;gap:.4rem;padding:.7rem 1.1rem;border:0;border-radius:999px;background:var(--ink);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 6px 18px rgba(31,35,64,.25)}
.fb-sheet{width:min(520px,100%);text-align:left;max-height:90vh;overflow:auto}
.fb-sheet label{display:grid;gap:.35rem;font-weight:600;margin-top:1rem}
.fb-sheet textarea{font:inherit;padding:.8rem 1rem;border:2px solid var(--line);border-radius:var(--r-sm);background:var(--bg);resize:vertical}
.fb-sheet textarea:focus{outline:none;border-color:var(--violet);background:#fff}
.fb-sheet fieldset{margin-top:1rem}
.fb-kinds{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.fb-kinds label,.nps label{margin:0}
.fb-kinds input,.nps input{position:absolute;opacity:0;pointer-events:none}
.fb-kinds span{display:block;padding:.6rem .8rem;border:2px solid var(--line);border-radius:var(--r-sm);font-weight:500;font-size:.92rem;cursor:pointer;background:var(--bg)}
.nps{display:grid;grid-template-columns:repeat(11,1fr);gap:4px}
.nps span{display:grid;place-items:center;height:40px;border:2px solid var(--line);border-radius:8px;font-weight:600;cursor:pointer;background:var(--bg)}
.fb-kinds input:checked+span,.nps input:checked+span{border-color:var(--violet);background:#ECE8FF}
.fb-kinds input:focus-visible+span,.nps input:focus-visible+span{outline:3px solid var(--sun);outline-offset:2px}
.nps-ends{display:flex;justify-content:space-between;color:var(--muted)}
.react{margin-top:1.6rem;padding-top:1.2rem;border-top:2px dashed var(--line);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.7rem}
.react p{width:100%;color:var(--muted);font-weight:600}
.react button{display:grid;justify-items:center;gap:.1rem;width:84px;padding:.5rem 0;border:0;border-radius:var(--r-md);background:var(--bg);font-size:2rem;cursor:pointer}
.react button span{font-size:.8rem;font-weight:600}
.react button:hover{background:var(--s,#ECE8FF)}
@media (max-width:520px){.fb-btn span{display:none}.fb-kinds{grid-template-columns:1fr}.nps span{height:34px;font-size:.85rem}}

.kpis.six{grid-template-columns:repeat(4,1fr);margin-top:1.4rem}
.snapshot{background:#ECE8FF}
.snapshot p{font-size:1.08rem;margin:.6rem 0 1rem;max-width:75ch}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.two .pcard{margin-top:1.4rem}
.bars{display:flex;align-items:flex-end;gap:.5rem;height:180px;margin-top:1rem}
.bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:.3rem;height:100%;justify-content:flex-end}
.bar span{width:100%;max-width:42px;background:var(--violet);border-radius:8px 8px 0 0;min-height:6px;position:relative}
.bar b{position:absolute;top:-1.4rem;left:0;right:0;text-align:center;font-size:.85rem}
.bar small{font-size:.72rem;color:var(--muted);white-space:nowrap}
.hbar{display:grid;grid-template-columns:96px 1fr 48px;align-items:center;gap:.7rem;margin-top:.8rem}
.hbar div{height:14px;background:var(--bg);border-radius:8px;overflow:hidden}
.hbar i{display:block;height:100%;background:var(--sun);border-radius:8px}
.muted{color:var(--muted);margin-top:.8rem}
.sub-h{margin-top:1.6rem}
.msgs{display:grid;gap:.8rem;margin-top:1rem}
.msg{background:var(--bg);border-radius:var(--r-md);padding:.9rem 1rem}
.msg p{margin:.4rem 0 .2rem}
.msg small{color:var(--muted)}
@media (max-width:820px){.kpis.six{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}}
.admin .kpis div{background:var(--paper)}
.strand-tag{display:inline-block;font-size:.75rem;font-weight:600;padding:.15rem .6rem;border-radius:999px;background:var(--s,#FFE9E5);color:var(--c,#F0644F);margin-bottom:.3rem}
.stop .strand-tag{background:var(--bg)}
.corr-h{margin-top:2.2rem;font-size:1.5rem}
.today{margin-top:1.6rem;background:var(--paper);border-radius:var(--r-lg);padding:1.3rem}
.today-h{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.today-h h2{font-size:1.5rem}.today-h span{color:var(--muted);font-size:.9rem}
.slots{list-style:none;display:grid;gap:.7rem;margin-top:1rem}
.slot{display:grid;grid-template-columns:70px 1fr auto;gap:1rem;align-items:center;padding:.8rem 1rem;border-radius:var(--r-md);background:var(--bg);border-left:6px solid var(--c)}
.slot.next{background:var(--s)}
.slot.did{opacity:.65}
.slot.did .slot-body b::after{content:" ✓";color:var(--mint)}
.slot-time{font-family:var(--display);font-weight:800;font-size:1.15rem;line-height:1.1}
.slot-time small{display:block;font-family:var(--body);font-weight:400;font-size:.75rem;color:var(--muted)}
.slot-body small{display:block;color:var(--muted);font-size:.82rem}
.slot-body b{font-family:var(--display);font-size:1.15rem}
.planbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;align-items:center;background:var(--ink);color:#fff;padding:.7rem 1.1rem;border-radius:999px;margin-bottom:1.2rem;font-size:.95rem}
.planbar a{color:var(--sun);font-weight:600}
.passage{background:#FFFDF6;border:2px solid #F3E7C3;border-radius:var(--r-md);padding:1.4rem 1.6rem;margin-bottom:1.4rem}
.passage-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}
.passage p{font-size:1.2rem;line-height:1.8;max-width:60ch}
.passage p+p{margin-top:.7rem}
.write{max-width:760px;margin:0 auto}
.write-pic{font-size:4rem;text-align:center}
.write-prompt{font-size:1.2rem;font-weight:500;text-align:left}
.write textarea{width:100%;margin-top:1rem;font:inherit;font-size:1.15rem;line-height:1.7;padding:1rem 1.2rem;border:2px solid var(--line);border-radius:var(--r-md);background:#FFFDF6;resize:vertical}
.write textarea:focus{outline:none;border-color:var(--c)}
.wc{color:var(--muted);font-size:.9rem;margin-top:.4rem}
.shape{width:150px;height:150px;margin:1.2rem auto 0}
.slide .shape{margin:0 auto;width:110px;height:110px}
.seq{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:1.2rem;font-size:2.6rem}
.seq .q{display:grid;place-items:center;width:58px;border:3px dashed var(--c,#6C4CF1);border-radius:12px;font-family:var(--display);font-weight:800;color:var(--c,#6C4CF1);font-size:2rem}
.wordpic{display:flex;flex-direction:column;align-items:center;gap:.3rem;margin-top:1rem}
.wp-e{font-size:4.2rem;line-height:1}
.wp-t{font-family:var(--display);font-weight:800;font-size:2.4rem;letter-spacing:.1em}
.bigtext{font-family:var(--display);font-weight:800;font-size:clamp(1.4rem,3.4vw,2rem);text-align:center;color:var(--c,#6C4CF1);line-height:1.2;padding:.6rem}
.pc-btns{margin-left:auto;display:flex;gap:.5rem}
.pcard header .pc-btns .btn{margin-left:0}
.writing{margin-top:1rem;background:#FFFDF6;border-radius:var(--r-md);padding:1rem}
.writing summary{cursor:pointer;font-weight:600}
.wpiece{margin-top:1rem}.wpiece small{color:var(--muted);margin-left:.6rem}.wpiece p{white-space:pre-wrap;margin-top:.3rem}
.day header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}
.day h2{font-size:1.4rem}
.slot-edit{display:grid;grid-template-columns:110px 100px 1.2fr 1.6fr 40px;gap:.6rem;align-items:end;padding:.7rem 0;border-top:1px solid var(--line)}
.slot-edit label{display:grid;gap:.2rem;font-size:.8rem;color:var(--muted);font-weight:500}
.slot-edit input,.slot-edit select{font:inherit;font-size:.95rem;padding:.5rem .6rem;border:2px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);width:100%}
.rm{width:40px;height:40px;border:0;border-radius:50%;background:var(--bg);cursor:pointer;font-size:1rem}
.rm:hover{background:#FFE6E1}
.vrow{display:grid;grid-template-columns:1.3fr 1.4fr auto 24px;gap:.8rem;align-items:center;padding:.8rem 0;border-top:1px solid var(--line)}
.vinfo small{display:block;color:var(--muted);font-size:.85rem}
.vinfo b{display:block}
.vrow input{font:inherit;font-size:.92rem;padding:.6rem .8rem;border:2px solid var(--line);border-radius:10px;background:var(--bg);width:100%}
.vok{color:var(--mint);font-weight:800;font-size:1.2rem}
.vids .terms{margin-bottom:.4rem}
@media (max-width:820px){.slot-edit{grid-template-columns:1fr 1fr;}.slot-edit .grow{grid-column:1/-1}.rm{justify-self:end;grid-column:2}.vrow{grid-template-columns:1fr auto 24px}.vrow .vinfo{grid-column:1/-1}}
@media (max-width:520px){.slot{grid-template-columns:56px 1fr}.slot .btn{grid-column:1/-1}}
.dice,.clock{width:140px;height:140px;margin:1rem auto 0}
.slide .dice,.slide .clock{width:110px;height:110px;margin:0 auto}
.frame-wrap{display:flex;align-items:center;justify-content:center;gap:.8rem;flex-wrap:wrap}
.frame-wrap .frame{margin:1.2rem 0 0}
.frame-extra{font-size:1.6rem;margin-top:1.2rem;font-family:var(--display);font-weight:800}
.week-tag{display:inline-block;font-size:.75rem;font-weight:700;padding:.15rem .6rem;border-radius:999px;background:var(--ink);color:#fff;margin:0 .35rem .3rem 0}
.yt-alt{margin-top:.8rem;font-size:.92rem;color:var(--muted)}
.voice-sheet{text-align:left;width:min(480px,100%);max-height:90vh;overflow:auto}
.voices{display:grid;gap:.4rem;margin:.6rem 0 1rem}
.voices input{position:absolute;opacity:0;pointer-events:none}
.voices span{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .9rem;border:2px solid var(--line);border-radius:12px;cursor:pointer;background:var(--bg)}
.voices small{color:var(--muted)}
.voices input:checked+span{border-color:var(--violet);background:#ECE8FF}
.voices input:focus-visible+span{outline:3px solid var(--sun)}
.rate{display:grid;gap:.3rem;font-weight:600}
.rate input{width:100%;accent-color:var(--violet)}
.soundrow{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.2rem;padding:1rem;border-radius:var(--r-md);background:var(--s)}
.soundrow span{width:100%;font-weight:600;color:var(--muted);font-size:.9rem}
.sbtn{min-width:64px;height:64px;padding:0 .8rem;border:0;border-radius:16px;background:#fff;font-family:var(--display);font-weight:800;font-size:1.8rem;color:var(--c);cursor:pointer;box-shadow:0 4px 0 rgba(31,35,64,.12)}
.sbtn.nosound{opacity:.75}

/* update 2 */
.toolbar,.adminbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:-.4rem 0 1.2rem}
.adminbar{background:#ECE8FF;padding:.6rem .8rem;border-radius:var(--r-md)}
.adminbar b{margin-right:.4rem;color:var(--violet)}
.checkcard{display:flex;gap:1rem;align-items:center;margin-top:1.4rem;padding:1.1rem 1.3rem;border-radius:var(--r-lg);background:linear-gradient(120deg,#ECE8FF,#FFF4D6);color:var(--ink);text-decoration:none;box-shadow:0 6px 0 rgba(108,76,241,.18)}
.checkcard b{display:block;font-family:var(--display);font-size:1.3rem}.checkcard small{color:var(--muted)}
.cc-e{font-size:2.6rem}.cc-big{font-size:4rem;text-align:center}
.check-intro{text-align:center}
.checks{margin:.8rem 0;padding:.9rem 1rem;border-radius:var(--r-md);background:var(--bg)}
.checks.muted{background:none;padding:0}
.checks-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.5rem}
.checks-row{display:grid;gap:.3rem}
.checks-row div{display:grid;grid-template-columns:90px 60px 24px 60px;align-items:center}
.checks-row .arrow{color:var(--muted)}
.offcard{max-width:720px;margin:0 auto;background:var(--paper);border-radius:var(--r-lg);padding:2rem;text-align:center}
.off-e{font-size:5rem;line-height:1}
.off-steps{text-align:left;margin:1.2rem auto;max-width:560px;display:grid;gap:.7rem;padding-left:1.4rem;font-size:1.15rem;line-height:1.5}
.offcard .actions{justify-content:center}
.weekpick{display:grid;gap:.5rem}
.weekpick label{display:block;cursor:pointer}
.weekpick input{position:absolute;opacity:0}
.weekpick span{display:block;padding:.7rem 1rem;border:2px solid var(--line);border-radius:12px;background:var(--bg)}
.weekpick b{display:block}
.weekpick input:checked+span{border-color:var(--violet);background:#ECE8FF}
.weekpick input:focus-visible+span{outline:3px solid var(--sun)}
.cgrid{display:grid;grid-template-columns:300px 1fr;gap:1.2rem;align-items:start;margin-top:1rem}
.ctl{background:var(--paper);border-radius:var(--r-md);padding:.8rem;max-height:75vh;overflow:auto;position:sticky;top:5rem}
.ctl h3{font-size:1rem;margin:.6rem .4rem .3rem}
.ctl-i{display:block;padding:.5rem .6rem;border-radius:10px;color:var(--ink);text-decoration:none;font-size:.92rem}
.ctl-i small{display:block;color:var(--muted);font-size:.75rem}
.ctl-i.on{background:#ECE8FF}.ctl-i:hover{background:var(--bg)}
.edited{font-size:.7rem;background:var(--sun);border-radius:999px;padding:.05rem .4rem}
.cform{background:var(--paper);border-radius:var(--r-md);padding:1.2rem 1.4rem;display:grid;gap:.8rem}
.cform h3{margin-top:.8rem;font-size:1.15rem}
.cform label{display:grid;gap:.25rem;font-size:.85rem;font-weight:600;color:var(--muted)}
.cform input,.cform textarea,.tsel select{font:inherit;font-size:.98rem;padding:.55rem .7rem;border:2px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);width:100%}
.sled,.qed{position:relative;display:grid;gap:.5rem;padding:.8rem 2.8rem .8rem .8rem;border:1px solid var(--line);border-radius:12px}
.sled .rm,.qed .rm{position:absolute;top:.5rem;right:.5rem}
.qed .two{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.sticky-actions{position:sticky;bottom:0;background:var(--paper);padding:.8rem 0}
.tip{background:#FFF4D6;border-radius:12px;padding:.7rem 1rem;margin:.8rem 0}
.tsel{display:grid;gap:.25rem;font-weight:600;margin:.6rem 0}
.reclist{display:grid;gap:.4rem;margin-top:.8rem}
.reclist.grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.recrow{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.6rem .8rem;background:var(--paper);border-radius:12px;border-left:5px solid var(--line)}
.recrow.has{border-left-color:var(--mint)}
.rlabel{flex:1;font-size:.95rem}
.rlabel.sound,.rlabel.word{font-family:var(--display);font-weight:800;font-size:1.4rem}
.rbtns{display:flex;gap:.3rem;flex-shrink:0}
.rb{width:40px;height:40px;border:0;border-radius:50%;background:var(--bg);cursor:pointer;display:grid;place-items:center;font-size:1rem}
.rb:disabled{opacity:.35;cursor:default}
.rb.rec{color:#E5484D;font-size:1.2rem}
.rb.rec.on{background:#E5484D;color:#fff;animation:pulse 1s infinite}
@keyframes pulse{50%{transform:scale(1.1)}}
@media (max-width:820px){.cgrid{grid-template-columns:1fr}.ctl{position:static;max-height:40vh}.qed .two{grid-template-columns:1fr}}
.alltopics{margin-top:1rem}.alltopics summary{cursor:pointer;font-weight:600;padding:.4rem 0}
.ideacard{display:flex;align-items:center;gap:1rem;margin-top:1rem;padding:1rem 1.2rem;border-radius:var(--r-lg);background:#DFF6EE;color:var(--ink);text-decoration:none;border-left:6px solid #1FA97B}
.ideacard small{display:block;color:#167a59;font-weight:600}.ideacard b{font-family:var(--display);font-size:1.2rem}.ideacard .go{margin-left:auto;font-size:1.6rem;color:#1FA97B}
.modeline{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin:.6rem 0;padding:.6rem .9rem;border-radius:12px;background:#F4F5FB;font-size:.95rem}
.checks .sent{color:#167a59;font-weight:600;font-size:.9rem}

/* records, certificates, exams */
.tutor-btn{margin-left:auto;align-self:flex-start;white-space:nowrap}
.record,.cert{background:#fff;border-radius:var(--r-md);padding:2rem 2.2rem;max-width:900px;margin:0 auto;color:#1F2340;box-shadow:0 2px 0 var(--line)}
.rec-h{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:3px solid #6C4CF1;padding-bottom:1rem;margin-bottom:1.2rem;flex-wrap:wrap}
.rec-brand{display:flex;align-items:center;gap:.7rem}.rec-brand.center{justify-content:center}
.rec-brand b{display:block;font-family:var(--display);letter-spacing:.18em;font-size:1.1rem}.rec-brand small{color:var(--muted);font-size:.75rem}
.rec-logo{width:46px;height:46px;border-radius:12px;background:#6C4CF1;color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:1.8rem}
.rec-title{text-align:right}.rec-title h2{font-size:1.5rem;font-family:Georgia,"Times New Roman",serif;font-weight:700}.rec-title p{color:var(--muted);font-size:.9rem}
.rec-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem 1.2rem;margin-bottom:1rem}
.rec-meta small{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.rec-meta b{font-size:1rem}
.record h3{font-size:1rem;text-transform:uppercase;letter-spacing:.06em;color:#6C4CF1;margin:1.3rem 0 .5rem}
.rec-t{width:100%;border-collapse:collapse;font-size:.92rem}.rec-t th,.rec-t td{border:1px solid #E3E5F0;padding:.45rem .6rem;text-align:left}.rec-t th{background:#F4F5FB;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
.rec-c{line-height:1.6}.rec-w{border-left:4px solid #FACA4B;padding:.6rem 1rem;background:#FFFDF6;white-space:pre-wrap}.rec-w small{display:block;color:var(--muted);margin-bottom:.3rem}
.rec-pc{width:100%;font:inherit;padding:.6rem;border:2px dashed var(--line);border-radius:10px}.rec-pc-print{display:none}
.rec-key{font-size:.78rem;color:var(--muted);margin-top:1rem}
.rec-sign{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2.2rem}.rec-sign span{display:block;border-bottom:1px solid #1F2340;height:2.2rem}.rec-sign small{color:var(--muted)}
.rec-foot{font-size:.72rem;color:var(--muted);margin-top:1.4rem;text-align:center}
.cert{padding:1rem}.cert-in{border:6px double #6C4CF1;border-radius:10px;padding:2.4rem 2rem;text-align:center;background:radial-gradient(circle at top,#FFF8E1,#fff 60%)}
.cert-kicker{font-family:Georgia,"Times New Roman",serif;font-size:2rem;margin:1.2rem 0 .6rem;color:#6C4CF1}
.cert-name{font-family:Georgia,"Times New Roman",serif;font-size:2.6rem;margin:.4rem 0 1rem;border-bottom:2px solid #FACA4B;display:inline-block;padding:0 1.4rem .2rem}
.cert-in p{line-height:1.7}
.exam-h{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.exam h2{font-size:1.25rem}.exam p{margin:.5rem 0 .8rem}
.req .form{display:grid;gap:.7rem}.req label{display:grid;gap:.25rem;font-weight:600}.req input,.req select,.req textarea{font:inherit;padding:.55rem .7rem;border:2px solid var(--line);border-radius:10px;background:var(--bg)}
.reqcard select{font:inherit;padding:.4rem .6rem;border-radius:10px;border:2px solid var(--line)}.reqcard p{margin:.3rem 0}
@media (max-width:700px){.rec-meta{grid-template-columns:1fr 1fr}.record,.cert{padding:1.2rem}.rec-title{text-align:left}.topic-head{flex-wrap:wrap}.tutor-btn{margin-left:0}}
@media print{
  header.top,.top,.foot,footer,.noprint,.fb-btn,.feedback-btn,.toast,.demo-bar,.demobar,[data-feedback]{display:none!important}
  body{background:#fff!important}.record,.cert{box-shadow:none;max-width:none;padding:0}.rec-pc{display:none}.rec-pc-print{display:block;min-height:2.5rem;border-bottom:1px dotted #999}
  .rec-t th{background:#F4F5FB!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.rec-logo,.cert-in{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* discover, advisor, accessibility */
.disc{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem;margin-top:.6rem}
.disc-i{display:grid;place-items:center;gap:.3rem;padding:1.1rem .6rem;border-radius:var(--r-lg);background:var(--paper);text-decoration:none;color:var(--ink);border-bottom:5px solid var(--c);text-align:center}
.disc-i span{font-size:2.4rem}.disc-i b{font-family:var(--display);font-size:1.05rem}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;margin:1rem 0}
.xcard{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem;border-radius:var(--r-md);background:var(--paper);text-decoration:none;color:var(--ink);box-shadow:0 3px 0 var(--line)}
.xcard .xe{font-size:2.4rem}.xcard b{font-family:var(--display);font-size:1.1rem}.xcard small{color:var(--muted)}.xcard .strand-tag{align-self:flex-start}
.xcard.tour .toolbar{margin:.5rem 0 0}
.mat-list{display:grid;gap:.4rem;padding-left:1.2rem;margin:.6rem 0 1rem}
.club-now h2{font-size:1.5rem;margin:.4rem 0 .8rem}
.logbook{display:flex;gap:.5rem;margin:.6rem 0}.logbook input{flex:1;font:inherit;padding:.55rem .7rem;border:2px solid var(--line);border-radius:10px}
.labframe iframe{width:100%;aspect-ratio:4/3;border:0;border-radius:var(--r-md);background:#000}
.advisor .adv-h{display:flex;gap:.9rem;align-items:center;margin-bottom:.4rem}.adv-av{width:52px;height:52px;border-radius:50%;background:#ECE8FF;color:var(--violet);display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:1.5rem}
.advisor small{display:block;color:var(--muted)}.advisor b{display:block;font-family:var(--display);font-size:1.25rem}
.community{background:#DFF6EE}
.strand-tag.warn{background:#FFE6E1;color:#B4231F}
.fam details summary{cursor:pointer;font-weight:600;margin-top:.4rem}
.checks-list{display:grid;gap:.5rem}.checks-list label{display:flex;gap:.6rem;align-items:flex-start;cursor:pointer}.checks-list input{margin-top:.3rem;width:20px;height:20px}.checks-list small{display:block;color:var(--muted);font-weight:400}
label.inline{display:flex!important;gap:.5rem;align-items:center}
.signnote{font-weight:600;margin-bottom:.4rem}
.opt.armed{outline:4px solid var(--sun);outline-offset:2px}
html.a11y-large{font-size:118%}
html.a11y-large .opt{font-size:1.6rem}
html.a11y-contrast{--muted:#2B2F4A;--line:#4A4F6E}
html.a11y-contrast body{background:#fff}
html.a11y-contrast .opt,html.a11y-contrast .btn{border:2px solid #1F2340}
html.a11y-contrast a{text-decoration:underline}
.tm.off{opacity:.65}.tm .adv-h b{display:block}.tm .adv-h small{color:var(--muted)}
.advsel{display:grid;gap:.2rem;font-weight:600;font-size:.85rem}.advsel select{font:inherit;padding:.5rem .6rem;border:2px solid var(--line);border-radius:10px;background:var(--bg);min-width:220px}
.fam.due{border-left:6px solid #E5484D}
.kidrows{display:grid;gap:.4rem;margin:.6rem 0}
.kidrow{display:grid;grid-template-columns:36px 1fr auto;grid-template-rows:auto auto;column-gap:.6rem;align-items:center;padding:.6rem .8rem;border-radius:12px;background:var(--bg);text-decoration:none;color:var(--ink)}
.kidrow>span:first-child{grid-row:1/3;font-size:1.6rem}.kidrow small{grid-column:2;color:var(--muted)}.kidrow .go{grid-row:1/3;grid-column:3;font-size:1.4rem;color:var(--muted)}
.logo{display:inline-flex;align-items:baseline;gap:.4rem}.logo-by{font-family:var(--body);font-size:.72rem;font-weight:600;color:var(--muted);letter-spacing:.02em}
.foot{flex-wrap:wrap}.foot-brand{width:100%;text-align:center;color:var(--muted);font-size:.85rem;margin-bottom:.3rem}
.about .lead{font-size:1.2rem}
.streamsel[hidden]{display:none!important}
.opt.long{font-size:1.15rem;line-height:1.25;padding:.6rem .8rem}
@media (min-width:700px){.opt.long{font-size:1.35rem}}

/* daily lessons */
.daily{background:#fff;border-radius:22px;padding:1.1rem 1.2rem;margin:1rem 0 1.4rem;box-shadow:0 2px 0 rgba(31,35,64,.06)}
.daily-h{display:flex;gap:.8rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.daily-h h2{margin:0}
.dweeks{display:grid;gap:.5rem;margin-top:.6rem;max-height:340px;overflow:auto;padding-right:.2rem}
.dweek{display:flex;gap:.6rem;align-items:center;padding:.35rem .4rem;border-radius:14px}
.dweek.on{background:var(--s)}
.dw-h{min-width:4.6rem;font-weight:800;display:flex;flex-direction:column;font-size:.92rem}
.dw-h small{font-weight:600;color:var(--muted)}
.dw-days,.dnav{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem;flex:1}
.dnav{margin:.4rem 0 1rem}
.dday{display:flex;flex-direction:column;align-items:center;text-align:center;padding:.4rem .2rem;border-radius:12px;background:#F4F5FA;color:var(--ink);text-decoration:none;border:2px solid transparent;min-width:0}
.dday b{font-size:.9rem}
.dday small{font-size:.66rem;line-height:1.15;color:var(--muted);overflow:hidden;text-overflow:ellipsis;max-width:100%}
.dday.done{background:#C9F2DF}
.dday.done b::after{content:" ✓"}
.dday.next,.dday.on{border-color:var(--c)}
.dday:focus-visible{outline:3px solid var(--c);outline-offset:2px}
.path-h{margin:1rem 0 .4rem}
@media (max-width:520px){.dweek{flex-direction:column;align-items:stretch}.dw-h{flex-direction:row;gap:.5rem}.dday small{display:none}}

/* slides, pictures and worksheets */
.res{background:#fff;border-radius:18px;padding:.9rem;margin:0 0 1rem;box-shadow:0 2px 0 rgba(31,35,64,.06)}
.res-h{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.5rem}
.res-h small{color:var(--muted)}
.res-frame{width:100%;aspect-ratio:16/10;border:0;border-radius:12px;background:#F4F5FA;display:block}
.res-img{max-width:100%;height:auto;border-radius:12px;display:block;margin:0 auto}
.res-pic{margin:0 0 1rem;text-align:center}
.res-pic figcaption{font-size:.9rem;color:var(--muted);margin-top:.4rem}
.res-acts{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.res-ws{margin:1rem 0}
.res-ws h3{margin:.2rem 0 .6rem}
.res-note{margin-bottom:.8rem}
.rpanel{margin-top:1rem}
.res-list{display:grid;gap:.4rem;margin:.6rem 0 1rem}
.res-row{display:flex;align-items:center;gap:.6rem;background:#F4F5FA;border-radius:12px;padding:.5rem .6rem}
.res-k{font-size:1.3rem}
.res-t{flex:1;display:flex;flex-direction:column;min-width:0}
.res-t small{color:var(--muted)}
.res-b{display:flex;gap:.25rem}
.pw{border-top:1px solid #E7E8F0;padding-top:.6rem;margin-top:.6rem}
@media print{.res-acts{display:none}}
.res-ws .res-img{max-height:260px;width:auto;object-fit:contain}
.daybar{background:#fff;border-radius:18px;padding:.7rem .8rem;margin:0 0 1rem;box-shadow:0 2px 0 rgba(31,35,64,.06)}
.daybar>span{font-weight:800;display:block;margin-bottom:.4rem}
.daybar .dnav{margin:0}
.av-img{width:1.15em;height:1.15em;border-radius:50%;object-fit:cover;vertical-align:middle;display:inline-block}
.av-up{display:flex;align-items:center;gap:.6rem;margin-top:.7rem;flex-wrap:wrap}
.av-up .av-prev{width:56px;height:56px;border-radius:50%;object-fit:cover;border:3px solid var(--violet,#6C4CF1)}
.res-link{display:flex;align-items:center;gap:.6rem;justify-content:space-between;flex-wrap:wrap}
.radd-grid{display:grid;gap:1rem;grid-template-columns:1fr 1fr}
.radd{background:#F4F5FA;border-radius:14px;padding:.8rem}
.radd h4{margin:0 0 .4rem}
@media (max-width:760px){.radd-grid{grid-template-columns:1fr}}
