:root{--bg:#f5f6fb;--surface:#fff;--surface-2:#eef0f7;--border:#e2e5ef;--text:#141a2e;--muted:#5d667f;--primary:#4f46e5;--primary-ink:#fff;--primary-soft:#e6e5fd;--good:#0f9d6b;--good-soft:#dcf5ea;--warn:#b26a00;--warn-soft:#fdf0d8;--bad:#d4334a;--bad-soft:#fde4e8;--shadow:0 1px 2px #1018280f, 0 4px 16px #1018280f;--radius:16px;--radius-sm:10px;--nav-h:64px;--safe-b:env(safe-area-inset-bottom,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1020;--surface:#141a2e;--surface-2:#1c2440;--border:#283253;--text:#e8ebf6;--muted:#9aa3be;--primary:#8b85ff;--primary-ink:#0b1020;--primary-soft:#262a5c;--good:#3ed39b;--good-soft:#10352a;--warn:#f5b443;--warn-soft:#3a2c10;--bad:#ff6b81;--bad-soft:#3d1621;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0b1020;--surface:#141a2e;--surface-2:#1c2440;--border:#283253;--text:#e8ebf6;--muted:#9aa3be;--primary:#8b85ff;--primary-ink:#0b1020;--primary-soft:#262a5c;--good:#3ed39b;--good-soft:#10352a;--warn:#f5b443;--warn-soft:#3a2c10;--bad:#ff6b81;--bad-soft:#3d1621;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-palette]{--primary:var(--pal-light);--primary-ink:#fff;--primary-soft:color-mix(in srgb, var(--pal-light) 14%, #fff);--bg:color-mix(in srgb, var(--pal-light) 7%, #f8f9fc);--surface-2:color-mix(in srgb, var(--pal-light) 9%, #f1f3f8);--border:color-mix(in srgb, var(--pal-light) 16%, #e5e7ef)}@media (prefers-color-scheme:dark){:root[data-palette]:not([data-theme=light]){--primary:var(--pal-dark);--primary-ink:#0b1020;--primary-soft:color-mix(in srgb, var(--pal-dark) 22%, #141a2e);--bg:color-mix(in srgb, var(--pal-dark) 8%, #0b1020);--surface:color-mix(in srgb, var(--pal-dark) 7%, #141a2e);--surface-2:color-mix(in srgb, var(--pal-dark) 13%, #1c2440);--border:color-mix(in srgb, var(--pal-dark) 20%, #283253)}}:root[data-palette][data-theme=dark]{--primary:var(--pal-dark);--primary-ink:#0b1020;--primary-soft:color-mix(in srgb, var(--pal-dark) 22%, #141a2e);--bg:color-mix(in srgb, var(--pal-dark) 8%, #0b1020);--surface:color-mix(in srgb, var(--pal-dark) 7%, #141a2e);--surface-2:color-mix(in srgb, var(--pal-dark) 13%, #1c2440);--border:color-mix(in srgb, var(--pal-dark) 20%, #283253)}:root[data-palette] body{font-family:var(--pal-font)}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60vw 60vw at 12% -8%, color-mix(in srgb, var(--primary) 16%, transparent), transparent 60%), radial-gradient(50vw 50vw at 100% 0%, color-mix(in srgb, var(--primary) 10%, transparent), transparent 55%), radial-gradient(45vw 45vw at 88% 108%, color-mix(in srgb, var(--good) 10%, transparent), transparent 60%);position:fixed;inset:0}h1,h2,h3{margin:0 0 .35em;line-height:1.2}h1{letter-spacing:-.01em;font-size:1.6rem}h2{font-size:1.1rem}p{margin:0 0 .75em}a{color:var(--primary)}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.grow{flex:1;min-width:0}.mono{font-family:ui-monospace,Cascadia Code,Menlo,monospace}.hidden{display:none!important}.error{color:var(--bad);font-weight:500}.good-text{color:var(--good);font-weight:500}.notice{background:var(--warn-soft);color:var(--text);border-radius:var(--radius-sm);padding:10px 14px}.stack{flex-direction:column;gap:14px;display:flex}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.with-icon{align-items:center;gap:8px;display:flex}.wide-only{display:none}@media (width>=640px){.wide-only{display:inline}.narrow-only{display:none}}label{flex-direction:column;gap:6px;font-size:.95rem;font-weight:500;display:flex}input,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:48px;padding:12px 14px}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb, var(--primary) 45%, transparent);outline-offset:2px}input[type=time]{width:auto;min-width:7.5em;min-height:42px;padding:8px 10px}fieldset{border:0;margin:0;padding:0}legend{margin-bottom:6px;font-size:.95rem;font-weight:500}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;text-decoration:none;transition:background .15s,transform 50ms;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn.primary:hover:not(:disabled){background:color-mix(in srgb, var(--primary) 88%, black)}.btn.big{min-height:54px;padding:0 24px;font-size:1.05rem}.btn.small{min-height:34px;padding:0 12px;font-size:.9rem}.btn.wide{width:100%;margin-top:12px}.btn.danger-text{color:var(--bad)}.icon-btn{width:40px;height:40px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-2)}.link-btn{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:4px 0;font-size:.9rem;font-weight:500;display:inline-flex}.chip{border:1px solid var(--border);background:var(--surface);min-height:38px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:.9rem;font-weight:500;display:inline-flex}.chip.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.chip.danger{color:var(--bad)}.chip:disabled{opacity:.45;cursor:default}.segmented{background:var(--surface-2);scrollbar-width:none;border-radius:999px;gap:2px;max-width:100%;padding:4px;display:inline-flex;overflow-x:auto}.segmented::-webkit-scrollbar{display:none}.segmented button:disabled{opacity:.45;cursor:not-allowed}.segmented button{color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;flex:none;padding:8px 14px;font-size:.9rem;font-weight:600}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.collapsible{padding:0}.collapsible-head{cursor:pointer;text-align:left;width:100%;color:var(--text);border-radius:var(--radius);background:0 0;border:0;align-items:center;gap:10px;padding:16px 18px;display:flex}.collapsible.open .collapsible-head{border-radius:var(--radius) var(--radius) 0 0}.collapsible-head:hover{background:var(--surface-2)}.collapsible-title{align-items:center;gap:8px;font-size:1.05rem;font-weight:600;display:flex}.collapsible-head .chevron{color:var(--muted);flex:none;transition:transform .15s}.collapsible-head .chevron.open{transform:rotate(90deg)}.collapsible-body{padding:2px 18px 18px}.badge{border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:600;display:inline-block}.badge.school{background:var(--good-soft);color:var(--good)}.badge.break{background:var(--warn-soft);color:var(--warn)}.badge.free{background:var(--surface-2);color:var(--muted)}.dot{background:var(--border);border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.dot.on{background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}.avatar{color:#fff;border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid}.logo{letter-spacing:-.01em;color:var(--text);align-items:center;gap:10px;font-weight:700;display:inline-flex}.logo img{border-radius:8px}.logo.large{margin-bottom:8px;font-size:1.3rem}.shell{min-height:100dvh}.topbar{z-index:20;padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);align-items:center;gap:16px;display:flex;position:sticky;top:0}.topbar-home{text-decoration:none}.topnav{gap:4px;margin-left:auto;display:none}.topnav a{color:var(--muted);border-radius:999px;padding:8px 14px;font-weight:600;text-decoration:none}.topnav a.active{color:var(--text);background:var(--surface-2)}.offline-pill{color:var(--warn);background:var(--warn-soft);border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.topnav+.offline-pill{margin-left:0}.content{padding:16px 16px calc(var(--nav-h) + var(--safe-b) + 24px);max-width:1100px;margin:0 auto}.bottomnav{z-index:20;height:calc(var(--nav-h) + var(--safe-b));padding-bottom:var(--safe-b);background:var(--surface);border-top:1px solid var(--border);display:flex;position:fixed;bottom:0;left:0;right:0}.bottomnav a{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.75rem;font-weight:600;text-decoration:none;display:flex}.bottomnav a.active{color:var(--primary)}@media (width>=800px){.topnav{display:flex}.bottomnav{display:none}.content{padding:28px 24px 48px}}.page{flex-direction:column;gap:16px;display:flex}.page.narrow{max-width:640px;margin:0 auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.page-head p{margin:0}.center-page{place-content:center;justify-items:center;gap:12px;min-height:100dvh;padding:24px;display:grid}.auth{background:radial-gradient(1200px 500px at 10% -10%, color-mix(in srgb, var(--primary) 18%, transparent), transparent), var(--bg);place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.auth-card{width:100%;max-width:420px;padding:28px 24px}.auth-card h1{margin-top:12px}.code-input{letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.8rem}.page-head-actions{flex-wrap:wrap;justify-content:flex-end}.theme-picker{position:relative}.theme-picker-button{gap:6px}.theme-menu{z-index:60;width:min(340px,100vw - 32px);padding:12px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 40px #10182838}@media (width<=560px){.theme-menu{width:auto;position:fixed;top:72px;left:16px;right:16px}}.theme-picker-button.compact{padding:0 12px;font-size:1.05rem}.student-tabs button{font-family:inherit}.theme-menu-title{margin:2px 4px 10px;font-weight:700}.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.theme-card{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:8px;font-size:.92rem;font-weight:600;display:flex}.theme-card:hover{border-color:var(--primary)}.theme-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 35%, transparent)}.theme-swatch{border-radius:10px;flex:none;place-items:center;width:34px;height:34px;font-size:1.05rem;display:grid}.theme-card-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.theme-check{color:var(--primary);flex:none}.logo-link{color:inherit;text-decoration:none}.landing{background:radial-gradient(1100px 520px at 0% -10%, color-mix(in srgb, var(--primary) 20%, transparent), transparent), radial-gradient(900px 480px at 110% 10%, color-mix(in srgb, var(--good) 12%, transparent), transparent), var(--bg);min-height:100dvh}.landing main{flex-direction:column;gap:56px;max-width:1120px;margin:0 auto;padding:0 16px 48px;display:flex}.landing-nav{justify-content:space-between;align-items:center;gap:12px;max-width:1120px;margin:0 auto;padding:16px;display:flex}.landing-nav .btn{min-height:40px;padding:0 14px}.landing-hero{text-align:center;flex-direction:column;align-items:center;gap:18px;padding-top:40px;display:flex}.landing-eyebrow{background:var(--primary-soft);color:var(--primary);border-radius:999px;align-items:center;gap:8px;margin:0;padding:6px 14px;font-size:.9rem;font-weight:600;display:inline-flex}.landing-hero h1{letter-spacing:-.02em;max-width:820px;margin:0;font-size:clamp(2rem,6vw,3.6rem);line-height:1.08}.landing-lead{max-width:720px;margin:0;font-size:clamp(1.1rem,2.6vw,1.3rem)}.landing-sublead{max-width:640px;color:var(--muted);margin:0;font-size:1.05rem}.landing-accent{color:var(--primary)}.landing-cta{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.landing-value{border-radius:var(--radius);text-align:center;background:linear-gradient(135deg, var(--primary-soft), color-mix(in srgb, var(--good-soft) 70%, var(--surface)));border:1px solid var(--border);padding:36px 24px}.landing-value h2{letter-spacing:-.01em;margin:0 auto 14px;font-size:clamp(1.5rem,4vw,2.2rem)}.landing-value p{max-width:680px;margin:0 auto 12px;font-size:1.08rem}.landing-value p:last-child{margin-bottom:0}.landing-value-strong{font-weight:700;font-size:1.15rem!important}.landing-section{flex-direction:column;gap:20px;scroll-margin-top:16px;display:flex}.landing-section-title{text-align:center;letter-spacing:-.01em;margin:0;font-size:clamp(1.5rem,4vw,2.2rem)}.landing-tour-sub{text-align:center;margin:-8px 0 0}.landing-tour-tabs{scrollbar-width:thin;gap:8px;max-width:100%;margin:0 auto;padding:2px 2px 6px;display:flex;overflow-x:auto}@media (width>=900px){.landing-tour-tabs{flex-wrap:wrap;justify-content:center}}.landing-tour-tabs button{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:7px;padding:0 14px;font-weight:600;display:inline-flex}.landing-tour-tabs button.active{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.landing-tour-panel{flex-direction:column;gap:16px;display:flex}.landing-frame{border:1px solid var(--border);background:var(--surface);border-radius:14px;overflow:hidden;box-shadow:0 2px 6px #10182814,0 24px 60px -12px #10182840}.landing-frame-bar{background:var(--surface-2);border-bottom:1px solid var(--border);gap:6px;padding:10px 14px;display:flex}.landing-frame-bar span{background:#ff5f57;border-radius:50%;width:11px;height:11px}.landing-frame-bar span:nth-child(2){background:#febc2e}.landing-frame-bar span:nth-child(3){background:#28c840}.landing-frame img{width:100%;height:auto;display:block}.landing-tour-caption{text-align:center;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;max-width:760px;margin:0 auto;display:grid}.landing-tour-caption h3{margin:0 0 4px;font-size:1.15rem}.landing-tour-caption p{margin:0}.landing-pillars{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=760px){.landing-pillars{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1000px){.landing-pillars.three{grid-template-columns:repeat(3,minmax(0,1fr))}}.landing-pillar{padding:24px}.landing-pillar h3{margin:14px 0 8px;font-size:1.15rem}.landing-pillar>h3:first-child{margin-top:0}.landing-pillar p{margin:0 0 12px}.landing-pillar p:last-child{margin:12px 0 0}.landing-icon{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:10px;flex:none;place-items:center;display:inline-grid}.landing-icon.big{border-radius:13px;width:46px;height:46px}.landing-points{gap:6px;margin:0;padding-left:1.2rem;display:grid}.landing-soon{background:var(--warn-soft);color:var(--warn);white-space:nowrap;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.75rem;font-weight:600}.landing-split{grid-template-columns:1fr;align-items:center;gap:20px;display:grid}@media (width>=860px){.landing-split{grid-template-columns:1.1fr 1fr;gap:40px}}.landing-split h2{align-items:center;gap:10px;margin:0 0 12px;font-size:clamp(1.4rem,3.6vw,2rem);display:flex}.landing-split p{margin:0 0 10px}.landing-full{text-align:center;padding:28px 24px}.landing-full h2{margin:0 0 8px;font-size:clamp(1.4rem,3.6vw,2rem)}.landing-full>p{max-width:620px;margin:0 auto 18px}.landing-checks{text-align:left;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;max-width:820px;margin:0 auto;padding:0;list-style:none;display:grid}@media (width>=820px){.landing-checks{grid-template-columns:repeat(4,minmax(0,1fr))}}.landing-checks li{align-items:baseline;gap:8px;font-weight:600;display:flex}.landing-final{text-align:center;flex-direction:column;align-items:center;gap:14px;display:flex}.landing-final h2{margin:0;font-size:clamp(1.4rem,4vw,2rem)}.landing-final p{max-width:640px;margin:0}.landing-final-line{font-size:clamp(1.25rem,3.4vw,1.7rem);font-weight:700;line-height:1.25}.landing-footer{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;max-width:1120px;margin:0 auto;padding:24px 16px 40px;display:flex}.summary-row{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width>=720px){.summary-row{grid-template-columns:repeat(3,1fr)}}@media (width>=1100px){.summary-row{grid-template-columns:repeat(6,1fr)}}.summary-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.summary-tile-icon{width:34px;height:34px;color:var(--primary);background:var(--primary-soft);border-radius:10px;justify-content:center;align-items:center;margin-bottom:4px;display:inline-flex}.summary-tile.good .summary-tile-icon{color:var(--good);background:var(--good-soft)}button.summary-tile.clickable{font:inherit;color:inherit;text-align:left;cursor:pointer}button.summary-tile.clickable:hover{border-color:var(--primary)}.summary-tile.attention{border-color:var(--warn)}.summary-tile.attention .summary-tile-icon{color:var(--warn);background:var(--warn-soft)}.inbox-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.inbox-row{border:0;border-top:1px solid var(--border);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:12px 4px;display:flex}.inbox-list>li:first-child .inbox-row,.inbox-list>li.inbox-row:first-child{border-top:none}.inbox-row.static{cursor:default;flex-wrap:wrap}.inbox-count{background:var(--warn);color:#fff;text-align:center;border-radius:999px;min-width:20px;padding:0 6px;font-size:12px;font-weight:700;display:inline-block}.inbox-preview{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.summary-tile-value{font-size:1.5rem;font-weight:700;line-height:1.1}.summary-tile-label{color:var(--muted);font-size:.85rem}.activity-feed .timeline{margin-top:4px}.feed-chip{color:var(--kid,var(--primary));background:color-mix(in srgb, var(--kid,var(--primary)) 14%, transparent);white-space:nowrap;border-radius:999px;flex:none;padding:2px 9px;font-size:.72rem;font-weight:600}.feed-time{flex:none}@media (width<=520px){.feed-time{display:none}}.setting-warn{border:1px solid var(--warn);background:color-mix(in srgb, var(--warn) 12%, transparent);border-radius:10px;margin:4px 0 12px;padding:10px 12px;font-size:.88rem;line-height:1.5}.kid-grid{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=720px){.kid-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1040px){.kid-grid{grid-template-columns:repeat(3,1fr)}}.kid{border-top:4px solid var(--kid);flex-direction:column;gap:14px;display:flex}.kid-head{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.kid-head h2{margin:0 0 4px}.device-lines{flex-direction:column;gap:8px;margin:0;padding:0;font-size:.95rem;list-style:none;display:flex}.device-lines li{align-items:center;gap:10px;display:flex}.kid-foot{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.actions{flex-wrap:wrap;gap:8px;display:flex}.sharing{align-items:center;gap:6px;display:inline-flex}.sharing .on{color:var(--good)}.sharing .off{color:var(--border)}.empty{text-align:left}.steps{flex-direction:column;gap:8px;margin:8px 0 16px;padding-left:1.3em;display:flex}.child-head{align-items:center;gap:12px;display:flex}.child-head h1{margin-bottom:4px}.child-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.child-bar .segmented{overflow-x:auto}.tabs{scrollbar-width:none;border-bottom:1px solid var(--border);gap:4px;margin:0 -16px;padding:0 16px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs a{color:var(--muted);white-space:nowrap;border-bottom:3px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:600;text-decoration:none}.tabs a.active{color:var(--primary);border-bottom-color:var(--primary)}.live{flex-direction:column;gap:12px;display:flex}.live-meta{justify-content:space-between;align-items:center;font-weight:500;display:flex}.live-meta>span:first-child{align-items:center;gap:8px;display:inline-flex}.device-picker{gap:8px;display:flex;overflow-x:auto}.stage{aspect-ratio:16/10;border-radius:var(--radius);border:1px solid var(--border);background:#05070f;position:relative;overflow:hidden}.stage:fullscreen{border:0;border-radius:0}.stage .screen{object-fit:contain;width:100%;height:100%;display:block}.stage .cam,.stage .self{aspect-ratio:4/3;object-fit:cover;background:#111;border:2px solid #fffc;border-radius:12px;width:26%;min-width:96px;max-width:220px;position:absolute;box-shadow:0 4px 16px #0006}.stage .cam{bottom:10px;right:10px}.stage .self{width:18%;bottom:10px;left:10px;transform:scaleX(-1)}.stage-cover{text-align:center;color:#d8dcf0;background:radial-gradient(circle at 50% 40%,#1b2142,#05070f);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.stage-relay-btn{color:#fff;background:#ffffff26;border:1px solid #ffffff59;padding:2px 10px;font-size:.78rem}.stage-note{color:#fff;white-space:nowrap;background:#000000a6;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:.85rem;display:inline-flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.stage-full{color:#fff;background:#00000080;position:absolute;top:8px;right:8px}.live-controls{flex-direction:column;gap:10px;display:flex}.control-row{flex-wrap:wrap;gap:8px;display:flex}.btn.talk{background:var(--primary-soft);border-color:var(--primary);min-height:60px;color:var(--primary);touch-action:none;-webkit-user-select:none;-webkit-touch-callout:none;font-size:1.1rem}.btn.talk.active{background:var(--primary);color:var(--primary-ink);box-shadow:0 0 0 6px color-mix(in srgb, var(--primary) 25%, transparent)}@media (width>=800px){.live-controls{flex-direction:row;align-items:center}.btn.talk{min-width:220px}}.filters{gap:8px;margin-bottom:12px;display:flex;overflow-x:auto}.timeline{margin:0;padding:0;list-style:none}.timeline .day{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:14px 0 6px;font-size:.8rem;font-weight:700}.event{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:10px 0;display:flex}.event-title{overflow-wrap:anywhere}.event-icon{background:var(--surface-2);width:32px;height:32px;color:var(--muted);border-radius:50%;flex:none;place-items:center;display:grid}.event.event-alert .event-icon{background:var(--bad-soft);color:var(--bad)}.event.event-answer .event-icon,.event.event-checkin .event-icon{background:var(--primary-soft);color:var(--primary)}.event.event-watch .event-icon,.event.event-session .event-icon{background:var(--good-soft);color:var(--good)}.event.event-request .event-icon{background:var(--warn-soft);color:var(--warn)}.week{flex-direction:column;display:flex}.day-row{border-bottom:1px solid var(--border);gap:12px;padding:12px 0;display:flex}.day-name{flex:none;width:48px;padding-top:8px;font-weight:600}@media (width>=640px){.day-name{width:110px}}.day-blocks{flex-direction:column;flex:1;gap:8px;display:flex}.day-blocks>.muted{padding-top:8px}.block{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.day-tools{flex-wrap:wrap;gap:16px;display:flex}.save-bar{bottom:calc(var(--nav-h) + var(--safe-b) + 8px);justify-content:flex-end;padding-top:12px;display:flex;position:sticky}@media (width>=800px){.save-bar{bottom:12px}}.inline-form{gap:8px;margin:10px 0;display:flex}.inline-form input{flex:1}.pills{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pill{background:var(--surface-2);border-radius:999px;align-items:center;gap:4px;padding:4px 4px 4px 12px;font-weight:500;display:inline-flex}.pill button{width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.pill button:hover{background:var(--border)}.pill.fixed{color:var(--muted);cursor:help;padding:6px 12px}.suggest{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;display:flex}.suggest .chip{min-height:32px;font-size:.85rem}.device-list{margin:0;padding:0;list-style:none}.device-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 0;display:flex}.device-list li>.grow{min-width:45%}.device-list li:last-child{border-bottom:0}.device-icon{background:var(--surface-2);border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.update-note{color:var(--primary);flex-basis:100%;font-size:.82rem;font-weight:600}.update-progress{flex-basis:100%}.update-progress .small{color:var(--muted);margin-top:3px}.update-progress.error .small{color:var(--bad)}.update-progress.uptodate .small{color:var(--good)}.update-bar{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.update-bar>span{background:var(--primary);border-radius:999px;height:100%;transition:width .3s;display:block}.update-progress.installing .update-bar>span{background:linear-gradient(90deg, var(--primary) 25%, var(--primary-soft) 50%, var(--primary) 75%);background-size:200% 100%;animation:1.1s linear infinite update-stripe}@keyframes update-stripe{0%{background-position:200% 0}to{background-position:0 0}}.pair-download{margin-bottom:16px}.pair-download .btn.primary.big{width:100%}.pair-download p{margin:8px 2px 0}.pair-setup-email{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.pair-setup-email p{margin:8px 2px 0}.code-box{text-align:center;background:var(--primary-soft);border-radius:var(--radius);padding:16px}.code{letter-spacing:.12em;color:var(--primary);font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:800}.colors{flex-wrap:wrap;gap:10px;display:flex}.colors legend{width:100%}.swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:36px;height:36px}.swatch.picked{border-color:var(--surface);box-shadow:0 0 0 2px var(--text)}.sheet-backdrop{z-index:50;background:#0508148c;justify-content:center;align-items:flex-end;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:520px;max-height:90dvh;padding:18px 18px calc(18px + var(--safe-b));border-radius:22px 22px 0 0;animation:.2s ease-out rise;overflow-y:auto}@media (width>=640px){.sheet-backdrop{align-items:center}.sheet{border-radius:22px;padding-bottom:22px}}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.sheet-head h2{margin:0}.quick-list{flex-direction:column;gap:8px;margin:8px 0;display:flex}.quick{text-align:left;font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;padding:14px 16px;font-weight:500}.quick:hover{border-color:var(--primary)}.grid-buttons{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.toasts{z-index:60;left:12px;right:12px;bottom:calc(var(--nav-h) + var(--safe-b) + 12px);pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed}@media (width>=800px){.toasts{align-items:flex-end;bottom:24px;left:auto;right:24px}}.toast{pointer-events:auto;background:var(--text);width:100%;max-width:420px;color:var(--bg);border-radius:14px;align-items:center;gap:10px;padding:10px 8px 10px 16px;animation:.2s ease-out rise;display:flex;box-shadow:0 8px 30px #00000040}.toast>span{flex:1}.toast.alert{background:var(--bad);color:#fff}.toast.good{background:var(--good);color:#fff}.toast .icon-btn:hover{background:#ffffff26}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}@keyframes fade{0%{opacity:0}}.agent{min-height:100dvh}.agent-banner{z-index:30;color:#fff;text-align:center;background:#475069;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:12px 16px;font-weight:700;display:flex;position:sticky;top:0}.agent-banner.sharing{background:var(--good)}.agent-banner.watching{background:#d4334a;animation:2s ease-in-out infinite pulse}.agent-banner.break{background:#b26a00}.banner-note{opacity:.85;font-weight:500}@keyframes pulse{50%{background:#b0243a}}@media (prefers-reduced-motion:reduce){.agent-banner.watching{animation:none}}.talking-banner{background:var(--primary);color:#fff;justify-content:center;align-items:center;gap:10px;padding:10px 16px;font-weight:700;display:flex}.agent-body{flex-direction:column;gap:16px;max-width:720px;margin:0 auto;padding:20px 16px 40px;display:flex}.agent-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.agent-card{border-top:4px solid var(--kid,var(--primary));flex-direction:column;gap:14px;display:flex}.share-list{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.share-list li{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted);align-items:center;gap:10px;padding:10px 12px;font-weight:500;display:flex}.share-list li.on{background:var(--good-soft);color:var(--good)}.agent-media{flex-wrap:wrap;gap:12px;display:flex}.agent-media figure{width:240px;max-width:100%;margin:0}.agent-media video{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm);background:#111;width:100%}.agent-media .mirror{transform:scaleX(-1)}.agent-media figcaption{color:var(--muted);margin-top:4px;font-size:.85rem}.checkin h2{margin-bottom:12px;font-size:1.4rem}.kid-foot{grid-template-columns:repeat(3,1fr);display:grid}.kid-foot .actions.compact{display:contents}.kid-foot .btn{padding:0 10px}@media (width<=420px){.kid-foot .btn svg{display:none}}.block input[type=time]{flex:1;min-width:0;max-width:10em}.block{flex-wrap:nowrap}.save-bar{background:linear-gradient(to bottom, transparent, var(--surface) 35%);border-radius:0 0 var(--radius) var(--radius);margin:0 -18px -18px;padding:20px 18px 18px}.chip{white-space:nowrap;flex:none}@media (width<=520px){.day-row{flex-direction:column;gap:6px}.day-name{width:auto;padding-top:0}.block input[type=time]{max-width:none}}.block input[type=time]{padding:8px 6px 8px 10px}textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;width:100%;padding:12px 14px}.inline-icon{vertical-align:-3px;color:var(--primary)}.block{font-weight:400;display:block}label.check{flex-direction:row;align-items:flex-start;gap:12px}label.check input{width:22px;height:22px;min-height:22px;accent-color:var(--primary);flex:none;margin-top:1px}.notify-matrix{border:1px solid var(--border);border-radius:10px;flex-direction:column;margin:8px 0;display:flex;overflow:hidden}.notify-row{border-top:1px solid var(--border);grid-template-columns:1fr 5.5rem 7rem;align-items:center;gap:8px;padding:10px 14px;display:grid}.notify-row:first-child{border-top:none}.notify-head{background:var(--surface-2,#7f7f7f14);color:var(--muted);font-size:.8rem;font-weight:600}.notify-head span:not(:first-child),.notify-cell{text-align:center;justify-self:center}.notify-cell input{width:22px;height:22px;min-height:22px;accent-color:var(--primary)}.notify-device{margin-top:8px}.narrow-col{max-width:640px}.admin-stats{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width>=720px){.admin-stats{grid-template-columns:repeat(4,1fr)}}.admin-stat{padding:14px 16px}.admin-stat-value{color:var(--primary);font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:800}.admin-family h2{margin:0}.admin-child{border-radius:var(--radius-sm);background:var(--surface-2);padding:10px 12px}.admin-child-name{margin-bottom:4px;font-weight:700}.admin-devices{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.admin-devices li{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-presence{color:var(--muted);font-size:.8rem}.admin-presence.on{color:var(--good);font-weight:600}.admin-env{grid-template-columns:max-content 1fr;gap:8px 16px;margin:0;display:grid}.admin-env dt{color:var(--muted)}.admin-env dd{word-break:break-all;margin:0}.admin-audit{margin:0;padding:0;list-style:none}.admin-audit li{border-bottom:1px solid var(--border);padding:10px 0}.admin-audit li:last-child{border-bottom:0}.impersonation-bar{z-index:30;background:var(--warn-soft);color:var(--warn);border-bottom:1px solid color-mix(in srgb, var(--warn) 35%, transparent);align-items:center;gap:10px;padding:10px 16px;font-size:.92rem;display:flex;position:sticky;top:0}.install-bar{z-index:29;background:color-mix(in srgb, var(--primary) 12%, var(--bg));color:var(--text);border-bottom:1px solid color-mix(in srgb, var(--primary) 35%, transparent);align-items:center;gap:10px;padding:10px 16px;font-size:.92rem;display:flex;position:sticky;top:0}.install-bar .grow{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.install-steps{flex-direction:column;gap:10px;margin:0;padding-left:1.3rem;line-height:1.4;display:flex}.install-steps li{padding-left:4px}.narrow-col .save-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip.static{cursor:default;min-height:32px;font-size:.85rem}.field-label{margin-bottom:6px;font-size:.95rem;font-weight:500}.admin-family-group>.family-toggle .family-name{font-size:1.05rem;font-weight:700}.admin-family-group .admin-family{background:var(--surface-2)}.admin-invite{border:1px dashed var(--border);border-radius:var(--radius-sm);padding:8px 10px}.form-row{flex-wrap:wrap;gap:12px;display:flex}.form-row>.grow{min-width:200px}.w-port{width:110px}.tag{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.tag.bug{background:var(--bad-soft);color:var(--bad)}.tag.feature,.tag.restart{background:var(--primary-soft);color:var(--primary)}.tag.good{background:var(--good-soft);color:var(--good)}h2 .tag{vertical-align:3px;margin-left:6px}.pre{white-space:pre-wrap;margin:0}.feedback-card h2{margin:0}.feedback-list{margin:0;padding:0;list-style:none}.feedback-list li{border-bottom:1px solid var(--border);padding:12px 0}.feedback-list li:last-child{border-bottom:0}.segmented button{align-items:center;gap:6px;display:inline-flex}.admin-manage{border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:14px}.admin-manage .field-label{margin:4px 0 -4px}.admin-family.suspended>.row-between h2,.admin-family.suspended .admin-child{opacity:.6}.admin-child .row-between{gap:8px}.link-result input{min-height:38px;padding:6px 10px}.btn.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.qr{border-radius:var(--radius-sm);background:#fff;align-self:flex-start;padding:8px}.recovery-codes{background:var(--surface-2);border-radius:var(--radius-sm);letter-spacing:.04em;grid-template-columns:repeat(2,1fr);gap:4px 16px;margin:0;padding:12px 14px;font-family:ui-monospace,Cascadia Code,Menlo,monospace;font-size:1rem;list-style:none;display:grid}.family-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:12px 14px}.family-card-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.family-members{flex-direction:column;gap:6px;margin:0 0 10px;padding:0;list-style:none;display:flex}.family-members li{align-items:center;gap:8px;display:flex}.family-members li.pending{opacity:.8}.family-members li.family-member{flex-direction:column;align-items:stretch;gap:6px}.member-access{flex-wrap:wrap;align-items:center;gap:8px;padding-left:2px;display:flex}.access-chip{border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:.85rem;display:inline-flex}.access-chip input{width:auto;margin:0}.owner-icon{color:var(--warn);vertical-align:-2px;margin-left:4px}.terms-text{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);max-height:55dvh;color:var(--text);padding:12px 14px;font-size:.92rem;line-height:1.5;overflow-y:auto}.sheet-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.link-btn.inline{font-size:inherit;padding:0;text-decoration:underline;display:inline}.pause-box{flex-direction:column;gap:10px;padding:14px 0 4px;display:flex}.pause-dates{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pause-dates select{width:auto}.account-menu{margin-left:auto;position:relative}.account-btn{cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;padding:4px;display:flex}.account-avatar{background:var(--primary-soft);width:34px;height:34px;color:var(--primary);border-radius:50%;place-items:center;font-size:.85rem;font-weight:700;display:grid}.account-pop{z-index:40;flex-direction:column;gap:2px;min-width:220px;padding:8px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.account-who{border-bottom:1px solid var(--border);flex-direction:column;margin-bottom:4px;padding:8px 10px 10px;display:flex}.account-pop button{color:var(--text);font:inherit;text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:10px;display:flex}.account-pop button:hover{background:var(--surface-2)}.account-menu .account-btn .narrow-only{display:none}.family-head{cursor:pointer;align-items:center;gap:10px}.family-head .chevron{color:var(--muted);flex:none;transition:transform .15s}.family-head .chevron.open{transform:rotate(90deg)}.about-hero{text-align:center;align-items:center}.help-list{flex-direction:column;gap:8px;margin:0;padding-left:18px;display:flex}.family-toggle{cursor:pointer;text-align:left;color:var(--text);font:inherit;background:0 0;border:0;align-items:center;gap:10px;padding:2px 0;display:flex}.family-name{flex-wrap:wrap;align-items:center;gap:6px;font-size:1.05rem;font-weight:700;display:inline-flex}.pointer-layer{cursor:crosshair;touch-action:none;position:absolute;inset:0}.pointer-spot{pointer-events:none;--pointer-size:18px;position:absolute;transform:translate(-50%,-50%)}.pointer-spot.small{--pointer-size:12px}.pointer-spot.large{--pointer-size:28px}.pointer-spot.dot{width:var(--pointer-size);height:var(--pointer-size);background:var(--pointer);box-shadow:0 0 10px 3px var(--pointer);border-radius:50%}.pointer-spot.ring{width:calc(var(--pointer-size) * 1.6);height:calc(var(--pointer-size) * 1.6);border:3px solid var(--pointer);box-shadow:0 0 8px var(--pointer);border-radius:50%}.pointer-spot.arrow{border-left:calc(var(--pointer-size) * .6) solid transparent;border-right:calc(var(--pointer-size) * .6) solid transparent;border-bottom:calc(var(--pointer-size) * 1.4) solid var(--pointer);width:0;height:0;filter:drop-shadow(0 0 4px var(--pointer));transform-origin:top;transform:rotate(-30deg);translate:calc(var(--pointer-size) * -.6) 0}.pointer-options{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pointer-options .swatches{gap:8px;display:flex}.pointer-options .swatch{width:30px;height:30px}label.check.compact{align-items:center;gap:8px}@media (width>=800px){.live-controls{flex-wrap:wrap}.live-controls>.muted,.live-controls>.pointer-options{flex-basis:100%}}.report-controls{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:14px;padding:14px 16px;display:flex}.report-controls label{min-width:160px}.report-controls .segmented{flex:auto}.report-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px;display:grid}.report-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.report-stat.warn{border-color:var(--warn)}button.report-stat{text-align:left;width:100%;font:inherit;cursor:pointer;transition:border-color .12s,transform .12s,box-shadow .12s;display:block}button.report-stat:hover{border-color:var(--primary)}button.report-stat:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.report-stat.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}.report-drill-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.report-drill-head h2{margin:0}.report-drill-count{border:1px solid var(--border);border-radius:999px;margin-left:8px;padding:1px 8px}.report-items{flex-direction:column;max-height:360px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.report-items li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:8px 2px;display:flex}.report-items li:last-child{border-bottom:none}.report-item-primary{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.report-item-secondary{white-space:nowrap;flex:none}.report-stat-icon{color:var(--muted)}.report-stat.warn .report-stat-icon{color:var(--warn)}.report-stat-value{margin-top:4px;font-size:1.6rem;font-weight:700}.report-stat-label{color:var(--muted);font-size:.85rem}.report-sites{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.report-sites li{grid-template-columns:minmax(0,1fr) 2fr auto;align-items:center;gap:10px;display:grid}.report-site-host{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.report-bar{background:var(--primary);border-radius:999px;min-width:4px;height:10px}.report-table-wrap{overflow-x:auto}.report-table{border-collapse:collapse;width:100%;font-size:.9rem}.report-table th,.report-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px}.report-table th{color:var(--muted);font-weight:600}.warn-text{color:var(--warn);font-weight:600}.attendance-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.attendance-list li{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:6px 2px;display:flex}.attendance-badge{text-align:center;border-radius:999px;min-width:68px;padding:2px 10px;font-size:.78rem;font-weight:600}.attendance-badge.present{background:var(--good-soft);color:var(--good)}.attendance-badge.absent{background:var(--bug-soft,#dc26261f);color:var(--warn)}.attendance-hours{font-variant-numeric:tabular-nums;font-weight:700}.attendance-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:0}.subject-custom{align-items:center;gap:8px;display:flex}.subject-custom input{flex:1;min-width:0}.family-schedule-note{background:var(--primary-soft);color:var(--text);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:12px;padding:10px 12px;display:flex}.family-schedule-note>svg{color:var(--primary);flex:none}.family-push-list{flex-wrap:wrap;gap:8px;display:flex}.family-push-list .chip .dot{border-radius:50%;width:10px;height:10px}.landing-footer-link{color:inherit;margin-left:auto}.legal-page{background:var(--bg);min-height:100vh}.legal-head{max-width:760px;margin:0 auto;padding:20px 16px 0}.legal-body{max-width:760px;margin:0 auto;padding:16px 16px 48px;line-height:1.65}.legal-body h1{margin-bottom:4px}.legal-body h2{margin-top:32px;font-size:1.25rem}.legal-body h3{margin-top:20px;font-size:1.05rem}.legal-body ul{padding-left:22px}.legal-body li{margin:6px 0}.whiteboard{flex-direction:column;gap:10px;display:flex}.whiteboard-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wb-color{border:2px solid var(--border);cursor:pointer;border-radius:50%;width:26px;height:26px;padding:0}.wb-color.active{border-color:var(--text);box-shadow:0 0 0 2px var(--primary-soft)}.wb-tool{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font:inherit;color:var(--text);align-items:center;gap:5px;padding:5px 10px;font-size:.85rem;display:inline-flex}.wb-tool.active{background:var(--primary-soft);color:var(--primary);border-color:var(--primary)}.wb-width{width:90px}.whiteboard-canvas-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);touch-action:none;background:#fff;width:100%;height:min(60vh,520px);position:relative;overflow:hidden}.whiteboard-canvas-wrap canvas{cursor:crosshair;width:100%;height:100%;display:block}.whiteboard-sheet{width:min(900px,96vw);max-width:96vw}.sub-section{border-top:1px solid var(--border);padding-top:4px}.sub-section h3{margin:0;font-size:1rem}.row-gap{align-items:center;gap:6px;display:inline-flex}.list-row{border-top:1px solid var(--border);gap:10px;padding:8px 0}.list-row .break{overflow-wrap:anywhere}.code-field{background:var(--surface-2);border-radius:var(--radius-sm);gap:8px;padding:8px}.code-field code{overflow-wrap:anywhere;font-size:.85rem}.callout{border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:8px;padding:12px;display:flex}.callout.good{background:var(--good-soft);border:1px solid var(--good)}.new-form>summary{cursor:pointer;width:fit-content;list-style:none;display:inline-flex}.new-form>summary::-webkit-details-marker{display:none}.new-form[open]>summary{margin-bottom:10px}.chat{flex-direction:column;gap:10px;display:flex}.chat-log{flex-direction:column;gap:6px;max-height:min(55vh,420px);padding:4px;display:flex;overflow-y:auto}.chat-empty{text-align:center;margin:auto}.chat-msg{flex-direction:column;max-width:82%;display:flex}.chat-msg.me{align-self:flex-end;align-items:flex-end}.chat-msg.them{align-self:flex-start;align-items:flex-start}.chat-name{color:var(--muted);margin:0 8px 1px;font-size:.72rem}.chat-bubble{background:var(--surface-2);overflow-wrap:anywhere;white-space:pre-wrap;border-radius:14px;padding:8px 12px;line-height:1.35}.chat-msg.me .chat-bubble{background:var(--primary);color:var(--primary-ink)}.chat-input{gap:8px;display:flex}.chat-input input{flex:1;min-width:0}.agent-chat-title{margin:0}.field-row{gap:12px;display:flex}.field-row>label{flex:1;min-width:0}.report-profile{margin-top:-4px}.report-controls .export-row{align-items:flex-end}.report-controls .export-row .btn{white-space:nowrap}.report-controls .custom-range input[type=date]{width:100%}.holiday-list{gap:8px;max-height:320px;overflow-y:auto}.grade-overall{font-size:1.5rem;font-weight:700}.grade-letter{color:var(--primary);margin-left:2px}.assignment-form{background:var(--surface-2)}.planner-item{border-top:1px solid var(--border);align-items:flex-start;gap:8px;padding:10px 0;display:flex}.planner-check{flex:1;align-items:flex-start}.planner-item.done .planner-title{color:var(--muted);text-decoration:line-through}.planner-desc{white-space:pre-wrap;margin-top:3px;font-size:.9rem}.planner-link{align-items:center;gap:4px;margin-top:4px;display:inline-flex}.planner-actions{flex-shrink:0}.relay-canvas{object-fit:contain;background:#000;width:100%;height:100%}.stage-badge{color:#fff;background:#0000008c;border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:.75rem;display:inline-flex;position:absolute;top:8px;left:8px}.cal-head{justify-content:center;align-items:center;gap:14px;display:flex}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal-weekday{text-align:center;color:var(--muted);padding-bottom:2px;font-size:.72rem}.cal-cell{aspect-ratio:1;border:1px solid var(--border);background:var(--surface);cursor:pointer;font:inherit;border-radius:8px;justify-content:flex-start;align-items:flex-start;padding:4px;display:flex;position:relative}.cal-cell:hover{border-color:var(--primary)}.cal-cell.other-month{opacity:.4}.cal-cell.today{border-color:var(--primary)}.cal-cell.selected{background:var(--primary-soft);border-color:var(--primary)}.cal-daynum{font-size:.8rem;font-weight:600}.cal-dot{background:var(--primary);min-width:16px;height:16px;color:var(--primary-ink);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:.68rem;font-weight:700;display:inline-flex;position:absolute;bottom:3px;right:3px}.cal-dot.done{background:var(--good)}.badge.good{color:#166534;background:#dcfce7}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .badge.good{color:#86efac;background:#14321f}}:root[data-theme=dark] .badge.good{color:#86efac;background:#14321f}.student-login{text-align:center;align-items:stretch;width:100%;max-width:360px}.student-login label{text-align:left}.student-shell{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.student-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 16px;display:flex}.student-who{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:600;overflow:hidden}@media (width<=520px){.student-header{gap:8px;padding:10px 12px}.student-header .student-who,.student-header .btn-label{display:none}}.student-tabs{touch-action:pan-x;-webkit-overflow-scrolling:touch;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:nowrap;gap:4px;padding:8px 12px;display:flex;overflow:auto hidden}.student-tabs button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;flex:none;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:600;display:flex}.student-tabs button.active{background:var(--primary);color:#fff}.student-main{box-sizing:border-box;flex:1;width:100%;max-width:760px;margin:0 auto;padding:16px}.student-subhead{color:var(--muted);margin:8px 2px 0;font-size:14px}.student-planner-item{align-items:flex-start;gap:12px;display:flex}.student-planner-item.done .student-planner-title{color:var(--muted);text-decoration:line-through}.student-planner-title{font-weight:600}.student-tag{background:var(--surface-2);border-radius:6px;margin-right:6px;padding:1px 7px}.student-grade-head{justify-content:space-between;align-items:baseline;display:flex}.student-grade-avg{color:var(--primary);font-size:20px;font-weight:800}.student-grade-row{border-top:1px solid var(--border);align-items:center;gap:10px;padding:6px 0;display:flex}.student-chat{flex-direction:column;height:calc(100vh - 170px);display:flex}.student-chat-log{flex-direction:column;flex:1;gap:8px;padding:4px;display:flex;overflow-y:auto}.student-bubble{border-radius:14px;max-width:80%;padding:8px 12px}.student-bubble.mine{background:var(--primary);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.student-bubble.theirs{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.student-bubble-name{opacity:.7;margin-bottom:2px;font-size:11px}.student-chat-input{gap:8px;padding-top:8px;display:flex}.student-chat-input input{flex:1}.student-whiteboard{flex-direction:column;gap:8px;display:flex}.student-wb-tools{align-items:center;gap:8px;display:flex}.student-wb-color{border:2px solid var(--border);cursor:pointer;border-radius:50%;width:26px;height:26px}.student-wb-color.active{outline:2px solid var(--primary);outline-offset:2px}.student-wb-canvas{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);touch-action:none;width:100%;height:calc(100vh - 230px)}.student-code-display{letter-spacing:2px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:22px;font-weight:800}.student-creds{background:var(--surface-2);border-radius:var(--radius-sm);padding:12px}.student-cred-row{align-items:center;gap:10px;margin-top:6px;display:flex}.student-cred-row code{flex:1;font-size:16px;font-weight:700}.btn.help-btn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.break-choices{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.student-section-title{margin:0;font-size:17px}.student-devices{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.student-devices li{border-top:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.student-devices li:first-child{border-top:none}.student-setup-link{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.student-setup-link code{overflow-wrap:anywhere;background:var(--surface-2);border-radius:8px;flex:1;min-width:0;padding:8px 10px;font-size:14px}.cal-toolbar{grid-template-columns:auto 1fr auto;grid-template-areas:"views nav today";align-items:center;gap:10px;display:grid}.cal-toolbar .segmented{grid-area:views}.cal-toolbar .cal-head{grid-area:nav;justify-content:center;min-width:0}.cal-toolbar .cal-head strong{text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cal-toolbar>.btn{grid-area:today;justify-self:end}@media (width<=639px){.cal-toolbar{grid-template-columns:1fr auto;grid-template-areas:"views today""nav nav"}}.cal-chips{display:none}@media (width>=640px){.cal-cell{aspect-ratio:auto;flex-direction:column;gap:3px;min-height:92px}.cal-chips{flex-direction:column;gap:2px;width:100%;min-width:0;display:flex}.cal-cell .cal-dot{display:none}}.cal-chip{white-space:nowrap;text-overflow:ellipsis;text-align:left;background:var(--primary-soft);width:100%;color:var(--primary);border-radius:5px;padding:1px 5px;font-size:.72rem;line-height:1.3;display:block;overflow:hidden}.cal-chip.done{background:var(--surface-2);color:var(--muted);text-decoration:line-through}.cal-more{color:var(--muted);text-align:left;font-size:.7rem}.cal-agenda{gap:0}.cal-agenda-day{border-top:1px solid var(--border);padding:12px 0}.cal-agenda-day:first-child{border-top:none}.cal-agenda-day.today h3{color:var(--primary)}.attendance-table tr.no-school td{opacity:.6}.attendance-table tr.today td:first-child strong{color:var(--primary)}.attendance-table tfoot th{color:var(--text);border-bottom:none}.att-hours{width:84px;min-height:36px;padding:6px 8px}@media (width<=520px){.att-activity{display:none}}.sticker-grid{grid-template-columns:repeat(6,1fr);gap:8px;margin-top:6px;display:grid}.sticker{border:2px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;padding:10px 0;font-size:1.6rem;line-height:1}.sticker.active{border-color:var(--primary);background:var(--primary-soft)}.sticker-badge{font-size:1.8rem;line-height:1}.student-learned{margin-top:6px;font-style:italic}.student-turnin{margin-top:8px}.student-planner-item.done .student-turnin .btn{text-decoration:none}.tag.turned-in{background:var(--good-soft);color:var(--good)}.planner-learned{color:var(--muted);margin-top:2px;font-style:italic}.reading-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.reading-form-title{grid-column:1/-1}@media (width>=640px){.reading-form{grid-template-columns:160px 1fr 120px 140px}.reading-form-title{grid-column:auto}}.reading-table .reading-title{white-space:normal;min-width:120px}.signoff{border:2px solid var(--border);border-radius:6px;place-items:center;width:22px;height:22px;display:inline-grid}.signoff.on{border-color:var(--good);background:var(--good);color:#fff}@media (width<=520px){.reading-table th,.reading-table td{padding:8px 5px;font-size:.85rem}.reading-table .reading-title{min-width:90px}}.richtext{flex-direction:column;gap:4px;display:flex}.richtext-label{font-size:.9rem;font-weight:600}.richtext-toolbar{border:1px solid var(--border);background:var(--surface-2);border-bottom:none;border-radius:10px 10px 0 0;gap:2px;padding:2px;display:flex}.richtext-area{border:1px solid var(--border);background:var(--surface);overflow-wrap:anywhere;border-radius:0 0 10px 10px;outline:none;padding:10px 12px;line-height:1.5}.richtext-area:focus{border-color:var(--primary)}.richtext-area:empty:before{content:attr(data-placeholder);color:var(--muted)}.richtext-area p,.richtext-view p{margin:0 0 6px}.richtext-area ul,.richtext-area ol,.richtext-view ul,.richtext-view ol{margin:0 0 6px;padding-left:1.4rem}.cal-chip.kind-lesson{background:var(--good-soft);color:var(--good)}.cal-popup-actions,.cal-add{flex-wrap:wrap;gap:8px;display:flex}.lesson-row{align-items:center}.cal-chip.kind-journal{background:var(--warn-soft);color:var(--warn)}.journal-icon{color:var(--warn);flex:none}.lesson-open{min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:flex-start;gap:10px;padding:0;display:flex}.lesson-icon{color:var(--good);flex:none;margin-top:2px}.lesson-view section h3{margin:0 0 6px;font-size:.95rem}.lesson-objectives{margin:0;padding-left:1.3rem}.lesson-list-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary)}.lesson-bullet{color:var(--muted);text-align:center;width:20px}.strike{text-decoration:line-through}
