/* CURIO Teacher Console — toned-down pro (uses curio.css tokens + platform.css basics) */
.tch-plat{font-size:16px}
.tch-plat .p-main{padding:20px 28px;gap:16px;overflow:hidden}
.tch-plat .p-rail{width:212px}
.trole{font-family:'Fredoka',sans-serif;font-weight:500;font-size:13px;color:var(--ink-faint);margin:-4px 0 10px 6px}
/* period tabs */
.ptabs{display:flex;gap:8px;align-items:center}
.ptab{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 16px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 2px var(--tint);font-family:'Fredoka',sans-serif;font-weight:600;font-size:14.5px;color:var(--ink-soft);cursor:pointer;white-space:nowrap}
.ptab em{font-style:normal;font-weight:600;font-size:12px;opacity:.75}
.ptab.on{background:var(--ink);color:#fff;box-shadow:0 4px 0 #1A0F07}
/* value strip */
.valstrip{display:flex;align-items:center;gap:22px;background:#fff;border-radius:18px;padding:14px 22px;box-shadow:0 5px 0 var(--tint),0 18px 30px -24px rgba(122,40,12,.35)}
.valstrip .vs{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;color:var(--ink-soft)}
.valstrip .vs b{font-family:'Fredoka',sans-serif;font-weight:700;font-size:22px;color:var(--ink);display:block;line-height:1}
.vsico{width:38px;height:38px;flex:none;border-radius:12px;display:grid;place-items:center;background:linear-gradient(160deg,var(--tint-2),var(--tint));color:var(--orange-deep)}
.vsep{width:2px;height:34px;background:var(--tint-2);flex:none}
.valstrip .vtag{margin-left:auto;font-family:'Fredoka',sans-serif;font-weight:500;font-size:13px;color:var(--ink-faint)}
/* dashboard grid */
.dashgrid{display:grid;grid-template-columns:1.25fr .95fr .95fr;gap:16px;flex:1;min-height:0}
.tcard{background:#fff;border-radius:20px;padding:18px 20px;box-shadow:0 5px 0 var(--tint),0 18px 30px -24px rgba(122,40,12,.35);display:flex;flex-direction:column;gap:12px;min-height:0}
.tcard-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tcard-h h2{font-family:'Fredoka',sans-serif;font-weight:600;font-size:18px;margin:0}
.tbadge{font-family:'Fredoka',sans-serif;font-weight:600;font-size:12.5px;padding:5px 11px;border-radius:999px;background:var(--tint-2);color:var(--orange-deep)}
.tbadge.red{background:#FDE8E4;color:#C0392B}
.tbadge.grn{background:#E7F8EE;color:#1A9D5E}
/* stuck queue */
.stuck{display:flex;flex-direction:column;gap:10px}
.stk{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:14px;background:var(--cream);box-shadow:inset 0 0 0 2px var(--tint-2)}
.stk .uav{width:38px;height:38px}
.stk .in{flex:1;min-width:0}
.stk b{font-family:'Fredoka',sans-serif;font-weight:600;font-size:15px;display:block}
.stk em{font-style:normal;font-weight:600;font-size:13px;color:var(--ink-soft)}
.stk em i{font-style:normal;color:#C0392B;font-weight:700}
.tbtn{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border-radius:999px;font-family:'Fredoka',sans-serif;font-weight:600;font-size:13.5px;color:#fff;background-color:var(--orange);background-image:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0) 55%);box-shadow:0 4px 0 var(--orange-dark);cursor:pointer;white-space:nowrap;border:none}
.tbtn.ghost{background:#fff;color:var(--orange-deep);box-shadow:0 4px 0 var(--line),inset 0 0 0 2px var(--tint)}
.tbtn.lg{min-height:46px;padding:0 22px;font-size:15.5px}
/* retention funnel */
.funl{display:flex;flex-direction:column;gap:9px}
.frow2{display:grid;grid-template-columns:86px 1fr 44px;align-items:center;gap:10px;font-weight:700;font-size:13.5px;color:var(--ink-soft)}
.fbar{height:26px;border-radius:999px;background:var(--tint-2);overflow:hidden;box-shadow:inset 0 0 0 2px var(--tint)}
.fbar i{display:block;height:100%;border-radius:999px}
.fbar .bz{background:linear-gradient(90deg,#E8A76F,#C97B3D)}
.fbar .ck{background:linear-gradient(90deg,var(--orange-bright),var(--orange))}
.fbar .gd{background:linear-gradient(90deg,#FFE08A,var(--yellow-dk))}
.fnote{font-weight:600;font-size:13.5px;color:var(--ink-faint)}
.bignum{font-family:'Fredoka',sans-serif;font-weight:700;font-size:44px;line-height:1;color:var(--orange-deep)}
.bignum em{font-style:normal;font-size:16px;color:var(--ink-soft);font-family:'Nunito',sans-serif;font-weight:700;display:block;margin-top:4px}
/* wins feed */
.wins{display:flex;flex-direction:column;gap:10px;overflow:hidden}
.win{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:14px;background:var(--cream);box-shadow:inset 0 0 0 2px var(--tint-2);font-weight:600;font-size:14px}
.win .wic{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center}
.win .wic.gold{background:radial-gradient(circle at 35% 30%,#FFE9A8,var(--yellow) 60%,var(--yellow-dk));color:#7A4B00}
.win .wic.orange{background:var(--tint);color:var(--orange-deep)}
.win b{font-family:'Fredoka',sans-serif;font-weight:600}
.win em{font-style:normal;display:block;font-size:12.5px;color:var(--ink-faint);font-weight:600;margin-top:2px}
.sharel{font-family:'Fredoka',sans-serif;font-weight:600;font-size:12.5px;color:var(--orange-deep);cursor:pointer;white-space:nowrap;align-self:center}
/* game library */
.autop{display:flex;align-items:center;gap:14px;background:linear-gradient(160deg,var(--orange-bright),var(--orange-deep));color:#fff;border-radius:20px;padding:16px 22px;box-shadow:0 6px 0 var(--orange-dark)}
.autop img{width:52px;flex:none;filter:drop-shadow(0 6px 8px rgba(122,40,12,.4))}
.autop b{font-family:'Fredoka',sans-serif;font-weight:600;font-size:17px;display:block}
.autop p{margin:2px 0 0;font-weight:600;font-size:14px;color:rgba(255,255,255,.92)}
.autop .grow{flex:1}
/* toggle */
.tgl{width:52px;height:30px;flex:none;border-radius:999px;background:var(--line);position:relative;cursor:pointer;box-shadow:inset 0 2px 4px rgba(122,40,12,.15)}
.tgl::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(46,16,4,.3);transition:left .15s}
.tgl.on{background:#1A9D5E}
.tgl.on::after{left:25px}
.tgl.or.on{background:var(--orange)}
.tglrow{display:flex;align-items:center;gap:12px}
.tgl-lab{font-family:'Fredoka',sans-serif;font-weight:600;font-size:14.5px}
/* game cards */
.gamegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;overflow:hidden}
.gcard{display:flex;flex-direction:column;border-radius:18px;background:#fff;box-shadow:0 5px 0 var(--tint),0 18px 30px -24px rgba(122,40,12,.35);overflow:hidden}
.gthumb{height:104px;background:repeating-linear-gradient(135deg,#FFE6D2 0 12px,#FFDCC0 12px 24px);display:grid;place-items:center;position:relative}
.gthumb .glab{font-size:11px}
.gpicked{position:absolute;top:10px;left:10px;font-family:'Fredoka',sans-serif;font-weight:600;font-size:11.5px;background:rgba(46,27,16,.75);color:#fff;padding:4px 10px;border-radius:999px}
.gbody{padding:14px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.gbody b{font-family:'Fredoka',sans-serif;font-weight:600;font-size:16px}
.gtags{display:flex;gap:6px;flex-wrap:wrap}
.gtag{font-weight:700;font-size:12px;padding:4px 10px;border-radius:999px;background:var(--tint-2);color:var(--ink-soft)}
.gtag.ev{background:#E7F8EE;color:#1A9D5E}
.gfoot{display:flex;align-items:center;justify-content:space-between;padding:0 16px 14px}
.gcard.off{opacity:.62}
.gcard.off .gthumb{filter:grayscale(.7)}
/* controls page */
.ctrlgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;flex:1;min-height:0;align-content:start}
.crow{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:2px solid var(--tint-2)}
.crow:last-child{border-bottom:none}
.crow .in{flex:1;min-width:0}
.crow b{font-family:'Fredoka',sans-serif;font-weight:600;font-size:15px;display:block}
.crow em{font-style:normal;font-weight:600;font-size:13px;color:var(--ink-faint)}
.seg{display:inline-flex;background:var(--tint-2);border-radius:999px;padding:3px;gap:2px}
.seg span{padding:7px 14px;border-radius:999px;font-family:'Fredoka',sans-serif;font-weight:600;font-size:13px;color:var(--ink-soft);cursor:pointer;white-space:nowrap}
.seg span.on{background:#fff;color:var(--ink);box-shadow:0 2px 6px -2px rgba(122,40,12,.35)}
.reco{font-family:'Fredoka',sans-serif;font-weight:500;font-size:12px;color:var(--ink-faint)}
.ulockrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:2px solid var(--tint-2);font-weight:700;font-size:14px}
.ulockrow:last-child{border-bottom:none}
.ulockrow .chnum{width:34px;height:34px;font-size:14px;border-radius:11px}
.ulockrow .st{margin-left:auto;font-family:'Fredoka',sans-serif;font-weight:600;font-size:12.5px;color:var(--ink-faint)}
/* report */
.repwrap{flex:1;display:grid;grid-template-columns:1fr 300px;gap:16px;min-height:0}
.repdoc{background:#fff;border-radius:20px;padding:26px 30px;box-shadow:0 5px 0 var(--tint),0 18px 30px -24px rgba(122,40,12,.35);display:flex;flex-direction:column;gap:14px;overflow:hidden}
.repdoc .rhead{display:flex;align-items:center;gap:12px;border-bottom:2px solid var(--tint-2);padding-bottom:12px}
.repdoc .rhead img{height:26px}
.repdoc .rhead .in{flex:1}
.repdoc .rhead b{font-family:'Fredoka',sans-serif;font-weight:700;font-size:19px;display:block}
.repdoc .rhead em{font-style:normal;font-weight:600;font-size:13px;color:var(--ink-faint)}
.repstats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.rstat{background:var(--cream);border-radius:14px;padding:14px 16px;box-shadow:inset 0 0 0 2px var(--tint-2)}
.rstat b{font-family:'Fredoka',sans-serif;font-weight:700;font-size:28px;color:var(--orange-deep);display:block;line-height:1}
.rstat em{font-style:normal;font-weight:700;font-size:13px;color:var(--ink-soft)}
.covrow{display:grid;grid-template-columns:150px 1fr 46px;gap:10px;align-items:center;font-weight:700;font-size:13.5px;color:var(--ink-soft)}
.covbar{height:14px;border-radius:999px;background:var(--tint-2);overflow:hidden;box-shadow:inset 0 0 0 2px var(--tint)}
.covbar i{display:block;height:100%;background:linear-gradient(90deg,var(--yellow),var(--orange));border-radius:999px}
.repquote{background:var(--tint-2);border-radius:14px;padding:12px 16px;font-weight:600;font-size:14px;color:var(--ink-soft)}
.repquote b{color:var(--ink)}
/* --- dashboard variations --- */
.hero1{padding:30px 34px;gap:16px}
.v1big{font-family:'Fredoka',sans-serif;font-weight:600;font-size:34px;line-height:1.15;margin:0;max-width:24ch}
.v1big b{color:var(--orange-deep);font-weight:700}
.deep{font-family:'Fredoka',sans-serif;font-weight:600;font-size:13.5px;color:var(--orange-deep);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.deep .ic svg{width:15px;height:15px}
.v1row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.v1stat{background:#fff;border-radius:18px;padding:18px 20px;box-shadow:0 5px 0 var(--tint),0 18px 30px -24px rgba(122,40,12,.35);display:flex;flex-direction:column;gap:3px}
.v1stat b{font-family:'Fredoka',sans-serif;font-weight:700;font-size:30px;color:var(--ink);line-height:1}
.v1stat em{font-style:normal;font-weight:700;font-size:14px;color:var(--ink-soft)}
.v1stat .deep{margin-top:8px}
.feed{display:flex;flex-direction:column;gap:10px}
.feeditem{flex-direction:row;align-items:center;gap:14px;padding:16px 18px}
.feeditem .in{flex:1;min-width:0}
.feeditem b{font-family:'Fredoka',sans-serif;font-weight:600;font-size:16.5px;display:block}
.feeditem em{font-style:normal;font-weight:600;font-size:13.5px;color:var(--ink-soft)}
.feeditem.hot{box-shadow:0 0 0 2.5px var(--orange),0 6px 0 var(--orange-dark),0 18px 30px -24px rgba(122,40,12,.4)}
.fdrank{width:30px;height:30px;flex:none;border-radius:50%;display:grid;place-items:center;font-family:'Fredoka',sans-serif;font-weight:700;font-size:14px;background:var(--tint-2);color:var(--orange-deep)}
.v2foot{display:flex;align-items:center;justify-content:space-between;padding:0 6px}
.v2foot .fnote b{color:var(--ink)}
.pulsecard{display:flex;align-items:center;gap:24px;background:linear-gradient(160deg,var(--orange-bright),var(--orange-deep));color:#fff;border-radius:24px;padding:30px 34px;box-shadow:0 8px 0 var(--orange-dark),0 26px 40px -26px rgba(122,40,12,.5)}
.pulsemasc{width:104px;flex:none;filter:drop-shadow(0 12px 16px rgba(122,40,12,.4));animation:float-y 4.5s ease-in-out infinite}
.pulsetxt{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.pulsetxt h2{font-family:'Fredoka',sans-serif;font-weight:600;font-size:27px;line-height:1.2;margin:0;color:#fff;max-width:30ch}
.pulsetxt h2 b{font-weight:700}
.pulsetxt p{margin:0;font-weight:600;font-size:15.5px;color:rgba(255,255,255,.92)}
.drawers{display:flex;flex-direction:column;gap:10px}
.drawer{padding:16px 20px}
.drhead{display:flex;align-items:center;gap:14px}
.drhead h2{font-family:'Fredoka',sans-serif;font-weight:600;font-size:17px;margin:0;width:170px;flex:none}
.drhead .fnote{flex:1}
/* --- class code flow --- */
.codegrid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;flex:1;min-height:0;align-content:start}
.codecard{align-items:center;gap:14px;padding:30px;justify-content:center}
.bigcode{font-family:'Fredoka',sans-serif;font-weight:700;font-size:88px;letter-spacing:.06em;line-height:1;color:var(--orange-deep);background:var(--tint-2);border-radius:24px;padding:26px 44px;box-shadow:inset 0 0 0 3px var(--tint),0 8px 0 var(--tint)}
.joinlive{display:flex;align-items:center;gap:12px;font-family:'Fredoka',sans-serif;font-weight:600;font-size:15px;width:100%;max-width:420px}
.joinlive .joinbar{flex:1;height:14px;border-radius:999px;background:var(--tint-2);box-shadow:inset 0 0 0 2px var(--tint);overflow:hidden}
.joinlive .joinbar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--yellow),var(--orange))}
.livedot{width:10px;height:10px;border-radius:50%;background:#1fb86a;box-shadow:0 0 0 4px rgba(31,184,106,.2);animation:pulse 1.8s infinite}
.joincard{width:560px;padding:36px 44px;display:flex;flex-direction:column;gap:18px}
.codeboxes{display:flex;gap:8px;justify-content:center}
.cb{width:54px;height:64px;border-radius:14px;display:grid;place-items:center;font-family:'Fredoka',sans-serif;font-weight:700;font-size:30px;background:var(--cream);box-shadow:inset 0 0 0 2px var(--tint);color:var(--ink)}
.cb.f{background:#fff;box-shadow:inset 0 0 0 2px var(--tint),0 4px 0 var(--tint)}
.cb.on{background:#fff;box-shadow:0 0 0 3px var(--orange)}
.cb.dash{background:none;box-shadow:none;width:24px;color:var(--ink-faint)}
.joinid{display:flex;align-items:center;gap:18px;background:var(--cream);border-radius:18px;padding:16px 20px;box-shadow:inset 0 0 0 2px var(--tint-2)}
.idpick{position:relative;width:88px;flex:none;display:grid;place-items:center}
.idpick img{width:70px}
.idtxt{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.aliasname{font-family:'Fredoka',sans-serif;font-weight:700;font-size:26px;color:var(--ink)}
.rostgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.rostcard{flex-direction:row;align-items:center;gap:12px;padding:14px 16px}
.rostcard .in{flex:1;min-width:0}
.rostcard b{font-family:'Fredoka',sans-serif;font-weight:600;font-size:16px;display:block}
.rostcard em{font-style:normal;font-weight:600;font-size:13px;color:var(--ink-soft)}
.rostcard.stuckc{box-shadow:0 0 0 2.5px var(--orange),0 6px 0 var(--orange-dark),0 18px 30px -24px rgba(122,40,12,.4)}
.rostmeta{display:flex;align-items:center}
/* alias wall */
.aliaswall{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;overflow:hidden}
.alz{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:var(--cream);box-shadow:inset 0 0 0 2px var(--tint-2);font-family:'Fredoka',sans-serif;font-weight:600;font-size:13.5px;min-width:0}
.alz b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.alz i{width:9px;height:9px;flex:none;border-radius:50%}
.alz.g i{background:#1fb86a}
.alz.t i{background:var(--orange)}
.alz.i i{background:var(--line)}
.alz.s{box-shadow:0 0 0 2.5px var(--orange),inset 0 0 0 2px var(--tint-2)}
.alz.s i{background:#C0392B;box-shadow:0 0 0 3px rgba(192,57,43,.2);animation:pulse 1.6s infinite}
