:root{color-scheme:light;--button-ink:#fff;--bg:#f3f5f6;--canvas:#181818;--surface:#fff;--ink:#27313a;--muted:#52606d;--accent:#0976a9;--soft:#e0eef4;--line:#dce3e7;--success:#28764f;--space-small:12px;--space-group:24px;--space-section:32px}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-height:100vh;background:var(--canvas);color:var(--ink);font-family:ui-rounded,"SF Pro Rounded",system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.45}
.sheet{position:relative;max-width:760px;margin:40px auto;padding:32px;background:var(--surface);border-radius:26px}
h1,h2,p{margin:0}
h1{font-size:26px;letter-spacing:-.03em;color:var(--accent);font-weight:600;line-height:1.2}
h2{font-size:20px;font-weight:600;letter-spacing:-.02em}
.muted{color:var(--muted);font-size:14px}
.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.header-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}.header-button{padding:4px 0;min-height:32px;font-size:14px;white-space:nowrap}
.school{padding:28px;background:var(--soft);border-radius:18px}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.goal{font-size:28px;letter-spacing:-.03em;font-weight:600;margin-top:16px}
.balance{display:flex;gap:24px;flex-wrap:wrap;margin:20px 0;color:var(--muted);font-size:14px}
.saved{font-size:14px;color:var(--success);font-weight:550}
.saved::before{content:"✓ ";font-weight:650}
.subjects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:12px}
label{font-size:15px;font-weight:500}
input{display:block;width:100%;margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;min-height:48px}
input:disabled{opacity:1;color:var(--muted)}
select{display:block;width:100%;min-width:0;margin-top:8px;padding:12px 14px;min-height:48px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit}
.page-fields{display:grid;grid-template-columns:2fr 1fr 1.25fr;gap:16px;margin:24px 0 10px}
.page-fields>div{min-width:0}
.progress-saved{color:var(--success);font-size:14px;font-weight:550}
#page-progress{display:block;appearance:none;width:100%;height:6px;border:0;border-radius:6px;overflow:hidden;margin:12px 0 18px;background:var(--line)}
#page-progress::-webkit-progress-bar{background:var(--line)}
#page-progress::-webkit-progress-value{background:var(--accent);border-radius:6px}
#school-status{margin-top:12px}
#page-closing{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}
#page-credit-choice{max-width:250px;margin-bottom:14px}
#page-close-guidance{margin:0 0 14px}
#page-prediction{min-height:24px;margin-top:10px}
#page-message:not(:empty){font-size:14px;color:var(--muted);margin-top:14px}
.unfinished-section{margin-top:32px}
#unfinished{margin-top:12px}
.page-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.page-entry>div{min-width:0;overflow-wrap:anywhere}
.page-entry-title{font-size:15px}
.page-entry button{flex-shrink:0;padding:10px 12px;font-size:14px}
.today-pages{margin-top:28px}
.today-pages summary{cursor:pointer;font-size:14px;color:var(--muted);padding:10px 0}
button{border:0;border-radius:10px;background:var(--accent);color:var(--button-ink);padding:12px 18px;min-height:46px;font:inherit;font-size:15px;font-weight:550;cursor:pointer}
button:disabled{opacity:.45;cursor:default}
button.quiet{background:transparent;color:var(--muted)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#prediction{margin-top:14px;min-height:42px}
.save-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px}
#message{font-size:14px;color:var(--muted);max-width:440px}
#message:not(:empty){margin-top:14px}
.next-goal{margin-top:18px;font-size:16px;font-weight:550}
#extra-total{margin-top:12px}
#extra-section{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}
#extra-section summary{cursor:pointer;color:var(--accent);font-size:15px}
#extra-notebook{margin-top:16px}
#extra-prediction{margin-top:14px;min-height:24px}
.chore-section{margin-top:36px}
.chore-group{margin-top:22px}
.chore-group h3{font-size:14px;font-weight:600;color:var(--muted);margin:0 0 4px}
.chore-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:16px}
.chore-row > :first-child{min-width:0;overflow-wrap:anywhere}
.chore-state{white-space:nowrap;font-size:13px;color:var(--muted)}
.chore-overview{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.day-mode{border-block:1px solid var(--line);padding:15px 0;margin:20px 0 26px}
.day-mode-row,.short-stage{display:flex;justify-content:space-between;align-items:center;gap:16px}
.day-mode-row h2{font-size:16px;font-weight:600}
.day-mode-row .quiet{padding:8px 0;text-align:right;color:var(--accent)}
.short-stages{border-top:1px solid var(--line);margin-top:14px}
.short-stage{padding:12px 0;min-height:70px}
.short-stage+.short-stage{border-top:1px solid var(--line)}
.short-stage strong{font-size:14px;font-weight:550}
.short-stage button{flex-shrink:0}
#chore-progress{display:block;appearance:none;width:100%;height:6px;border:0;border-radius:6px;overflow:hidden;margin:14px 0 20px;background:var(--line)}
#chore-progress::-webkit-progress-bar{background:var(--line)}
#chore-progress::-webkit-progress-value{background:var(--accent);border-radius:6px}
.chore-group h2{font-size:15px;color:var(--muted);font-weight:550;margin:0 0 6px}
.chore-edit-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid var(--line)}
.chore-label{min-width:0;overflow-wrap:anywhere;flex:1;font-size:16px;font-weight:400}
.chore-tick{display:flex;align-items:center;gap:14px;flex:1;cursor:pointer}
.chore-tick input{width:22px;min-height:22px;height:22px;flex-shrink:0;margin:0;accent-color:var(--accent);cursor:pointer}
.chore-edit-row.is-done .chore-label{color:var(--muted)}
.chore-answers{display:flex;gap:6px}
.chore-answers button{background:var(--bg);color:var(--muted);min-width:54px;padding:10px 14px;font-weight:500}
.chore-answers button[aria-pressed=true]{background:var(--soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.school-link{font-size:14px;color:var(--accent);text-decoration:none;white-space:nowrap}
.school-link:hover{text-decoration:underline}
#chore-message:not(:empty){margin-top:20px;font-size:14px;color:var(--muted)}
#chore-retry{margin-top:12px}
footer{padding-top:28px}
dialog{max-width:460px;width:calc(100% - 32px);padding:28px;border:1px solid var(--line);border-radius:18px;color:var(--ink);background:var(--surface);box-shadow:0 18px 70px #0002}
dialog h2{font-size:22px;margin-bottom:16px}
dialog p+p{margin-top:12px}
dialog::backdrop{background:#182a3540}
.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:24px}
@media(max-width:600px){.sheet{margin:12px;padding:24px 20px;border-radius:18px}.page-header{align-items:flex-start;flex-direction:column;gap:4px;margin-bottom:24px}.school{padding:20px}.subjects{gap:10px}.balance{gap:8px;flex-direction:column}.goal{font-size:25px}.chore-row{gap:12px}.section-heading .muted{font-size:12px}}
:root[data-scheme=dark]{color-scheme:dark;--button-ink:#132630;--bg:#151b20;--surface:#202930;--ink:#e7edf0;--muted:#a8b7c2;--accent:#79c9ea;--soft:#263840;--line:#44515b;--success:#8dd5a7}

@media(prefers-color-scheme:dark){:root[data-scheme=system]{color-scheme:dark;--button-ink:#132630;--bg:#151b20;--surface:#202930;--ink:#e7edf0;--muted:#a8b7c2;--accent:#79c9ea;--soft:#263840;--line:#44515b;--success:#8dd5a7}}
@media(max-width:600px){.school-row{row-gap:6px}.school-row .chore-label{flex-basis:calc(100% - 90px)}.school-row .school-link{flex-basis:100%}}
@media(max-width:380px){.short-stage{align-items:flex-start;flex-direction:column;gap:8px}.short-stage button{width:100%}}
@media(max-width:700px){.page-fields{grid-template-columns:minmax(0,1fr)}.page-entry{align-items:flex-start;flex-direction:column;gap:6px}.page-entry button{padding-left:0}}
.final-list{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.5rem 0;flex-wrap:wrap}
.final-list p{margin:0}
.quiet-link{font-size:14px;color:var(--accent);text-decoration:none}.quiet-link:hover{text-decoration:underline}
.settings-sheet{max-width:760px}.settings-sheet #settings-child{max-width:320px}.settings-block{border-top:1px solid var(--line);padding-top:26px;margin-top:28px}
.settings-block h2{margin-bottom:6px}.settings-current{font-weight:600;margin:18px 0}.settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0 10px}
.settings-fields label{min-width:0}.settings-list{list-style:none;padding:0;margin:12px 0 0}.settings-list li{border-bottom:1px solid var(--line);padding:10px 0}
.settings-block details{margin-top:16px}.settings-block summary{cursor:pointer;color:var(--muted);font-size:14px;padding:10px 0}#settings-message{color:var(--muted);font-size:14px}
.chore-parent-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin-top:22px}.chore-parent-form>label{min-width:0}.chore-parent-form .save-row{grid-column:1/-1;margin-top:4px}#chore-message{color:var(--muted);font-size:14px}.chore-upcoming-detail{float:right;color:var(--muted);font-size:13px;padding-left:12px}
@media(max-width:600px){.settings-fields{grid-template-columns:minmax(0,1fr)}.settings-sheet .page-header{flex-direction:row;align-items:baseline}}
@media(max-width:600px){.chore-parent-form{grid-template-columns:minmax(0,1fr)}}
.login-sheet{max-width:480px;margin-top:max(48px,12vh)}.login-intro{font-size:18px;margin:6px 0 42px}.login-sheet h2{margin-bottom:4px}.google-button{min-height:52px;margin-top:26px}.login-sheet #login-status{margin-top:16px}.parent-children{display:grid;gap:12px;margin-top:24px}.parent-child-link{display:block;padding:18px 20px;border:1px solid var(--line);border-radius:14px;color:var(--ink);text-decoration:none;font-size:18px;font-weight:550}.parent-child-link:hover{background:var(--soft)}
.parent-sheet{max-width:1040px}.parent-day{margin:0;font-size:18px;font-weight:550}.parent-tools{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:24px}.parent-datebar{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}.parent-date-controls{display:flex;align-items:center;gap:4px}.parent-date-controls input{width:160px;font-size:14px;margin:0}.parent-date-controls button{padding:8px 10px;min-width:42px}.parent-recent{display:flex;gap:4px;flex-wrap:wrap;margin-top:16px}.parent-recent button{font-size:13px;padding:8px 12px;min-height:40px}.parent-recent button[aria-pressed=true]{background:var(--soft);color:var(--accent)}.parent-children{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px;align-items:start}.parent-summary{min-width:0;padding:24px;border:1px solid var(--line);border-radius:16px}.parent-summary-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.parent-summary .parent-child-link{border:0;border-radius:0;padding:0;color:var(--ink);font-size:21px}.parent-summary .parent-child-link:hover{background:transparent;color:var(--accent)}.parent-summary-metrics{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:22px}.parent-percent{font-size:28px;font-weight:600;letter-spacing:-.03em}.parent-remaining{font-size:14px;color:var(--muted);text-align:right}.parent-summary progress{display:block;width:100%;height:7px;appearance:none;border:0;border-radius:6px;overflow:hidden;background:var(--line);margin:12px 0 20px}.parent-summary progress::-webkit-progress-bar{background:var(--line)}.parent-summary progress::-webkit-progress-value{background:var(--accent);border-radius:6px}.parent-school{margin-top:3px}.parent-school-line{display:flex;justify-content:space-between;gap:12px;font-size:14px}.parent-detail{margin-top:8px;border-top:1px solid var(--line);font-size:14px}.parent-detail summary{padding:12px 0;cursor:pointer;color:var(--muted)}.parent-job{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:12px 0;border-top:1px solid var(--line)}.parent-job>:first-child{min-width:0;overflow-wrap:anywhere}.parent-job-state{flex-shrink:0;text-align:right;font-size:13px;color:var(--muted)}.parent-job-state small{display:block}.parent-empty{margin-top:24px}.consistency-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;margin-top:16px}.consistency-row progress{grid-column:1/-1;margin:4px 0;height:5px}.consistency-row small{grid-column:1/-1}.parent-detail>p{margin-block:12px}.parent-sheet #sign-out-status:empty,.parent-sheet #parent-day-status:empty{display:none}
.history-sheet{max-width:1180px;font-variant-numeric:tabular-nums}.history-sheet h1{font-size:30px}.history-sheet ::selection{background:var(--accent);color:var(--surface)}
.practice-notice{padding:16px 0;border-block:1px solid var(--line);font-size:14px;color:var(--muted);margin-bottom:28px;max-width:72ch}
.problem-help-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:32px;border-top:1px solid var(--line);padding-top:12px}
.problem-help-row button{display:flex;align-items:center;gap:10px;min-height:44px;color:var(--muted);font-size:14px;padding:8px 0}
.problem-hint{text-align:left;flex-wrap:wrap;justify-content:flex-start;column-gap:4px!important}.problem-hint-action{color:var(--accent)}
.problem-help-row svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.problem-flag{margin-left:auto;flex-shrink:0;position:relative}.problem-icon{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:12px}
.problem-action-label{position:absolute;right:0;bottom:calc(100% + 4px);white-space:nowrap;font-size:12px;line-height:1.4;padding:5px 8px;border-radius:6px;background:var(--bg);color:var(--muted);pointer-events:none}
.is-signalling .problem-icon{color:var(--accent);background:var(--soft)}
.is-signalling .problem-icon>svg{animation:flag-greeting 1s cubic-bezier(.16,1,.3,1) both;transform-origin:25% 80%}
@keyframes flag-greeting{0%,100%{transform:rotate(0)}24%{transform:rotate(-9deg)}48%{transform:rotate(5deg)}72%{transform:rotate(-3deg)}}
.problem-panel{border-top:1px solid var(--line);margin-top:16px;padding-top:24px}.problem-panel-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.problem-panel h2{font-size:22px;margin:0}.problem-panel>p{max-width:68ch;font-size:14px;margin:12px 0 24px}
.problem-form{max-width:720px}.problem-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:20px}.problem-fields label{min-width:0}
.problem-fields input,.problem-fields select{height:48px;min-width:0;box-sizing:border-box}.problem-form textarea{display:block;width:100%;margin:8px 0 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;line-height:1.5;padding:12px 14px;resize:vertical;caret-color:var(--accent)}
.problem-form>select{margin-bottom:20px}.problem-choices{border:0;padding:0;margin:0 0 20px;min-width:0}.problem-choices legend{font-weight:600}.problem-choices>p{font-size:14px;margin:8px 0 12px}.problem-choice{display:flex;align-items:flex-start;gap:10px;font-size:14px;padding:8px 0}.problem-choice input{width:20px;height:20px;min-height:20px;flex-shrink:0;margin:0;accent-color:var(--accent)}
.problem-status{min-height:1.5em;font-size:14px;margin:16px 0}.problem-record{padding:16px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.problem-record p{margin:8px 0;font-size:14px;white-space:pre-wrap}.problem-record strong{font-size:14px}.problem-record summary{font-size:14px}.problem-review{margin-top:16px;max-width:680px}.problem-review>label{display:block;margin-bottom:12px}.problem-review textarea{width:100%;font:inherit;min-height:80px;background:var(--surface);color:var(--ink);padding:12px;border:1px solid var(--line);border-radius:10px}.problem-review-actions{display:flex;flex-wrap:wrap;gap:12px}.problem-audit{font-size:13px;color:var(--muted)}
@media(max-width:600px){.problem-fields{gap:12px}.problem-help-row{gap:8px}.problem-help-row button{font-size:13px}.problem-action-label{max-width:86px;text-align:right;line-height:1.3}.problem-hint{max-width:240px}.problem-fields select{padding-inline:8px}.problem-panel h2{font-size:21px}#chore-account{flex-direction:row;align-items:flex-start}#chore-account .header-actions{justify-content:flex-end}}
@media(prefers-reduced-motion:reduce){.is-signalling .problem-icon i,.is-signalling .problem-icon>svg{animation:none}.is-signalling .problem-icon{transition:none}}
.practice-school .goal{margin-top:12px}.practice-status:not(:empty){margin-top:18px;font-size:14px;color:var(--success)}
.practice-earned{margin-top:18px}.practice-school #practice-bank{max-width:240px;margin-bottom:14px}
#practice-progress{display:block;width:100%;height:6px;accent-color:var(--accent);margin:14px 0 20px}
#practice-message:not(:empty){font-size:14px;color:var(--muted);margin-top:18px}.practice-sheet footer p{margin-top:14px;max-width:72ch}
.practice-sheet .subjects label{min-width:0}.practice-sheet ::selection{background:var(--accent);color:var(--surface)}.practice-sheet input{caret-color:var(--accent)}
@media(max-width:600px){.practice-sheet .page-header{flex-direction:row;gap:12px}.practice-sheet .page-header>div{min-width:0}.practice-sheet .page-header>button{flex-shrink:0;padding-inline:0}}
.history-filter-field{min-width:150px;flex:1}.history-filter-field label{display:block;min-width:0}.history-time-job{display:block;font-size:12px;margin-top:3px}
.history-sheet .history-metric{color:var(--ink)}.history-sheet .history-metric:disabled{opacity:1;cursor:default}
.history-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px;margin:26px 0}.history-filters label{min-width:150px;flex:1}.history-filters input,.history-filters select{min-width:0}.history-filters button{margin-bottom:0;min-height:48px}.history-tabs{display:flex;gap:6px;margin-bottom:18px}.history-tabs button{background:transparent;color:var(--muted)}.history-tabs button[aria-pressed=true]{background:var(--soft);color:var(--accent)}
.history-children{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;align-items:start;margin-top:26px}.history-child{min-width:0;border-top:1px solid var(--line);padding-top:22px}.history-child h2{font-size:21px}.history-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0 12px}.history-metric{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:8px;background:transparent;color:var(--ink);text-align:left;border-radius:0;padding:4px 0;min-height:90px}.history-metric .muted{font-size:13px;line-height:1.4}.history-metric strong{font-size:25px;letter-spacing:-.02em;font-weight:600}.history-metric:hover{color:var(--accent)}.history-comparison{font-size:14px;margin:14px 0 4px}.history-chart{margin:24px 0 0}.history-chart canvas{display:block;width:100%;height:190px;cursor:pointer}.history-chart figcaption{font-size:12px;margin-top:10px}.history-chart-hint{font-size:12px;margin-top:12px}.history-values{border-bottom:1px solid var(--line);margin-top:18px}.history-values summary,.history-about summary{cursor:pointer;padding:12px 0;font-size:14px;color:var(--muted)}
.history-sheet table{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}.history-sheet th,.history-sheet td{padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere;text-align:left;vertical-align:top}.history-sheet th{font-weight:500}.history-sheet th+th,.history-sheet td+td{text-align:right}.history-day-link{padding:0!important;color:var(--accent)!important;font-size:14px;min-height:32px}.history-consistency{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:12px 0;border-top:1px solid var(--line);font-size:14px}.history-consistency small{grid-column:1/-1;font-size:12px}.history-day{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.history-day h3{font-size:16px;margin:0 0 10px}.history-day p{font-size:14px;margin:8px 0}.history-detail-table th{width:52%}.history-detail-table td{width:24%;font-size:12px}.history-empty{margin:28px 0;color:var(--muted)}.history-coverage{font-size:12px;margin-top:16px}.history-about{border-top:1px solid var(--line);margin-top:36px;padding-top:6px}.history-about p{font-size:14px;color:var(--muted);max-width:70ch;margin:12px 0}.history-import{margin-top:24px;max-width:65ch}.history-import-form{margin-top:20px}.history-import button{margin-top:16px}.history-import input{margin-bottom:16px}
@media(max-width:900px){.history-children{grid-template-columns:minmax(0,1fr);gap:32px}.history-sheet{max-width:760px}}@media(max-width:600px){.history-sheet h1{font-size:27px}.history-sheet .page-header{gap:12px}.history-filters{gap:12px}.history-filters>label,.history-filter-field{min-width:calc(50% - 12px)}.history-filters button{width:100%}.history-metrics{gap:10px}.history-metric strong{font-size:24px}.history-metric .muted{font-size:12px}.history-day .history-detail-table{font-size:13px}}
.visual-controls{display:flex;align-items:center;gap:4px;margin-left:auto}.icon-button,.appearance>summary{position:relative;display:grid;place-items:center;width:44px;min-height:44px;padding:10px;border-radius:10px;cursor:pointer;color:var(--muted);list-style:none}.appearance>summary::-webkit-details-marker{display:none}.visual-controls svg,.routine-heading svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.appearance{position:relative}.appearance[open]>summary,.icon-button:hover{background:var(--soft);color:var(--accent)}.appearance-fields{position:absolute;z-index:10;right:0;top:48px;width:min(300px,calc(100vw - 64px));padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 32px #16212a14;display:grid;gap:16px}.appearance-fields label{font-size:14px}.appearance-choice{display:flex;gap:10px;align-items:center}.appearance-choice input{width:18px;height:18px;min-height:18px;margin:0;accent-color:var(--accent)}.appearance-fields select{margin-top:6px}
.music-signal i,.problem-icon i{position:absolute;left:calc(50% - 9px);top:calc(50% - 9px);width:18px;height:18px;opacity:0;pointer-events:none}
.music-signal i svg,.problem-icon i svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.music-signal,.problem-icon{--signal-blue:#0976a9;--signal-pink:#a04986;--signal-green:#287d63}
:root[data-scheme=dark] :is(.music-signal,.problem-icon){--signal-blue:#79c9ea;--signal-pink:#db9bc4;--signal-green:#8ad2b1}
@media(prefers-color-scheme:dark){:root[data-scheme=system] :is(.music-signal,.problem-icon){--signal-blue:#79c9ea;--signal-pink:#db9bc4;--signal-green:#8ad2b1}}
.music-signal i:nth-of-type(1),.problem-icon i:nth-of-type(1){color:var(--signal-blue);--effect-x:-14px;--effect-y:-22px}
.music-signal i:nth-of-type(2),.problem-icon i:nth-of-type(2){color:var(--signal-pink);--effect-x:4px;--effect-y:-32px;animation-delay:80ms}
.music-signal i:nth-of-type(3),.problem-icon i:nth-of-type(3){color:var(--signal-green);--effect-x:22px;--effect-y:-18px;animation-delay:160ms}
.problem-icon i:nth-of-type(1){--effect-x:-24px;--effect-y:-18px}.problem-icon i:nth-of-type(2){--effect-x:-9px;--effect-y:-33px}.problem-icon i:nth-of-type(3){--effect-x:-33px;--effect-y:1px}
.music-signal.is-signalling{background:var(--soft);color:var(--accent)}
.music-signal.is-signalling i,.is-signalling .problem-icon i{animation-name:icon-accents;animation-duration:1s;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:both}
.school-timing{margin-bottom:16px}.history-consistency progress{grid-column:1/-1;display:block;width:100%;height:5px;accent-color:var(--accent);margin:4px 0}.parent-datebar p+p{margin-top:4px}
@keyframes icon-accents{0%{opacity:0;transform:translate(0,0) scale(.5)}28%,58%{opacity:1;transform:translate(var(--effect-x),var(--effect-y)) scale(1)}100%{opacity:0;transform:translate(var(--effect-x),calc(var(--effect-y) - 6px)) scale(.8)}}
.routine-section{margin-top:16px;border:1px solid var(--line);border-radius:16px;padding:0 20px}.routine-section.is-current{border-color:var(--accent);background:var(--soft)}.routine-heading{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:18px 0;list-style:none;cursor:pointer}.routine-heading::-webkit-details-marker{display:none}.routine-title{font-size:17px;font-weight:600}.routine-count{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}.routine-deadline{grid-column:2/-1;color:var(--muted);font-size:12px}.routine-section .chore-edit-row:last-child{border-bottom:0}.routine-section.is-complete:not([open]){background:var(--bg)}.routine-section .chore-edit-row{padding:14px 0}.routine-section summary:hover .routine-title{color:var(--accent)}.routine-heading::after{content:'+';grid-column:3;grid-row:2;color:var(--muted);justify-self:end}.routine-section[open]>.routine-heading::after{content:'−'}.routine-deadline{padding-right:18px}.list-celebration{position:fixed;pointer-events:none;inset:20% 20%;z-index:20;display:flex;justify-content:center;gap:24px}.list-celebration i{display:block;width:7px;height:14px;background:#087dae;animation:list-finished 1.6s cubic-bezier(.16,1,.3,1) both}.list-celebration i:nth-child(3n){background:#a04986}.list-celebration i:nth-child(2n){background:#287d63;animation-delay:.12s}.list-celebration i:nth-child(3n+1){animation-delay:.25s}
@keyframes list-finished{0%{opacity:0;transform:translateY(-20px) rotate(0)}25%{opacity:1}100%{opacity:0;transform:translateY(180px) rotate(190deg)}}
:root[data-accent=green]{--accent:#21735d;--soft:#edf6f1}:root[data-accent=purple]{--accent:#76529a;--soft:#f3eef8}:root[data-scheme=dark][data-accent=green]{--accent:#8ed5b9;--soft:#253d36}:root[data-scheme=dark][data-accent=purple]{--accent:#cfb3ed;--soft:#362d41}
::selection{background:var(--accent);color:var(--surface)}input,textarea{caret-color:var(--accent)}a{text-underline-offset:3px}.parent-sheet,.routine-count,.balance{font-variant-numeric:tabular-nums}
@media(max-width:760px){.parent-children{grid-template-columns:minmax(0,1fr)}.parent-sheet{margin:12px}.parent-tools{justify-content:flex-start}.parent-datebar{align-items:flex-start}.parent-summary{padding:20px}.parent-date-controls{flex-wrap:wrap}.parent-percent{font-size:26px}}
@media(max-width:600px){.sheet{padding:24px 20px}.visual-controls{margin-left:0}.page-header{row-gap:12px}.parent-sheet .page-header{flex-direction:row;align-items:center}.parent-sheet .header-actions{gap:12px}.routine-section{padding-inline:16px}.parent-date-controls input{width:150px}.parent-datebar>div:first-child{width:100%}.parent-date-controls{width:100%}.parent-date-controls input{flex:1}.parent-recent{gap:2px}.parent-recent button{padding-inline:9px}.routine-title{font-size:16px}}
@media(prefers-reduced-motion:reduce){.music-signal.is-signalling i,.is-signalling .problem-icon i,.is-signalling .problem-icon>svg,.list-celebration i{animation:none}.music-signal.is-signalling{background:var(--soft);color:var(--accent)}}
@media(max-width:600px){.visual-controls{margin-left:auto}.appearance-fields{width:min(280px,calc(100vw - 64px))}.header-button,.parent-recent button{min-height:44px}}
@media(prefers-color-scheme:dark){:root[data-scheme=system][data-accent=green]{--accent:#8ed5b9;--soft:#253d36}:root[data-scheme=system][data-accent=purple]{--accent:#cfb3ed;--soft:#362d41}}
.parent-sheet .page-header,#chore-account{gap:12px;margin-bottom:16px}.parent-sheet .header-actions,#chore-account .header-actions{margin-left:auto}.parent-sheet .visual-controls,#chore-account .visual-controls{margin-left:0}.chore-overview .goal{margin-top:12px}.parent-adjustment{margin-top:12px}.parent-tools a{display:inline-flex;align-items:center;min-height:44px}
.history-day{scroll-margin-top:16px}
.routine-heading{grid-template-columns:24px minmax(0,1fr) auto 12px}.routine-heading::after{grid-column:4;grid-row:1}.final-list:has(#finish-list[hidden]):has(#final-status:empty){display:none}

/* v74 visual authority: a quiet paper sheet, not a new dashboard template. */
:root[data-scheme=dark]{--canvas:#151b20}
@media(prefers-color-scheme:dark){:root[data-scheme=system]{--canvas:#151b20}}
.sheet{padding:28px 32px;border-radius:24px}
.page-header>div>p{margin-top:8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.parent-sheet{margin:16px auto}
.parent-heading{align-items:center;gap:16px;margin-bottom:24px!important}
.parent-primary-tools{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-left:auto}
.parent-primary-tools a,.parent-test-lists a,.parent-tools a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:15px}
.parent-primary-tools svg,.parent-test-lists svg,.parent-tools svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.parent-heading .header-actions{margin-left:0}.parent-heading .visual-controls{margin-left:0}.parent-heading .music-signal{display:none}
.parent-test-lists{display:flex;align-items:center;gap:12px 24px;flex-wrap:wrap;padding:0 0 16px;margin-bottom:16px}
.parent-test-lists .muted{font-size:14px}.parent-test-lists a{color:var(--muted)}
.parent-tools{margin-bottom:20px}.parent-tools a{color:var(--muted)}
.parent-date-controls input{border:0;background:var(--bg);width:148px;min-height:44px}
.parent-recent{gap:4px;margin:12px 0 20px}.parent-recent button{font-size:15px;min-height:44px;font-weight:400}
.parent-summary{padding:24px;border-radius:18px}.parent-summary-top .parent-child-link{font-size:20px}
.parent-summary-metrics{justify-content:flex-start;gap:12px;margin-top:20px}.parent-summary-metrics .muted{font-size:13px}
.parent-percent{font-size:30px;font-weight:500}.parent-remaining{font-size:13px}
.parent-summary progress{height:6px;margin:12px 0 20px}.parent-school-line{font-size:15px;margin-bottom:12px}
.parent-detail{border:0;margin:0}.parent-detail summary{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:46px;padding:10px 0;list-style:none;color:var(--ink);font-size:15px}
.parent-detail summary::-webkit-details-marker{display:none}
.parent-detail summary::after{content:'';flex:0 0 7px;width:7px;height:7px;margin-right:4px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg)}
.parent-detail[open]>summary::after{transform:rotate(225deg)}
.routine-sheet .page-header{margin-bottom:12px}.routine-sheet .chore-overview .goal{margin:0;font-size:15px;font-weight:400;color:var(--muted)}
.routine-sheet .header-actions{margin-left:auto}.routine-sheet .visual-controls{margin-left:0}
.routine-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 24px}.routine-summary:has(#short-stages:not([hidden])){grid-template-columns:1fr}.routine-summary .chore-overview{gap:12px}.routine-summary .day-mode{margin:0}.routine-summary #chore-progress-label{font-size:13px}
.routine-sheet .chore-overview{margin:12px 0 4px}.routine-sheet #chore-progress{height:5px;margin:12px 0}
.routine-sheet #chore-day{font-size:13px}.routine-sheet .chore-section{margin:0}
.routine-sheet .day-mode{border:0;padding:0;margin:0 0 12px}.routine-sheet .day-mode-row{justify-content:flex-end;gap:12px}.routine-sheet .day-mode-row h2{font-size:15px;font-weight:400;color:var(--muted)}
.routine-sheet .day-mode-row .quiet{min-height:44px;padding:8px 12px;background:var(--soft);border-radius:12px;color:var(--muted)}
.routine-guidance,#chore-hint{display:flex;align-items:center;gap:10px;background:var(--soft);border-radius:12px;padding:2px 10px;margin:12px 0;font-size:15px;color:var(--muted)}
.routine-guidance p{margin:0}.routine-guidance .icon-button,#chore-hint .icon-button{flex:0 0 44px;width:44px;min-height:44px;padding:10px}
.routine-guidance svg,#chore-hint svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.routine-section{border:0;border-radius:0;background:transparent;padding:0 20px;margin:8px 0}
.routine-section.is-current{border:0;border-radius:20px;background:color-mix(in srgb,var(--accent) 14%,var(--surface));padding:6px 20px 12px}
.routine-section.is-complete:not([open]){background:transparent;margin-block:2px}
.routine-heading{min-height:52px;padding:12px 4px;grid-template-columns:24px minmax(0,1fr) auto 24px;gap:3px 12px}
.routine-title{font-size:20px}.routine-section:not(.is-current) .routine-title{color:var(--muted)}
.routine-heading svg{width:21px;height:21px;color:var(--muted)}
.routine-deadline{grid-column:2/-1;font-size:15px;padding:0;margin:0}
.routine-heading::after{content:'';grid-column:4;grid-row:1;width:8px;height:8px;justify-self:center;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg)}
.routine-section[open]>.routine-heading::after{content:'';transform:rotate(225deg)}
.routine-section.is-complete .routine-title::after{content:'';display:inline-block;width:10px;height:6px;border-left:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(-45deg);vertical-align:middle;margin-left:12px}
.routine-jobs{display:grid;gap:4px 12px;padding-bottom:4px}.routine-jobs .chore-edit-row{border:0;padding:8px 4px;min-height:48px;align-items:center;gap:12px;margin:0;min-width:0}
.routine-jobs .chore-label{font-size:18px;line-height:1.4}.routine-jobs .chore-tick{gap:12px}.routine-jobs .chore-tick input{width:24px;height:24px;min-height:24px}
.routine-jobs .chore-answers button{background:var(--soft);font-weight:400}
.routine-jobs .school-row>svg,.school-job>svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;flex-shrink:0;color:var(--muted)}
.school-job{display:flex;align-items:center;width:100%;gap:12px;min-height:48px;text-align:left;background:transparent;color:var(--ink);padding:0;font-weight:400}
.school-job-copy{flex:1;min-width:0}.school-job-copy>*{display:block}.school-job-copy small{font-size:13px}.school-job>svg:last-child{width:18px}
.routine-sheet #chore-timing{padding-top:16px}.routine-sheet .problem-help-row{border:0;margin-top:24px;padding-top:0;justify-content:flex-end;gap:20px}
.routine-sheet .problem-hint{margin-left:auto;flex-wrap:nowrap;max-width:none}.routine-sheet .problem-hint-action{white-space:nowrap}.routine-sheet .problem-help-row .problem-flag{margin-left:0}
.routine-sheet .problem-action-label{max-width:none;text-align:left}
.practice-banner{max-width:960px;margin:16px auto 12px;color:#e7edf0;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px}
.practice-banner strong{font-weight:550}.practice-banner p{margin-top:4px}.practice-banner nav{display:flex;align-items:center;gap:20px;flex-shrink:0}.practice-banner a,.practice-banner button{font-size:14px;color:inherit}.practice-banner button{padding:4px 8px;min-height:44px}
.practice-sheet{margin-top:0}.practice-sheet #practice-date{font-size:13px}.practice-sheet #practice-progress{appearance:none;border:0;border-radius:5px;height:5px;background:var(--line);margin:12px 0}
.practice-sheet #practice-progress::-webkit-progress-bar{background:var(--line)}.practice-sheet #practice-progress::-webkit-progress-value{background:var(--accent)}
.practice-sheet #practice-percent,.practice-sheet #practice-remaining{font-size:15px}
.practice-school-dialog{max-width:680px;max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:0;border-radius:20px}
.practice-school-dialog .practice-school{padding:0;background:transparent}.practice-school-dialog .section-heading h2{margin:0}.practice-school-dialog .section-heading{margin-bottom:12px}
.practice-school-dialog .school{border-radius:0}.practice-school-dialog .subjects{gap:12px}.practice-school-dialog #practice-school-message:not(:empty){margin-top:12px}
@media(min-width:1000px){.routine-sheet{max-width:1060px;padding:28px 54px}.routine-jobs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:999px){.practice-banner{max-width:704px;margin-inline:auto}}
@media(max-width:760px){.parent-heading .parent-primary-tools{margin-left:0}.parent-test-lists{gap:8px 20px}.parent-test-lists>span{width:100%}.parent-summary{padding:20px}.parent-heading .visual-controls{margin-left:0}.parent-primary-tools{order:3;width:100%}.parent-heading .header-actions{margin-left:auto}.parent-sheet{margin:12px}.parent-heading{column-gap:8px}.parent-heading h1{font-size:24px}.parent-heading .header-button{font-size:13px}}
@media(max-width:600px){.sheet{padding:24px 20px}.routine-sheet{padding:20px 16px}.routine-summary{grid-template-columns:1fr;gap:0}.routine-summary .day-mode-row{justify-content:space-between}.practice-sheet{margin:0 12px 12px}.practice-banner{margin:12px 24px 8px;gap:6px;flex-wrap:wrap}.practice-banner nav{width:100%;justify-content:space-between}.routine-section,.routine-section.is-current{padding-inline:12px}.routine-heading{grid-template-columns:21px minmax(0,1fr) auto 20px;gap:4px 8px}.routine-title{font-size:20px}.routine-deadline{font-size:13px}.routine-count{font-size:13px}.routine-jobs .chore-label{font-size:17px}.routine-jobs .chore-edit-row{flex-wrap:wrap}.routine-jobs .chore-answers{margin-left:auto}.routine-jobs .chore-state{font-size:12px}.practice-school-dialog{padding:20px}.parent-summary-metrics{flex-wrap:wrap;gap:4px 10px}}
@media(max-width:480px){.routine-sheet{padding:18px 12px}.routine-sheet .header-actions{gap:8px}.routine-guidance,#chore-hint{font-size:14px}.practice-school-dialog .subjects{grid-template-columns:1fr}.routine-sheet .problem-help-row{gap:12px}.parent-primary-tools{gap:16px}}
