:root{--sky-top:#bde9f2;--sky-bot:#f2fbf3;--bg:#fff7ec;--paper:#fff;--ink:#3b2a20;--ink-soft:#8a7462;--pond:#22b3a6;--pond-deep:#13877c;--pond-light:#7fdccf;--mandalina:#ff9416;--mandalina-deep:#d96f00;--lily:#ff6f9c;--lily-deep:#d84676;--lavender:#8e7cff;--lavender-deep:#6656d6;--leaf:#5bbf5a;--leaf-deep:#3b9640;--capy:#b0784a;--capy-dark:#8a5730;--capy-light:#cc9564;--muzzle:#93603a;--good:#1e9e62;--good-bg:#daf6e7;--nope:#e24c4c;--nope-bg:#ffe3e1;--line:#f0e2cf;--shadow:#e9d6bd;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--sky-top:#1b3e5c;--sky-bot:#21494a;--bg:#142826;--paper:#1d3a37;--ink:#fbf3e8;--ink-soft:#bbae9e;--line:#2d524d;--shadow:#0c1c1a;--good-bg:#17463a;--nope-bg:#4b2626}}:root[data-theme=dark]{--sky-top:#1b3e5c;--sky-bot:#21494a;--bg:#142826;--paper:#1d3a37;--ink:#fbf3e8;--ink-soft:#bbae9e;--line:#2d524d;--shadow:#0c1c1a;--good-bg:#17463a;--nope-bg:#4b2626}*,:before,:after{box-sizing:inherit}html{scroll-padding-top:env(safe-area-inset-top,0px);background:var(--bg)}html,body{min-height:100%;margin:0}body{color:var(--ink);-webkit-tap-highlight-color:transparent;background-color:var(--bg);background-image:radial-gradient(circle at 12% 20%, color-mix(in srgb, var(--mandalina) 14%, transparent) 0 6px, transparent 7px), radial-gradient(circle at 78% 62%, color-mix(in srgb, var(--pond) 14%, transparent) 0 9px, transparent 10px), radial-gradient(circle at 42% 88%, color-mix(in srgb, var(--lily) 14%, transparent) 0 5px, transparent 6px);background-size:180px 180px,240px 240px,200px 200px;font-family:"Baloo 2",Trebuchet MS,Segoe UI,system-ui,sans-serif;font-size:19px;line-height:1.45}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:4px solid var(--lavender);outline-offset:3px}a{color:var(--pond-deep);font-weight:700}.wrap{max-width:620px;margin:0 auto;padding:12px 14px 40px}.hidden{display:none!important}.center{text-align:center}.muted{color:var(--ink-soft);font-size:16px}.panel{background:var(--paper);box-shadow:0 5px 0 var(--shadow);border-radius:28px;margin-top:16px;padding:18px}.panel h2{margin:0 0 6px;font-size:23px}.panel h3{margin:16px 0 6px;font-size:18px}.row{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.center-row{justify-content:center}.btn{background:var(--pond);color:#fff;min-height:48px;box-shadow:0 4px 0 var(--pond-deep);border:0;border-radius:16px;padding:10px 20px;font-size:18px;font-weight:800;transition:transform .1s}.btn:active:not([disabled]){box-shadow:0 1px 0 var(--pond-deep);transform:translateY(3px)}.btn[disabled]{opacity:.55;cursor:default}.btn.ghost{background:var(--bg);color:var(--ink);box-shadow:0 3px 0 var(--shadow)}.btn.danger{background:var(--bg);color:var(--nope);box-shadow:0 3px 0 var(--shadow)}.btn.wide{text-align:center;width:100%;margin-top:6px;text-decoration:none;display:block}a.btn{place-items:center;display:inline-grid}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.status-screen{align-content:center;min-height:70vh;display:grid}.field{gap:4px;margin-top:14px;display:grid}.field label,.choice legend{font-size:17px;font-weight:800}.field input,.field select{font:inherit;color:var(--ink);background:var(--bg);border:3px solid var(--line);border-radius:16px;width:100%;min-height:52px;padding:10px 14px;font-size:19px}.field input:focus{border-color:var(--pond);box-shadow:0 0 0 3px color-mix(in srgb, var(--pond) 35%, transparent);outline:none}.field input[aria-invalid=true]{border-color:var(--nope)}.hint{color:var(--ink-soft);font-size:15px;font-weight:600}.field-error{color:var(--nope);font-size:15px;font-weight:700}.form-error{min-height:0;color:var(--nope);margin:12px 0 0;font-size:16px;font-weight:700}.form-error:empty{margin:0}.form-error:not(:empty){background:var(--nope-bg);border-radius:16px;margin-bottom:10px;padding:10px 14px}.choice{border:0;margin:0;padding:0}.choice legend{margin-bottom:6px;padding:0}.choice-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice-card{cursor:pointer;background:var(--bg);border:3px solid var(--line);box-shadow:0 3px 0 var(--shadow);border-radius:20px;gap:2px;padding:12px 14px;line-height:1.2;display:grid;position:relative}.choice-card input{opacity:0;pointer-events:none;position:absolute}.choice-card:has(input:focus-visible){outline:4px solid var(--lavender);outline-offset:3px}.choice-card b{font-size:20px}.choice-card small{color:var(--ink-soft);font-size:14px;font-weight:600}.choice-card.on{border-color:var(--pond);background:color-mix(in srgb, var(--pond) 14%, var(--paper))}.auth{max-width:480px;padding-top:32px}.title{text-align:center;margin:18px 0 0}.brand{color:var(--ink-soft);margin:0;font-size:18px;font-weight:800}.auth-title{text-shadow:0 4px 0 color-mix(in srgb, var(--mandalina) 70%, transparent);margin:2px 0 0;font-size:42px;font-weight:800;line-height:1}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.iconbtn{background:var(--paper);width:48px;height:48px;box-shadow:0 4px 0 var(--shadow);border:0;border-radius:16px;flex:none;place-items:center;font-size:22px;transition:transform .1s;display:grid}.iconbtn:active{box-shadow:0 1px 0 var(--shadow);transform:translateY(3px)}.iconbtn.small{background:var(--bg);width:44px;height:44px;font-size:18px}.count{background:var(--paper);box-shadow:0 4px 0 var(--shadow);border-radius:999px;flex:none;align-items:center;gap:4px;margin-left:auto;padding:4px 16px 4px 8px;font-size:22px;font-weight:800;display:flex}.count svg{width:32px;height:32px}.linkbtn{color:var(--ink-soft);text-underline-offset:3px;background:0 0;border:0;min-height:44px;padding:10px 4px;font-size:16px;font-weight:700;text-decoration:underline}.linkbtn.danger{color:var(--nope)}.btn.grow{flex:1}.btn.play{background:var(--mandalina);box-shadow:0 4px 0 var(--mandalina-deep)}.btn.play:active:not([disabled]){box-shadow:0 1px 0 var(--mandalina-deep)}.field input.short{max-width:140px}.page-head{justify-content:space-between;align-items:center;gap:12px;margin-top:8px;display:flex}.page-title{overflow-wrap:anywhere;margin:0;font-size:32px;font-weight:800;line-height:1.05}.section-head{justify-content:space-between;align-items:center;gap:10px;margin-top:22px;display:flex}.section-head h2{margin:0;font-size:24px}.child-grid{gap:16px;margin-top:12px;display:grid}.child-card{background:var(--paper);box-shadow:0 5px 0 var(--shadow);border-radius:28px;padding:16px 18px 18px}.child-card.skeleton{opacity:.6;height:220px;margin-top:12px;animation:1.2s ease-in-out infinite alternate pulse}@keyframes pulse{to{opacity:.3}}.child-head{align-items:center;gap:12px;display:flex}.child-head .count{background:var(--bg);box-shadow:0 3px 0 var(--shadow)}.child-id{min-width:0}.child-id h3{overflow-wrap:anywhere;margin:0;font-size:26px;line-height:1.1}.facts{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 0;display:grid}.facts div{background:var(--bg);border-radius:16px;padding:8px 12px}.facts dt,.facts-label{color:var(--ink-soft);font-size:14px;font-weight:700}.facts dd{margin:0;font-size:18px;font-weight:800}.class-list{margin-top:12px}.class-list p{margin:2px 0 0}.class-list ul{margin:0;padding:0;list-style:none}.class-list li{border-bottom:2px dotted var(--line);justify-content:space-between;align-items:center;gap:10px;display:flex}.class-list li:last-child{border-bottom:0}.modal{background:var(--paper);width:min(520px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);box-shadow:0 8px 0 var(--shadow);border:0;border-radius:28px;padding:18px 18px 20px;overflow:auto}.modal::backdrop{background:#00000073}.modal-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.modal-head h2{margin:0;font-size:24px;line-height:1.15}.consent{background:var(--bg);border-radius:20px;margin-top:12px;padding:14px 16px}.consent h3{margin:0 0 6px;font-size:19px;line-height:1.25}.consent p{margin:6px 0;font-size:17px}.check{cursor:pointer;align-items:center;gap:10px;min-height:44px;margin-top:10px;font-weight:800;display:flex}.check input{width:26px;height:26px;accent-color:var(--pond);flex:none}.chips{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.chip{background:var(--paper);min-height:44px;color:var(--ink-soft);box-shadow:0 3px 0 var(--shadow);border:0;border-radius:999px;padding:8px 16px;font-size:17px;font-weight:800}.chip.on{background:var(--ink);color:var(--paper)}.join-code{text-align:center;background:var(--bg);border-radius:22px;margin-top:10px;padding:14px}.join-code .code{letter-spacing:3px;-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:4px 0 2px;font-size:clamp(34px,9vw,56px);font-weight:800;line-height:1.1;display:block}.join-code .muted{min-height:1.4em;margin:6px 0 0}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:16px}td,th{text-align:left;border-bottom:2px dotted var(--line);padding:9px 6px}th{color:var(--ink-soft);font-size:14px;font-weight:700}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.barcell{width:38%;min-width:56px}.meter{background:var(--line);border-radius:8px;min-width:48px;height:12px;overflow:hidden}.meter i{background:var(--leaf);border-radius:8px;height:100%;display:block}.meter i.low{background:var(--lily)}.sev{white-space:nowrap;vertical-align:middle;border-radius:999px;margin-left:8px;padding:2px 10px;font-size:13px;font-weight:800;display:inline-block}.sev-high{background:var(--nope-bg);color:var(--nope)}.sev-warn{background:color-mix(in srgb, var(--mandalina) 22%, var(--paper));color:var(--mandalina-deep)}.sev-info{background:var(--bg);color:var(--ink-soft)}.alert-list{margin:6px 0 0;padding:0;list-style:none}.alert-list>li{background:var(--bg);border-radius:18px;margin-bottom:8px;padding:10px 14px}.alert-list>li>b{font-size:18px}.alert-list ul{margin:4px 0 0;padding:0;list-style:none}.alert-list ul li{margin-top:4px;font-size:16px;line-height:1.4}.alert-list .sev{margin-left:0;margin-right:2px}@media (width<=480px){td .sev{width:fit-content;margin:4px 0 0;display:block}}:root{--chart-clean:#1e9e62;--chart-struggled:#8e7cff}.tiles{grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 0;display:grid}.tiles div{background:var(--bg);border-radius:18px;min-width:0;padding:10px 12px}.tiles dt{color:var(--ink-soft);font-size:14px;font-weight:700;line-height:1.2}.tiles dd{margin:2px 0 0;font-size:26px;font-weight:800;line-height:1.1}.chart{margin:16px 0 0}.chart-svg{width:100%;height:auto;display:block}.chart-grid{stroke:var(--line);stroke-width:1px}.chart-axis{stroke:var(--line);stroke-width:2px}.chart-tick{fill:var(--ink-soft);font-size:11px;font-weight:700}.chart-empty{fill:var(--line)}.bar-clean{fill:var(--chart-clean)}.bar-struggled{fill:var(--chart-struggled)}.chart-hover{min-height:1.4em;color:var(--ink-soft);margin:6px 0 0;font-size:15px;font-weight:700}.chart-legend{flex-wrap:wrap;gap:16px;margin:4px 0 0;font-size:15px;font-weight:700;display:flex}.chart-legend span{align-items:center;gap:6px;display:flex}.swatch{border-radius:4px;flex:none;width:14px;height:14px}i.swatch.bar-clean{background:var(--chart-clean)}i.swatch.bar-struggled{background:var(--chart-struggled)}.table-view{margin-top:12px}.table-view summary{cursor:pointer;color:var(--ink-soft);min-height:44px;padding:8px 0;font-weight:800}.nowrap{white-space:nowrap}.round-list{margin:8px 0 0;padding:0;list-style:none}.round-list li{border-bottom:2px dotted var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:9px 0;display:flex}.round-list li:last-child{border-bottom:0}.round-when{color:var(--ink-soft);flex:none;font-size:15px;font-weight:700}.round-mode{min-width:0;font-weight:800}.round-score{font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin-left:auto;font-weight:800;display:flex}@media (width<=420px){.tiles{grid-template-columns:1fr 1fr}.tiles div:first-child{grid-column:1/-1}}@media (width<=520px){.col-time{display:none}}:root{--heat-0:#fdeef3;--heat-1:#facfdd;--heat-2:#f4a6be;--heat-3:#e8738f;--heat-4:#c93a64;--heat-4-ink:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--heat-0:#26403f;--heat-1:#44384a;--heat-2:#6b3550;--heat-3:#9c3a5f;--heat-4:#b83862;--heat-4-ink:var(--ink)}}:root[data-theme=dark]{--heat-0:#26403f;--heat-1:#44384a;--heat-2:#6b3550;--heat-3:#9c3a5f;--heat-4:#b83862;--heat-4-ink:var(--ink)}.heat[data-step="4"]{color:var(--heat-4-ink)}.heatmap th[scope=row]{white-space:nowrap;font-weight:800}.heatmap td.heat{text-align:center;font-variant-numeric:tabular-nums;min-width:34px;box-shadow:0 0 0 2px var(--paper);border-radius:8px;padding:9px 2px;font-weight:800}.heat[data-step="0"],.heat-swatch[data-step="0"]{background:var(--heat-0)}.heat[data-step="1"],.heat-swatch[data-step="1"]{background:var(--heat-1)}.heat[data-step="2"],.heat-swatch[data-step="2"]{background:var(--heat-2)}.heat[data-step="3"],.heat-swatch[data-step="3"]{background:var(--heat-3)}.heat[data-step="4"],.heat-swatch[data-step="4"]{background:var(--heat-4)}.heat-none{color:var(--ink-soft);background:0 0}.heat-none:after{content:"·";color:var(--line);font-size:20px}.heat-thin{opacity:.45;outline:2px dashed var(--line);outline-offset:-3px}.heat-legend{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;font-size:14px;font-weight:700;display:flex}.heat-swatch{border-radius:4px;flex:none;width:20px;height:14px;display:inline-block}.heat-legend .heat-note{align-items:center;gap:5px;margin-left:8px;display:flex}.heat-scroll-note{display:none}@media (width<=520px){.heat-scroll-note{color:var(--ink-soft);margin:6px 0 0;font-size:14px;font-weight:700;display:block}}.pending-list{margin:8px 0 0;padding:0;list-style:none}.pending-list li{background:var(--bg);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;padding:10px 14px;display:flex}.pending-who{gap:2px;min-width:0;display:grid}.pending-who b{font-size:18px}.pending-who .muted{font-size:14px}.pending-actions{margin-top:0}@media (width<=420px){.child-card .row .btn.play{flex:1 0 100%}}
