:root{--bg:#f2f8f7;--bg-deep:#e6f2f1;--card:#fff;--ink:#20343d;--muted:#617680;--line:#d7e6e7;--line-strong:#bdd3d5;--brand:#119b8e;--brand-deep:#08766d;--brand-soft:#dff5f1;--sky:#2d8fd5;--sky-soft:#e1f2fc;--sun:#f4b942;--sun-soft:#fff3ce;--warn:#c45746;--warn-soft:#ffebe7;--gold:#a96d08;--radius:20px;--shadow:0 3px 0 #40676c1f, 0 14px 36px #2b525714;--shadow-soft:0 2px 0 #40676c1a;--focus:0 0 0 4px #2d8fd533}*{box-sizing:border-box}html{background:var(--bg);min-height:100%}body{background:radial-gradient(circle at 10% 10%, #f4b94221 0 3px, transparent 4px) 0 0 / 42px 42px, linear-gradient(145deg, #fbfdfc 0%, var(--bg) 46%, var(--bg-deep) 100%);min-height:100vh;color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:16px/1.55 ui-rounded,SF Pro Rounded,Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button,select{cursor:pointer}.app-shell{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:24px;width:min(1540px,100%);margin:0 auto;padding:28px 24px 80px;display:grid}.side-rail{border:2px solid var(--line);min-height:calc(100vh - 48px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe6;border-radius:26px;flex-direction:column;gap:24px;padding:20px;display:flex;position:sticky;top:24px}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-lockup>span:last-child{display:grid}.brand-lockup strong{letter-spacing:-.7px;font-size:24px;line-height:1}.brand-lockup small{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin-top:5px;font-size:12px;font-weight:800}.brand-mark,.header-spark,.child-avatar,.empty-icon{color:#fff;background:var(--brand);box-shadow:0 4px 0 var(--brand-deep);flex:none;place-items:center;display:inline-grid}.brand-mark{border-radius:17px;width:50px;height:50px;transform:rotate(-3deg)}.header-spark{background:var(--sun);color:#6b4705;border-radius:19px;width:58px;height:58px;transform:rotate(4deg);box-shadow:0 4px #d99920}.tabs{gap:8px;display:grid}.tab-button{width:100%;min-height:58px;box-shadow:none;color:var(--muted);text-align:left;background:0 0;border:2px solid #0000;border-radius:17px;align-items:center;gap:12px;padding:8px 10px;display:flex}.tab-button:hover{border-color:var(--line);color:var(--ink);background:#f8fbfb}.tab-button[aria-selected=true]{background:var(--brand-soft);color:var(--brand-deep);border-color:#a9ddd7}.tab-icon{color:#6b828b;background:#eef4f4;border-radius:13px;place-items:center;width:40px;height:40px;display:grid}.tab-button[aria-selected=true] .tab-icon{background:var(--brand);color:#fff;box-shadow:0 3px 0 var(--brand-deep)}.tab-copy{min-width:0;display:grid}.tab-copy strong{font-size:15px;line-height:1.2}.tab-copy small{color:inherit;-webkit-line-clamp:2;opacity:.78;-webkit-box-orient:vertical;margin-top:3px;font-size:11px;font-weight:650;line-height:1.25;display:-webkit-box;overflow:hidden}.back-button{border:2px solid var(--line);width:auto;min-height:40px;box-shadow:none;color:var(--brand-deep);background:#fff;border-radius:999px;align-self:flex-start;align-items:center;gap:7px;margin-bottom:4px;padding:6px 15px 6px 12px;font-size:14px;font-weight:700;display:inline-flex}.back-button:hover{border-color:var(--brand);background:var(--brand-soft)}a.tab-button{text-decoration:none}.profile-switch{width:100%;color:var(--ink);text-align:left;align-items:center;gap:10px;margin-top:auto;padding:11px 12px;display:flex}.profile-switch>span:nth-child(2){min-width:0;display:grid}.profile-switch small{color:var(--muted);font-size:11px;font-weight:700}.profile-switch strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.profile-action{color:var(--brand-deep);margin-left:auto;font-size:12px;font-weight:800}.main-stage{min-width:0;padding-top:8px}.wrap{width:min(880px,100%);margin:0 auto;padding:24px 20px 90px}header.app{justify-content:space-between;align-items:center;gap:16px;display:flex}.page-header{margin-bottom:24px;padding:10px 4px 0}header.app h1{letter-spacing:-1.1px;margin:2px 0 0;font-size:clamp(26px,4vw,38px);line-height:1.08}header.app .who{color:var(--muted);margin-top:7px;font-size:15px;font-weight:650}.eyebrow{color:var(--brand-deep);letter-spacing:.11em;text-transform:uppercase;font-size:12px;font-weight:900}.child-wrap{padding-top:32px}.child-hero{box-shadow:var(--shadow);background:linear-gradient(135deg,#effbf8,#fff 65%);border:2px solid #b9e3de;border-radius:24px;margin-bottom:18px;padding:20px;position:relative;overflow:hidden}.child-hero:after{content:"";border:22px solid #119b8e12;border-radius:50%;width:120px;height:120px;position:absolute;bottom:-46px;right:110px}.child-avatar{border-radius:19px;width:58px;height:58px}.child-heading{z-index:1;flex:1}.child-hero .streak{background:var(--sun-soft);width:fit-content;color:var(--gold);border-radius:999px;align-items:center;gap:5px;margin-top:8px;padding:5px 9px;font-size:13px;font-weight:850;display:flex}.card,.task,.progress-card{border:2px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}.card{margin-bottom:16px;padding:20px}.card h2{letter-spacing:-.3px;margin:0 0 12px;font-size:19px;line-height:1.25}.card h3{margin:22px 0 9px;font-size:16px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{justify-content:space-between;align-items:center;gap:12px;display:flex}.muted{color:var(--muted);font-size:14px}.stack>*+*{margin-top:12px}.icon-line,.icon-tag,.compact-button,.profile-choice,.date-switcher button{align-items:center;gap:7px;display:inline-flex}button{border:2px solid var(--line-strong);background:var(--card);min-height:46px;color:var(--ink);border-bottom-width:4px;border-radius:14px;padding:10px 16px;font-weight:800;transition:background-color .16s,border-color .16s,color .16s,transform .1s;box-shadow:inset 0 1px #ffffffb3}button:hover{background:#f7fbfb;border-color:#a9c5c8}button:active:not(:disabled){border-bottom-width:2px;transform:translateY(2px)}button:disabled{cursor:not-allowed;opacity:.48}button.primary{border-color:var(--brand-deep);background:var(--brand);color:#fff}button.primary:hover{background:#0d8e82}button.task-complete,button.task-complete:hover{background:var(--brand-deep)}button.warn{background:var(--warn-soft);color:var(--warn);border-color:#dc9a8d}button.ghost{box-shadow:none;background:0 0;border-color:#0000;border-bottom-width:2px}button.ghost:hover{border-color:var(--line);background:#ffffffb3}button.big{width:100%;padding:15px 18px;font-size:17px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--sky);outline-offset:3px;box-shadow:var(--focus)}input,select,textarea{border:2px solid var(--line-strong);width:100%;min-height:46px;color:var(--ink);background:#fff;border-radius:13px;padding:11px 13px}input:hover,select:hover,textarea:hover{border-color:#9ebfc2}textarea{resize:vertical;min-height:92px}label{margin-bottom:6px;font-size:14px;font-weight:800;display:block}.field+.field{margin-top:14px}.tag{background:var(--brand-soft);color:var(--brand-deep);border-radius:999px;align-items:center;gap:4px;padding:5px 10px;font-size:12px;font-weight:850;display:inline-flex}.tag.money{background:var(--sun-soft);color:var(--gold)}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.mute{color:var(--muted);background:#edf2f2}.tag.info{color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--line);background:#fff}.tag.status-wait{color:var(--muted);background:#edf2f2}.tag.status-ready{background:var(--sky-soft);color:#1d6fa8}.tag.status-doing{color:#fff;background:#2d8fd5}.tag.status-done{background:var(--brand-soft);color:var(--brand-deep)}.tag.status-retry{background:var(--warn-soft);color:var(--warn)}.tag.kind-learning,.tag.kind-practice{background:var(--sky-soft);color:#1d6fa8}.tag.kind-responsibility{background:var(--brand-soft);color:var(--brand-deep)}.tag.kind-paid_extra{background:var(--sun-soft);color:var(--gold)}.tag.kind-restitution{background:var(--warn-soft);color:var(--warn)}.task-info,.task-status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.task-info{margin-top:6px}.task{box-shadow:var(--shadow-soft);padding:16px 18px;position:relative;overflow:hidden}.task:before{background:var(--sky);content:"";width:6px;position:absolute;inset:0 auto 0 0}.task+.task{margin-top:12px}.task.task-learning{background:#f4fafd}.task.task-learning:before{background:var(--sky)}.task.task-responsibility{background:#f3fbf8}.task.task-responsibility:before{background:var(--brand)}.task.task-paid_extra{background:#fffaf0}.task.task-paid_extra:before{background:var(--sun)}.task.task-practice{background:#f4fafd}.task.task-practice:before{background:var(--sky)}.task.task-restitution{background:#fff6f4}.task.task-restitution:before{background:var(--warn)}.task.done{border-color:#b6dfd3}.task.done:before{filter:saturate(1.1)}.task .title{font-size:16px;font-weight:850}.task .meta{color:var(--muted);margin-top:4px;font-size:13px;font-weight:620}.balance{color:var(--brand-deep);letter-spacing:-.8px;font-size:32px;font-weight:900}.balance.zero{color:var(--muted)}.ledger-row{border-bottom:2px solid #edf3f3;justify-content:space-between;gap:12px;padding:13px 0;display:flex}.ledger-row:last-child{border-bottom:0}.amount.plus{color:var(--brand-deep);font-weight:850}.amount.minus{color:var(--warn);font-weight:850}.notice{border:2px solid;border-radius:14px;padding:13px 15px;font-size:14px;font-weight:620}.notice.err{background:var(--warn-soft);color:#9f3f32;border-color:#efbdb5}.notice.ok{background:var(--brand-soft);color:var(--brand-deep);border-color:#a8dbd4}.notice.info{background:var(--sky-soft);color:#335f77;border-color:#bddcec}.notice.sticky{z-index:3;position:sticky;top:8px;box-shadow:0 8px 24px #143c371f}.progress-card{margin-bottom:16px;padding:16px 18px}.progress-count{background:var(--brand-soft);min-width:52px;height:52px;color:var(--brand-deep);border-radius:17px;place-items:center;font-size:18px;font-weight:900;display:grid}.progress-track{background:#eaf2f2;border:2px solid #b9d6d5;border-radius:999px;height:14px;margin-top:14px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--brand), #35bea7);height:100%;transition:width .3s;display:block}.date-switcher{grid-template-columns:1fr auto 1fr;gap:10px;margin-bottom:16px;display:grid}.date-switcher button:first-child{justify-content:flex-start}.date-switcher button:last-child{justify-content:flex-end}.code-box{background:var(--brand-soft);color:var(--brand-deep);letter-spacing:5px;text-align:center;border:2px dashed #8fcac3;border-radius:16px;padding:22px;font:800 30px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace}.weekdays{flex-wrap:wrap;gap:6px;display:flex}.weekdays button{flex:1;min-width:44px;padding:9px 0;font-size:13px}.weekdays button[aria-pressed=true],.period-pills button[aria-pressed=true]{border-color:var(--brand-deep);background:var(--brand);color:#fff}.empty{border:2px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);text-align:center;background:#ffffffa3;margin:8px 0;padding:38px 20px}.empty strong{color:var(--ink);margin:10px 0 4px;font-size:18px;display:block}.empty .big{margin-bottom:8px;font-size:42px}.empty-icon{background:var(--sky-soft);width:68px;height:68px;color:var(--sky);border-radius:22px;margin:0 auto;box-shadow:0 4px #bddcec}.center-screen{width:min(430px,100%);margin:8vh auto;padding:0 18px}.profile-picker{text-align:center}.profile-picker>.brand-mark{margin-bottom:18px}.profile-picker h1{letter-spacing:-1px;margin:4px 0 6px;font-size:34px}.profile-picker>.muted{margin:0 0 20px}.profile-choice{color:var(--brand-deep);text-align:left;justify-content:flex-start}img.evidence{border:2px solid var(--line);border-radius:15px;max-width:100%;margin-top:10px}.learning-video,.video-frame iframe,.video-frame video{aspect-ratio:16/9;background:#111;border:0;border-radius:16px;height:auto;width:100%!important}.video-frame>div{aspect-ratio:16/9;width:100%}.video-stage{position:relative}.video-enlarge-btn{z-index:2;min-height:36px;padding:6px 12px;position:absolute;top:10px;right:10px}.video-end-cta{z-index:4;aspect-ratio:16/9;background:#0b10109e;border-radius:16px;place-items:center;display:grid;position:absolute;inset:0 0 auto}.video-end-cta button{width:auto;min-width:240px;min-height:56px;padding:14px 28px;font-size:20px}.video-stage.is-enlarged{z-index:50;background:#0b1010;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.video-stage.is-enlarged .video-enlarge-btn{position:fixed;top:16px;right:16px}.video-stage.is-enlarged .video-frame,.video-stage.is-enlarged .learning-video{aspect-ratio:16/9;width:min(100vw - 32px,177.778vh - 85.3333px);height:auto;max-height:calc(100vh - 48px)}.video-stage.is-enlarged .video-frame iframe{height:100%!important}.video-controls{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.video-stage.is-enlarged .video-controls{justify-content:center;margin-top:0;position:fixed;bottom:16px;left:16px;right:16px}.video-controls button{min-height:36px;padding:6px 12px}.quiz-gate{border:2px solid var(--sky);background:#fff;border-radius:16px;margin-top:12px;padding:14px;position:relative}.learning-session{max-width:820px;margin:24px auto}.period-pills button{min-height:38px;padding:6px 11px;font-size:13px}.session-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px;display:grid}.session-adjust-grid{grid-template-columns:120px minmax(180px,1fr) auto;align-items:end;gap:10px;margin-top:12px;display:grid}.review-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0 18px;display:grid}.review-summary{background:var(--brand-soft);border:2px solid #b8ded8;border-radius:16px;padding:15px}.review-score{color:var(--brand-deep);margin-top:5px;font-size:30px;font-weight:900;line-height:1.2}.review-attempt summary{cursor:pointer}.review-answer{border-top:2px solid var(--line);padding:10px 0}.review-answer:first-of-type{margin-top:9px}.learning-heading{margin-bottom:4px}.learning-view-tabs{border:2px solid var(--line);background:#ffffffb3;border-radius:17px;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin:12px 0 16px;padding:6px;display:grid}.learning-view-tabs button{min-height:44px;box-shadow:none;color:var(--muted);background:0 0;border-color:#0000;border-bottom-width:2px;justify-content:center;align-items:center;gap:7px;padding:8px 12px;display:inline-flex}.learning-view-tabs button[aria-selected=true]{background:var(--brand-soft);color:var(--brand-deep);border-color:#a9ddd7}.rhythm-course-card{background:linear-gradient(135deg,#fff 0%,#f0faf8 100%)}.rhythm-course-card h2{margin:5px 0 4px;font-size:23px}.rhythm-course-card>.spread>svg{color:var(--brand-deep);flex:none}.rhythm-course-card>button{margin-top:16px}.compact-field{max-width:420px;margin-top:14px}.weekly-board h2{margin:5px 0 0}.week-strip,.preview-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:17px;display:grid}.week-day{border:2px solid var(--line);background:#f8fbfb;border-radius:15px;min-width:0;overflow:hidden}.week-day.has-session{background:#f1fbf9;border-color:#a9ddd7}.week-day-head{border-bottom:2px solid var(--line);text-align:center;padding:9px 8px 7px;display:grid}.week-day-head b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.week-day-head span{color:var(--muted);font-size:11px}.week-day-body{align-content:start;gap:5px;min-height:78px;padding:7px;display:grid}.rest-label{color:#91a1a6;text-align:center;align-self:center;font-size:12px;font-weight:700}.session-chip{background:var(--sky-soft);color:#285c77;text-align:center;border-radius:9px;padding:6px 5px;display:grid}.session-chip.light{background:var(--sun-soft);color:var(--gold)}.session-chip b{font-size:12px}.session-chip span{text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:700;overflow:hidden}.rhythm-hint{color:var(--muted);background:#f1f5f5;border-radius:12px;margin-top:12px;padding:11px 13px;font-size:13px}.course-picker .spread{margin-top:14px}.lesson-list{border:2px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);overflow:hidden}.lesson-row{border-bottom:2px solid #edf3f3;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 16px;display:grid}.lesson-row:last-child{border-bottom:0}.lesson-row .title{font-weight:830}.lesson-row .meta{color:var(--muted);font-size:12px}.lesson-number{background:var(--sky-soft);width:34px;height:34px;color:var(--sky);border-radius:11px;place-items:center;font-size:13px;font-weight:900;display:grid}.planner-shell{margin-top:4px}.planner-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:6px 4px 12px;display:flex}.planner-header h2{margin:3px 0;font-size:24px}.planner-layout{grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr);align-items:start;gap:16px;display:grid}.rhythm-cal-layout{grid-template-columns:264px minmax(0,1fr);align-items:start;gap:14px;display:grid}.rhythm-cal-layout>.cal{min-width:0}@media (width<=1100px){.rhythm-cal-layout{grid-template-columns:minmax(0,1fr)}}.planner-form h3{margin:0 0 12px}.planner-form h3:not(:first-child){margin-top:24px}.planner-field-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.planner-field-grid .field+.field{margin-top:0}.session-editor{border:2px solid var(--line);background:#fbfdfd;border-radius:15px;padding:13px}.session-editor+.session-editor{margin-top:9px}.session-editor .ghost{min-height:32px;padding:3px 8px}.rhythm-preview{border-color:#aedbd6;position:sticky;top:24px}.rhythm-preview h2{margin:5px 0 14px}.rhythm-metrics{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.rhythm-metrics>div{background:var(--brand-soft);text-align:center;border-radius:12px;padding:9px 5px;display:grid}.rhythm-metrics b{color:var(--brand-deep);font-size:19px;line-height:1.2}.rhythm-metrics span{color:var(--muted);font-size:10px;font-weight:750}.preview-week{grid-template-columns:1fr;margin-top:14px}.preview-week>div{min-height:35px;color:var(--muted);background:#f4f7f7;border-radius:10px;grid-template-columns:30px repeat(3,minmax(0,1fr));align-items:center;gap:5px;padding:5px 7px;display:grid}.preview-week>div.active{color:var(--ink);background:#eef9f7}.preview-week b{font-size:11px}.preview-week span{background:var(--sky-soft);color:#285c77;text-align:center;border-radius:7px;padding:4px;font-size:10px;font-weight:800}.preview-week span.light{background:var(--sun-soft);color:var(--gold)}.preview-week small{grid-column:2/-1;font-size:10px}.rhythm-legend{color:var(--muted);gap:12px;margin-top:11px;font-size:11px;font-weight:700;display:flex}.rhythm-legend span{align-items:center;gap:5px;display:inline-flex}.rhythm-legend i{background:var(--sky-soft);border-radius:3px;width:10px;height:10px}.rhythm-legend i.light{background:var(--sun-soft)}.planner-actions{grid-template-columns:auto 1fr;gap:8px;margin-top:18px;display:grid}.cycle-board{margin-top:16px}.cycle-strip{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:14px;display:grid}.plan-chip{background:var(--sky-soft);color:#285c77;border-radius:9px;gap:2px;padding:7px 8px;display:grid}.plan-chip.review{background:var(--sun-soft);color:var(--gold)}.plan-chip b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.plan-chip span{text-overflow:ellipsis;white-space:nowrap;opacity:.85;font-size:10px;font-weight:700;overflow:hidden}.plan-chip em{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-style:normal;font-weight:900}.weekboard-children{flex-wrap:wrap;margin-top:12px}.weekboard-nav{flex-wrap:wrap;gap:8px;margin-top:12px}.weekboard-nav button{min-height:38px;padding:6px 12px}.weekboard-conflict-hint{background:var(--warn-soft);color:var(--warn)}.weekboard-scroll{margin-top:14px;padding-bottom:4px;overflow-x:auto}.weekboard-grid{grid-template-columns:64px repeat(7,minmax(110px,1fr));gap:7px;min-width:840px;display:grid}.weekboard-time{color:var(--muted);text-align:center;place-items:center;padding:6px 4px;font-size:11px;font-weight:800;display:grid}.weekboard-head{border:2px solid var(--line);text-align:center;background:#f8fbfb;border-radius:15px;padding:9px 8px 7px;display:grid}.weekboard-head b{font-size:12px}.weekboard-head span{color:var(--muted);font-size:11px}.weekboard-cell{border:2px solid var(--line);background:#f8fbfb;border-radius:15px;align-content:start;gap:5px;min-height:72px;padding:7px;display:grid}.weekboard-cell.conflict{border-color:var(--warn);background:var(--warn-soft)}.weekboard-cell.gap{background:#dff5f173}.weekboard-cell.rest{background:#f4f7f7}.weekboard-conflict-label{color:var(--warn);letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-style:normal;font-weight:900}.weekboard-add{min-height:32px;padding:3px 8px;font-size:12px}.rhythm-legend i.review{background:var(--sun-soft)}.enrollment-days{gap:10px;margin-top:14px;display:grid}.enrollment-day{grid-template-columns:64px minmax(0,1fr);gap:10px;display:grid}.enrollment-day-head{text-align:center;background:#f1f5f5;border-radius:12px;align-content:start;padding:8px 6px;display:grid}.enrollment-day-head b{font-size:12px}.enrollment-day-head span{color:var(--muted);font-size:11px}.enrollment-day-body{gap:6px;display:grid}.enrollment-session{border:2px solid var(--line);background:#fbfdfd;border-radius:12px;align-items:center;gap:10px;padding:9px 12px;display:flex}.enrollment-session-main{flex:1;min-width:0}.enrollment-session .title{text-overflow:ellipsis;white-space:nowrap;font-weight:830;overflow:hidden}.enrollment-session .meta{color:var(--muted);font-size:12px}.enrollment-session .ghost{min-height:32px;padding:3px 10px}.replace-dialog{border-color:#aedbd6;margin-top:14px}.replace-dialog h3{margin:3px 0}.wizard-step{border:2px solid var(--line);background:#fbfdfd;border-radius:16px;padding:15px}.wizard-step+.wizard-step{margin-top:10px}.wizard-step>h3{margin:0 0 10px;font-size:16px}.wizard-step[aria-current=step]{background:var(--brand-soft);border-color:#a9ddd7}.wizard-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.segment-list{gap:8px;margin-top:12px;display:grid}.segment-row{border:2px solid var(--line);background:#fff;border-radius:13px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.segment-row .title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:800;overflow:hidden}.segment-row .meta{color:var(--muted);font-size:12px}.segment-badge{background:var(--sky-soft);min-width:34px;height:34px;color:var(--sky);border-radius:11px;place-items:center;font-size:12px;font-weight:900;display:grid}.policy-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.policy-grid .field+.field{margin-top:0}.policy-warning{background:var(--sun-soft);color:#7a5205;border:2px solid #e6c98f;border-radius:14px;margin-top:12px;padding:12px 14px;font-size:13px;font-weight:650}.conduct-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr) auto;align-items:end;gap:10px;margin-top:10px;display:grid}.proposal-card{background:var(--sky-soft);border:2px solid #bddcec;border-radius:16px;padding:14px}.proposal-card+.proposal-card{margin-top:10px}.proposal-amount{color:var(--gold);font-size:22px;font-weight:900}.topic-chip{border-radius:999px;min-height:36px;padding:5px 12px;font-size:13px}.topic-chip[aria-pressed=true]{border-color:var(--brand-deep);background:var(--brand);color:#fff}.qa-list{gap:8px;display:grid}.qa-item{border:2px solid var(--line);background:#fff;border-radius:13px}.qa-item.open{border-color:#a9ddd7}.qa-head{width:100%;min-height:44px;box-shadow:none;text-align:left;background:0 0;border:0;border-radius:11px;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 12px;display:grid}.qa-head:hover{background:#f7fbfb}.qa-head .qa-no{background:var(--sky-soft);width:26px;height:26px;color:var(--sky);border-radius:9px;place-items:center;font-size:12px;font-weight:900;display:grid}.qa-head .qa-prompt{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:750;overflow:hidden}.qa-head .qa-prompt.empty{color:var(--muted);font-weight:620}.qa-head .qa-sign{color:var(--muted);font-size:12px;font-weight:800}.qa-body{padding:2px 12px 12px}.option-row{grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;display:grid}.option-row+.option-row{margin-top:8px}.option-row input[type=radio]{width:22px;min-height:22px;margin:0}.option-row input[type=text]{min-height:40px}.pick-list{gap:8px;display:grid}.pick-row{border:2px solid var(--line);background:#fff;border-radius:13px;grid-template-columns:24px auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.pick-row.picked{border-color:var(--brand-deep);background:var(--brand-soft)}.pick-row input[type=checkbox]{width:22px;min-height:22px;margin:0}.pick-row .title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:800;overflow:hidden}.pick-row .meta{color:var(--muted);font-size:12px}.mover-bar{z-index:5;background:var(--brand-soft);border:2px solid #a9ddd7;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:12px;padding:12px 14px;display:grid;position:sticky;bottom:8px}.mover-bar .field+.field{margin-top:0}.mover-bar .field{min-width:0}@media (width<=820px){.app-shell{padding:16px 14px 100px;display:block}.side-rail{-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:20px;flex-direction:row;align-items:center;min-height:auto;padding:12px 14px;display:flex;position:static}.brand-mark{border-radius:14px;width:44px;height:44px}.brand-lockup strong{font-size:20px}.brand-lockup small{display:none}.profile-switch{width:auto;margin:0 0 0 auto;padding:8px 10px}.profile-switch>svg,.profile-switch small,.profile-action{display:none}.profile-switch strong{max-width:110px}.tabs{z-index:20;border:2px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;border-radius:21px;grid-template-columns:repeat(5,1fr);gap:4px;padding:8px;display:grid;position:fixed;inset:auto 10px 10px;box-shadow:0 8px 34px #1f414633}.tab-button{text-align:center;border-radius:14px;place-items:center;gap:3px;min-width:0;min-height:62px;padding:5px 2px;display:grid}.tab-icon{border-radius:11px;width:34px;height:34px}.tab-copy strong{font-size:11px}.tab-copy small{display:none}.main-stage{padding-top:10px}.page-header{margin-bottom:17px;padding:8px 3px 0}.header-spark{border-radius:16px;width:50px;height:50px}.planner-layout{grid-template-columns:1fr}.rhythm-preview{position:static}}@media (width<=560px){body{background-size:34px 34px,auto}.wrap{padding:16px 12px 88px}.child-wrap{padding-top:14px}header.app.child-hero{grid-template-columns:auto minmax(0,1fr);justify-content:normal;align-items:center;padding:16px;display:grid}.child-heading{min-width:0}.child-avatar{border-radius:16px;width:50px;height:50px}.child-hero .compact-button{grid-column:1/-1;justify-content:center;width:100%;margin-top:12px}.main-stage>.stack>.spread{display:block}.main-stage>.stack>.spread>.row{grid-template-columns:1fr 1fr;width:100%;margin-top:14px;display:grid}.date-switcher{grid-template-columns:1fr 1fr}.date-switcher button{padding-inline:10px;font-size:13px;justify-content:center!important}.date-switcher button:nth-child(2):not(:last-child){grid-area:2/1/auto/-1}.spread{align-items:flex-start}.card{padding:17px}.task{padding:15px 15px 15px 18px}.ledger-row{flex-direction:column;align-items:flex-start}.ledger-row>button{width:100%}.policy-grid,.conduct-grid{grid-template-columns:1fr 1fr}.conduct-grid>:nth-child(3),.conduct-grid button{grid-column:1/-1}.segment-row{grid-template-columns:auto minmax(0,1fr)}.segment-row>:last-child{grid-column:2;justify-self:start}.session-slot-grid,.session-adjust-grid{grid-template-columns:1fr 1fr}.session-adjust-grid button{grid-column:1/-1}.learning-heading>button{width:100%;margin-top:12px}.learning-view-tabs{gap:4px;padding:5px}.learning-view-tabs button{gap:4px;padding:7px 4px;font-size:12px}.week-strip{scroll-snap-type:x proximity;padding-bottom:4px;display:flex;overflow-x:auto}.weekboard-scroll{scroll-snap-type:x proximity}.weekboard-grid{min-width:760px}.week-day{scroll-snap-align:start;flex:0 0 94px}.planner-field-grid{grid-template-columns:1fr}.planner-field-grid .field+.field{margin-top:14px}.lesson-row{grid-template-columns:34px minmax(0,1fr);padding:12px}.lesson-row>.tag{grid-column:2;justify-self:start}.planner-actions{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.cal{--cal-c0:#0b8043;--cal-c1:#3f51b5;--cal-c2:#c5221f;--cal-c3:#e37400;--cal-c4:#8e24aa;--cal-c5:#039be5;--cal-c6:#d81b60;--cal-c7:#5f6368;--cal-hour:56px;min-width:0}.cal-busy{opacity:.72;pointer-events:none}.cal-toolbar{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.cal-toolbar-left{flex-wrap:nowrap;align-items:center;gap:10px;min-width:0;display:flex}.cal-toolbar-right{text-align:right;flex:none}.cal-children{flex-wrap:nowrap;gap:6px;display:flex}.cal-chip{border-radius:999px;min-height:32px;padding:4px 12px;font-size:13px}.cal-chip[aria-pressed=true]{border-color:var(--brand-deep);background:var(--brand);color:#fff}.cal-nav{flex-wrap:nowrap;gap:6px;display:flex}.cal-nav button{min-height:32px;padding:4px 10px;font-size:13px}.cal-week-label{margin:0;font-size:15px;font-weight:850;line-height:1.2}.cal-totals{color:var(--muted);margin:2px 0 0;font-size:12px;font-weight:650}.cal-scroll{border:2px solid var(--line);background:var(--card);border-radius:16px;max-height:min(78vh,920px);overflow:auto}.cal-grid{grid-template-rows:auto auto 1fr;grid-template-columns:52px repeat(7,minmax(0,1fr));min-width:0;display:grid}.cal-corner{z-index:6;background:var(--card);border-bottom:1px solid var(--line);border-right:1px solid var(--line);position:sticky;top:0;left:0}.cal-head{z-index:5;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:center;background:#f8fbfb;min-height:44px;padding:8px 4px 7px;display:grid;position:sticky;top:0}.cal-head b{font-size:12px}.cal-head span{color:var(--muted);font-size:11px;font-weight:700}.cal-head.is-today,.cal-allday.is-today,.cal-day.is-today{background:#119b8e12}.cal-allday-label{z-index:5;border-bottom:2px solid var(--line-strong);border-right:1px solid var(--line);min-height:56px;color:var(--brand-deep);text-align:center;background:#e8f4f2;place-items:center;padding:6px 4px;font-size:10px;font-weight:850;display:grid;position:sticky;top:44px;left:0}.cal-allday{z-index:4;border-bottom:2px solid var(--line-strong);border-right:1px solid var(--line);background:#e8f4f2;flex-wrap:wrap;gap:4px;min-height:56px;padding:6px;display:flex;position:sticky;top:44px}.cal-hours{z-index:3;background:var(--card);border-right:1px solid var(--line);position:sticky;left:0}.cal-hour-label{color:var(--muted);text-align:right;border-top:1px solid var(--line);background:var(--card);padding:2px 6px 0 0;font-size:10px;font-weight:800}.cal-hour-label:first-child{border-top:0}.cal-body{grid-column:2/-1;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;position:relative}.cal-day{border-right:1px solid var(--line);touch-action:none;min-width:0;position:relative}.cal-hour-slot{border-top:1px solid var(--line);position:relative}.cal-hour-slot i{pointer-events:none;border-top:1px dashed #bdd3d5b3;height:0;position:absolute;top:50%;left:0;right:0}.cal-now{z-index:3;pointer-events:none;background:#e23d3d;height:2px;position:absolute;left:0;right:0}.cal-now:before{content:"";background:#e23d3d;border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;left:-5px}.cal-block{z-index:2;text-align:left;border:0;border-left:4px solid var(--cal-tone);background:color-mix(in srgb, var(--cal-tone) 18%, #fff);min-height:0;color:color-mix(in srgb, var(--cal-tone) 42%, #20343d);box-shadow:none;cursor:grab;border-radius:4px 7px 7px 4px;align-content:start;gap:1px;padding:3px 6px 6px 8px;font-weight:700;display:grid;position:absolute;overflow:hidden}.cal-block:hover{background:color-mix(in srgb, var(--cal-tone) 28%, #fff)}.cal-block:active:not(:disabled){transform:none}.cal-c0{--cal-tone:var(--cal-c0)}.cal-c1{--cal-tone:var(--cal-c1)}.cal-c2{--cal-tone:var(--cal-c2)}.cal-c3{--cal-tone:var(--cal-c3)}.cal-c4{--cal-tone:var(--cal-c4)}.cal-c5{--cal-tone:var(--cal-c5)}.cal-c6{--cal-tone:var(--cal-c6)}.cal-c7{--cal-tone:var(--cal-c7)}.cal-block-allday{width:auto;min-height:28px;padding:3px 7px;position:relative;inset:auto}.cal-block-meta{min-width:0;color:color-mix(in srgb, var(--cal-tone) 55%, #102028);white-space:nowrap;align-items:baseline;gap:5px;font-size:10px;font-weight:800;line-height:1.2;display:flex;overflow:hidden}.cal-block-title{-webkit-line-clamp:2;color:#173038;-webkit-box-orient:vertical;font-size:12px;line-height:1.25;display:-webkit-box;overflow:hidden}.cal-block-title.is-passed{opacity:.75;text-decoration:line-through}.cal-block.is-passed{opacity:.55}.cal-block-extra{gap:6px;min-width:0;display:flex;overflow:hidden}.cal-block-topic,.cal-block-kind{color:color-mix(in srgb, var(--cal-tone) 35%, #4a5f66);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:650;overflow:hidden}.cal-block.is-conflict{box-shadow:inset 0 0 0 1.5px var(--warn)}.cal-block.is-locked{cursor:not-allowed}.cal-block.is-pending{opacity:.45}.cal-resize{cursor:ns-resize;height:10px;position:absolute;bottom:0;left:8px;right:8px}.cal-ghost{z-index:1;border:2px dashed var(--brand);pointer-events:none;background:#119b8e1f;border-radius:8px;position:absolute;left:2px;right:2px}.cal-block-code{letter-spacing:.04em;font-size:11px;font-weight:900}.cal-sidebar{min-width:0;padding:12px}.cal-side-list{gap:2px;margin-top:8px;display:grid}.cal-side-row{grid-template-columns:16px 14px auto minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;height:34px;display:grid}.cal-side-row.cal-side-topic{grid-template-columns:16px minmax(0,1fr);height:30px}.cal-tick{cursor:pointer;place-items:center;width:16px;height:16px;display:grid;position:relative}.cal-tick input{opacity:0;cursor:pointer;width:16px;height:16px;margin:0;position:absolute;inset:0}.cal-tick-mark{border:1.5px solid var(--line-strong);background:#fff;border-radius:4px;width:16px;height:16px;display:block}.cal-tick input:checked+.cal-tick-mark{border-color:var(--cal-tone,var(--brand));background:var(--cal-tone,var(--brand));box-shadow:inset 0 0 0 2px #fff}.cal-swatch-wrap{width:14px;height:14px;position:relative}.cal-swatch{border:1px solid color-mix(in srgb, var(--cal-tone) 55%, #20343d);background:var(--cal-tone);width:14px;height:14px;min-height:0;box-shadow:none;border-radius:3px;padding:0}.cal-palette{z-index:20;border:2px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:10px;grid-template-columns:repeat(4,18px);gap:6px;padding:8px;display:grid;position:absolute;top:20px;left:0}.cal-palette-swatch{border:1px solid var(--line);background:var(--cal-tone);border-radius:4px;width:18px;height:18px;min-height:0;padding:0}.cal-palette-swatch.is-on{outline-offset:1px;outline:2px solid #111}.cal-code,.cal-code-input{letter-spacing:.04em;text-transform:uppercase;background:color-mix(in srgb, var(--cal-tone) 14%, #fff);border-radius:6px;height:22px;min-height:0;padding:0 6px;font-size:11px;font-weight:850}.cal-code{border:1px solid color-mix(in srgb, var(--cal-tone) 30%, var(--line))}.cal-code-input{width:64px}.cal-side-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.cal-side-count{color:var(--muted);font-size:11px;font-weight:750}.cal-side-topics{margin-top:14px}.lesson-picker{z-index:40;width:min(520px,100vw - 32px);max-height:76vh;position:fixed;top:12%;left:50%;overflow:auto;transform:translate(-50%)}@media (width<=900px){.cal-toolbar{flex-wrap:wrap}}@media (width<=560px){.cal-scroll{max-height:min(70vh,720px)}}
