:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:calc(18px * var(--text-scale,1))/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:calc(16px * var(--text-scale,1))}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{width:100%;min-height:100vh;margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--bg:#18181b;--surface:#27272a;--surface-hover:#323237;--text:#f4f4f5;--text-muted:#a1a1aa;--border:#3f3f46;--primary:#646cff;--primary-hover:#747bff;--primary-text:#fff;--danger:#ef4444;--radius:6px;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;min-height:100vh}h1,h2,h3,h4,h5,h6{color:var(--text);margin-top:0;margin-bottom:1rem;line-height:1.2}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}p{color:var(--text);margin-top:0;margin-bottom:1rem;line-height:1.6}small{color:var(--text-muted)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}form{flex-direction:column;gap:1rem;display:flex}label{color:var(--text);margin-bottom:.4rem;font-size:.9rem;font-weight:500;display:block}input,select,textarea{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);outline:none;padding:.7rem .8rem;transition:border-color .2s,background-color .2s}input:hover,select:hover,textarea:hover{border-color:var(--text-muted)}input:focus,select:focus,textarea:focus{border-color:var(--primary)}input::placeholder,textarea::placeholder{color:var(--text-muted)}textarea{resize:vertical;min-height:100px}button{font:inherit;color:var(--primary-text);background:var(--primary);border-radius:var(--radius);cursor:pointer;border:none;padding:.7rem 1rem;font-weight:500;transition:background-color .2s,transform .1s}button:hover{background:var(--primary-hover)}button:active{transform:translateY(1px)}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}.container{width:100%;max-width:1200px;margin:0 auto;padding:2rem}.center-page{justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:2rem}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;padding:2rem}.text-muted{color:var(--text-muted)}.form-error{color:var(--danger)}.form-success{color:var(--primary-hover)}.text-center{text-align:center}.full-width{width:100%}.row{align-items:center;gap:1rem;display:flex}.column{flex-direction:column;gap:1rem;display:flex}.app-content.with-menu{padding-top:4rem}.menu-toggle{z-index:30;background:var(--surface);border:1px solid var(--border);flex-direction:column;justify-content:center;align-items:center;gap:5px;width:2.75rem;height:2.75rem;padding:0;display:flex;position:fixed;top:1rem;left:1rem}.menu-toggle:hover{background:var(--surface-hover)}.home-button{z-index:30;width:2.75rem;height:2.75rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-content:center;align-items:center;display:flex;position:fixed;top:1rem;left:4.25rem}.home-button:hover{background:var(--surface-hover);text-decoration:none}.home-button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.home-button.active{color:var(--primary);border-color:var(--primary)}.menu-toggle-bar{background:var(--text);border-radius:1px;width:1.25rem;height:2px;transition:transform .25s,opacity .25s;display:block}.menu-toggle[aria-expanded=true] .menu-toggle-bar:first-child{transform:translateY(7px)rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-toggle-bar:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] .menu-toggle-bar:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.side-menu{z-index:20;background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:1rem;width:260px;max-width:80vw;padding:4.5rem 1rem 1rem;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.side-menu.open{transform:translate(0)}.side-menu-backdrop{z-index:10;opacity:0;pointer-events:none;background:#00000080;transition:opacity .25s;position:fixed;inset:0}.side-menu-backdrop.open{opacity:1;pointer-events:auto}.side-menu-user{overflow-wrap:anywhere;margin:0;padding:0 .75rem;font-size:.9rem}.side-menu-links{flex-direction:column;flex:1;gap:.25rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.side-menu-links a{color:var(--text);border-radius:var(--radius);padding:.6rem .75rem;display:block}.side-menu-links a:hover{background:var(--surface-hover);text-decoration:none}.side-menu-links a.active{color:var(--primary-text);background:var(--primary)}.side-menu-logout{width:100%}@media (prefers-reduced-motion:reduce){.menu-toggle-bar,.side-menu,.side-menu-backdrop{transition:none}}.button-secondary{color:var(--text);border:1px solid var(--border);background:0 0}.button-secondary:hover{background:var(--surface-hover)}.button-danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.button-danger:hover{color:var(--primary-text);background:var(--danger)}.button-small{padding:.35rem .7rem;font-size:.85rem}.badge{color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.8rem}.household-page{max-width:760px}.household-create{margin-bottom:2rem}.household-create h2{font-size:1.15rem}.household-list{flex-direction:column;gap:1.5rem;display:flex}.household-card h3{color:var(--text-muted);margin:1.5rem 0 .75rem;font-size:1rem}.household-header{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.household-name{overflow-wrap:anywhere;margin:0}.household-inline-form{flex-flow:wrap;align-items:flex-end;gap:.75rem;display:flex}.household-grow{flex:1;min-width:10rem}.member-list{border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:0;list-style:none}.member-row{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.6rem .8rem;display:flex}.member-row+.member-row{border-top:1px solid var(--border)}.member-permission{width:auto;padding:.35rem .5rem}.household-invite{gap:0}.household-card .form-error{margin:1rem 0 0}.household-footer{justify-content:flex-end;margin-top:1.5rem;display:flex}.modal-backdrop{z-index:40;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:480px;max-height:calc(100vh - 2rem);overflow-y:auto}.modal h2{margin-bottom:.25rem}.modal-subtitle{margin-bottom:.5rem;font-size:.9rem}.modal-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.checkbox-label{cursor:pointer;align-items:center;gap:.5rem;margin:0;display:flex}.checkbox-label input{width:auto}.event-time-fields{flex-direction:column;gap:1rem;display:flex}.event-time-fields .row{gap:.5rem}.event-description{white-space:pre-wrap}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.calendar-page{padding-bottom:6rem}.cal-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1rem;display:flex}.cal-title{flex:100%;margin:0;font-size:1.6rem}.cal-toolbar-group{gap:.5rem;display:flex}.cal-toolbar button{padding:.5rem .85rem}.cal-select{width:auto;max-width:100%;padding:.5rem .7rem}.cal-view-switch{border:1px solid var(--border);border-radius:var(--radius);margin-left:auto;display:flex;overflow:hidden}.cal-view-switch button{color:var(--text);background:0 0;border-radius:0}.cal-view-switch button+button{border-left:1px solid var(--border)}.cal-view-switch button:hover{background:var(--surface-hover)}.cal-view-switch button.active{color:var(--primary-text);background:var(--primary)}.cal-body{transition:opacity .2s}.cal-body.loading{opacity:.6}.cal-event{text-align:left;width:100%;color:var(--text);background:color-mix(in srgb, var(--primary) 22%, transparent);border-left:3px solid var(--primary);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;margin-top:2px;padding:.15rem .4rem;font-size:.8rem;font-weight:400;display:block;overflow:hidden}.cal-event:hover{background:color-mix(in srgb, var(--primary) 35%, transparent)}.cal-event.all-day{color:var(--primary-text);background:var(--primary)}.cal-event-time{color:var(--text-muted);margin-right:.35rem}.cal-event.all-day .cal-event-time{color:inherit}.cal-day-number{color:var(--text);background:0 0;border-radius:999px;padding:.1rem .4rem;font-size:.85rem}.cal-day-number:hover{background:var(--surface-hover)}.today .cal-day-number,.cal-mini-day.today{color:var(--primary-text);background:var(--primary)}.cal-month{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.cal-month-weekday{text-align:center;border-bottom:1px solid var(--border);padding:.5rem;font-size:.8rem}.cal-month-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-width:0;min-height:6.5rem;padding:.3rem}.cal-month-cell:nth-child(7n){border-right:none}.cal-month-cell:nth-last-child(-n+7){border-bottom:none}.cal-month-cell.outside{background:var(--bg)}.cal-month-cell.outside .cal-day-number{color:var(--text-muted)}.cal-more{color:var(--text-muted);background:0 0;margin-top:2px;padding:0 .4rem;font-size:.75rem}.cal-more:hover{color:var(--text);background:0 0}.cal-timegrid{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.cal-timegrid-row{border-bottom:1px solid var(--border);display:grid}.cal-timegrid-scroll{max-height:60vh;position:relative;overflow-y:auto}.cal-timegrid-scroll .cal-timegrid-row:last-child{border-bottom:none}.cal-day-heading{color:var(--text);border-left:1px solid var(--border);background:0 0;border-radius:0;flex-direction:column;align-items:center;gap:.15rem;padding:.5rem .25rem;display:flex}.cal-day-heading:hover{background:var(--surface-hover)}.cal-day-heading .cal-day-number{font-size:1.1rem}.cal-day-heading.today .cal-day-number{color:var(--primary-text);background:var(--primary)}.cal-hour-label{text-align:right;color:var(--text-muted);padding:.25rem .5rem;font-size:.75rem}.cal-slot{border-left:1px solid var(--border);min-width:0;min-height:2.75rem;padding:.15rem}.cal-slot.clickable{cursor:pointer}.cal-slot.clickable:hover{background:var(--surface-hover)}.cal-allday-row .cal-slot{min-height:2rem}.cal-year{grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:1rem;display:grid}.cal-mini-month{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem}.cal-mini-month h3{margin-bottom:.5rem;font-size:1rem}.cal-mini-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;font-size:.75rem;display:grid}.cal-mini-day{color:var(--text);background:0 0;border-radius:4px;padding:.2rem 0;font-size:.75rem;font-weight:400}.cal-mini-day:hover{background:var(--surface-hover)}.cal-mini-day.has-events{box-shadow:inset 0 -2px 0 var(--primary);font-weight:700}.fab{z-index:15;border-radius:50%;width:3.5rem;height:3.5rem;padding:0;font-size:2rem;line-height:1;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 14px #00000073}@media (width<=640px){.container.calendar-page{padding:1rem}.cal-view-switch{margin-left:0}.cal-month-cell{min-height:4.5rem;padding:.15rem}.cal-month .cal-event-time{display:none}}.settings-page{max-width:760px}.settings-section h2{margin-bottom:.25rem}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.75rem;display:grid}.theme-option{color:var(--text);border:2px solid var(--border);background:0 0;flex-direction:column;align-items:stretch;gap:.5rem;padding:.6rem;display:flex}.theme-option:hover{background:var(--surface-hover)}.theme-option.selected{border-color:var(--primary)}.theme-swatch{border:1px solid;border-radius:4px;justify-content:center;align-items:center;height:4rem;display:flex;position:relative}.theme-swatch-card{border-radius:4px;padding:.3rem .6rem;font-weight:700}.theme-swatch-dot{border-radius:50%;width:.85rem;height:.85rem;position:absolute;bottom:.4rem;right:.4rem}.theme-swatch-custom{color:var(--text-muted);border-style:dashed;border-color:var(--border);font-size:1.75rem}.custom-scheme{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1.5rem}.custom-scheme-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.custom-scheme-header h3{margin:0;font-size:1.1rem}.custom-scheme-start{align-items:center;gap:.5rem;margin:0;font-weight:400;display:flex}.custom-scheme-start select{width:auto;padding:.4rem .6rem}.color-fields{grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));gap:1rem;display:grid}.color-field-inputs{gap:.5rem;display:flex}.color-field input[type=color]{cursor:pointer;flex:none;width:2.75rem;height:2.6rem;padding:.2rem}.color-hex{font-family:ui-monospace,Consolas,monospace}.contrast-warning{border:1px solid var(--danger);border-radius:var(--radius);margin-top:1rem;padding:.75rem 1rem;font-size:.9rem}.contrast-warning ul{margin:.4rem 0 0;padding-left:1.2rem}.settings-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.dashboard-header h1{margin-bottom:.25rem}.dashboard-header p{margin:0}.household-picker{min-width:min(100%,16rem)}.household-picker select{padding:.55rem .7rem}.household-picker .form-error{margin:.4rem 0 0}.dashboard-grid{--masonry-gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));column-gap:1.5rem}.masonry-grid{grid-auto-rows:8px;align-items:start;row-gap:0;display:grid}.masonry-item{min-width:0;padding-bottom:var(--masonry-gap,1rem)}.dashboard-widget{padding:1.25rem}.widget-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.widget-header h2{margin:0;font-size:1.2rem}.widget-subtitle{margin:.15rem 0 0;font-size:.85rem}.widget-link{white-space:nowrap;font-size:.9rem}.cal-widget-nav{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.cal-widget-month{text-align:center;flex:1;font-weight:600}.cal-widget-grid{grid-template-columns:repeat(7,1fr);gap:2px;transition:opacity .2s;display:grid}.cal-widget-grid.loading{opacity:.6}.cal-widget-weekday{text-align:center;padding:.25rem 0;font-size:.75rem}.cal-widget-day{aspect-ratio:1;color:var(--text);border-radius:var(--radius);background:0 0;border:2px solid #0000;padding:0;font-size:.85rem;font-weight:400;position:relative}.cal-widget-day:hover{background:var(--surface-hover)}.cal-widget-day.outside{color:var(--text-muted);opacity:.6}.cal-widget-day.today{color:var(--primary);font-weight:700}.cal-widget-day.selected{color:var(--primary-text);background:var(--primary)}.cal-widget-dot{background:var(--primary);border-radius:50%;width:5px;height:5px;position:absolute;bottom:12%;left:50%;transform:translate(-50%)}.cal-widget-day.selected .cal-widget-dot{background:var(--primary-text)}.cal-widget-agenda{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.cal-widget-agenda h3{margin-bottom:.5rem;font-size:.95rem}.cal-widget-agenda p{margin:0}.cal-widget-agenda ul{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.cal-widget-agenda li{border-left:3px solid var(--primary);background:color-mix(in srgb, var(--primary) 10%, transparent);border-radius:4px;gap:.75rem;padding:.4rem .6rem;font-size:.9rem;display:flex}.cal-widget-time{flex:none;min-width:6.5rem}.cal-widget-title{overflow-wrap:anywhere;min-width:0}.household-picker-hint{margin:.4rem 0 0;font-size:.85rem}.todo-layout{grid-template-columns:minmax(0,16rem) minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}@media (width<=760px){.todo-layout{grid-template-columns:minmax(0,1fr)}}.todo-sidebar{flex-direction:column;gap:1.25rem;display:flex}.todo-new-list{gap:.6rem;padding:1rem}.todo-new-list h2,.todo-group h2{margin:0;font-size:.95rem}.todo-new-list input,.todo-new-list select{padding:.5rem .6rem}.todo-group h2{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.4rem;font-size:.75rem}.todo-group ul{flex-direction:column;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.todo-list-link{text-align:left;width:100%;color:var(--text);overflow-wrap:anywhere;background:0 0;align-items:center;gap:.5rem;padding:.5rem .75rem;font-weight:400;display:flex}.todo-list-link:hover{background:var(--surface-hover)}.todo-list-link.active{color:var(--primary-text);background:var(--primary)}.todo-list-link.active .badge{color:inherit;border-color:currentColor}.todo-panel{padding:1.5rem}.todo-panel-header{flex-wrap:wrap;align-items:flex-start;gap:.75rem;margin-bottom:1.25rem;display:flex}.todo-panel-header h2{overflow-wrap:anywhere;margin:0}.todo-panel-actions{gap:.5rem}.todo-add{flex-flow:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.todo-add input[type=text]{flex:12rem}.todo-add input[type=date]{flex:0 11rem}.todo-empty{margin:.5rem 0}.todo-items{margin:0;padding:0;list-style:none}.todo-item{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.55rem .25rem;display:flex}.todo-item:last-child{border-bottom:none}.todo-item.editing{padding:.5rem 0 0}.todo-item.editing .todo-add{flex:1;margin-bottom:.5rem}.todo-check{cursor:pointer;flex:10rem;align-items:center;gap:.65rem;min-width:0;margin:0;font-weight:400;display:flex}.todo-check input{width:1.1rem;height:1.1rem;accent-color:var(--primary);cursor:pointer;flex:none;margin:0}.todo-check input:disabled{cursor:default}.todo-title{overflow-wrap:anywhere}.todo-item.done .todo-title{color:var(--text-muted);text-decoration:line-through}.todo-due{color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-size:.8rem}.todo-due.overdue{color:var(--danger);border-color:var(--danger)}.todo-item-actions{gap:.35rem;display:flex}.todo-completed{margin-top:1.25rem}.todo-completed .todo-items{margin-top:.5rem}.todo-widget-select{margin-bottom:.5rem;padding:.45rem .6rem}.todo-widget-list-name{margin-bottom:.25rem;font-size:.95rem}.todo-items.compact .todo-item{padding:.4rem .1rem}.todo-widget-more{margin:.5rem 0 0;font-size:.9rem}.cal-event.todo{border:1px dashed var(--primary);background:0 0;border-left-style:solid;border-left-width:3px}.cal-event.todo:hover{background:color-mix(in srgb, var(--primary) 15%, transparent)}.cal-event.done{color:var(--text-muted);text-decoration:line-through}.cal-event-check{margin-right:.3rem}.cal-widget-agenda li.todo{border:1px dashed var(--border);border-left:3px solid var(--primary);background:0 0}.cal-widget-agenda .todo-done{color:var(--text-muted);text-decoration:line-through}.cal-widget-agenda a.cal-widget-title{color:var(--text)}.tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:1.25rem;display:flex;overflow-x:auto}.tabs button{color:var(--text-muted);border-radius:var(--radius) var(--radius) 0 0;white-space:nowrap;background:0 0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.65rem 1rem}.tabs button:hover{color:var(--text);background:var(--surface-hover)}.tabs button.active{color:var(--text);border-bottom-color:var(--primary)}.meal-page{max-width:900px}.grocery-qty{white-space:nowrap;margin-left:auto;padding-left:.5rem;font-size:.85rem}.todo-add input.grocery-qty-input{flex:0 7rem}.grocery-checked-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.25rem;display:flex}.grocery-checked-header h3{color:var(--text-muted);margin:0;font-size:.95rem}.meal-plan{flex-direction:column;gap:1.5rem;display:flex}.meal-add h2{font-size:1.15rem}.meal-form{gap:.75rem}.meal-form-row{flex-wrap:wrap;gap:.75rem;display:flex}.meal-form-row>div{flex:0 11rem}.meal-form-row>.household-grow{flex:14rem}.meal-notes-input{min-height:4rem}.meal-form-hint{font-size:.85rem}.meal-section h2{margin-bottom:.75rem;font-size:1.15rem}.meal-day+.meal-day{margin-top:1rem}.meal-day h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:1rem 0 .5rem;font-size:.85rem}.meal-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.meal-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius);align-items:flex-start;gap:.75rem;padding:.75rem 1rem;display:flex}.meal-card.editing{display:block}.meal-card-main{flex:1;min-width:0}.meal-card-title{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.meal-notes{white-space:pre-wrap;overflow-wrap:anywhere;margin:.35rem 0 0;font-size:.9rem}.meal-widget-day+.meal-widget-day{margin-top:.75rem}.meal-widget-day h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem;font-size:.8rem}.meal-widget-day ul{margin:0;padding:0;list-style:none}.meal-widget-day li{border-left:3px solid var(--primary);overflow-wrap:anywhere;padding:.3rem .6rem;font-size:.9rem}.meal-widget-day li+li{margin-top:.25rem}.cal-event.meal{background:color-mix(in srgb, var(--primary) 12%, transparent);border-left-style:double;border-left-width:4px}.cal-widget-agenda li.meal{border-left-style:double;border-left-width:4px}.dashboard-header-controls{align-items:flex-start;gap:.75rem;display:flex}.dashboard-header-controls .household-picker{width:14rem;min-width:0}.dashboard-header-controls>button{white-space:nowrap;flex:none}@media (width<=480px){.dashboard-header-controls{flex-wrap:wrap;width:100%}.dashboard-header-controls .household-picker{flex:100%;width:auto}}.dashboard-edit-bar{border-color:var(--primary);flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex}.dashboard-edit-bar p{margin:.15rem 0 0;font-size:.9rem}.dashboard-edit-bar .form-error{margin:0}.dashboard-empty{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.dashboard-slot{border:2px dashed var(--border);border-radius:calc(var(--radius) + 2px);cursor:grab;flex-direction:column;min-width:0;display:flex}.dashboard-slot:hover{border-color:var(--primary)}.dashboard-slot.dragging{opacity:.5;border-color:var(--primary)}.dashboard-slot-toolbar{align-items:center;gap:.4rem;padding:.4rem .5rem;display:flex}.dashboard-slot-handle{color:var(--text-muted);font-size:1.1rem}.dashboard-slot-name{font-size:.9rem;font-weight:600}.dashboard-slot-preview{pointer-events:none;-webkit-user-select:none;user-select:none}.dashboard-slot-preview>.card{border-color:#0000}.dashboard-add{margin-top:2rem}.dashboard-add h2{font-size:1.15rem}.dashboard-add-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.dashboard-add-list li{align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.dashboard-add-list p{margin:.15rem 0 0;font-size:.85rem}.settings-sections{flex-direction:column;gap:1.5rem;display:flex}.font-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr));gap:.75rem;display:grid}.font-option{text-align:left}.font-sample{background:var(--bg);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:.25rem;padding:.6rem .7rem;font-weight:400;display:flex}.font-sample-big{font-size:1.6rem;line-height:1.1}.font-sample-text{color:var(--text-muted);font-size:.85rem;line-height:1.35}.settings-subheading{margin:1.25rem 0 .6rem;font-size:1rem}.text-size-options{grid-template-columns:repeat(auto-fill,minmax(min(100%,7.5rem),1fr));gap:.75rem;display:grid}.text-size-option{align-items:center}.text-size-sample{justify-content:center;align-items:flex-end;height:2.75rem;font-weight:600;line-height:1;display:flex}.widget-option{align-items:center;gap:.4rem;margin:0;font-size:.85rem;font-weight:400;display:flex}.widget-option select{width:auto;padding:.25rem .4rem;font-size:.85rem}.upcoming-day+.upcoming-day{margin-top:.85rem}.upcoming-day h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem;font-size:.8rem}.upcoming-day ul{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.upcoming-day li{background:color-mix(in srgb, var(--primary) 10%, transparent);border-left:3px solid var(--primary);border-radius:4px;flex-wrap:wrap;gap:.15rem .75rem;padding:.4rem .6rem;font-size:.9rem;display:flex}.upcoming-time{flex:none;min-width:7.5rem}.upcoming-title{overflow-wrap:anywhere;min-width:0}.notes-page{max-width:1100px}.note-list{flex-direction:column;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.note-list-item{text-align:left;width:100%;color:var(--text);background:0 0;flex-direction:column;align-items:stretch;gap:.1rem;padding:.55rem .75rem;font-weight:400;display:flex}.note-list-item:hover{background:var(--surface-hover)}.note-list-item.active{color:var(--primary-text);background:var(--primary)}.note-list-title{overflow-wrap:anywhere;font-weight:600}.note-list-meta{opacity:.75;font-size:.8rem}.note-editor{gap:.75rem;padding:1.25rem}.note-title-input{font-size:1.3rem;font-weight:600}.note-body-input{min-height:22rem;line-height:1.6}.note-meta{margin:0;font-size:.85rem}.note-view-title{overflow-wrap:anywhere;margin-bottom:.25rem}.note-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.note-editor .note-body{margin-top:1rem}.note-conflict{border:1px solid var(--danger);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.6rem .8rem;font-size:.9rem;display:flex}.notes-widget-body{background:var(--bg);border:1px solid var(--border);border-radius:4px;max-height:18rem;padding:.6rem .75rem;font-size:.9rem;overflow-y:auto}.notes-widget-meta{margin-top:.5rem}.dashboard-message{width:100%;font:inherit;text-align:left;color:var(--text);background:color-mix(in srgb, var(--primary) 12%, var(--surface));border:1px solid var(--border);border-left:4px solid var(--primary);flex-direction:column;gap:.4rem;margin-bottom:1.5rem;padding:1rem 1.25rem;font-weight:400;display:flex}.dashboard-message-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:1.05rem;line-height:1.5}.dashboard-message-meta{font-size:.8rem}.dashboard-message.editable{cursor:pointer}.dashboard-message.editable:hover{background:color-mix(in srgb, var(--primary) 18%, var(--surface))}.dashboard-message-edit{opacity:0;margin-left:.5rem;transition:opacity .15s}.dashboard-message.editable:hover .dashboard-message-edit,.dashboard-message.editable:focus-visible .dashboard-message-edit{opacity:1}@media (hover:none){.dashboard-message-edit{opacity:1}}.dashboard-message.editing{gap:.75rem}.dashboard-message.editing textarea{min-height:5rem}.dashboard-message-hint{font-size:.8rem}.dashboard-message-add{text-align:left;width:100%;color:var(--text-muted);border:1px dashed var(--border);background:0 0;margin-bottom:1.5rem;padding:.75rem 1rem;font-weight:400;display:block}.dashboard-message-add:hover{color:var(--text);background:var(--surface-hover);border-color:var(--primary)}
