:root{--navy: #182A4A;--navy-dark: #0E1A30;--navy-deep: #0F172A;--gold: #f5c518;--coral: #FF6B57;--coral-strong: #C8402A;--coral-soft: #ff9b7e;--coral-light: #FDE6E1;--text: #172036;--text-body: #24304A;--text-muted: #5B6478;--text-dim: #8A93A6;--border: #E3E6ED;--border-strong: #CDD3DF;--line: #EEF0F4;--bg: #F4F5F8;--bg-soft: #F4F5F8;--surface: #fff;--green: #2e7d32;--amber: #8A5A00;--red: #d1242f;--font-base: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji"}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{background:#e9ecf2;font-family:var(--font-base);font-size:16px;line-height:1.5;color:var(--text);-webkit-font-smoothing:antialiased}button,input{font-family:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-shell{max-width:460px;margin:0 auto;min-height:100vh;min-height:100dvh;background:var(--bg);display:flex;flex-direction:column;color:var(--text)}.app-content{flex:1;padding:16px 16px 88px;display:flex;flex-direction:column;gap:14px}@media (min-width: 520px){.app-shell{margin:24px auto;min-height:calc(100vh - 48px);border-radius:24px;overflow:hidden;box-shadow:0 10px 40px #0f172a1f}}.top{background:var(--navy);color:#fff;padding:calc(14px + env(safe-area-inset-top,0px)) 16px 16px 20px;display:flex;flex-direction:column;gap:4px}.top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.app-logo{display:flex;align-items:center;gap:10px}.app-logo-icon{width:30px;height:30px;border-radius:9px}.app-logo-text{font-weight:700;font-size:17px;color:#fff}.app-logo-text .dot{color:var(--coral-soft)}.icon-btn{width:44px;height:44px;border:0;border-radius:12px;background:#ffffff14;color:#fff;display:grid;place-items:center;cursor:pointer}.icon-btn.on{background:#fff;color:var(--navy)}.greeting{font-size:24px;font-weight:800;letter-spacing:-.3px;line-height:1.25;color:#fff}.meta{font-size:14px;color:#ffffffc7}.kid-switcher{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.kid-chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-size:15px;font-weight:600;cursor:pointer}.kid-chip.on{background:#fff;border-color:#fff;color:var(--navy)}.kid-count{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--coral-strong);color:#fff;font-size:12px;font-weight:700;display:inline-grid;place-items:center}.icon-btn:focus-visible,.kid-chip:focus-visible,.msg-row:focus-visible,.read-open:focus-visible,.archive-btn:focus-visible,.archive-row:focus-visible,.tab:focus-visible,.btn:focus-visible,.back-btn:focus-visible,.filter-chip:focus-visible,.text-btn:focus-visible,.approval-banner:focus-visible{outline:3px solid var(--coral);outline-offset:2px}.inbox{display:flex;flex-direction:column;gap:10px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px;min-height:28px;flex-wrap:wrap}.section-head h2{font-size:16px;font-weight:800;color:var(--text)}.section-sub{flex-basis:100%;font-size:13px;color:var(--text-muted);margin-top:-2px}.text-btn{min-height:44px;padding:0 4px;border:0;background:none;color:var(--navy);font-size:14px;font-weight:600;text-decoration:underline;cursor:pointer}.msg-list{display:flex;flex-direction:column;gap:10px}.msg-row{display:flex;align-items:center;gap:12px;width:100%;min-height:76px;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);text-align:left;color:var(--text);cursor:pointer}.msg-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.msg-top{display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:600;color:var(--text-muted)}.msg-title{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-preview{font-size:13px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unread-dot{width:10px;height:10px;border-radius:5px;background:var(--coral-strong);flex:none}.kind-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none}.kind-icon.small{width:32px;height:32px;border-radius:9px}.k-teacher{background:#fdf0da;color:#8a5a00}.k-monthly{background:#e3ecfb;color:#1f4e9c}.k-school{background:#fde6e1;color:#b23a28}.k-brag{background:#fff4cc;color:#7a5b00}.k-subject{background:#e2f1e4;color:#2e6b2a}.k-project{background:#eef0f4;color:#24304a}.read-list{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.read-row{display:flex;align-items:center;border-bottom:1px solid var(--line)}.read-row:last-child,.archive-row:last-child{border-bottom:0}.read-open{flex:1;min-width:0;display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 4px 8px 14px;border:0;background:none;text-align:left;color:var(--text);cursor:pointer}.read-title{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.read-meta{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.archive-btn{width:48px;height:48px;margin-right:6px;flex:none;border:0;border-radius:12px;background:none;color:var(--text-muted);display:grid;place-items:center;cursor:pointer}.archive-btn:hover{background:var(--bg);color:var(--navy)}.empty-note{display:flex;align-items:center;gap:12px;padding:16px;border-radius:16px;background:var(--surface);border:1px dashed var(--border-strong);color:var(--text-muted);font-size:14px;line-height:1.5}.empty-check{color:var(--green);display:inline-flex;flex:none}.archive{display:flex;flex-direction:column;gap:12px}.search{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 14px;border-radius:14px;background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}.search:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px #182a4a1f}.search input{flex:1;min-width:0;border:0;outline:none;background:none;font-size:15px;color:var(--text)}.filters{display:flex;gap:8px;flex-wrap:wrap}.filter-chip{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-body);font-size:14px;font-weight:600;cursor:pointer}.filter-chip.on{background:var(--navy);border-color:var(--navy);color:#fff}.archive-row{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 14px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;color:var(--text);cursor:pointer}.archive-date{font-size:12px;color:var(--text-muted);flex:none}.tabbar{position:sticky;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--surface);border-top:1px solid var(--border);padding:6px 8px calc(10px + env(safe-area-inset-bottom,0px))}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:52px;padding-top:6px;border:0;background:none;cursor:pointer;font-size:12px;font-weight:500;color:var(--text-muted)}.tab.on{color:var(--navy);font-weight:700}.tab-icon{position:relative;display:inline-flex}.tab-badge{position:absolute;top:-6px;right:-12px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--coral-strong);color:#fff;font-size:11px;font-weight:700;display:inline-grid;place-items:center}.detail-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:calc(8px + env(safe-area-inset-top,0px)) 8px 8px 4px;background:var(--surface);border-bottom:1px solid var(--border)}.back-btn{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 12px;border:0;background:none;color:var(--navy);font-size:15px;font-weight:600;cursor:pointer}.detail-pos{font-size:13px;color:var(--text-muted);padding-right:12px}.detail-content{background:var(--surface);padding:20px 20px 24px}.message{display:flex;flex-direction:column;gap:14px}.message-kind{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--text-muted)}.message-title{font-size:23px;line-height:1.25;font-weight:800;color:var(--text)}.message-meta{font-size:14px;color:var(--text-muted);margin-top:-6px}.message-note{font-size:13px;color:#1f4e9c;background:#e3ecfb;border-radius:10px;padding:8px 12px}.message-text{font-size:16px;line-height:1.6;color:var(--text-body);white-space:pre-wrap}.message-list{list-style:none;display:flex;flex-direction:column;gap:8px;font-size:16px;line-height:1.5;color:var(--text-body)}.milestone-card{background:#fff4e8;border-radius:12px;padding:14px 16px}.milestone-title{font-size:14px;font-weight:800;color:#b23a28;margin-bottom:4px}.milestone-text{font-size:15px;color:var(--text-body);line-height:1.5}.action-bar{position:sticky;bottom:0;z-index:30;display:flex;flex-direction:column;gap:10px;padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--border)}.action-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 14px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;text-align:center}.btn.primary{min-height:52px;border:0;background:var(--navy);color:#fff;font-size:16px;font-weight:700}.btn.secondary{border:1px solid var(--border-strong);background:var(--surface);color:var(--navy)}.btn.secondary.thanked{border-color:#f2c77a;background:#fdf0da;color:#8a5a00}.btn:disabled{cursor:default}.next-link{min-height:44px;border:0;background:none;color:var(--navy);font-size:14px;font-weight:600;cursor:pointer}.teacher-list{display:flex;flex-direction:column;gap:8px}.contact-note{padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:10px;font-size:13px;color:var(--text-body);line-height:1.5}.monthly-reviews{display:flex;flex-direction:column}.monthly-review{border-top:1px solid var(--border)}.monthly-review:first-of-type{border-top:none}.monthly-review-head{width:100%;display:flex;align-items:center;gap:8px;min-height:48px;padding:10px 0;background:none;border:none;text-align:left;cursor:pointer;color:var(--text)}.monthly-review-month{font-weight:800;font-size:15px;text-transform:capitalize}.monthly-review-meta{flex:1;font-size:13px;color:var(--text-muted)}.monthly-review-chevron{color:var(--text-dim)}.monthly-review-body{padding:0 0 14px;display:flex;flex-direction:column;gap:12px}.monthly-sec.overall{background:var(--bg);border-radius:10px;padding:10px 12px}.monthly-sec-title{font-size:13px;font-weight:800;color:var(--coral-strong);margin-bottom:4px}.monthly-sec-author{font-weight:500;color:var(--text-muted)}.microtext{font-size:13px;color:var(--text-muted);line-height:1.5;margin-top:8px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.panel-title{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px}.freq-pills{display:flex;gap:6px}.freq-pill{flex:1;min-height:44px;padding:8px;border-radius:12px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-body);font-size:14px;font-weight:600;cursor:pointer}.freq-pill.active{background:var(--navy);border-color:var(--navy);color:#fff}.push-row .freq-pill{flex:none;padding:8px 16px}.push-hint{font-size:13px;color:var(--text-muted);max-width:60%;text-align:right}.push-note{font-size:13px;color:var(--text-body)}.logout-btn{align-self:center;min-width:160px}.children-section{gap:12px}.child-approve-card{border:1px solid var(--border);border-radius:14px;padding:12px 14px}.cac-head{display:flex;align-items:center;gap:10px}.child-avatar{width:44px;height:44px;border-radius:50%;background:var(--coral-light);color:var(--coral-strong);display:grid;place-items:center;font-weight:700;font-size:16px}.child-avatar.small{width:36px;height:36px;font-size:13px;flex:none}.cac-name{font-weight:700;font-size:15px}.cac-class{font-size:12px;color:var(--text-muted);margin-top:1px}.cac-state{margin-left:auto;font-size:12px;font-weight:700;padding:4px 9px;border-radius:999px;background:#fdf0da;color:#8a5a00;white-space:nowrap;flex:none}.cac-state.on{background:#e2f1e4;color:#2e6b2a}.cac-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.cac-label{font-size:14px;color:var(--text-body)}.child-open{width:100%;margin-top:10px}.switch{position:relative;width:46px;height:26px;border-radius:13px;border:1px solid var(--border-strong);background:#e3e6ed;cursor:pointer;padding:0;flex:none;transition:background .2s ease}.switch .knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:left .2s ease}.switch.on{background:var(--green);border-color:var(--green)}.switch.on .knob{left:22px}.switch:disabled{opacity:.55;cursor:default}.children-note{padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:10px;font-size:13px;color:var(--text-body);line-height:1.5}.children-note.error{background:#fde6e1;border-color:#f3b9ae;color:#9a2a18}.state-msg{padding:32px 8px;text-align:center;color:var(--text)}.state-msg h1{font-size:20px;margin-bottom:10px}.state-error{color:var(--coral-strong)}.state-dim{padding:16px 4px;color:var(--text-muted)}.error-banner{padding:10px 12px;background:#fde6e1;border:1px solid #F3B9AE;border-radius:10px;color:#9a2a18;font-size:14px}.approval-banner{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:12px 14px;background:#fdf0da;border:1px solid #F2C77A;border-radius:14px;color:#6b4600;font-size:14px;font-weight:600;text-align:left;cursor:pointer}.approval-banner .ab-icon{flex:none;display:inline-flex}.approval-banner .ab-arrow{margin-left:auto;flex:none;display:inline-flex}.install-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;padding:16px;background:#0f1f368c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.install-modal{width:100%;max-width:420px;background:var(--surface);color:var(--text);border-radius:18px;padding:22px 20px 18px;text-align:center;box-shadow:0 18px 44px #0f1f3659}.im-icon{font-size:30px;line-height:1}.im-title{margin-top:8px;font-size:17px;font-weight:800;color:var(--navy-dark)}.im-text{margin-top:8px;font-size:13.5px;line-height:1.5;color:var(--text-muted)}.im-text strong{color:var(--navy)}.im-steps{margin:12px 0 0;padding:0;list-style:none;counter-reset:step;text-align:left}.im-steps li{counter-increment:step;position:relative;padding:7px 0 7px 30px;font-size:13.5px;line-height:1.45;color:var(--text);border-top:1px solid var(--border)}.im-steps li:first-child{border-top:none}.im-steps li:before{content:counter(step);position:absolute;left:0;top:7px;width:20px;height:20px;border-radius:50%;background:var(--coral-light);color:var(--coral);font-size:11px;font-weight:800;display:grid;place-items:center}.im-actions{display:flex;gap:10px;margin-top:18px}.im-primary,.im-ghost{flex:1;border-radius:999px;padding:11px 16px;font-size:14px;font-weight:700;cursor:pointer}.im-primary{background:var(--coral);border:none;color:#fff}.im-ghost{background:none;border:1px solid var(--border);color:var(--text-muted)}@media (min-width: 520px){.install-overlay{align-items:center}}.ph-fab{position:fixed;right:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:50;width:52px;height:52px;border-radius:50%;border:none;background:var(--coral);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 22px #0f1f3673;transition:transform .15s ease,background .15s ease}.ph-fab:hover{background:var(--coral-soft)}.ph-fab:active{transform:scale(.95)}.ph-fab:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.ph-fab.open{background:var(--navy-dark);z-index:72}.ph-fab-mark{font-size:24px;font-weight:800;line-height:1}@media (min-width: 520px){.ph-fab{right:max(16px,calc(50% - 294px));bottom:100px}}.ph-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#0f1f3699;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:stretch;justify-content:center}.ph-panel{width:100%;height:100%;background:var(--surface);color:var(--text);display:flex;flex-direction:column;box-shadow:0 18px 44px #0f1f3659}.ph-header{display:flex;align-items:center;gap:8px;padding:calc(12px + env(safe-area-inset-top,0px)) 14px 12px;border-bottom:1px solid var(--border);background:var(--surface)}.ph-header-title{flex:1;font-weight:800;font-size:16px;color:var(--navy-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ph-icon-btn{width:44px;height:44px;border-radius:50%;border:none;background:none;color:var(--navy);display:grid;place-items:center;cursor:pointer;flex:none}.ph-icon-btn:hover{background:var(--bg-soft)}.ph-icon-btn:focus-visible{outline:3px solid var(--coral);outline-offset:1px}.ph-body{flex:1;overflow-y:auto;padding:14px 16px calc(96px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}.ph-search{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--border);border-radius:12px;background:var(--bg-soft);color:var(--text-muted);margin-bottom:14px}.ph-search:focus-within{border-color:var(--coral);box-shadow:0 0 0 3px #ff7a592e}.ph-search-input{flex:1;min-width:0;height:46px;border:none;background:none;font:inherit;font-size:15px;color:var(--text);outline:none}.ph-search-input::placeholder{color:var(--text-dim)}.ph-section{margin-bottom:16px}.ph-section-title{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin:0 0 6px 4px}.ph-context{background:linear-gradient(135deg,var(--coral-light),#fff7f2);border-radius:14px;padding:12px 10px 8px}.ph-context .ph-section-title{color:var(--coral)}.ph-topic-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px;border:none;border-radius:10px;background:none;color:var(--navy-dark);font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer}.ph-topic-btn:hover{background:var(--bg-soft)}.ph-context .ph-topic-btn:hover{background:#ffffffb3}.ph-topic-btn:focus-visible{outline:3px solid var(--coral);outline-offset:-2px}.ph-topic-icon{flex:none;width:28px;text-align:center;font-size:18px}.ph-topic-label{flex:1;line-height:1.35}.ph-topic-arrow{flex:none;color:var(--text-dim)}.ph-empty{padding:14px 6px;font-size:14px;color:var(--text-muted);line-height:1.5}.ph-replay{display:block;width:100%;padding:12px;border:1px dashed var(--border);border-radius:12px;background:none;color:var(--text-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.ph-replay:hover{color:var(--navy);border-color:var(--navy)}.ph-topic{padding:4px 2px}.ph-topic-detail-icon{font-size:34px;line-height:1;margin-bottom:12px}.ph-topic-text p{font-size:15px;line-height:1.6;color:var(--text);margin-bottom:10px}.ph-topic-back{margin-top:10px}.ph-onboarding{text-align:center;padding:24px 6px 8px}.ph-ob-icon{font-size:44px;line-height:1}.ph-ob-title{margin-top:14px;font-size:20px;font-weight:800;color:var(--navy-dark)}.ph-ob-body{margin-top:12px;font-size:15px;line-height:1.6;color:var(--text-muted);text-align:left}.ph-ob-dots{display:flex;justify-content:center;gap:6px;margin-top:20px}.ph-dot{width:8px;height:8px;border-radius:50%;background:var(--border)}.ph-dot.active{background:var(--coral);width:20px;border-radius:4px}.ph-ob-actions{display:flex;gap:10px;margin-top:20px}.ph-btn{flex:1;min-height:46px;border-radius:999px;padding:11px 16px;font:inherit;font-size:14px;font-weight:700;cursor:pointer}.ph-btn.primary{background:var(--coral);border:none;color:#fff}.ph-btn.ghost{background:none;border:1px solid var(--border);color:var(--text-muted)}.ph-btn:focus-visible{outline:3px solid var(--navy);outline-offset:2px}.ph-skip{margin-top:14px;background:none;border:none;color:var(--text-dim);font:inherit;font-size:13px;cursor:pointer;text-decoration:underline;min-height:44px}@media (min-width: 520px){.ph-overlay{align-items:flex-end;justify-content:flex-end;padding:24px}.ph-panel{width:min(420px,100%);height:min(640px,calc(100vh - 48px));border-radius:20px;overflow:hidden}.ph-body{padding-bottom:24px}.ph-fab.open{display:none}}.brag-card{margin:12px 0;padding:14px 16px;border-radius:14px;border:1px solid #f1d27a;background:linear-gradient(160deg,#fff8e1,#fff 60%)}.brag-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.brag-icon{font-size:1.6rem}.brag-title{font-weight:700;font-size:1.05rem}.brag-text{margin:0 0 12px;line-height:1.5}.brag-actions{display:flex;flex-wrap:wrap;gap:8px}.brag-actions .rf-btn{flex:1 1 140px;min-height:48px;padding:10px;border-radius:12px;border:1px solid var(--border-strong);background:#fff;color:var(--navy);font-size:14px;font-weight:600;cursor:pointer}.brag-actions .rf-btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.brag-actions .rf-btn.on{outline:2px solid #e0b64a}.brag-sub{margin-top:8px;font-size:.85rem;opacity:.75}.basics-block{margin:12px 0 16px;padding:14px 16px;border-radius:14px;background:#fffbea;border:1px solid #f3d36b;color:#1d2433}.basics-child{margin-top:8px}.basics-child.done{opacity:.9}.basics-child-name{font-weight:700}.basics-line{margin:2px 0 6px}.basics-rows{list-style:none;margin:8px 0 0;padding:0}.basics-row{padding:10px 0;border-top:1px solid #f0e2a8}.basics-row:first-child{border-top:0}.basics-row-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.basics-row-name{font-weight:600}.basics-dots{display:inline-flex;gap:5px;flex-shrink:0}.basics-dot{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid #c9ccd3;background:#fff;vertical-align:-1px}.basics-dot.on{border-color:#ef6c00;background:#ef6c00}.basics-dot.sits{border-color:#2e7d32;background:#2e7d32}.basics-row-sub{margin-top:3px;font-size:.88rem;color:#4a5160;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.basics-week{margin-top:2px;font-size:.82rem;color:#667085}.basics-trend{font-size:.78rem;font-weight:700;padding:1px 8px;border-radius:999px}.basics-trend.up,.basics-trend.holds{background:#e6f4ea;color:#1e6b2b}.basics-trend.same{background:#eef0f3;color:#4a5160}.basics-trend.down{background:#fdf0e1;color:#9a4a00}.basics-note{margin:6px 0 0;font-size:.82rem;color:#667085;font-style:italic}.basics-hint{margin:10px 0 0;font-size:.85rem;color:#667085}.subjects{display:flex;flex-direction:column}.subjects-head{display:flex;align-items:baseline;justify-content:space-between;margin:4px 4px 10px}.subjects-head+.tile-grid+.subjects-head{margin-top:18px}.subjects-title{font-size:16px;font-weight:800;color:var(--text)}.tile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.subject-tile{display:flex;flex-direction:column;gap:6px;min-height:148px;padding:14px;border-radius:16px;border:1px solid #f3d36b;background:#fffbea;color:#1d2433;text-align:left;font:inherit;cursor:pointer}.subject-tile:focus-visible,.quiet-row:focus-visible,.sd-row-btn:focus-visible,.sd-back:focus-visible{outline:3px solid var(--coral);outline-offset:2px}.tile-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.tile-icon{width:36px;height:36px;border-radius:10px;background:var(--coral-light);display:grid;place-items:center;font-size:19px}.tile-badge{background:var(--coral-strong);color:#fff;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.tile-name{font-size:15px;font-weight:700;line-height:1.25}.tile-child{font-size:12px;color:#5b6478}.tile-summary{flex:1;font-size:13px;line-height:1.4;color:#4a5160}.tile-time{font-size:12px;color:#5b6478}.quiet-list{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.quiet-row{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 14px;border:none;border-bottom:1px solid var(--line);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.quiet-icon{width:34px;height:34px;border-radius:10px;background:var(--bg);display:grid;place-items:center;font-size:17px;flex:none}.quiet-text{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.quiet-name{font-size:15px;font-weight:600}.quiet-sub{font-size:13px;color:var(--text-muted)}.quiet-arrow{font-size:22px;color:var(--text-dim);flex:none}.quiet-more{padding:10px 14px 12px;font-size:13px;color:var(--text-muted);line-height:1.45}.subject-detail{display:flex;flex-direction:column}.sd-back{display:inline-flex;align-items:center;min-height:44px;padding:0;border:none;background:none;color:var(--navy);font:inherit;font-size:15px;font-weight:600;cursor:pointer;align-self:flex-start}.sd-head{display:flex;align-items:center;gap:12px;margin:6px 0 14px}.sd-icon{width:46px;height:46px;border-radius:14px;background:var(--coral-light);display:grid;place-items:center;font-size:24px;flex:none}.sd-title{font-size:22px;font-weight:800;color:var(--text);line-height:1.2}.sd-child{font-size:14px;color:var(--text-muted);margin-top:2px}.sd-status{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:12px;background:var(--bg);font-size:14px;color:var(--text-body);line-height:1.4}.sd-status-dot{width:10px;height:10px;border-radius:50%;background:var(--coral-strong);flex:none}.sd-status.done .sd-status-dot{background:var(--green)}.sd-card{margin-top:12px}.sd-row{padding:0}.sd-row-btn{display:block;width:100%;padding:12px 0;border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.sd-row-btn>span{display:flex}.sd-row-btn .basics-week{display:block}.sd-row-name{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.sd-row-right{display:inline-flex;align-items:center;gap:8px;flex:none}.sd-chevron{color:#5b6478;font-size:16px;line-height:1;transition:transform .2s ease}.sd-row.open .sd-chevron{transform:rotate(180deg)}.new-tag{background:var(--coral-strong);color:#fff;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px}.sd-change{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#fff2c2;font-size:14px;line-height:1.45;color:#3a4458}.sd-change-label{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#8a6a10;margin-bottom:4px}.child-apps{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.child-apps .child-open{flex:1 1 140px}
