@import"https://fonts.googleapis.com/css2?family=Nunito:wght@600;800&family=Patrick+Hand&display=swap";.progress-page{flex:1;overflow:auto;padding:16px 16px 32px;display:flex;flex-direction:column;align-items:center;gap:12px}.progress-page.kid{background:linear-gradient(var(--navy-2),var(--navy) 58%,color-mix(in srgb,var(--navy) 88%,black));color:#fff}.progress-bar{width:min(720px,100%);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}.progress-back{min-height:52px;padding:0 20px;border:0;border-radius:999px;background:var(--navy);color:#fff;font-weight:800;cursor:pointer}.progress-page.kid .progress-back{background:#fff;color:var(--navy)}.kid-toggle{display:flex;align-items:center;gap:8px;min-height:52px;padding:0 14px;border-radius:999px;background:#fff;color:var(--ink);font-weight:800;cursor:pointer}.kid-toggle-input{width:22px;height:22px;accent-color:var(--navy)}.progress-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}.progress-head h2{margin:0;font-family:Patrick Hand,cursive;font-size:2.2rem;font-weight:400}.progress-head h2:focus{outline:none}.progress-head h2:focus-visible{outline:3px solid var(--navy);outline-offset:4px}.progress-page.kid .progress-head h2:focus-visible{outline-color:#fff}.progress-badge{display:inline-block;min-height:28px;padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:800;line-height:24px}.owl-figure{margin:0;width:min(420px,100%)}.owl-stage{display:block;width:100%;height:auto;border-radius:24px;box-shadow:0 12px 28px #10244a47}.star-row{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;max-width:520px}.star-icon{width:36px;height:36px;color:#c5ccd6}.star-icon.on{color:#e4c15a}.progress-page.kid .star-icon{color:#ffffff59}.progress-page.kid .star-icon.on{color:#e4c15a}.progress-note{margin:0;font-weight:800;color:var(--muted)}.progress-note.subtle{font-weight:600;font-size:.9rem}.progress-skills{width:min(560px,100%);border-collapse:collapse;background:var(--sheet);border-radius:12px;overflow:hidden}.progress-skills th,.progress-skills td{border:1px solid var(--rule);padding:10px 12px;text-align:left}.progress-skills thead th{background:var(--navy-2);color:#fff;font-size:.8rem}.skill-mark{display:inline-block;min-width:28px;text-align:center;border-radius:8px;padding:2px 8px;font-weight:800}.visually-hidden:where(:not(:focus-within,:active)){position:absolute!important;clip-path:inset(50%)!important;overflow:hidden!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;white-space:nowrap!important}:root{--navy: #12284b;--silver: #a2a9ad;--sky: var(--navy);--sky-2: color-mix(in srgb, var(--navy) 78%, var(--silver));--ink: #12284b;--muted: color-mix(in srgb, var(--navy) 48%, var(--silver));--moon: color-mix(in srgb, var(--silver) 22%, #fff);--sheet: #f7f8fa;--rule: color-mix(in srgb, var(--silver) 62%, #fff);--navy-2: color-mix(in srgb, var(--navy) 88%, var(--silver));--star: #fff;--p: #1b6b4a;--p-bg: #d5efe3;--d: #8a6a16;--d-bg: #f3e6bf;--e: #8d3040;--e-bg: #f3d4da;--blank: #eef1f6;--tap: 52px;font-family:Nunito,Segoe UI,system-ui,sans-serif;color:var(--ink);background:var(--moon);accent-color:var(--navy)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,select,input{font:inherit}.app{height:100%;display:flex;flex-direction:column;background:linear-gradient(var(--moon),color-mix(in srgb,var(--silver) 38%,#fff))}.chrome{background:var(--navy);color:var(--star);box-shadow:0 8px 18px color-mix(in srgb,var(--navy) 28%,transparent)}.brand{display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--navy);border-bottom:3px solid var(--silver)}.brand img{display:block;height:64px;width:auto}.brand-text{display:flex;flex-direction:column;gap:0;min-width:0}.brand-kicker{margin:0;font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--silver)}.brand h1{margin:0;font-family:Patrick Hand,cursive;font-size:1.55rem;font-weight:400;letter-spacing:.03em;color:#fff}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 12px 10px;background:var(--navy-2);color:var(--star)}.toolbar label{display:flex;align-items:center;gap:6px;font-size:.85rem}.toolbar select,.toolbar input:not([type=checkbox]){min-height:36px;border:0;border-radius:999px;padding:0 10px;background:#fff;color:var(--ink)}.toolbar .spacer{flex:1}.toolbar button{min-height:36px;padding:0 12px;border:0;border-radius:999px;background:#fff;color:var(--sky);font-weight:800;cursor:pointer}.toolbar button.ghost{background:transparent;color:#fff;border:1px solid var(--silver)}.toolbar-nav{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.toolbar-nav button{background:transparent;color:#fff;border:1px solid var(--silver)}.toolbar-nav button[aria-current=page]{background:#fff;color:var(--sky);border-color:transparent}.status{font-size:.75rem;opacity:.85}.grid-wrap{flex:1;overflow:auto;padding:8px}.tracker{border-collapse:separate;border-spacing:0;min-width:100%;background:var(--sheet);border-radius:12px;overflow:hidden}.tracker th,.tracker td{border:1px solid var(--rule);padding:0;vertical-align:middle}.tracker thead th{position:sticky;top:0;z-index:3;background:var(--navy-2);color:#fff;font-size:.72rem;font-weight:800;text-align:center;padding:8px 6px;min-width:92px}.tracker thead th.student{left:0;z-index:4;min-width:150px;text-align:left}.tracker tbody th{position:sticky;left:0;z-index:2;background:var(--sheet);text-align:left;min-width:150px}.student-name{display:block;width:100%;border:1px solid transparent;border-radius:8px;background:transparent;padding:12px 10px;font-size:1rem;font-weight:800;min-height:var(--tap);cursor:text}.student-name:hover{background:#eef1f6;border-color:var(--rule)}.student-name:focus-visible{outline:3px solid var(--navy);outline-offset:2px;background:#fff;border-color:var(--navy)}.student-open{display:block;width:100%;border:1px solid transparent;border-radius:8px;background:transparent;padding:12px 10px;font-size:1rem;font-weight:800;min-height:var(--tap);text-align:left;cursor:pointer;color:inherit}.student-open:hover{background:#eef1f6;border-color:var(--rule)}.student-open:focus-visible{outline:3px solid var(--navy);outline-offset:2px;background:#fff}.session-name{cursor:default}.session-name:hover{background:transparent;border-color:transparent}.cell-btn{width:100%;min-height:var(--tap);border:0;background:var(--blank);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.cell-btn .score{font-size:.85rem;font-weight:800}.cell-btn .mark{font-size:.7rem;letter-spacing:.04em}.cell-P{background:var(--p-bg);color:var(--p)}.cell-D{background:var(--d-bg);color:var(--d)}.cell-E{background:var(--e-bg);color:var(--e)}.cut{display:block;font-weight:600;opacity:.85;margin-top:2px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--navy) 55%,transparent);display:flex;align-items:stretch;justify-content:center;padding:12px;z-index:10}.pad{background:var(--sheet);border-radius:16px;width:min(1100px,100%);display:flex;flex-direction:column;overflow:hidden}.pad-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 16px;background:var(--navy);color:#fff}.pad-head h2{margin:0;font-family:Patrick Hand,cursive;font-size:1.6rem;font-weight:400}.pad-head p{margin:4px 0 0;opacity:.85;font-size:.9rem}.pad-body{flex:1;overflow:auto;padding:16px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.tiles.letters{grid-template-columns:repeat(13,minmax(0,1fr))}.tiles.numbers{grid-template-columns:repeat(auto-fill,minmax(56px,1fr))}.tile{min-height:56px;border:2px solid var(--rule);border-radius:12px;background:#fff;cursor:pointer;font-size:1.15rem;font-weight:800}.tile.on{background:var(--p-bg);border-color:var(--p);color:var(--p)}.tile.wide{min-height:64px;font-size:1rem}.choice-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.choice{min-height:88px;border:2px solid var(--rule);border-radius:12px;background:#fff;font-size:1.4rem;font-weight:800;cursor:pointer}.choice.P{background:var(--p-bg);color:var(--p);border-color:var(--p)}.choice.D{background:var(--d-bg);color:var(--d);border-color:var(--d)}.choice.E{background:var(--e-bg);color:var(--e);border-color:var(--e)}.pad-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--rule)}.pad-foot button{min-height:48px;padding:0 18px;border:0;border-radius:999px;font-weight:800;cursor:pointer}.pad-foot .save{background:var(--navy);color:#fff}.pad-foot .cancel{background:color-mix(in srgb,var(--silver) 35%,#fff)}.pad-foot .unlock{background:transparent;color:var(--muted)}.live-grade{font-size:1.1rem;font-weight:800}.panel{padding:16px;overflow:auto}.panel h2{margin:0 0 8px;font-family:Patrick Hand,cursive;font-size:1.7rem;font-weight:400}.legend{font-size:.9rem;color:var(--muted);margin-bottom:12px}.print-sheet{background:#fff;padding:20px}.print-sheet table{width:100%;border-collapse:collapse;font-size:.8rem}.print-sheet th,.print-sheet td{border:1px solid #bbb;padding:6px;text-align:center}.print-sheet th.left,.print-sheet td.left{text-align:left}.card-block{margin-bottom:18px;page-break-inside:avoid}@media print{.chrome,.toolbar,.no-print,.overlay{display:none!important}.app{display:block;height:auto;background:#fff}.grid-wrap{display:none}.panel{padding:0}}.skill-head{display:block;width:100%;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-weight:800;padding:0}.session-hint{margin:0 0 8px;padding:0 4px;font-size:.95rem;color:var(--muted)}.session-table th{font-size:.7rem;min-width:44px}.session-grade{display:block;min-height:var(--tap);padding:8px;font-weight:800;text-align:center}.roster{flex:1;overflow:auto;padding:12px 16px 32px}.roster-bar{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;margin-bottom:12px}.add-student{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.add-student input,.add-student select,.student-card select,.student-card button,.add-student button{min-height:44px;border:1px solid var(--rule);border-radius:10px;padding:0 10px;background:#fff}.add-student button,.roster-bar>button{background:var(--navy);color:#fff;border:0;font-weight:800;cursor:pointer;padding:0 14px;min-height:44px;border-radius:999px}.group-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.group-col{background:var(--sheet);border:1px solid var(--rule);border-radius:12px;padding:10px;min-height:140px}.group-col h2,.departed h2{margin:0 0 8px;font-family:Patrick Hand,cursive;font-size:1.4rem;font-weight:400;display:flex;justify-content:space-between;gap:8px}.group-col h2 span{font-family:Nunito,sans-serif;font-weight:700;color:var(--muted);font-size:.95rem}.empty{margin:0;color:var(--muted);font-size:.9rem}.student-card{border:1px solid var(--rule);border-radius:10px;padding:8px;margin-bottom:8px;background:#fff}.student-card.departed-card{opacity:.85;background:var(--blank)}.student-card .student-name{width:100%;min-height:48px;font-weight:800;padding:8px 6px}.card-actions{display:flex;gap:6px}.card-actions select{flex:1}.card-actions .leave{background:var(--e-bg);color:var(--e);border-color:var(--e);font-weight:800;cursor:pointer}.departed{margin-top:20px}@media(max-width:720px){.brand img{height:52px}.brand h1{font-size:1.3rem}}.class-board{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.teacher-col h2{margin:0 0 10px;font-family:Patrick Hand,cursive;font-size:1.7rem;font-weight:400}.color-bucket{border:1px solid var(--rule);border-radius:12px;padding:8px;margin-bottom:10px;background:var(--sheet)}.color-bucket h3{margin:0 0 8px;display:flex;justify-content:space-between;font-size:1rem}.color-red{border-left:8px solid #e03131;background:#ffe3e3}.color-orange{border-left:8px solid #f76707;background:#ffe8cc}.color-yellow{border-left:8px solid #f59f00;background:#fff3bf}.color-green{border-left:8px solid #37b24d;background:#d3f9d8}.color-blue{border-left:8px solid #0c8599;background:#c5f6fa}.card-actions{flex-wrap:wrap}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--navy) 45%,transparent);display:flex;align-items:center;justify-content:center;z-index:20;padding:16px}.confirm-card{background:#fff;border-radius:16px;padding:18px;width:min(420px,100%);display:flex;flex-direction:column;gap:12px}.confirm-card h2{margin:0;font-family:Patrick Hand,cursive;font-size:1.8rem;font-weight:400}.confirm-card p{margin:0}.confirm-card input{display:block;width:100%;margin-top:6px;min-height:44px;border:1px solid var(--rule);border-radius:10px;padding:0 10px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-actions .danger,.card-actions .leave{background:var(--e-bg);color:var(--e);border-color:var(--e);font-weight:800}.confirm-actions .danger:disabled{opacity:.45;cursor:not-allowed}.undo-toast{position:fixed;right:16px;bottom:16px;z-index:21;display:flex;gap:12px;align-items:center;background:var(--navy);color:#fff;padding:12px 14px;border-radius:999px;box-shadow:0 8px 20px color-mix(in srgb,var(--navy) 28%,transparent)}.undo-toast button{background:#fff;color:var(--navy);border:0;border-radius:999px;min-height:36px;padding:0 12px;font-weight:800;cursor:pointer}@media(max-width:900px){.class-board{grid-template-columns:1fr}}.auth-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(180deg,var(--navy),var(--navy-2))}.auth-loading{color:#fff;font-weight:800}.auth-card{width:min(420px,100%);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 16px 40px color-mix(in srgb,var(--navy) 35%,transparent);padding:18px;border-top:4px solid var(--silver)}.auth-logo{display:block;width:96px;height:auto;margin:0 auto 8px}.auth-kicker{margin:0;text-align:center;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--silver)}.auth-card h1{margin:0;font-family:Patrick Hand,cursive;font-size:2rem;font-weight:400;color:var(--navy);text-align:center}.auth-card p:not(.auth-kicker){margin:4px 0 12px;color:var(--muted);text-align:center}.auth-card p.auth-kicker{margin:0 0 2px}.auth-card form{display:flex;flex-direction:column;gap:10px}.auth-card label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;font-weight:800}.auth-card input{min-height:44px;border:1px solid var(--rule);border-radius:10px;padding:0 10px;font-weight:600}.auth-card button[type=submit]{min-height:44px;border:0;border-radius:999px;background:var(--navy);color:#fff;font-weight:800;cursor:pointer}.auth-card button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.auth-card button.ghost{margin-top:10px;width:100%;min-height:40px;border:0;background:transparent;color:var(--navy);font-weight:800;cursor:pointer}.auth-error{margin:0;color:var(--e);font-weight:800;font-size:.9rem}
