.layout{min-height:100vh;display:flex;flex-direction:column;background:#f5f5f5}.layout-skip-link{position:absolute;top:-100px;left:.5rem;z-index:1001;padding:.5rem 1rem;background:#1a1a2e;color:#fff;text-decoration:none;border-radius:0 0 6px 6px;font-size:.95rem;transition:top .15s ease}.layout-skip-link:focus{top:0;outline:2px solid #fff;outline-offset:2px}.layout-header{background:#1a1a2e;color:#eee;padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 3px #0000001f;position:relative}.layout-logo{display:flex;align-items:center;text-decoration:none}.layout-logo-img{height:40px;width:auto;display:block;margin-right:.5rem}.layout-logo-text{font-weight:700;font-size:1.25rem;color:#eee}.layout-nav{display:flex;align-items:center;gap:1.25rem}.layout-nav a{color:#ccc;text-decoration:none;font-size:.95rem}.layout-nav a:hover{color:#fff}.layout-user{font-size:.9rem;color:#aaa}.layout-logout{background:transparent;border:1px solid #555;color:#ccc;padding:.35rem .75rem;border-radius:4px;cursor:pointer;font-size:.9rem}.layout-logout:hover{background:#333;color:#fff}.layout-main{flex:1;padding:1.5rem;max-width:1200px;margin:0 auto;width:100%}.layout-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0;background:transparent;border:none;color:#eee;cursor:pointer;border-radius:4px}.layout-hamburger:hover{background:#ffffff1a}.layout-hamburger-bar{display:block;width:22px;height:2px;background:currentColor;border-radius:1px;transition:transform .2s ease,opacity .2s ease}.layout-hamburger[aria-expanded=true] .layout-hamburger-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.layout-hamburger[aria-expanded=true] .layout-hamburger-bar:nth-child(2){opacity:0}.layout-hamburger[aria-expanded=true] .layout-hamburger-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width: 768px){.layout-hamburger{display:flex}.layout-nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#1a1a2e;box-shadow:0 4px 12px #0003;max-height:0;overflow:hidden;transition:max-height .2s ease-out;padding:0 1rem}.layout-nav.layout-nav-open{max-height:280px;padding:.5rem 1rem 1rem}.layout-nav a,.layout-nav .layout-user,.layout-nav .layout-logout{padding:.75rem .5rem;border-bottom:1px solid rgba(255,255,255,.08)}.layout-nav .layout-logout{border:none;text-align:left;margin-top:.25rem;border-radius:4px}.layout-nav .layout-user{border-bottom:none;font-size:.85rem;color:#888}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e)}.login-card{background:#fff;padding:2.5rem;border-radius:12px;box-shadow:0 8px 32px #0003;text-align:center;max-width:380px}.login-logo{display:block;height:80px;width:auto;margin:0 auto 1rem}.login-card h1{margin-bottom:.5rem;font-size:1.75rem;color:#1a1a2e}.login-card p{color:#555;margin-bottom:1.5rem;font-size:.95rem}.login-tagline{margin-bottom:1rem}.login-feature-list{list-style:none;padding:0;margin:0 0 1.25rem;text-align:left;font-size:.9rem;color:#444}.login-feature-list li{position:relative;padding-left:1.1rem;margin-bottom:.35rem}.login-feature-list li:before{content:"•";position:absolute;left:0;color:#1a1a2e}.login-cta-help{font-size:.8rem;color:#777;margin-bottom:1.25rem}.login-google-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:#4285f4;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;width:100%}.login-google-btn:hover{background:#3367d6}.login-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:#666}.login-callback{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f5f5}.login-callback-card{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #00000014;text-align:center}.login-callback-error{color:#c00;margin-bottom:1rem}.login-callback-card a{color:#4285f4;text-decoration:none}.login-callback-card a:hover{text-decoration:underline}.calendar-widget{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.calendar-widget .fc{max-height:420px}.calendar-widget .fc .fc-view-harness{min-height:0}.calendar-widget-warning{margin-bottom:12px;padding:10px 14px;background:#fff8e6;border:1px solid #e6c200;border-radius:6px;color:#5c4a00;font-size:.95rem}.calendar-widget-warning strong{color:#3d3300}.calendar-widget-warning-actions{margin-top:10px}.calendar-widget-reconnect-btn{padding:8px 14px;background:#4285f4;color:#fff;border:none;border-radius:6px;font-size:.95rem;cursor:pointer}.calendar-widget-reconnect-btn:hover{background:#3367d6}.calendar-widget-header{margin-bottom:12px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.calendar-widget-search-wrap{flex:1;min-width:200px}.calendar-search-label{display:block;font-size:.85rem;font-weight:500;color:#444;margin-bottom:4px}.calendar-widget-search{width:100%;max-width:320px;padding:8px 12px;border:1px solid #ccc;border-radius:6px;font-size:1rem}.calendar-widget-search::placeholder{color:#888}.calendar-widget-search:focus{outline:2px solid #3788d8;outline-offset:2px;border-color:#3788d8;box-shadow:0 0 0 2px #3788d833}.calendar-widget-add-btn{padding:8px 14px;border-radius:6px;border:1px solid #3788d8;background:#3788d8;color:#fff;font-size:.95rem;cursor:pointer}.calendar-widget-add-btn:hover{background:#2a6bb5;border-color:#2a6bb5}.calendar-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.calendar-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-width:420px;width:100%;max-height:90vh;overflow-y:auto}.calendar-modal-title{margin:0 0 16px;padding:16px 16px 0;font-size:1.25rem}.calendar-add-form{padding:0 16px 16px;display:flex;flex-direction:column;gap:10px}.calendar-add-form label{font-weight:500;font-size:.9rem}.calendar-add-form .required{color:#c00}.calendar-add-form input,.calendar-add-form select,.calendar-add-form textarea{padding:8px 10px;border:1px solid #ccc;border-radius:6px;font-size:1rem}.calendar-add-form textarea{resize:vertical;min-height:60px}.calendar-form-error{color:#c00;font-size:.9rem;margin:0}.calendar-modal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.calendar-modal-actions button{padding:8px 14px;border-radius:6px;border:1px solid #ccc;background:#f5f5f5;cursor:pointer;font-size:.95rem}.calendar-modal-actions button[type=submit]{background:#3788d8;border-color:#3788d8;color:#fff}.calendar-modal-actions button[type=submit]:hover:not(:disabled){background:#2a6bb5;border-color:#2a6bb5}.calendar-advanced-btn{color:#3788d8!important;background:transparent!important;border-color:#3788d8!important}.calendar-advanced-btn:hover{background:#e8f0fe!important}.calendar-event-popover .calendar-modal-title{font-size:1.1rem}.calendar-event-meta,.calendar-event-description,.calendar-event-location{margin:0 0 8px;padding:0 16px;font-size:.95rem;color:#444}.calendar-event-description{white-space:pre-wrap}.calendar-google-link{display:inline-block;margin:8px 16px 16px;padding:8px 14px;border-radius:6px;background:#3788d8;color:#fff;text-decoration:none;font-size:.95rem}.calendar-google-link:hover{background:#2a6bb5}.calendar-event-muted{margin:8px 16px;font-size:.9rem;color:#666}.loading{text-align:center;padding:40px;font-size:18px;color:#666}@media (max-width: 768px){.calendar-widget{padding:12px}.calendar-widget .fc{height:320px!important;max-height:50vh}.calendar-widget-header{flex-direction:column;align-items:stretch;gap:8px}.calendar-widget-search-wrap{min-width:0}.calendar-widget-search{max-width:none}.calendar-widget-add-btn{min-height:44px;flex-shrink:0}.calendar-widget .fc .fc-toolbar{flex-direction:column;gap:8px}.calendar-widget .fc .fc-toolbar-chunk{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.calendar-widget .fc .fc-toolbar-title{font-size:1.1rem;order:-1;width:100%;text-align:center}.calendar-widget .fc .fc-button{min-height:44px;padding:8px 12px}.calendar-widget .fc .fc-scrollgrid{font-size:.85rem}}@media (max-width: 480px){.calendar-modal-overlay{padding:8px;align-items:flex-end}.calendar-modal{max-width:100%;max-height:92vh;border-radius:12px 12px 0 0}.calendar-modal-actions{flex-direction:column}.calendar-modal-actions button{width:100%;min-height:44px}.calendar-add-form input,.calendar-add-form select,.calendar-add-form textarea{min-height:44px;font-size:16px}}.todo-list{background:#fff;padding:1rem;border-radius:8px;box-shadow:0 1px 3px #00000014;min-height:200px}.todo-list-empty{display:flex;align-items:center;justify-content:center}.todo-list-title{font-size:1.1rem;margin:0 0 .75rem;color:#333}.todo-list-error{font-size:.9rem;color:#c00;margin-bottom:.5rem}.todo-list-muted{color:#666;font-size:.95rem;margin:0}.todo-list-items{list-style:none;padding:0;margin:0 0 .5rem}.todo-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:6px;margin-bottom:2px}.todo-item-drag-handle{flex-shrink:0;cursor:grab;color:#999;font-size:.9rem;padding:.2rem;user-select:none;-webkit-user-select:none}.todo-item-drag-handle:active{cursor:grabbing}.todo-item-drag-handle:hover{color:#666}.todo-item-dragging{opacity:.5}.todo-item-drop-target{outline:2px dashed #1a1a2e;outline-offset:2px}.todo-item:hover{background:#f5f5f5}.todo-item-section{margin-top:.75rem;margin-bottom:.25rem;padding:.5rem .6rem;background:linear-gradient(135deg,#e8eaf6,#c5cae9);border-radius:6px;font-weight:700;color:#283593}.todo-item-section:hover{background:linear-gradient(135deg,#d1d5e8,#b0b8e0)}.todo-item-section:first-child{margin-top:0}.todo-item-section-text{flex:1}.todo-item-checked .todo-item-label{text-decoration:line-through;color:#888}.todo-item-check{flex-shrink:0;width:1.4rem;height:1.4rem;border:2px solid #888;border-radius:4px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem;color:#1a1a2e}.todo-item-check:hover{border-color:#1a1a2e}.todo-item-checked .todo-item-check{background:#1a1a2e;border-color:#1a1a2e;color:#fff}.todo-item-label{flex:1;cursor:pointer;text-align:left;min-width:0}.todo-item-delete{flex-shrink:0;padding:.2rem;background:none;border:none;cursor:pointer;opacity:.5;font-size:1rem}.todo-item-delete:hover{opacity:1}.todo-add-placeholder{display:block;width:100%;padding:.5rem;border:1px dashed #ccc;border-radius:6px;background:#fafafa;color:#888;font-size:.95rem;cursor:pointer}.todo-add-placeholder:hover{background:#f0f0f0;color:#666}.todo-add-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 0}.todo-add-input{flex:1;min-width:120px;padding:.4rem .6rem;border:1px solid #ccc;border-radius:6px;font-size:.95rem}.todo-add-section{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:#555;cursor:pointer}.todo-add-btn{padding:.35rem .75rem;background:#1a1a2e;color:#fff;border:none;border-radius:6px;font-size:.9rem;cursor:pointer}.todo-add-btn:hover{background:#16213e}.todo-add-cancel{padding:.35rem .75rem;background:transparent;color:#666;border:1px solid #ccc;border-radius:6px;font-size:.9rem;cursor:pointer}.todo-add-cancel:hover{background:#f0f0f0}.grocery-lists{background:#fff;padding:1rem;border-radius:8px;box-shadow:0 1px 3px #00000014;min-height:200px}.grocery-lists-empty{display:flex;align-items:center;justify-content:center}.grocery-lists-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.grocery-lists-title{font-size:1.1rem;margin:0;color:#333}.grocery-lists-add-list{padding:.35rem .6rem;font-size:.85rem;background:#1a1a2e;color:#fff;border:none;border-radius:6px;cursor:pointer}.grocery-lists-add-list:hover{background:#16213e}.grocery-lists-tabs{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.75rem;border-bottom:1px solid #e5e5e5}.grocery-lists-tab{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .75rem;font-size:.9rem;color:#555;background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px}.grocery-lists-tab:hover{color:#333}.grocery-lists-tab-active{color:#1a1a2e;font-weight:600;border-bottom-color:#1a1a2e}.grocery-lists-tab-label{flex:1}.grocery-lists-tab-delete{padding:0 .2rem;font-size:1.1rem;line-height:1;background:none;border:none;color:#999;cursor:pointer}.grocery-lists-tab-delete:hover{color:#c00}.grocery-lists-error{font-size:.9rem;color:#c00;margin-bottom:.5rem}.grocery-lists-muted{color:#666;font-size:.95rem;margin:0}.grocery-lists-panel{margin-top:.5rem}.grocery-lists-items{list-style:none;padding:0;margin:0 0 .5rem}.grocery-list-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:6px;margin-bottom:2px}.grocery-list-item:hover{background:#f5f5f5}.grocery-list-item-drag-handle{flex-shrink:0;cursor:grab;color:#999;font-size:.9rem;padding:.2rem;-webkit-user-select:none;user-select:none}.grocery-list-item-drag-handle:active{cursor:grabbing}.grocery-list-item-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%}.grocery-list-item-section{margin-top:.75rem;margin-bottom:.25rem;padding:.5rem .6rem;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:6px;font-weight:700;color:#2e7d32}.grocery-list-item-section:hover{background:linear-gradient(135deg,#dcedc8,#a5d6a7)}.grocery-list-item-section-text{flex:1}.grocery-list-item-label{flex:1;min-width:0}.grocery-list-item-delete{flex-shrink:0;padding:.2rem;background:none;border:none;cursor:pointer;opacity:.5;font-size:1rem}.grocery-list-item-delete:hover{opacity:1}.grocery-list-item-dragging{opacity:.5}.grocery-list-item-drop-target{outline:2px dashed #1a1a2e;outline-offset:2px}.grocery-lists-add-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 0}.grocery-lists-add-input{flex:1;min-width:120px;padding:.4rem .6rem;border:1px solid #ccc;border-radius:6px;font-size:.95rem}.grocery-lists-add-section{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;color:#555;cursor:pointer}.grocery-lists-add-btn{padding:.35rem .75rem;background:#1a1a2e;color:#fff;border:none;border-radius:6px;font-size:.9rem;cursor:pointer}.grocery-lists-add-btn:hover{background:#16213e}.grocery-lists-add-cancel{padding:.35rem .75rem;background:transparent;color:#666;border:1px solid #ccc;border-radius:6px;font-size:.9rem;cursor:pointer}.grocery-lists-add-cancel:hover{background:#f0f0f0}.grocery-lists-add-placeholder{display:block;width:100%;padding:.5rem;border:1px dashed #ccc;border-radius:6px;background:#fafafa;color:#888;font-size:.95rem;cursor:pointer}.grocery-lists-add-placeholder:hover{background:#f0f0f0;color:#666}.meal-planner{background:#fff;padding:1rem;border-radius:8px;box-shadow:0 1px 3px #00000014;overflow-x:auto}.meal-planner-empty{padding:1.5rem;text-align:center}.meal-planner-title{font-size:1.1rem;margin:0 0 .75rem;color:#333}.meal-planner-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.meal-planner-nav{display:flex;align-items:center;gap:.5rem}.meal-planner-nav-btn{padding:.35rem .6rem;font-size:.85rem;background:#f0f0f0;border:1px solid #ddd;border-radius:6px;cursor:pointer}.meal-planner-nav-btn:hover{background:#e5e5e5}.meal-planner-range{font-size:.9rem;color:#555}.meal-planner-error{font-size:.9rem;color:#c00;margin-bottom:.5rem}.meal-planner-muted{color:#666;font-size:.95rem;margin:0}.meal-planner-grid-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.meal-planner-table{width:100%;border-collapse:collapse;font-size:.9rem}.meal-planner-cell{border:1px solid #e5e5e5;padding:.4rem .5rem;min-width:0}.meal-planner-cell-label{font-weight:600;color:#333;white-space:nowrap;width:1%;background:#fafafa}.meal-planner-cell-header{text-align:center;font-weight:500;color:#555;background:#f5f5f5}.meal-planner-cell-meal{cursor:pointer;vertical-align:middle}.meal-planner-cell-meal:hover{background:#f8f8f8}.meal-planner-entry{display:inline-block;padding:.2rem .4rem;border-radius:4px;border-left:3px solid #888;background:#0000000a;font-size:.85rem;max-width:100%;overflow:hidden;text-overflow:ellipsis}.meal-planner-empty-cell{color:#bbb;font-size:1.1rem}.meal-planner-input{width:100%;min-width:4rem;padding:.2rem .4rem;font-size:.85rem;border:1px solid #1a1a2e;border-radius:4px;box-sizing:border-box}.meal-planner-input:focus{outline:2px solid #3788d8;outline-offset:2px;border-color:#1a1a2e;box-shadow:0 0 0 2px #1a1a2e33}.dashboard-header-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem}.dashboard-header-row h1{margin:0;font-size:1.5rem;color:#1a1a2e}.dashboard-household-name{font-size:1.1rem;color:#555;font-weight:500}.dashboard-household-dropdown{min-width:180px}.dashboard-loading{padding:2rem;text-align:center;color:#666}.dashboard-message{padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.dashboard-error{background:#fee;color:#c00}.dashboard-success{background:#efe;color:#060}.dashboard-section{background:#fff;padding:1.25rem;border-radius:8px;box-shadow:0 1px 3px #00000014;margin-bottom:1.25rem}.dashboard-section h2{font-size:1.1rem;margin-bottom:.75rem;color:#333}.dashboard-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.dashboard-form input,.dashboard-form select{padding:.5rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:.95rem}.dashboard-form input{min-width:180px}.dashboard-form-inline select{min-width:160px}.dashboard-form button{padding:.5rem 1rem;background:#1a1a2e;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.95rem}.dashboard-form button:hover{background:#16213e}.dashboard-form-column{flex-direction:column;align-items:stretch;max-width:400px}.dashboard-form-column input,.dashboard-form-column select{width:100%}.dashboard-list{list-style:none;padding:0;margin:0}.dashboard-list li{padding:.35rem 0;border-bottom:1px solid #eee}.dashboard-list-item-with-action{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.dashboard-btn-secondary{padding:.35rem .75rem;background:#f0f0f0;color:#333;border:1px solid #ccc;border-radius:6px;cursor:pointer;font-size:.9rem}.dashboard-btn-secondary:hover{background:#e5e5e5}.dashboard-list-actions{display:flex;gap:.5rem;align-items:center}.dashboard-btn-danger{padding:.35rem .75rem;background:#fff;color:#c00;border:1px solid #c00;border-radius:6px;cursor:pointer;font-size:.9rem}.dashboard-btn-danger:hover{background:#fee}.settings-households-list{list-style:none}.settings-household-item{border-bottom:1px solid #eee;padding-bottom:.75rem;margin-bottom:.75rem}.settings-household-item:last-child{border-bottom:none;margin-bottom:0}.settings-household-header{margin-bottom:.35rem}.settings-members-sublist{margin-left:1rem;margin-top:.25rem}.settings-members-sublist li{border-bottom-color:#f0f0f0}.settings-member-row{display:inline-flex;align-items:center;gap:.5rem}.settings-member-color-swatch{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.15);flex-shrink:0}.settings-role-badge{display:inline-block;margin-left:.5rem;padding:.15rem .4rem;font-size:.75rem;font-weight:600;border-radius:4px;background:#e0e0e0;color:#444}.settings-role-owner{background:#1a1a2e;color:#fff}.settings-role-me{background:#3788d8;color:#fff}.settings-household-context{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.settings-household-context label{font-size:1rem;font-weight:500;color:#333}.settings-household-global-select{padding:.5rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:1rem;min-width:200px}.dashboard-muted{color:#666;font-size:.95rem}.dashboard-main{display:grid;grid-template-columns:1fr 320px;gap:1.25rem;align-items:start}@media (max-width: 768px){.dashboard-main{grid-template-columns:1fr}}.dashboard-calendar{margin-top:0}.dashboard-todo{position:sticky;top:1rem}.dashboard-color-key{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #eee;font-size:.85rem;color:#555}.dashboard-color-key-label{margin-bottom:.1rem}.dashboard-color-key-item{display:inline-flex;align-items:center;gap:.35rem}.dashboard-color-key-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dashboard-color-key-name{white-space:nowrap}.dashboard-todo-household{margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.dashboard-todo-household label{font-size:.9rem;color:#555}.dashboard-todo-household select,.dashboard-household-select select{padding:.35rem .6rem;border:1px solid #ccc;border-radius:6px;font-size:.9rem}.dashboard-household-select{display:flex;align-items:center;gap:.5rem}.dashboard-household-select label{font-size:.9rem;color:#555}.dashboard-meal-planner{margin-top:1.5rem}.settings-event-color-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem}.settings-event-color-row:last-child{margin-bottom:0}.settings-event-color-label{font-weight:500;min-width:120px;color:#333}.settings-event-color-options{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.settings-color-swatch{width:28px;height:28px;border:2px solid rgba(0,0,0,.15);border-radius:6px;cursor:pointer;padding:0}.settings-color-swatch:hover{border-color:#1a1a2e;transform:scale(1.08)}.settings-color-picker-label{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;font-size:.9rem;color:#555}.settings-color-picker{width:28px;height:28px;padding:0;border:none;border-radius:6px;cursor:pointer;background:transparent}.settings-color-picker-text{-webkit-user-select:none;user-select:none}.settings-calendar-household{border-bottom:none;padding-bottom:.5rem}.settings-calendar-household:not(:last-child){margin-bottom:.5rem;border-bottom:1px solid #eee;padding-bottom:.75rem}.settings-calendar-sublist{margin-top:.25rem;margin-left:1rem}.settings-calendar-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.settings-remove-calendar-btn{padding:.25rem .6rem;font-size:.85rem;background:transparent;color:#c00;border:1px solid #fcc;border-radius:4px;cursor:pointer}.settings-remove-calendar-btn:hover{background:#fee}.settings-meal-planner-household{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.settings-meal-planner-household:last-of-type{border-bottom:none}.settings-meal-planner-weeks{margin-top:.5rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.settings-weeks-btn{padding:.35rem .6rem;font-size:.9rem;background:#f0f0f0;border:1px solid #ccc;border-radius:6px;cursor:pointer}.settings-weeks-btn:hover{background:#e5e5e5}.settings-weeks-btn-active{background:#1a1a2e;color:#fff;border-color:#1a1a2e}.settings-meal-slots{margin-top:.5rem}.settings-meal-slots-list{margin-top:.25rem;margin-left:.5rem}.settings-meal-slot-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.settings-delete-household{margin-top:1.5rem}.settings-delete-household-btn{display:block;width:100%;padding:.75rem 1rem;background:#c00;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;text-align:center}.settings-delete-household-btn:hover{background:#a00}.settings-delete-household-btn:focus{outline:2px solid #c00;outline-offset:2px}.accept-invite-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f5f5}.accept-invite-card{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 16px #00000014;max-width:420px;text-align:center}.accept-invite-card h1{font-size:1.5rem;margin-bottom:1rem;color:#1a1a2e}.accept-invite-card p{color:#555;margin-bottom:.75rem;font-size:.95rem}.accept-invite-as{font-size:.9rem;color:#666}.accept-invite-error{color:#c00}.accept-invite-btn{margin-top:1rem;padding:.75rem 1.5rem;background:#1a1a2e;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer}.accept-invite-btn:hover{background:#16213e}.accept-invite-card a{color:#4285f4;text-decoration:none;display:inline-block;margin-top:1rem}.accept-invite-card a:hover{text-decoration:underline}.accept-invite-success p{color:#060}.accept-invite-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:#666}.App{min-height:100vh;background-color:#f5f5f5}.App-header{background-color:#282c34;padding:20px;color:#fff;text-align:center}.App-header h1{margin-bottom:20px}main{padding:20px;max-width:1400px;margin:0 auto}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
