:root{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#263f35;background:#faf9f3;font-synthesis:none;--green:#234b3d;--muted:#758271;--line:#dfe4d6;--card:#fffefa;--soft:#f0f5e9;--warning:#866a37;--danger:#925447}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #89a86a;outline-offset:3px}a{color:var(--green)}h1,h2,h3,p{margin:0}h1{font-size:2rem;font-weight:600;letter-spacing:-.04em;line-height:1.25}h2{font-size:1.1rem;font-weight:550;line-height:1.4}h3{font-size:1rem;font-weight:550;line-height:1.45}.family-shell{max-width:1020px;margin:auto;padding:0 30px 120px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 0;border-bottom:1px solid var(--line);margin-bottom:30px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:1.45rem;font-weight:650;letter-spacing:-.04em}.brand-mark{display:grid;place-items:center;width:45px;height:45px;background:var(--green);border-radius:12px;color:#fffdf6;font:bold italic 42px Georgia,serif;padding-bottom:9px}.brand small{display:block;font-size:.7rem;font-weight:450;letter-spacing:.035em;color:var(--muted);margin-top:2px}.identity{text-align:right;font-size:.85rem;line-height:1.5}.identity small{display:block;color:var(--muted);font-size:.7rem}.identity button{font-size:.72rem;min-height:30px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading p{font-size:.9rem;color:var(--muted);line-height:1.65;margin-top:8px;max-width:600px}.eyebrow{font-size:.69rem;letter-spacing:.07em;text-transform:uppercase;color:#8a927d;margin-bottom:7px;display:block}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:11px 16px;background:#fffefa;color:var(--green);font-size:.83rem;font-weight:500;text-decoration:none}.button.primary{background:var(--green);border-color:var(--green);color:#fffefa}.button.danger{color:var(--danger);border-color:#ddc7bc;background:#fffaf6}.text-button{border:0;background:none;color:var(--green);padding:7px 0;min-height:40px;font-size:.82rem;text-align:left;text-decoration:underline;text-underline-offset:3px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px}.section{margin-top:29px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}.section-note{font-size:.78rem;color:var(--muted);line-height:1.6;margin-top:7px}.task-list{display:grid;gap:11px}.task-card,.panel,.person-card{padding:18px 20px;border:1px solid var(--line);border-radius:11px;background:var(--card);min-width:0}.task-card-top{display:flex;align-items:center;gap:10px;justify-content:space-between}.task-card h3{margin:8px 0 5px;overflow-wrap:anywhere}.task-title{font-size:1rem;font-weight:550;line-height:1.45;border:0;padding:0;background:transparent;color:inherit;text-align:left;min-height:30px;overflow-wrap:anywhere}.task-card p{font-size:.83rem;line-height:1.65;color:#6d7d60;margin-top:7px;overflow-wrap:anywhere}.task-meta{font-size:.71rem;color:var(--muted)}.badge{display:inline-block;border-radius:5px;padding:3px 7px;background:#eef3e5;color:#6a7e55;font-size:.69rem;line-height:1.55}.badge.review{background:#f6efde;color:#937639}.badge.help{background:#f7eae4;color:#956557}.badge.done{background:#e9f3e5;color:#567944}.badge.money{background:#eaf2ef;color:#537a68}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:15px}.progress-label{font-size:.74rem;color:var(--muted);margin:8px 0}.progress{width:100%;height:7px;appearance:none;border:0;border-radius:5px;overflow:hidden;background:#e9eddf;accent-color:#6b9259}.progress::-webkit-progress-bar{background:#e9eddf}.progress::-webkit-progress-value{background:#6b9259;border-radius:5px}.progress::-moz-progress-bar{background:#6b9259}.empty-state{padding:27px 22px;border:1px dashed #d6dec9;border-radius:10px;color:var(--muted);font-size:.87rem;line-height:1.7;background:#f9faf4}.empty-state strong{display:block;color:#667a55;font-size:.95rem;font-weight:500;margin-bottom:4px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:26px}.summary-grid .panel{padding:17px}.summary-grid strong{display:block;font-size:1.5rem;font-weight:550;letter-spacing:-.03em}.summary-grid span{display:block;font-size:.73rem;color:var(--muted);margin-top:6px}.bottom-nav{position:fixed;z-index:5;left:50%;bottom:20px;transform:translateX(-50%);width:min(620px,calc(100% - 28px));display:flex;gap:5px;padding:7px;border:1px solid #d7dfcd;border-radius:13px;background:#fffffaf5;box-shadow:0 5px 24px #24472d14;backdrop-filter:blur(14px)}.bottom-nav button{flex:1;min-height:48px;border:0;border-radius:8px;padding:9px 5px;background:transparent;color:#798871;font-size:.8rem}.bottom-nav button[aria-current=page]{background:var(--green);color:#fffdf6}.nav-count{display:inline-block;margin-left:3px;font-size:.69rem}.connection{font-size:.7rem;color:#89917d;text-align:center;margin-top:30px;line-height:1.6}.notice{border:1px solid #e3d3b0;background:#faf2df;color:#866c37;border-radius:8px;padding:14px 16px;font-size:.83rem;line-height:1.6;margin-bottom:18px}.notice .button{margin-left:12px}.toast{position:fixed;z-index:40;left:50%;bottom:100px;transform:translateX(-50%);max-width:calc(100% - 32px);background:var(--green);color:#fffdf6;padding:13px 18px;border-radius:9px;font-size:.83rem;line-height:1.55;box-shadow:0 8px 25px #0002}.loading-state{padding:60px 0;color:var(--muted);text-align:center}.enrollment{max-width:470px;margin:45px auto}.enrollment h1{margin-bottom:15px}.enrollment>p{color:var(--muted);font-size:.88rem;line-height:1.7}.enrollment .panel{margin-top:24px}.field{display:block;min-width:0;margin-top:16px}.field>span{display:block;font-size:.8rem;color:#65775b;line-height:1.5;margin-bottom:7px}.field input,.field textarea,.field select{width:100%;min-width:0;min-height:44px;padding:11px 12px;border:1px solid #d2ddc6;border-radius:7px;background:#fffef9;color:#334a39;font-size:.9rem;line-height:1.6}.field textarea{resize:vertical}.field small{display:block;color:#869178;font-size:.73rem;line-height:1.6;margin-top:6px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-error{padding:10px 13px;background:#f9ebe4;color:#925944;border-radius:7px;font-size:.8rem;line-height:1.6;margin:12px 0}.form-intro{font-size:.86rem;color:#6d7c61;line-height:1.65;white-space:pre-line}.dialog-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:15px}.dialog-heading h2{font-size:1.3rem;line-height:1.4;letter-spacing:-.02em}.close{border:0;background:transparent;color:#77876a;font-size:1.6rem;line-height:1;width:40px;height:40px;flex:none}dialog{max-width:min(650px,calc(100% - 28px));width:650px;max-height:calc(100dvh - 40px);border:1px solid var(--line);border-radius:14px;padding:26px;color:inherit;background:#fffdf7;box-shadow:0 24px 100px #213b2840}dialog::backdrop{background:#20302566;backdrop-filter:blur(2px)}.criterion{margin:17px 0;padding:13px 15px;border-radius:8px;background:#f2f6eb;font-size:.85rem;line-height:1.6;color:#687b59}.criterion strong{display:block;color:#4f6843;font-weight:550;margin-bottom:4px}.checklist{border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-top:15px}.check-row{display:flex;align-items:flex-start;gap:13px;padding:15px;border-bottom:1px solid var(--line);font-size:.94rem;line-height:1.6}.check-row:last-child{border-bottom:0}.check-row input{width:23px;height:23px;flex:none;margin:2px 0 0;accent-color:#547c42}.check-row.done{background:#f2f7ec;color:#809173}.check-row.done span{text-decoration:line-through}.check-row span{overflow-wrap:anywhere}.task-page{max-width:710px;margin:auto}.task-page>.text-button{margin-bottom:18px}.task-page h1{font-size:1.8rem;margin-top:10px}.task-page .panel{margin-top:20px}.task-history{font-size:.8rem;line-height:1.7;color:var(--muted);margin-top:20px}.task-history summary{cursor:pointer;min-height:40px;padding:9px 0}.task-history p{padding:10px 0;border-top:1px solid var(--line);white-space:pre-line}.day-group{margin-top:25px}.day-group>h2{margin-bottom:12px}.week-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:22px}.week-controls input{min-height:42px;padding:8px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:inherit}.earnings-list{margin-top:18px;display:grid;gap:10px}.earning{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid var(--line);padding:13px 0;font-size:.84rem;line-height:1.5}.earning small{display:block;color:var(--muted);margin-top:4px}.person-card h3{margin-bottom:5px}.person-card>p{font-size:.8rem;color:var(--muted);line-height:1.6}.device-list{margin-top:17px;border-top:1px solid var(--line)}.device-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.8rem;line-height:1.5}.device-row small{display:block;color:var(--muted);margin-top:3px}.device-row .text-button{font-size:.75rem;color:var(--danger)}.invite-link{overflow-wrap:anywhere;font-size:.83rem;line-height:1.7;display:block;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f7f9f0;margin-top:15px}.money-confirm{display:flex;gap:10px;align-items:flex-start;font-size:.87rem;line-height:1.6;margin:18px 0;color:#4f6b45}.money-confirm input{width:23px;height:23px;accent-color:var(--green);flex:none;margin-top:3px}.read-note{padding:12px 14px;background:#f4f6ed;border-radius:8px;font-size:.8rem;color:#7d896d;line-height:1.65;margin-top:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}[hidden]{display:none!important}
@media(min-width:900px){.task-list.two-column{grid-template-columns:1fr 1fr}}@media(max-width:640px){.family-shell{padding:0 18px 115px}.app-header{padding:20px 0;margin-bottom:25px}.brand{font-size:1.25rem}.brand-mark{width:39px;height:39px;font-size:37px;border-radius:10px}.page-heading{align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:22px}h1{font-size:1.7rem}.page-heading p{font-size:.85rem}.task-card,.panel,.person-card{padding:16px}.grid{grid-template-columns:1fr}.summary-grid{gap:8px}.summary-grid .panel{padding:13px}.summary-grid strong{font-size:1.3rem}.summary-grid span{font-size:.68rem;line-height:1.5}.bottom-nav{bottom:max(10px,env(safe-area-inset-bottom));padding:6px;gap:2px}.bottom-nav button{font-size:.73rem;padding:8px 4px;min-height:48px}.form-row{grid-template-columns:1fr;gap:0}.field input,.field textarea,.field select{font-size:1rem}dialog{padding:20px;max-height:calc(100dvh - 28px)}.dialog-heading h2{font-size:1.2rem}.task-page h1{font-size:1.6rem}.check-row{padding:14px 12px;font-size:.91rem}.card-bottom{align-items:flex-start}.toast{bottom:90px}.review-card .actions .button{flex:1 1 auto}.identity{font-size:.8rem;max-width:45%}.enrollment{margin:30px auto}.connection{font-size:.68rem}}

/* Calendar dates are household dates; task assignments and reserved time stay distinct. */
.calendar-toolbar,.calendar-range{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.calendar-modes,.calendar-navigation{display:flex;align-items:center;gap:5px}.calendar-modes{border:1px solid var(--line);padding:4px;border-radius:10px;background:var(--card)}.calendar-modes .button{border:0;background:transparent;min-height:38px;padding:8px 16px}.calendar-modes .button[aria-pressed=true]{background:var(--green);color:white}.calendar-range h2{flex:1;font-size:1.05rem}.calendar-picker input,.calendar-picker select{border:1px solid var(--line);border-radius:7px;color:var(--green);background:var(--card);min-height:42px;padding:8px;max-width:210px}.calendar-zone{margin-bottom:16px}.calendar-days{display:grid;gap:10px}.calendar-week{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day{border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--card);min-width:0}.calendar-week .calendar-day{padding:10px 8px}.calendar-day.is-today,.calendar-month-day.is-today{border-color:#7e9965;background:#f5f8ef}.calendar-day-heading{display:block;background:none;border:0;color:var(--green);font-weight:600;font-size:.84rem;padding:4px 0 12px;text-align:left;line-height:1.5;min-height:44px}.calendar-timed h3,.calendar-untimed h3{font-size:.65rem;color:var(--muted);font-weight:500;letter-spacing:.025em;margin:7px 0}.calendar-untimed{border-top:1px dashed var(--line);margin-top:17px;padding-top:9px}.calendar-event,.calendar-task{display:block;width:100%;border:0;border-left:3px solid #6d8e5d;border-radius:5px;padding:9px 8px;text-align:left;background:#eef4e8;color:#375434;margin:6px 0;line-height:1.5;overflow-wrap:anywhere;min-height:44px;font-size:.76rem}.calendar-event span,.calendar-event small,.calendar-task small{display:block;font-size:.62rem;color:#687b5c;margin-bottom:3px;font-weight:400}.calendar-event strong{display:block;font-weight:550}.calendar-event.all-day{background:#edf1df}.calendar-task{background:transparent;border:1px solid var(--line);color:#69755e}.calendar-task small{margin:3px 0 0}.calendar-empty{font-size:.73rem;color:#9ba28e;padding:8px 0;line-height:1.6}.calendar-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--card)}.calendar-weekday{text-align:center;padding:13px 0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:.7rem}.calendar-month-day{min-height:144px;min-width:0;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day-number{background:transparent;border:0;font-size:.8rem;color:var(--green);min-width:34px;min-height:34px;border-radius:50%}.is-today .calendar-day-number{background:var(--green);color:#fff}.outside-month{background:#f6f6ee;color:#a2aa97}.outside-month .calendar-day-number{color:#94a089}.calendar-month-items .calendar-event,.calendar-month-items .calendar-task{font-size:.67rem;padding:5px;min-height:38px}.calendar-month-items .calendar-event span{font-size:.57rem}.calendar-more{background:transparent;border:0;color:var(--muted);font-size:.65rem;min-height:32px;text-align:left}.calendar-mobile-count{display:none}.calendar-conflicts{background:#faf3e1;border:1px solid #e8d7ac;padding:15px;border-radius:9px;margin:0 0 18px;color:#816b3b;font-size:.8rem;line-height:1.6}.calendar-conflicts summary{cursor:pointer;font-weight:600;min-height:28px}.calendar-conflict{border-top:1px solid #e8ddc4;padding-top:9px;margin-top:10px}.calendar-conflict .actions{margin-top:2px}.calendar-review{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-top:25px}.calendar-review .button{flex:none}.calendar-review-note{white-space:pre-line;font-size:.85rem;line-height:1.6;margin-top:14px;color:#536947}.calendar-check{display:flex;align-items:center;gap:9px;font-size:.82rem;line-height:1.5;margin-top:14px;min-height:32px}.calendar-check input{width:21px;height:21px;accent-color:var(--green);flex:none}.calendar-participants{border:1px solid var(--line);border-radius:8px;margin:17px 0 0;padding:8px 14px 14px}.calendar-participants legend{font-size:.8rem;color:#65775b;padding:0 5px}
@media(max-width:850px){.calendar-week{grid-template-columns:1fr}.calendar-week .calendar-day{padding:15px}.calendar-day-heading{font-size:.9rem}.calendar-timed h3,.calendar-untimed h3{font-size:.72rem}.calendar-event,.calendar-task{font-size:.85rem}.calendar-event span,.calendar-event small,.calendar-task small{font-size:.72rem}.calendar-review{flex-wrap:wrap}.calendar-month-day{padding:4px;min-height:118px}.calendar-month-items .calendar-event,.calendar-month-items .calendar-task{font-size:.62rem}}
@media(max-width:520px){.calendar-toolbar{gap:9px}.calendar-modes .button{padding:8px 13px}.calendar-navigation .button{padding:9px 12px}.calendar-range h2{flex-basis:100%;margin:3px 0}.calendar-picker{flex:1;min-width:0}.calendar-picker input,.calendar-picker select{width:100%;max-width:none;font-size:.75rem}.calendar-month-day{padding:2px;min-height:74px}.calendar-month-items,.calendar-more{display:none}.calendar-mobile-count{display:block;font-size:.56rem;color:var(--muted);text-align:center;padding-top:7px}.calendar-day-number{min-height:38px;min-width:38px;width:100%;border-radius:6px}.calendar-weekday{font-size:.61rem}.calendar-modes .button{font-size:.78rem}}

/* Calendar ownership and explicit destination review. */
.calendar-resource-list{display:grid;gap:1rem;margin:1rem 0}.calendar-resource-card,.placement-target{padding:1.1rem;border:1px solid var(--line,#dce3d7);border-radius:14px;background:var(--paper,#fff);min-width:0}.calendar-resource-card h3,.placement-target h3{margin:0 0 .5rem;overflow-wrap:anywhere}.calendar-access-groups{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.calendar-access-groups fieldset,.placement-target fieldset{border:1px solid var(--line,#dce3d7);border-radius:12px;padding:1rem;min-width:0}.calendar-access-groups legend,.placement-target legend{font-weight:650}.calendar-access-groups .section-note{margin:.2rem 0 .7rem}.google-calendar-access{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin:0 0 1rem 1.8rem}.placement-target{margin:1rem 0}.placement-target .placement-state{display:inline-block;font-size:.85rem;font-weight:650;padding:.25rem .55rem;background:#eef3e9;border-radius:6px;margin:.25rem .5rem .7rem 0}.placement-target small{display:block;color:#69756b}.placement-target .criterion{overflow-wrap:anywhere}.placement-target [data-placement-disclosure]{margin-top:1rem}.placement-target [data-placement-disclosure][hidden],.placement-target [data-placement-settings][hidden]{display:none}.calendar-participants [data-calendar-participant-choices]{display:flex;flex-wrap:wrap;gap:.3rem 1rem}[data-protected-conflict]{margin:1rem 0}
@media(max-width:640px){.calendar-access-groups{grid-template-columns:1fr}.google-calendar-access{align-items:flex-start;flex-direction:column}.placement-target{padding:.9rem}.calendar-resource-card .actions{align-items:stretch}}

.placement-inline{width:100%;flex-basis:100%}.placement-inline:empty{display:none}.placement-inline h3{font-size:1rem;margin:.6rem 0}.placement-inline-target{display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem .7rem;padding:.45rem 0;border-bottom:1px solid #e2e8dc}.placement-inline-target strong{font-size:.9rem}.placement-inline-target small{font-size:.8rem;color:#69756b}

/* Family visibility and attendance remain distinct in the everyday flow. */
.calendar-attendance{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.family-route-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.83rem}.family-route-row small{display:block;color:var(--muted);font-size:.73rem;line-height:1.6;margin-top:4px}.calendar-attendance .actions{margin-top:12px}.calendar-resource-list+.task-history{margin:18px 0}
@media(max-width:520px){.family-route-row{align-items:flex-start;flex-wrap:wrap}.family-route-row .button{width:100%}}
