:root{--bg:#f6f7fb;--page-bg:radial-gradient(circle at 0% 0%, #f7fbff 0%, #f6f7fb 45%, #eef1f8 100%);--surface:#fff;--surface-soft:#f0f4ff;--text:#18243d;--muted:#5c6b89;--accent:#0f62fe;--accent-soft:#dbe8ff;--border:#d8dfed;--positive:#127247;--negative:#b42318;--success-bg:#ecfdf3;--success-border:#b7e4c7;--error-bg:#fff1f2;--error-border:#f5c2c7;--skeleton-a:#e8edf8;--skeleton-b:#f2f6ff;--tabbar-frost-a:#f6f7fbf5;--tabbar-frost-b:#f6f7fbb3;--font-size-base:16px;--font-size-sm:14px;--font-size-xs:13px;--font-sans:"Inter", "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif}[data-theme=dark]{--bg:#0f1728;--page-bg:radial-gradient(1100px 620px at 8% -15%, #75a7ff1a 0%, #75a7ff00 60%), linear-gradient(180deg, #111a2f 0%, #0f1728 56%, #101a2d 100%);--surface:#162038;--surface-soft:#1c2a48;--text:#e8efff;--muted:#a5b3d1;--accent:#75a7ff;--accent-soft:#243a66;--border:#2e426d;--positive:#56d68a;--negative:#ff8a82;--success-bg:#1d3b2e;--success-border:#2f7152;--error-bg:#442429;--error-border:#7f3b44;--skeleton-a:#213153;--skeleton-b:#293c66;--tabbar-frost-a:#0f1728f2;--tabbar-frost-b:#0f1728b8}*{box-sizing:border-box}html{background:var(--bg);margin:0;padding:0}body{background:var(--page-bg);min-height:100vh;color:var(--text);font-family:var(--font-sans), sans-serif;font-size:var(--font-size-base);margin:0;line-height:1.4}a{color:inherit;text-decoration:none}.container{max-width:64vw;margin:0 auto;padding:24px}.container-narrow{max-width:680px}.page-main{padding-top:32px}.page-main-wide{padding-top:48px}input,select,textarea,button{max-width:100%;font:inherit}.control{border:1px solid var(--border);width:100%;min-height:42px;font-size:var(--font-size-base);color:var(--text);background:var(--surface);border-radius:10px;padding:10px 12px;line-height:1.25}.control-file-upload{background:color-mix(in srgb, var(--surface-soft) 42%, var(--surface) 58%);padding:8px 10px}.control-file-upload::file-selector-button{border:1px solid color-mix(in srgb, var(--accent-soft) 52%, var(--border) 48%);background:color-mix(in srgb, var(--accent-soft) 56%, var(--surface) 44%);min-height:34px;color:var(--text);cursor:pointer;border-radius:8px;margin-right:10px;padding:0 12px;font-weight:600;transition:background-color .2s,border-color .2s}.control-file-upload::-webkit-file-upload-button{border:1px solid color-mix(in srgb, var(--accent-soft) 52%, var(--border) 48%);background:color-mix(in srgb, var(--accent-soft) 56%, var(--surface) 44%);min-height:34px;color:var(--text);cursor:pointer;border-radius:8px;margin-right:10px;padding:0 12px;font-weight:600;transition:background-color .2s,border-color .2s}.control-file-upload::file-selector-button:hover{background:color-mix(in srgb, var(--accent-soft) 76%, var(--surface) 24%);border-color:color-mix(in srgb, var(--accent) 26%, var(--border) 74%)}.control-file-upload::-webkit-file-upload-button:hover{background:color-mix(in srgb, var(--accent-soft) 76%, var(--surface) 24%);border-color:color-mix(in srgb, var(--accent) 26%, var(--border) 74%)}.household-documents-uploaded-title{margin-top:18px}.field{gap:6px;display:grid}.field-label{font-weight:600}.muted{color:var(--muted)}.m-0{margin:0}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.m-1{margin:4px}.mt-1{margin-top:4px}.mb-1{margin-bottom:4px}.m-2{margin:8px}.mt-2{margin-top:8px}.mb-2{margin-bottom:8px}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-capitalize{text-transform:capitalize}.text-positive{color:var(--positive)}.text-negative{color:var(--negative)}.page-section{gap:18px;display:grid}.card-grid{gap:12px;display:grid}.card-grid-tight{gap:8px}.card-grid-micro{gap:6px}.card-subpanel{padding:12px}.split-metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.split-metrics-members{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.row-between-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.card-start{align-content:start}.grid-start{align-content:start;justify-items:start}.panel-gap-6{gap:6px}.panel-gap-8{gap:8px}.btn-block{width:100%}.item-card-max{width:min(100%,360px)}.field-flex-1{flex:1}.field-flex-2{flex:2}.field-min-240{flex:240px}.title-with-icon{align-items:center;gap:8px;display:inline-flex}.inline-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.inline-row-tight{gap:8px}.inline-row>*{min-width:0}.inline-row>.field{flex:240px}.inline-row>.control{flex:260px;min-width:0}.btn-inline{width:fit-content}.link-accent{color:var(--accent);word-break:break-word}.mobile-actions{flex-wrap:wrap;gap:12px;display:flex}.form-panel{border:1px solid var(--border);border-radius:10px;padding:10px}.compact-item-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.compact-item-main{gap:2px;min-width:0;display:grid}.compact-action-form{flex:none;margin:0}.postpone-row{flex-wrap:nowrap;align-items:center;gap:10px;display:flex}.postpone-row>.control{flex:auto;min-width:0}.postpone-row-dashboard{align-items:flex-end}.postpone-row-dashboard .btn-icon-only{width:42px;min-width:42px;padding:0}.input-compact{flex:0 0 90px;width:90px}.panel-actions{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.panel-actions>*{min-width:0}.panel-actions>form{align-items:stretch;display:flex}.panel-actions>form:not(.inline-row)>.btn{width:100%}.panel-actions .btn-inline{min-width:148px}.panel-actions>.details-panel{flex:none;min-width:148px}.panel-actions>.details-panel[open]{flex:100%}.panel-actions-meta{flex:100%;margin:0;font-size:14px}.task-pending-actions{align-items:stretch}.task-action-form{align-items:stretch;display:flex}.task-action-btn{justify-content:center;min-width:150px}.expense-action-btn{justify-content:center;width:168px;min-width:168px}.task-postpone-row{min-width:310px}.task-postpone-row>.task-postpone-input{flex:170px}.task-postpone-trigger{white-space:nowrap}.household-member-actions{flex-wrap:nowrap;align-items:end;gap:10px;display:flex}.household-member-card{border-radius:9px;gap:6px;padding:8px}.household-member-card .row-between{gap:8px}.household-member-card .badge{padding:3px 8px;font-size:11px}.household-member-card .household-member-actions,.household-member-card .household-alias-form{gap:8px}.household-member-card .control{min-height:38px;padding:8px 10px}.household-member-card .btn{min-height:38px;padding:8px 12px}.household-alias-form{flex:auto;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:10px;min-width:0;display:grid}.household-action-btn{justify-content:center;min-width:160px}.household-leave-form{grid-column:1/-1}.household-fixed-income-form{gap:10px;display:grid}.household-fixed-income-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.details-panel{border:1px solid var(--border);background:var(--surface);border-radius:10px}.details-panel>summary{cursor:pointer;width:100%;min-height:42px;font-weight:600;font-size:var(--font-size-base);color:var(--text);justify-content:space-between;align-items:center;padding:10px 14px;line-height:1.25;list-style:none;display:flex}.details-panel>summary:after{content:"▾";color:var(--muted);margin-left:.2rem;font-size:1.4rem;line-height:1;transition:transform .2s}.details-panel>summary::-webkit-details-marker{display:none}.details-panel[open]{padding:10px}.details-panel[open]>summary:after{transform:rotate(180deg)}.details-panel[open]>summary{min-height:auto;margin-bottom:10px;padding:0}.panel-actions .details-panel>summary{justify-content:center}.check-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.check-inline{align-items:flex-start;gap:8px;display:flex}.check-row input[type=checkbox],.check-inline input[type=checkbox]{appearance:none;border:1.5px solid var(--border);background:var(--surface);cursor:pointer;border-radius:6px;flex:none;place-items:center;width:18px;height:18px;margin:0;transition:border-color .2s,background-color .2s,transform .15s;display:inline-grid}.check-row input[type=checkbox]:after,.check-inline input[type=checkbox]:after{content:"";box-sizing:border-box;transform-origin:50%;border-bottom:2px solid #0000;border-left:2px solid #0000;width:8px;height:5px;transition:border-color .2s;display:block;transform:rotate(-45deg)}.check-row input[type=checkbox]:checked,.check-inline input[type=checkbox]:checked{border-color:var(--accent);background:var(--accent)}.check-row input[type=checkbox]:checked:after,.check-inline input[type=checkbox]:checked:after{border-bottom-color:#fff;border-left-color:#fff}.check-row input[type=checkbox]:focus-visible,.check-inline input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.check-row input[type=checkbox]:active,.check-inline input[type=checkbox]:active{transform:translateY(1px)}.check-row input[type=checkbox]:disabled,.check-inline input[type=checkbox]:disabled{opacity:.6;cursor:not-allowed}.expense-split-fieldset{border-radius:12px}.expense-split-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.expense-split-row{gap:8px;display:grid}.expense-split-values-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.task-assignee-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;display:grid}.task-assignee-option{position:relative}.task-assignee-input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.task-assignee-content{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;transition:border-color .2s,background-color .2s,transform .15s;display:flex}.task-assignee-check{border:1.5px solid var(--border);background:var(--surface);border-radius:6px;flex:none;place-items:center;width:18px;height:18px;transition:border-color .2s,background-color .2s;display:inline-grid}.task-assignee-check:after{content:"";box-sizing:border-box;transform-origin:50%;border-bottom:2px solid #0000;border-left:2px solid #0000;width:8px;height:5px;transition:border-color .2s;display:block;transform:rotate(-45deg)}.task-assignee-label{font-weight:600;line-height:1.2}.task-assignee-option:hover .task-assignee-content{background:var(--surface-soft)}.task-assignee-input:focus-visible+.task-assignee-content{outline:2px solid var(--accent);outline-offset:2px}.task-assignee-input:checked+.task-assignee-content{border-color:var(--accent);background:var(--accent-soft)}.task-assignee-input:checked+.task-assignee-content .task-assignee-check{border-color:var(--accent);background:var(--accent)}.task-assignee-input:checked+.task-assignee-content .task-assignee-check:after{border-bottom-color:#fff;border-left-color:#fff}.task-assignee-input:active+.task-assignee-content{transform:translateY(1px)}.legend-strong{padding:0 6px;font-weight:700}.task-form-shell{width:100%}.task-form-main-grid{gap:12px;display:grid}.hero-title{margin:14px 0 10px;font-size:clamp(2rem,6vw,2.5rem)}.hero-title-mark{align-items:center;gap:10px;display:inline-flex}.hero-brand-mark{flex:none}.lead-text{max-width:720px;line-height:1.5}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px}.feedback-message{margin:0}.feedback-success{border-color:var(--success-border);background:var(--success-bg);color:var(--positive)}.feedback-error{border-color:var(--error-border);background:var(--error-bg);color:var(--negative)}.grid{gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.task-status-badge{border:1px solid #0000}.task-status-badge-active{color:#0f4cb7;background:#e8f1ff;border-color:#b8d1ff}.task-status-badge-completed{color:#18673d;background:#eafaf1;border-color:#bfe8cf}[data-theme=dark] .task-status-badge-active{background:color-mix(in srgb, #2e5fb3 34%, var(--surface) 66%);border-color:color-mix(in srgb, #5b87d8 48%, var(--border) 52%);color:#e7f0ff}[data-theme=dark] .task-status-badge-completed{background:color-mix(in srgb, #2a7a4a 34%, var(--surface) 66%);border-color:color-mix(in srgb, #58b07c 48%, var(--border) 52%);color:#ecfff2}.calendar-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.calendar-weekday{text-align:center;font-size:var(--font-size-sm);color:var(--muted);font-weight:600}.calendar-grid-month,.calendar-grid-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.calendar-view-switch{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;display:grid}.calendar-view-switch .btn{width:100%}.calendar-filter-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;display:grid}.calendar-top-controls{grid-template-columns:minmax(240px,2fr) minmax(360px,3fr);align-items:stretch;gap:12px;width:100%;display:grid}.calendar-filter-controls{align-content:start;gap:10px;width:100%;display:grid}.calendar-filter-toggle{border:1px solid var(--border);background:var(--surface);min-height:42px;color:var(--text);font-size:var(--font-size-base);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-weight:600;display:inline-flex}.calendar-filter-toggle:hover{background:var(--surface-soft)}.calendar-filter-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.calendar-filter-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);width:100%;min-height:42px;font-size:var(--font-size-base);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-weight:600;line-height:1.2;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.calendar-filter-indicator{border:1px solid;border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.calendar-filter-chip.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.calendar-filter-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.calendar-filter-chip:not(.is-active):hover{background:var(--surface-soft)}.calendar-period-toolbar{justify-content:flex-start;width:100%;display:flex}.calendar-period-switch{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:100%;display:grid}.calendar-period-label{text-align:center;min-width:0;color:var(--text);letter-spacing:.01em;background:var(--surface-soft);border:1px solid var(--border);border-radius:10px;justify-content:center;align-items:center;min-height:42px;padding:0 10px;font-size:clamp(15px,2.4vw,18px);font-weight:700;display:inline-flex}.calendar-period-label-btn{cursor:pointer}.calendar-period-label-btn:disabled{cursor:not-allowed;opacity:.72}.calendar-period-label-btn:hover{border-color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent 55%)}.calendar-month-picker-native{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.month-picker-root{width:100%;position:relative}.month-picker-trigger{justify-content:space-between;align-items:center;gap:8px;width:100%;display:inline-flex}.month-picker-trigger-inline{justify-content:center;gap:8px;width:100%;padding-right:34px;position:relative}.month-picker-trigger-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.month-picker-trigger-inline .month-picker-trigger-label{text-align:center;width:100%}.month-picker-trigger-inline svg{pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.month-picker-popover{z-index:55;border:1px solid color-mix(in srgb, var(--border) 84%, transparent 16%);background:var(--surface);width:min(320px,100vw - 24px);box-shadow:0 14px 30px #00000042, 0 2px 10px color-mix(in srgb, var(--accent-soft) 34%, transparent 66%);border-radius:12px;gap:10px;padding:12px;display:grid;position:absolute;top:calc(100% + 8px);left:0}.month-picker-header{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.month-picker-header>strong{text-align:center;font-size:15px}.month-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.month-picker-month{border:1px solid color-mix(in srgb, var(--border) 84%, transparent 16%);background:color-mix(in srgb, var(--surface-soft) 52%, transparent 48%);min-height:36px;color:var(--text);text-transform:lowercase;border-radius:8px;font-weight:600}.month-picker-month:hover{border-color:var(--accent)}.month-picker-month.is-selected{border-color:color-mix(in srgb, var(--accent) 65%, var(--border) 35%);background:color-mix(in srgb, var(--accent) 14%, var(--surface-soft) 86%)}.select-popover-root{width:100%;position:relative}.select-popover-trigger{justify-content:space-between;align-items:center;gap:8px;width:100%;display:inline-flex}.select-popover-trigger-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-popover-menu{z-index:57;border:1px solid color-mix(in srgb, var(--border) 84%, transparent 16%);background:var(--surface);max-height:min(280px,46vh);box-shadow:0 14px 30px #00000042, 0 2px 10px color-mix(in srgb, var(--accent-soft) 34%, transparent 66%);border-radius:12px;gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.select-popover-option{border:1px solid color-mix(in srgb, var(--border) 84%, transparent 16%);background:color-mix(in srgb, var(--surface-soft) 52%, transparent 48%);width:100%;min-height:36px;color:var(--text);text-align:left;border-radius:8px;padding:8px 10px;font-weight:600}.select-popover-option:hover{border-color:var(--accent)}.select-popover-option.is-selected{border-color:color-mix(in srgb, var(--accent) 65%, var(--border) 35%);background:color-mix(in srgb, var(--accent) 14%, var(--surface-soft) 86%)}.date-picker-root{width:100%;position:relative}.date-picker-trigger{justify-content:space-between;align-items:center;gap:8px;width:100%;display:inline-flex}.date-picker-trigger-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.date-picker-trigger-label.is-placeholder{color:var(--muted)}.date-picker-popover{z-index:56;border:1px solid color-mix(in srgb, var(--border) 84%, transparent 16%);background:var(--surface);width:min(320px,100vw - 24px);box-shadow:0 14px 30px #00000042, 0 2px 10px color-mix(in srgb, var(--accent-soft) 34%, transparent 66%);border-radius:12px;gap:10px;padding:12px;display:grid;position:absolute;top:calc(100% + 8px);left:0}.date-picker-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.date-picker-header>strong{font-size:15px;font-weight:700}.date-picker-header-actions{align-items:center;gap:4px;display:inline-flex}.date-picker-header-actions .btn-icon-only{width:34px;min-width:34px;min-height:34px}.date-picker-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.date-picker-weekdays>span{text-align:center;color:var(--muted);text-transform:lowercase;font-size:12px;font-weight:700}.date-picker-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.date-picker-day{border:1px solid color-mix(in srgb, var(--border) 84%, transparent 16%);background:color-mix(in srgb, var(--surface-soft) 52%, transparent 48%);min-height:36px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.date-picker-day:hover{border-color:var(--accent)}.date-picker-day.is-outside{opacity:.58}.date-picker-day.is-selected{border-color:color-mix(in srgb, var(--accent) 65%, var(--border) 35%);background:color-mix(in srgb, var(--accent) 14%, var(--surface-soft) 86%)}.date-picker-footer{grid-template-columns:1fr;gap:8px;display:grid}.date-picker-footer .btn{min-height:34px;padding:6px 10px}.date-picker-today-btn{justify-content:center;width:100%}.date-picker-clear-btn{justify-self:start}.btn-period-arrow{min-width:42px;padding-inline:10px}.calendar-day-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;align-content:start;gap:8px;min-height:130px;padding:8px;display:grid}.calendar-day-header{align-items:flex-start}.calendar-day-create-anchor{position:relative}.calendar-day-create-trigger{border-radius:999px;width:30px;min-width:30px;min-height:30px}.calendar-day-create-menu{border:1px solid var(--border);background:var(--surface);z-index:30;border-radius:10px;gap:4px;min-width:160px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 24px #0000002e}.calendar-day-create-option{color:var(--text);text-align:left;cursor:pointer;font-size:var(--font-size-sm);background:0 0;border:0;border-radius:8px;padding:8px 10px;font-weight:600}.calendar-day-create-option:hover{background:var(--surface-soft)}.calendar-day-create-option:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.calendar-day-today{border-color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent 55%)}.calendar-day-empty{border:1px dashed var(--border);background:0 0;border-radius:12px;min-height:130px}.calendar-item{border:1px solid var(--border);border-radius:10px;gap:2px;padding:6px 8px;display:grid}.calendar-item-interactive{cursor:pointer}.calendar-item-task{background:color-mix(in srgb, var(--accent-soft) 65%, var(--surface) 35%)}.calendar-item-expense{background:color-mix(in srgb, #ffe9d6 70%, var(--surface) 30%)}.calendar-item-event{background:color-mix(in srgb, #e4f7e8 70%, var(--surface) 30%)}.calendar-item-expiry{background:color-mix(in srgb, #ffe6e1 70%, var(--surface) 30%)}[data-theme=dark] .calendar-item-expense{background:color-mix(in srgb, #9a5a1a 42%, var(--surface) 58%);border-color:color-mix(in srgb, #cc7a2d 48%, var(--border) 52%);color:#fff3e6}[data-theme=dark] .calendar-item-event{background:color-mix(in srgb, #1f7a44 38%, var(--surface) 62%);border-color:color-mix(in srgb, #37a562 44%, var(--border) 56%);color:#ecfff2}[data-theme=dark] .calendar-item-expiry{background:color-mix(in srgb, #8a2c2c 40%, var(--surface) 60%);border-color:color-mix(in srgb, #cc6f6f 45%, var(--border) 55%);color:#ffecec}[data-theme=dark] .calendar-item-expense .muted,[data-theme=dark] .calendar-item-event .muted,[data-theme=dark] .calendar-item-expiry .muted{color:inherit;opacity:.9}.btn{cursor:pointer;min-height:42px;font-size:var(--font-size-base);border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-weight:600;line-height:1.2;display:inline-flex}.btn svg{flex:none}.btn:disabled{opacity:.72;cursor:not-allowed}.btn-spinner{animation:.9s linear infinite spin}.btn-primary{background:var(--accent);color:#fff}.btn-ghost{border-color:var(--border);background:var(--surface)}.btn-danger{border-color:var(--error-border);background:color-mix(in srgb, var(--error-bg) 78%, var(--surface) 22%);color:var(--negative)}.modal-overlay{z-index:60;background:color-mix(in srgb, var(--bg) 68%, #000 32%);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-shell{border:1px solid color-mix(in srgb, var(--border) 86%, var(--text) 14%);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 58%, transparent 42%) 0%, transparent 48%), var(--surface);width:min(100%,720px);max-height:min(88vh,840px);box-shadow:0 18px 48px #00000047, 0 4px 16px color-mix(in srgb, var(--accent-soft) 48%, transparent 52%);border-radius:16px;grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.modal-shell-sm{width:min(100%,480px)}.modal-shell-md{width:min(100%,640px)}.modal-shell-lg{width:min(100%,860px)}.modal-header{border-bottom:1px solid color-mix(in srgb, var(--border) 88%, transparent 12%);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.modal-title{line-height:1.2}.modal-content{gap:14px;min-height:0;padding:18px;display:grid;overflow:auto}.modal-footer{border-top:1px solid color-mix(in srgb, var(--border) 88%, transparent 12%);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 18px 18px;display:flex}.modal-close-btn{aspect-ratio:1;width:42px;min-width:42px;height:42px;padding:0}.modal-form{gap:14px;display:grid}.modal-form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.confirm-form-fields{border:1px solid color-mix(in srgb, var(--border) 84%, transparent 16%);background:color-mix(in srgb, var(--surface-soft) 48%, transparent 52%);border-radius:12px;padding:12px 14px}.confirm-scope-picker{border:0;gap:10px;padding:0;display:grid}.confirm-scope-picker .field-label{font-weight:700}.topbar{z-index:50;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent 8%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0;box-shadow:0 8px 20px #00000029}.topbar-inner{justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar-brand{overflow-wrap:anywhere;align-items:center;gap:8px;font-size:28px;line-height:1.2;display:inline-flex}.btn-icon-only{width:42px;min-width:42px;padding:0}.topbar-brand-mark{flex:none;width:34px;height:34px}.topbar-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;display:flex}.topbar-mobile-actions{align-items:center;gap:8px;display:none}.topbar-mobile-logout{display:none}.notification-bell{position:relative}.notification-bell-trigger{width:42px;min-width:42px;padding:0;position:relative}.notification-bell-badge{border:1px solid var(--surface);background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-6px;right:-6px}.notification-bell-menu{border:1px solid var(--border);background:var(--surface);z-index:40;border-radius:12px;gap:10px;width:min(360px,100vw - 24px);max-width:calc(100vw - 24px);padding:10px;display:grid;position:absolute;top:calc(100% + 8px);left:auto;right:0;box-shadow:0 12px 26px #0003}.notification-bell-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.notification-bell-mark-all,.notification-bell-item-link{color:var(--accent);font-weight:700;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:0;padding:0}.notification-bell-list{gap:8px;display:grid}.notification-bell-item{border:1px solid var(--border);border-radius:10px;gap:6px;padding:8px;display:grid}.notification-bell-item.is-unread{border-color:color-mix(in srgb, var(--accent-soft) 70%, var(--border) 30%);background:color-mix(in srgb, var(--accent-soft) 24%, var(--surface) 76%)}.notification-bell-item-text{font-size:var(--font-size-sm);margin:0}.notification-bell-item-actions{justify-content:flex-end;display:flex}.notification-bell-footer{border-top:1px solid var(--border);justify-content:flex-end;padding-top:4px;display:flex}.notification-preferences-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.notification-preferences-list{border:1px solid var(--border);border-radius:12px;overflow:hidden}.notification-preferences-row{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.notification-preferences-row:last-child{border-bottom:0}.notification-preferences-label{min-width:0;font-weight:600}.notification-switch{flex:none;justify-content:center;align-items:center;width:46px;height:28px;display:inline-flex;position:relative}.notification-switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.notification-switch-track{border:1px solid var(--border);background:var(--surface-soft);border-radius:999px;width:100%;height:100%;transition:background-color .2s,border-color .2s;display:block;position:relative}.notification-switch-track:after{content:"";background:var(--surface);border:1px solid color-mix(in srgb, var(--border) 86%, transparent 14%);border-radius:999px;width:20px;height:20px;transition:transform .2s;position:absolute;top:50%;left:2px;transform:translateY(-50%);box-shadow:0 1px 2px #0000002e}.notification-switch input:checked+.notification-switch-track{background:color-mix(in srgb, var(--accent) 64%, var(--surface) 36%);border-color:color-mix(in srgb, var(--accent) 74%, var(--surface) 26%)}.notification-switch input:checked+.notification-switch-track:after{transform:translate(18px,-50%)}.notification-switch input:focus-visible+.notification-switch-track{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent 55%);outline-offset:2px}.notification-row-unread{border-color:color-mix(in srgb, var(--accent-soft) 72%, var(--border) 28%);background:color-mix(in srgb, var(--accent-soft) 22%, var(--surface) 78%)}.shopping-list-tabs{flex-wrap:wrap;gap:8px;display:flex}.shopping-list-tab{border:1px solid var(--border);color:var(--text);background:var(--surface);font-size:var(--font-size-sm);border-radius:999px;justify-content:center;align-items:center;padding:8px 12px;font-weight:600;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.shopping-list-tab:hover{background:var(--surface-soft);border-color:var(--accent-soft)}.shopping-list-tab-active{background:var(--accent-soft);border-color:var(--accent-soft);color:color-mix(in srgb, var(--text) 82%, var(--accent) 18%)}.topbar-link{color:var(--muted);border:1px solid #0000;border-radius:10px;align-items:center;gap:6px;padding:6px 8px;transition:background-color .2s,border-color .2s,color .2s;display:inline-flex}.topbar-link:hover{background:var(--surface-soft);border-color:var(--border);color:var(--text)}.topbar-link-active{color:var(--accent);border-color:var(--accent-soft);background:var(--surface-soft)}.topbar-logout{padding:8px 12px}.app-shell-main{padding-bottom:24px}.mobile-tabbar{display:none}.theme-toggle-btn{border:1px solid var(--border);background:var(--surface);min-height:42px;color:var(--text);font-size:var(--font-size-base);border-radius:10px;align-items:center;gap:6px;padding:8px 12px;font-weight:600;line-height:1.2;transition:background-color .2s,border-color .2s,transform .15s;display:inline-flex}.locale-switcher{border:1px solid color-mix(in srgb, var(--border) 86%, var(--text) 14%);background:var(--surface);min-height:42px;color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:4px;transition:border-color .2s,box-shadow .2s,transform .15s;display:inline-flex;box-shadow:0 8px 20px #0000001a}.locale-switcher:hover{border-color:color-mix(in srgb, var(--accent-soft) 66%, var(--border) 34%);box-shadow:0 10px 24px #00000024}.locale-switcher-icon{width:30px;height:30px;color:var(--accent);background:linear-gradient(180deg, color-mix(in srgb, var(--accent-soft) 74%, transparent 26%) 0%, color-mix(in srgb, var(--accent-soft) 56%, var(--surface) 44%) 100%);border:1px solid color-mix(in srgb, var(--accent-soft) 80%, var(--border) 20%);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.locale-switcher-anchor{display:inline-flex;position:relative}.locale-switcher-trigger{background:color-mix(in srgb, var(--surface-soft) 62%, var(--surface) 38%);color:var(--text);cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:0 10px 0 8px;transition:background-color .2s,border-color .2s;display:inline-flex}.locale-switcher-trigger:hover{background:color-mix(in srgb, var(--surface-soft) 78%, var(--surface) 22%)}.locale-switcher-trigger:focus-visible{border-color:color-mix(in srgb, var(--accent-soft) 70%, var(--border) 30%);outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent 55%);outline-offset:1px}.locale-switcher-caption{letter-spacing:.03em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.locale-switcher-current{font-size:var(--font-size-sm);font-weight:700}.locale-switcher-chevron{color:var(--muted)}.locale-switcher-menu{border:1px solid var(--border);background:var(--surface);z-index:30;border-radius:10px;gap:4px;min-width:168px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 10px 24px #0000002e}.locale-switcher-option{color:var(--text);text-align:left;cursor:pointer;font-size:var(--font-size-sm);background:0 0;border:0;border-radius:8px;padding:8px 10px;font-weight:600}.locale-switcher-option:hover{background:var(--surface-soft)}.locale-switcher-option:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.locale-switcher-option.is-active{background:color-mix(in srgb, var(--accent-soft) 54%, var(--surface) 46%);color:color-mix(in srgb, var(--text) 82%, var(--accent) 18%)}.theme-toggle-btn:hover{background:var(--surface-soft);border-color:var(--accent-soft)}.theme-toggle-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle-btn:active{transform:translateY(1px)}.app-tour-layer{z-index:120;pointer-events:none;position:fixed;inset:0}.app-tour-backdrop{background:#060c1870;position:absolute;inset:0}.app-tour-highlight{border:2px solid color-mix(in srgb, var(--accent) 72%, #fff 28%);pointer-events:none;background:0 0;border-radius:12px;position:fixed;box-shadow:0 0 0 9999px #060c1870}.app-tour-tooltip{border:1px solid color-mix(in srgb, var(--border) 82%, transparent 18%);background:var(--surface);pointer-events:auto;border-radius:12px;gap:10px;width:min(340px,100vw - 28px);padding:12px;display:grid;position:fixed;box-shadow:0 14px 30px #00000047}.app-tour-tooltip-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.app-tour-tooltip-header span{font-size:var(--font-size-sm);color:var(--muted)}.app-tour-tooltip-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.app-tour-tooltip-actions-right{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.app-tour-tooltip-actions-right .btn{width:100%}@media (max-width:1050px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.container{padding:18px}}@media (min-width:1000px){.task-form-shell{max-width:100%}.task-form-main-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px 12px}.task-field-title{grid-column:1}.task-field-description{grid-area:2/1/4;grid-template-rows:auto 1fr;align-self:stretch;display:grid}.task-field-mode,.task-field-specific,.task-field-recurrence,.task-field-assignees{grid-column:2}.task-field-specific,.task-field-recurrence{grid-row:2}.task-field-assignees{grid-row:3}}.task-description-control{resize:vertical;height:100%;min-height:180px}@media (max-width:800px){.container{max-width:1080px;padding:16px}.page-main{padding-top:24px}.page-main-wide{padding-top:28px}.container-narrow{max-width:100%}.grid-3{grid-template-columns:1fr}.topbar-inner{align-items:center;gap:10px}.topbar-brand{flex:1;min-width:0;font-size:20px}.topbar-brand span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar-nav{display:none}.topbar-mobile-actions{display:inline-flex}.notification-bell-trigger{width:38px;min-width:38px;min-height:38px;padding:0}.notification-bell-menu{top:calc(env(safe-area-inset-top) + 72px);width:auto;max-width:none;position:fixed;left:8px;right:8px}.topbar-mobile-logout{display:block}.split-metrics-members{grid-template-columns:1fr}.topbar-mobile-logout .topbar-logout{min-height:38px;padding:8px 10px}.topbar-mobile-logout .topbar-logout span{display:none}.theme-toggle-btn{min-height:38px;padding:8px 10px}.locale-switcher{gap:6px;min-height:38px;padding:3px}.locale-switcher-icon{width:28px;height:28px}.locale-switcher-caption{display:none}.locale-switcher-trigger{min-height:30px;padding:0 8px 0 6px}.locale-switcher-current{font-size:13px}.locale-switcher-menu{min-width:148px}.mobile-tabbar{z-index:40;padding:8px max(12px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));background:linear-gradient(to top, var(--tabbar-frost-a), var(--tabbar-frost-b));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;position:fixed;bottom:0;left:0;right:0}.modal-overlay{place-items:center;padding:12px}.modal-shell,.modal-shell-sm,.modal-shell-md,.modal-shell-lg{border-radius:14px;width:100%;max-height:min(92vh,860px)}.modal-header,.modal-content{padding:14px}.modal-footer{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;gap:10px;padding:12px 14px 14px;display:grid}.modal-form-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;gap:10px;display:grid}.modal-form-actions>*,.modal-footer>*{width:100%;margin:0}.modal-footer .btn{width:100%}.mobile-tabbar-inner{border:1px solid var(--border);background:var(--surface);border-radius:16px;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;width:100%;max-width:680px;margin:0 auto;padding:6px;display:grid}.mobile-tabbar-link{min-height:54px;color:var(--muted);text-align:center;border-radius:10px;align-content:center;justify-items:center;gap:4px;padding:6px 4px;font-size:11px;font-weight:600;display:grid}.mobile-tabbar-link-active{color:var(--accent);background:var(--accent-soft)}.app-shell-main{padding-bottom:96px}.calendar-grid-month{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-grid-week{grid-template-columns:1fr;gap:10px}.calendar-weekdays{display:none}.calendar-day-card,.calendar-day-empty{min-height:120px}.calendar-day-create-trigger{width:34px;min-width:34px;min-height:34px}.calendar-day-create-menu{min-width:148px}.calendar-day-empty{display:none}.btn-inline{width:100%}.mobile-actions{flex-direction:column}.mobile-actions .btn,.inline-row .btn{width:100%}.calendar-view-switch,.calendar-filter-row,.calendar-period-toolbar,.calendar-period-switch{flex-wrap:nowrap;gap:6px}.calendar-top-controls{grid-template-columns:1fr;gap:8px}.calendar-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-view-switch .btn{width:100%;min-height:38px;font-size:var(--font-size-sm);padding:8px 10px}.calendar-filter-chip,.calendar-filter-toggle{min-height:38px;font-size:var(--font-size-sm);padding:8px 10px}.btn-period-arrow{min-width:36px;min-height:38px;padding-inline:8px}.calendar-period-label{min-width:74px;min-height:38px;font-size:14px}.postpone-row{flex-wrap:wrap;align-items:stretch}.postpone-row>.control{flex:100%}.postpone-row .btn{width:100%}.postpone-row-dashboard{flex-wrap:nowrap}.postpone-row-dashboard>.control{flex:auto}.postpone-row-dashboard .btn,.postpone-row-dashboard .btn-icon-only{width:42px;min-width:42px}.input-compact{flex:100%;width:100%}.panel-actions{grid-template-columns:1fr;gap:8px;display:grid}.panel-actions>*,.panel-actions .btn{width:100%}.panel-actions .btn-inline,.task-action-btn,.task-postpone-row{min-width:0}.household-member-actions{flex-flow:column wrap;align-items:stretch}.household-alias-form{grid-template-columns:1fr}.household-action-btn{width:100%;min-width:0}.household-fixed-income-actions{flex-direction:column;align-items:stretch}.details-panel>summary{justify-content:center}}@media (max-width:920px){.stack-on-tablet{grid-template-columns:1fr;gap:10px;display:grid}.stack-on-tablet>*{width:100%}.task-field-title{order:1}.task-field-description{order:2}.task-field-mode{order:3}.task-field-specific,.task-field-recurrence{order:4}.task-field-assignees{order:5}}@media (max-width:560px){.card{padding:14px}.form-panel{padding:8px}.topbar-brand{font-size:18px}.topbar-brand-mark{width:30px;height:30px}.mobile-tabbar-link{font-size:10px}}.loading-pulse{animation:1.2s ease-in-out infinite pulse}.skeleton-line{background:linear-gradient(90deg, var(--skeleton-a) 0%, var(--skeleton-b) 50%, var(--skeleton-a) 100%);background-size:200% 100%;border-radius:8px;animation:1.4s linear infinite shimmer}.skeleton-line-title{width:min(62%,360px);height:22px}.skeleton-line-subtitle{width:min(55%,240px);height:18px}.skeleton-line-body{width:100%;height:14px}.skeleton-line-body.short{width:min(72%,440px)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.85}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}
