:root{--ink:#132c3d;--nav:#102a3a;--muted:#5f7180;--line:#dce4e8;--wash:#f3f6f8;--lime:#d4f788;--green:#1c624b;--red:#a9363e;--yellow:#87600e;--radius:16px}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#fff;font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--ink);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #437da5;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.2rem,3.6vw,3.7rem);line-height:1.1;letter-spacing:-.055em;font-weight:650;margin-bottom:18px}h2{font-size:1.5rem;line-height:1.25;letter-spacing:-.035em;margin-bottom:16px}h3{font-size:1.06rem;line-height:1.4;margin-bottom:8px}p{margin-bottom:18px}small,.help{font-size:.875rem;color:var(--muted)}.help{line-height:1.65}.eyebrow{font-size:.75rem;font-weight:750;letter-spacing:.14em;color:var(--muted);margin-bottom:18px}.lede{font-size:1.15rem;color:var(--muted);max-width:700px;line-height:1.65}.brand{display:flex;align-items:center;gap:8px;font-size:2rem;font-weight:750;letter-spacing:-.07em;text-decoration:none;color:var(--ink)}.brand-mark{display:grid;place-items:center;width:34px;height:34px;background:var(--lime);color:var(--ink);border-radius:9px;line-height:1;font-size:1.65rem}.brand-dot{color:#829c44;margin-left:-8px}.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;background:var(--ink);color:white;text-decoration:none;border:1px solid var(--ink);border-radius:8px;padding:13px 21px;font-weight:650;font-size:.95rem;line-height:1.4;min-height:47px}.button:hover{background:#24475e}.button.secondary{background:white;color:var(--ink);border-color:#aabac4}.button.secondary:hover{background:var(--wash)}.button.small{font-size:.875rem;padding:9px 14px;min-height:39px}.link{border:0;padding:0;background:none;color:var(--ink);text-decoration:underline;text-underline-offset:4px;font-size:.875rem}.link.danger{color:#99404a}.actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px}.actions form{margin:0}.skip{position:absolute;top:-100px;left:15px;z-index:50;background:white;padding:10px}.skip:focus{top:10px}.public-header{display:flex;align-items:center;justify-content:space-between;padding:28px 5vw;border-bottom:1px solid var(--line)}.public-header nav{display:flex;align-items:center;gap:28px}.public-page{max-width:1280px;margin:auto;padding:50px 5vw}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;padding:35px 0 70px}.hero h1{font-size:clamp(3.2rem,5.5vw,5.5rem)}.hero em{font-family:Georgia,serif;font-weight:400}.hero .lede{max-width:550px;margin:27px 0}.hero-radar{border:1px solid #b9cbd5;border-radius:22px;padding:32px;box-shadow:16px 18px 0 var(--wash);background:white}.hero-radar h2{font-size:2rem;margin-top:22px}.timeline{display:grid;gap:9px;margin:25px 0}.timeline>div{display:grid;grid-template-columns:75px 1fr;gap:10px;align-items:center;font-size:.85rem}.timeline b{padding:12px 10px;border-radius:5px;background:#e3ecf0;font-size:.8rem}.timeline .gap{background:#fbe7e6;border:1px dashed #cf6b71;color:var(--red)}.hero-radar>p{border-top:1px solid var(--line);padding-top:20px}.three-up{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding:36px 0;border-top:1px solid var(--line)}.three-up .number{font-size:.8rem;font-weight:bold;color:var(--muted);display:block;margin-bottom:18px}.three-up p{color:var(--muted)}.workspace{display:flex;min-height:100vh}.sidebar{position:fixed;top:0;left:0;bottom:0;width:235px;background:var(--nav);padding:28px 22px;color:white;display:flex;flex-direction:column;z-index:10}.sidebar .brand{color:white}.household-label{color:#bfd2dc;font-size:.8rem;margin:22px 0 28px;overflow-wrap:anywhere}.sidebar nav{display:grid;gap:7px}.sidebar nav>a{display:flex;align-items:center;gap:14px;padding:11px 10px;border-radius:8px;color:#d4e1e8;text-decoration:none;font-size:.9rem}.sidebar nav>a[aria-current],.sidebar nav>a:hover{background:#244151;color:white}.sidebar nav>a[aria-current]{box-shadow:inset 3px 0 var(--lime)}.nav-label{font-size:.68rem;letter-spacing:.13em;color:#9db6c5;margin:25px 9px 5px}.sidebar-bottom{margin-top:auto;padding-top:35px;font-size:.8rem;overflow-wrap:anywhere;color:#b8cbd5}.light{color:#d5e2e9}.workspace-main{margin-left:235px;width:calc(100% - 235px)}.page{padding:42px 42px 60px;max-width:1500px;margin:0 auto}.page-heading{margin-bottom:34px}.heading-actions{display:flex;justify-content:space-between;gap:25px;align-items:center}.heading-actions h1{max-width:700px}.columns{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:28px;align-items:start}.panel{border:1px solid var(--line);border-radius:var(--radius);padding:25px;background:white;margin-bottom:24px;min-width:0}.panel.soft{background:var(--wash);border-color:var(--wash)}.narrow{max-width:690px}.auth-card{max-width:520px;margin:20px auto;padding:30px}.auth-card h1{font-size:2.7rem}.field{display:grid;gap:7px;margin-bottom:20px}.field label,form>label{font-size:.875rem;font-weight:650}.field input:not([type=checkbox]),.field select,.field textarea,textarea,input[readonly]{width:100%;min-width:0;padding:11px 13px;border:1px solid #afbdc6;background:white;border-radius:7px;color:var(--ink);font-size:1rem}.field textarea,textarea{resize:vertical;min-height:95px}.field>div[id]{display:grid;gap:8px}.field>div[id] label{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:7px}.field input[type=checkbox]{width:20px;height:20px;accent-color:var(--green);flex:none}.field ul{padding-left:20px;margin:5px 0}.checkbox-field{display:flex;align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end;gap:12px}.form-errors{color:var(--red);font-size:.875rem}.form-errors ul{padding-left:20px}.notice{background:#edf3f7;padding:16px 20px;border-radius:9px;margin-bottom:24px}.notice.error{background:#fceced;color:#8d2731}.notice.success{background:#e9f5ec;color:var(--green)}.section-heading,.row-end{display:flex;justify-content:space-between;gap:16px;align-items:center}.section-heading{margin-bottom:20px}.section-heading h2{margin:0}.list-row,.todo-row,.event-row{display:flex;align-items:center;gap:17px;padding:18px 0;border-bottom:1px solid var(--line)}.list-row:last-child,.todo-row:last-child,.event-row:last-child{border-bottom:0}.list-row form,.todo-row form{flex:none}.grow{flex:1;min-width:0;overflow-wrap:anywhere}.avatar{width:42px;height:42px;border-radius:50%;background:#e9f0f4;display:grid;place-items:center;font-size:1.1rem;font-weight:700;flex:none}.program-tile{padding:18px;background:var(--wash);border-radius:10px;margin-bottom:14px}.program-tile h3{font-size:1.2rem;margin:3px 0}.program-tile .row-end{margin-top:14px}.chips{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap}.chip{padding:5px 12px;border-radius:20px;background:#e2efcf;color:#334b1b;font-size:.85rem}.empty{color:var(--muted);padding:20px 0}.empty-state{padding:38px;max-width:800px}.calendar-row{display:flex;gap:17px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none}.calendar-row:last-child{border:0}.calendar-row small{display:block;margin-top:5px}.calendar-icon{width:40px;height:40px;display:grid;place-items:center;background:#eaf1f6;border-radius:8px;font-size:1.4rem}.event-row{align-items:flex-start}.event-date{width:44px;flex:none;font-size:.75rem;text-align:center;color:var(--muted);text-transform:uppercase}.event-date b{display:block;font-size:1.5rem;color:var(--ink)}details>summary{font-size:1rem;font-weight:650;cursor:pointer;margin-bottom:17px}details:not([open])>summary{margin-bottom:0}details form{margin-top:20px}.focus-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:27px}.focus-options span{padding:17px;background:var(--wash);font-size:.9rem;border-radius:8px}.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.report-toolbar h2{margin:0;font-size:1.1rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{border-radius:12px;padding:18px 20px;display:flex;flex-direction:column}.stat b{font-size:2.1rem;line-height:1.1;margin-bottom:8px}.stat span{font-size:.82rem}.red{color:var(--red);background:#fce9e9}.yellow{color:var(--yellow);background:#fff4d5}.green{color:var(--green);background:#e8f3eb}.incomplete{color:#5e7180;background:#eef1f4}.pill{display:inline-block;padding:5px 10px;border-radius:20px;font-size:.75rem;font-weight:650}.neutral{background:#eef2f5;color:#526574}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:26px 0 34px}.day{display:grid;gap:2px;padding:10px 13px;border-radius:8px}.day b{font-size:1.3rem}.day small{color:inherit;font-size:.7rem}.day span{font-size:.7rem}.insight h2{margin-top:20px}.insight .when{font-weight:650;font-size:.9rem}.insight details{border-top:1px solid var(--line);padding-top:17px;margin:22px 0}.insight p,.insight li{font-size:.95rem}.insight li{margin-bottom:8px}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.card-grid .panel{margin:0}.memory-text{font-size:1.1rem;margin:20px 0;white-space:pre-wrap}.check-button{border:1px solid #9eafb8;background:white;color:var(--green);width:31px;height:31px;border-radius:50%;font-size:1.3rem;line-height:1}.todo-row.done h3{text-decoration:line-through;color:var(--muted)}.todo-row.done .check-button{background:#e0f0df}.plan-card{text-decoration:none}.plan-card:hover{border-color:#7f9baa}.plan-card h2{margin-top:25px}.plan-arrow{display:block;margin-top:28px;font-size:.9rem;font-weight:650}.prompts{padding-left:20px}.prompts li{margin-bottom:20px;font-size:.95rem}.chat-question{font-weight:650;border-left:3px solid var(--green);padding-left:15px;margin:20px 0}.answer{line-height:1.8;font-size:1rem;overflow-wrap:anywhere}.working-mark{font-size:3rem;color:var(--green);animation:pulse 1.7s ease infinite}.page textarea#message{margin:12px 0 20px}footer{padding:20px 42px;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}@keyframes pulse{50%{opacity:.3}}@media(max-width:1120px){.columns{grid-template-columns:1fr}.page{padding:35px 30px}.hero{gap:35px}.heading-actions{align-items:flex-start;flex-direction:column}.sidebar{width:215px}.workspace-main{margin-left:215px;width:calc(100% - 215px)}}@media(max-width:760px){.workspace{display:block}.sidebar{position:static;width:auto;padding:17px 22px}.sidebar .brand{font-size:1.7rem}.household-label{margin:8px 0 15px}.sidebar nav{display:flex;overflow-x:auto;gap:7px;padding-bottom:5px}.sidebar nav>a{white-space:nowrap;padding:8px;font-size:.8rem}.sidebar .nav-label,.sidebar-bottom{display:none}.workspace-main{margin:0;width:100%}.page{padding:28px 20px}.page-heading{margin-bottom:25px}.panel{padding:20px}.stats{grid-template-columns:1fr 1fr;gap:10px}.day{padding:8px 5px}.day span{font-size:.58rem}.day b{font-size:1.1rem}.calendar-grid{gap:4px}.card-grid{grid-template-columns:1fr}.row-end,.section-heading{flex-wrap:wrap}.list-row,.todo-row{gap:10px;flex-wrap:wrap}.list-row .grow,.todo-row .grow{min-width:50%}.hero{grid-template-columns:1fr;gap:35px;padding:0 0 45px}.public-page{padding:32px 22px}.public-header{padding:20px 22px}.public-header nav{gap:16px}.public-header .brand{font-size:1.65rem}.three-up{grid-template-columns:1fr;gap:20px}.hero-radar{padding:25px}.report-toolbar{align-items:flex-start;flex-direction:column}.auth-card{padding:15px}.focus-options{grid-template-columns:1fr}.event-row .actions{gap:12px}footer{padding:20px}.button{font-size:.9rem}.actions{gap:14px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}

.mobile-signout{display:none}@media(max-width:760px){.mobile-signout{display:block;position:absolute;top:24px;right:22px}.sidebar .brand{padding-right:90px}}
/* Friendly, keyboard-accessible profile and program choices. */
fieldset.field{border:0;padding:0;min-width:0}fieldset legend{font-weight:650;margin-bottom:10px}.choices>div{display:flex;flex-wrap:wrap;gap:8px}.choices>div>div label{display:flex;align-items:center;gap:8px;border:1px solid #d5ded7;border-radius:12px;padding:10px 14px;cursor:pointer;margin:0;background:#fff}.choices label:has(input:checked){border-color:#27624c;box-shadow:0 0 0 1px #27624c;background:#eff7ef}.choices input{width:auto;margin:0;accent-color:#27624c}.profile-preview{display:flex;align-items:center;gap:12px;margin-bottom:24px}.profile-preview .avatar{font-size:30px;width:64px;height:64px}.avatar{flex-shrink:0}.age-output{display:block;min-height:1.4em;margin-top:6px}.color-sky{background:#d5e9fa!important;color:#253c52}.color-mint{background:#cce9da!important;color:#244a39}.color-rose{background:#f7d6e3!important;color:#54253a}.color-gold{background:#f9e5a2!important;color:#514219}.color-violet{background:#e3dcfa!important;color:#3d305d}.color-peach{background:#ffddc1!important;color:#563722}.color-choices label:has([value="sky"]){background:#d5e9fa}.color-choices label:has([value="mint"]){background:#cce9da}.color-choices label:has([value="rose"]){background:#f7d6e3}.color-choices label:has([value="gold"]){background:#f9e5a2}.color-choices label:has([value="violet"]){background:#e3dcfa}.color-choices label:has([value="peach"]){background:#ffddc1}input[type="radio"]:focus-visible{outline:3px solid #27624c;outline-offset:3px}textarea{display:block;width:100%;box-sizing:border-box;margin:8px 0 14px}.actions label{max-width:100%}
.field.choices>div[id]{display:flex;flex-wrap:wrap;gap:8px}.field input[type=radio]{width:18px;height:18px;padding:0;flex:none;margin:0}.field.choices>div[id]>div{max-width:100%}

/* Day plan: one day as lanes of people. Dashed means nothing is settled yet —
   an open trip, a suggestion; solid means a person recorded it. */
.dayplan{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,330px);gap:24px;align-items:start;--gutter:64px}
.dayplan-key{display:flex;align-items:center;gap:10px;margin:0;font-size:.78rem;color:var(--muted);flex-wrap:wrap}
.key-swatch{width:34px;height:15px;border:1px solid var(--line);border-radius:4px;background:#fff;display:inline-block}
.key-sep{width:1px;height:18px;background:var(--line)}
.key-capsule{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:12px;font-size:.72rem;font-weight:700}
.key-capsule.open{border:1.5px dashed #9c7418;color:var(--yellow);background:#fff}
.key-capsule.named{background:var(--ink);color:#fff}
.dayplan-grid{padding:18px 20px 22px 0;overflow-x:auto}
.dayplan-head{display:flex;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:10px;min-width:560px}
.lane-head{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:10px;padding:0 10px}
.lane-head b{display:block;font-size:.95rem;line-height:1.25;overflow-wrap:anywhere}
.lane-head small{display:block}
.lane-head .avatar{width:34px;height:34px;font-size:1rem}
.dayplan-body{display:flex;position:relative;min-width:560px}
.dayplan-gutter{position:relative;flex:0 0 var(--gutter);width:var(--gutter)}
.dayplan-gutter .tick,.dayplan-gutter .tick-condensed{position:absolute;right:10px;transform:translateY(-50%);font-size:.72rem;font-weight:650;color:var(--muted);white-space:nowrap}
.dayplan-gutter .tick-condensed{font-size:.6rem;font-weight:600;text-align:right;line-height:1.35;letter-spacing:.01em;white-space:pre-line}
.dayplan-canvas{position:relative;flex:1 1 0;min-width:0}
.dayplan-canvas .rule{position:absolute;left:0;right:0;height:1px;background:var(--line)}
.dayplan-canvas .rule-condensed{position:absolute;left:0;right:0;height:1px;background:repeating-linear-gradient(90deg,var(--line) 0 4px,transparent 4px 9px)}
.lane-line{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
.block{position:absolute;box-sizing:border-box;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:4px;overflow:hidden;margin:0 3px}
.block b{font-size:.84rem;font-weight:650;line-height:1.2;display:block}
.block small{font-size:.72rem;line-height:1.25;display:block}
.block-foot{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.block-foot .when{font-size:.68rem;color:var(--muted);margin-right:2px}
.block .tag{font-size:.66rem;font-weight:650;padding:1px 7px;border-radius:10px;white-space:nowrap}
.block.kind-care{background:var(--wash);border-color:#d3dee4}
.block.kind-busy{background:#f6f4ef;border-color:#e0dbd0}
.block.kind-closure{background:#fceced;border-color:#e6c3c6}
.block.assumed{border-style:dashed}
.transit{position:absolute;box-sizing:border-box;border-radius:8px;display:flex;align-items:center;justify-content:center;margin:0 3px;pointer-events:none}
.transit.open{border:1.5px dashed #c79a3a;background:repeating-linear-gradient(135deg,transparent 0 5px,#f6ecd6 5px 7px)}
.transit.named{border:1.5px solid #b3c3cc;background:repeating-linear-gradient(135deg,transparent 0 5px,#eaf0f3 5px 7px)}
.capsule{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:14px;font-size:.74rem;font-weight:650;white-space:nowrap;box-shadow:0 0 0 2.5px #fff;max-width:96%;overflow:hidden}
.capsule b{font-weight:750}
.capsule-rule{width:1px;height:13px;background:currentColor;opacity:.4;flex:none}
.capsule.open{background:#fff;border:1.5px dashed #9c7418;color:var(--yellow)}
.capsule.named{background:var(--ink);color:#fff}
.capsule.suggested{border:1.5px dashed rgba(0,0,0,.35);box-shadow:none;max-width:100%;white-space:normal;height:auto;padding:6px 11px;line-height:1.35}
.dayplan-rail{display:flex;flex-direction:column;gap:18px;position:sticky;top:24px}
.dayplan-rail .panel{margin:0}
.issue-tile{padding:16px 18px}
.issue-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.issue-category{font-size:.7rem;font-weight:750;letter-spacing:.11em;text-transform:uppercase;color:var(--yellow);margin:0 0 8px}
.issue-tile.quiet .issue-category{color:var(--muted)}
.issue-dismiss{border:0;background:none;color:var(--muted);font-size:.95rem;line-height:1;padding:4px 6px;margin:-4px -6px 0 0;border-radius:14px}
.issue-dismiss:hover{background:var(--wash);color:var(--ink)}
.issue-headline{font-size:.98rem;font-weight:700;line-height:1.3;letter-spacing:0;margin:0 0 10px}
.issue-detail{font-size:.82rem;color:var(--muted);line-height:1.5;margin:0}
.suggestion{border:1.5px dashed #ddc48c;border-radius:10px;background:#fdfaf3;padding:12px;display:flex;flex-direction:column;gap:9px}
.suggestion-tag{display:flex;align-items:center;gap:6px;font-size:.66rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:var(--yellow);margin:0}
.suggestion-summary{font-size:.9rem;font-weight:700;line-height:1.3;margin:0}
.suggestion-why{font-size:.78rem;color:var(--muted);line-height:1.5;margin:0}
.suggestion-why b{color:var(--ink)}
.suggestion-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sources{padding:14px 18px 18px}
.sources-label{font-size:.66rem;font-weight:750;letter-spacing:.1em;color:var(--muted);margin:0 0 8px}
.source-row{display:flex;align-items:center;gap:9px;font-size:.8rem;padding:5px 0 5px 18px;cursor:pointer;overflow-wrap:anywhere}
.source-row.all{padding-left:0;font-weight:700;font-size:.85rem}
.source-row input{width:16px;height:16px;flex:none;accent-color:var(--ink);margin:0}
.source-dot{width:9px;height:9px;border-radius:50%;flex:none;background:#8fa6b3}
.source-dot.kind-program{background:#c07c46}.source-dot.kind-busy{background:#6a63b0}.source-dot.kind-family{background:#2f7d63}
.sources .button{margin-top:14px}
@media(max-width:1120px){.dayplan{grid-template-columns:1fr}.dayplan-rail{position:static}}
@media(max-width:760px){.dayplan-grid{padding:16px 12px 18px 0;--gutter:52px}.lane-head{padding:0 6px}.lane-head small{display:none}}
