.app-header.dashboard-header{top:env(safe-area-inset-top,0px);margin-top:env(safe-area-inset-top,0px);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px}.dashboard-header .header-brand{grid-area:1/1;gap:8px}.dashboard-header .header-app-icon{border-radius:10px;flex:none;width:38px;height:38px}.dashboard-header .header-brand h1{font-size:1rem}.dashboard-header .header-brand p{font-size:.7rem}.dashboard-header .header-primary-actions{grid-area:1/2;gap:4px;display:flex}.dashboard-header .header-connection-dot{background:#bd8738;border-radius:50%;flex:none;width:8px;height:8px}.dashboard-header .header-connection-dot.good{background:#218260}.dashboard-header .header-info{flex-wrap:wrap;grid-area:2/1/3/-1;gap:6px;overflow:visible}.dashboard-header .header-tile{flex:100px;min-width:0;min-height:48px;padding:8px}.dashboard-header .header-tile strong{font-size:.83rem}.dashboard-header .header-tile span,.dashboard-header .header-tile small{font-size:.72rem}.dashboard-header .header-actions{grid-area:3/1/4/-1;justify-content:flex-end;justify-self:stretch;width:auto}.dashboard-header .header-info[hidden],.dashboard-header .header-actions[hidden]{display:none}.dashboard-header .agenda-popover,.dashboard-header .weather-popover{overscroll-behavior:contain;grid-column:1/-1;max-height:min(55dvh,450px);overflow-y:auto}.dashboard-header.header-collapsed .header-brand p{display:none}.dashboard-header.header-collapsed .header-app-icon{width:32px;height:32px}.dashboard-header.header-collapsed{padding-block:4px}@media (width>=760px){.dashboard-header .header-info{flex-wrap:nowrap}}.cleaning-ui{color:#243c2f;min-width:0}.cleaning-ui *{box-sizing:border-box}.cleaning-ui button,.cleaning-ui summary{min-height:44px}.cleaning-ui button{cursor:pointer;font:inherit}.cleaning-ui button:disabled{cursor:default;opacity:.58}.cleaning-ui :is(button,summary,input,select,textarea):focus-visible{outline-offset:3px;outline:2px solid #358268}.cleaning-ui p{margin:0}.cleaning-ui .cleaning-note,.cleaning-ui .cleaning-help{color:#66766a;overflow-wrap:anywhere;line-height:1.45}.cleaning-ui .cleaning-note{font-size:.84rem}.cleaning-ui .cleaning-help{font-size:.74rem}.cleaning-ui .cleaning-empty{color:#607163;justify-items:start;gap:10px;padding:12px 0;font-size:.85rem;line-height:1.5;display:grid}.cleaning-ui .cleaning-error{color:#823c2d;overflow-wrap:anywhere;background:#fff0ec;border-radius:8px;gap:8px;margin:8px 0;padding:10px;font-size:.82rem;line-height:1.45;display:grid}.cleaning-ui .cleaning-error button{justify-self:start}.cleaning-ui .cleaning-success{color:#2d6847;background:#e7f3e8;border-radius:8px;margin:12px 0;padding:10px;font-size:.83rem}.cleaning-ui .cleaning-actions,.cleaning-ui .cleaning-page-nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cleaning-ui .cleaning-page-nav{justify-content:space-between}.cleaning-ui .cleaning-reminder,.cleaning-ui.cleaning-reminder{border-color:#d9bc79}.cleaning-ui .cleaning-reminder-note{color:#836633;background:#fcf8ec;border-left:3px solid #caaa64;border-radius:4px;margin:9px 0;padding:8px 10px;font-size:.78rem;line-height:1.45}.cleaning-ui .cleaning-card-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px 12px;margin-bottom:11px;display:flex}.cleaning-ui .cleaning-card-heading>span{align-items:center;gap:7px;font-size:.9rem;display:flex}.cleaning-ui .cleaning-card-heading>small{color:#69786b;font-size:.72rem}.cleaning-ui .cleaning-progress{gap:12px;margin:8px 0;display:grid}.cleaning-ui .cleaning-progress-total{flex-wrap:wrap;align-items:baseline;gap:3px 8px;display:flex}.cleaning-ui .cleaning-progress-total>strong{font-variant-numeric:tabular-nums;letter-spacing:-.035em;overflow-wrap:anywhere;font-size:1.55rem;line-height:1.1}.cleaning-ui .cleaning-progress-total>span{color:#526753;font-size:.8rem}.cleaning-ui .cleaning-progress-total>small{color:#69786b;flex-basis:100%;margin-top:3px;font-size:.74rem}.cleaning-ui .cleaning-people-progress{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.cleaning-ui .cleaning-person-progress>span{align-items:baseline;gap:5px;font-size:.78rem;display:flex}.cleaning-ui .cleaning-person-progress strong{white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:.75rem}.cleaning-ui .cleaning-person-progress small{color:#6b7c6d;font-size:.65rem}.cleaning-ui .cleaning-person-progress progress{appearance:none;accent-color:#4b815c;background:#e6ede3;border:0;border-radius:5px;width:100%;height:5px;margin-top:6px;display:block;overflow:hidden}.cleaning-ui .cleaning-person-progress progress::-webkit-progress-bar{background:#e6ede3;border-radius:5px}.cleaning-ui .cleaning-person-progress progress::-webkit-progress-value{background:#4b815c;border-radius:5px}.cleaning-ui .cleaning-person-progress progress::-moz-progress-bar{background:#4b815c;border-radius:5px}.cleaning-ui .cleaning-card-link{color:#326546;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:7px 0 0;font-size:.83rem;font-weight:700;display:flex}.cleaning-ui .cleaning-card-link>span{font-size:1.4rem}.cleaning-ui.cleaning-card .cleaning-card-heading{margin-bottom:6px}.cleaning-ui.cleaning-card .cleaning-progress{gap:8px;margin:6px 0 0}.cleaning-ui.cleaning-card .cleaning-progress-total>small{white-space:nowrap;flex-basis:auto;margin:0 0 0 auto}.cleaning-ui.cleaning-card .cleaning-card-link{padding-top:2px}.cleaning-ui .cleaning-week-nav{flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:14px;display:flex}.cleaning-ui .cleaning-week-select{flex:200px}.cleaning-ui .cleaning-filters{flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:15px;display:flex}.cleaning-ui .cleaning-person-filter{background:#eff3eb;border-radius:9px;flex:150px;grid-template-columns:1fr 1fr;gap:3px;padding:3px;display:grid}.cleaning-ui .cleaning-person-filter button{color:#596d5b;background:0 0;border:1px solid #0000;border-radius:7px;padding:5px 13px;font-size:.85rem}.cleaning-ui .cleaning-person-filter button[aria-pressed=true]{color:#29593b;background:#fff;border-color:#dce7d8;font-weight:750}.cleaning-ui .cleaning-room-filter{flex:170px}.cleaning-ui .cleaning-tasks{gap:12px;display:grid}.cleaning-ui .cleaning-subheading{justify-content:space-between;align-items:center;gap:8px;margin:0 0 9px;display:flex}.cleaning-ui .cleaning-subheading h3{margin:0;font-size:.91rem}.cleaning-ui .cleaning-subheading>span{color:#6b786b;white-space:nowrap;font-size:.75rem}.cleaning-ui .cleaning-task-list{gap:7px;margin:0;padding:0;list-style:none;display:grid}.cleaning-ui .cleaning-task{background:#fcfdf9;border:1px solid #e0e7dc;border-radius:9px;min-width:0;padding:5px 9px 8px 3px}.cleaning-ui .cleaning-task.is-done{background:#f0f6ed;border-color:#dce7d7}.cleaning-ui .cleaning-task-main{grid-template-columns:44px minmax(0,1fr);align-items:start;gap:3px;display:grid}.cleaning-ui .cleaning-task-check{color:#fff;background:0 0;border:0;place-items:center;width:44px;height:44px;padding:0;display:grid}.cleaning-ui .cleaning-task-check>span{color:#4d7254;background:#fff;border:1.5px solid #bdcbb8;border-radius:7px;place-items:center;width:24px;height:24px;font-size:1rem;font-weight:800;display:grid}.cleaning-ui .cleaning-task-check[aria-checked=true]>span{color:#fff;background:#43794e;border-color:#43794e}.cleaning-ui .cleaning-task-check:disabled{opacity:.75}.cleaning-ui .cleaning-task-text{min-width:0;padding-top:10px}.cleaning-ui .cleaning-task-text>strong{overflow-wrap:anywhere;font-size:.86rem;line-height:1.4;display:block}.cleaning-ui .is-done .cleaning-task-text>strong{color:#4f6a51}.cleaning-ui .cleaning-task-note{color:#63745e;overflow-wrap:anywhere;margin-top:4px;font-size:.76rem;line-height:1.45}.cleaning-ui .cleaning-task-meta{color:#768273;overflow-wrap:anywhere;flex-wrap:wrap;gap:2px 9px;margin:5px 0 0;font-size:.69rem;line-height:1.45;display:flex}.cleaning-ui .cleaning-task-text>.cleaning-help{margin-top:5px;font-size:.69rem}.cleaning-ui .cleaning-completed{color:#4c7851;overflow-wrap:anywhere;margin-top:5px;font-size:.69rem;line-height:1.45}.cleaning-ui .cleaning-completed>span{color:#70806b}.cleaning-ui .cleaning-disclosure>summary,.cleaning-ui .cleaning-task-options>summary{cursor:pointer;color:#466246;overflow-wrap:anywhere;align-items:center;gap:7px;font-size:.8rem;font-weight:650;list-style:none;display:flex}.cleaning-ui .cleaning-disclosure>summary:before,.cleaning-ui .cleaning-task-options>summary:before{content:"+";flex:none;font-size:1rem;font-weight:400}.cleaning-ui .cleaning-disclosure[open]>summary:before,.cleaning-ui .cleaning-task-options[open]>summary:before{content:"−"}.cleaning-ui .cleaning-disclosure>summary::-webkit-details-marker{display:none}.cleaning-ui .cleaning-task-options>summary::-webkit-details-marker{display:none}.cleaning-ui .cleaning-disclosure>summary>small{color:#6a7a67;white-space:nowrap;margin-left:auto;font-size:.71rem;font-weight:400}.cleaning-ui .cleaning-disclosure>.cleaning-help{margin-bottom:9px}.cleaning-ui .cleaning-disclosure>.cleaning-task-section{margin-top:12px}.cleaning-ui .cleaning-task-options>summary{font-size:.7rem;font-weight:400}.cleaning-ui .cleaning-task-options .secondary-action{padding:5px 10px;font-size:.75rem}.cleaning-ui .cleaning-task-options .cleaning-help{margin-top:7px;font-size:.7rem}.cleaning-ui .cleaning-routines,.cleaning-ui .cleaning-whole-home{border-top:1px solid #e2e9dd}.cleaning-ui .cleaning-history-list{gap:5px;display:grid}.cleaning-ui .cleaning-history-list>button{color:#4b654b;background:#fafcf7;border:1px solid #e0e7db;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-size:.8rem;display:flex}.cleaning-ui .cleaning-history-list>button[aria-pressed=true]{background:#e9f1e3;border-color:#94b58c}.cleaning-ui label{color:#4d624d;gap:5px;min-width:0;font-size:.8rem;font-weight:650;display:grid}.cleaning-ui :is(input:not([type=checkbox]),select,textarea){color:#253b2b;width:100%;min-width:0;min-height:44px;font:inherit;background:#fff;border:1px solid #d7e1d0;border-radius:7px;padding:8px 10px;font-size:1rem}.cleaning-ui textarea{resize:vertical}.cleaning-ui label>small{color:#70816b;font-size:.73rem;font-weight:400;line-height:1.45}.cleaning-ui .cleaning-settings-intro{justify-items:start;gap:12px;margin:14px 0;display:grid}.cleaning-ui .cleaning-settings-list{gap:8px;display:grid}.cleaning-ui .cleaning-config-task{background:#fbfcf8;border:1px solid #dce5d5;border-radius:9px;min-width:0}.cleaning-ui .cleaning-editor-toggle{text-align:left;color:#3a563c;background:0 0;border:0;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:12px;display:flex}.cleaning-ui .cleaning-editor-toggle>span:first-child{gap:5px;min-width:0;display:grid}.cleaning-ui .cleaning-editor-toggle strong{overflow-wrap:anywhere;font-size:.84rem;line-height:1.4}.cleaning-ui .cleaning-editor-toggle small{color:#71816b;overflow-wrap:anywhere;font-size:.7rem;line-height:1.35}.cleaning-ui .cleaning-task-editor{border-top:1px solid #e1e8db;gap:12px;padding:12px;display:grid}.cleaning-ui .cleaning-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.cleaning-ui .cleaning-room-choices{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;min-width:0;margin:0;padding:0;display:grid}.cleaning-ui .cleaning-room-choices>legend{margin-bottom:7px;padding:0;font-size:.8rem;font-weight:650}.cleaning-ui .cleaning-room-choices>label{cursor:pointer;background:#fff;border:1px solid #dce6d5;border-radius:7px;align-items:center;gap:8px;min-height:44px;padding:5px 7px;font-size:.75rem;font-weight:400;display:flex}.cleaning-ui .cleaning-room-choices input{accent-color:#427850;flex:none;width:18px;height:18px;margin:0}.cleaning-ui .cleaning-room-choices span{overflow-wrap:anywhere}.cleaning-ui .cleaning-archive{border-top:1px solid #e1e5d8;padding-top:12px}.cleaning-ui .cleaning-archive-confirm{color:#7a663f;gap:9px;margin-top:10px;display:grid}.cleaning-ui .cleaning-archive-confirm>strong{overflow-wrap:anywhere;font-size:.83rem}.cleaning-ui .cleaning-settings-save{border-top:1px solid #dce6d4;gap:9px;margin-top:16px;padding-top:14px;display:grid}@media (width<=380px){.cleaning-ui .cleaning-people-progress{gap:10px}.cleaning-ui .cleaning-person-progress>span{flex-wrap:wrap;gap:3px}.cleaning-ui .cleaning-form-grid,.cleaning-ui .cleaning-room-choices{grid-template-columns:minmax(0,1fr)}.cleaning-ui .cleaning-task-editor{padding:10px}.cleaning-ui .cleaning-actions>button{flex:auto}.cleaning-ui .section-header{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.cleaning-ui *,.cleaning-ui :before,.cleaning-ui :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.panel.presence-compact{align-content:start;gap:9px;padding:12px;display:grid}.presence-compact-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;display:flex}.presence-compact-heading h2{align-items:center;gap:7px;margin:0;font-size:1rem;display:flex}.presence-compact-heading .status-badge{padding:4px 7px;font-size:.72rem}.presence-compact-people{grid-template-columns:repeat(auto-fit,minmax(94px,1fr));gap:7px;margin:0;padding:0;list-style:none;display:grid}.presence-compact-person{background:#f5f7f3;border:1px solid #e3e9e4;border-radius:8px;align-content:center;gap:4px;min-width:0;padding:8px 7px;display:grid}.presence-compact-icon{color:#5d6b63;flex:0 0 12px;place-items:center;width:12px;height:12px;display:grid}.presence-compact-person.home .presence-compact-icon{color:#12694f}.presence-compact-person.recently_offline .presence-compact-icon{color:#8a5e14}.presence-compact-name{justify-content:space-between;align-items:baseline;gap:4px;min-width:0;display:flex}.presence-compact-name strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.82rem;overflow:hidden}.presence-compact-name small{color:#57665d;flex:none;font-size:.58rem}.presence-compact-status{color:#57665d;align-items:center;gap:4px;font-size:.68rem;display:flex}.presence-compact-empty,.presence-compact-details{color:#65736c;font-size:.78rem}.presence-compact-empty{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.presence-compact-details summary{cursor:pointer;color:#425b4e;width:fit-content;min-height:32px;padding:7px 0}.presence-compact-details summary:focus-visible{outline-offset:3px;border-radius:3px;outline:2px solid #12694f}.presence-compact-details p{margin:8px 0 0;line-height:1.5}.presence-compact-details ul{overflow-wrap:anywhere;margin:8px 0 0;padding-left:18px;line-height:1.5}.costs-ui{min-width:0}.costs-ui button{min-height:44px}.costs-ui button:disabled{cursor:default;opacity:.6}.costs-ui p{margin:0}.costs-ui .costs-note,.costs-ui .costs-help{color:#65736c;line-height:1.45}.costs-ui .costs-note{margin-bottom:14px;font-size:.86rem}.costs-ui .costs-help{font-size:.78rem}.costs-ui .costs-page-nav,.costs-ui .costs-config-actions,.costs-ui .costs-editor-actions{flex-wrap:wrap;gap:8px;display:flex}.costs-ui .costs-page-nav{justify-content:space-between}.costs-ui .costs-error{color:#7d2727;overflow-wrap:anywhere;background:#fff0ee;border-radius:8px;gap:8px;margin:12px 0;padding:12px;font-size:.86rem;display:grid}.costs-ui .costs-error button{justify-self:start}.costs-ui .costs-empty{color:#526159;justify-items:start;gap:10px;padding:18px 0 6px;line-height:1.4;display:grid}.costs-ui .costs-card-state{gap:8px;font-size:.86rem;display:grid}.costs-ui .costs-card-state>span{color:#65736c}.costs-ui .costs-card-state button{justify-self:start}.costs-ui .costs-card-open{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;gap:7px;padding:0;display:grid}.costs-ui .costs-card-title{align-items:center;gap:7px;font-size:.88rem;font-weight:700;display:flex}.costs-ui .costs-card-title>span{margin-left:auto;font-size:1.3rem}.costs-ui .costs-card-main{flex-wrap:wrap;align-items:baseline;gap:3px 10px;display:flex}.costs-ui .costs-card-main>strong{color:#172f25;letter-spacing:-.035em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:clamp(1.45rem,5.5vw,1.85rem)}.costs-ui .costs-card-main>span,.costs-ui .costs-card-next{color:#526159;font-size:.78rem}.costs-ui .costs-card-next>span,.costs-ui .costs-card-plan{color:#718077;font-size:.72rem}.costs-ui .costs-month-switch{background:#eef3ed;border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:12px 0;padding:4px;display:grid}.costs-ui .costs-month-switch button{color:#53665b;font:inherit;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:1px solid #0000;border-radius:6px;place-content:center;gap:2px;padding:6px;font-size:.86rem;display:grid}.costs-ui .costs-month-switch button[aria-pressed=true]{color:#172f25;background:#fff;border-color:#dbe5dc;font-weight:700}.costs-ui .costs-month-switch small{font-size:.7rem;font-weight:400}.costs-ui .costs-month-total{padding:14px 0}.costs-ui .costs-month-total>div{gap:5px;display:grid}.costs-ui .costs-month-total>div>span{color:#526159;font-size:.85rem}.costs-ui .costs-month-total strong{color:#172f25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:1.8rem}.costs-ui .costs-month-total>p{color:#65736c;margin-top:7px;font-size:.78rem;line-height:1.45}.costs-ui .costs-item-list,.costs-ui .costs-config-list{gap:9px;display:grid}.costs-ui .costs-item,.costs-ui .costs-config-item{background:#fbfdf9;border:1px solid #e0e8df;border-radius:9px;min-width:0;padding:11px}.costs-ui .costs-item.is-settled{background:#f1f6f0}.costs-ui .costs-item-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;display:flex}.costs-ui .costs-item-heading h3{overflow-wrap:anywhere;min-width:0;margin:0;font-size:.95rem;line-height:1.4}.costs-ui .costs-item-heading>strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:1rem}.costs-ui .costs-item-heading small{text-align:right;color:#65736c;margin-top:3px;font-size:.7rem;font-weight:400;display:block}.costs-ui .costs-item-meta{color:#65736c;flex-wrap:wrap;gap:3px 12px;margin-top:6px;font-size:.76rem;line-height:1.4;display:flex}.costs-ui .costs-payment-details>summary{color:#315947;cursor:pointer;align-items:center;min-height:44px;font-size:.78rem;display:flex}.costs-ui .costs-payment-details>summary:before{content:"+";margin-right:7px}.costs-ui .costs-payment-details[open]>summary:before{content:"−"}.costs-ui .costs-payment-details>summary::-webkit-details-marker{display:none}.costs-ui .costs-payment-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:8px;display:grid}.costs-ui .costs-payment-options button{font:inherit;cursor:pointer;background:#fff;border:1px solid #d6e0d6;border-radius:6px;padding:6px;font-size:.78rem}.costs-ui .costs-payment-options button[aria-pressed=true]{color:#1a5439;opacity:1;background:#dff0e5;border-color:#91b39d;font-weight:700}.costs-ui .costs-add{margin:0 0 14px}.costs-ui .costs-editor{background:#f2f7f0;border:1px solid #dce7da;border-radius:10px;gap:12px;margin-bottom:16px;padding:13px;display:grid}.costs-ui .costs-editor h3{margin:0 0 2px;font-size:1rem}.costs-ui .costs-editor label,.costs-ui .costs-archive-confirm label{color:#43594a;gap:6px;min-width:0;font-size:.83rem;font-weight:650;display:grid}.costs-ui .costs-editor small{color:#65736c;font-size:.76rem;font-weight:400}.costs-ui .costs-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.costs-ui input,.costs-ui select{color:#17211d;width:100%;min-width:0;min-height:44px;font:inherit;background:#fff;border:1px solid #d5e0d4;border-radius:7px;padding:8px 10px;font-size:1rem}.costs-ui input:focus,.costs-ui select:focus{outline-offset:1px;outline:2px solid #358d74}.costs-ui .costs-payment-days{border:0;min-width:0;margin:0;padding:0}.costs-ui .costs-payment-days legend{margin-bottom:8px;padding:0;font-size:.85rem;font-weight:700}.costs-ui .costs-split-preview{background:#e5f0e3;border-radius:7px;flex-wrap:wrap;gap:6px 18px;padding:10px;font-size:.85rem;display:flex}.costs-ui .costs-split-preview>span{flex-wrap:wrap;gap:8px;display:flex}.costs-ui .costs-editor-effective{color:#526159;padding-top:4px;font-size:.8rem;line-height:1.4}.costs-ui .costs-config-item>p{margin-top:7px}.costs-ui .costs-config-days{color:#65736c;flex-wrap:wrap;gap:3px 12px;margin:7px 0 10px;font-size:.76rem;display:flex}.costs-ui .costs-archive-confirm{color:#594b29;border-top:1px solid #dddccf;gap:10px;margin-top:12px;padding-top:12px;display:grid}.costs-ui .costs-archive-confirm>strong{overflow-wrap:anywhere;font-size:.85rem}@media (width<=380px){.costs-ui .costs-editor{padding:10px}.costs-ui .costs-form-grid{grid-template-columns:minmax(0,1fr)}.costs-ui .costs-config-actions>button{flex:auto}.costs-ui .costs-month-switch button{font-size:.8rem}}.page-shell:has(>.shopping-page){overflow:clip}.shopping-page{--shopping-form-height:84px;--shopping-sticky-top:calc(env(safe-area-inset-top,0px) + var(--app-header-height,54px) + 4px);gap:12px}.shopping-page .shopping-main{gap:12px}.shopping-page .shopping-form{top:var(--shopping-sticky-top);z-index:20;background:#fff;gap:4px;margin-bottom:6px;padding:5px 0 3px;position:sticky;box-shadow:0 5px 8px -7px #17211d4d}.shopping-page .shopping-quick-add{grid-template-columns:minmax(0,1fr) 86px auto;align-items:center;gap:8px;display:grid}.shopping-page .shopping-form label{min-width:0}.shopping-page .shopping-form input,.shopping-page .shopping-form select,.shopping-page .shopping-item-edit select{min-height:44px;font-size:1rem}.shopping-page .shopping-add-button{min-height:44px;padding:0 12px}.shopping-page .shopping-add-options{color:#526159;min-width:0;font-size:.8rem}.shopping-page .shopping-add-options>summary{cursor:pointer;overflow-wrap:anywhere;padding:6px 0}.shopping-page .shopping-add-options>label{padding-bottom:8px}.shopping-page .shopping-category-list{gap:12px}.shopping-page .shopping-section{gap:4px}.shopping-page .shopping-section+.shopping-section{padding-top:8px}.shopping-page .shopping-section-header{gap:8px;padding:0 3px 3px}.shopping-page .shopping-section-header h3{color:#53665b;margin:0;font-size:.8rem;font-weight:750;line-height:1.35}.shopping-page .shopping-section-header>span{color:#65736c;font-size:.76rem}.shopping-page .shopping-items{gap:4px}.shopping-page .shopping-row{min-height:48px;scroll-margin-top:calc(var(--shopping-sticky-top) + var(--shopping-form-height) + 8px);grid-template-columns:44px minmax(0,1fr) auto 44px;gap:5px;padding:1px 2px}.shopping-page .shopping-check,.shopping-page .shopping-delete{flex-shrink:0;grid-column:auto;justify-self:stretch;width:44px;height:44px;min-height:44px;padding:0}.shopping-page .shopping-check{background:0 0}.shopping-page .shopping-check:hover:not(:disabled){background:#dff3e8}.shopping-page .shopping-delete{color:#718178;background:0 0;border-color:#0000}.shopping-page .shopping-delete:hover:not(:disabled){color:#a13e35;background:#fff0ec}.shopping-page .shopping-item-name{width:100%;min-height:44px;color:inherit;text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;min-width:0;padding:10px 0;display:block}.shopping-page .shopping-item-name strong{white-space:normal;overflow-wrap:anywhere;font-size:.94rem;line-height:1.35;display:block}.shopping-page .shopping-item-name:disabled{color:inherit;cursor:default}.shopping-page .shopping-row.needs-category-review{background:#fffdf7;border-color:#e5d9b9}.shopping-page .shopping-category-prompt{color:#7b622c;margin-top:3px;font-size:.74rem;line-height:1.35;display:block}.shopping-page .shopping-category-review{flex-wrap:wrap;grid-column:1/-1;gap:6px;padding:0 8px 8px;display:flex}.shopping-page .shopping-category-suggestion{color:#27543e;min-width:0;max-width:100%;min-height:44px;font:inherit;white-space:normal;overflow-wrap:anywhere;cursor:pointer;background:#fff;border:1px solid #d6e3d8;border-radius:7px;flex:115px;padding:7px 9px;font-size:.78rem;line-height:1.35}.shopping-page .shopping-category-suggestion:disabled{cursor:default;opacity:.56}.shopping-page .shopping-item-quantity{overflow-wrap:anywhere;text-align:center;font-variant-numeric:tabular-nums;background:#e9f0e7;border-radius:5px;max-width:6.5rem;padding:3px 5px;font-size:.78rem}.shopping-page .shopping-item-note{overflow-wrap:anywhere;padding-bottom:6px}.shopping-page .shopping-item-edit{border-top:1px solid #e3e9e4;flex-wrap:wrap;grid-column:1/-1;align-items:end;gap:8px;padding:4px 8px 8px;display:flex}.shopping-page .shopping-category-memory{color:#65736c;flex-basis:100%;margin:0;font-size:.76rem;line-height:1.4}.shopping-page .shopping-item-edit label{flex:1;gap:5px;min-width:0;display:grid}.shopping-page .shopping-item-edit select{color:#17211d;background:#fff;border:1px solid #dfe7df;border-radius:8px;width:100%;min-width:0;padding:0 6px}.shopping-page .shopping-item-edit .primary-action{min-height:44px;padding:0 10px}.shopping-page .shopping-action-error{background:#fff1ee;margin-bottom:6px}.shopping-page .shopping-history-panel{border-top:1px solid #e3e9e4;margin-top:14px;padding:0;display:block}.shopping-page .shopping-history-panel>summary{cursor:pointer;align-items:center;gap:12px;min-height:48px;font-weight:700;list-style:none;display:flex}.shopping-page .shopping-history-panel>summary::-webkit-details-marker{display:none}.shopping-page .shopping-history-panel>summary>span:first-child{flex:1;align-items:center;gap:8px;display:flex}.shopping-page .shopping-history-panel>summary:after{content:"+";text-align:center;width:14px;font-size:1.2rem;font-weight:400}.shopping-page .shopping-history-panel[open]>summary:after{content:"−"}.shopping-page .shopping-history-count{color:#65736c;font-size:.8rem}.shopping-page .shopping-history-list{gap:6px;padding-bottom:14px}.shopping-page .shopping-history-group>summary{min-height:44px;scroll-margin-top:calc(var(--shopping-sticky-top) + var(--shopping-form-height) + 8px);padding:8px 10px}.shopping-page .shopping-history-group>summary>div{flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:.86rem;display:flex}.shopping-page .shopping-history-row{grid-template-columns:minmax(0,1fr) auto;padding:8px 0}.shopping-page .shopping-history-row strong{white-space:normal;overflow-wrap:anywhere}.shopping-page .shopping-visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=600px){.shopping-page .shopping-quick-add{grid-template-columns:minmax(0,1fr) 72px 44px;gap:6px}.shopping-page .shopping-add-button{padding:0}.shopping-page .shopping-add-button span{display:none}.shopping-page .shopping-form input{padding:0 9px}.shopping-page .shopping-row{gap:3px}.shopping-page .shopping-item-quantity{max-width:4.5rem}}.shopping-sync-status{color:#4d6555;background:#f3f8f4;border:1px solid #dfe9e2;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 12px;padding:9px 11px;font-size:.75rem;display:flex}.shopping-sync-status>div{flex:180px;gap:3px;min-width:0;display:grid}.shopping-sync-status strong{color:#345340}.shopping-sync-status.is-offline{background:#fff7e8;border-color:#ead4a7}.shopping-sync-status.is-offline strong{color:#805d25}.shopping-sync-status button{min-height:44px}.shopping-sync-error{color:#86492c;overflow-wrap:anywhere}.shopping-sync-review{flex-basis:100%;min-width:0}.shopping-sync-review summary{cursor:pointer;padding:12px 0}.shopping-sync-review li{overflow-wrap:anywhere;margin:5px 0}.offline-shopping-shell{--app-header-height:64px;max-width:760px;margin:auto;padding:0 8px 24px}.offline-shopping-header{z-index:45;background:#f7faf7;border-bottom:1px solid #dfe7df;justify-content:space-between;align-items:center;gap:10px;height:64px;font-size:.88rem;display:flex;position:sticky;top:0}.offline-shopping-header strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.offline-shopping-header button{flex-shrink:0;min-height:44px}.offline-shopping-explanation{color:#64736a;margin:12px 4px;font-size:.8rem;line-height:1.5}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#17211d;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f7f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(#ffffffe0,#f5f7f200 320px),#f5f7f2;min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input,textarea{font:inherit}button{touch-action:manipulation}.app-frame{width:100%;min-height:100vh;padding:12px 12px 86px;overflow-x:clip}.app-header,.panel,.metric-card,.bottom-nav,.side-nav,.toast,.room-sheet,.secret-dialog{border:1px solid #1926201a;box-shadow:0 18px 44px #1f2f2914}.app-header{z-index:40;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffe6;border-radius:8px;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:12px;max-width:1280px;margin:0 auto 12px;padding:12px;display:grid;position:sticky;top:0}.app-header.admin{background:#f5f9f8f0}.header-brand,.header-actions,.header-info,.section-title,.status-badge,.text-button,.room-detail-status,.settings-list>div,.filter-placeholder,.admin-device-card>div{align-items:center;display:flex}.header-brand{grid-area:1/1;gap:11px;min-width:0}.header-brand>div{min-width:0}.brand-mark{color:#f6faf2;background:#17211d;border-radius:8px;place-items:center;width:44px;height:44px;font-weight:900;display:grid}.brand-mark.compact{width:42px;height:42px}.header-brand p,.section-title p,.metric-card p,.metric-card span,.header-tile span,.room-card small,.control-tile small,.scene-button small,.alert-card span,.state-box span,.admin-device-card span,.simple-list span,.empty-state span,.device-row span{color:#65736c;margin:0;font-size:.84rem}.header-brand h1,.section-title h2{letter-spacing:0;margin:0}.header-brand h1{font-size:1.14rem;line-height:1.1}.header-info{grid-column:1/-1;gap:8px;min-width:0;padding-bottom:2px;overflow-x:auto}.header-tile{color:#17211d;text-align:left;background:#f1f5ee;border:1px solid #1926200f;border-radius:8px;align-items:center;gap:8px;width:132px;min-width:132px;min-height:50px;padding:7px 10px;display:flex}.header-tile>div,.header-tile>span{min-width:0}.header-tile svg{flex:none}.header-tile strong{color:#17211d;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.98rem;line-height:1.1;display:block;overflow:hidden}.header-tile span,.header-tile small{color:#65736c;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.8rem;line-height:1.15;display:block;overflow:hidden}.calendar-card,.weather-card{cursor:pointer}.weather-card{border-color:#1926200f}.weather-card>span{color:inherit;gap:1px;display:grid}.status-tile{align-content:center;gap:2px;display:grid}.status-tile.good{background:#eaf5ee}.status-tile.good strong{color:#12694f}.status-tile.warning{background:#fff4df}.status-tile.warning strong{color:#8a4c00}.status-tile.info{background:#eef4f8}.status-tile.info strong{color:#244b5b}.agenda-popover,.weather-popover{background:#f8fbf6fa;border:1px solid #e1e8df;border-radius:8px;grid-column:1/-1;gap:10px;padding:12px;display:grid}.agenda-header,.agenda-row{grid-template-columns:minmax(0,.35fr) minmax(0,.65fr);align-items:center;gap:10px;display:grid}.agenda-header strong,.agenda-row strong{line-height:1.2;display:block}.agenda-header span,.agenda-row span,.agenda-empty,.agenda-note{color:#65736c;font-size:.86rem}.agenda-list{gap:6px;display:grid}.agenda-row{border-top:1px solid #e5ebe5;padding:8px 0}.agenda-row:first-child{border-top:0}.agenda-empty{gap:8px;padding:8px 0;display:grid}.agenda-note{margin:0}.calendar-connect-link{color:#f6faf2;background:#17211d;border-radius:8px;align-items:center;width:max-content;min-height:38px;padding:0 12px;font-weight:900;text-decoration:none;display:inline-flex}.weather-current,.forecast-row{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);align-items:center;gap:10px;display:grid}.weather-current strong,.forecast-row strong{line-height:1.2;display:block}.weather-current span,.forecast-row span,.forecast-empty,.weather-note{color:#65736c;font-size:.86rem}.weather-current-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.weather-current-grid span{color:#314039;background:#fff;border-radius:8px;min-height:34px;padding:8px;font-weight:800}.weather-note{margin:0}.forecast-list{gap:6px;display:grid}.forecast-row{border-top:1px solid #e5ebe5;padding:8px 0}.forecast-row:first-child{border-top:0}.forecast-row>div:last-child{text-align:right}.forecast-empty{padding:8px 0}.header-actions{flex-wrap:nowrap;grid-area:1/2;justify-self:end;gap:8px;width:max-content;min-width:max-content}.icon-button,.text-button,.primary-action,.secondary-action,.back-button{cursor:pointer;border:0;border-radius:8px;min-height:44px}.icon-button{color:#f6faf2;background:#17211d;place-items:center;width:44px;display:grid}.icon-button.secondary{color:#17211d;background:#eef2ec}.text-button,.primary-action,.secondary-action,.back-button{justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:800;display:inline-flex}.text-button,.primary-action{color:#f6faf2;background:#17211d}.secondary-action,.back-button{color:#24332d;background:#eef2ec}.app-body{max-width:1280px;margin:0 auto;display:grid}.app-frame.secret-isolated{background:linear-gradient(#fff8faf5,#faece8ad 48%),#fff8f6;padding-bottom:18px}.app-body.isolated{display:block}.app-frame.secret-isolated .panel{background:#fffcfce6;border-color:#8f315d21}.app-frame.secret-isolated .primary-action{color:#fff8fb;background:#702448}.app-frame.secret-isolated .secondary-action,.app-frame.secret-isolated .back-button{color:#5f263f;background:#fae8ee}.side-nav{display:none}.page-shell{min-width:0;overflow:hidden}.page-grid,.page-stack{gap:12px;display:grid}.home-grid{grid-template-columns:1fr}.panel,.metric-card{background:#ffffffeb;border-radius:8px}.panel{padding:15px}.inline-panel{box-shadow:none}.wide,.floorplan-panel{min-width:0}.section-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.section-title{gap:9px;min-width:0}.section-title h2{font-size:1rem}.status-badge{color:#526159;white-space:nowrap;background:#eef2ec;border-radius:999px;flex:none;min-height:28px;padding:0 9px;font-size:.8rem;font-weight:900}.status-badge.good{color:#12694f;background:#dff3e8}.status-badge.warning{color:#8a5e14;background:#f7ead2}.status-badge.info{color:#285f95;background:#e4eef8}.floorplan-stage{isolation:isolate;background:#f4f4ef;border-radius:8px;position:relative;overflow:hidden}.floorplan-stage img{object-fit:contain;width:100%;height:100%;display:block}.floorplan-fallback{color:#405149;text-align:center;background-color:#d9e1dd;background-image:linear-gradient(90deg,#ffffff40 1px,#0000 1px),linear-gradient(0deg,#ffffff40 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;place-content:center;gap:6px;height:100%;padding:18px;display:grid}.floorplan-grid{pointer-events:none;background:linear-gradient(#17211d00,#17211d0a);position:absolute;inset:0}.room-hotspot{z-index:1;color:#17211d;cursor:pointer;text-align:center;background:#ffffff14;border:1px solid #17211d14;border-radius:7px;justify-content:center;align-items:center;min-height:30px;padding:0;transition:background .16s,border-color .16s,box-shadow .16s;display:flex;position:absolute}.room-hotspot:hover,.room-hotspot:focus-visible{background:#ffffff47;border-color:#12694f5c;box-shadow:inset 0 0 0 1px #12694f24}.room-hotspot.warning{background:#fff7e733;border-color:#8a5e1473}.room-hotspot span:first-child{overflow-wrap:anywhere;background:#ffffffd6;border:1px solid #17211d1f;border-radius:6px;max-width:calc(100% - 8px);padding:3px 6px;font-size:.68rem;font-weight:900;line-height:1.05;box-shadow:0 5px 14px #17211d1f}.apartment-viewer{isolation:isolate;background:radial-gradient(circle at 20% 16%,#ffffffd6,#0000 28%),linear-gradient(145deg,#eef3ec,#f8faf6 54%,#e7eee9);border-radius:8px;min-height:clamp(420px,62vw,680px);position:relative;overflow:hidden}.apartment-model-stage,.apartment-canvas,.apartment-label-layer{width:100%;height:100%;position:absolute;inset:0}.apartment-canvas{display:block}.apartment-label-layer{pointer-events:none}.apartment-room-label{color:#17211d;cursor:pointer;pointer-events:auto;text-align:center;white-space:normal;background:#ffffffe6;border:1px solid #17211d24;border-radius:8px;max-width:150px;min-height:30px;padding:6px 10px;font-size:.78rem;font-weight:900;line-height:1.05;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s;transform:translateZ(0);box-shadow:0 9px 22px #17211d29}.apartment-room-label:hover,.apartment-room-label:focus-visible{background:#fff;border-color:#12694f6b;outline:none;transform:translateY(-1px)translateZ(0);box-shadow:0 12px 28px #12694f33}.apartment-room-label.warning{color:#65470f;background:#fff8ebf0;border-color:#8a5e145c}.apartment-secret-hotspot{cursor:pointer;opacity:0;pointer-events:auto;touch-action:manipulation;background:0 0;border:0;border-radius:50%;width:180px;height:128px}.apartment-model-overlay{z-index:2;color:#24332d;text-align:center;background:#f6f9f4b8;place-content:center;gap:10px;padding:18px;display:grid;position:absolute;inset:0}.apartment-model-overlay.error{color:#7d2727;background:#fff0f0e6}.apartment-model-overlay span:not(.loading-dot){color:#65736c;overflow-wrap:anywhere;font-size:.82rem}.quick-actions,.control-grid,.scene-grid,.metric-grid,.room-card-grid,.admin-card-list,.presence-grid{gap:10px;display:grid}.quick-actions,.control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.control-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.control-tile,.scene-button{color:#17211d;text-align:left;cursor:pointer;background:#f7faf5;border:1px solid #e3e9e4;border-radius:8px;align-items:center;gap:10px;min-height:64px;padding:11px;display:flex}.control-tile span,.scene-button span{gap:2px;min-width:0;display:grid}.control-tile.disabled,.scene-button.disabled{opacity:.64}.scene-grid.large{grid-template-columns:1fr}.presence-admin-list,.presence-event-list{margin-top:10px}.alert-stack,.simple-list,.settings-list,.scene-list.compact{gap:9px;display:grid}.alert-card,.simple-list>div,.settings-list>div,.admin-device-card{border-top:1px solid #e5ebe5}.alert-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;padding:12px 0;display:grid}.alert-card.warning{color:#65470f}.room-card{background:#fff;border:1px solid #e3e9e4;border-radius:8px;gap:10px;padding:12px;display:grid}.room-card>button:first-child{min-height:56px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.room-card>button span,.room-card-meta,.room-detail-status{flex-wrap:wrap;gap:8px;display:flex}.room-card-meta span,.room-detail-status span{color:#526159;background:#eef2ec;border-radius:999px;min-height:28px;padding:5px 8px;font-size:.82rem;font-weight:800}.state-box{text-align:center;background:#ffffffe0;border-radius:8px;place-content:center;gap:8px;min-height:180px;padding:20px;display:grid}.state-box.error{color:#7d2727;background:#fff0f0}.loading-dot{background:#159d8c;border-radius:50%;width:12px;height:12px;margin:0 auto;animation:1s infinite alternate pulse}@keyframes pulse{0%{opacity:.55;transform:scale(.8)}to{opacity:1;transform:scale(1.25)}}.sheet-backdrop{z-index:70;background:#131c1852;align-items:end;display:grid;position:fixed;inset:0}.room-sheet{overscroll-behavior:contain;background:#fff;border-radius:8px 8px 0 0;gap:14px;width:min(100%,720px);max-height:92dvh;margin:0 auto;padding:12px 16px 18px;display:grid;overflow-y:auto}.sheet-close-button{color:#385347;cursor:pointer;background:#fff;border:1px solid #dfe6df;border-radius:8px;flex:0 0 44px;min-width:44px;min-height:44px;font-size:1.5rem}.apartment-cleaning-badge{color:#28593c;background:#e3efe5;border-radius:50%;place-items:center;min-width:19px;height:19px;margin-left:5px;padding:0 4px;font-size:.65rem;display:inline-grid}.apartment-cleaning-badge.is-due{color:#704b13;background:#f8dfaa}.room-card .room-cleaning-summary{color:#345840;text-align:left;cursor:pointer;background:#f1f7f2;border:1px solid #dce9df;border-radius:8px;align-items:center;gap:8px;min-height:44px;padding:8px 10px;font-size:.78rem;display:flex}.room-card .room-cleaning-summary.is-due{color:#805c26;background:#fff8e8;border-color:#ead3a5}.secret-backdrop{align-items:center;padding:16px}.secret-dialog{background:linear-gradient(145deg,#fffffff5,#fff2f6f0),#fff;border-radius:8px;gap:14px;width:min(100%,430px);margin:0 auto;padding:12px 16px 18px;display:grid}.sheet-handle{background:#d8dfd8;border-radius:999px;width:52px;height:5px;margin:0 auto}.sheet-header{justify-content:space-between;gap:12px;display:flex}.sheet-header p,.sheet-header h2{margin:0}.sheet-header p{color:#65736c;font-size:.88rem}.duration-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.duration-grid button{cursor:pointer;background:#f7faf5;border:1px solid #e3e9e4;border-radius:8px;min-height:48px;font-weight:800}.backlight-editor{border-top:1px solid #e5ebe5;gap:12px;margin-top:12px;padding-top:12px;display:grid}.backlight-editor label,.secret-input-label{color:#526159;gap:7px;font-size:.86rem;font-weight:900;display:grid}.secret-input-label input{color:#24181f;background:#fffafb;border:1px solid #ead2d8;border-radius:8px;width:100%;min-height:48px;padding:0 12px}.secret-input-label input:focus{border-color:#8f315d;outline:3px solid #8f315d24}.secret-error{color:#8a4f00;margin:0;font-size:.9rem;font-weight:800}.secret-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.secret-dialog-copy{color:#775967;margin:0;line-height:1.5}.secret-page{max-width:1180px;margin:0 auto}.secret-hero{background:linear-gradient(135deg,#fffffffa,#ffeef4ed 52%,#fdf4e9e6),#fff;border:1px solid #8f315d2e;border-radius:8px;align-items:start;gap:14px;padding:16px;display:grid;box-shadow:0 18px 44px #60203d1c}.secret-hero p,.secret-hero h2,.secret-hero span{margin:0}.secret-hero p{color:#9a3b63;font-size:.88rem;font-weight:900}.secret-hero h2{color:#321a27;margin-top:3px;font-size:clamp(1.6rem,4vw,2.45rem);line-height:1.05}.secret-hero span{color:#755869;max-width:680px;margin-top:6px;line-height:1.55;display:block}.secret-tabs{background:#fffafbe0;border:1px solid #8f315d24;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;display:grid}.secret-tabs button{color:#76586a;cursor:pointer;background:0 0;border:0;border-radius:8px;min-height:44px;font-weight:900}.secret-tabs button.active{color:#fff8fb;background:#702448}.secret-workspace{gap:14px;display:grid}.secret-toolbar{gap:12px;display:grid}.secret-toolbar input{color:#2d1a24;background:#fffafb;border:1px solid #ead2d8;border-radius:8px;width:100%;min-height:46px;padding:0 12px}.secret-toolbar input:focus,.secret-note textarea:focus,.secret-bucket-item textarea:focus{border-color:#8f315d;outline:3px solid #8f315d24}.secret-category-stack{gap:10px;display:grid}.secret-category{background:#fffafbc7;border:1px solid #ead2d8;border-radius:10px;display:grid;overflow:hidden}.secret-category.expanded{background:#fffffff0;border-color:#dbaebb}.secret-category-toggle{width:100%;min-height:56px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:10px;padding:12px 14px;display:grid}.secret-category-toggle:hover{background:#fff4f7}.secret-category-toggle:focus-visible{outline-offset:-3px;outline:3px solid #8f315d33}.secret-category-title{color:#6f254a;font-size:1rem;font-weight:900;line-height:1.3}.secret-category-meta{color:#866b78;white-space:nowrap;font-size:.78rem;font-weight:800}.secret-category-chevron{border-bottom:2px solid #702448;border-right:2px solid #702448;width:10px;height:10px;transition:transform .16s;transform:rotate(45deg)translate(-2px,-2px)}.secret-category.expanded .secret-category-chevron{transform:rotate(225deg)translate(-1px,-1px)}.secret-category>.secret-item-list{padding:0 10px 10px}.secret-item-list,.secret-compact-list,.secret-bucket-list,.secret-like-grid{gap:10px;display:grid}.secret-preference-item,.secret-shared-item,.secret-bucket-item,.secret-like-card{background:#fffffff0;border:1px solid #edd7dd;border-radius:8px;gap:11px;min-width:0;padding:12px;display:grid}.secret-item-copy{gap:4px;min-width:0;display:grid}.secret-item-copy strong{color:#2f1a25;overflow-wrap:anywhere;line-height:1.2}.secret-item-copy span,.secret-item-copy p{color:#7d6471;margin:0;font-size:.86rem;line-height:1.45}.secret-scenario-badge{color:#702448;background:#f7dce6;border-radius:999px;width:max-content;max-width:100%;padding:4px 8px;font-size:.76rem;font-weight:900}.secret-preference-controls,.secret-direction-block,.secret-direction-title{display:grid}.secret-preference-controls{gap:12px}.secret-direction-block{border-top:1px solid #f0dce2;gap:8px;padding-top:10px}.secret-direction-block:first-child{border-top:0;padding-top:0}.secret-direction-title{gap:2px}.secret-direction-title strong{color:#4a2334}.secret-direction-title span{color:#866b78;font-size:.82rem;line-height:1.35}.secret-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.secret-status-grid button{color:#4b303d;cursor:pointer;background:#fff8fa;border:1px solid #ecd3dc;border-radius:8px;min-height:38px;font-size:.82rem;font-weight:900}.secret-status-grid button.active{color:#fff8fb;background:#702448;border-color:#702448}.secret-status-grid button:disabled{cursor:default;opacity:.62}.secret-note{color:#76586a;gap:6px;font-size:.84rem;font-weight:900;display:grid}.secret-note textarea,.secret-bucket-item textarea{resize:vertical;color:#2d1a24;background:#fffafb;border:1px solid #ead2d8;border-radius:8px;width:100%;min-height:72px;padding:10px 11px;line-height:1.35}.secret-summary-grid{gap:12px;display:grid}.secret-section{background:#ffffffeb;border:1px solid #edd7dd;border-radius:8px;gap:10px;padding:14px;display:grid}.secret-section .section-header{margin-bottom:0}.secret-section-positive{background:#fafffbf0;border-color:#d9e9de}.secret-section-try{background:#fffcf4f0;border-color:#ead9ba}.secret-section-boundary{background:#fff7f9f5;border-color:#e1bdc8}.secret-boundary-divider{color:#5f213e;background:#f8e5eb;border-left:5px solid #8f315d;border-radius:8px;grid-column:1/-1;gap:3px;padding:13px 15px;display:grid}.secret-boundary-divider span{color:#7d5367;font-size:.84rem;line-height:1.4}.secret-result-groups{gap:9px;display:grid}.secret-result-category{background:#ffffffdb;border:1px solid #ead2d8;border-radius:9px;overflow:hidden}.secret-result-category>summary{color:#6f254a;cursor:pointer;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:10px;min-height:54px;padding:11px 13px;list-style:none;display:grid}.secret-result-category>summary::-webkit-details-marker{display:none}.secret-result-category>summary>span:first-child{font-weight:900}.secret-result-category>summary small{color:#866b78;white-space:nowrap;font-weight:800}.secret-result-category[open]{background:#fff;border-color:#dbaebb}.secret-result-category[open]>summary{background:#fff4f7;border-bottom:1px solid #f0dce2}.secret-result-category[open] .secret-category-chevron{transform:rotate(225deg)translate(-1px,-1px)}.secret-result-category>.secret-compact-list{padding:10px}.secret-random-picker{background:linear-gradient(135deg,#fff8fbfa,#f8e8efeb),#fff8fb;border:1px solid #dcb7c4;border-radius:10px;gap:12px;padding:14px;display:grid}.secret-random-picker>div:first-child{gap:3px;display:grid}.secret-random-picker>div:first-child strong{color:#5f213e;font-size:1.05rem}.secret-random-picker>div:first-child span,.secret-random-picker>small{color:#7d6471;font-size:.84rem;line-height:1.4}.secret-random-result{background:#fff;border:1px solid #c889a2;border-radius:9px;gap:12px;padding:14px;display:grid;box-shadow:0 12px 28px #7024481a}.secret-random-result>p{color:#6f5261;margin:0;line-height:1.45}.secret-supply-list{gap:7px;display:grid}.secret-idea-list{background:#fff7e8;border-radius:8px;gap:8px;padding:12px;display:grid}.secret-idea-list>strong{color:#6a4220}.secret-idea-list ol{color:#725c48;gap:7px;margin:0;padding-left:20px;font-size:.86rem;line-height:1.45;display:grid}.secret-supply-list>strong{color:#5f213e}.secret-supply-list ul{flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;display:flex}.secret-supply-list li{color:#6f254a;background:#f7e4eb;border-radius:999px;padding:6px 9px;font-size:.8rem;font-weight:800}.secret-random-result .secret-random-checkin{color:#6c5846;background:#f6f1e9;border-radius:8px;padding:10px 11px;font-size:.84rem}.secret-shared-item{box-shadow:none}.secret-bucket-item{background:#fffafb}.secret-bucket-item.done{background:#f8eef2}.secret-bucket-item>label{grid-template-columns:32px minmax(0,1fr);align-items:start;gap:10px;display:grid}.secret-bucket-item input[type=checkbox]{accent-color:#702448;width:22px;height:22px;margin-top:2px}.secret-like-card{background:linear-gradient(135deg,#fffffffa,#ffeff5f0),#fff}.backlight-editor input[type=color]{background:#fff;border:1px solid #dfe7df;border-radius:8px;width:100%;min-height:48px;padding:4px}.backlight-editor input[type=range]{accent-color:#17211d;width:100%}.primary-action:disabled,.secondary-action:disabled,.back-button:disabled,.control-tile:disabled{cursor:default;opacity:.64}.login-panel{max-width:620px;margin:0 auto}.login-panel p{color:#526159;line-height:1.55}.login-form{gap:12px;margin:14px 0;display:grid}.login-form label{color:#526159;gap:6px;font-weight:800;display:grid}.login-form input{color:#17211d;background:#fff;border:1px solid #dfe7df;border-radius:8px;width:100%;min-height:46px;padding:0 12px}.login-form input:focus{border-color:#159d8c;outline:3px solid #159d8c29}.form-error{color:#7d2727;background:#fff0f0;border-radius:8px;padding:10px 12px;font-weight:800}.form-note{color:#526159;margin:0;line-height:1.5}.account-summary{background:#f8fbf6;border:1px solid #e3e9e4;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin:14px 0;padding:12px;display:flex}.account-summary div{gap:3px;display:grid}.account-summary span{color:#65736c;font-size:.84rem}.login-actions{flex-wrap:wrap;gap:10px;display:flex}.shopping-locked,.shopping-form{gap:12px;display:grid}.shopping-input-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr);gap:10px;display:grid}.shopping-form label{color:#526159;gap:6px;font-weight:800;display:grid}.shopping-form input,.shopping-form select{color:#17211d;background:#fff;border:1px solid #dfe7df;border-radius:8px;width:100%;min-height:46px;padding:0 12px}.shopping-form input:focus,.shopping-form select:focus{border-color:#159d8c;outline:3px solid #159d8c29}.shopping-category-list,.shopping-items,.shopping-history-list{gap:10px;display:grid}.shopping-section{gap:8px;display:grid}.shopping-section+.shopping-section{border-top:1px solid #e5ebe5;padding-top:12px}.shopping-section-header,.shopping-row,.shopping-history-row{align-items:center;display:grid}.shopping-section-header{grid-template-columns:minmax(0,1fr) auto;gap:10px}.shopping-row{background:#f8fbf6;border:1px solid #e3e9e4;border-radius:8px;grid-template-columns:42px minmax(0,1fr) 44px;gap:10px;min-height:62px;padding:9px}.shopping-row>div,.shopping-history-row>div{gap:2px;min-width:0;display:grid}.shopping-row strong,.shopping-history-row strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shopping-row span,.shopping-history-row span,.shopping-history-row small{color:#65736c;font-size:.84rem}.shopping-check{color:#12694f;cursor:pointer;background:#dff3e8;border:0;border-radius:8px;place-items:center;width:42px;height:42px;display:grid}.shopping-check:disabled,.shopping-delete:disabled{cursor:default;opacity:.56}.shopping-history-row{border-top:1px solid #e5ebe5;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 0}.shopping-history-row:first-child{border-top:0}.shopping-history-group{background:#fbfdf9;border:1px solid #e3e9e4;border-radius:9px;overflow:hidden}.shopping-history-group>summary{cursor:pointer;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:12px;min-height:58px;padding:11px 13px;list-style:none;display:grid}.shopping-history-group>summary::-webkit-details-marker{display:none}.shopping-history-group>summary>div{gap:3px;display:grid}.shopping-history-group>summary span{color:#65736c;font-size:.82rem}.shopping-history-chevron{border-bottom:2px solid #12694f;border-right:2px solid #12694f;width:10px;height:10px;transition:transform .16s;transform:rotate(45deg)translate(-2px,-2px)}.shopping-history-group[open] .shopping-history-chevron{transform:rotate(225deg)translate(-1px,-1px)}.shopping-history-items{border-top:1px solid #e5ebe5;padding:0 13px 8px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card{align-items:center;gap:12px;min-height:104px;padding:14px;display:flex}.metric-icon{background:#eef2ec;border-radius:8px;place-items:center;width:44px;height:44px;display:grid}.metric-card strong{margin:2px 0;font-size:1.5rem;display:block}.tone-teal .metric-icon{color:#0b7569;background:#dff3ef}.tone-blue .metric-icon{color:#275f9f;background:#e3edf8}.tone-amber .metric-icon{color:#946512;background:#f5ead2}.tone-green .metric-icon{color:#3d7f3f;background:#e2f1dd}.admin-kv{grid-template-columns:minmax(120px,auto) minmax(0,1fr);align-items:center;gap:10px 14px;display:grid}.admin-kv span{color:#65736c}.admin-kv strong{overflow-wrap:anywhere}.admin-device-card{gap:7px;padding:12px 0;display:grid}.admin-device-card>div{justify-content:space-between;gap:10px}.filter-placeholder{color:#65736c;gap:9px}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.summary-strip>div{background:#f3f6f1;border-radius:8px;padding:12px}.summary-strip strong{overflow-wrap:anywhere;font-size:1.45rem;display:block}.summary-strip span{color:#65736c}.trusted-device-card strong,.trusted-device-card span{overflow-wrap:anywhere}.bottom-nav{z-index:50;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:7px;display:grid;position:fixed;bottom:10px;left:10px;right:10px}.bottom-nav button,.side-nav button{color:#526159;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;gap:3px;min-height:54px;font-size:.8rem;font-weight:800;display:grid}.bottom-nav button.active,.side-nav button.active{color:#f6faf2;background:#17211d}.toast{z-index:90;color:#f6faf2;text-align:center;background:#17211d;border-radius:8px;max-width:520px;margin:0 auto;padding:13px 15px;font-weight:800;position:fixed;bottom:88px;left:14px;right:14px}.empty-state{background:#f3f6f1;border-radius:8px;gap:5px;padding:14px;display:grid}.device-row{border-top:1px solid #e7ebe4;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:11px 0;display:grid}.device-meta{justify-items:end;gap:5px;display:grid}.device-meta small{border-radius:999px;padding:5px 8px;font-weight:800}.device-meta small.online{color:#12694f;background:#dcf1e9}.device-meta small.offline{color:#6d7270;background:#edf0ee}@media (width>=760px){.app-frame{padding:18px}.app-header{grid-template-columns:minmax(250px,1fr) auto auto}.header-info{grid-column:auto}.header-brand,.header-actions{grid-area:auto}.app-body{grid-template-columns:210px minmax(0,1fr);gap:16px}.app-body.isolated{grid-template-columns:1fr}.side-nav{background:#ffffffe6;border-radius:8px;height:max-content;padding:8px;display:block;position:sticky;top:92px}.side-nav nav{gap:6px;display:grid}.side-nav button{grid-template-columns:auto minmax(0,1fr);justify-content:start;place-items:center start;padding:0 12px;font-size:.92rem}.bottom-nav{display:none}.home-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr)}.floorplan-panel,.wide{grid-column:span 2}.room-card-grid,.scene-grid.large,.metric-grid,.scene-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-card-list{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-device-card{background:#fff;border:1px solid #e5ebe5;border-radius:8px;padding:12px}.sheet-backdrop{place-items:center end;padding:18px}.room-sheet{border-radius:8px;width:min(420px,100%);margin:0}.toast{bottom:20px}.secret-hero{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:20px}.secret-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.secret-toolbar{grid-template-columns:minmax(0,1fr) minmax(220px,.34fr);align-items:start}.secret-toolbar .section-header{margin-bottom:0}.secret-preference-item{grid-template-columns:minmax(220px,1fr) minmax(320px,1.05fr);align-items:start}.secret-preference-item .secret-note{grid-column:1/-1}.secret-status-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.secret-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.secret-bucket-item{grid-template-columns:minmax(0,1fr) minmax(240px,.45fr);align-items:start}.secret-like-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1120px){.room-card-grid,.scene-grid.large,.metric-grid,.secret-like-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-card-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=520px){.app-header{align-items:start}.header-actions .text-button{width:44px;padding:0;font-size:0}.header-info{scrollbar-width:none}.header-info::-webkit-scrollbar{display:none}.quick-actions,.control-grid,.control-grid.compact,.metric-grid,.summary-strip,.shopping-input-grid,.duration-grid,.secret-actions,.agenda-header,.agenda-row,.weather-current,.forecast-row{grid-template-columns:1fr}.weather-current-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-row>div:last-child{text-align:left}.floorplan-stage{min-height:0}.room-hotspot{min-height:26px}.room-hotspot span:first-child{padding:2px 4px;font-size:.58rem}.alert-card{grid-template-columns:auto minmax(0,1fr)}.shopping-history-row{grid-template-columns:1fr}.alert-card .status-badge{grid-column:2;justify-self:start}.admin-kv{grid-template-columns:1fr}}.login-only-shell{background:var(--app-background,#f3f5f7);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-only-shell>*{width:min(100%,520px)}.compact-layout .page-grid,.compact-layout .page-stack{gap:8px}.compact-layout .panel{padding:11px}.compact-layout .section-header{margin-bottom:9px}.home-grid>.presence-compact{grid-column:1/-1}.home-actions .scene-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.planned-scenes{border-top:1px solid #e6ebe7;margin-top:12px;padding-top:10px}.planned-scenes summary{cursor:pointer;font-size:.88rem;font-weight:700}.planned-scenes p{color:#65736c;font-size:.82rem}.connection-notice{color:#72551e;background:#fff0d5;border-radius:8px;margin-bottom:10px;padding:10px 12px;font-size:.86rem}button:focus-visible,a:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #277d68}@media (width<=759px){.compact-layout.app-frame{padding:6px 8px calc(78px + env(safe-area-inset-bottom))}.app-frame{padding-bottom:calc(86px + env(safe-area-inset-bottom))}.bottom-nav{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.toast{bottom:calc(82px + env(safe-area-inset-bottom))}.apartment-viewer{min-height:clamp(300px,85vw,380px)}.apartment-room-label{max-width:88px;min-height:24px;padding:4px 6px;font-size:.65rem;font-weight:700;box-shadow:0 2px 6px #17211d1f}}.apartment-label-toggle{z-index:3;color:#324e40;cursor:pointer;background:#fffffff0;border:1px solid #d8e2dc;border-radius:8px;min-height:36px;padding:0 10px;font-size:.75rem;position:absolute;bottom:8px;right:8px}
