:root{--brand: #2f9e44;--brand-dark: #237a34;--gold: #f2b01e;--ink: #16233b;--muted: #64748b;--bg: #f2f5fb;--card: #ffffff;--line: #e3e8f2;--green: #10893e;--red: #c62f2f;--radius: 14px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}#root{min-height:100dvh}.app,.auth-page{max-width:520px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(12px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 4px calc(16px + env(safe-area-inset-left))}.app-header-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:18px}.app-logo{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:var(--brand);color:#fff;font-size:16px}.app-logo.big{width:52px;height:52px;font-size:26px;border-radius:15px}.app-logo .logo-mark{width:64%;height:64%;display:block}.app-brand-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:none;padding:4px 6px;margin:0 -6px;cursor:pointer;border-radius:10px;color:var(--ink);font-weight:700;font-size:18px;font-family:inherit;touch-action:manipulation}.app-brand-btn:active{opacity:.6}.app-brand-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.back-dash-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:6px 10px;color:var(--brand-dark);font-size:14px;font-weight:700;cursor:pointer;border-radius:999px;white-space:nowrap;font-family:inherit;touch-action:manipulation}.back-dash-btn:active{background:#e7f6ec}.back-dash-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.tabs{display:flex;gap:6px;padding:8px 16px;position:sticky;top:0;background:var(--bg);z-index:5}.tab{flex:1;min-height:44px;border:1px solid var(--line);background:var(--card);border-radius:999px;font-size:15px;font-weight:600;color:var(--muted);cursor:pointer}.tab-active{background:var(--brand);border-color:var(--brand);color:#fff}.app-main{flex:1;padding:0 16px 40px}.app-loading{padding:40px;text-align:center;color:var(--muted)}.page-title{font-size:24px;margin:14px 0 2px}.page-subtitle{color:var(--muted);margin:0 0 16px;font-size:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px}.card-title{font-size:16px;margin:0 0 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.week-total{color:var(--green);font-size:15px}.muted{color:var(--muted);font-size:14px}.hint{color:var(--muted);font-size:12.5px;margin:0}.error{color:var(--red);font-size:14px;margin:0;font-weight:600}.stack{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.field>span{font-size:13px;font-weight:600;color:var(--muted)}.field input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;font-size:16px;background:#fff;color:var(--ink)}.field input:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}.field-row{display:flex;gap:10px}.btn{min-height:44px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:15px;font-weight:600;cursor:pointer;touch-action:manipulation}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:disabled{opacity:.55;cursor:default}.btn-primary:not(:disabled):active{background:var(--brand-dark)}.btn-ghost{background:transparent}.btn-danger{color:var(--red)}.btn-small{min-height:40px;padding:0 12px;font-size:13.5px}.btn-row{display:flex;gap:8px}.link{background:none;border:none;padding:0;color:var(--brand);font-size:inherit;font-weight:600;cursor:pointer;text-decoration:underline}.auth-page{justify-content:center;padding:calc(24px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px 20px}.auth-hero{display:block;width:100%;max-width:320px;height:auto;margin:0 auto 16px}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:18px;text-align:center}.auth-brand h1{margin:4px 0 0;font-size:24px}.auth-tagline{margin:0;color:var(--muted);font-size:14px}.auth-heading{font-size:17px;margin:0 0 14px}.auth-switch{margin:16px 0 0;text-align:center;color:var(--muted);font-size:14px}.kid-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.kid-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.kid-avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#ddf1e2;color:var(--brand);font-weight:700;flex-shrink:0}.kid-name{font-weight:600}.kid-age{color:var(--muted);font-size:13px;margin-left:auto}.kid-picker{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.kid-chip{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:15px;font-weight:600;color:var(--muted);cursor:pointer}.kid-chip-active{background:var(--brand);border-color:var(--brand);color:#fff}.task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.task-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.task-row:last-child{border-bottom:none}.task-row-editing{display:block;background:#f7faf8;border-radius:10px;padding:12px;margin:6px 0;border:1px solid var(--line)}.task-info{display:flex;flex-direction:column;gap:4px;min-width:0}.task-name{font-weight:600;font-size:15px;overflow-wrap:anywhere}.task-meta{display:flex;align-items:center;gap:8px}.chip{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:var(--bg);border-radius:999px;padding:3px 9px}.task-amount{color:var(--green);font-weight:700;font-size:14px}.task-actions{display:flex;gap:6px;flex-shrink:0}.task-row-done .task-name{color:var(--muted)}.done-badge{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border-radius:10px;background:#e7f6ec;color:var(--green);font-weight:700;font-size:13.5px}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:10px}.dash-kid{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0}.dash-kid-name{font-weight:700;font-size:15px}.dash-row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.dash-label{font-size:12px;color:var(--muted);font-weight:600}.dash-value{font-weight:700;font-size:14px}.dash-row-balance{border-top:1px dashed var(--line);padding-top:6px}.dash-balance{color:var(--green);font-size:16px}.saved-note{color:var(--green);font-size:13.5px;font-weight:600;margin:0}.btn-markpaid{width:100%;min-height:44px;margin-top:8px;font-size:14px}.btn-venmo{display:block;width:100%;min-height:44px;margin-top:8px;padding:0 14px;line-height:44px;text-align:center;text-decoration:none;background:#3d95ce;border-color:#3d95ce;color:#fff;font-size:14px;font-weight:600}.venmo-add-prompt{margin:8px 0 0;font-size:12.5px;background:#fff7e6;border:1px solid #f3d9a4;border-radius:10px;padding:8px 10px;color:#7a5300}.kid-venmo-link{margin-left:auto;font-size:12.5px}.kid-venmo-edit{display:flex;flex-wrap:wrap;gap:6px;width:100%;margin-top:6px}.kid-venmo-edit input{flex:1;min-width:120px;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:10px;font-size:16px}.kid-venmo-card{margin-top:12px}.kid-venmo-saved{margin:0 0 10px;font-size:13.5px}.kid-venmo-form{display:flex;gap:8px}.kid-venmo-form input{flex:1;min-width:0;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;font-size:16px}.payout-toggle{margin-top:8px;font-size:13px;align-self:flex-start}.payout-history{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.payout-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:13.5px;padding:4px 0;border-bottom:1px dashed var(--line)}.payout-amount{font-weight:700;color:var(--green)}.payout-date{color:var(--muted);font-size:12.5px}.kid-cashout{margin-top:18px}.kid-cashout-title{font-size:16px;margin:0 0 8px}.kid-cashout .payout-amount{color:var(--ink)}.tab-settings{flex:0 0 auto;min-width:48px;font-size:18px}.affiliate-card{border-top:4px solid var(--green)}.affiliate-code-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#e7f6ec;border:1px solid #bfe8cd;border-radius:12px;padding:12px 14px;margin:12px 0}.affiliate-label{font-size:12.5px;font-weight:600;color:var(--muted)}.affiliate-code{font-size:22px;font-weight:800;letter-spacing:.08em;color:var(--green)}.affiliate-link-label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:5px}.affiliate-link-row{display:flex;gap:8px;margin-bottom:14px}.affiliate-link-input{flex:1;min-width:0;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:10px;font-size:13px;background:#fff;color:var(--ink)}.affiliate-total{display:flex;align-items:baseline;justify-content:space-between;gap:8px;background:#fff7e6;border:1px solid var(--gold);border-radius:12px;padding:12px 14px;margin-bottom:16px}.affiliate-total-label{font-size:13px;font-weight:600;color:#7a5300}.affiliate-total-amount{font-size:24px;font-weight:800;color:#7a5300}.affiliate-subhead{font-size:14px;margin:0 0 8px}.affiliate-referred{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:6px}.affiliate-referred-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.affiliate-referred-name{font-weight:600}.affiliate-referred-status{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:var(--bg);border-radius:999px;padding:3px 9px}.status-active{color:var(--green);background:#e7f6ec}.affiliate-payout-note{font-size:12.5px;background:#f6f0dd;border:1px solid var(--gold);border-radius:12px;padding:11px 13px;color:#6a4c00;margin:0}.connect-box{border-radius:12px;padding:13px 14px;margin-bottom:16px}.connect-prompt{background:#fff7e6;border:1px solid var(--gold);color:#7a5300}.connect-enabled{background:#e7f6ec;border:1px solid #bfe8cd;color:var(--green)}.connect-status-line{display:block;font-size:13.5px;line-height:1.45}.connect-totals{display:flex;gap:16px;margin-top:8px;font-size:13px;font-weight:600}.connect-btn{width:100%;min-height:46px;margin-top:10px}.billing-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:12px;margin-bottom:14px;font-size:13.5px}.billing-banner-text{min-width:0}.billing-trial{background:#fff7e6;border:1px solid var(--gold);color:#7a5300}.billing-pastdue{background:#fdecea;border:1px solid #e6a19a;color:#8a2b20}.billing-active{background:#e7f6ec;border:1px solid #bfe8cd;color:var(--green)}.btn-subscribe{background:var(--green);border-color:var(--green);color:#fff}.btn-subscribe:not(:disabled):active{background:#0c6f32}.paywall{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:linear-gradient(160deg,#eaf6ee,#f6f0dd)}.paywall-card{max-width:460px;width:100%;background:var(--card);border:1px solid var(--line);border-top:6px solid var(--green);border-radius:20px;padding:28px 22px;text-align:center;box-shadow:0 12px 30px #10893e24}.paywall-logo{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:var(--green);color:#fff;margin-bottom:12px}.paywall-title{font-size:24px;margin:0 0 10px;color:var(--ink)}.paywall-lede{font-size:15px;color:var(--muted);margin:0 0 14px}.paywall-safe{font-size:13.5px;background:#f6f0dd;border:1px solid var(--gold);border-radius:12px;padding:12px 14px;color:#6a4c00;margin:0 0 18px}.btn-subscribe.btn-subscribe{width:100%;min-height:50px;font-size:16px;font-weight:700}.paywall-logout{display:inline-block;margin-top:14px;font-size:13.5px}.kid-locked{text-align:center;padding:40px 16px}.kid-locked-emoji{font-size:52px}.kid-locked-title{font-size:24px;margin:12px 0 8px;color:var(--ink)}.kid-locked-text{color:var(--muted);font-size:15px;max-width:360px;margin:0 auto}.push-state{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--bg);border-radius:999px;padding:4px 10px}.push-state-on{color:var(--green);background:#e7f6ec}.push-blurb{margin:0 0 8px}.push-ios-note{margin:0 0 12px;font-size:12.5px;line-height:1.45;background:#fff7e6;border:1px solid #f3d9a4;border-radius:10px;padding:9px 11px;color:#7a5300}.kid-mode-btn{width:100%;margin-top:14px;background:#fff7e6;border-color:#f3d9a4;color:#8a5a00;font-size:16px}.kid-select-list{display:flex;flex-direction:column;gap:10px}.kid-select-btn{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:18px;font-weight:700;color:var(--ink);cursor:pointer;text-align:left}.kid-select-btn:not(:disabled):active{background:#e7f6ec}.kid-select-disabled{opacity:.6;cursor:default}.kid-select-btn small{display:block;font-size:12.5px;font-weight:500;color:var(--muted)}.pin-heading{text-align:center}.pin-dots{display:flex;justify-content:center;gap:14px;margin:10px 0 16px}.pin-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);background:transparent}.pin-dot-filled{background:var(--brand);border-color:var(--brand)}.pin-error{text-align:center;margin-bottom:10px}.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:280px;margin:0 auto}.pinpad-btn{min-height:64px;border:1px solid var(--line);border-radius:14px;background:var(--card);font-size:24px;font-weight:700;color:var(--ink);cursor:pointer;touch-action:manipulation}.pinpad-btn:not(:disabled):active{background:#e7f6ec}.pinpad-back{font-size:20px}.pinpad-spacer{min-height:64px}.kid-page{padding-bottom:24px}.kid-greeting{font-size:30px;margin:16px 0 12px}.kid-total-card{display:flex;flex-direction:column;align-items:center;gap:2px;background:linear-gradient(135deg,var(--brand),#1c8f4f);color:#fff;border-radius:20px;padding:18px 16px 16px;margin-bottom:18px;box-shadow:0 8px 20px #2f6df640}.kid-total-label{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;opacity:.85}.kid-total-amount{font-size:44px;font-weight:800;line-height:1.1}.kid-total-sub{font-size:13.5px;opacity:.9}.kid-balance-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:12px;padding:10px 14px;border-radius:12px;background:#ffffff29}.kid-balance-label{font-size:13.5px;font-weight:700}.kid-balance-amount{font-size:20px;font-weight:800}.kid-empty{text-align:center;padding:24px 0}.chore-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.chore-card{position:relative;display:flex;align-items:center;gap:14px;width:100%;min-height:76px;padding:12px 16px;border:2px solid var(--line);border-radius:18px;background:var(--card);cursor:pointer;text-align:left;touch-action:manipulation;transition:background .15s ease,border-color .15s ease}.chore-card:not(:disabled):active{background:#e7f6ec;border-color:var(--brand)}.chore-done{background:#e9f8ef;border-color:#bfe8cd;cursor:default}.chore-check{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:3px solid var(--line);background:#fff;color:#fff;font-size:22px;font-weight:800;flex-shrink:0;transition:background .15s ease,border-color .15s ease}.chore-check-done{background:var(--green);border-color:var(--green)}.chore-info{display:flex;flex-direction:column;gap:3px;min-width:0}.chore-name{font-size:17px;font-weight:700;overflow-wrap:anywhere}.chore-done .chore-name{color:#3c6b4d}.chore-amount{font-size:15px;font-weight:700;color:var(--green)}.chore-just-done{animation:chore-pop .45s ease}@keyframes chore-pop{0%{transform:scale(1)}35%{transform:scale(1.04)}70%{transform:scale(.99)}to{transform:scale(1)}}.chore-burst{position:absolute;right:16px;top:50%;font-size:26px;animation:burst-float 1.3s ease forwards;pointer-events:none}@keyframes burst-float{0%{transform:translateY(-50%) scale(.4);opacity:0}25%{transform:translateY(-70%) scale(1.35);opacity:1}to{transform:translateY(-160%) scale(1);opacity:0}}.recurrence-fields{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--border, #e5e7eb);border-radius:12px;background:color-mix(in srgb,var(--brand) 5%,transparent)}.recurrence-fields select,.recurrence-fields input{width:100%;box-sizing:border-box}.weekday-picker{display:flex;flex-wrap:wrap;gap:6px}.weekday-chip{flex:1 1 auto;min-width:40px;padding:8px 6px;border-radius:10px;border:1.5px solid var(--brand);background:transparent;color:var(--brand-dark);font-weight:700;font-size:13px;cursor:pointer}.weekday-chip-on{background:var(--brand);color:#fff}.recurrence-note{font-size:12.5px;margin:2px 0 0}.chip-recurring{color:var(--brand-dark);background:color-mix(in srgb,var(--brand) 14%,transparent)}.chip-exception{color:#8a5a00;background:color-mix(in srgb,var(--gold) 22%,transparent)}.chip-state{color:var(--muted)}.chip-due-today,.chip-late-completable{color:var(--brand-dark);background:color-mix(in srgb,var(--brand) 14%,transparent)}.chip-missed{color:#b42318;background:#fde8e6}.chip-skipped{color:#6b7280;background:#eef0f2}.task-date,.task-tag{color:var(--muted);font-weight:500;font-size:12.5px}.task-row-skipped{opacity:.6}.instance-editor{width:100%;margin-top:10px;padding:12px;border-radius:12px;background:color-mix(in srgb,var(--brand) 6%,transparent);display:flex;flex-direction:column;gap:8px}.kid-catchup{margin:4px 0 8px;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--gold) 16%,transparent);border:1.5px solid var(--gold)}.kid-catchup-title{margin:0 0 2px;font-size:16px;color:#8a5a00}.kid-catchup-sub{margin:0 0 8px;font-size:12.5px}.chore-catchup{border-color:var(--gold)}.chore-missed{opacity:.55}.chore-upcoming{opacity:.7}.chore-tag{font-size:12px;font-weight:600;color:var(--muted)}.chore-tag-missed{color:#b42318}.chore-tag-late{color:var(--brand-dark)}.chore-due{font-size:12px;color:var(--muted);font-weight:500}.task-meta{flex-wrap:wrap;row-gap:4px}[data-testid=weekly-list] .task-row{flex-wrap:wrap}[data-testid=weekly-list] .task-info{flex:1 1 100%}[data-testid=weekly-list] .task-actions{flex:1 1 100%;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.app-header-parent{justify-content:flex-start;gap:10px}.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:20px;line-height:1;cursor:pointer;flex-shrink:0}.menu-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.app-header-parent .app-header-title{flex:0 1 auto}.app-header-spacer{width:40px;flex-shrink:0;margin-left:auto}.menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.menu-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#10231873;animation:menu-fade .15s ease}.menu-drawer{position:absolute;top:0;left:0;bottom:0;width:min(84vw,320px);max-width:100%;background:var(--card);border-right:3px solid var(--brand);box-shadow:2px 0 24px #10231833;padding:calc(12px + env(safe-area-inset-top)) 14px 20px calc(14px + env(safe-area-inset-left));display:flex;flex-direction:column;gap:6px;overflow-y:auto;animation:menu-slide .18s ease}@keyframes menu-fade{0%{opacity:0}to{opacity:1}}@keyframes menu-slide{0%{transform:translate(-100%)}to{transform:translate(0)}}.menu-drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.menu-drawer-title{font-weight:800;font-size:17px;color:var(--brand)}.menu-group{display:flex;flex-direction:column;gap:2px;padding-bottom:6px;border-bottom:1px solid var(--line);margin-bottom:6px}.menu-group[data-testid=menu-group-logout]{border-bottom:none}.menu-group-heading{margin:8px 0 2px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.menu-item{text-align:left;padding:11px 12px;border-radius:10px;border:none;background:transparent;color:var(--ink);font-size:15px;font-weight:600;cursor:pointer}.menu-item:hover{background:#f0f6f1}.menu-item-active{background:#ddf1e2;color:var(--brand-dark)}.menu-item-logout{color:var(--red)}.menu-item:focus-visible,.menu-close:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.alert-strip{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.alert-strip:empty{display:none}.alert{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;font-size:14px;border:1px solid var(--line)}.alert-text{flex:1}.alert-trial{background:#eef7f0;border-color:#cfe9d6}.alert-pastdue{background:#fdeaea;border-color:#f4c9c9}.alert-payout{background:#fff6e0;border-color:#f6e0a6}.alert-missed{background:#fdeaea;border-color:#f4c9c9;color:var(--red)}.dash-summary .summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.summary-cell{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:12px;background:#f5f8fc;border:1px solid var(--line)}.summary-label{font-size:12px;color:var(--muted)}.summary-value{font-size:20px;font-weight:800;color:var(--brand-dark)}.summary-value-unpaid{color:var(--gold)}.quick-actions{display:flex;gap:8px;margin-bottom:14px}.quick-action{flex:1;min-height:46px;font-weight:700}.dash-progress{color:var(--muted);font-weight:700}.plan-card{display:flex;flex-direction:column;gap:4px}.plan-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.plan-label{color:var(--muted);font-size:14px}.plan-value{font-weight:700;text-align:right}.plan-price{color:var(--brand-dark)}.plan-comped-note{margin-top:8px}.plan-cta{margin-top:14px;min-height:46px;font-weight:700}.help-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:var(--ink)}.cal-intro{margin:4px 0 12px;font-size:13px}.cal-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.cal-legend-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}.cal-legend-chip:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.cal-legend-active{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,white)}.cal-legend-dot{width:10px;height:10px;border-radius:999px;background:var(--kid-color, var(--brand))}.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.calendar-month-label{margin:0;font-size:17px;font-weight:700;color:var(--ink);text-align:center;flex:1}.cal-nav-btn{font-size:22px;line-height:1;min-width:40px}.calendar-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}.calendar-grid{min-width:640px}.calendar-weekhead,.calendar-week{display:grid;grid-template-columns:repeat(7,1fr)}.cal-weekhead-cell{padding:8px 4px;text-align:center;font-size:12px;font-weight:700;color:var(--muted);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--brand) 6%,white)}.cal-day{min-height:84px;padding:4px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px}.calendar-week>.cal-day:last-child{border-right:none}.cal-day-empty{background:color-mix(in srgb,var(--bg) 60%,white)}.cal-day-num{font-size:12px;font-weight:600;color:var(--muted);align-self:flex-end}.cal-day-today{background:color-mix(in srgb,var(--gold) 16%,white)}.cal-day-today .cal-day-num{color:var(--brand-dark);font-weight:800}.cal-day-items{display:flex;flex-direction:column;gap:3px}.cal-chip{display:flex;align-items:center;gap:5px;width:100%;padding:3px 6px;border:1px solid var(--line);border-left:3px solid var(--kid-color, var(--brand));border-radius:8px;background:var(--card);font-size:11px;line-height:1.25;color:var(--ink);text-align:left}.cal-chip-dot{flex:none;width:8px;height:8px;border-radius:999px;background:var(--kid-color, var(--brand))}.cal-chip-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-chip-do{flex:none;font-weight:700}.cal-chip-fulfill{cursor:pointer}.cal-chip-fulfill:hover{background:color-mix(in srgb,var(--brand) 8%,white)}.cal-chip-fulfill:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.cal-chip-fulfill:disabled{opacity:.5}.cal-chip-fulfill .cal-chip-do{color:var(--brand)}.cal-chip-complete{background:color-mix(in srgb,var(--green) 10%,white);border-left-color:var(--green)}.cal-chip-complete .cal-chip-name{color:var(--green)}.cal-chip-late{border-left-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,white)}.cal-chip-upcoming{color:var(--muted)}.cal-chip-missed{background:color-mix(in srgb,var(--red) 12%,white);border-color:var(--red);border-left-color:var(--red)!important;color:var(--red)}.cal-chip-missed .cal-chip-dot{background:var(--red)}.cal-chip-missed .cal-chip-do{color:var(--red)}.cal-chip-skipped{background:color-mix(in srgb,var(--muted) 8%,white);border-left-color:var(--muted)!important;color:var(--muted)}.cal-chip-skipped .cal-chip-dot{background:var(--muted)}.cal-chip-skipped .cal-chip-name{text-decoration:line-through}.cal-loading{margin:8px 2px;font-size:12px}.kid-viewtoggle{display:flex;gap:6px;margin:12px 0;background:color-mix(in srgb,var(--brand) 6%,white);border-radius:999px;padding:4px}.kid-viewtoggle-btn{flex:1;padding:8px 12px;border:none;border-radius:999px;background:transparent;color:var(--ink);font-size:14px;font-weight:700;cursor:pointer}.kid-viewtoggle-btn:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.kid-viewtoggle-active{background:var(--brand);color:#fff}.kid-calendar{margin-top:8px}
