*{box-sizing:border-box}:root{color:#24362f;--ink:#24362f;--muted:#64756d;--line:#d9dfd8;--paper:#fffdfa;--green:#2f6f5e;--green-soft:#dfece6;--warm:#f2dfc6;--coral:#f4d8cf;--blue:#dce8f2;--mint:#dcebe0;background:#f6f3ed;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}body{background:radial-gradient(circle at 10% 0,#fff4dc 0,#0000 28rem),radial-gradient(circle at 100% 15%,#e2efe9 0,#0000 30rem),#f6f3ed;margin:0}a{color:#24594b}button,input,select{font:inherit;border-radius:12px;min-height:48px}button{background:var(--green);border:1px solid var(--green);color:#fff;cursor:pointer;padding:12px 24px;font-weight:700}button:disabled{opacity:.65;cursor:wait}button.secondary{color:var(--green);background:0 0}:focus-visible{outline-offset:4px;outline:3px solid #bd6e3e}.site-header{justify-content:space-between;align-items:center;gap:24px;max-width:1180px;margin:auto;padding:24px 32px;display:flex}.brand{letter-spacing:-.035em;color:#1f463b;font-size:1.4rem;font-weight:800;text-decoration:none}.brand span{letter-spacing:.14em;text-transform:uppercase;color:#9a6a43;font-size:.72rem;font-weight:650;display:block}nav a{padding:12px;font-weight:650;text-decoration:none;display:inline-block}main{max-width:1180px;margin:0 auto;padding:32px}h1{letter-spacing:-.045em;margin:12px 0 20px;font-size:clamp(2.2rem,4vw,3.6rem);line-height:1.08}h2{letter-spacing:-.02em;margin-bottom:24px;font-size:1.45rem}h3{margin:12px 0 8px;font-size:1.18rem}p{max-width:62ch}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#7a6a55;font-size:.73rem;font-weight:800}.welcome{justify-content:space-between;align-items:center;gap:32px;padding:20px 0 38px;display:flex}.family-welcome,.cleaning-welcome{position:relative}.family-welcome:before,.cleaning-welcome:before{content:"";background:linear-gradient(90deg,#0000,#d9c6a9 18%,#b8d3c8 82%,#0000);height:1px;position:absolute;bottom:14px;left:-32px;right:-32px}.section-heading{justify-content:space-between;align-items:flex-end;gap:32px;margin:18px 0 24px;display:flex}.section-heading h2{margin:4px 0 0}.section-heading>p{color:var(--muted);margin:0}.section-heading.compact{margin-bottom:16px}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.module-card{--accent:#dfece6;background:#fffdfaf0;border:1px solid #e2ddd4;border-radius:22px;padding:26px;transition:transform .18s,border-color .18s,box-shadow .18s;position:relative;overflow:hidden;box-shadow:0 12px 34px #39443e0e}.module-card:before{content:"";background:var(--accent);height:5px;position:absolute;inset:0 0 auto}.module-card:hover{transform:translateY(-2px);box-shadow:0 16px 40px #39443e17}.module-card p{color:#596a62;margin:0 0 24px}.module-icon{background:var(--accent);border-radius:16px;place-items:center;width:52px;height:52px;margin-bottom:18px;font-size:1.6rem;display:grid}.module-sage{--accent:#d9e8df}.module-blue{--accent:#dce8f4}.module-amber{--accent:#f5e5c8}.module-green{--accent:#dcead3}.module-violet{--accent:#e8def2}.module-rose{--accent:#f1dbe2}.module-coral{--accent:#f4d9ce}.module-teal{--accent:#d8ecea}.status{color:#596a62;background:#fff;border:1px solid #d9ddd9;border-radius:40px;padding:5px 12px;font-size:.8rem;display:inline-block}.module-card.active{color:inherit;border-color:#a9c4b8;text-decoration:none;display:block}.module-card.active:hover{border-color:var(--green)}.module-card.active .status{color:#24594b;background:#e2eee8;border-color:#c7ddd3}.login-panel{background:#fffdfaf5;border:1px solid #e3ded5;border-radius:28px;max-width:610px;margin:5vh auto;padding:44px;box-shadow:0 22px 60px #3f433a14}.login-panel:before{content:"S  ·  R";color:#fff;letter-spacing:.08em;background:linear-gradient(135deg,#2f6f5e,#a66b43);border-radius:20px;place-items:center;width:64px;height:64px;margin-bottom:22px;font-weight:800;display:grid}.login-form{gap:12px;max-width:380px;margin-top:28px;display:grid}.login-form label{font-weight:700}.login-form input,.login-form select{width:100%;color:var(--ink);background:#fff;border:1px solid #9caf9f;padding:10px 14px}.hint{color:#687971;margin:0;font-size:.84rem}[role=alert]{color:#913321}footer{color:#718078;max-width:1180px;margin:auto;padding:32px;font-size:.85rem}.skip-link{z-index:100;background:#fff;padding:12px;position:absolute;top:-100px;left:16px}.skip-link:focus{top:12px}.cleaning-overview{background:linear-gradient(135deg,#fffdfafa,#f0f5eff5);border:1px solid #dedfd7;border-radius:26px;margin-bottom:34px;padding:28px;box-shadow:0 16px 45px #3a453f0f}.overview-heading{justify-content:space-between;align-items:flex-end;gap:28px;display:flex}.overview-heading h2{margin:3px 0 0}.overview-heading>p{color:var(--muted);margin:0}.overview-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0;display:grid}.overview-stat{border-radius:18px;gap:3px;padding:18px;display:grid}.overview-stat strong{font-size:2rem;line-height:1}.overview-stat span{color:#53645c;font-size:.82rem}.overview-stat.warm{background:var(--warm)}.overview-stat.coral{background:var(--coral)}.overview-stat.mint{background:var(--mint)}.overview-stat.blue{background:var(--blue)}.overview-columns{grid-template-columns:1.2fr .8fr;gap:18px;display:grid}.focus-panel{background:#fff;border:1px solid #e3e1da;border-radius:18px;padding:20px}.focus-panel h3{margin-top:0}.focus-panel ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.focus-task{text-align:left;width:100%;color:var(--ink);background:#fbfaf7;border-color:#e4e1d9;align-items:center;gap:12px;padding:12px 14px;display:flex}.focus-task:hover{background:#f4f0e7}.focus-task strong,.recent-list strong{display:block}.focus-task small,.recent-list small{color:var(--muted);font-size:.78rem;display:block}.focus-icon{background:#f0e5d8;border-radius:12px;flex:none;place-items:center;width:38px;height:38px;display:grid}.recent-list li{border-bottom:1px solid #eeeae2;align-items:center;gap:12px;padding:9px 0;display:flex}.recent-list li:last-child{border-bottom:0}.recent-list>li>span:first-child{font-size:1.3rem}.overview-empty{color:var(--muted);margin-bottom:0}.room-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:34px;display:grid}.room-overview-card{text-align:left;color:var(--ink);background:#fffdfaeb;border-color:#dddcd6;align-items:center;gap:12px;padding:16px;display:flex;box-shadow:0 5px 18px #37413c0a}.room-overview-card[aria-pressed=true]{background:#edf5f1;border-color:#4b8877;box-shadow:0 0 0 2px #c7ded4}.room-icon,.room-title-icon{background:#eee6d8;border-radius:14px;flex:none;place-items:center;width:44px;height:44px;font-size:1.35rem;display:grid}.room-card-copy{flex:1;min-width:0}.room-card-copy strong,.room-card-copy small{display:block}.room-card-copy strong{overflow-wrap:anywhere}.room-card-copy small{color:var(--muted);font-size:.78rem}.room-state-dot{background:#8bb59e;border-radius:50%;width:10px;height:10px}.room-state-dot.attention{background:#d48a5f}.cleaning-setup{grid-template-columns:1fr 1fr;gap:24px;margin-top:18px;display:grid}.cleaning-setup form,.cleaning-empty{background:#fff;border:1px solid #dce3d9;border-radius:16px;padding:24px}.cleaning-dashboard fieldset{border:0;gap:12px;min-width:0;margin:0;padding:0;display:grid}.cleaning-dashboard label{font-weight:700}.cleaning-dashboard input{width:100%;max-width:100%;color:var(--ink);background:#fff;border:1px solid #9caf9f;padding:8px 12px}.cleaning-dashboard button{white-space:normal}.room-heading,.task-main{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.room-heading{margin:30px 0 20px}.room-heading h2{margin:0}.room-title{align-items:center;gap:14px;display:flex}.room-title .eyebrow{margin:0}.room-title h2{margin:2px 0 0}.cleaning-task-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.cleaning-task{background:#fff;border:1px solid #dddeda;border-top:4px solid #91ad9d;border-radius:18px;padding:20px;box-shadow:0 7px 20px #37413c0a}.cleaning-task.due{border-top-color:#d18a5f}.cleaning-task.done{border-top-color:#6d9d83}.cleaning-task h3{overflow-wrap:anywhere;margin:0 0 6px}.task-main>div{min-width:0}.task-copy{gap:12px;display:flex}.task-icon{background:#f1ebe0;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.task-state{margin:3px 0;font-weight:750}.due-label{color:#95552e}.done-label{color:#2f6f5e}.task-main button{flex-shrink:0}.task-options{flex-wrap:wrap;gap:18px;margin-top:14px;display:flex}.cleaning-dashboard summary{cursor:pointer;color:#2f6f5e;min-height:48px;padding:12px 0;font-weight:700}.cleaning-dashboard details form{margin:12px 0}.task-options>details{min-width:0;max-width:100%}.task-history li{margin-bottom:8px}.add-task,.cleaning-archive,.cleaning-settings{background:#fffdfaeb;border:1px solid #dddeda;border-radius:18px;margin-top:24px;padding:16px 24px}.cleaning-settings{background:#f2eee6;margin-top:32px}.cleaning-archive li{overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:16px;margin:12px 0;display:flex}.cleaning-archive ul{padding-left:0;list-style:none}.cleaning-room h2,.room-overview-card{overflow-wrap:anywhere}.danger{color:#913321!important;border-color:#913321!important}@media (max-width:900px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.welcome,.section-heading,.overview-heading{flex-direction:column;align-items:flex-start}.overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-columns{grid-template-columns:1fr}.room-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cleaning-task-list{grid-template-columns:1fr}}@media (max-width:650px){main{padding:20px}.site-header{padding:16px 20px}.site-header nav{display:none}.family-welcome:before,.cleaning-welcome:before{left:0;right:0}.module-grid{grid-template-columns:1fr}.login-panel{margin:1vh auto;padding:28px}.module-card{padding:24px}.cleaning-setup{grid-template-columns:1fr}.task-main{flex-direction:column}.task-main button{width:100%}.room-heading{flex-direction:column}.overview-stats{grid-template-columns:1fr 1fr}.room-overview-grid{grid-template-columns:1fr}.cleaning-task{padding:18px}.cleaning-archive li{flex-direction:column;align-items:flex-start}}@media (max-width:420px){.overview-stats{grid-template-columns:1fr}}.button-link{border:1px solid var(--green);background:var(--green);color:#fff;text-align:center;border-radius:12px;justify-content:center;align-items:center;min-height:48px;padding:12px 24px;font-weight:650;text-decoration:none;display:inline-flex}.button-link.secondary{color:var(--green);background:0 0}.contact-back{min-height:48px;padding:12px 0;display:inline-block}.contact-heading{margin:12px 0 28px}.person-avatar{color:#29493c;background:#f5e5c8;border-radius:22px;flex-shrink:0;place-items:center;width:64px;height:64px;font-size:1.3rem;font-weight:750;display:grid}.person-avatar.large{border-radius:32px;width:112px;height:112px;font-size:2.2rem}.avatar-amber{background:#f5e5c8}.avatar-sage{background:#d9e8df}.avatar-blue{background:#dce8f4}.avatar-rose{background:#f1dbe2}.avatar-violet{background:#e8def2}.contact-search{max-width:760px;margin:0 0 28px}.contact-search label{margin-bottom:8px;font-weight:700;display:block}.contact-search>div{gap:12px;display:flex}.contact-search input{background:#fffdfa;border:1px solid #b6bdb2;flex:1;min-width:0;padding:12px 16px}.contact-search .hint{margin-top:8px}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.contact-card{color:inherit;background:#fffdfa;border:1px solid #e2ddd4;border-radius:22px;align-items:center;gap:18px;min-width:0;padding:24px;text-decoration:none;display:flex;box-shadow:0 8px 26px #39443e08}.contact-card:hover{background:#fffcf5;border-color:#c9a770}.contact-card>div{min-width:0}.contact-card h2{overflow-wrap:anywhere;margin:0 0 6px;font-size:1.15rem}.contact-card p{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:.92rem}.contact-deceased{color:#806d86;margin-top:6px;font-size:.85rem;display:inline-block}.contact-arrow{color:#8e7960;margin-left:auto}.contact-more{margin:24px 0}.contact-empty{background:#fffdfa;border:1px solid #e2ddd4;border-radius:22px;padding:28px}.person-hero{align-items:center;gap:24px;padding:24px 0 36px;display:flex}.person-hero>div{min-width:0}.person-hero h1{overflow-wrap:anywhere;font-size:clamp(1.9rem,4vw,3rem)}.person-hero>.button-link{flex-shrink:0;margin-left:auto}.person-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.contact-panel{background:#fffdfa;border:1px solid #e2ddd4;border-radius:22px;min-width:0;padding:28px}.contact-panel h2{margin:0 0 20px}.contact-panel h3{margin-top:24px}.contact-values{margin:0;padding:0;list-style:none}.contact-values li{overflow-wrap:anywhere;gap:4px;margin:16px 0;display:grid}.contact-values a{min-height:48px;padding:10px 0;font-size:1.1rem;display:inline-block}.contact-values address{font-style:normal}.contact-values address span{display:block}.person-dates{margin:0}.person-dates dt{font-weight:650}.person-dates dd{margin:0 0 16px}.person-notes{white-space:pre-wrap;overflow-wrap:anywhere}.person-editor{background:#fffdfa;border:1px solid #e2ddd4;border-radius:22px;max-width:860px;padding:28px}.person-editor label{flex-direction:column;gap:8px;margin-bottom:16px;font-weight:650;display:flex}.person-editor input,.person-editor select,.person-editor textarea{width:100%;max-width:100%;color:inherit;font:inherit;background:#fff;border:1px solid #aebdaf;border-radius:12px;min-height:48px;padding:10px 12px}.person-editor textarea{resize:vertical}.contact-history summary{min-height:48px;color:var(--green);cursor:pointer;padding:12px 0;font-weight:700}.contact-entry{background:#f8f8f1;border:1px solid #dedfd4;border-radius:16px;min-width:0;margin:16px 0;padding:18px}.contact-entry legend{padding:0 8px;font-weight:700}.contact-entry-fields{grid-template-columns:1fr 2fr;gap:16px;display:grid}.contact-name-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.person-editor .contact-check{flex-direction:row;align-items:center;gap:12px;min-height:48px;display:flex}.person-editor .contact-check input{width:24px;height:24px;min-height:24px}.contact-actions{flex-wrap:wrap;gap:16px;margin-top:28px;display:flex}.contact-history{background:#f5eddf;border-radius:20px;margin-top:28px;padding:16px 24px}.contact-history li{margin:16px 0}.contact-history li p{margin:4px 0}@media (max-width:900px){.person-hero{flex-wrap:wrap}.person-hero>.button-link{margin-left:0}.site-header{flex-wrap:wrap}}@media (max-width:650px){.contact-grid,.person-detail-grid,.contact-entry-fields,.contact-name-fields{grid-template-columns:1fr}.person-editor,.contact-panel{padding:20px}.contact-card{gap:14px;padding:20px}.contact-search>div{flex-wrap:wrap}.contact-search input{flex-basis:100%}.person-hero{align-items:flex-start}.person-avatar.large{width:80px;height:80px;font-size:1.7rem}.person-hero h1{margin-bottom:12px}.contact-actions>*{flex:1}.site-header nav{flex-wrap:wrap;display:flex}}.ui-icon{vertical-align:middle;flex-shrink:0;width:22px;height:22px}.button-link:has(.ui-icon){justify-content:center;align-items:center;gap:9px;display:inline-flex}button:has(>.ui-icon){justify-content:center;align-items:center;gap:9px;display:inline-flex}.master-detail{background:var(--paper);border:1px solid #d8ddd3;border-radius:24px;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);height:max(560px,100dvh - 190px);max-height:1000px;display:grid;overflow:hidden;box-shadow:0 18px 55px #39443e0b}.master-region{background:linear-gradient(150deg,#f8f3e8,#f2f6ee);border-right:1px solid #d8ddd3;flex-direction:column;min-width:0;min-height:0;display:flex}.contact-workspace-heading{flex-direction:column;gap:16px;padding:24px 24px 18px;display:flex}.contact-workspace-heading h1{margin:4px 0 10px;font-size:2rem}.contact-workspace-heading p{margin:0}.contact-workspace-heading .button-link{align-self:flex-start}.master-region .contact-list{flex-direction:column;flex:1;min-height:0;display:flex}.master-region .contact-search{margin:0;padding:0 24px 16px}.master-region .contact-search label{font-size:.9rem}.master-region .contact-search>div{flex-wrap:nowrap;gap:8px}.search-input{flex:1;align-items:center;min-width:0;display:flex;position:relative}.search-input>.ui-icon{color:var(--muted);pointer-events:none;position:absolute;left:13px}.master-region .contact-search input{flex-basis:auto;width:100%;padding-left:42px;font-size:.9rem}.master-region .contact-search button{width:48px;padding:12px}.contact-list>div[aria-live]{padding:0 24px}.contact-list>div[aria-live] p{margin:4px 0 12px}.contact-results-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:6px 14px 24px;overflow-y:auto}.master-region .contact-grid{grid-template-columns:1fr;gap:8px}.master-region .contact-card{box-shadow:none;background:0 0;border-color:#0000;border-radius:16px;gap:12px;padding:14px}.master-region .contact-card h2{margin:0 0 4px;font-size:1rem}.master-region .contact-card p{font-size:.82rem}.master-region .person-avatar{border-radius:16px;width:48px;height:48px;font-size:1rem}.master-region .contact-arrow{width:18px}.master-region .contact-card:hover{background:#fffdfa;border-color:#ddd8c9}.master-region .contact-card[aria-current=true]{background:#e0eee5;border-color:#a2c2b1;box-shadow:inset 3px 0 #2f6f5e}.master-region .contact-empty{margin:0 24px 16px;padding:18px}.master-region .contact-empty h2{font-size:1.15rem}.detail-region{background:var(--paper);flex-direction:column;min-width:0;min-height:0;display:flex}.panel-toolbar{background:#fffdfa;border-bottom:1px solid #e4e4da;flex-shrink:0;align-items:center;gap:12px;padding:12px 20px;display:flex}.panel-toolbar button{min-width:48px;padding:10px}.panel-toolbar .panel-back{border-color:#0000}.panel-label{color:var(--muted);margin-left:auto;font-size:.8rem}.panel-toolbar .panel-close{border-color:#0000}.detail-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;scroll-behavior:auto;flex:1;min-height:0;padding:24px;overflow-y:auto}.detail-scroll .contact-heading{margin:0 0 20px}.detail-scroll .contact-heading h1{font-size:2rem}.detail-scroll .person-hero{flex-wrap:wrap;gap:18px;padding:8px 0 24px}.detail-scroll .person-hero h1{margin:6px 0 12px;font-size:2rem}.detail-scroll .person-hero p{margin:4px 0}.detail-scroll .person-hero .person-avatar.large{width:80px;height:80px;font-size:1.8rem}.detail-scroll .person-hero>.button-link{margin-left:0}.detail-scroll .person-detail-grid{grid-template-columns:1fr;gap:16px}.detail-scroll .contact-panel{border-radius:18px;padding:20px}.detail-scroll .contact-panel h2{font-size:1.2rem}.detail-scroll .contact-panel h3{align-items:center;gap:10px;display:flex}.detail-scroll .person-editor{background:0 0;border:0;padding:0}.detail-scroll .contact-entry-fields,.detail-scroll .contact-name-fields{grid-template-columns:1fr}.detail-scroll .contact-history{margin-top:16px;padding:12px 20px}.person-panel-empty{text-align:center;height:100%;min-height:350px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:28px;display:flex}.person-panel-empty h2{color:var(--ink);margin:22px 0 12px}.person-panel-empty p{max-width:34ch}.empty-person-icon{background:linear-gradient(135deg,var(--warm),var(--green-soft));width:88px;height:88px;color:var(--green);border-radius:30px;place-items:center;display:grid}.empty-person-icon .ui-icon{width:40px;height:40px}@media (min-width:1200px){.master-detail{grid-template-columns:380px minmax(0,1fr)}.detail-scroll .contact-entry-fields{grid-template-columns:1fr 2fr}.detail-scroll .contact-name-fields{grid-template-columns:1fr 1fr}}@media (max-width:767px){.master-detail{border-radius:20px;height:max(540px,100dvh - 220px);display:block}.master-region{border:0;height:100%}.master-detail:not(.panel-open) .detail-region{display:none}.master-detail.panel-open .detail-region{z-index:80;background:var(--paper);height:100dvh;animation:.22s ease-out person-sheet-in;position:fixed;inset:0}.panel-toolbar{padding:calc(10px + env(safe-area-inset-top)) 16px 10px}.panel-toolbar .panel-back{font-size:1rem}.panel-label{display:none}.panel-toolbar .panel-close{margin-left:auto}.detail-scroll{padding:20px 20px calc(24px + env(safe-area-inset-bottom))}.contact-workspace-heading{padding:20px}.master-region .contact-search{padding:0 20px 16px}.master-region .contact-card{padding:14px 10px}.person-panel-empty{display:none}}@keyframes person-sheet-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.master-detail.panel-open .detail-region{animation:none}}.person-avatar{overflow:hidden}.person-avatar img{object-fit:cover;width:100%;height:100%}.save-state{z-index:2;background:var(--paper);color:var(--green);text-align:right;min-height:24px;margin-bottom:10px;font-size:.85rem;position:sticky;top:0}.danish-date{gap:8px;min-width:0;display:flex;position:relative}.danish-date>input[type=text]{flex:1;min-width:0}.danish-date>button{min-width:48px;padding:10px}.danish-date .date-picker{opacity:0;pointer-events:none;width:48px;min-width:0;padding:0;position:absolute;bottom:0;right:0}.date-error{color:#913321;font-size:.82rem}.person-gallery{flex-wrap:wrap;gap:16px;margin-bottom:16px;display:flex}.person-gallery article{flex-wrap:wrap;align-items:center;gap:8px;width:136px;display:flex}.person-gallery article>.hint{flex:1}.photo-preview{background:var(--green-soft);border:0;border-radius:16px;width:136px;height:136px;padding:0;overflow:hidden}.photo-preview img{object-fit:cover;width:100%;height:100%}.person-gallery .secondary{min-height:48px;padding:8px;font-size:.8rem}.photo-upload{cursor:pointer;gap:8px;position:relative;overflow:hidden}.photo-upload input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.photo-upload:focus-within{outline-offset:4px;outline:3px solid #bd6e3e}.photo-view{padding-top:20px}.photo-view>img{object-fit:contain;border-radius:16px;width:100%;max-height:60dvh;margin-top:12px;display:block}.relation-list{margin:0 0 20px;padding:0;list-style:none}.relation-list li{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:12px 0;display:flex}.relation-list li>div{flex:1;min-width:0}.relation-list a,.relation-list small,.relation-list .hint{overflow-wrap:anywhere;display:block}.relation-list a{min-height:48px;padding:10px 0}.relation-list button{min-width:48px;padding:10px}.relation-form label{gap:6px;margin-top:16px;font-weight:650;display:grid}.relation-form input,.relation-form select,.tree-focus select{color:var(--ink);background:#fff;border:1px solid #afc1b3;width:100%;min-width:0;padding:10px 12px}.relation-form details summary{cursor:pointer;min-height:48px;padding:12px 0}.relation-form .danish-date input{min-width:0}main:has(.tree-workspace){max-width:1600px;padding-top:12px}.tree-workspace .master-detail{grid-template-columns:minmax(0,1fr);height:max(620px,100dvh - 160px);max-height:none}.tree-workspace:not(.tree-panel-open) .detail-region{display:none}.tree-workspace.tree-panel-open .master-detail{grid-template-columns:minmax(0,1fr) minmax(340px,440px)}.tree-workspace .master-region{background:#f1f4ed;border:0}.tree-workspace.tree-panel-open .master-region{border-right:1px solid var(--line)}.family-tree{flex-direction:column;height:100%;min-height:0;display:flex}.tree-heading{background:#fffdfa;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px 12px;display:flex}.tree-heading h1{margin:2px 0 6px;font-size:2rem}.tree-heading p{margin:0}.tree-heading button{background:#e5eee4;border-color:#cedfce;padding:10px 16px}.tree-focus{background:var(--paper);align-items:center;gap:12px;padding:0 24px 16px;font-size:.85rem;display:flex}.tree-focus label{color:var(--muted);flex-shrink:0}.tree-focus select{max-width:340px}.tree-stage{background:radial-gradient(circle,#b9cab440 1px,#0000 1px) 0 0/24px 24px,radial-gradient(at 50% 30%,#fffdf7,#e7efe3);flex:1;min-height:0;position:relative;overflow:hidden}.tree-canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.tree-canvas:active{cursor:grabbing}.tree-edges path{fill:none;stroke:#9bb6a0;stroke-width:2.5px}.tree-edges .partner-edge{stroke:#c5ab84;stroke-dasharray:6 5}.tree-edges .partner-edge.spouse{stroke-dasharray:none;stroke-width:4px}.tree-person{background:#fffdfa;border:1px solid #d8dfd0;border-radius:20px;height:154px;margin:2px;position:relative;overflow:hidden;box-shadow:0 5px 12px #394d3c12}.tree-person.focused{border-color:#4e8a68;box-shadow:0 0 0 2px #b5d0b6,0 8px 16px #394d3c16}.tree-person-link{color:var(--ink);align-items:flex-start;gap:12px;height:100%;padding:20px 16px;text-decoration:none;display:flex}.tree-person-link:hover{background:#f5f6ee}.tree-person-link .person-avatar{border-radius:16px;width:48px;height:48px;font-size:1rem}.tree-person-link>span{min-width:0}.tree-person-link strong{overflow-wrap:anywhere;max-height:60px;font-size:.94rem;line-height:1.25;display:block;overflow:hidden}.tree-person-link small{color:var(--green);margin-top:6px;font-size:.8rem;display:block}.tree-person-link small.tree-years{color:var(--muted);font-size:.73rem}.tree-person-focus{min-width:48px;min-height:48px;position:absolute;bottom:4px;right:4px;border-color:#0000!important;padding:10px!important}.tree-person-focus .ui-icon{width:18px;height:18px}.tree-controls{background:#fffdfaf0;border:1px solid #ccd8c6;border-radius:16px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;bottom:20px;right:20px;box-shadow:0 6px 20px #24362f15}.tree-controls button{border-color:#0000;min-width:48px;padding:10px}.tree-controls output{color:var(--muted);text-align:center;min-width:44px;font-size:.8rem}.tree-hint{color:#5d765d;pointer-events:none;margin:0;font-size:.75rem;position:absolute;bottom:22px;left:24px}.tree-empty{background:#fffdfaf0;border:1px solid #d3dfcb;border-radius:18px;max-width:360px;padding:16px;font-size:.85rem;position:absolute;top:16px;left:20px;right:20px}.tree-empty p{margin:0 0 12px}@media (max-width:1000px){.tree-workspace.tree-panel-open .master-detail{grid-template-columns:minmax(0,1fr) minmax(320px,44%)}.tree-focus{flex-direction:column;align-items:flex-start;gap:6px}.tree-hint{bottom:88px}}@media (max-width:767px){main:has(.tree-workspace){padding:8px 12px}.tree-workspace .master-detail,.tree-workspace.tree-panel-open .master-detail{grid-template-columns:minmax(0,1fr);height:calc(100dvh - 170px);min-height:530px}.tree-heading{padding:16px}.tree-focus{padding:0 16px 12px}.tree-focus select{max-width:none}.tree-controls{bottom:12px;right:12px}.tree-hint{bottom:82px;left:16px}.tree-heading h1{font-size:1.8rem}.tree-workspace.tree-panel-open .detail-region{display:flex}}@media (prefers-reduced-motion:no-preference){.tree-person{transition:border-color .18s,box-shadow .18s}.tree-person-link{transition:background .18s}}.master-detail.focus-workspace{grid-template-columns:minmax(0,1fr)}.focus-workspace>.master-region{border:0;height:100%}.focus-workspace .contact-card{transition:background .12s,border-color .12s,transform .12s}.focus-workspace .contact-card:active,.focus-workspace .contact-card[data-opening=true]{background:#dcebe0;border-color:#83ad98;transform:scale(.992)}.focus-layer{z-index:80;pointer-events:none;place-items:center;padding:32px;display:grid;position:fixed;inset:0}.focus-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:#24362f36;animation:.2s ease-out focus-fade;position:absolute;inset:0}.focus-workspace.focus-open .focus-window{display:flex}.focus-window{pointer-events:auto;width:min(780px,100vw - 96px);height:min(780px,100dvh - 64px);max-height:calc(100dvh - 64px);transform-origin:var(--focus-origin-x,50%) var(--focus-origin-y,60%);border:1px solid #d4d9ca;border-radius:28px;animation:.2s cubic-bezier(.2,.8,.2,1) focus-window-enter;position:relative;overflow:hidden;box-shadow:0 28px 90px #203b3040,0 8px 24px #203b3020}.focus-window .panel-toolbar{background:linear-gradient(110deg,#fffdfa,#f7f2e9);padding:12px 20px}.focus-window .panel-label{color:#51685b;font-size:.85rem;font-weight:650}.focus-content{padding:28px;animation:.18s ease-out focus-content-enter}.focus-window .person-hero{align-items:center;gap:20px;padding-bottom:28px}.focus-window .person-hero>div{flex:1}.focus-window .person-hero h1{font-size:clamp(1.9rem,3vw,2.5rem)}.focus-window .person-avatar.large{border-radius:28px;width:96px;height:96px}.focus-window .contact-name-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.focus-window .contact-entry-fields{grid-template-columns:1fr 2fr}@media (min-width:768px){.focus-workspace .contact-workspace-heading{flex-direction:row;justify-content:space-between;align-items:center}.focus-workspace .contact-workspace-heading .button-link{align-self:center}.focus-workspace .contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:900px){.focus-window .person-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767px){.focus-layer{padding:8px}.focus-window{border-radius:22px;width:100%;height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.focus-window .panel-toolbar{padding:calc(10px + env(safe-area-inset-top)) 12px 10px}.focus-content{padding:20px 16px calc(24px + env(safe-area-inset-bottom))}.focus-window .person-avatar.large{border-radius:22px;width:72px;height:72px}.focus-window .contact-name-fields,.focus-window .contact-entry-fields{grid-template-columns:1fr}}@keyframes focus-window-enter{0%{opacity:0;transform:translate3d(var(--focus-rise-x,0px),var(--focus-rise-y,8px),0) scale(.97)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes focus-content-enter{0%{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes focus-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.focus-window,.focus-content,.focus-backdrop{animation:80ms linear focus-fade}.focus-workspace .contact-card{transition:none}.focus-workspace .contact-card:active,.focus-workspace .contact-card[data-opening=true]{transform:none}}.contact-subsection{background:#faf8f3;border:1px solid #e2ddd4;border-radius:16px;margin:18px 0 24px;padding:18px}.contact-subsection h3{color:var(--ink);margin:0 0 14px;font-size:1rem}.contact-subsection>.secondary{margin-top:8px}.relation-preview{color:#29493c;background:#eef5f1;border:1px solid #cfe0d6;border-radius:14px;align-items:flex-start;gap:12px;margin:16px 0;padding:14px 16px;display:flex}.relation-preview .ui-icon{margin-top:2px}@media (max-width:650px){.contact-subsection{padding:14px}}.focus-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#192a2352}.focus-window{background:linear-gradient(#fffdfa 0%,#faf8f3 100%);border-color:#cfd8cf;width:min(900px,100vw - 72px);height:min(860px,100dvh - 64px);max-height:calc(100dvh - 64px);box-shadow:0 24px 70px #192d2433,0 6px 18px #192d241a}.focus-window .panel-toolbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fffdfa;border-bottom-color:#e4e2da}.focus-content{padding:30px}.detail-scroll .contact-heading{margin-bottom:18px}.detail-scroll .contact-heading>p:last-child{color:var(--muted);margin:4px 0 0}.person-editor{background:0 0;border:0;max-width:none;padding:0}.edit-section-stack{gap:12px;display:grid}.person-fields{display:contents}.edit-accordion{background:#fffdfaf0;border:1px solid #dcded5;border-radius:20px;margin:0;position:relative;box-shadow:0 5px 18px #31413809}.edit-accordion[open]{border-color:#bdcfc4;box-shadow:0 10px 28px #31413812}.edit-accordion>summary{cursor:pointer;-webkit-user-select:none;user-select:none;min-height:72px;color:var(--ink);border-radius:20px;align-items:center;gap:14px;padding:14px 18px;list-style:none;display:flex}.edit-accordion>summary::-webkit-details-marker{display:none}.edit-subsection>summary::-webkit-details-marker{display:none}.edit-accordion[open]>summary{background:linear-gradient(100deg,#eef5f0cc,#fffbf4b8);border-bottom:1px solid #e5e5dc;border-radius:20px 20px 0 0}.edit-section-icon{color:#2c6657;background:linear-gradient(135deg,#e2eee8,#f3e6d7);border-radius:14px;flex:0 0 42px;place-items:center;width:42px;height:42px;display:grid}.edit-section-icon .ui-icon{width:21px;height:21px}.edit-section-copy{gap:2px;min-width:0;display:grid}.edit-section-copy strong{font-size:1rem;line-height:1.25}.edit-section-copy small{color:var(--muted);font-size:.79rem;font-weight:500;line-height:1.35}.edit-section-chevron{color:#728078;margin-left:auto;transition:transform .18s}.edit-accordion[open]>summary .edit-section-chevron{transform:rotate(90deg)}.edit-accordion-body{padding:20px 20px 22px}.edit-subsection{background:#faf9f5;border:1px solid #e2e1da;border-radius:14px;margin-top:4px}.edit-subsection>summary{color:#51665c;cursor:pointer;min-height:48px;padding:11px 14px;font-weight:700;list-style:none}.edit-subsection[open]>summary{border-bottom:1px solid #e5e3dc}.edit-subsection>.contact-name-fields{padding:16px}.person-editor label{margin-bottom:14px;font-weight:680}.person-editor input,.person-editor select,.person-editor textarea,.relation-form input{background:#fff;border-color:#b9c6bc;transition:border-color .16s,box-shadow .16s,background .16s;box-shadow:inset 0 1px #fffc}.person-editor input:hover,.person-editor select:hover,.person-editor textarea:hover,.relation-form input:hover{border-color:#8fa99b}.person-editor input:focus,.person-editor select:focus,.person-editor textarea:focus,.relation-form input:focus{border-color:#4e8873;outline:none;box-shadow:0 0 0 3px #4e88731f}.personal-fields{grid-template-columns:1fr 1.2fr!important}.person-editor .contact-check{background:#f5f3ed;border-radius:12px;margin:8px 0 16px;padding:10px 12px}.contact-subsection{background:0 0;border:0;margin:12px 0 20px;padding:0}.contact-subsection+.contact-subsection{border-top:1px solid #ece9e1;padding-top:18px}.contact-subsection h3{margin:0 0 12px;font-size:.96rem}.contact-entry{background:linear-gradient(135deg,#faf9f5,#f5f8f4);border-color:#e0e3da;margin:10px 0;padding:15px}.contact-entry legend{color:#53655c;font-size:.84rem}.save-state{z-index:10;color:#0000;background:0 0;border:1px solid #0000;border-radius:999px;width:max-content;height:30px;min-height:30px;margin:0 48px -30px auto;padding:5px 11px;font-size:.78rem;font-weight:750;transition:opacity .2s,background .2s,border-color .2s,color .2s;position:sticky;top:8px}.save-state.visible{color:#2f6f5e;background:#e7f2eb;border-color:#c8decf;box-shadow:0 4px 14px #2f6f5e17}.edit-footer{z-index:8;padding:14px 30px calc(14px + env(safe-area-inset-bottom));-webkit-backdrop-filter:none;backdrop-filter:none;background:#faf8f3;border-top:1px solid #e7e3db;margin:18px -30px -30px;position:sticky;bottom:-1px;box-shadow:0 -8px 18px #26372e0a}.inline-error{background:#fff1ed;border:1px solid #e5b6aa;border-radius:14px;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.edit-empty{color:var(--muted);margin:0 0 14px}.relation-list{margin-bottom:14px}.relation-list li{gap:12px;padding:11px 2px}.relation-list li>div:first-child{grid-template-columns:auto 1fr;align-items:center;gap:3px 10px;display:grid}.relation-list a{align-items:center;min-height:48px;padding:4px 0;font-weight:700;display:flex}.relation-list small{grid-column:2}.relation-badge{color:#2f6f5e;background:#e5f0e9;border-radius:999px;align-self:center;align-items:center;width:max-content;padding:4px 9px;font-size:.72rem;font-weight:800;display:inline-flex}.relation-actions{gap:5px;flex:none!important;display:flex!important}.icon-button{border-color:#0000!important;min-width:48px!important;min-height:48px!important;padding:8px!important}.relation-add{margin-top:4px}.relation-form{padding-top:4px}.relation-picker-grid{grid-template-columns:1fr 1fr;align-items:start;gap:14px;display:grid}.relation-combobox{gap:7px;font-weight:700;position:relative;margin:0!important;display:grid!important}.combo-shell{align-items:center;display:flex;position:relative}.combo-shell>.ui-icon{color:#6c7d74;pointer-events:none;width:19px;height:19px;position:absolute;left:13px}.relation-form .combo-shell input{padding-left:41px;padding-right:57px}.combo-clear{width:48px;min-width:48px;min-height:48px;padding:12px;position:absolute;top:5px;right:5px;color:#66766e!important;background:0 0!important;border-color:#0000!important}.combo-clear .ui-icon{width:17px;height:17px}.combo-menu{z-index:40;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fffdfa;border:1px solid #cbd4cc;border-radius:16px;max-height:310px;padding:7px;position:absolute;top:calc(100% + 7px);left:0;right:0;overflow:auto;box-shadow:0 14px 32px #20372d24}.combo-menu button{width:100%;min-height:48px;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:11px;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;font-weight:700;display:flex}.combo-menu button:hover,.combo-menu button[aria-selected=true],.combo-menu button[data-active=true]{background:#e9f2ec}.combo-menu button small{color:var(--muted);text-align:right;font-size:.72rem;font-weight:650}.combo-menu>p{color:var(--muted);margin:8px 10px;font-size:.85rem}.combo-group-label{color:#8a7760;letter-spacing:.08em;text-transform:uppercase;padding:8px 10px 4px;font-size:.68rem;font-weight:850}.relation-question{color:#596b62;margin:18px 0 8px;font-size:.9rem}.relation-preview,.relation-auto-help{border-radius:15px;margin:12px 0 0;padding:14px 16px}.relation-preview{color:#29493c;background:linear-gradient(135deg,#ecf5ef,#f8fbf8);border:1px solid #c6ddcf}.relation-auto-help{color:#5f523e;background:linear-gradient(135deg,#fff8e9,#fffdf7);border:1px solid #e1cfad}.relation-auto-help p{margin:5px 0 12px}.relation-auto-help .secondary{min-height:48px;padding:8px 13px}.relation-help{color:var(--muted);margin:14px 0 0;font-size:.8rem}.relation-dates{border-top:1px solid #e6e4dd;margin-top:12px}.relation-dates>summary{color:#52685d;font-weight:700}.photos-embedded .person-gallery{margin-top:2px}.person-detail-grid .contact-panel{background:linear-gradient(145deg,#fffdfa,#fbfaf6);border-color:#dedfd7;box-shadow:0 6px 22px #3241390a}.person-detail-grid .contact-panel h2{font-size:1.12rem}.person-hero .status{color:#2e6656;background:#e8f2ec;border-color:#c9ded1}@keyframes edit-section-in{0%{opacity:.35;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.edit-accordion[open]>.edit-accordion-body{animation:.18s ease-out edit-section-in}.edit-accordion{transition:border-color .18s,box-shadow .18s}}@media (max-width:767px){.focus-window{width:100%;height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.focus-content{padding:18px 14px calc(22px + env(safe-area-inset-bottom))}.edit-accordion>summary{gap:11px;min-height:66px;padding:12px 14px}.edit-section-icon{border-radius:12px;flex-basis:38px;width:38px;height:38px}.edit-section-copy small{display:none}.edit-accordion-body{padding:16px 14px 18px}.personal-fields,.relation-picker-grid{grid-template-columns:1fr!important}.contact-entry{padding:13px}.combo-menu{max-height:260px}.edit-footer{padding:12px 14px calc(12px + env(safe-area-inset-bottom));margin:14px -14px -22px}}@media (max-width:420px){.relation-list li{align-items:flex-start}.relation-actions{padding-top:4px}.contact-actions{gap:9px}}.relation-gender-note{color:#6a5438;background:#fff8e9;border:1px solid #e1cfad;border-radius:12px;margin:8px 0 0;padding:10px 12px;font-size:.82rem}.relation-gender-note strong{color:#58452f}.focus-closing .focus-window{animation:.14s ease-in forwards focus-window-exit;display:flex}.focus-closing .focus-backdrop{animation:.14s ease-in forwards focus-backdrop-exit}@keyframes focus-window-exit{to{opacity:0;transform:translateY(6px)scale(.985)}}@keyframes focus-backdrop-exit{to{opacity:0}}@media (prefers-reduced-motion:reduce){.focus-closing .focus-window{animation:80ms linear forwards focus-backdrop-exit}}.relation-form .combo-shell input{min-height:58px}.combo-menu-above{top:auto;bottom:calc(100% + 7px)}.cleaning-dashboard .cleaning-overview{border-radius:18px;margin-bottom:22px;padding:18px}.cleaning-dashboard .overview-heading{flex-direction:row;align-items:center;gap:12px}.cleaning-dashboard .overview-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.cleaning-dashboard .overview-stat{border-radius:12px;padding:12px}.cleaning-dashboard .overview-stat strong{font-size:1.5rem}.cleaning-dashboard .focus-panel{border-radius:12px;min-width:0;padding:12px}.cleaning-dashboard .focus-panel h3{margin:2px 0 10px}.cleaning-dashboard .focus-row{grid-template-columns:minmax(0,1fr) 48px;align-items:center;gap:6px;display:grid}.cleaning-dashboard .focus-task{border-radius:10px;justify-content:space-between;gap:8px;min-height:56px;padding:6px 10px}.cleaning-dashboard .focus-task>span:first-child{min-width:0}.cleaning-dashboard .focus-task strong{overflow-wrap:anywhere;font-size:.9rem}.cleaning-dashboard .focus-countdown{text-align:right;flex:0 0 95px;font-size:.8rem;font-weight:700}.cleaning-dashboard .focus-complete{border-radius:10px;min-width:48px;min-height:48px;padding:0;font-size:1.2rem}.cleaning-dashboard .recent-panel summary{padding:4px 0}.cleaning-dashboard .overview-columns{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:12px}.cleaning-dashboard .room-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px}.cleaning-dashboard .room-overview-card{min-height:64px;box-shadow:none;gap:8px;padding:10px}.cleaning-dashboard .room-icon{border-radius:10px;width:32px;height:32px;font-size:1rem}.cleaning-dashboard .room-heading{flex-flow:wrap;gap:12px;margin:16px 0 12px}.cleaning-dashboard .room-heading>details{min-width:0;max-width:100%}.cleaning-dashboard .cleaning-task-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cleaning-dashboard .cleaning-task{box-shadow:none;border-top-width:3px;border-radius:12px;min-width:0;padding:12px}.cleaning-dashboard .task-main{flex-direction:row;align-items:center;gap:10px}.cleaning-dashboard .task-main button{width:auto;max-width:125px;padding:8px 10px;font-size:.86rem}.cleaning-dashboard .task-main h3{margin:0;font-size:1rem}.cleaning-dashboard .task-copy{min-width:0}.cleaning-dashboard .task-copy .hint{margin:3px 0 0;font-size:.76rem}.cleaning-dashboard .task-state{font-size:.88rem}.cleaning-dashboard .task-dates{color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:.76rem;display:flex}.cleaning-dashboard .task-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;margin-top:6px;display:grid}.cleaning-dashboard .task-options>details[open]{grid-column:1/-1}.cleaning-dashboard .task-options summary{padding:12px 0;font-size:.84rem}.cleaning-dashboard .cleaning-note summary{padding:12px 0;font-size:.82rem}.cleaning-dashboard .cleaning-note p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 8px;font-size:.9rem}.cleaning-dashboard .snooze-options{flex-wrap:wrap;gap:6px;display:flex}.cleaning-dashboard .snooze-options button{padding:8px 12px}.cleaning-dashboard .inactive{opacity:.8}.cleaning-dashboard select,.cleaning-dashboard textarea{width:100%;max-width:100%;min-height:48px;color:var(--ink);font:inherit;background:#fff;border:1px solid #9caf9f;border-radius:12px;padding:10px 12px}.cleaning-dashboard input[type=date]{appearance:none;min-width:0}.cleaning-dashboard .cleaning-check{align-items:center;gap:10px;min-height:48px;font-weight:500;display:flex}.cleaning-dashboard .cleaning-check input{width:22px;height:22px;min-height:22px;accent-color:var(--green);flex:0 0 22px}.cleaning-dashboard .cleaning-setup{gap:12px}.cleaning-dashboard .cleaning-setup form{padding:16px}.cleaning-dashboard .template-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;display:grid}.cleaning-dashboard .template-list>details{border-bottom:1px solid #dce3d9;min-width:0}.cleaning-dashboard .template-list>details[open]{grid-column:1/-1}.cleaning-dashboard .template-list small{font-weight:400}.cleaning-dashboard .cleaning-email{max-width:620px}.cleaning-dashboard .add-task,.cleaning-dashboard .cleaning-settings,.cleaning-dashboard .cleaning-archive{margin-top:16px;padding:8px 16px}.cleaning-dashboard .assignment-overrides{margin-top:0}.cleaning-dashboard .assignment-overrides .hint{margin:4px 0 12px}@media (max-width:1100px){.cleaning-dashboard .cleaning-task-list{grid-template-columns:1fr}}@media (max-width:900px){.cleaning-dashboard .overview-columns{grid-template-columns:1fr}.cleaning-dashboard .overview-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.cleaning-dashboard .room-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:650px){.cleaning-welcome{margin-bottom:20px}.cleaning-welcome>div>p:last-child{margin-bottom:0;font-size:.88rem}.cleaning-dashboard .cleaning-overview{padding:12px}.cleaning-dashboard .overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cleaning-dashboard .overview-stat{align-items:center;gap:8px;padding:10px;display:flex}.cleaning-dashboard .overview-stat span{font-size:.75rem}.cleaning-dashboard .room-overview-card{padding:8px}.cleaning-dashboard .room-card-copy strong{font-size:.85rem}.cleaning-dashboard .room-card-copy small{font-size:.7rem}.cleaning-dashboard .room-icon{display:none}.cleaning-dashboard .cleaning-setup,.cleaning-dashboard .template-list{grid-template-columns:1fr}.cleaning-dashboard .room-title-icon{width:32px;height:32px;font-size:1rem}.cleaning-dashboard .room-heading h2{font-size:1.3rem}.cleaning-dashboard .task-main button{flex:0 0 100px;max-width:110px}.cleaning-dashboard .task-dates{gap:4px 8px}.cleaning-dashboard .overview-heading .hint{font-size:.75rem}.cleaning-dashboard .focus-task strong{font-size:.84rem}}.cleaning-dashboard .focus-more{width:100%;margin-top:8px;padding:8px 12px;font-size:.86rem}.cleaning-welcome{gap:16px;padding:10px 0 22px}.cleaning-welcome h1{margin:8px 0 12px}@media (max-width:650px){.cleaning-welcome{grid-template-columns:minmax(0,1fr) auto;align-items:center;margin-bottom:10px;padding:4px 0 18px;display:grid}.cleaning-welcome>div>p:last-child{display:none}.cleaning-welcome h1{margin:6px 0 10px;font-size:2rem}.cleaning-welcome .eyebrow{overflow-wrap:anywhere;font-size:.66rem}.cleaning-welcome:before{bottom:5px}.cleaning-welcome button{padding:8px 12px}}.tree-options{background:var(--paper);grid-template-columns:minmax(180px,1fr) minmax(130px,180px) auto;align-items:end;gap:12px;padding:0 24px 12px;display:grid}.tree-options .tree-focus,.tree-depth{background:0 0;gap:4px;min-width:0;padding:0;font-size:.8rem;display:grid}.tree-options .tree-focus label,.tree-depth label{color:var(--muted)}.tree-options .tree-focus select{max-width:100%}.tree-depth select{width:100%;min-width:0;min-height:48px;color:var(--ink);background:#fff;border:1px solid #afc1b3;padding:8px 10px}.tree-person-count{color:var(--muted);white-space:nowrap;align-self:center;margin-top:18px;font-size:.75rem}.person-relations>h2{margin:0 0 12px}.person-relations .family-relation-group{min-width:0;margin:0 0 12px}.person-relations.contact-panel{grid-column:1/-1;container:family-relatives/inline-size}@container family-relatives (min-width:560px){.person-relations .relation-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;display:grid}}.person-relations .family-relation-group h3{color:var(--muted);align-items:center;gap:8px;margin:8px 0 2px;font-size:.74rem;font-weight:650;display:flex}.person-relations .family-relation-group h3 span{text-align:center;background:#edf1ea;border-radius:999px;min-width:20px;padding:0 4px;font-size:.7rem}.person-relations .relation-list{min-width:0;margin:0}.person-relations .relation-list li{align-items:center;gap:8px;padding:0}.person-relations .relation-list .relation-person{grid-template-columns:minmax(0,1fr) fit-content(42%);align-items:center;gap:0 10px;display:grid}.person-relations .relation-list a{min-width:0;min-height:48px;padding:8px 0;font-size:.9rem;line-height:1.3}.person-relations .relation-labels{color:var(--green);text-align:right;overflow-wrap:anywhere;font-size:.78rem;line-height:1.35}.person-relations .relation-list .relation-person>small{color:var(--muted);grid-column:1/-1;margin:-2px 0 6px;font-size:.7rem}.person-relations .relation-actions{flex:none;gap:0;padding:0;display:grid}.person-relations .relation-fact-actions{align-items:center;gap:2px;display:flex}.person-relations .relation-fact-actions small{overflow-wrap:anywhere;max-width:75px;font-size:.7rem}.person-relations .relation-list .icon-button{min-width:48px;min-height:48px;padding:10px}@media (max-width:1000px){.tree-options{grid-template-columns:minmax(0,1fr) minmax(120px,150px)}.tree-person-count{display:none}}@media (max-width:767px){.tree-heading{padding:12px 16px 8px}.tree-options{grid-template-columns:minmax(0,1fr) 125px;gap:8px;padding:0 16px 10px}.tree-options label{font-size:.72rem}.tree-options select{padding:8px;font-size:.8rem}.person-relations.contact-panel{padding:16px}.person-relations .relation-list a{font-size:.86rem}.person-relations .relation-labels{font-size:.74rem}}@media (max-width:480px){.relation-embedded .direct-relations .relation-person{grid-template-columns:minmax(0,1fr)}.relation-embedded .direct-relations .relation-labels{text-align:left;margin:-4px 0 6px}.person-relations .relation-fact-actions small{max-width:48px}}.tree-stage{background:radial-gradient(at 50% 20%,#fafbf5,#edf3e9 72%,#e7eee2)}.tree-heading{padding:14px 20px 8px}.tree-heading h1{font-size:1.8rem}.tree-options{grid-template-columns:minmax(150px,1fr) 145px auto;gap:10px;padding:0 20px 12px}.tree-options select{border-radius:12px;min-height:44px}.tree-options label{font-size:.72rem}.tree-person{background:#fffefa;border-color:#d9e2d5;border-radius:18px;height:152px;box-shadow:0 8px 24px #233b2b0c}.tree-person.focused{border:2px solid #397653;box-shadow:0 0 0 3px #ccdfcc,0 10px 28px #24422e1c}.tree-person-link{gap:12px;padding:16px 14px}.tree-person-link strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:40px;font-size:.96rem;line-height:1.3;display:-webkit-box;overflow:hidden}.tree-person-link .person-avatar{border-radius:16px;flex:0 0 48px;width:48px;height:48px;box-shadow:0 0 0 1px #24422e08}.tree-person-link>span:last-child{flex:1}.tree-person-link small:first-of-type{color:#345b40;background:#edf3e8;border-radius:8px;max-width:100%;margin-top:6px;padding:3px 6px;font-size:.72rem;line-height:1.25;display:inline-block}.tree-person-link small.tree-years{margin-top:5px;font-size:.68rem;line-height:1.25}.tree-memorial{color:#786e5f;font-style:italic}.tree-person-actions{letter-spacing:1px;color:#567361;width:44px;min-width:44px;min-height:44px;font-size:1.4rem;position:absolute;bottom:4px;right:4px;background:0 0!important;border:0!important;padding:0!important}.tree-person-actions:hover{background:#edf3e8!important}.tree-edges path{stroke:#9aaf93;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.tree-edges .partnership{stroke:#bc966c;stroke-width:2.5px}.tree-edges .partner,.tree-edges .historical,.tree-edges .sibling,.tree-edges .half_sibling{stroke-dasharray:5 5}.tree-edges .historical{stroke:#b5b5a8}.tree-edges .adoptive_parent{stroke-dasharray:7 4}.tree-edges .stepparent{stroke-dasharray:3 5;stroke:#9ba8ac}.tree-controls{background:#fffefaf5;border-radius:999px;padding:3px;bottom:16px;right:16px}.tree-controls button{min-width:44px;min-height:44px;padding:10px}.tree-controls output{min-width:36px;font-size:.74rem}.tree-person-menu{z-index:2;background:#fffefa;border:1px solid #d6dfce;border-radius:18px;width:min(280px,100% - 32px);padding:8px;position:absolute;top:16px;right:16px;box-shadow:0 16px 48px #29452e26}.tree-person-menu header{align-items:center;gap:8px;padding-left:8px;display:flex}.tree-person-menu header strong{overflow-wrap:anywhere;flex:1;min-width:0;font-size:.86rem}.tree-person-menu .icon-button{border:0;min-width:44px;min-height:44px;padding:10px}.tree-person-menu>a,.tree-person-menu>button{width:100%;min-height:48px;color:var(--green);text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:.88rem;text-decoration:none;display:flex}.tree-person-menu>a:hover,.tree-person-menu>button:hover{background:#eef4e9}.person-relations .relation-list a{min-height:44px;padding:6px 0}.person-relations .relation-labels{font-size:.72rem}.person-relations .relation-badge{color:#365a42;font-size:inherit;white-space:normal;text-align:right;background:#edf3e8;border:0;border-radius:7px;padding:3px 6px;line-height:1.2;display:inline-block}.person-relations .relation-list .calculated-relative{grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:0 4px;display:grid}.person-relations .relation-why{color:#6a806d;background:0 0;border:0;width:44px;min-width:44px;min-height:44px;padding:10px;font-size:.85rem}.relation-why span{border:1px solid #c1cdbc;border-radius:50%;place-items:center;width:18px;height:18px;display:inline-grid}.person-relations .relationship-explanation{background:#f0f4eb;border-radius:12px;grid-column:1/-1;min-width:0;margin:0 0 8px;padding:10px 12px;font-size:.8rem;line-height:1.45}.relationship-explanation p{overflow-wrap:anywhere;margin:0 0 8px}.explanation-facts{gap:8px;display:grid}.explanation-facts>div{border-top:1px solid #dce5d6;padding-top:8px}.explanation-facts p{margin:0}.person-relations .explanation-facts a{align-items:center;min-height:44px;padding:6px 0;font-size:.75rem;display:flex}.person-relations .family-group-disclosure>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:8px;min-height:44px;list-style:none;display:flex}.family-group-disclosure>summary::-webkit-details-marker{display:none}.person-relations .family-group-disclosure h3{margin:0;font-size:.74rem}.family-group-disclosure[open]>summary>.ui-icon{transform:rotate(90deg)}.family-group-disclosure>summary>.ui-icon{color:#657b62;width:16px;height:16px}.person-relations .family-relation-group{margin-bottom:8px}.person-relations .family-relation-group h3{margin-top:4px;margin-bottom:2px;font-size:.73rem}.focus-workspace .contact-grid{gap:8px}.focus-workspace .contact-card{min-height:68px;box-shadow:none;border-radius:14px;align-items:center;gap:10px;padding:10px 12px}.focus-workspace .contact-card .person-avatar{border-radius:14px;flex:0 0 44px;width:44px;height:44px;font-size:1rem}.focus-workspace .contact-card h2{margin:0;font-size:.96rem;line-height:1.3}.focus-workspace .contact-card-meta{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 0;font-size:.74rem;line-height:1.2;display:flex}.contact-card-kinship{color:#3d6246;background:#ecf2e7;border-radius:6px;padding:2px 5px}.focus-workspace .contact-deceased{color:#7b7365;background:0 0;padding:0;font-size:.7rem;font-style:italic}.focus-workspace .contact-arrow{width:16px;height:16px}.focus-workspace .contact-workspace-heading{padding:18px 20px 12px}.focus-workspace .contact-workspace-heading h1{font-size:1.8rem}.focus-workspace .contact-workspace-heading .hint{margin-bottom:0;font-size:.82rem}@media (max-width:1000px){.tree-options{grid-template-columns:minmax(0,1fr) 135px}.tree-person-count{display:none}}@media (max-width:767px){.tree-heading{padding:12px 14px 6px}.tree-options{grid-template-columns:minmax(0,1fr) 120px;gap:8px;padding:0 14px 10px}.tree-heading h1{font-size:1.65rem}.tree-hint{font-size:.7rem;bottom:74px}.tree-controls{bottom:12px;right:12px}.focus-workspace .contact-card{min-height:64px;padding:9px 10px}.focus-workspace .contact-card h2{font-size:.92rem}.person-relations .relation-list a{font-size:.82rem}}.cleaning-dashboard .cleaning-task{border-top-width:2px;padding:12px 14px}.cleaning-dashboard .cleaning-task.done{background:#fbfcf8;border-top-color:#cad8c7}.cleaning-dashboard .task-main{display:block}.cleaning-dashboard .task-copy>div{flex-wrap:wrap;align-items:baseline;gap:3px 10px;display:flex}.cleaning-dashboard .task-copy h3{overflow-wrap:anywhere;flex:1;min-width:120px}.cleaning-dashboard .task-state{flex-shrink:0;margin:0;font-size:.8rem}.cleaning-dashboard .task-copy .hint{flex-basis:100%;margin:0;font-size:.72rem;font-weight:400}.cleaning-dashboard .task-dates{gap:4px 10px;margin:4px 0 8px;font-size:.72rem}.cleaning-dashboard .task-note-mark{font-style:italic}.cleaning-dashboard .cleaning-actions{width:100%;min-width:0}.cleaning-dashboard .cleaning-actions-bar{justify-content:space-between;align-items:center;gap:8px;display:flex}.cleaning-dashboard .cleaning-actions-bar>button{min-height:48px;padding:8px 14px;font-size:.84rem}.cleaning-dashboard .cleaning-actions-bar>button.secondary:not(.cleaning-overflow){color:#59705b;background:0 0;border-color:#d4dfcf}.cleaning-dashboard .cleaning-overflow{background:0 0;border-color:#d4dfcf;width:48px;min-width:48px;min-height:48px;padding:0;font-size:1.5rem;line-height:1}.cleaning-dashboard .cleaning-secondary-actions:not([hidden]){border-top:1px solid #dbe4d7;margin-top:8px;padding-top:8px}.cleaning-dashboard .task-last-completion{margin:0 0 4px;font-size:.75rem}.cleaning-dashboard .task-options{margin:0;display:block}.cleaning-dashboard .task-options summary,.cleaning-dashboard .cleaning-secondary-actions summary{min-height:48px;padding:12px 0;font-size:.85rem}.cleaning-dashboard .task-options>details{border-bottom:1px solid #e0e7db}.cleaning-dashboard .task-options>details:last-child{border:0}.cleaning-dashboard .cleaning-secondary-actions form{width:100%;min-width:0}.cleaning-dashboard .cleaning-secondary-actions fieldset{min-width:0}.cleaning-dashboard .cleaning-secondary-actions input,.cleaning-dashboard .cleaning-secondary-actions textarea{max-width:100%}.cleaning-dashboard .room-heading{margin:12px 0 8px;display:block}.cleaning-dashboard .room-title{gap:8px;min-width:0}.cleaning-dashboard .room-title h2{overflow-wrap:anywhere}.cleaning-dashboard .add-task{margin-top:10px;padding:4px 12px}.cleaning-dashboard .add-task>summary{font-size:.86rem}@media (max-width:1199px){.cleaning-dashboard .cleaning-task-list{grid-template-columns:1fr}}
:root{--ink:#203b30;--muted:#68736a;--line:#e2e5dc;--paper:#fffdf9;--green:#2f6654;--green-soft:#e5ede5;--warm:#efe2ce;--coral:#f1e5dc;--blue:#ebe9df;--mint:#e4ede4;--surface-raised:#fffdf9;--surface-subtle:#f7f4ee;--accent:#2f6654;--accent-hover:#244e40;--radius-control:10px;--radius-surface:18px;--shadow-surface:0 12px 32px #173e4a0a;color:var(--ink);background:var(--surface-subtle);line-height:1.5}body{background:radial-gradient(at 90% 0,#dedcc880,#0000 38rem),linear-gradient(165deg,#f3eee4 0,#f7f4ee 25rem 100%)}a{color:var(--accent)}h1,h2,h3{color:var(--ink);letter-spacing:-.045em;font-weight:780}h1{font-weight:820}button,.button-link{border-radius:var(--radius-control);box-shadow:none;font-weight:650;transition:background .15s,border-color .15s}button{background:var(--accent);border-color:var(--accent)}button:hover:not(:disabled){background:var(--accent-hover)}button.secondary,.button-link.secondary{color:var(--accent);border-color:var(--line);background:#f6f4ee}button.secondary:hover:not(:disabled),.button-link.secondary:hover{background:var(--green-soft);border-color:#b9ccbc}button.danger{color:#943947;background:#fff5f6;border-color:#e5cbd0}:focus-visible{outline-offset:3px;outline:3px solid #936139}input,select,textarea{color:var(--ink);background:#fff;border-radius:var(--radius-control)!important}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.site-header{gap:24px;max-width:1600px;padding:22px 32px}.brand{white-space:nowrap;color:var(--ink);font-size:1.35rem}.brand span{color:var(--muted);letter-spacing:.1em;font-size:.68rem}.site-header nav{background:#fffdf9dd;border:1px solid #e2e5dc;border-radius:14px;gap:4px;padding:5px;display:flex;box-shadow:0 6px 18px #173e4a09}.site-header nav a{min-height:48px;color:var(--ink);border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:10px 12px;font-size:.88rem;display:flex}.site-header nav a[aria-current=page]{background:var(--green-soft);color:#2f6654}.site-header nav .ui-icon{width:18px;height:18px}.eyebrow,.hint{color:var(--muted)}.welcome:before{background:linear-gradient(90deg,#0000,#ced8ca,#0000)}.module-card,.login-panel,.contact-panel,.person-editor,.cleaning-overview,.cleaning-room,.cleaning-settings,.cleaning-archive{background:var(--paper);border-color:var(--line);box-shadow:var(--shadow-surface)}.module-card:before{height:3px}.module-card p{color:var(--muted)}.module-card.active .status{background:var(--green-soft);color:var(--accent);border-color:var(--line)}.login-panel:before{background:linear-gradient(135deg,#2f6654,#a1b29b)}.master-region,.focus-background,.contacts-workspace,.tree-heading,.tree-focus{background:var(--surface-subtle)}.contact-card,.master-region .contact-card:hover{background:var(--paper);border-color:var(--line)}.contact-card:hover,.master-region .contact-card[aria-current=true]{box-shadow:inset 3px 0 var(--accent);background:#f0f3eb;border-color:#c7d6c6}.contact-arrow,.relation-labels,.tree-person-link small{color:var(--accent)}.focus-window,.detail-region,.detail-scroll,.panel-toolbar{background:var(--paper)}.focus-backdrop{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.focus-window{border-color:var(--line);box-shadow:0 24px 80px #15354424}.edit-section-stack{gap:12px}.edit-accordion{border-color:var(--line);background:#fff;border-radius:14px}.edit-accordion>summary{background:#fff;min-height:56px;padding:12px 16px}.edit-section-copy small{color:var(--muted)}.edit-section-icon{color:var(--ink);background:0 0}.edit-accordion-body{border-top:1px solid #eeeae1;padding:18px}.edit-subsection,.contact-entry{background:var(--surface-subtle);border-color:var(--line)}.contact-entry{border:0;padding:16px}.relation-preview,.relation-question,.relation-auto-help{background:var(--surface-subtle);border-color:var(--line)}.combo-menu{border-color:var(--line);background:#fff;box-shadow:0 12px 30px #173e4a14}.combo-menu button{color:var(--ink)}.combo-menu button:hover:not(:disabled),.combo-menu button[data-active=true],.combo-menu button[aria-selected=true]{background:var(--green-soft);color:var(--ink)}.save-state{color:var(--accent);background:var(--paper);z-index:4;height:28px;min-height:28px;padding:2px 0;font-size:.82rem;font-weight:650}.contact-history{background:var(--surface-subtle)}.person-avatar{background:var(--green-soft)}.tree-workspace .master-region{background:#f1f2e9}.tree-stage{background:radial-gradient(circle,#a9b6a055 1px,#0000 1px) 0 0/24px 24px,#f5f4ec}.tree-person,.tree-controls{border-color:var(--line);background:#fff}.tree-person.focused{border-color:var(--accent);box-shadow:0 0 0 2px #c4d5c1,0 8px 16px #173e4a12}.tree-edges path,.tree-edges .partner-edge{stroke:#9caf98}.tree-person-link:hover{background:var(--surface-subtle)}.cleaning-overview{background:#fff}.overview-stat.warm,.overview-stat.coral,.overview-stat.mint,.overview-stat.blue{border-color:var(--line);background:#f1f2e9}.focus-row{border-color:var(--line);background:var(--surface-subtle)}.focus-task{line-height:1.2;padding:8px 12px!important}.focus-countdown{max-width:11ch;font-size:.82rem}.room-overview-card,.cleaning-task{border-color:var(--line);background:#fff}.room-overview-card[aria-pressed=true]{background:var(--green-soft);border-color:#c0d0be}.cleaning-settings,.cleaning-archive{border-radius:14px;margin-top:12px;padding:0 18px}.cleaning-settings>summary,.cleaning-archive>summary,.add-task>summary{min-height:48px;color:var(--ink);padding:12px 0;font-size:.94rem}.add-task{margin-top:18px;background:0 0!important;border:0!important;padding:0!important}.add-task>summary{background:var(--accent);color:#fff;cursor:pointer;border-radius:10px;width:fit-content;min-width:160px;padding:10px 16px;display:list-item}.add-task>form{background:var(--surface-subtle);border:1px solid var(--line);border-radius:14px;margin-top:12px;padding:18px}.task-picker{margin:16px 0}.task-picker .combo-menu{box-shadow:none;margin-top:8px;position:relative;top:auto;bottom:auto}.task-picker .combo-menu-above{bottom:auto}.pet-list,.pet-people{margin:0;padding:0;list-style:none}.pet-list>li{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-width:0;padding:12px 0;display:flex}.pet-list>li>.ui-icon{width:24px;height:24px;color:var(--accent)}.pet-list>li>div{flex:1;min-width:0}.pet-list span,.pet-list small{color:var(--muted);overflow-wrap:anywhere;font-size:.8rem;display:block}.pet-actions{position:relative}.pet-actions summary{cursor:pointer;background:var(--surface-subtle);border-radius:10px;place-items:center;min-width:48px;min-height:48px;list-style:none;display:grid}.pet-actions[open]{min-width:150px}.pet-actions button{text-align:left;width:100%;margin:6px 0;font-size:.8rem;display:block}.pet-form{margin-top:16px}.pet-form fieldset{border:0;padding:0}.pet-people li{justify-content:space-between;align-items:center;gap:12px;font-size:.85rem;display:flex}.pet-people button{padding:8px;font-size:.78rem}@media (max-width:900px){.site-header{flex-wrap:wrap;gap:12px;padding:18px 24px}.site-header nav{flex:1;justify-content:flex-end}.brand{font-size:1.15rem}}@media (max-width:650px){.site-header{padding:14px 16px}.site-header nav{flex-wrap:wrap;justify-content:flex-start;gap:0;width:100%}.site-header nav a{flex:auto;gap:4px;padding:8px 6px;font-size:.75rem}.site-header nav .ui-icon{width:16px;height:16px}main{padding:20px 16px}.brand span{display:none}.edit-accordion-body{padding:14px}.pet-actions[open]{min-width:120px}.focus-countdown{max-width:9ch}.focus-task strong{font-size:.85rem}.focus-task small{font-size:.75rem}}@media (prefers-reduced-motion:reduce){button,.button-link{transition:none}.module-card:hover{transform:none}}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.edit-accordion[open]{border-color:#c7d6c6;box-shadow:0 8px 24px #173e4a08}.edit-accordion[open]>summary{background:var(--surface-subtle);border-color:var(--line);border-radius:14px 14px 0 0}.person-editor .contact-check,.edit-footer{background:var(--surface-subtle);border-color:var(--line)}.person-detail-grid .contact-panel,.contact-empty,.tree-person-menu{background:var(--paper);border-color:var(--line)}.person-hero .status,.person-relations .relation-badge,.contact-card-kinship,.tree-person-link small:first-of-type{background:var(--green-soft);color:var(--accent);border-color:var(--line)}.relation-gender-note{color:var(--ink);border-color:var(--line);background:#f1f2e9}.person-relations .relationship-explanation{background:var(--surface-subtle)}.family-welcome:before,.cleaning-welcome:before{background:linear-gradient(90deg,#0000,#ced8ca,#0000)}.focus-icon,.room-icon,.room-title-icon,.task-icon{background:var(--green-soft)}.focus-panel,.cleaning-dashboard .cleaning-task.done,.cleaning-dashboard .cleaning-settings{background:var(--paper);border-color:var(--line)}.cleaning-dashboard .cleaning-task{border-top-color:#c7d6c6}.cleaning-dashboard .cleaning-actions-bar>button.secondary:not(.cleaning-overflow){border-color:var(--line);color:var(--accent)}.combo-shell input,.relation-form .combo-shell input{padding-left:41px!important;padding-right:57px!important}.combo-group-label{color:var(--muted)}.combo-clear{top:0;color:var(--muted)!important}.detail-scroll .save-state{text-align:right;position:sticky;top:0}.save-state[data-state=error]{color:#943947}.edit-section-stack{border:1px solid var(--line);background:var(--paper);border-radius:14px;gap:0}.edit-accordion{border:0;border-bottom:1px solid var(--line);border-radius:0}.edit-accordion:last-child{border-bottom:0}.edit-accordion>summary{min-height:48px;padding:8px 16px}.edit-accordion[open]{box-shadow:none}.edit-accordion[open]>summary{border-radius:0}.edit-accordion:first-child>summary{border-radius:14px 14px 0 0}.edit-accordion:last-child:not([open])>summary{border-radius:0 0 14px 14px}.person-editor input:focus,.person-editor select:focus,.person-editor textarea:focus,.relation-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2f66541f}main,.site-header{max-width:1240px}.portal-welcome{align-items:flex-start;padding:30px 0 38px}.portal-welcome:before{display:none}.portal-welcome h1{max-width:18ch;margin:14px 0 18px;font-size:clamp(2.5rem,5vw,4.1rem)}.portal-welcome>div>p:last-child{color:var(--muted);font-size:1.05rem}.portal-section-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:20px;display:flex}.portal-section-heading h2{margin:0;font-size:1.25rem}.portal-section-heading p{color:var(--muted);margin:0;font-size:.88rem}.portal-modules{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.module-card{--accent:var(--green);--module-tint:#e5ede5}.module-sage,.module-green{--module-tint:#e5ede5}.module-amber{--module-tint:#f0e4d0}.module-rose{--module-tint:#efe1d8}.portal-modules .module-card{border-color:var(--line);border-radius:22px;grid-template-columns:56px minmax(0,1fr);gap:22px 20px;padding:28px;display:grid;box-shadow:0 8px 24px #203b3006}.portal-modules .module-card:before{display:none}.portal-modules .module-card:hover{background:#fffefa;border-color:#9db49e;transform:translateY(-2px)}.portal-modules .module-icon{background:var(--module-tint);width:56px;height:56px;color:var(--ink);border-radius:18px;margin:0}.portal-modules .module-icon .ui-icon{width:26px;height:26px}.module-copy h3{margin:0 0 8px;font-size:1.4rem}.module-copy p{margin:0;font-size:.94rem}.portal-modules .module-card.active .status{color:#fffdf9;background:#2f6654;border:1px solid #2f6654;border-radius:12px;grid-column:2;justify-content:space-between;align-items:center;gap:16px;width:fit-content;min-width:176px;min-height:48px;padding:11px 16px;font-size:.88rem;font-weight:650;display:flex}.portal-modules .status .ui-icon{width:18px;height:18px}.portal-modules .module-card:hover .status{background:#244e40;border-color:#244e40}.portal-planned{margin-top:42px}.portal-planned-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;display:grid}.planned-module{border-top:1px solid var(--line);align-items:center;gap:14px;min-width:0;padding:18px 0;display:flex}.planned-module>.ui-icon{width:22px;height:22px;color:var(--muted);flex-shrink:0}.planned-module>div{flex:1;min-width:0}.planned-module h3{margin:0;font-size:.94rem}.planned-module p{color:var(--muted);margin:4px 0 0;font-size:.8rem}.planned-module .status{white-space:nowrap;color:var(--muted);background:0 0;border:0;padding:0;font-size:.7rem}.person-profile-surface{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-surface);border-radius:24px;overflow:hidden}.person-profile-surface .person-hero{border-bottom:1px solid var(--line);background:linear-gradient(120deg,#fffdf9,#f3f2e9);margin:0;padding:28px}.person-profile-surface .person-avatar.large{border-radius:50%;width:88px;height:88px;box-shadow:0 0 0 5px #fffdf9}.person-profile-surface .person-detail-grid{flex-direction:column;gap:0;display:flex}.person-profile-surface .person-detail-grid>.contact-panel{border:0;border-bottom:1px solid var(--line);box-shadow:none;background:0 0;border-radius:0;margin:0;padding:24px 28px}.person-profile-surface .person-detail-grid>.contact-panel:last-child{border-bottom:0}.person-profile-surface .person-detail-grid>details.contact-panel{padding:0}.person-profile-surface details>summary{cursor:pointer;align-items:center;gap:14px;min-height:64px;padding:18px 28px;list-style:none;display:flex}.person-profile-surface details>summary::-webkit-details-marker{display:none}.person-profile-surface summary h2{flex:1;margin:0;font-size:1.04rem;font-weight:650}.person-profile-surface summary>.ui-icon{width:20px;height:20px;color:var(--green)}.person-profile-surface summary>.ui-icon:last-child{color:var(--muted);transition:transform .15s}.person-profile-surface details[open]>summary>.ui-icon:last-child{transform:rotate(90deg)}.person-section-body{padding:0 28px 24px 62px}.person-section-body h3{font-size:.94rem}.person-profile-surface .contact-values li{margin:12px 0}.person-profile-surface .contact-values a{font-size:1rem}@media (max-width:650px){.portal-welcome{gap:12px;padding:16px 0 28px}.portal-welcome h1{font-size:2.65rem}.portal-welcome form{align-self:flex-start}.portal-section-heading{display:block}.portal-section-heading p{margin-top:8px}.portal-modules{grid-template-columns:1fr}.portal-modules .module-card{grid-template-columns:48px minmax(0,1fr);gap:16px;padding:22px}.portal-modules .module-icon{border-radius:14px;width:48px;height:48px}.module-copy h3{font-size:1.2rem}.portal-planned-list{grid-template-columns:1fr}.planned-module .status{font-size:.68rem}.person-profile-surface .person-hero{gap:16px;padding:22px}.person-profile-surface .person-avatar.large{width:72px;height:72px}.person-profile-surface details>summary{padding:18px 22px}.person-section-body{padding:0 22px 22px}.person-profile-surface .person-detail-grid>.contact-panel{padding:22px}}.cleaning-workbench{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-surface);border-radius:22px;grid-template-columns:220px minmax(0,1fr);margin:24px 0;display:grid;overflow:hidden}.cleaning-room-navigation{border-right:1px solid var(--line);background:#f3f3eb;padding:26px 16px}.cleaning-room-navigation h2{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 10px 18px;font-size:.74rem}.cleaning-workbench .room-overview-grid{flex-direction:column;gap:4px;margin:0;display:flex}.cleaning-workbench .room-overview-card{width:100%;box-shadow:none;background:0 0;border:1px solid #0000;border-radius:12px;min-height:64px;padding:12px}.cleaning-workbench .room-overview-card[aria-pressed=true]{background:#e2eadd;border-color:#d5dfd0}.cleaning-workbench .room-icon{background:0 0;border-radius:0;flex-shrink:0;width:24px;height:24px}.cleaning-workbench .room-icon .ui-icon,.cleaning-workbench .room-title-icon .ui-icon{width:22px;height:22px}.cleaning-workbench .room-card-copy strong{font-size:.9rem}.cleaning-workbench .room-card-copy small{font-size:.72rem}.cleaning-workbench .cleaning-room{box-shadow:none;background:0 0;border:0;border-radius:0;min-width:0;margin:0;padding:26px 28px}.cleaning-workbench .room-heading{margin:0 0 20px}.cleaning-workbench .room-title-icon{background:0 0}.cleaning-workbench .cleaning-empty{grid-column:1/-1;padding:28px}.person-profile-surface .pet-section{border:0;border-bottom:1px solid var(--line);border-radius:0}.person-profile-surface .pet-section>summary{background:0 0;padding:18px 28px}.person-profile-surface .pet-section .edit-accordion-body{border-top:0;padding:0 28px 24px}@media (max-width:767px){.cleaning-workbench{display:block}.cleaning-room-navigation{border-right:0;border-bottom:1px solid var(--line);padding:18px 16px}.cleaning-workbench .room-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.cleaning-workbench .room-overview-card{gap:8px;padding:10px}.cleaning-workbench .cleaning-room{padding:22px 16px}}.person-edit-surface{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-surface);border-radius:24px;overflow:clip}.person-edit-surface .person-edit-heading{border-bottom:1px solid var(--line);background:linear-gradient(120deg,#fffdf9,#f3f2e9);align-items:center;gap:24px;margin:0;padding:28px;display:flex}.person-edit-heading>div{min-width:0}.person-edit-heading h1{margin:6px 0 10px}.person-edit-heading p:last-child{color:var(--muted);margin:0;font-size:.85rem}.person-edit-heading .person-avatar.large{border-radius:50%;width:88px;height:88px;box-shadow:0 0 0 5px #fffdf9}.person-edit-surface .person-editor{box-shadow:none;background:0 0;border:0;padding:0}.person-edit-surface .edit-section-stack{border:0;border-radius:0}.person-edit-surface .edit-accordion>summary{min-height:64px;padding:14px 28px}.person-edit-surface .edit-accordion:first-child>summary,.person-edit-surface .edit-accordion:last-child:not([open])>summary{border-radius:0}.person-edit-surface .edit-accordion-body{padding:22px 28px}.person-edit-surface .edit-footer{border-top:1px solid var(--line);margin:0;padding:18px 28px}@media (max-width:650px){.person-edit-surface .person-edit-heading{align-items:flex-start;gap:16px;padding:22px}.person-edit-heading .person-avatar.large{width:64px;height:64px;font-size:1.4rem}.person-edit-surface .edit-accordion>summary{padding:14px 20px}.person-edit-surface .edit-accordion-body{padding:20px}.person-edit-surface .edit-footer{padding:18px 20px}.site-header nav{flex:1 0 100%;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;width:100%;display:grid}.site-header nav a{flex-direction:column;gap:4px;min-height:56px;padding:6px 2px;font-size:.67rem}.site-header nav .ui-icon{width:18px;height:18px}}.person-edit-heading h1{overflow-wrap:anywhere}
.calendar-welcome{padding-bottom:12px}.calendar-shell{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-surface);border-radius:22px;margin:12px 0 32px;overflow:clip}.calendar-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:18px 20px;display:flex}.calendar-toolbar button,.calendar-toolbar input{min-height:48px}.calendar-toolbar .calendar-new{align-items:center;gap:8px;display:inline-flex}.calendar-toolbar .ui-icon{width:18px;height:18px}.calendar-period{align-items:center;gap:6px;display:flex}.calendar-period h2{white-space:nowrap;min-width:9ch;margin:0 8px;font-size:1.3rem}.calendar-period button{min-width:48px;padding:0 12px}.calendar-prev .ui-icon{transform:rotate(180deg)}.calendar-segments{border:1px solid var(--line);background:var(--surface-subtle);border-radius:12px;padding:3px;display:inline-flex}.calendar-segments button{color:var(--ink);background:0 0;border:0;min-height:42px;padding:0 14px;font-weight:600}.calendar-segments button[aria-pressed=true]{background:var(--accent);color:#fffdf9}.calendar-segments button:hover:not([aria-pressed=true]){background:var(--green-soft)}.calendar-search{flex:220px;min-width:0;margin-left:auto}.calendar-search input{width:100%}.calendar-filters{border-bottom:1px solid var(--line);background:var(--surface-subtle);flex-wrap:wrap;gap:6px;padding:12px 20px;display:flex}.calendar-filters button{background:var(--paper);border:1px solid var(--line);min-height:44px;color:var(--ink);border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:.88rem;font-weight:600;display:inline-flex}.calendar-filters button[aria-pressed=true]{background:var(--green-soft);border-color:#b9ccbc}.calendar-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.tone-family .calendar-dot,.calendar-dot.tone-family{background:var(--accent)}.tone-private .calendar-dot,.calendar-dot.tone-private{background:#5f6a70}.tone-milestone .calendar-dot,.calendar-dot.tone-milestone{background:#c58b3a}.calendar-status{color:var(--muted);padding:10px 20px;font-size:.85rem}.calendar-error{color:#943947}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekday{text-align:center;color:var(--muted);border-bottom:1px solid var(--line);padding:10px 8px;font-size:.82rem;font-weight:650}.calendar-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;gap:4px;min-width:0;min-height:116px;padding:6px;display:flex}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#faf8f3}.calendar-day.outside .calendar-daynum{color:#a7ad9f}.calendar-day.selected{background:#eef3ec}.calendar-daynum{min-width:40px;min-height:40px;color:var(--ink);background:0 0;border:0;border-radius:999px;align-self:flex-start;padding:0 6px;font-size:.9rem;font-weight:650}.calendar-daynum:hover:not(:disabled){background:var(--green-soft)}.calendar-day.today .calendar-daynum{background:var(--accent);color:#fffdf9}.calendar-chip{text-align:left;border:0;border-radius:8px;align-items:center;gap:6px;width:100%;min-height:32px;padding:4px 8px;font-size:.8rem;font-weight:600;line-height:1.2;display:flex;overflow:hidden}.calendar-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-chip .ui-icon{flex-shrink:0;width:14px;height:14px}.calendar-chip.tone-family{color:#1f4c3e;background:#e2ece4}.calendar-chip.tone-private{color:#3d474d;background:#eceef0}.calendar-chip.tone-milestone{color:#7a4d12;background:#f6e8d2}.calendar-chip:hover:not(:disabled){filter:brightness(.96)}.calendar-chip.tone-family:hover:not(:disabled){background:#d6e5d9}.calendar-chip.tone-private:hover:not(:disabled){background:#e1e4e7}.calendar-chip.tone-milestone:hover:not(:disabled){background:#f0dcbc}.calendar-more{color:var(--accent);text-align:left;background:0 0;border:0;min-height:32px;padding:2px 8px;font-size:.8rem;font-weight:650}.calendar-more:hover:not(:disabled){background:var(--green-soft)}.calendar-week .calendar-day{min-height:320px}.calendar-dayview{border-top:1px solid var(--line);padding:20px}.calendar-dayview h3{margin:0 0 12px;font-size:1.05rem}.calendar-items{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.calendar-items .calendar-chip{min-height:52px;padding:8px 14px;font-size:.92rem}.calendar-items .calendar-chip small{color:inherit;opacity:.8;white-space:nowrap;margin-left:auto;font-weight:500}.calendar-list{padding:8px 20px 20px}.calendar-list section{border-bottom:1px solid var(--line);padding:14px 0}.calendar-list section:last-child{border-bottom:0}.calendar-list h3{margin:0 0 10px;font-size:.95rem}.calendar-empty{color:var(--muted);padding:24px 20px}.calendar-dialog-backdrop{z-index:50;background:#1f2b2633;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.calendar-dialog{background:var(--paper);border:1px solid var(--line);border-radius:20px;width:min(640px,100%);max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 24px 80px #15354424}.calendar-dialog header{border-bottom:1px solid var(--line);background:var(--paper);z-index:1;align-items:flex-start;gap:12px;padding:20px 22px;display:flex;position:sticky;top:0}.calendar-dialog header h2{overflow-wrap:anywhere;flex:1;margin:0;font-size:1.3rem}.calendar-dialog header button{min-width:48px;min-height:48px;padding:0}.calendar-dialog-body{flex-direction:column;gap:14px;padding:20px 22px;display:flex}.calendar-dialog-body dl{grid-template-columns:max-content minmax(0,1fr);gap:8px 16px;margin:0;display:grid}.calendar-dialog-body dt{color:var(--muted);font-size:.85rem}.calendar-dialog-body dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.calendar-dialog footer{border-top:1px solid var(--line);background:var(--surface-subtle);flex-wrap:wrap;gap:10px;padding:16px 22px;display:flex}.calendar-dialog footer button{min-height:48px}.calendar-dialog footer .push{margin-left:auto}.calendar-form label{margin-bottom:4px;font-size:.88rem;font-weight:600;display:block}.calendar-form input,.calendar-form select,.calendar-form textarea{width:100%;min-height:48px}.calendar-form textarea{min-height:96px}.calendar-form .row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.calendar-form .check{align-items:center;gap:10px;min-height:48px;margin:0;font-weight:600;display:flex}.calendar-form .check input{width:22px;height:22px;min-height:22px}.calendar-form fieldset{border:1px solid var(--line);border-radius:14px;margin:0;padding:12px 14px}.calendar-form legend{padding:0 4px;font-size:.88rem;font-weight:650}.calendar-form details{border:1px solid var(--line);border-radius:14px;padding:0 14px}.calendar-form details>summary{cursor:pointer;align-items:center;min-height:48px;font-weight:650;display:flex}.calendar-form details[open]{padding-bottom:14px}.calendar-form details>div{flex-direction:column;gap:12px;display:flex}.calendar-alert{color:#943947;background:#fff5f6;border:1px solid #e5cbd0;border-radius:12px;padding:10px 14px}@media (max-width:900px){.calendar-search{flex-basis:100%;margin-left:0}}@media (max-width:650px){.calendar-toolbar{padding:14px}.calendar-filters{padding:10px 14px}.calendar-period{flex:100%;justify-content:space-between}.calendar-period h2{font-size:1.1rem}.calendar-grid .calendar-day{min-height:72px;padding:3px}.calendar-weekday{padding:8px 2px;font-size:.72rem}.calendar-grid .calendar-chip{min-height:24px;padding:2px 4px;font-size:.68rem}.calendar-grid .calendar-chip .ui-icon{display:none}.calendar-week{grid-template-columns:1fr}.calendar-week .calendar-day{border-right:0;min-height:0}.calendar-list,.calendar-dayview{padding-left:14px;padding-right:14px}.calendar-form .row{grid-template-columns:1fr}.calendar-dialog-backdrop{place-items:end stretch;padding:0}.calendar-dialog{border-radius:20px 20px 0 0;max-height:94dvh}}@media (prefers-reduced-motion:reduce){.calendar-chip{transition:none}}@media (min-width:651px) and (max-width:1240px){.site-header{flex-wrap:wrap;row-gap:10px}.site-header nav{flex-wrap:wrap;flex:auto;justify-content:flex-end;min-width:0}.site-header nav a{padding:10px}}@media (max-width:650px){.site-header nav{grid-template-columns:repeat(6,minmax(0,1fr))}}
