:root{--bg:#fff7e7;--surface:#fffdf8;--surface-strong:#fff;--ink:#273739;--muted:#6d7978;--line:#eadfc4;--accent:#1f9a8a;--accent-strong:#087466;--accent-soft:#dff6ee;--sun:#ffc857;--rose:#f37b6d;--blue:#5b8def;--leaf:#75bf72;--lilac:#b492ee;--peach:#ffb384;--shadow:0 18px 40px #24312f1a}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{line-height:1.5}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.page{min-height:100vh}.shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s;display:grid}.shell-no-sidebar{grid-template-columns:minmax(0,1fr)}.shell.sidebar-collapsed{grid-template-columns:88px minmax(0,1fr)}.sidebar{border-right:1px solid var(--line);background:#f3efe3;height:100vh;padding:24px;position:sticky;top:0;overflow:hidden}.mobile-nav-toggle{display:none}.brand{align-items:center;gap:10px;margin-bottom:32px;display:flex}.brand-toggle{background:0 0;border:0;border-radius:10px;flex:none;padding:0}.brand-toggle:focus-visible{outline-offset:4px;outline:3px solid #1f9a8a47}.brand-mark{background:var(--accent);border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-weight:800;display:inline-flex}.brand .brand-mark{color:#fff}.brand-copy{gap:2px;min-width:0;display:grid}.brand strong{font-size:1.06rem}.brand span{color:var(--muted);font-size:.88rem}.nav{gap:8px;display:grid}.nav a,.nav button{color:var(--muted);text-align:left;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px 12px;display:flex}.nav button{background:0 0}.nav a:hover,.nav a.active,.nav button:hover,.nav button.active{background:var(--surface);color:var(--ink)}.nav-short{border:1px solid var(--line);background:#ffffffad;border-radius:8px;flex:0 0 34px;justify-content:center;align-items:center;height:34px;font-weight:850;display:none}.sidebar-collapsed .sidebar{padding:24px 18px}.sidebar-collapsed .brand{justify-content:center}.sidebar-collapsed .brand-copy,.sidebar-collapsed .nav-label{display:none}.sidebar-collapsed .nav a,.sidebar-collapsed .nav button{justify-content:center;padding:8px}.sidebar-collapsed .nav{display:none}.main{padding:28px}.main:has(>.ops-page){padding:16px 20px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.teacher-dashboard-topbar{align-items:flex-start}.teacher-dashboard-actions{flex-direction:column;align-items:stretch;width:320px}.teacher-control-shell{grid-template-columns:292px minmax(0,1fr)}.teacher-control-sidebar{background:#f3efe3;flex-direction:column;gap:12px;display:flex;overflow:auto}.role-sidebar{align-content:start;gap:12px;display:grid}.role-account-card{background:#ffffff9e;border:1px solid #eadfc4e6;border-radius:8px;gap:10px;padding:12px;display:grid}.role-account-card dl{gap:8px;margin:0;display:grid}.role-account-card div{align-items:baseline;gap:2px;display:grid}.role-account-card dt,.role-account-card .detail-label{color:var(--muted);text-transform:uppercase;font-size:.74rem;font-weight:800}.role-account-card dd,.role-account-card strong{overflow-wrap:anywhere;margin:0;font-weight:800;line-height:1.2}.role-account-card span:not(.detail-label){color:var(--muted);font-size:.86rem}.role-account-card code{color:#6b4b00;overflow-wrap:anywhere;background:#fff7d8;border-radius:8px;width:fit-content;max-width:100%;padding:5px 7px;font-size:.82rem;display:inline-block}.role-sidebar-actions{gap:10px;display:grid}.role-nav-action{color:var(--ink);text-align:left;background:#fffdf8b8;border:1px solid #eadfc4e6;border-radius:8px;align-items:flex-start;gap:3px;width:100%;min-height:44px;padding:10px 12px;display:grid}.role-nav-action:hover{background:var(--surface);border-color:#1f9a8a47}.role-nav-action.is-primary{background:var(--accent);border-color:var(--accent);color:#fff;min-height:54px}.role-nav-action.is-screen-pairing{color:#fff;min-height:54px}.role-nav-action.is-screen-unpaired{background:#b83a2f;border-color:#b83a2f}.role-nav-action.is-screen-unpaired:hover{background:#9d372d;border-color:#9d372d}.role-nav-action.is-screen-paired{background:#1f9a63;border-color:#1f9a63}.role-nav-action.is-screen-paired:hover{background:#177d52;border-color:#177d52}.role-nav-action.is-selected{background:var(--surface);box-shadow:inset 4px 0 0 var(--accent);border-color:#1f9a8a5c}.role-nav-action.is-danger{color:#9d372d;background:#fff7f5;border-color:#e6b1aa}.role-nav-action-title{font-weight:850;line-height:1.15}.role-nav-action-heading{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.role-nav-badge{color:#fff;background:#0d83ff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;min-height:20px;padding:2px 6px;font-size:.72rem;font-weight:900;display:inline-flex}.role-nav-action-status{color:var(--muted);font-size:.78rem;font-weight:700;line-height:1.25}.role-nav-action.is-primary .role-nav-action-status{color:#ffffffd1}.role-nav-action.is-screen-pairing .role-nav-action-status{color:#ffffffdb}.role-nav-action.is-danger .role-nav-action-status{color:#9d372d}.teacher-sidebar-brand{align-items:center;gap:10px;min-height:38px;margin-bottom:0;display:flex}.teacher-sidebar-brand>div{gap:2px;display:grid}.teacher-sidebar-brand span:not(.brand-mark){color:var(--muted);font-size:.86rem}.teacher-account-card{background:#ffffff94;border:1px solid #eadfc4e6;border-radius:8px;padding:12px}.teacher-account-card dl{gap:8px;margin:0;display:grid}.teacher-account-card div{gap:2px;display:grid}.teacher-account-card dt{color:var(--muted);text-transform:uppercase;font-size:.74rem;font-weight:800}.teacher-account-card dd{overflow-wrap:anywhere;margin:0;font-weight:800}.teacher-sidebar-actions{gap:10px;display:grid}.teacher-roster-main{align-content:start;display:grid}.teacher-mobile-account{margin-bottom:16px;display:none}.eyebrow{color:var(--accent-strong);letter-spacing:0;text-transform:uppercase;margin:0 0 6px;font-size:.78rem;font-weight:700}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;margin-bottom:12px;font-size:clamp(2rem,4vw,4rem);line-height:1}h2{margin-bottom:12px;font-size:1.35rem;line-height:1.15}h3{margin-bottom:8px;font-size:1rem}.muted{color:var(--muted)}.grid{gap:16px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.panel,.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:20px}.card{box-shadow:none}.band{border-bottom:1px solid var(--line);padding:28px}.button-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.teacher-action-button{text-align:left;border-radius:8px;justify-content:flex-start;align-items:center;gap:10px;width:100%;min-width:0;min-height:62px;padding:10px 14px}.teacher-action-copy{gap:3px;display:grid}.teacher-action-title{line-height:1.1;display:block}.teacher-action-status{color:#ffffffd1;font-size:.78rem;font-weight:700;line-height:1.2;display:block}.teacher-action-button.secondary .teacher-action-status{color:var(--muted)}.teacher-action-button.danger-outline .teacher-action-status{color:#9d372d}.screen-pairing-toggle{background:#269f91;border-color:#269f91}.screen-pairing-switch{background:#ffffff85;border-radius:999px;flex:none;width:30px;height:16px;display:inline-block;position:relative;box-shadow:inset 0 0 0 2px #ffffff80}.screen-pairing-switch:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .16s;position:absolute;top:2px;left:2px;box-shadow:0 2px 5px #1837313d}.screen-pairing-toggle.is-on{background:#1f9a8a;border-color:#1f9a8a}.screen-pairing-toggle.is-on .screen-pairing-switch:after{transform:translate(14px)}.button{background:var(--accent);border:1px solid var(--accent);color:#fff;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:10px 14px;font-weight:750;display:inline-flex}.button.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.button.warning{background:var(--rose);border-color:var(--rose)}.button.danger{color:#fff;background:#b84535;border-color:#b84535}.button.compact{min-height:34px;padding:7px 10px;font-size:.86rem}.visually-hidden{white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (max-width:1500px) and (min-width:901px){.teacher-dashboard-topbar{flex-direction:column}.teacher-dashboard-actions{flex-direction:row;width:100%}.teacher-dashboard-actions .teacher-action-button{flex:1 1 0}}.button.danger-outline{color:#9d372d;background:#fff7f5;border-color:#e6b1aa}.button.danger-outline:hover{background:#ffe5e2;border-color:#c75d50}.stat-row{flex-wrap:wrap;gap:10px;display:flex}.stat-pill{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;min-width:132px;padding:12px}.stat-pill strong{font-size:1.45rem;line-height:1;display:block}.stat-pill span{color:var(--muted);font-size:.84rem}.image-pool-dashboard{gap:16px;display:grid}.image-pool-topbar{margin-bottom:0}.asset-sidebar{scrollbar-gutter:stable;gap:14px;max-height:calc(100vh - 48px);padding-right:2px;display:grid;overflow-y:auto}.asset-category-create{background:#ffffff9e;border:1px solid #eadfc4e6;border-radius:8px;gap:10px;padding:12px;display:grid}.asset-category-create label{color:var(--muted);text-transform:uppercase;gap:6px;font-size:.78rem;font-weight:850;display:grid}.asset-category-create input{border:1px solid var(--line);color:var(--ink);text-transform:none;background:#fffaf0;border-radius:8px;min-height:40px;padding:8px 10px}.asset-category-nav{gap:8px;display:grid}.asset-category-button{color:var(--ink);text-align:left;background:#fffdf8b8;border:1px solid #eadfc4e6;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:50px;padding:10px 12px;display:flex}.asset-category-button:hover,.asset-category-button.is-active{background:var(--surface);border-color:#1f9a8a5c}.asset-category-button.is-active{box-shadow:inset 4px 0 0 var(--accent)}.asset-category-button span{gap:2px;min-width:0;display:grid}.asset-category-button strong,.asset-category-button small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.asset-category-button small{color:var(--muted);font-size:.75rem;font-weight:750}.asset-category-button em{background:var(--accent-soft);color:var(--accent-strong);text-align:center;border-radius:999px;min-width:28px;padding:5px 8px;font-size:.76rem;font-style:normal;font-weight:900}.image-pool-section{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:20px}.image-pool-section-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.asset-section-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.asset-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.asset-list{gap:12px;display:grid}.asset-card{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(180px,260px) minmax(0,1fr);align-items:start;display:grid;overflow:hidden}.asset-preview{background-color:#fffaf0;background-image:linear-gradient(45deg,#eadfc461 25%,#0000 25%),linear-gradient(-45deg,#eadfc461 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#eadfc461 75%),linear-gradient(-45deg,#0000 75%,#eadfc461 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:16px 16px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;justify-content:center;align-self:start;align-items:center;min-height:180px;display:flex;overflow:hidden}.asset-preview img{object-fit:contain;width:100%;height:100%}.asset-audio-preview{text-align:center;background:radial-gradient(circle at 20% 18%,#ffc85747,#0000 34%),linear-gradient(135deg,#fffdf8f5,#dff6eec7);place-items:center;gap:18px;width:100%;height:100%;padding:24px;display:grid}.asset-audio-preview strong{color:var(--ink);font-size:1rem}.asset-audio-preview audio{width:100%;max-width:360px}.asset-body{gap:12px;padding:14px;display:grid}.asset-body h3{margin-bottom:6px}.asset-upload-list{gap:10px;margin-bottom:14px;display:grid}.asset-upload-card{border:1px solid var(--line);background:#fffdf8;border-radius:8px;grid-template-columns:82px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.asset-upload-card img,.asset-upload-audio{aspect-ratio:1;object-fit:contain;background:#fffaf0;border:1px solid #eadfc4e6;border-radius:8px;width:82px;height:82px}.asset-upload-audio{gap:4px;padding:8px;display:grid}.asset-upload-audio audio{width:100%}.asset-upload-card>div:not(.asset-upload-audio){gap:4px;min-width:0;display:grid}.asset-upload-card span{color:var(--muted);overflow-wrap:anywhere;font-size:.82rem}.asset-card-actions{flex-wrap:wrap;gap:8px;display:flex}.ops-page{align-content:start;gap:16px;min-height:auto;padding:12px;display:grid}.ops-sidebar{gap:16px;display:grid}.ops-header{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;place-content:start space-between;align-items:flex-start;gap:16px;padding:14px 18px;display:flex}.ops-header h1{margin-bottom:8px;font-size:clamp(2rem,3vw,2.75rem);line-height:1}.ops-header .muted{max-width:690px;margin-bottom:0;font-size:.95rem;line-height:1.42}.ops-title-status{border:1px solid var(--line);color:var(--muted);background:#f3efe3;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;min-height:28px;margin-top:8px;padding:3px 8px;font-size:.86rem;font-weight:750;display:inline-flex}.ops-title-status strong{color:#9d372d}.ops-login-page{background:var(--bg);align-items:center;min-height:100vh;padding:24px;display:grid}.ops-login-panel{background:var(--surface);box-shadow:var(--shadow);border:1px solid #eadfc4e6;border-radius:8px;gap:22px;width:min(100%,440px);max-width:440px;margin:0 auto;padding:28px;display:grid}.ops-login-panel h1{margin-bottom:8px;font-size:2.2rem;line-height:1}.ops-login-form{gap:14px;display:grid}.ops-login-form label{color:var(--muted);gap:6px;font-size:.9rem;font-weight:800;display:grid}.ops-login-form input{color:var(--ink);font:inherit;background:#fffdf8;border:1px solid #eadfc4f2;border-radius:8px;min-height:44px;padding:10px 12px}.ops-kpi-board{background:var(--surface);box-shadow:var(--shadow);border:1px solid #1f9a8a38;border-radius:8px;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:8px;display:grid}.ops-kpi-card{color:var(--ink);text-align:left;background:#fffdf8;border:1px solid #eadfc4b8;border-radius:8px;gap:7px;min-height:86px;padding:12px 14px;display:grid}.ops-kpi-button{cursor:pointer}.ops-kpi-button:hover{border-color:#1f9a8a80;transform:translateY(-1px)}.ops-kpi-card:nth-child(2){background:#e9f2ff;border-color:#aec8ea}.ops-kpi-card:nth-child(5){background:#f4eaff;border-color:#cfb2ed}.ops-kpi-card:nth-child(6){background:#ffe9dc;border-color:#e9b28f}.ops-kpi-card strong{color:var(--ink);font-size:clamp(2rem,3.8vw,2.75rem);font-weight:900;line-height:.95}.ops-kpi-card span{color:#41585a;font-size:1rem;font-weight:900}.ops-kpi-card.is-primary{background:#d3f3eb;border-color:#74c7b8}.ops-kpi-card.is-accent{background:#ffe3a1;border-color:#dfa93e}.ops-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.ops-usage-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.ops-usage-toolbar{border:1px solid var(--line);background:#fffaf0;border-radius:8px;flex-wrap:wrap;gap:6px;padding:6px;display:flex}.ops-usage-toolbar button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;padding:9px 12px;font-weight:850}.ops-usage-toolbar button.is-selected{background:var(--accent);color:#fff}.ops-usage-chart{background:linear-gradient(#fffdf8 0%,#eef8f5 100%);border:1px solid #1f9a8a38;border-radius:8px;min-height:260px;padding:18px 14px 12px;position:relative;overflow:hidden}.ops-usage-bars{z-index:1;height:218px;position:relative;overflow-x:auto}.ops-usage-bars-track{grid-auto-columns:minmax(34px,1fr);grid-auto-flow:column;gap:8px;min-width:100%;height:100%;display:grid;position:relative}.ops-usage-bar-cell{grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:6px;min-width:34px;height:100%;display:grid}.ops-usage-bar{background:linear-gradient(#1f9a8a 0%,#f5b13b 100%);border:1px solid #0f655b2e;border-radius:6px 6px 2px 2px;align-self:end;width:100%;display:block}.ops-usage-bar-cell small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:54px;font-size:.72rem;font-weight:800;overflow:hidden}.ops-usage-trend{color:#8057d594;pointer-events:none;z-index:2;position:absolute;inset:0 0 calc(1.08rem + 6px)}.ops-usage-page-list{gap:12px;display:grid}.ops-usage-page-card{justify-content:space-between;align-items:center;gap:12px;display:flex}.ops-metric-card{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;gap:8px;min-height:104px;padding:14px;display:grid}.ops-metric-card span{color:var(--muted);font-size:.82rem;font-weight:800}.ops-metric-card strong{color:var(--ink);font-size:1.9rem;line-height:1}.ops-section{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;align-content:start;gap:12px;padding:16px;display:grid}.ops-danger-zone{background:#fff6f3;border:1px solid #f0aaa0;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(300px,.7fr);align-items:center;gap:16px;padding:16px;display:grid}.ops-danger-zone .eyebrow{color:#a7352c}.ops-danger-zone h2{color:#74231d;margin-bottom:6px;font-size:1.2rem}.ops-danger-control{gap:10px;display:grid}.ops-danger-control label{color:#74231d;gap:6px;font-size:.8rem;font-weight:850;display:grid}.ops-danger-control input{color:var(--ink);background:#fffdf8;border:1px solid #e5a29a;border-radius:8px;min-height:42px;padding:9px 11px}.ops-panel-view{gap:16px}.ops-invite-modal{background:linear-gradient(180deg, #fffdf8fa, #fffaf0fa), var(--surface);border:1px solid #eadfc4f2;border-radius:8px;gap:18px;width:min(100%,780px);max-width:780px;padding:24px;display:grid;box-shadow:0 26px 80px #2737393d}.ops-invite-header{border-bottom:1px solid #eadfc4d1;align-items:flex-start;padding-bottom:16px}.ops-invite-header h2{margin-bottom:10px;font-size:clamp(2rem,4vw,3rem);line-height:1}.ops-invite-header .muted{max-width:560px}.ops-modal-close{border-radius:8px;min-width:40px}.ops-invite-body{gap:16px;display:grid}.ops-code-create,.ops-code-list-panel{border:1px solid var(--line);background:#ffffffc7;border-radius:8px;gap:14px;padding:16px;display:grid}.ops-code-create{grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);align-items:end}.ops-code-create h3,.ops-code-list-panel h3{margin-bottom:4px;font-size:1.05rem}.ops-code-form{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.ops-code-form input{border:1px solid var(--line);color:var(--ink);background:#fffaf0;border-radius:8px;min-width:0;min-height:44px;padding:9px 11px}.ops-section-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.ops-inline-form{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.ops-inline-form input{border:1px solid var(--line);color:var(--ink);background:#fffaf0;border-radius:8px;min-width:220px;min-height:44px;padding:9px 11px}.ops-code-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px;display:grid}.ops-code-card{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px;display:grid}.ops-code-card strong{letter-spacing:0;font-size:1.06rem;display:block}.ops-code-card span,.ops-code-card small{color:var(--muted);font-size:.82rem}.ops-code-meta{place-items:end;gap:4px;display:grid}.token.is-used{color:#8b3028;background:#f7dfdb}.ops-school-list,.ops-class-list,.ops-room-detail{gap:10px;display:grid}.ops-school-card,.ops-room{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;gap:10px;padding:12px;display:grid}.ops-school-card{background:#ffffffd1}.ops-school-card:nth-child(3n+1){border-color:#209e904d}.ops-school-card:nth-child(3n+2){border-color:#f5b13b57}.ops-school-card:nth-child(3n){border-color:#8b6de04d}.ops-room{background:#fffdf7}.ops-room:nth-child(3n+1){background:#fbfffd;border-color:#209e9047}.ops-room:nth-child(3n+2){background:#fffaf0;border-color:#f5b13b57}.ops-room:nth-child(3n){background:#fbf8ff;border-color:#8b6de047}.ops-room.is-open{border-color:#209e907a;box-shadow:inset 4px 0 #209e9080}.ops-class-list,.ops-room-detail{border-top:1px solid #eadfc4d1;padding-top:14px}.ops-accordion-trigger{color:var(--ink);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:flex-start;gap:12px;width:100%;padding:0;display:flex}.ops-accordion-trigger h3{margin-bottom:6px}.ops-accordion-trigger .muted{margin-bottom:0}.ops-card-summary{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ops-expand-label{color:var(--accent-strong);text-align:right;min-width:58px;font-size:.84rem;font-weight:850}.ops-subsection{background:#fffdf8b8;border:1px solid #eadfc4d6;border-radius:8px;gap:12px;padding:12px;display:grid}.ops-subsection:nth-child(4n+1){background:#ebfaf6b8;border-color:#209e9033}.ops-subsection:nth-child(4n+2){background:#fffaefe6;border-color:#f5b13b3d}.ops-subsection:nth-child(4n+3){background:#f8f6ffc7;border-color:#8b6de033}.ops-subsection-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.ops-subsection-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ops-subsection-header h4{margin-bottom:0;font-size:1rem}.ops-subsection-header .muted{margin-bottom:0}.ops-single-field{color:var(--muted);gap:6px;max-width:260px;font-size:.8rem;font-weight:800;display:grid}.ops-single-field input{border:1px solid var(--line);color:var(--ink);background:#fffaf0;border-radius:8px;width:100%;min-height:40px;padding:8px 10px}.ops-chip-list{flex-wrap:wrap;gap:8px;display:flex}.ops-check-chip{border:1px solid var(--line);background:#f8f5ea;border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:8px 10px;display:inline-flex}.ops-feedback-panel{gap:14px;display:grid}.ops-feedback-settings{border:1px solid var(--line);background:#fffaf0;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(300px,.9fr);align-items:end;gap:16px;padding:14px;display:grid}.ops-feedback-settings h4{margin-bottom:4px;font-size:1rem}.ops-feedback-settings p{margin-bottom:8px}.ops-feedback-settings-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.ops-feedback-settings-form label{color:var(--muted);gap:6px;font-size:.82rem;font-weight:800;display:grid}.ops-search-field{color:var(--muted);gap:6px;min-width:min(100%,320px);font-size:.82rem;font-weight:800;display:grid}.ops-feedback-card{grid-template-columns:minmax(0,1fr) minmax(320px,.65fr);align-items:flex-start;gap:14px;display:grid}.ops-feedback-card div{gap:6px;min-width:0;display:grid}.ops-feedback-card p{overflow-wrap:anywhere;margin-bottom:0}.ops-feedback-email-status{color:var(--muted);font-size:.86rem;font-weight:750}.ops-feedback-email-error{color:#b3261e;font-size:.84rem}.ops-feedback-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex!important}.ops-feedback-reply{color:var(--accent-strong);background:#edf8f4;border:1px solid #1f9a8a38;border-radius:8px;padding:10px;font-weight:750}.ops-feedback-actions{border:1px solid var(--line);background:#fffaf0;border-radius:8px;gap:10px;padding:12px;display:grid}.ops-feedback-actions strong{color:var(--ink);font-size:.96rem}.ops-feedback-actions .muted{margin-bottom:0;font-size:.84rem}.ops-table{gap:10px;display:grid}.ops-row{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(160px,1.3fr) minmax(132px,1fr) repeat(3,minmax(86px,.55fr)) minmax(118px,.8fr) minmax(118px,.8fr) auto;align-items:end;gap:10px;padding:12px;display:grid}.ops-row-title{gap:4px;display:grid}.ops-row-title span{color:var(--muted);font-size:.78rem}.ops-row label{color:var(--muted);gap:5px;font-size:.78rem;font-weight:750;display:grid}.ops-row input,.ops-row select{border:1px solid var(--line);color:var(--ink);background:#fffaf0;border-radius:8px;width:100%;min-height:38px;padding:8px 9px}.asset-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.asset-meta div{gap:2px;display:grid}.asset-meta dt{color:var(--accent-strong);text-transform:uppercase;font-size:.75rem;font-weight:800}.asset-meta dd{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:.88rem}.tag-row{flex-wrap:wrap;gap:8px;display:flex}.tag-row span{background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;padding:6px 9px;font-size:.78rem;font-weight:800}.asset-items-panel{border-top:1px solid var(--line);gap:12px;padding-top:14px;display:grid}.asset-list .asset-items-panel{grid-column:1/-1}.asset-items-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.asset-items-header h4{margin:0;font-size:.96rem}.asset-items-header span{color:var(--muted);font-size:.82rem;font-weight:800}.asset-item-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.asset-item{border:1px solid var(--line);background:#fffaf0;border-radius:8px;gap:7px;min-width:0;padding:10px;display:grid}.asset-item-preview{aspect-ratio:1;background-color:#fffdf8;background-image:linear-gradient(45deg,#eadfc466 25%,#0000 25%),linear-gradient(-45deg,#eadfc466 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#eadfc466 75%),linear-gradient(-45deg,#0000 75%,#eadfc466 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:16px 16px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border-radius:6px;justify-content:center;align-items:center;display:flex;overflow:hidden}.asset-item-preview img{object-fit:contain;width:100%;height:100%}.asset-item strong{font-size:.84rem;line-height:1.2}.asset-item span,.asset-item code{color:var(--muted);overflow-wrap:anywhere;font-size:.74rem}.empty-asset-slot{border:1px dashed var(--line);color:var(--muted);background:linear-gradient(135deg,#fffdf8f0,#dff6ee75);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-height:96px;padding:18px;display:flex}.empty-asset-slot strong{color:var(--ink)}.attendance-panel{background:radial-gradient(circle at 88% 16%,#ffc85747,#0000 26%),linear-gradient(135deg,#dff6eeeb,#fffdf8f5);border:3px solid #ffffffc2;border-radius:24px}.screen-attendance{border:6px solid #ffffffd1;margin-bottom:22px;padding:24px;box-shadow:0 22px 48px #48524124,inset 0 0 0 2px #ffc8572e}.screen-attendance .attendance-header h2{font-size:clamp(2rem,4vw,4rem)}.screen-attendance .attendance-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.screen-attendance .attendance-card{min-height:250px}.screen-attendance .character{width:136px;height:136px}.attendance-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.attendance-header h2{margin-bottom:8px;font-size:clamp(1.55rem,2.6vw,2.45rem)}.attendance-count{background:#fff7cf;border:3px solid #fff;border-radius:18px;place-items:center;min-width:118px;padding:14px;display:grid;box-shadow:0 16px 26px #ffc8572e}.attendance-count strong{font-size:2.2rem;line-height:1}.attendance-count span{color:#765918;font-size:.82rem;font-weight:800}.attendance-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;display:grid}.attendance-card{color:var(--ink);text-align:center;background:#ffffffb8;border:3px solid #ffffffdb;border-radius:22px;justify-items:center;gap:8px;min-height:220px;padding:16px 12px;transition:box-shadow .18s,transform .18s,border-color .18s,background .18s;display:grid;position:relative;box-shadow:0 12px 24px #27373914}.attendance-card:hover{transform:translateY(-2px)}.attendance-card.is-present{background:radial-gradient(circle at 50% 16%,#fffffff5,#0000 34%),linear-gradient(#fff8d9,#dff6ee);border-color:#fff;box-shadow:0 18px 32px #1f9a8a2e,0 0 0 6px #ffc85729}.attendance-card.is-present:after{background:var(--leaf);content:"";border:3px solid #fff;border-radius:50%;width:18px;height:18px;position:absolute;top:14px;right:14px;box-shadow:0 8px 16px #75bf7247}.attendance-card.is-birthday .character{animation:.9s ease-in-out infinite birthday-wiggle}.attendance-card.is-birthday:before{color:#6b4b00;content:"Birthday";z-index:1;background:linear-gradient(135deg,#fff4b8,#ffd56b);border:3px solid #fff;border-radius:999px;padding:4px 8px;font-size:.68rem;font-weight:900;position:absolute;top:10px;left:10px;box-shadow:0 8px 18px #ffc8573d}.attendance-card strong{font-size:1.05rem}.attendance-card span:last-child{color:var(--muted);font-size:.86rem;font-weight:700}.character{justify-content:center;align-items:end;width:120px;height:120px;display:flex;position:relative;overflow:hidden}.publisher-panel{background:radial-gradient(circle at 92% 12%,#ffc85733,#0000 24%),linear-gradient(135deg,#fffdf8fa,#dff6eed6);border:3px solid #ffffffb8;border-radius:24px}.publisher-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.publisher-header h2{margin-bottom:8px;font-size:clamp(1.65rem,2.8vw,2.6rem)}.screen-status{color:#765918;white-space:nowrap;background:#fff3c8;border:3px solid #fff;border-radius:999px;padding:10px 14px;font-size:.84rem;font-weight:850}.screen-status.is-live{background:var(--accent-soft);color:var(--accent-strong)}.publisher-layout{grid-template-columns:minmax(0,.72fr) minmax(260px,1fr);gap:16px;display:grid}.task-preview-card{background:#ffffffc2;border:2px solid #ffffffe6;border-radius:18px;padding:16px;box-shadow:0 12px 24px #27373912}.task-preview-card h3{margin:12px 0 8px;font-size:1.35rem}.task-preview-card p{color:var(--muted);margin-bottom:0}.screen-authorisation{background:#ffffffb3;border:1px solid #eadfc4cc;border-radius:18px;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding:16px;display:flex}.screen-authorisation code{color:#6b4b00;background:#fff7d8;border:1px solid #ecd28d;border-radius:8px;padding:6px 8px;font-size:.86rem;display:inline-flex}.teacher-roster{grid-template-columns:minmax(0,1fr);gap:18px;display:grid}.teacher-roster.is-avatar-only .roster-list-panel{box-shadow:none;background:0 0;border:0;padding:0}.teacher-roster.is-avatar-only .avatar-wall-header{margin-bottom:18px}.teacher-roster.is-avatar-only .avatar-wall-header h2{margin-bottom:6px}.teacher-roster.is-avatar-only .avatar-wall-header .muted{margin-bottom:0}.teacher-roster.is-avatar-only .teacher-avatar-grid{grid-template-columns:repeat(auto-fill,minmax(156px,1fr))}.roster-summary-panel{align-self:stretch}.roster-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.roster-section-header,.child-detail-top{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.roster-section-header h2,.child-detail-top h2{margin-bottom:8px;font-size:clamp(1.55rem,2.6vw,2.45rem)}.roster-form{gap:12px;display:grid}.birthday-fields{grid-template-columns:.72fr 1.25fr .9fr;gap:8px;display:grid}.birthday-fields select{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:10px 12px}.avatar-picker-field{gap:8px}.avatar-select-button{color:var(--ink);text-align:left;background:#ffffffc7;border:1px solid #eadfc4e6;align-items:center;gap:14px;width:100%;min-height:118px;padding:12px;display:flex}.avatar-select-preview{background:radial-gradient(circle at 50% 18%,#fff,#fff7d8 70%);border:3px solid #fff;border-radius:18px;flex:none;justify-content:center;align-items:center;width:92px;height:92px;display:flex;overflow:hidden;box-shadow:0 14px 24px #27373914}.avatar-select-preview img{object-fit:contain;width:100%;height:100%}.avatar-select-button strong,.avatar-select-button span span{display:block}.avatar-select-button strong{color:var(--ink);margin-bottom:4px}.avatar-select-button span span{color:var(--muted);font-size:.84rem;font-weight:750}.avatar-picker-modal{width:min(100%,820px);max-width:820px}.avatar-picker-grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:12px;display:grid}.avatar-picker-card{color:var(--ink);text-align:center;background:#ffffffc7;border:2px solid #eadfc4eb;border-radius:8px;place-items:center;gap:8px;min-height:148px;padding:10px;display:grid}.avatar-picker-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 4px #1f9a8a1f}.avatar-picker-image{background:#fffaf0;border:1px solid #eadfc4eb;border-radius:8px;justify-content:center;align-items:center;width:92px;height:92px;display:flex;overflow:hidden}.avatar-picker-image img{object-fit:contain;width:100%;height:100%;display:block}.avatar-picker-card>span:last-child{color:var(--muted);font-size:.82rem;font-weight:750}.field-help{color:var(--muted);font-size:.78rem}.roster-form .button{min-height:50px}.roster-summary-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.button:disabled{cursor:not-allowed;opacity:.52}.roster-note{margin:14px 0 0}.roster-summary-actions .roster-note{flex:280px;margin:0}.sticker-log-panel{gap:12px;display:grid}.sticker-log-panel h3{margin:2px 0 0;font-size:1.18rem}.sticker-log-list{gap:10px;display:grid}.sticker-log-entry{background:#ffffffb8;border:1px solid #eadfc4d1;border-radius:8px;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;padding:10px;display:grid}.sticker-log-entry strong,.sticker-log-entry span,.sticker-log-entry time{display:block}.sticker-log-entry strong{font-size:.9rem}.sticker-log-entry span{color:var(--muted);font-size:.82rem;font-weight:750}.sticker-log-entry time{color:#8d8065;margin-top:3px;font-size:.76rem;font-weight:800}.sticker-log-thumb{color:var(--accent-strong);background:#fffaf0;border:1px solid #eadfc4eb;border-radius:8px;justify-content:center;align-items:center;width:48px;height:48px;font-size:.9rem;font-weight:900;display:flex;overflow:hidden}.sticker-log-thumb img{object-fit:contain;width:100%;height:100%;display:block}.modal-backdrop{z-index:20;background:#27373947;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.modal-panel{background:radial-gradient(circle at 94% 8%, #ffc85738, transparent 24%), var(--surface);border:4px solid #ffffffd1;border-radius:24px;width:min(100%,560px);max-width:560px;max-height:calc(100vh - 36px);padding:22px;position:relative;overflow:auto;box-shadow:0 28px 70px #2737393d}.child-detail-modal{max-width:640px}.confirmation-modal{max-width:480px}.sticker-library-modal{width:min(100%,760px);max-width:760px}.modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;padding-right:4px;display:flex}.modal-header h2{margin-bottom:8px;font-size:clamp(1.55rem,3vw,2.4rem)}.icon-like-button{min-height:42px;padding:6px 14px;font-size:1.35rem}.modal-header .icon-like-button{z-index:2;flex:none;align-self:flex-start;margin-left:auto;position:sticky;top:0;right:0}.modal-actions{margin-top:4px}.sticker-library-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px;display:grid}.sticker-choice-card{color:var(--ink);text-align:center;background:#ffffffc7;border:2px solid #eadfc4eb;border-radius:8px;place-items:center;gap:8px;min-height:174px;padding:12px;display:grid;position:relative}.sticker-choice-card:hover{border-color:var(--accent)}.sticker-choice-card strong{font-size:.86rem}.sticker-choice-card>span:last-child{color:var(--muted);font-size:.84rem;font-weight:750}.sticker-choice-main{color:inherit;text-align:center;background:0 0;border:0;place-items:center;gap:8px;padding:0;display:grid}.sticker-choice-main>span:last-child{color:var(--muted);font-size:.84rem;font-weight:750}.sticker-delete-button{background:var(--surface);border:1px solid var(--line);color:var(--rose);z-index:2;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0 0 2px;font-size:1.15rem;font-weight:900;line-height:1;display:flex;position:absolute;top:8px;right:8px}.sticker-delete-button:hover{border-color:var(--rose)}.sticker-choice-image{background:#fffaf0;border:1px solid #eadfc4eb;border-radius:8px;justify-content:center;align-items:center;width:92px;height:92px;display:flex;overflow:hidden}.sticker-choice-image img{object-fit:contain;width:100%;height:100%;display:block}.sticker-choice-image span{color:var(--accent-strong);font-size:2rem;font-weight:900}.sticker-library-actions{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.removable-sticker-card:hover{border-color:var(--rose)}.empty-sticker-history{border:1px dashed var(--line);background:#ffffffb8;border-radius:8px;padding:16px}.custom-sticker-editor{border-top:1px solid var(--line);gap:12px;display:grid}.custom-sticker-editor-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.custom-sticker-editor-header h3{margin:2px 0 0;font-size:1.18rem}.custom-sticker-art-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;max-height:250px;padding-right:4px;display:grid;overflow:auto}.custom-sticker-art-card{background:#ffffffc7;border:2px solid #eadfc4eb;border-radius:8px;justify-content:center;align-items:center;height:78px;padding:6px;display:flex;overflow:hidden}.custom-sticker-art-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 4px #1f9a8a1f}.custom-sticker-art-card img{object-fit:contain;width:100%;height:100%;display:block}.teacher-avatar-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:14px;display:grid}.teacher-avatar-card{color:var(--ink);text-align:center;background:#ffffffc7;border:3px solid #ffffffeb;border-radius:22px;justify-items:center;gap:8px;min-height:196px;padding:14px 10px;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid;position:relative;box-shadow:0 12px 22px #27373912}.teacher-avatar-card:hover{transform:translateY(-2px)}.teacher-avatar-card.is-selected{border-color:var(--sun);box-shadow:0 18px 30px #ffc85738,0 0 0 6px #ffc85724}.teacher-avatar-card.is-birthday .teacher-avatar{animation:.9s ease-in-out infinite birthday-wiggle}.teacher-avatar-card.is-birthday:after{color:#6b4b00;content:"Birthday";background:linear-gradient(135deg,#fff4b8,#ffd56b);border:3px solid #fff;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:900;position:absolute;top:8px;right:8px;box-shadow:0 8px 18px #ffc8573d}.teacher-avatar-card.girl strong{color:#d84f8b}.teacher-avatar-card.boy strong{color:#2d76d2}.teacher-avatar{justify-content:center;align-items:center;width:110px;height:110px;font-weight:900;display:inline-flex}.avatar.teacher-avatar{width:110px;height:110px}@keyframes birthday-wiggle{0%,to{transform:rotate(0)translate(0)}20%{transform:rotate(-7deg)translate(-3px)}40%{transform:rotate(7deg)translate(3px)}60%{transform:rotate(-5deg)translate(-2px)}80%{transform:rotate(5deg)translate(2px)}}.teacher-avatar-card.is-offline .teacher-avatar{filter:grayscale(.9);opacity:.68}.teacher-avatar-card .roster-card-stats{gap:4px;min-height:40px;display:grid}.teacher-avatar-card .roster-card-stats span{color:var(--muted);font-size:.84rem;font-weight:750}.detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0;display:grid}.detail-grid>div,.detail-grid-action{color:inherit;font:inherit;text-align:left;background:#ffffffc7;border:1px solid #eadfc4d1;border-radius:14px;gap:8px;padding:14px;display:grid}.detail-grid-action{cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.detail-grid-action:hover,.detail-grid-action:focus-visible{border-color:var(--mint);outline:none;transform:translateY(-1px);box-shadow:0 14px 24px #127d7029}.detail-label{color:var(--muted);font-size:.8rem;font-weight:800}.detail-grid code{color:#6b4b00;background:#fff7d8;border-radius:8px;width:fit-content;padding:6px 8px;font-weight:850}.detail-grid .invite-status{border-width:2px;width:fit-content;padding:6px 9px;font-size:.76rem}.detail-grid strong{font-size:1.7rem;line-height:1}.sticker-award-button{background:linear-gradient(135deg, var(--rose), #f59a5f);border:0;box-shadow:0 14px 24px #f37b6d38}.registration-page{gap:18px;display:grid}.registration-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.registration-header p{max-width:820px}.registration-mode-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.registration-mode-tabs button{background:var(--surface);border:1px solid var(--line);color:var(--ink);text-align:left;border-radius:8px;gap:4px;min-height:86px;padding:14px;display:grid}.registration-mode-tabs button.is-selected{border-color:var(--accent);box-shadow:0 0 0 4px #1f9a8a1f}.registration-mode-tabs strong{color:var(--accent-strong);text-transform:uppercase;font-size:.82rem}.registration-mode-tabs span{color:var(--muted);font-weight:750}.registration-grid{align-items:start}.registration-form-panel,.registration-preview-panel,.registration-result{gap:12px;display:grid}.registration-result article{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;gap:6px;padding:14px;display:grid}.registration-result code{color:#6b4b00;overflow-wrap:anywhere;background:#fff7d8;border:1px solid #ecd28d;border-radius:8px;padding:8px 10px;display:block}.registration-flow{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.registration-flow article{background:var(--surface);border:1px solid var(--line);border-radius:8px;gap:8px;padding:16px;display:grid}.registration-flow span{background:var(--accent-soft);color:var(--accent-strong);border:1px solid #b6ddd6;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-weight:900;display:inline-flex}.registration-flow p{color:var(--muted);margin-bottom:0}.parent-register{grid-template-columns:minmax(0,.92fr) minmax(320px,.58fr);gap:24px;min-height:100vh;padding:44px;display:grid}.parent-register-copy{align-content:center;display:grid}.parent-register-copy h1,.parent-dashboard-header h1{font-size:clamp(2.4rem,5vw,5.6rem)}.parent-register-copy p{color:var(--muted);max-width:760px;font-size:1.06rem}.invite-email-preview{border:1px solid var(--line);box-shadow:var(--shadow);background:#ffffffbd;border-radius:18px;max-width:520px;margin-top:24px;padding:20px}.invite-email-preview code{color:#6b4b00;background:#fff7d8;border:1px solid #ecd28d;border-radius:10px;padding:8px 12px;font-size:1.25rem;font-weight:900;display:inline-flex}.parent-register-panel{border-radius:24px;align-self:center}.form-error{color:#8b2f25;background:#ffe5e2;border:1px solid #f5b2aa;border-radius:10px;margin:0;padding:10px 12px}.parent-dashboard{min-height:100vh;padding:34px}.parent-dashboard-header{align-items:flex-start;gap:16px;margin-bottom:22px;display:grid}.parent-dashboard-header p{max-width:760px}.parent-dashboard-grid{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:18px;display:grid}.parent-dashboard-grid.is-status-view .child-status-panel{min-height:430px}.child-status-panel,.parent-task-panel{border-radius:24px;align-content:start;gap:16px;display:grid}.parent-task-modal{width:min(100%,920px);max-width:920px}.child-status-heading{align-items:center;gap:14px;display:flex}.child-status-heading h2,.child-status-heading p{margin-bottom:0}.child-status-panel.is-birthday{background:radial-gradient(circle at 84% 12%,#ffc85747,#0000 28%),linear-gradient(135deg,#fffdf8fa,#dff6eee6);border-color:#ffffffe6}.child-status-panel.is-birthday .avatar{animation:.9s ease-in-out infinite birthday-wiggle}.child-status-panel.is-classroom-removed{background:radial-gradient(circle at 84% 12%, #f37b6d29, transparent 28%), var(--surface)}.birthday-message{color:#6b4b00;background:#fff4b8;border:1px solid #ecd28d;border-radius:8px;padding:10px 12px;font-weight:800}.classroom-removed-message{color:#8b2f25;background:#ffe5e2;border:1px solid #f5b2aa;border-radius:8px;padding:10px 12px;font-weight:800}.parent-status-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:2px 0 0;display:grid}.parent-status-grid>div{border:1px solid var(--line);background:#ffffffc7;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;min-height:58px;padding:12px 14px;display:flex}.parent-status-grid strong{overflow-wrap:anywhere;text-align:right;font-size:clamp(1.25rem,2.1vw,1.7rem);line-height:1}.class-transfer-panel{border:1px solid var(--line);background:#ffffffb8;border-radius:8px;gap:12px;margin:16px 0;padding:14px;display:grid}.parent-task-form{grid-template-columns:minmax(0,1fr) 120px auto;align-items:end;gap:12px;margin-bottom:18px;display:grid}.achievement-goal-panel{background:linear-gradient(135deg,#fff7d8f2,#dff6eeb8);border:1px solid #eadfc4eb;border-radius:16px;gap:14px;padding:16px;display:grid}.dashboard-goal-panel,.dashboard-task-panel{margin-top:2px}.dashboard-task-panel{background:#ffffffb8;border:1px solid #eadfc4eb;border-radius:16px;gap:12px;padding:16px;display:grid}.dashboard-task-panel h3{margin-bottom:0;font-size:1.2rem}.dashboard-task-panel .parent-task-card{background:#ffffffb8;justify-content:stretch;gap:12px;display:grid}.dashboard-task-panel .parent-task-card-actions{border-top:1px solid #eadfc4bd;padding-top:10px;display:block}.dashboard-task-action{border-radius:8px;justify-content:center;width:100%;min-height:44px}.dashboard-task-action.secondary,.dashboard-task-action:disabled{color:var(--accent-strong);opacity:1;background:#dff6eec7;border-color:#1f9a8a2e}.achievement-goal-header{justify-content:space-between;align-items:start;gap:12px;display:flex}.achievement-goal-header h3{margin-bottom:0;font-size:1.35rem}.achievement-goal-header strong{color:var(--accent-strong);background:#fff;border:1px solid #eadfc4eb;border-radius:999px;padding:8px 12px}.achievement-progress{background:#ffffffb8;border:1px solid #eadfc4eb;border-radius:999px;height:18px;overflow:hidden}.achievement-progress span{background:linear-gradient(90deg, var(--accent), #ffc857);border-radius:inherit;min-width:8px;height:100%;transition:width .18s;display:block}.achievement-goal-form{grid-template-columns:150px minmax(0,1fr);gap:12px;display:grid}.parent-task-guidance{color:var(--muted);background:#1f9a8a14;border:1px solid #1f9a8a29;border-radius:12px;margin-bottom:0;padding:12px 14px;font-weight:800}.parent-task-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-left:auto;display:flex}.parent-task-list .task-card.is-complete{background:linear-gradient(135deg,#dff6eeeb,#fffdf8)}.parent-task-card{justify-content:stretch;align-items:stretch;gap:12px;display:grid}.parent-task-card-actions{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;display:flex}.parent-task-card-actions .button{min-height:42px;padding-inline:14px}.parent-task-edit{flex:1;grid-template-columns:minmax(0,1fr) 112px;align-items:end;gap:12px;min-width:0;display:grid}.parent-task-card.is-editing{background:#fffdf8;align-items:end}.danger-text-button{color:#9b2f24;border-color:#f37b6d61}.screen-authorised-pill{background:var(--accent-soft);color:var(--accent-strong);white-space:nowrap;border:3px solid #fff;border-radius:999px;padding:12px 18px;font-weight:900;box-shadow:0 14px 28px #1f9a8a29}.task-list{gap:10px;display:grid}.admin-sidebar{gap:16px;display:grid}.admin-account-summary{background:#ffffff9e;border:1px solid #eadfc4e6;border-radius:8px;gap:6px;padding:14px;display:grid}.admin-account-summary strong{line-height:1.2}.admin-account-summary span:not(.detail-label){color:var(--muted);font-size:.86rem}.admin-nav{align-content:start}.admin-topbar{align-items:flex-start;max-width:880px}.admin-topbar h1{letter-spacing:0;font-size:clamp(2.4rem,5vw,4rem)}.admin-topbar .muted{max-width:720px}.admin-stat-row{border:1px solid var(--line);background:#ffffffad;border-radius:8px;grid-template-columns:repeat(4,minmax(120px,1fr));max-width:760px;display:grid;overflow:hidden}.admin-stat-row .stat-pill{box-shadow:none;background:0 0;border:0;border-radius:0;min-width:0;padding:14px 16px}.admin-stat-row .stat-pill:not(:last-child){border-right:1px solid #eadfc4e6}.admin-stat-row .stat-pill strong{font-size:1.35rem}.admin-dashboard-grid{gap:20px;max-width:760px;margin-top:20px;display:grid}.admin-class-panel{box-shadow:none;background:0 0;border:0;max-width:760px;padding:0}.admin-class-panel h2{margin-bottom:12px;font-size:1.25rem}.admin-class-list{gap:12px}.admin-class-card{box-shadow:none;background:#ffffffc7;align-items:flex-start}.admin-class-card .room-card-main{align-items:flex-start}.admin-room-meta{gap:7px;display:grid}.admin-room-meta .muted{margin-bottom:0}.admin-screen-link{color:var(--accent-strong);font-size:.92rem;font-weight:800}.admin-class-form{border:1px solid var(--line);border-radius:8px;gap:12px;margin:12px 0 16px;padding:14px;display:grid}.admin-class-form .button{justify-self:start}.admin-class-result,.teacher-account-editor{gap:12px;display:grid}.teacher-account-editor{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.section-heading-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading-row h3{margin-bottom:0}.teacher-credential-card{background:#fff7d8;border:1px solid #ecd28d;border-radius:8px;gap:6px;padding:12px;display:grid}.teacher-credential-card code{overflow-wrap:anywhere}.task-card{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:14px;display:flex}.room-card{align-items:center}.room-card-main{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:14px;padding:0;display:flex}.room-card-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:150px;display:flex}.room-card:hover{border-color:var(--accent);box-shadow:0 0 0 4px #1f9a8a1a}.admin-room-modal,.admin-privacy-modal,.admin-class-modal,.admin-password-modal{max-width:680px}.privacy-statement{color:var(--muted);gap:12px;display:grid}.privacy-statement p{margin:0}.token{background:var(--accent-soft);color:var(--accent-strong);border:1px solid #b6ddd6;border-radius:8px;justify-content:center;align-items:center;min-height:28px;padding:3px 9px;font-size:.82rem;font-weight:750;display:inline-flex}.child-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px;display:grid}.child-button{background:var(--surface-strong);border:1px solid var(--line);color:var(--ink);text-align:left;border-radius:8px;min-height:116px;padding:12px;transition:border-color .16s,transform .16s}.child-button:hover{border-color:var(--accent);transform:translateY(-1px)}.avatar{justify-content:center;align-items:center;width:60px;height:60px;margin-bottom:10px;font-weight:850;display:inline-flex;overflow:hidden}.avatar img{object-fit:contain;width:100%;height:100%;display:block}.avatar.is-muted{filter:grayscale()saturate(0)contrast(.85);opacity:.72}.progress-bar{background:#ebe5d6;border-radius:999px;height:12px;overflow:hidden}.progress-bar span{background:var(--accent);height:100%;display:block}.classroom{background:radial-gradient(circle at 12% 16%,#ffc85759,#0000 24%),radial-gradient(circle at 88% 12%,#b492ee3d,#0000 22%),linear-gradient(#fff3c6 0%,#ffe7c8 44%,#d9f4e7 100%);border-radius:28px;min-height:calc(100vh - 56px);padding:22px}.classroom-topbar{color:#273739;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.classroom-topbar h1{color:#26393b;max-width:920px;margin-bottom:8px;font-size:clamp(2.2rem,4.2vw,4.6rem);line-height:.94}.classroom-topbar p{color:#526767;max-width:760px;font-size:1rem}.classroom-kicker,.screen-label{color:var(--accent-strong);letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-size:.8rem;font-weight:850}.classroom-back{color:var(--ink);white-space:nowrap;background:#fffdf8cc;border-color:#ffffffe6}.classroom-stage{grid-template-columns:minmax(0,1fr) 380px;gap:22px;display:grid}.classroom-screen{background:linear-gradient(#ffffffbd,#fffdf8e6),#fffdf8;border:6px solid #ffffffdb;border-radius:32px;min-height:630px;position:relative;overflow:hidden;box-shadow:0 28px 70px #4852412e,inset 0 0 0 2px #ffc8573d}.screen-sky{pointer-events:none;position:absolute;inset:0}.cloud{filter:drop-shadow(0 12px 18px #5b8def14);background:#ffffffc7;border-radius:999px;width:120px;height:34px;position:absolute}.cloud:before,.cloud:after{background:inherit;content:"";border-radius:50%;position:absolute}.cloud:before{width:54px;height:54px;top:-24px;left:18px}.cloud:after{width:46px;height:46px;top:-18px;right:20px}.cloud-one{top:78px;left:7%}.cloud-two{animation:12s ease-in-out infinite alternate drift;top:116px;right:10%}.kite-shape{background:linear-gradient(135deg, var(--rose), var(--peach));border-radius:18px 18px 18px 4px;width:58px;height:58px;animation:4.5s ease-in-out infinite floaty;position:absolute;top:40px;right:11%;transform:rotate(12deg)}.sun-shape{background:radial-gradient(circle,#fff5bd 0 38%,#ffc857 39% 100%);border-radius:50%;width:82px;height:82px;position:absolute;top:36px;left:48px;box-shadow:0 0 0 18px #ffc85729}.recognition-banner{z-index:1;background:#ffffffb8;border-bottom:1px solid #eadfc4cc;justify-content:space-between;align-items:center;gap:18px;min-height:128px;padding:22px 34px;display:flex;position:relative}.recognition-banner h2{color:#26393b;margin-bottom:6px;font-size:clamp(1.6rem,2.6vw,2.7rem)}.recognition-banner p,.reward-hero.playful p,.celebration-band p{color:#55706f;margin-bottom:0;font-size:1rem}.behaviour-badge{color:#6b4b00;white-space:nowrap;background:linear-gradient(135deg,#fff4b8,#ffd56b);border:3px solid #fff;border-radius:999px;align-items:center;min-height:52px;padding:10px 18px;font-weight:900;display:inline-flex;box-shadow:0 14px 28px #f0b84d38}.reward-hero{text-align:center;align-content:center;justify-items:center;min-height:300px;padding:24px;display:grid}.reward-hero.playful{z-index:1;min-height:288px;padding:30px 28px 26px;position:relative}.reward-hero.playful h1{color:#26393b;text-wrap:balance;max-width:920px;font-size:clamp(2.8rem,6vw,5.8rem)}.reward-medal{place-items:center;width:104px;height:104px;margin-bottom:14px;display:grid;position:relative}.reward-medal.active{animation:.68s cubic-bezier(.2,1.2,.2,1) both reward-pop}.medal-ring{background:conic-gradient(#ff7b6b,#ffc857,#70c971,#5b8def,#b492ee,#ff7b6b);border-radius:50%;width:104px;height:104px;position:absolute}.medal-core{background:radial-gradient(circle at 35% 28%,#fff9cf,#ffc857 62%,#ffad42);border:8px solid #fff;border-radius:50%;width:76px;height:76px;position:relative;box-shadow:inset 0 -10px #915e0c14}.medal-core:before,.medal-core:after{content:"";background:#ffffffdb;border-radius:50%;position:absolute}.medal-core:before{width:18px;height:18px;top:17px;left:19px}.medal-core:after{width:10px;height:10px;top:32px;right:19px}.confetti-field{pointer-events:none;position:absolute;inset:0}.confetti-field span{border-radius:8px;width:42px;height:18px;animation:.78s ease-out both confetti-fall;position:absolute}.confetti-field span:first-child{background:var(--rose);top:28%;left:15%;transform:rotate(18deg)}.confetti-field span:nth-child(2){background:var(--blue);animation-delay:60ms;top:18%;left:28%;transform:rotate(-16deg)}.confetti-field span:nth-child(3){background:var(--sun);animation-delay:90ms;top:18%;right:24%;transform:rotate(26deg)}.confetti-field span:nth-child(4){background:var(--leaf);animation-delay:.12s;top:32%;right:14%;transform:rotate(-20deg)}.confetti-field span:nth-child(5){background:var(--lilac);animation-delay:.14s;top:58%;left:20%;transform:rotate(-6deg)}.confetti-field span:nth-child(6){background:var(--peach);animation-delay:.17s;top:60%;right:20%;transform:rotate(10deg)}@keyframes reward-pop{0%{opacity:.4;transform:scale(.74)}55%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes confetti-fall{0%{opacity:0;translate:0 -26px}35%{opacity:1}to{opacity:0;translate:0 64px}}@keyframes floaty{0%,to{translate:0}50%{translate:0 12px}}@keyframes drift{0%{translate:-10px}to{translate:18px 8px}}.celebration-band{z-index:1;background:linear-gradient(90deg,#dff6eee6,#fff4b8b8);border-top:1px solid #eadfc4cc;grid-template-columns:minmax(0,1fr) 210px;align-items:center;gap:22px;padding:22px 34px;display:grid;position:relative}.jar-copy h2{color:#26393b;margin-bottom:6px;font-size:clamp(1.5rem,2.6vw,2.35rem)}.celebration-progress{background:#ffffffb8;height:18px;margin-top:14px}.celebration-progress span{background:linear-gradient(90deg, var(--accent), var(--leaf), var(--sun))}.celebration-jar{background:linear-gradient(#ffffffa8,#ffffff52),#fff6;border:5px solid #ffffffeb;border-radius:28px 28px 38px 38px;grid-template-columns:repeat(4,1fr);align-content:end;gap:9px;height:178px;padding:24px 20px 18px;display:grid;position:relative;box-shadow:inset 0 -18px #1f9a8a14,0 18px 36px #24312f1f}.celebration-jar:before{content:"";background:#fffffff5;border:4px solid #1f9a8a2e;border-radius:999px;height:30px;position:absolute;top:-16px;left:36px;right:36px}.celebration-jar span{background:#ffffff85;border:2px dashed #2737391f;border-radius:50%;height:24px}.celebration-jar span.filled{background:var(--leaf);border:3px solid #fff;animation:.48s both jar-drop;box-shadow:0 8px 14px #1f9a8a29}.celebration-jar span.filled:nth-child(3n){background:var(--sun)}.celebration-jar span.filled:nth-child(4n){background:var(--rose)}.celebration-jar span.filled:nth-child(5n){background:var(--blue)}@keyframes jar-drop{0%{opacity:0;transform:translateY(-18px)scale(.7)}to{opacity:1;transform:translateY(0)scale(1)}}.educator-panel{background:linear-gradient(#ffffffeb,#fffdf8f5);border:4px solid #ffffffc7;border-radius:24px;box-shadow:0 24px 60px #444e4129}.group-reward-button{background:linear-gradient(135deg, var(--rose), #f59a5f);border:0;width:100%;min-height:56px;box-shadow:0 14px 24px #f37b6d3d}.sticker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sticker-child{background:radial-gradient(circle at 85% 14%,#ffc85761,#0000 24%),#fffef8;border:3px solid #fff;min-height:154px;box-shadow:0 12px 22px #27373914}.classroom-display-shell{z-index:100;background:#111816;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.classroom-display{background-blend-mode:soft-light;transform-origin:50%;background-color:#d7d2b84d;background-position:50%;background-repeat:no-repeat;background-size:cover;flex:none;width:2048px;height:1080px;position:relative;overflow:hidden}.classroom-nav-layer{z-index:12;position:absolute;top:30px;left:34px}.classroom-nav-toggle{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffc2;border:3px solid #ffffffe6;border-radius:8px;justify-content:center;align-items:center;gap:7px;width:66px;height:66px;padding:16px;display:grid;box-shadow:0 16px 32px #17302b33}.classroom-nav-toggle span{background:#17302b;border-radius:999px;width:28px;height:4px;display:block}.classroom-exit-button{color:#5b3e02;cursor:pointer;background:radial-gradient(circle at 28% 22%,#ffffff5c,#0000 32%),linear-gradient(135deg,#fff4a8 0%,#ffd45d 54%,#ffb347 100%);border:5px solid #fff;border-radius:999px;justify-content:center;align-items:center;width:76px;height:76px;padding:0;transition:background .16s,transform .16s;display:inline-flex;box-shadow:0 10px #7e58152e,0 18px 34px #464b242e,inset 0 -5px #b16a112e}.classroom-exit-button:hover{background:radial-gradient(circle at 28% 22%,#ffffff6b,#0000 32%),linear-gradient(135deg,#fff 0%,#ffe477 54%,#ffc45c 100%);transform:translateY(-1px)}.classroom-exit-button svg{fill:currentColor;width:34px;height:34px}.classroom-icon-nav{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;pointer-events:none;background:#ffffffb8;border:3px solid #ffffffe0;border-radius:8px;gap:12px;padding:12px;transition:opacity .18s,transform .18s;display:grid;position:absolute;top:80px;left:0;transform:translateY(-10px);box-shadow:0 18px 42px #17302b38}.classroom-icon-nav.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.classroom-icon-nav a,.classroom-icon-nav button{color:#25453f;cursor:pointer;background:#ffffff8a;border:2px solid #ffffffbd;border-radius:8px;justify-content:center;align-items:center;width:56px;height:56px;padding:0;transition:background .16s,color .16s,transform .16s;display:inline-flex}.classroom-icon-nav a:hover,.classroom-icon-nav a.active,.classroom-icon-nav button:hover{color:#fff;background:#1f9a8a;transform:translateY(-1px)}.classroom-icon-nav svg{fill:currentColor;width:28px;height:28px}.classroom-screen-controls{z-index:10;align-items:center;gap:12px;display:flex;position:absolute;top:34px;right:42px}.classroom-screen-status{color:#5b3e02;background:radial-gradient(circle at 18% 18%,#ffffffe6 0 8%,#0000 9%),linear-gradient(135deg,#fff6bc 0%,#ffd86a 48%,#f29f35 100%);border:5px solid #fff;border-radius:999px;grid-template-columns:minmax(250px,320px) minmax(118px,auto) 82px;align-items:center;gap:14px;min-width:560px;min-height:76px;padding:8px 8px 10px 22px;display:grid;overflow:visible;box-shadow:0 10px #7e58152e,0 18px 34px #464b242e,inset 0 -5px #b16a112e}.classroom-battle-meter{gap:7px;min-width:0;display:grid}.classroom-battle-meter-copy{align-items:flex-end;gap:10px;min-width:0;display:flex}.classroom-battle-meter-copy span{color:#fff4a8;letter-spacing:0;text-transform:uppercase;background:#17302b;border-radius:999px;flex:none;padding:5px 8px 6px;font-size:.72rem;font-weight:1000;line-height:1}.classroom-battle-meter-copy strong{color:#513603;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:1000;line-height:1;display:block;overflow:hidden}.classroom-battle-track{background:linear-gradient(#ffffff8a,#fff0),#8b5d1b;border:3px solid #ffffffeb;border-radius:999px;height:25px;position:relative;overflow:hidden;box-shadow:inset 0 3px 7px #472a065c,0 4px #7e581529}.classroom-battle-track:after{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#ffffff42 0 2px,#0000 2px 18px);position:absolute;inset:0}.classroom-battle-fill{border-radius:inherit;transform-origin:0;height:100%;transform:scaleX(var(--battle-progress,0));background:linear-gradient(#ffffff94,#0000 48%),linear-gradient(90deg,#45d173 0%,#b4eb55 52%,#ffe05c 100%);width:100%;transition:transform .42s cubic-bezier(.2,.84,.24,1);display:block;box-shadow:0 0 18px #7be1548a,inset 0 -4px #3084372e}.classroom-screen-status.is-progress-pulsing .classroom-battle-track{animation:.72s ease-in-out 2 boss-progress-shake;box-shadow:inset 0 3px 7px #472a0652,0 4px #7e581529,0 0 0 5px #ffffff73,0 0 28px #ffe05cb8}.classroom-screen-status.is-progress-pulsing .classroom-battle-fill{animation:1.4s ease-in-out both boss-progress-fill-glow}.classroom-boss-meter-image{filter:drop-shadow(0 8px #7e581526)drop-shadow(0 13px 18px #2834203d);object-fit:contain;place-self:center end;width:88px;height:88px;margin-top:-16px;margin-bottom:-10px;margin-right:-12px;transition:opacity .26s,transform .52s cubic-bezier(.2,.84,.24,1);display:block}.classroom-boss-meter-image.is-away{opacity:0;transform:translate(-28px,90px)scale(1.8)}.classroom-pairing-display{justify-content:center;align-items:center;display:flex}.classroom-pairing-panel{color:#1d342d;z-index:6;background:#fffadce6;border:6px solid #fffffff2;border-radius:26px;grid-template-columns:1.1fr 360px;align-items:center;gap:28px;max-width:1160px;padding:42px;display:grid;position:relative;box-shadow:0 16px #60481229,0 28px 54px #1f342247}.classroom-pairing-panel h1{margin-bottom:16px;font-family:Comic Sans MS,Marker Felt,Chalkboard SE,Arial Rounded MT Bold,system-ui,sans-serif;font-size:4.4rem;line-height:.95}.classroom-pairing-panel p{max-width:560px;margin-bottom:0;font-size:1.3rem;line-height:1.4}.classroom-pairing-card{place-items:center;gap:18px;display:grid}.classroom-pairing-qr{background:#fff;border:5px solid #1f3a32;border-radius:18px;justify-content:center;align-items:center;width:300px;height:300px;display:flex;overflow:hidden}.classroom-pairing-qr img{width:100%;height:100%;display:block}.classroom-pairing-code{color:#fff4a8;text-align:center;background:#17302b;border:4px solid #fff;border-radius:18px;min-width:300px;padding:16px 20px}.classroom-pairing-code span{color:#fff;letter-spacing:0;text-transform:uppercase;margin-bottom:8px;font-size:.9rem;font-weight:900;display:block}.classroom-pairing-code strong{letter-spacing:.08em;font-size:3.4rem;line-height:1;display:block}.classroom-pairing-status{color:#fff;text-shadow:0 2px 10px #00000073;align-items:center;gap:12px;font-size:1.2rem;font-weight:900;display:flex;position:absolute;bottom:-58px;left:42px}.classroom-pairing-status span{background:#62d483;border:4px solid #fff;border-radius:50%;width:22px;height:22px;animation:1.2s ease-in-out infinite pairing-status-pulse;box-shadow:0 0 20px #62d483cc}.classroom-sound-button{color:#fff;cursor:pointer;letter-spacing:0;background:#17302b;border:3px solid #fff;border-radius:999px;justify-content:center;align-items:center;min-width:126px;min-height:44px;padding:9px 18px;font-size:.95rem;font-weight:900;transition:background .16s,transform .16s;display:inline-flex;position:absolute;top:-24px;right:42px;box-shadow:0 8px 18px #17302b33}.classroom-sound-button:hover{background:#1f9a8a;transform:translateY(-1px)}.classroom-sound-button.is-ready{background:#2f7d4c}.classroom-sound-consent{z-index:36;justify-content:flex-end;align-items:flex-end;display:flex;position:absolute;bottom:34px;right:34px}.classroom-sound-consent-card{color:#31483d;background:radial-gradient(circle at 18% 12%,#ffffffe6,#0000 34%),linear-gradient(#fffbe1f5,#ffe88eeb);border:4px solid #fffffff2;border-radius:22px;gap:8px;max-width:310px;padding:16px;display:grid;box-shadow:0 14px #7e581524,0 20px 34px #222d2033,inset 0 -4px #b16a111f}.classroom-sound-consent-card strong{color:#1d3f35;letter-spacing:0;font-size:1.12rem;font-weight:1000;line-height:1.05}.classroom-sound-consent-card p{color:#2a443be0;margin:0;font-size:.86rem;font-weight:800;line-height:1.25}.classroom-sound-consent-card div{justify-content:flex-end;gap:8px;display:flex}.classroom-sound-consent-card button{cursor:pointer;letter-spacing:0;border:0;border-radius:999px;min-height:34px;padding:8px 12px;font-size:.78rem;font-weight:1000}.classroom-sound-consent-card button:first-child{color:#fff;background:#2f9a63;box-shadow:0 6px #175b372e}.classroom-sound-consent-card button:last-child{color:#50655e;background:#ffffffc2}.classroom-sound-consent-card button:hover{transform:translateY(-1px)}.classroom-sound-button-floating{color:#5b3e02;background:radial-gradient(circle at 28% 22%,#ffffff5c,#0000 32%),linear-gradient(135deg,#fff4a8 0%,#ffd45d 54%,#ffb347 100%);border:5px solid #fff;flex:none;width:76px;min-width:76px;height:76px;min-height:76px;padding:0;position:relative;top:auto;right:auto;box-shadow:0 10px #7e58152e,0 18px 34px #464b242e,inset 0 -5px #b16a112e}.classroom-sound-button-floating:hover{background:radial-gradient(circle at 28% 22%,#ffffff6b,#0000 32%),linear-gradient(135deg,#fff 0%,#ffe477 54%,#ffc45c 100%)}.classroom-sound-button-floating.is-ready{color:#17302b;background:radial-gradient(circle at 28% 22%,#ffffff57,#0000 32%),linear-gradient(135deg,#c8f7dd 0%,#6fd68f 54%,#2f9a63 100%)}.classroom-sound-button-floating.is-muted{color:#6c1e17;background:radial-gradient(circle at 28% 22%,#ffffff57,#0000 32%),linear-gradient(135deg,#ffe5e2 0%,#ffb5a8 54%,#e86f5d 100%)}.classroom-sound-icon{width:44px;height:38px;display:block;position:relative}.classroom-sound-speaker{background:currentColor;border-radius:7px 4px 4px 7px;width:15px;height:18px;position:absolute;top:10px;left:2px}.classroom-sound-speaker:after{content:"";border:15px solid #0000;border-left-width:0;border-right:19px solid;width:0;height:0;position:absolute;top:-6px;left:11px}.classroom-sound-wave{opacity:.88;border:4px solid #0000;border-right-color:currentColor;border-radius:50%;position:absolute;transform:translateY(-50%)}.classroom-sound-wave.wave-one{width:20px;height:20px;top:50%;right:5px}.classroom-sound-wave.wave-two{width:32px;height:32px;top:50%;right:-2px}.classroom-sound-slash{background:currentColor;border-radius:999px;width:6px;height:46px;display:none;position:absolute;top:-4px;left:21px;transform:rotate(-42deg)}.classroom-sound-button-floating.is-muted .classroom-sound-wave{display:none}.classroom-sound-button-floating.is-muted .classroom-sound-slash{display:block}.classroom-sound-text{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.classroom-sticker-number{align-items:baseline;gap:4px;min-width:86px;height:3.85rem;display:inline-flex;position:relative}.classroom-sticker-number-odometer{letter-spacing:0;justify-content:center;width:auto;font-family:Arial Rounded MT Bold,Comic Sans MS,Trebuchet MS,system-ui,sans-serif;display:flex}.classroom-sticker-number-target{color:#463108bd;text-shadow:0 2px #ffffff9e,0 7px 10px #5b3e0229;font-family:Arial Rounded MT Bold,Comic Sans MS,Trebuchet MS,system-ui,sans-serif;font-size:2.15rem;font-weight:1000;line-height:1;display:inline-block}.classroom-sticker-digit{text-align:center;width:2.45rem;height:3.85rem;display:block;position:relative;overflow:hidden}.classroom-sticker-digit-current,.classroom-sticker-digit-row{text-shadow:0 2px #fff,0 4px #7e58151f;height:3.85rem;font-size:3.65rem;font-weight:1000;line-height:1;display:block}.classroom-sticker-digit-wheel{transform:translateY(var(--roll-from));display:block}.classroom-sticker-number.is-rolling .is-changing .classroom-sticker-digit-wheel{animation:.52s cubic-bezier(.18,.82,.24,1) forwards sticker-number-wheel-roll}.classroom-sticker-label{letter-spacing:0;text-transform:none;max-width:104px;font-size:.98rem;font-weight:1000;line-height:.98;transform:translateY(1px)}@keyframes sticker-number-wheel-roll{0%{transform:translateY(var(--roll-from))}72%{transform:translateY(calc(var(--roll-to) + .16rem))}to{transform:translateY(var(--roll-to))}}@keyframes pairing-status-pulse{0%,to{transform:scale(.88)}50%{transform:scale(1.08)}}.classroom-title-mark{color:#17302b;text-shadow:none;transform-origin:0;z-index:7;font-family:Comic Sans MS,Marker Felt,Chalkboard SE,Arial Rounded MT Bold,system-ui,sans-serif;position:absolute;top:38px;left:134px}.classroom-title-mark p{color:#286356;letter-spacing:0;text-transform:uppercase;background:#fff4a8c7;border:2px solid #ffffffe0;border-radius:999px;margin-bottom:6px;padding:4px 10px 5px;font-size:.82rem;font-weight:1000;display:inline-block;box-shadow:0 6px #32533c1f,0 10px 18px #18342d1f}.classroom-title-mark h1{color:#17302b;-webkit-text-stroke:3px #ffffffeb;paint-order:stroke fill;text-shadow:2px 2px #f6e785,4px 5px #3e896b38,0 13px 22px #18342d2e;margin:0;font-size:4.1rem;font-weight:1000;line-height:.88}.classroom-avatar-field{z-index:5;position:absolute;inset:0}.classroom-celebration-ribbons{pointer-events:none;z-index:23;width:980px;height:720px;position:absolute;top:48%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.classroom-celebration-ribbons span{animation:celebration-ribbon-fall var(--ribbon-fall-duration,4.4s) linear infinite;animation-delay:var(--ribbon-fall-delay,0s);height:var(--ribbon-height,30px);left:var(--ribbon-left,50%);opacity:0;transform:rotate(var(--ribbon-rotation,0deg));width:var(--ribbon-width,12px);border-radius:6px;position:absolute;top:-60px}.classroom-celebration-ribbons span:nth-child(5n+1){background:#f37b6d}.classroom-celebration-ribbons span:nth-child(5n+2){background:#ffc857}.classroom-celebration-ribbons span:nth-child(5n+3){background:#75bf72}.classroom-celebration-ribbons span:nth-child(5n+4){background:#5b8def}.classroom-celebration-ribbons span:nth-child(5n){background:#b492ee}.classroom-celebration-ribbons span:nth-child(2n){border-radius:999px}.classroom-celebration-ribbons span:nth-child(3n){filter:brightness(1.06)}.classroom-celebration-ribbons span:nth-child(4n){opacity:.86}.classroom-sticker-rain{pointer-events:none;z-index:4;position:absolute;inset:0;overflow:hidden}.classroom-sticker-rain span{animation:sticker-rain-fall var(--sticker-fall-duration,4.8s) linear infinite;animation-delay:var(--sticker-fall-delay,0s);color:#704900;font-size:calc(var(--sticker-size,54px) * .34);height:var(--sticker-size,54px);left:var(--sticker-left,50%);opacity:0;transform:translateX(var(--sticker-drift,0px)) rotate(var(--sticker-rotation,0deg));width:var(--sticker-size,54px);background:radial-gradient(circle at 35% 25%,#fffdf0,#ffc857 58%,#ff9f43);border:5px solid #fffffff2;border-radius:50%;justify-content:center;align-items:center;font-weight:1000;display:flex;position:absolute;top:-90px;box-shadow:0 14px 24px #7d4f042e,0 0 0 8px #ffc85729}.classroom-sticker-rain span:nth-child(3n){filter:hue-rotate(12deg)}.classroom-sticker-rain span:nth-child(4n){filter:hue-rotate(-18deg)}.classroom-sticker-rain span:nth-child(5n){box-shadow:0 10px 18px #7d4f0424,0 0 0 6px #ffc8571f}.classroom-sticker-rain span.has-image{box-shadow:none;background:0 0;border:0;border-radius:0}.classroom-sticker-rain span.has-image img{filter:drop-shadow(0 14px 18px #4e3f1c33);object-fit:contain;width:100%;height:100%;display:block}.classroom-penalty-scene{pointer-events:none;z-index:22;position:absolute;inset:0;overflow:hidden}.classroom-boss-defeat-scene{pointer-events:none;z-index:23;position:absolute;inset:0;overflow:hidden}.boss-defeat-monster{filter:drop-shadow(0 44px 34px #0f171257)drop-shadow(0 0 54px #ffd24847);object-fit:contain;transform-origin:50%;z-index:3;width:330px;height:330px;animation:10s cubic-bezier(.22,1,.36,1) both boss-defeat-monster,.16s linear infinite boss-defeat-shudder;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.classroom-boss-defeat-scene.is-medal-hold .boss-defeat-monster{animation:8s ease-in-out both boss-medal-hold-monster}.classroom-boss-defeat-scene.is-resetting .boss-defeat-monster{animation:1.8s ease-out both boss-reset-monster}.boss-sticker-throws{z-index:5;position:absolute;inset:0}.boss-sticker-throws span{animation:2.7s cubic-bezier(.2,.86,.26,1) both boss-sticker-throw;animation-delay:var(--boss-sticker-delay,0s);color:#704900;height:58px;left:var(--boss-sticker-start-x);opacity:0;top:var(--boss-sticker-start-y);background:radial-gradient(circle at 35% 26%,#fffdf0,#ffc857 58%,#ff9f43);border:5px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:58px;font-size:1rem;font-weight:1000;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 16px 26px #17140c33,0 0 0 8px #ffc8572e}.boss-sticker-throws span.has-image{box-shadow:none;background:0 0;border:0}.boss-sticker-throws span.has-image img{filter:drop-shadow(0 12px 15px #17140c38);object-fit:contain;width:64px;height:64px;display:block}.classroom-boss-medal-scene{color:#fffbe7;pointer-events:none;text-align:center;text-shadow:0 5px #633d042e,0 18px 36px #2a2d2052;z-index:24;animation:8s ease-in-out both boss-medal-scene;display:block;position:absolute;inset:0}.boss-victory-medal{justify-content:center;align-items:center;width:300px;height:300px;animation:8s cubic-bezier(.22,1,.36,1) both boss-medal-pop;display:flex;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.boss-victory-medal img{filter:drop-shadow(0 18px 24px #38270838);object-fit:contain;width:100%;height:100%;display:block}.classroom-boss-medal-scene strong{-webkit-text-stroke:5px #81350494;color:#fff071;letter-spacing:0;paint-order:stroke fill;text-shadow:0 5px #97480033,0 0 24px #ffee5cd1,0 18px 36px #2a2d2052;width:max-content;max-width:1320px;font-family:Comic Sans MS,Marker Felt,Chalkboard SE,Arial Rounded MT Bold,system-ui,sans-serif;font-size:4.4rem;font-weight:1000;display:block;position:absolute;top:calc(46% + 176px);left:50%;transform:translate(-50%)}.classroom-boss-medal-stack{overscroll-behavior:contain;scroll-snap-type:y proximity;scrollbar-color:#925d109e #ffffff52;scrollbar-width:thin;touch-action:pan-y;z-index:9;background:linear-gradient(#fff8cdb8,#ffde7057),#ffffff2e;border:3px solid #ffffffc7;border-radius:34px;justify-items:center;gap:10px;max-height:660px;padding:12px 8px;scroll-padding:12px;display:grid;position:absolute;top:136px;right:38px;overflow:hidden auto;box-shadow:inset 0 0 0 2px #97631624,0 16px 28px #48320a29}.classroom-boss-medal-stack:focus-visible{outline-offset:4px;outline:4px solid #2489ffe6}.classroom-boss-medal-stack::-webkit-scrollbar{width:8px}.classroom-boss-medal-stack::-webkit-scrollbar-track{background:#ffffff52;border-radius:999px}.classroom-boss-medal-stack::-webkit-scrollbar-thumb{background:#925d109e;border:2px solid #ffffff7a;border-radius:999px}.classroom-boss-medal-stack span{filter:drop-shadow(0 10px 14px #44300a33)drop-shadow(0 0 12px #ffe7608a);scroll-snap-align:center;flex:none;justify-content:center;align-items:center;width:68px;height:68px;display:flex}.classroom-boss-medal-stack img{object-fit:contain;width:100%;height:100%;display:block}.monster-boss{filter:drop-shadow(0 34px 28px #0f17124d)drop-shadow(0 0 42px #742a8057);object-fit:contain;transform-origin:50% 72%;z-index:3;width:390px;height:390px;animation:10s ease-in-out both monster-boss-entrance,.68s ease-in-out infinite monster-boss-sway;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.penalty-flying-sticker{color:#704900;height:92px;left:var(--penalty-start-x);top:var(--penalty-start-y);z-index:5;background:radial-gradient(circle at 35% 26%,#fffdf0,#ffc857 58%,#ff9f43);border:7px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:92px;font-size:1.4rem;font-weight:1000;animation:10s cubic-bezier(.22,1,.36,1) both penalty-sticker-feed;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 18px 34px #17140c38,0 0 0 10px #52227124}.penalty-flying-sticker.has-image{box-shadow:none;background:0 0;border:0;border-radius:0}.penalty-flying-sticker.has-image img{filter:drop-shadow(0 16px 20px #17140c33)drop-shadow(0 0 16px #fff4b85c);object-fit:contain;width:108px;height:108px;display:block}.classroom-child-avatar{color:#16362f;left:var(--avatar-left);min-height:calc(var(--avatar-size) + 44px);text-align:center;top:var(--avatar-top);width:calc(var(--avatar-size) + 38px);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%)}.classroom-child-avatar.is-present{transition:left var(--roam-duration,10s) ease-in-out, top var(--roam-duration,10s) ease-in-out}.classroom-child-avatar.is-roaming{animation:roaming-wander var(--roam-duration,10s) ease-in-out both}.classroom-display.is-celebrating .classroom-child-avatar.is-present{transition:left .82s ease-in-out,top .82s ease-in-out}.classroom-child-avatar.is-reward-focus{z-index:24;animation:10s ease-in-out both reward-focus-sway}.classroom-child-avatar.is-celebration-ring{animation:1.25s ease-in-out infinite celebration-ring-sway;animation-delay:var(--ring-delay,0s);z-index:12}.classroom-child-avatar.is-boss-ring{animation:.76s ease-in-out infinite boss-ring-sway;animation-delay:var(--boss-ring-delay,0s);z-index:15}.classroom-child-avatar.is-group-reward-bounce{animation:.92s cubic-bezier(.34,1.56,.64,1) infinite group-reward-bounce;animation-delay:var(--group-delay,0s);z-index:14}.classroom-child-avatar.is-penalty-target{z-index:18;animation:.12s linear infinite penalty-target-shake}.classroom-child-avatar.is-penalty-fleeing{z-index:10;animation:10s cubic-bezier(.19,1,.22,1) both penalty-avatar-flee}.classroom-child-avatar.is-penalty-target .avatar{filter:drop-shadow(0 20px 18px #132d2638)drop-shadow(0 0 24px #742a8057)}.classroom-child-avatar .avatar{filter:drop-shadow(0 18px 18px #132d263d);height:var(--avatar-size);width:var(--avatar-size);z-index:2;transition:filter .18s,opacity .18s;position:relative;overflow:visible}.classroom-child-avatar .avatar img{object-fit:contain}.classroom-sticker-count-bubble{color:#654100;font-size:clamp(.72rem, calc(var(--avatar-size) * .12), .94rem);height:clamp(25px, calc(var(--avatar-size) * .27), 34px);min-width:clamp(25px, calc(var(--avatar-size) * .27), 34px);pointer-events:none;text-shadow:0 1px #fffc;z-index:6;background:linear-gradient(#fff9c8,#ffc83d);border:3px solid #fff;border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-weight:1000;line-height:1;display:flex;position:absolute;bottom:18px;right:7px;box-shadow:0 4px #85570833,0 7px 12px #2c261038,inset 0 -3px #cd7e0833}.classroom-child-avatar:not(.is-present) .classroom-sticker-count-bubble{filter:grayscale(.55)saturate(.7);opacity:.82}.classroom-child-avatar.is-reward-focus .classroom-sticker-count-bubble{z-index:13;bottom:12px;transform:scale(1.12)}.classroom-avatar-label{-webkit-backdrop-filter:blur(8px)saturate(1.08);backdrop-filter:blur(8px)saturate(1.08);max-width:calc(var(--avatar-size) + 112px);min-width:0;min-height:32px;left:50%;top:calc(var(--avatar-size) * -.42);z-index:5;background:radial-gradient(circle at 24% 18%,#fffffff5,#0000 32%),linear-gradient(#fffadcf0,#e8fad6e6);border:2px solid #ffffffeb;border-radius:999px;justify-content:center;align-items:center;gap:6px;margin:0;padding:5px 9px 6px 11px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 8px #72884a2e,0 13px 20px #18342d2e,inset 0 -3px #8fb46233}.classroom-avatar-label:after{content:"";z-index:-1;background:#e8fad6f0;border-bottom:2px solid #ffffffe6;border-right:2px solid #ffffffe6;width:10px;height:10px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg);box-shadow:4px 5px 6px #18342d14}.classroom-child-avatar.is-birthday .classroom-avatar-label{border-color:#fffffffa;animation:2.4s ease-in-out infinite birthday-label-glow;box-shadow:0 8px #b7851a33,0 13px 20px #18342d2e,0 0 0 4px #ffd66b6b,0 0 24px #ffee70d1,inset 0 -3px #dfa32838}.classroom-child-avatar.is-birthday .classroom-avatar-label:before{animation:birthday-message-bubble var(--birthday-message-duration,32s) ease-in-out var(--birthday-message-delay,1.6s) infinite;color:#6b4b00;content:"Happy Birthday";letter-spacing:0;opacity:0;pointer-events:none;text-transform:uppercase;white-space:nowrap;z-index:8;background:radial-gradient(circle at 22% 18%,#fffffffa,#0000 34%),linear-gradient(135deg,#fff4b8,#ffd56b 62%,#ffb950);border:3px solid #fffffff5;border-radius:999px;justify-content:center;align-items:center;min-width:max-content;padding:0 12px;font-size:.9rem;font-weight:1000;line-height:1;display:flex;position:absolute;inset:-8px -14px;transform:scale(.82);box-shadow:0 10px #8d600c29,0 18px 28px #8d600c33,0 0 28px #ffee70c2}.classroom-child-avatar.is-birthday .classroom-avatar-label strong,.classroom-child-avatar.is-birthday .classroom-growth-badges{opacity:1}.classroom-growth-badges{pointer-events:none;z-index:5;flex:none;justify-content:center;align-items:center;gap:1px;width:auto;min-height:20px;display:flex;position:relative}.classroom-growth-badges img{filter:drop-shadow(0 5px 5px #3a2c0938)drop-shadow(0 0 6px #fff4b86b);object-fit:contain;width:20px;height:20px;display:block}.classroom-child-avatar strong{color:#1f3f35;text-shadow:0 1px #ffffffdb,0 2px 4px #5e704629;text-overflow:ellipsis;white-space:nowrap;z-index:3;flex:0 auto;max-width:124px;margin-top:0;padding:0;font-size:.98rem;font-weight:1000;line-height:1;position:relative;overflow:hidden}.classroom-avatar-glow{height:calc(var(--avatar-size) * 1.4);opacity:0;top:calc(var(--avatar-size) * -.17);width:calc(var(--avatar-size) * 1.4);z-index:1;background:radial-gradient(circle,#ffffffe0,#ffde656b 42%,#0000 72%);border-radius:50%;position:absolute}.classroom-child-avatar.is-reward-focus .classroom-avatar-glow{filter:blur(1px)drop-shadow(0 0 42px #ffc857d1);height:calc(var(--avatar-size) * 4.35);top:calc(var(--avatar-size) * -1.52);width:calc(var(--avatar-size) * 4.35);background:radial-gradient(circle,#fffffff0 0 18%,#ffdb5ec7 34%,#ff9f435c 56%,#0000 76%);animation:10s ease-in-out both reward-focus-glow}.classroom-child-avatar:not(.is-present) .avatar{filter:grayscale()saturate(0)contrast(.92)drop-shadow(0 18px 18px #132d2629);opacity:.78}.classroom-child-avatar.is-checking-in .classroom-avatar-glow{animation:.76s ease-out both check-in-glow}.classroom-child-avatar.is-present .avatar{animation:3.4s ease-in-out infinite present-float}.classroom-child-avatar.is-birthday .avatar{animation:.9s ease-in-out infinite birthday-wiggle,3.4s ease-in-out infinite present-float}.classroom-child-avatar.is-reward-focus .avatar{filter:drop-shadow(0 30px 30px #132d2642)drop-shadow(0 0 42px #ffc857e6)drop-shadow(0 0 82px #fff4b88f);z-index:4;animation:10s cubic-bezier(.22,1,.36,1) both reward-avatar-spotlight}.classroom-child-avatar.is-reward-focus .classroom-avatar-label{max-width:calc(var(--avatar-size) + 150px);min-height:36px;top:calc(var(--avatar-size) * -1.86);z-index:12;padding:6px 11px 7px 13px;animation:10s ease-in-out both reward-label-pop}.classroom-child-avatar.is-reward-focus .classroom-avatar-label strong{max-width:150px;font-size:1.04rem;animation:none}.reward-sticker{color:#704900;transform-origin:-42px 56px;z-index:7;background:radial-gradient(circle at 35% 26%,#fffdf0,#ffc857 58%,#ff9f43);border:6px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:74px;height:74px;font-size:1.5rem;font-weight:1000;animation:10s ease-in-out both reward-sticker-pop;display:flex;position:absolute;top:-22px;right:-88px;box-shadow:0 18px 34px #7d4f0433,0 0 0 12px #ffc85733}.reward-sticker:before,.reward-sticker:after{content:"";background:#fff;border-radius:999px;width:18px;height:18px;position:absolute;top:17px}.reward-sticker:before{left:22px}.reward-sticker:after{right:22px}.reward-sticker.has-image{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.reward-sticker.has-image:before,.reward-sticker.has-image:after{content:none}.reward-sticker.has-image img{filter:drop-shadow(0 14px 20px #7d4f0433)drop-shadow(0 0 14px #fff4b875);object-fit:contain;width:82px;height:82px;display:block}.classroom-child-avatar.is-birthday:before,.classroom-child-avatar.is-birthday:after{content:"";z-index:1;background:#ffc857;border-radius:50%;width:10px;height:10px;animation:1.3s ease-in-out infinite birthday-spark;position:absolute;top:10px;box-shadow:26px 18px #f37b6d,-24px 24px #5b8def,12px -22px #75bf72}.classroom-child-avatar.is-birthday:before{left:8px}.classroom-child-avatar.is-birthday:after{animation-delay:.18s;right:18px}.check-in-burst{height:calc(var(--avatar-size) * 1.24);opacity:0;pointer-events:none;top:calc(var(--avatar-size) * -.05);width:calc(var(--avatar-size) * 1.24);z-index:1;background:radial-gradient(circle,#ffffffb8,#ffc8576b 34%,#0000 68%);border-radius:50%;position:absolute}.classroom-child-avatar.is-checking-in .check-in-burst{animation:.76s ease-out both check-in-burst}@keyframes birthday-spark{0%,to{opacity:.65;transform:scale(.82)}50%{opacity:1;transform:scale(1.18)}}@keyframes birthday-label-glow{0%,to{filter:drop-shadow(0 0 #ffe15e00)}50%{filter:drop-shadow(0 0 12px #ffe15eb8)}}@keyframes birthday-message-bubble{0%,46%{opacity:0;transform:scale(.82)}52%,94%{opacity:1;transform:scale(1.08)}99%,to{opacity:0;transform:scale(.86)}}@keyframes birthday-label-content{0%,46%{opacity:1}52%,94%{opacity:0}99%,to{opacity:1}}@keyframes present-float{0%,to{translate:0}50%{translate:0 -8px}}@keyframes roaming-wander{0%,to{transform:translate(-50%,-50%)translate(0)}28%{transform:translate(-50%, -50%) translate(var(--wander-x-one), var(--wander-y-one))}62%{transform:translate(-50%, -50%) translate(var(--wander-x-two), var(--wander-y-two))}}@keyframes reward-focus-sway{0%{transform:translate(-50%,-50%)rotate(0)}12%{transform:translate(-50%,-50%)rotate(-3deg)}22%{transform:translate(-50%,-50%)rotate(3deg)}34%{transform:translate(-50%,-50%)rotate(-2.5deg)}46%{transform:translate(-50%,-50%)rotate(2.5deg)}58%{transform:translate(-50%,-50%)rotate(-2deg)}70%{transform:translate(-50%,-50%)rotate(2deg)}84%{transform:translate(-50%,-50%)rotate(-1.4deg)}to{transform:translate(-50%,-50%)rotate(0)}}@keyframes reward-avatar-spotlight{0%{transform:scale(1)}8%{transform:scale(2.74)}13%{transform:scale(3.08)}20%,84%{transform:scale(3)}92%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes reward-focus-glow{0%{opacity:0;transform:scale(.4)}10%{opacity:.98;transform:scale(.94)}18%,84%{opacity:.86;transform:scale(1)}92%{opacity:.34;transform:scale(.74)}to{opacity:0;transform:scale(.52)}}@keyframes reward-label-pop{0%{opacity:.9;transform:translate(-50%)translateY(0)scale(1)}10%{opacity:1;transform:translate(-50%)translateY(-8px)scale(1.12)}18%,84%{opacity:1;transform:translate(-50%)translateY(-12px)scale(1.14)}92%{opacity:1;transform:translate(-50%)translateY(-5px)scale(1.06)}to{opacity:.94;transform:translate(-50%)translateY(0)scale(1)}}@keyframes reward-name-pop{0%{opacity:.86;transform:translateY(0)scale(1)}12%,92%{opacity:1;transform:translateY(calc(var(--avatar-size) * 1.05)) scale(1.12)}to{opacity:.9;transform:translateY(0)scale(1)}}@keyframes reward-sticker-pop{0%{opacity:0;transform:translate(14px,4px)scale(.38)rotate(-18deg)}12%{opacity:1;transform:translate(0)scale(1.08)rotate(10deg)}22%{opacity:1;transform:translate(-18px,6px)scale(1)rotate(-9deg)}34%{transform:translate(10px,-4px)scale(.98)rotate(8deg)}46%{transform:translate(-14px,5px)scale(1)rotate(-8deg)}58%{transform:translate(8px,-3px)scale(.98)rotate(7deg)}70%{transform:translate(-10px,4px)scale(1)rotate(-6deg)}84%{opacity:1;transform:translate(6px,-2px)scale(.98)rotate(5deg)}to{opacity:0;transform:translate(18px,2px)scale(.62)rotate(12deg)}}@keyframes celebration-ring-sway{0%,to{transform:translate(-50%,-50%)rotate(-3deg)}50%{transform:translate(-50%,-50%)rotate(3deg)}}@keyframes boss-ring-sway{0%,to{transform:translate(-50%,-50%)rotate(-4deg)translateY(0)}50%{transform:translate(-50%,-50%)rotate(4deg)translateY(-10px)}}@keyframes boss-progress-shake{0%,to{transform:translate(0)}18%{transform:translate(-5px)}36%{transform:translate(5px)}54%{transform:translate(-3px)}72%{transform:translate(3px)}}@keyframes boss-progress-fill-glow{0%,to{filter:brightness()}45%{filter:brightness(1.34)saturate(1.18);box-shadow:0 0 26px #ffed70f2,0 0 18px #5dd763d6,inset 0 -4px #3084371f}}@keyframes boss-defeat-monster{0%{opacity:0;transform:translate(520px,-210px)scale(.34)rotate(0)}12%{opacity:1;transform:translate(-50%,-50%)scale(1.12)rotate(0)}24%{transform:translate(-50%,-50%)scale(1.22)rotate(180deg)}58%{opacity:1;transform:translate(-50%,-50%)scale(1.2)rotate(180deg)}76%{opacity:1;transform:translate(-50%,-50%)scale(.92)rotate(188deg)}to{opacity:0;transform:translate(760px,70px)scale(.18)rotate(540deg)}}@keyframes boss-medal-hold-monster{0%,to{opacity:1;transform:translate(-50%,-50%)scale(1.04)rotate(180deg)}50%{opacity:.82;transform:translate(-50%,-48%)scale(1)rotate(180deg)}}@keyframes boss-defeat-shudder{0%,to{translate:-8px}50%{translate:8px 2px}}@keyframes boss-reset-monster{0%{opacity:0;transform:translate(760px,70px)scale(.18)rotate(540deg)}34%{opacity:1;transform:translate(650px,-22px)scale(.26)rotate(240deg)}to{opacity:1;transform:translate(520px,-210px)scale(.34)rotate(0)}}@keyframes boss-sticker-throw{0%{left:var(--boss-sticker-start-x);opacity:0;top:var(--boss-sticker-start-y);transform:translate(-50%, -50%) scale(.55) rotate(var(--boss-sticker-rotation,0deg))}16%{opacity:1;transform:translate(-50%, -50%) scale(1.08) rotate(calc(var(--boss-sticker-rotation,0deg) + 22deg))}52%{transform:translate(-50%, calc(-50% + var(--boss-sticker-arc))) scale(1) rotate(calc(var(--boss-sticker-rotation,0deg) + 150deg))}86%{left:var(--boss-sticker-end-x);opacity:1;top:var(--boss-sticker-end-y);transform:translate(-50%, -50%) scale(.62) rotate(calc(var(--boss-sticker-rotation,0deg) + 280deg))}to{left:var(--boss-sticker-end-x);opacity:0;top:var(--boss-sticker-end-y);transform:translate(-50%, -50%) scale(.08) rotate(calc(var(--boss-sticker-rotation,0deg) + 420deg))}}@keyframes boss-medal-scene{0%{opacity:0}12%,82%{opacity:1}to{opacity:0}}@keyframes boss-medal-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.36)rotate(-18deg)}14%{opacity:1;transform:translate(-50%,-50%)scale(1.12)rotate(8deg)}72%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-4deg)}to{opacity:0;transform:translate(calc(900px - 50%),calc(-50% - 300px))scale(.28)rotate(0)}}@keyframes monster-boss-entrance{0%{opacity:0;scale:.55}10%{opacity:1;scale:1.08}16%,88%{opacity:1;scale:1}to{opacity:0;scale:.72}}@keyframes monster-boss-sway{0%,to{translate:-14px;rotate:-3deg}50%{translate:14px;rotate:3deg}}@keyframes penalty-sticker-feed{0%{opacity:0;transform:translate(-50%,-50%)scale(.72)rotate(-12deg)}8%{opacity:1;transform:translate(-50%,-50%)scale(1.1)rotate(8deg)}30%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-10deg)}62%{left:var(--penalty-end-x);opacity:1;top:var(--penalty-end-y);transform:translate(-50%,-50%)scale(.74)rotate(240deg)}74%{left:var(--penalty-end-x);opacity:0;top:var(--penalty-end-y);transform:translate(-50%,-50%)scale(.12)rotate(420deg)}to{left:var(--penalty-end-x);opacity:0;top:var(--penalty-end-y);transform:translate(-50%,-50%)scale(.08)rotate(420deg)}}@keyframes penalty-target-shake{0%,to{transform:translate(-50%,-50%)translate(-7px)rotate(-2deg)}50%{transform:translate(-50%,-50%)translate(7px)rotate(2deg)}}@keyframes penalty-avatar-flee{0%{opacity:1;transform:translate(-50%,-50%)translate(0)rotate(0)}12%{transform:translate(-50%, -50%) translate(calc(var(--flee-x) * .18), calc(var(--flee-y) * .18)) rotate(-4deg)}34%,84%{opacity:1;transform:translate(-50%, -50%) translate(var(--flee-x), var(--flee-y)) rotate(4deg)}to{opacity:.92;transform:translate(-50%, -50%) translate(var(--flee-x), var(--flee-y)) rotate(0deg)}}@keyframes celebration-ribbon-fall{0%{opacity:0;transform:translateY(-90px) translateX(0) rotate(var(--ribbon-rotation,0deg))}7%{opacity:1}42%{transform:translateY(330px) translateX(var(--ribbon-sway,0px)) rotate(calc(var(--ribbon-rotation,0deg) + 180deg))}82%{opacity:1}to{opacity:0;transform:translateY(780px) translateX(var(--ribbon-drift,0px)) rotate(calc(var(--ribbon-rotation,0deg) + 520deg))}}@keyframes group-reward-bounce{0%,to{transform:translate(-50%,-50%)translateY(0)scale(1)}36%{transform:translate(-50%,-50%)translateY(-34px)scale(1.06)}58%{transform:translate(-50%,-50%)translateY(4px)scale(.98)}}@keyframes sticker-rain-fall{0%{opacity:0;transform:translateY(-100px) translateX(0) rotate(var(--sticker-rotation,0deg))}6%{opacity:1}38%{transform:translateY(430px) translateX(var(--sticker-sway,0px)) rotate(calc(var(--sticker-rotation,0deg) + 120deg))}74%{opacity:1;transform:translateY(890px) translateX(var(--sticker-sway,0px)) rotate(calc(var(--sticker-rotation,0deg) + 280deg))}to{opacity:0;transform:translateY(1220px) translateX(var(--sticker-drift,0px)) rotate(calc(var(--sticker-rotation,0deg) + 520deg))}}@keyframes check-in-glow{0%{opacity:0;transform:scale(.72)}35%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.18)}}@keyframes check-in-burst{0%{opacity:0;transform:scale(.62)}32%{opacity:.9}to{opacity:0;transform:scale(1.22)}}.notice{color:#5f4d18;background:#fff6db;border:1px solid #ecd28d;border-radius:8px;padding:14px}.form{gap:12px;display:grid}.field{gap:6px;display:grid}.field label,.field-label{color:var(--muted);font-size:.86rem;font-weight:700}.field input,.field select{background:var(--surface-strong);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:10px 12px}.home-hero{grid-template-columns:minmax(0,.95fr) minmax(300px,.55fr);gap:24px;min-height:calc(100vh - 56px);display:grid}.hero-panel{align-content:center;display:grid}.route-list{gap:10px;display:grid}.route-link{background:var(--surface);border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;padding:16px;display:flex}.forgot-password-link{color:var(--accent-strong);text-align:left;background:0 0;border:0;justify-self:start;padding:0;font-weight:850}.forgot-password-panel{border:1px solid var(--line);background:#ffffffb8;border-radius:8px;gap:12px;padding:12px;display:grid}.forgot-password-actions{justify-content:flex-start}.landing-page{color:#fffdf8;background:linear-gradient(#08182f 0%,#102f55 700px,#fff7e7 701px 100%);min-height:100vh;padding:clamp(18px,3vw,36px);position:relative;overflow-x:hidden}.landing-stars{pointer-events:none;z-index:0;position:absolute;inset:0}.landing-stars span{background:#fffde8f0;border-radius:999px;position:absolute;box-shadow:0 0 10px #fffde86b}.landing-stars span.is-twinkling{animation:3.8s ease-in-out infinite landing-star-twinkle}.landing-nav,.landing-hero,.landing-summary,.landing-contact{z-index:1;max-width:1180px;margin:0 auto;position:relative}.landing-nav{justify-content:space-between;align-items:center;gap:18px;min-width:0;display:flex}.landing-brand{align-items:center;gap:12px;min-width:0;display:flex}.landing-brand-mark{color:#17304f;background:#ffc857;border:3px solid #ffffffdb;border-radius:14px;justify-content:center;align-items:center;width:46px;height:46px;font-weight:900;display:inline-flex;box-shadow:0 14px 30px #05182f33}.landing-brand strong,.landing-brand small{display:block}.landing-brand strong{font-size:1.06rem}.landing-brand small{color:#fffdf8c7;overflow-wrap:anywhere;font-size:.82rem;font-weight:750}.landing-nav-login{color:#17304f;background:#fffffff0;border:1px solid #ffffffe6;border-radius:8px;flex:none;min-height:42px;padding:9px 16px;font-weight:900}.landing-hero{grid-template-columns:minmax(0,.92fr) minmax(330px,.78fr);align-items:center;gap:clamp(28px,5vw,64px);min-height:560px;padding:clamp(34px,6vw,58px) 0 clamp(72px,7vw,96px);display:grid}.landing-hero-copy{min-width:0;max-width:680px}.landing-kicker{color:#ffdf7b;letter-spacing:0;margin-bottom:14px;font-size:clamp(1.05rem,1.7vw,1.38rem);font-weight:900;line-height:1.16}.landing-hero h1{color:#fff;overflow-wrap:anywhere;max-width:640px;margin-bottom:18px;font-size:clamp(2.55rem,5.4vw,5rem);line-height:1.02}.landing-intro{color:#fffdf8db;overflow-wrap:anywhere;max-width:620px;margin-bottom:26px;font-size:clamp(1rem,1.8vw,1.24rem)}.landing-actions{flex-wrap:wrap;gap:12px;display:flex}.landing-primary,.landing-secondary{border-radius:8px;justify-content:center;align-items:center;min-height:52px;padding:13px 18px;font-weight:900;display:inline-flex}.landing-primary{color:#17304f;background:#ffc857;border:1px solid #ffc857}.landing-secondary{color:#fff;background:#ffffff21;border:1px solid #ffffff61}.landing-visual{justify-content:center;align-items:center;min-height:350px;display:flex}.planet-orbit{aspect-ratio:1;box-shadow:none;background:url(/landing-assets/monster-planet.png) 50%/contain no-repeat;border-radius:18px;width:min(100%,430px);max-width:430px;position:relative}.hero-sticker{filter:drop-shadow(0 18px 24px #05182f38);object-fit:contain;z-index:2;position:absolute}.hero-sticker-main{width:38%;animation:8.6s cubic-bezier(.42,0,.28,1) -3.8s infinite hero-sticker-float-main;bottom:4%;left:4%}.hero-sticker-reading{width:30%;animation:5.3s cubic-bezier(.4,0,.34,1) -.65s infinite hero-sticker-float-reading;bottom:18%;right:-2%}.hero-sticker-care{width:24%;animation:5.7s ease-in-out -2.1s infinite hero-sticker-float-care;top:-6%;right:4%}.star{background:#fff7c5;border-radius:999px;width:10px;height:10px;position:absolute;box-shadow:0 0 18px #fff8c5c7}.star-one{top:22%;left:4%}.star-two{top:5%;right:10%}.star-three{bottom:20%;left:-4%}@keyframes hero-sticker-float-main{0%{transform:translate(-4px,3px)rotate(-1.5deg)}32%{transform:translate(5px,-5px)rotate(.5deg)}67%{transform:translate(1px,7px)rotate(1.5deg)}to{transform:translate(-4px,3px)rotate(-1.5deg)}}@keyframes hero-sticker-float-reading{0%{transform:translate(2px,-3px)rotate(1deg)}24%{transform:translate(-1px,4px)rotate(-.5deg)}58%{transform:translate(3px,-7px)rotate(1.5deg)}to{transform:translate(2px,-3px)rotate(1deg)}}@keyframes hero-sticker-float-care{0%,to{transform:translate(0,0)rotate(-.5deg)}45%{transform:translate(3px,-10px)rotate(2deg)}78%{transform:translate(-2px,3px)rotate(-1deg)}}@keyframes landing-star-twinkle{0%,to{opacity:.28;transform:scale(.72)}42%{opacity:1;transform:scale(1.34)}62%{opacity:.62;transform:scale(.96)}}@media (prefers-reduced-motion:reduce){.hero-sticker,.landing-stars span.is-twinkling{animation:none}}.landing-modal-backdrop{z-index:30;background:#05182f8f;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.landing-register-modal{background:radial-gradient(circle at 92% 10%, #ffc85738, transparent 28%), var(--surface);color:var(--ink);border:1px solid #ffffffd6;border-radius:8px;width:min(100%,520px);max-width:520px;max-height:calc(100vh - 36px);padding:22px;position:relative;overflow:auto;box-shadow:0 28px 80px #05182f52}.landing-modal-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.landing-modal-header .landing-kicker{color:var(--accent-strong);margin-bottom:6px;font-size:.82rem}.landing-modal-header h2{margin-bottom:0;font-size:1.55rem}.landing-modal-close{background:var(--surface-strong);border:1px solid var(--line);color:var(--ink);z-index:2;border-radius:8px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;margin-left:auto;font-weight:900;display:inline-flex;position:sticky;top:0;right:0}.landing-back-button{color:var(--accent-strong);background:0 0;border:0;margin:-4px 0 16px;padding:0;font-weight:850}.landing-role-grid{gap:12px;display:grid}.landing-role-card{border:1px solid var(--line);color:var(--ink);text-align:left;background:#ffffffd1;border-radius:8px;justify-items:start;gap:10px;min-height:138px;padding:16px;transition:border-color .16s,box-shadow .16s,transform .16s;display:grid}.landing-role-card:hover,.landing-role-card:focus-visible{border-color:#1f9a8a94;transform:translateY(-1px);box-shadow:0 14px 30px #2737391a}.landing-role-card strong,.landing-role-card small{display:block}.landing-role-card strong{font-size:1rem}.landing-role-card small{color:var(--muted);font-size:.9rem}.landing-register-form{gap:14px;display:grid}.landing-register-form .landing-primary{width:100%}.landing-register-note{border:1px solid var(--line);background:#ffffffc7;border-radius:8px;gap:12px;padding:16px;display:grid}.landing-register-note h3{margin-bottom:0;font-size:1.08rem}.landing-register-note p{color:var(--muted);margin-bottom:0}.landing-register-note .landing-primary{width:100%}.landing-summary{clip-path:inset(0 -100vmax);color:var(--ink);background:#fff7e7;grid-template-columns:minmax(0,.75fr) minmax(280px,.8fr);align-items:start;gap:20px;margin-bottom:18px;padding-top:28px;display:grid;box-shadow:0 0 0 100vmax #fff7e7}.landing-summary .landing-kicker{color:var(--accent-strong);margin-bottom:8px}.landing-summary h2{overflow-wrap:anywhere;margin-bottom:0;font-size:clamp(1.75rem,3vw,2.55rem)}.landing-summary p:last-child{color:#485b5d;overflow-wrap:anywhere;justify-self:end;max-width:560px;margin-bottom:0;font-size:1.02rem;line-height:1.5}.landing-contact{clip-path:inset(0 -100vmax);color:var(--ink);background:#fff7e7;grid-template-columns:minmax(0,.74fr) minmax(320px,.8fr);align-items:start;gap:clamp(22px,4vw,48px);padding:52px 0 72px;display:grid;box-shadow:0 0 0 100vmax #fff7e7}.landing-contact .landing-kicker{color:var(--accent-strong);margin-bottom:10px;font-size:.92rem}.landing-contact h2{overflow-wrap:anywhere;margin-bottom:12px;font-size:clamp(1.75rem,3vw,2.45rem)}.landing-contact-copy p:last-child{color:#485b5d;overflow-wrap:anywhere;max-width:520px;margin-bottom:0;font-size:1.02rem;line-height:1.55}.landing-contact-form{background:#ffffffe6;border:1px solid #1f9a8a1f;border-radius:8px;gap:14px;min-width:0;padding:clamp(16px,2.4vw,24px);display:grid;box-shadow:0 18px 42px #27373914}.landing-contact-form textarea{resize:vertical;min-height:132px}.landing-contact-form .landing-primary{width:100%}.form-success{color:var(--accent-strong);background:#1f9a8a1f;border:1px solid #1f9a8a2e;border-radius:8px;margin-bottom:0;padding:10px 12px;font-weight:800}.admin-login-page{background:var(--bg);align-items:center;min-height:100vh;padding:28px;display:grid}.admin-login-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;justify-self:center;gap:22px;width:min(100%,560px);max-width:560px;padding:clamp(22px,4vw,34px);display:grid}.admin-login-panel h1{font-size:clamp(2rem,5vw,3.2rem)}.admin-login-brand{margin-bottom:0}.teacher-auth-page{align-items:center;min-height:calc(100vh - 56px);display:grid}.teacher-login-panel{justify-self:center;width:min(100%,560px);max-width:560px}.teacher-login-panel h1{font-size:clamp(2rem,5vw,3.4rem)}.parent-login-panel{width:min(100%,620px);max-width:620px}.parent-auth-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 4px}.parent-auth-tabs button{border-width:2px;gap:6px;min-height:76px;padding:16px 18px}.parent-auth-tabs button:first-child{background:#eefaf6;border-color:#1f9a8a57}.parent-auth-tabs button:nth-child(2){background:#fff6d8;border-color:#ffc85794}.parent-auth-tabs button:first-child.is-selected{border-color:var(--accent);background:#dff6ee;box-shadow:0 0 0 4px #1f9a8a24}.parent-auth-tabs button:nth-child(2).is-selected{background:#ffe9a8;border-color:#dfa93e;box-shadow:0 0 0 4px #ffc85738}.parent-auth-tabs strong{color:var(--ink);text-transform:none;font-size:1.08rem;line-height:1.05}.parent-auth-tabs span{color:var(--muted);font-size:.82rem;font-weight:750;line-height:1.25}.account-info-list{gap:10px;display:grid}.account-info-list>div{background:#ffffffb8;border:1px solid #eadfc4d1;border-radius:8px;gap:6px;padding:12px;display:grid}.account-info-list strong{font-size:1rem}.account-info-list code{color:#6b4b00;overflow-wrap:anywhere;background:#fff7d8;border-radius:8px;width:fit-content;padding:6px 8px}.test-account-list{border-top:1px solid var(--line);gap:10px;margin-top:18px;padding-top:16px;display:grid}.test-account-list .eyebrow{margin-bottom:4px}.test-account-card{background:#ffffffb8;border:1px solid #eadfc4d1;border-radius:8px;gap:8px;padding:12px;display:grid}.test-account-card strong,.test-account-card span{display:block}.test-account-card span,.test-account-card p{color:var(--muted);margin-bottom:0;font-size:.86rem}.test-account-card code{color:#6b4b00;overflow-wrap:anywhere;background:#fff7d8;border-radius:8px;padding:4px 6px}.entrance-icon{border-radius:18px;width:52px;height:52px;display:inline-flex}.accent-mint .entrance-icon{background:radial-gradient(circle at 66% 34%, #fff 0 5px, transparent 6px), var(--accent)}.accent-sun .entrance-icon{background:radial-gradient(circle,#fff7c5 0 10px,#0000 11px),#ffc857}.accent-rose .entrance-icon{background:radial-gradient(circle at 36% 34%,#fff 0 5px,#0000 6px),#f37b6d}.accent-sky .entrance-icon{background:radial-gradient(circle at 58% 36%,#fff 0 5px,#0000 6px),#4f9df8}@media (max-width:900px){.home-hero,.parent-register,.parent-dashboard-grid,.registration-mode-tabs,.registration-flow,.classroom-stage,.celebration-band,.publisher-layout,.teacher-roster,.grid.two,.grid.three{grid-template-columns:1fr}.classroom-topbar,.teacher-dashboard-topbar,.registration-header,.parent-dashboard-header,.attendance-header,.publisher-header,.roster-section-header,.child-detail-top,.screen-authorisation,.recognition-banner{flex-direction:column;align-items:flex-start}.shell,.shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.sidebar{opacity:0;pointer-events:none;visibility:hidden;z-index:60;border:1px solid #eadfc4eb;border-radius:14px;width:min(280px,100vw - 28px);height:auto;max-height:calc(100vh - 84px);padding:16px;transition:opacity .16s,transform .16s,visibility .16s;position:fixed;top:64px;right:14px;overflow:auto;transform:translateY(-8px)scale(.98);box-shadow:0 18px 40px #24312f33}.mobile-nav-open .sidebar{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)scale(1)}.brand{justify-content:flex-start;margin-bottom:14px}.brand-toggle{display:none}.nav a,.nav button{justify-content:flex-start}.shell.sidebar-collapsed .brand-copy{display:grid}.shell.sidebar-collapsed .nav-label{display:inline}.shell.sidebar-collapsed .nav{display:grid}.sidebar-collapsed .brand{justify-content:flex-start}.sidebar-collapsed .nav a,.sidebar-collapsed .nav button{justify-content:flex-start;padding:10px 12px}.mobile-nav-toggle{z-index:70;background:#fffdf8f0;border:1px solid #eadfc4eb;border-radius:999px;justify-content:center;align-items:center;gap:4px;width:42px;height:42px;padding:0;display:inline-flex;position:fixed;top:14px;right:14px;box-shadow:0 12px 26px #24312f1f}.mobile-nav-toggle span{background:var(--ink);border-radius:999px;width:5px;height:5px}.main,.classroom{padding:18px 18px 72px}.teacher-dashboard-actions,.teacher-dashboard-actions .teacher-action-button{width:100%}.teacher-dashboard-actions .teacher-action-button{min-width:0}.teacher-control-sidebar>.teacher-account-card{display:none}.teacher-mobile-account{padding-right:56px;display:block}.teacher-roster.is-avatar-only .avatar-wall-header{padding-right:56px}.modal-header,.landing-modal-header{flex-direction:row;align-items:flex-start;gap:12px}.modal-header>div,.landing-modal-header>div{min-width:0;padding-right:8px}.modal-header .icon-like-button,.landing-modal-close{align-self:flex-start;min-width:54px}.sticker-grid{grid-template-columns:1fr}.parent-register,.parent-dashboard{padding:18px}.parent-task-form,.achievement-goal-form,.parent-status-grid{grid-template-columns:1fr}.parent-task-modal{border-radius:18px;max-height:calc(100vh - 24px);padding:18px}.parent-task-header-actions{width:100%;margin-left:0}.parent-task-card-actions .button{flex:120px}.ops-header,.ops-section-header{flex-direction:column}.ops-metric-grid,.ops-danger-zone{grid-template-columns:1fr}.ops-kpi-board{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-kpi-card{min-height:104px}.ops-code-create,.ops-code-form,.ops-code-grid{grid-template-columns:1fr}.ops-code-card{grid-template-columns:1fr;justify-items:stretch}.ops-code-meta{justify-items:start}.ops-accordion-trigger,.ops-subsection-header{flex-direction:column}.ops-card-summary{justify-content:flex-start}.ops-feedback-card,.ops-feedback-settings,.ops-feedback-settings-form,.ops-row{grid-template-columns:1fr}.admin-topbar{gap:10px;margin-bottom:18px;padding-right:54px}.admin-topbar h1{font-size:clamp(2rem,9vw,2.65rem);line-height:1.05}.admin-stat-row{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.admin-stat-row .stat-pill{border-right:0}.admin-stat-row .stat-pill:nth-child(odd){border-right:1px solid #eadfc4e6}.admin-stat-row .stat-pill:nth-child(-n+2){border-bottom:1px solid #eadfc4e6}.admin-class-panel{padding:0}.admin-class-list{gap:10px}.admin-class-card{gap:12px;padding:14px;display:grid}.admin-class-card .room-card-main{width:100%}.admin-class-card .room-card-actions{justify-content:flex-start;min-width:0}}@media (max-width:1100px){.landing-page{background:linear-gradient(#08182f 0%,#102f55 940px,#fff7e7 941px 100%)}.landing-hero,.landing-summary,.landing-contact{grid-template-columns:1fr}.landing-hero{gap:28px;min-height:0;padding:42px 0 72px}.landing-visual{order:2;min-height:320px}.planet-orbit{max-width:340px}.landing-summary{align-items:start;padding-top:34px}.landing-summary p:last-child{justify-self:start}.landing-contact{padding:42px 0 64px}}@media (max-width:620px){.landing-page{background:linear-gradient(#08182f 0%,#102f55 890px,#fff7e7 891px 100%);padding:16px}.landing-nav{align-items:center}.landing-brand small{max-width:128px}.landing-hero{gap:20px;padding:36px 0 64px}.landing-hero h1{font-size:clamp(2.35rem,12vw,3.55rem)}.landing-intro{font-size:1rem}.landing-actions{display:grid}.landing-primary,.landing-secondary{width:100%}.landing-visual{min-height:280px}.planet-orbit{max-width:260px}.landing-summary{gap:12px;padding-top:30px}.landing-summary h2{font-size:clamp(1.55rem,8vw,2.1rem)}.landing-contact{gap:18px;padding:36px 0 56px}.landing-contact h2{font-size:clamp(1.55rem,8vw,2.1rem)}}@media (max-width:430px){.landing-brand small{display:none}.landing-brand strong{font-size:.98rem}.landing-nav-login{min-height:38px;padding:8px 12px}.landing-actions{gap:10px}}.privacy-page{background:#fff8eb;min-height:100vh;padding:clamp(24px,5vw,72px)}.privacy-page-panel{width:min(880px,100%);margin:0 auto}.privacy-policy-modal{width:min(880px,100vw - 32px);max-height:min(86vh,900px);overflow-y:auto}.privacy-statement h2{margin:24px 0 8px;font-size:1.1rem}.privacy-statement p{line-height:1.65}.registration-consent-note{color:var(--muted);margin:4px 0;font-size:.88rem;line-height:1.45}.inline-link-button{color:var(--accent-strong);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline;display:inline}.privacy-controls{border-top:1px solid var(--line);margin:28px 0;padding-top:24px}.privacy-controls h2{margin:0 0 8px}
