:root{--background:#f1f5f8;--foreground:#162d40;--primary:#1264da;--border:#dce5ed;--muted:#586b7d;color-scheme:light;font-family:Inter,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--foreground);font-size:1rem;line-height:1.5}
button,input{font:inherit}button,summary{cursor:pointer}button:disabled{cursor:wait;opacity:.6}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #d89515;outline-offset:4px}[hidden]{display:none!important}
h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.22;letter-spacing:-.025em}
h1{font-size:clamp(1.8rem,4vw,2.75rem);font-weight:800;margin:0}h1 em{font-style:normal;color:var(--primary);font-weight:500}
h2{font-size:1.5rem;font-weight:750;margin-bottom:0}h3{font-size:1.05rem;font-weight:700;margin-bottom:0}
.eyebrow,.section-kicker{display:block;font-size:.75rem;font-weight:750;letter-spacing:.12em;color:var(--muted)}
.family-page{max-width:1280px;margin:auto;min-height:100dvh}.plan-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.35rem 2rem 1rem}.plan-header .eyebrow{margin-bottom:.3rem}
.text-button{border:1px solid #cad8e3;background:transparent;color:var(--muted);border-radius:2rem;font-size:.875rem;padding:.6rem .95rem;min-height:44px}.text-button:hover{background:white;color:var(--foreground)}
.panorama{height:100px;margin:0 2rem;border-radius:16px;background:url('/malaga.jpg') center 49%/cover;border-bottom:4px solid #e4aa35}
.workspace{padding:0 2rem 2rem;scroll-margin-top:.6rem}.progress-summary{display:flex;align-items:center;gap:.85rem;min-height:47px;color:var(--muted);font-size:.875rem}
.plan-progress{appearance:none;width:110px;height:6px;border:0;border-radius:8px;overflow:hidden;background:#d8e3ec}.plan-progress::-webkit-progress-bar{background:#d8e3ec}.plan-progress::-webkit-progress-value{background:var(--primary)}.plan-progress::-moz-progress-bar{background:var(--primary)}.sync-note{margin-left:auto;font-size:.875rem}
.plan-tab-list{position:sticky;top:8px;z-index:10;display:flex;gap:4px;padding:5px;margin:0 0 1.4rem;background:#fff;border:1px solid #d6e0e9;border-radius:14px;box-shadow:0 4px 16px #1738580b;overflow-x:auto;scrollbar-width:thin}
.plan-tab{flex:1 0 auto;white-space:nowrap;min-height:44px;padding:.55rem 1rem;border:0;border-radius:9px;background:transparent;color:#486075;font-size:.9375rem;font-weight:650;transition:background .15s,color .15s}.plan-tab:hover{background:#edf3fa}.plan-tab[aria-selected=true]{background:#162f4b;color:#fff;box-shadow:0 2px 5px #102c4b20}
.plan-shell{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:1.5rem;align-items:start}.checklist-main{min-width:0;grid-column:1;grid-row:1}.where-sidebar{grid-column:2;grid-row:1;min-width:0;position:sticky;top:87px}
.planning-intro{margin:.2rem 0 1.1rem}.planning-intro h2{margin-top:.25rem;font-size:1.55rem;text-transform:capitalize}.section-label{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;letter-spacing:0;color:var(--muted);margin:1.35rem 0 .65rem}.section-label span{font-size:.875rem;background:#fae8be;color:#745019;min-width:1.55rem;padding:.15rem .4rem;border-radius:5px;text-align:center}
.day-card{background:white;border:1px solid var(--border);border-radius:14px;margin-bottom:1rem;overflow:hidden;box-shadow:0 3px 10px #142f4910}.day-card.is-today{border-color:#7faefa;box-shadow:0 0 0 1px #a9c8fa,0 6px 22px #1457a80e}
.day-heading{display:flex;gap:.85rem;align-items:flex-start;padding:1.1rem 1.2rem;border-bottom:1px solid #e8eef4}.date-tile{flex:0 0 48px;min-height:57px;border-radius:9px;background:#edf3f8;text-align:center;padding:.3rem;color:#24435d;line-height:1.12}.date-tile strong{display:block;font-size:1.45rem;font-weight:800;letter-spacing:-.03em}.date-tile span{display:block;font-size:.75rem;font-weight:700;margin-top:.18rem;text-transform:uppercase}.is-today .date-tile{background:var(--primary);color:white}
.day-caption{flex:1;min-width:0;padding-top:.1rem}.day-title-line{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem .7rem}.day-heading p{font-size:.875rem;color:var(--muted);margin:.4rem 0 0;line-height:1.5}.today-badge{display:inline-block;font-size:.75rem;font-weight:750;padding:.15rem .5rem;color:#1953a8;background:#eaf2ff;border-radius:5px;letter-spacing:0}
.day-note{margin:.85rem 1.2rem 0;background:#fff5dc;border-left:3px solid #dfa42a;border-radius:0 7px 7px 0;padding:.7rem .85rem;color:#705324;font-size:.875rem}
.task-list{list-style:none;margin:0;padding:0 1.2rem}.task-row{display:flex;align-items:flex-start;gap:.85rem;padding:1.05rem 0;border-bottom:1px solid #edf1f5}.task-row:last-child{border-bottom:0}.task-checkbox{width:25px;height:25px;flex:0 0 25px;margin:1px 0 0;accent-color:var(--primary);cursor:pointer}
.task-label{display:block;flex:1;min-width:0;cursor:pointer;padding:0;font-weight:400}.task-title{display:block;font-size:1rem;font-weight:600;line-height:1.5}.task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.5rem}.person-tag{font-size:.875rem;line-height:1.4;font-weight:600;background:#edf1f6;color:#526478;border-radius:5px;padding:.15rem .45rem}
.person-tag[data-person=Anoeska]{background:#e7efff;color:#2554a0}.person-tag[data-person=Walter]{background:#eee9fa;color:#695092}.person-tag[data-person=Rodin]{background:#e0f3ed;color:#246b53}.person-tag[data-person=Stella]{background:#fbe7ef;color:#a14267}
.task-time{font-size:.875rem;font-weight:700;color:#244058;padding:.15rem .2rem;font-variant-numeric:tabular-nums}.task-detail{display:block;color:var(--muted);font-size:.875rem;line-height:1.55;margin-top:.6rem}.task-done .task-title{text-decoration:line-through;color:#6c7c8b}.task-done .person-tag{opacity:.7}.key-task:not(.task-done) .task-title{color:#8b570e}.key-task:not(.task-done){border-left:3px solid #dc9e28;padding-left:.7rem;margin-left:-.7rem}
.empty-today{font-size:.9375rem;color:var(--muted);margin:.7rem 0 1rem}.past-days{border:1px dashed #bfccd8;border-radius:12px;margin-top:1.35rem;padding:0 1rem;background:#e9eff4}.past-days>summary{font-size:.9375rem;font-weight:650;padding:1rem 0;min-height:48px}.past-days>summary span{font-size:.875rem;color:var(--muted);font-weight:400;margin-left:.5rem}.archive-note{font-size:.875rem;color:var(--muted);margin-bottom:1rem}
.where-panel{background:#fff;border:1px solid var(--border);border-radius:13px;overflow:hidden}.where-panel>summary{font-size:1rem;font-weight:750;padding:1rem 1.15rem;min-height:48px}.details-hint{display:block;margin:.3rem 0 0 1rem;font-size:.875rem;font-weight:400;color:var(--muted)}.where-content{padding:0 1.15rem 1rem}.family-names{font-size:.875rem;color:var(--muted);margin:.3rem 0 .8rem}
.location-period{border-top:1px solid var(--border);padding:.85rem 0}.location-period h3{font-size:.875rem;line-height:1.45;letter-spacing:0;margin-bottom:.6rem}.location-period dl{margin:0;display:grid;grid-template-columns:65px 1fr;gap:.3rem;font-size:.875rem}.person-location{display:contents}.location-period dt{color:var(--muted)}.location-period dd{margin:0;font-weight:600}.location-period p{background:#edf4fa;font-size:.875rem;border-radius:6px;padding:.6rem;margin:.7rem 0 0}
.all-periods>summary{padding:.7rem 0;color:var(--primary);font-size:.875rem;min-height:44px;font-weight:600}.animal-panel{border-top:1px solid var(--border);padding-top:1rem;margin-top:.5rem}.animal-panel h2{font-size:1rem;margin:0 0 .6rem}.animal-panel p{font-size:.875rem;color:var(--muted);margin-bottom:.7rem}
.contact-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:1.25rem;margin-bottom:1rem}.contact-card h2{margin-top:.3rem}.contact-list{list-style:none;padding:0;margin:1rem 0 0}.contact-list li{border-top:1px solid #e7edf2}.contact-list a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;color:var(--foreground);text-decoration:none}.contact-list a:hover strong{text-decoration:underline}.contact-list strong{font-size:1rem;font-weight:650}.contact-number{display:block;font-size:.875rem;color:var(--muted);margin-top:.15rem}.call-label{display:inline-block;color:#fff;background:var(--primary);padding:.6rem .9rem;border-radius:8px;font-size:.875rem;font-weight:650;min-height:44px}
.save-error{font-size:.9375rem;padding:1rem;background:#fff0e9;border:1px solid #e7a783;border-radius:9px;margin-bottom:1rem}.site-footer{max-width:1280px;margin:auto;padding:1rem 2rem 2rem;font-size:.75rem;color:var(--muted)}.site-footer a,.photo-credit a{color:inherit}
.access-page{min-height:100dvh;display:grid;grid-template-columns:1.15fr 1fr;background:white}.access-photo{background:url('/malaga.jpg') 46% center/cover}.access-card{width:min(100%,450px);margin:auto;padding:3rem 2rem}.access-card h1{font-size:clamp(3rem,6vw,4.3rem);line-height:1.1;margin:1rem 0}.access-card h1 em{font-weight:450}.access-intro{color:var(--muted);margin:1rem 0 2rem}.access-card label{display:block;font-size:.9375rem;font-weight:650;margin-bottom:.6rem}.pin-input{width:100%;height:3.5rem;border:1px solid #bdccdb;border-radius:10px;padding:.7rem 1rem;font-size:1.65rem;letter-spacing:.6em;margin-bottom:1rem}.primary-button{width:100%;border:0;border-radius:10px;background:var(--primary);color:white;padding:.9rem;font-weight:700}.error-text{color:#a12821;font-size:.9375rem;min-height:1.5rem;margin-top:.75rem}.photo-credit{font-size:.75rem;color:var(--muted);margin-top:2rem}
@media(max-width:960px){.plan-header{padding:1.15rem 1.25rem .8rem}.panorama{margin:0 1.25rem;height:75px}.workspace{padding:0 1.25rem 1.5rem}.plan-shell{display:flex;flex-direction:column;gap:.85rem}.where-sidebar{position:static;width:100%}.where-panel>summary{padding:.8rem 1rem}.details-hint{display:inline;margin:0 0 0 .5rem;font-size:.875rem}.checklist-main{width:100%}.plan-tab-list{margin-bottom:.8rem}.site-footer{padding:1rem 1.25rem}.planning-intro{margin:.25rem 0 .9rem}}
@media(max-width:600px){.plan-header{padding:.9rem .9rem .7rem}.plan-header h1{font-size:1.75rem}.plan-header .eyebrow{font-size:.75rem;letter-spacing:.06em}.text-button{padding:.55rem .7rem;font-size:.875rem}.panorama{height:58px;margin:0 .9rem;border-radius:11px;border-bottom-width:3px}.workspace{padding:0 .9rem 1.2rem}.progress-summary{gap:.5rem;min-height:39px}.plan-progress{width:65px;margin-left:auto}.sync-note{display:none}.plan-tab-list{gap:2px;padding:4px;top:6px;border-radius:11px}.plan-tab{font-size:.875rem;min-width:max-content;padding:.5rem .35rem;border-radius:7px}.planning-intro h2{font-size:1.25rem}.section-kicker{font-size:.75rem}.day-heading{padding:.9rem;gap:.7rem}.date-tile{flex-basis:44px;min-height:53px}.date-tile strong{font-size:1.3rem}.task-list{padding:0 .9rem}.task-row{padding:.95rem 0;gap:.75rem}.day-note{margin:.75rem .9rem 0}.day-heading h3{font-size:1rem}.today-badge{font-size:.75rem}.contact-card{padding:1rem}.past-days{padding:0 .75rem}.site-footer{padding:1rem}.access-page{grid-template-columns:1fr;grid-template-rows:25dvh 1fr}.access-card{padding:1.7rem 1.5rem}.access-card h1{font-size:3rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.planning-intro h2{text-transform:none}
@media(max-width:600px){.plan-tab{padding-inline:.2rem}.plan-tab-list{gap:1px}.planning-intro .section-kicker{display:none}}
