:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ui-font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";--ui-page:#f5f7fa;--ui-nav-surface:#f5f7fa;--ui-ink:#2d3e48;--ui-muted:#61717b;--ui-description:#53656f;--ui-line:#dee5e9;--ui-line-strong:#b6c4cc;--ui-panel:#fff;--ui-menu:#fff;--ui-card:#fff;--ui-item:#f5f7fa;--ui-body:#f5f7fa;--ui-section-surface:#f5f7fa;--ui-control:#fff;--ui-selected:#e9eef1;--ui-soft:#3c3c3c0b;--ui-header:#eef2f5;--ui-panel-header:#f5f7fa;--ui-brand:#58cc02;--ui-brand-ink:#34720f;--ui-brand-soft:#e6f6dc;--ui-brand-line:#43a3004d;--ui-progress:linear-gradient(90deg, #58cc02, #84d94a);--ui-track:#e5e5e5;--ui-success:#2f7b35;--ui-success-soft:#eaf6e5;--ui-success-line:#3c963452;--ui-control-halo:#3c3c3c0b;--ui-star:#8a5700;--ui-star-soft:#fff5d6;--ui-star-line:#e09e1961;--ui-danger:#b42318;--ui-danger-soft:#fff0ed;--ui-action-positive:#58cc02;--ui-action-positive-ink:#21460c;--ui-action-positive-edge:#45a900;--ui-radius-action:14px;--ui-action-depth:4px;--ui-action-font-size:13px;--ui-action-motion:.12s;--ui-space-unit:4px;--ui-focus-control-ink:#3b2100;--ui-focus-control-fill:#ffb454;--ui-focus-control-edge:#d77b0c;--ui-focus-control-halo:#ff960025;--ui-control-height:44px;--ui-control-icon:18px;--ui-control-gap:6px;--ui-action-press:2px;--ui-complete-line:#8dc965;--ui-complete-ink:#37621d;--ui-radius:16px;--ui-title-size:21px;--ui-item-title-size:13px;--ui-item-title-weight:900;--ui-radius-item:14px;--ui-radius-small:12px;--ui-radius-pill:999px;--ui-shadow:none;--ui-control-shadow:none;--ui-selected-shadow:0 2px 0 #d5d5d5;--ui-school-bg:#edf1f4;--ui-school-ink:#465964;--ui-chinese-bg:#f1e8ff;--ui-chinese-ink:#7137a5;--ui-reading-bg:#f1e8ff;--ui-reading-ink:#7137a5;--ui-english-bg:#e4f2ff;--ui-english-ink:#185e9c;--ui-focus-bg:#ffedd5;--ui-focus-ink:#9a3412;--ui-sport-bg:#e6f5e7;--ui-sport-ink:#216b32;--ui-homework-bg:#fff3bd;--ui-homework-ink:#785600}html[data-theme=dark]{--ui-complete-line:#436d30;--ui-complete-ink:#ace17f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ui-page:#131f24;--ui-nav-surface:#131f24;--ui-ink:#f1f7fb;--ui-muted:#a5b4bc;--ui-description:#bbc9d1;--ui-line:#35464f;--ui-line-strong:#52656f;--ui-panel:#202f36;--ui-menu:#202f36;--ui-card:#202f36;--ui-item:#263740;--ui-body:#202f36;--ui-section-surface:#18282f;--ui-control:#202f36;--ui-selected:#31434d;--ui-soft:#f1f7fb0e;--ui-header:#263740;--ui-panel-header:#202f36;--ui-brand:#7bd941;--ui-brand-ink:#b5ee96;--ui-brand-soft:#29412a;--ui-brand-line:#7bd9416b;--ui-progress:linear-gradient(90deg, #67cc2d, #9be66a);--ui-track:#35464f;--ui-success:#a8e7a2;--ui-success-soft:#263d29;--ui-success-line:#75cd6b66;--ui-control-halo:#00000040;--ui-star:#ffd45c;--ui-star-soft:#3c321e;--ui-star-line:#ffce5266;--ui-danger:#ffaaa1;--ui-danger-soft:#432721;--ui-action-positive:#70d533;--ui-action-positive-ink:#19370b;--ui-action-positive-edge:#4ea917;--ui-shadow:none;--ui-control-shadow:none;--ui-selected-shadow:0 2px 0 #0e171c;--ui-school-bg:#2c3b44;--ui-school-ink:#d2dde4;--ui-chinese-bg:#392b4b;--ui-chinese-ink:#d9b7ff;--ui-reading-bg:#392b4b;--ui-reading-ink:#d9b7ff;--ui-english-bg:#223c51;--ui-english-ink:#afd9ff;--ui-focus-bg:#4a3021;--ui-focus-ink:#ffd09d;--ui-sport-bg:#25402b;--ui-sport-ink:#c2f4bd;--ui-homework-bg:#40371e;--ui-homework-ink:#ffe17b}
:root button[data-ui-action]{appearance:none;box-sizing:border-box;min-height:var(--ui-control-height);border-style:solid;border-width:1px 1px var(--ui-action-depth);border-radius:var(--ui-radius-action);font-size:var(--ui-action-font-size);transition:transform var(--ui-action-motion),box-shadow var(--ui-action-motion);touch-action:manipulation;background-image:none;font-weight:800}:root button[data-ui-action=primary]{background:var(--ui-action-positive);color:var(--ui-action-positive-ink);border-color:var(--ui-action-positive-edge)}:root button[data-ui-action=neutral]{background:var(--ui-control);color:var(--ui-ink);border-color:var(--ui-line-strong)}button[data-ui-action]:active:not(:disabled){transform:translateY(var(--ui-action-press));box-shadow:none}button[data-ui-action]:focus-visible,button[data-ui-filter]:focus-visible,button[data-ui-icon]:focus-visible{outline:3px solid var(--ui-brand);outline-offset:3px}button[data-ui-action]:disabled{opacity:.55;box-shadow:none;cursor:default}:root button[data-ui-button]{justify-content:center;align-items:center;gap:var(--ui-control-gap);font-family:var(--ui-font);line-height:inherit;cursor:pointer;overflow-wrap:anywhere;max-width:100%;padding:8px 12px;display:inline-flex}:root button[data-ui-button]:disabled{cursor:default}button[data-ui-button] svg{width:var(--ui-control-icon);height:var(--ui-control-icon);flex:none}[data-button-icon]{flex:none;justify-content:center;align-items:center;display:inline-flex}[data-button-labels]{min-width:0;display:grid}[data-button-content],[data-button-pending]{justify-content:center;align-items:center;gap:var(--ui-control-gap);grid-area:1/1;min-width:0;display:flex}:root button[data-ui-action=success]{background:var(--ui-success-soft);color:var(--ui-complete-ink);border:2px solid var(--ui-complete-line);box-shadow:none}:root button[data-ui-action=waiting]{background:var(--ui-star-soft);color:var(--ui-star);border:2px solid var(--ui-star-line);box-shadow:none;font-size:12px}:root button[data-ui-action=muted]{color:var(--ui-description);border:2px solid var(--ui-line);box-shadow:none;background:0 0}:root button[data-ui-action=invitation]{border-style:dashed;border-color:var(--ui-line-strong);color:var(--ui-brand-ink);background:var(--ui-brand-soft)}:root button[data-ui-action=focus],:root button[data-ui-action=resume]{border:1px solid var(--ui-line);border-radius:var(--ui-radius-pill);background:var(--ui-panel);min-width:96px;color:var(--ui-description);font:700 14px/1 var(--ui-font);box-shadow:none;white-space:nowrap;gap:8px;padding:8px 14px}:root button[data-ui-action=resume]{color:var(--ui-focus-control-ink);background:var(--ui-focus-control-fill);border:2px solid var(--ui-focus-control-edge);animation:3s ease-in-out 60s infinite ui-pause-reminder}button[data-ui-action=focus]:hover:not(:disabled){border-color:var(--ui-brand)}button[data-ui-button]:hover:not(:disabled){filter:brightness(1.03)}@keyframes ui-pause-reminder{50%{box-shadow:0 0 0 7px var(--ui-focus-control-halo)}}:root button[data-ui-filter]{appearance:none;box-sizing:border-box;min-width:56px;min-height:var(--ui-control-height);border-radius:var(--ui-radius-action);color:var(--ui-description);font:750 13px/1.4 var(--ui-font);cursor:pointer;touch-action:manipulation;background:0 0;border:2px solid #0000;padding:8px 10px}:root button[data-ui-filter][aria-pressed=true]{border-color:var(--ui-line);background:var(--ui-selected);color:var(--ui-ink)}button[data-ui-filter]:hover:not(:disabled):not([aria-pressed=true]){background:var(--ui-soft)}button[data-ui-filter]:disabled{opacity:.5;cursor:default}:root button[data-ui-icon]{appearance:none;width:var(--ui-control-height);height:var(--ui-control-height);color:var(--ui-description);font:400 24px/1 var(--ui-font);box-shadow:none;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:12px;flex:none;place-items:center;padding:0;display:grid}button[data-ui-icon]>span{place-items:center;display:grid}button[data-ui-icon] svg{width:var(--ui-control-icon);height:var(--ui-control-icon)}button[data-ui-icon]:hover:not(:disabled),button[data-ui-icon][aria-expanded=true]{background:var(--ui-soft)}button[data-ui-icon=info]>span{width:19px;height:19px;font:800 12px/1 var(--ui-font);border:1.5px solid;border-radius:50%}button[data-ui-icon=info]:hover,button[data-ui-icon=info][aria-expanded=true]{color:var(--ui-brand-ink)}button[data-ui-icon]:disabled{opacity:.55;cursor:default}@media (prefers-reduced-motion:reduce){:root button[data-ui-action]{transition:none}:root button[data-ui-action=resume]{animation:none}}:root button[data-ui-size=comfortable]{padding:10px 14px}button[data-ui-emphasis=true]{box-shadow:0 3px 0 var(--ui-action-positive-edge)}
*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ui-ink);background:var(--ui-page);min-height:100vh;font-family:var(--ui-font)}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--ui-brand);outline-offset:3px}button:disabled{cursor:default}main{width:min(1080px,100% - 28px);margin:28px auto 48px}h1,h2,h3{margin-top:0}.card{border:1px solid var(--ui-line);border-radius:var(--ui-radius);background:var(--ui-panel);box-shadow:var(--ui-shadow)}.login-shell{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{width:min(440px,100%);padding:28px}.muted{color:var(--ui-muted)}.small{font-size:12px}.segmented{border:1px solid var(--ui-line);border-radius:var(--ui-radius-pill);background:var(--ui-control);grid-template-columns:1fr 1fr;gap:4px;margin:20px 0;padding:4px;display:grid}.segmented button{border-radius:var(--ui-radius-pill);color:var(--ui-muted);cursor:pointer;background:0 0;border:0;padding:9px 12px;font-weight:800}.segmented button[aria-pressed=true]{color:var(--ui-ink);background:var(--ui-selected);box-shadow:var(--ui-selected-shadow)}.field{gap:6px;margin:14px 0;display:grid}.field label{font-size:12px;font-weight:800}.field input{border:1px solid var(--ui-line-strong);border-radius:var(--ui-radius-small);width:100%;color:var(--ui-ink);background:var(--ui-control);padding:11px 12px}.primary{border:1px solid var(--ui-brand-line);border-radius:var(--ui-radius-pill);width:100%;color:var(--ui-action-positive-ink);background:var(--ui-progress);cursor:pointer;padding:11px 14px;font-weight:800}.error{border-radius:var(--ui-radius-small);color:var(--ui-danger);background:var(--ui-danger-soft);margin-top:12px;padding:10px 12px;font-size:12px}.app-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.family-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.family-card{padding:20px}.badge{border-radius:var(--ui-radius-pill);color:var(--ui-brand-ink);background:var(--ui-brand-soft);padding:4px 8px;font-size:11px;font-weight:800;display:inline-block}.child-list{gap:8px;margin-top:12px;display:grid}.child{border-radius:var(--ui-radius-small);background:var(--ui-item);padding:10px 12px}.signout{border:1px solid var(--ui-line);border-radius:var(--ui-radius-pill);color:var(--ui-ink);background:var(--ui-control);cursor:pointer;padding:8px 12px}@media print{.no-print{display:none!important}}textarea{font:inherit}@media screen and (max-width:760px){html:root[data-theme] input:not([type=range]):not([type=checkbox]):not([type=radio]),html:root[data-theme] select,html:root[data-theme] textarea{font-size:16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.login-shell{box-sizing:border-box;justify-content:center;align-items:center;display:flex}.login-card{box-sizing:border-box;color:#243b48;background:#fff;width:100%;max-width:440px}.login-card .field input,.login-card select{box-sizing:border-box;color:#243b48;background:#f5f8fa;border:1px solid #aabac3;border-radius:12px;width:100%;min-height:44px;padding:10px;font-size:16px}.login-card .primary{color:#173900;background:#58cc02;border-color:#46a302;min-height:44px}.login-card .segmented{background:#edf2f4;border-color:#c9d5da}.login-card .segmented button{color:#516773;min-height:44px}.login-card .segmented button[aria-pressed=true]{color:#243b48;background:#fff}.login-card form[action="/login/qr/start"]{margin-top:14px}.login-card form[action="/login/qr/start"] button{width:100%}.login-card>a{margin-top:12px;display:block}.login-card .muted{color:#607783}[data-theme=dark] .login-card{color:#e8f0f3;background:#202f36}[data-theme=dark] .login-card .field input,[data-theme=dark] .login-card select{color:#e8f0f3;background:#18272e;border-color:#526b77}[data-theme=dark] .login-card .segmented{background:#18272e;border-color:#526b77}[data-theme=dark] .login-card .segmented button{color:#afc2cc}[data-theme=dark] .login-card .segmented button[aria-pressed=true]{color:#fff;background:#374c57}[data-theme=dark] .login-card .muted{color:#afc2cc}
