:root{font-family:Avenir Next,Segoe UI,sans-serif;color:#102a43;background:linear-gradient(180deg,#f2f7f5,#e8f0ec);--surface-radius-sm: 10px;--surface-radius-md: 12px;--surface-radius-lg: 14px;--surface-border-subtle: #dce7e4;--surface-bg-base: #ffffff;--surface-bg-soft: #f9fbfb;--surface-bg-softer: #f8fbfa;--surface-bg-tint: #fbfdfd;--surface-shadow-panel: 0 10px 30px rgba(0, 0, 0, .06);--surface-shadow-modal: 0 18px 34px rgba(16, 42, 67, .24)}*{box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{width:0;height:0;display:none}body{margin:0;min-height:100vh}.dashboard{max-width:1280px;margin:0 auto;padding:1rem}.connection-bar{margin-bottom:1rem;background:linear-gradient(135deg,#0f766e,#115e59);color:#ecfeff;border-radius:14px;padding:1rem}.connection-header h2{margin:0}.connection-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.connection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem}.connection-chip{background:#ffffff24;border:1px solid rgba(255,255,255,.25);border-radius:12px;padding:.5rem .65rem;min-height:60px;transition:transform .12s ease,background .12s ease}.connection-chip:hover{transform:translateY(-2px);background:#fff3}.connection-row{display:flex;justify-content:space-between;gap:.8rem;align-items:center}.connection-row.compact{align-items:center}.connection-chip-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.status-pill{border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:700}.status-pill.on{background:#d1fae5;color:#065f46}.status-pill.off{background:#fee2e2;color:#991b1b}.action-pill{--btn-bg: #d9ece8;--btn-border: #bdd7d1;--btn-fg: #0f766e;--btn-bg-hover: #cfe6e1;--btn-border-hover: #b1cec7;--btn-fg-hover: #0d6660;--btn-bg-active: #bddcd5;--btn-border-active: #a3c3bc;--btn-fg-active: #0b5a54;min-height:34px;padding:.3rem .6rem;font-weight:700}.header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:1rem;align-items:center}.header-title h1{margin:0;line-height:1.2}.header-actions{display:flex;justify-content:flex-end;gap:.75rem;align-items:center}.header-weather{display:inline-flex;align-items:baseline;gap:.4rem;padding:.35rem .6rem;border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-sm);background:var(--surface-bg-tint);color:#243b53;white-space:nowrap}.header-weather-trigger{font:inherit;cursor:pointer}.header-weather-wrap{position:relative;display:inline-flex}.header-weather-temp{font-size:1rem;font-weight:700;line-height:1}.header-weather-summary{font-size:.82rem;color:#486581}.header-weather-popover{position:absolute;top:calc(100% + .45rem);right:0;min-width:280px;max-width:340px;padding:.55rem;border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-md);background:var(--surface-bg-base);box-shadow:var(--surface-shadow-panel);z-index:14}.header-weather-forecast-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:.5rem;align-items:center;padding:.3rem .2rem;font-size:.82rem;color:#243b53}.header-weather-forecast-row+.header-weather-forecast-row{border-top:1px solid #e9f0ee}.forecast-day{font-weight:700;color:#102a43}.forecast-summary{color:#486581}.forecast-temps{font-weight:600;color:#243b53;white-space:nowrap}.mobile-tabs{display:none}.touch-button{--btn-bg: #0f766e;--btn-border: #0f766e;--btn-fg: #ffffff;--btn-bg-hover: #0d6660;--btn-border-hover: #0d6660;--btn-fg-hover: #ffffff;--btn-bg-active: #0b5a54;--btn-border-active: #0b5a54;--btn-fg-active: #ffffff}.touch-button,.tiny-button,.choice-button,.icon-button,.action-pill,.task-expand,.picker-option,.calendar-chip{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid var(--btn-border, #bdd7d1);background:var(--btn-bg, #d9ece8);color:var(--btn-fg, #0f766e);border-radius:10px;padding:.45rem .75rem;cursor:pointer;min-height:36px;font-weight:600;line-height:1.15;transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}.touch-button,.choice-button{min-height:44px}.touch-button,.choice-button,.action-pill,.task-expand,.picker-option,.calendar-chip{text-decoration:none}.touch-button:hover,.tiny-button:hover,.choice-button:hover,.icon-button:hover,.action-pill:hover,.task-expand:hover,.picker-option:hover,.calendar-chip:hover{background:var(--btn-bg-hover, var(--btn-bg, #d9ece8));border-color:var(--btn-border-hover, var(--btn-border, #bdd7d1));color:var(--btn-fg-hover, var(--btn-fg, #0f766e))}.touch-button:active,.tiny-button:active,.choice-button:active,.icon-button:active,.action-pill:active,.task-expand:active,.picker-option:active,.calendar-chip:active{background:var(--btn-bg-active, var(--btn-bg-hover, var(--btn-bg, #d9ece8)));border-color:var(--btn-border-active, var(--btn-border-hover, var(--btn-border, #bdd7d1)));color:var(--btn-fg-active, var(--btn-fg-hover, var(--btn-fg, #0f766e)))}.touch-button:focus-visible,.tiny-button:focus-visible,.choice-button:focus-visible,.icon-button:focus-visible,.action-pill:focus-visible,.task-expand:focus-visible,.picker-option:focus-visible,.calendar-chip:focus-visible{outline:none;box-shadow:0 0 0 3px #1a73e847}.touch-button:disabled,.tiny-button:disabled,.choice-button:disabled,.icon-button:disabled,.action-pill:disabled,.task-expand:disabled,.picker-option:disabled,.calendar-chip:disabled{opacity:.52;cursor:not-allowed}.grid{margin-top:1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.panel{background:var(--surface-bg-base);border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-lg);padding:1rem;box-shadow:var(--surface-shadow-panel)}.todo-panel{overflow:hidden}.todo-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.todo-header-actions{display:flex;gap:.5rem;flex-wrap:wrap}.todo-workspace{display:block;margin-top:.75rem}.todo-list-column{min-width:0}.todo-item{padding:.75rem;border-radius:var(--surface-radius-sm);margin-bottom:.5rem;background:#f7faf9;display:flex;gap:.5rem;justify-content:space-between;align-items:center}.task-active{border:1px solid #d8e6e3}.task-completed{opacity:.72;border:1px solid #d6dde2}.all-day{border-left:4px solid #2f855a}.capture-form{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.capture-input{flex:1;min-width:220px;min-height:44px;border-radius:10px;border:1px solid #cbd5e0;padding:.7rem}.picker-label{display:block;margin-bottom:.4rem;font-size:.9rem}.muted-line{color:#486581;margin-top:0}.active-list-trigger{border:none;background:transparent;color:#0f766e;cursor:pointer;padding:0;text-decoration:underline}.task-main{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%}.task-main strong{font-size:.98rem;font-weight:700}.task-title-button{border:none;background:transparent;padding:0;text-align:left;cursor:text;color:inherit}.inline-title-input{width:100%;min-width:0;min-height:34px;border:1px solid #9fb7b2;border-radius:8px;padding:.35rem .5rem}.task-expand{--btn-bg: #d9ece8;--btn-border: #bdd7d1;--btn-fg: #0f766e;--btn-bg-hover: #cfe6e1;--btn-border-hover: #b1cec7;--btn-fg-hover: #0d6660;--btn-bg-active: #bddcd5;--btn-border-active: #a3c3bc;--btn-fg-active: #0b5a54;border-radius:8px;padding:.25rem .45rem;min-height:30px;font-size:.8rem}.task-due{font-size:.82rem;color:#486581;white-space:nowrap}.task-stack{display:flex;flex-direction:column}.completed-drawer{margin-top:.8rem;border-top:1px solid #e2e8f0;padding-top:.6rem}.drawer-toggle{border:none;background:transparent;color:#334e68;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:.4rem;padding:.2rem 0}.chevron{display:inline-block;transform:rotate(0);transition:transform .22s ease}.chevron.open{transform:rotate(90deg)}.completed-list{margin-top:.5rem}.tiny-button{--btn-bg: #d9ece8;--btn-border: #bdd7d1;--btn-fg: #0f766e;--btn-bg-hover: #cfe6e1;--btn-border-hover: #b1cec7;--btn-fg-hover: #0d6660;--btn-bg-active: #bddcd5;--btn-border-active: #a3c3bc;--btn-fg-active: #0b5a54;border-radius:10px;padding:.4rem .55rem;min-height:34px}.choice-button{--btn-bg: #eef4fb;--btn-border: #c7d8eb;--btn-fg: #334e68;--btn-bg-hover: #e3edf9;--btn-border-hover: #b8cde5;--btn-fg-hover: #243b53;--btn-bg-active: #d8e6f6;--btn-border-active: #a8c2e0;--btn-fg-active: #102a43;border-radius:10px;font-weight:700;min-height:34px}.choice-button.active{--btn-bg: #1a73e8;--btn-border: #1a73e8;--btn-fg: #ffffff;--btn-bg-hover: #1767cf;--btn-border-hover: #1767cf;--btn-fg-hover: #ffffff;--btn-bg-active: #145ab5;--btn-border-active: #145ab5;--btn-fg-active: #ffffff}.icon-button{--btn-bg: #eef4fb;--btn-border: #c7d8eb;--btn-fg: #334e68;--btn-bg-hover: #e3edf9;--btn-border-hover: #b8cde5;--btn-fg-hover: #243b53;--btn-bg-active: #d8e6f6;--btn-border-active: #a8c2e0;--btn-fg-active: #102a43;width:34px;min-width:34px;min-height:34px;padding:0;border-radius:10px}.modal-card.todo-detail-modal-card{width:min(1248px,100%);height:min(82vh,760px);display:flex;flex-direction:column}.todo-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem;margin-bottom:.6rem}.todo-detail-header h3{margin:0}.todo-modal-layout{flex:1;min-height:0;display:grid;grid-template-columns:1fr 2fr;gap:.9rem}.todo-modal-task-list{border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-md);background:var(--surface-bg-base);padding:.5rem;overflow-y:auto}.modal-task-item{--btn-bg: #eef4fb;--btn-border: #c7d8eb;--btn-fg: #334e68;--btn-bg-hover: #e3edf9;--btn-border-hover: #b8cde5;--btn-fg-hover: #243b53;--btn-bg-active: #d8e6f6;--btn-border-active: #a8c2e0;--btn-fg-active: #102a43;width:100%;margin-bottom:.4rem;text-align:left}.modal-task-item.active{--btn-bg: #1a73e8;--btn-border: #1a73e8;--btn-fg: #ffffff;--btn-bg-hover: #1767cf;--btn-border-hover: #1767cf;--btn-fg-hover: #ffffff;--btn-bg-active: #145ab5;--btn-border-active: #145ab5;--btn-fg-active: #ffffff}.todo-modal-detail-content{border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-md);padding:.9rem;background:var(--surface-bg-soft);overflow-y:auto}.detail-row{display:flex;gap:.5rem;align-items:center}.detail-notes{min-height:120px;resize:vertical;width:100%;margin-bottom:.6rem}.timezone-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.4rem 0 .5rem}.timezone-label{color:#486581;font-size:.86rem}.timezone-editor{display:grid;gap:.45rem;margin-bottom:.6rem}.timezone-select{min-width:0}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a192961;display:grid;place-items:center;padding:1rem;z-index:20}.task-modal-scrim{z-index:80}.recipe-editor-modal-scrim{z-index:78}.manage-recipes-modal-scrim{z-index:76}.meal-detail-modal-scrim{z-index:74}.calendar-modal-scrim{z-index:72}.grocery-modal-scrim{z-index:70}.list-picker-modal-scrim{z-index:68}.settings-modal-scrim{z-index:66}.modal-card{width:min(560px,100%);background:var(--surface-bg-base);border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-md);box-shadow:var(--surface-shadow-modal);padding:1rem}.connections-modal-card{width:min(760px,100%)}.connections-modal-actions{display:flex;gap:.45rem;flex-wrap:wrap}.settings-group{margin-top:1rem;display:grid;gap:.5rem}.settings-group h3{margin:0}.list-picker-options{display:grid;gap:.5rem;margin:.8rem 0;max-height:45vh;overflow-y:auto}.picker-option{--btn-bg: #eef4fb;--btn-border: #c7d8eb;--btn-fg: #334e68;--btn-bg-hover: #e3edf9;--btn-border-hover: #b8cde5;--btn-fg-hover: #243b53;--btn-bg-active: #d8e6f6;--btn-border-active: #a8c2e0;--btn-fg-active: #102a43;text-align:left;padding:.65rem;width:100%;justify-content:flex-start}.picker-option.active{--btn-bg: #1a73e8;--btn-border: #1a73e8;--btn-fg: #ffffff;--btn-bg-hover: #1767cf;--btn-border-hover: #1767cf;--btn-fg-hover: #ffffff;--btn-bg-active: #145ab5;--btn-border-active: #145ab5;--btn-fg-active: #ffffff;font-weight:700}.calendar-panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;margin-bottom:.8rem}.calendar-panel-actions{display:flex;gap:.4rem}.calendar-selector{display:flex;flex-wrap:wrap;gap:.55rem .75rem;margin-bottom:.85rem;padding:.6rem;border:1px solid #dde8e4;border-radius:10px;background:#f8fbfa}.calendar-toggle{display:flex;align-items:center;gap:.3rem;font-size:.9rem}.calendar-color-dot{width:10px;height:10px;border-radius:999px;display:inline-block;flex:0 0 auto;border:1px solid rgba(0,0,0,.08)}.calendar-selector-empty{color:#627d98}.timeline-stack{display:grid;gap:.55rem}.timeline-card{border:1px solid #dbe7e4;border-left:5px solid #34a853;background:#f8fbfa;border-radius:10px;padding:.7rem;text-align:left;display:grid;gap:.2rem;cursor:pointer}.timeline-card small{color:#486581}.timeline-card.all-day{border-left-color:#0f766e}.calendar-empty-center{display:grid;place-items:center;min-height:180px;color:#627d98;font-weight:600}.calendar-empty-center.modal-empty{min-height:60vh}.calendar-empty-inline{margin:0;color:#627d98}.calendar-modal-card{width:min(1200px,100%);max-height:92vh;overflow:hidden;display:flex;flex-direction:column}.calendar-modal-header{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start;margin-bottom:0;padding-bottom:.8rem;position:sticky;top:0;z-index:4;background:var(--surface-bg-base);border-bottom:1px solid var(--surface-border-subtle)}.calendar-modal-header h3{margin:0}.calendar-modal-header p{margin:.2rem 0 0;color:#486581}.calendar-modal-controls{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}.calendar-modal-selector{display:flex;flex-wrap:wrap;gap:.55rem .75rem;margin:.7rem 0 .8rem;padding:.6rem;border:1px solid #dde8e4;border-radius:10px;background:#f8fbfa}.calendar-modal-nav,.calendar-modal-views{display:inline-flex;flex-wrap:wrap;gap:.4rem}.calendar-modal-layout{display:grid;flex:1;min-height:0}.calendar-modal-layout.split{grid-template-columns:minmax(0,1fr) 320px;gap:.8rem;align-items:start;min-height:0}.calendar-modal-main{display:flex;min-width:0;min-height:0;overflow:hidden}.calendar-day-view{display:flex;flex-direction:column;flex:1;width:100%;height:100%;min-height:0;border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-md);padding:.7rem;background:var(--surface-bg-tint)}.calendar-day-banner{font-weight:700;margin-bottom:.45rem}.meal-section{border:1px solid rgba(14,30,37,.14);border-radius:12px;padding:.6rem;background:#fffc;display:grid;gap:.5rem;margin-bottom:.6rem}.meal-section.compact{padding:.45rem;gap:.4rem}.meal-compact-strip{display:flex;align-items:center;gap:.35rem;min-width:0}.meal-compact-items{display:flex;align-items:center;gap:.35rem;flex:1;min-width:0;overflow-x:auto;padding-bottom:.1rem}.meal-compact-empty{color:#627d98;font-size:.8rem;white-space:nowrap}.meal-section-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.meal-header-actions{display:inline-flex;align-items:center;gap:.35rem}.meal-section-header span{color:#627d98;font-size:.88rem}.meal-list{display:grid;gap:.45rem}.meal-mini-icon{border:1px solid #d9e3e0;background:#fff;color:#334e68;font-weight:700;cursor:pointer}.meal-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid rgba(14,30,37,.12);border-radius:10px;padding:.5rem;background:#ffffffeb}.meal-item-main{display:grid;gap:.1rem}.meal-item-main span{color:#627d98;font-size:.82rem}.meal-item-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.meal-add-form{display:grid;gap:.4rem}.meal-input-row{display:flex;align-items:center;gap:.4rem}.meal-input-row .capture-input{flex:1 1 auto}.meal-action-row{display:flex;align-items:center;gap:.35rem}.meal-recipe-select{min-height:2.25rem}.icon-pill{min-width:2.1rem;height:2.1rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.meal-strip-button{width:2rem;min-width:2rem;height:2rem;border-radius:999px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem}.meal-control-button{--btn-bg: #eef4fb;--btn-border: #c7d8eb;--btn-fg: #334e68;--btn-bg-hover: #e3edf9;--btn-border-hover: #b8cde5;--btn-fg-hover: #243b53;--btn-bg-active: #d8e6f6;--btn-border-active: #a8c2e0;--btn-fg-active: #102a43}.meal-entry-popover{border:1px solid #dbe7e4;border-radius:12px;padding:.7rem;background:#fff;margin:0 0 .7rem;box-shadow:0 8px 20px #102a4324}.meal-entry-popover-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:.5rem}.meal-entry-popover-header span{color:#627d98;font-size:.86rem}.recipe-modal-card{width:min(1200px,calc(100vw - 1.5rem));height:calc(100vh - 1.5rem);max-height:none;display:flex;flex-direction:column;overflow:auto}.recipe-detail-editor{min-height:280px}.missing-ingredients-list{display:grid;gap:.45rem;margin:.6rem 0;max-height:45vh;overflow-y:auto}.grocery-review-grid{display:grid;gap:.75rem;margin:0;max-height:56vh;overflow-y:auto}.grocery-review-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:.8rem;margin:.8rem 0;align-items:start}.grocery-missing-panel,.grocery-review-meal{border:1px solid #dbe7e4;border-radius:10px;padding:.65rem;background:#f8fbfa}.grocery-review-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.grocery-review-header span{color:#627d98;font-size:.84rem}.grocery-lines{display:grid;gap:.45rem;margin:.8rem 0;max-height:45vh;overflow-y:auto}.grocery-line{border:1px solid #dbe7e4;border-radius:10px;padding:.55rem;background:#f8fbfa;display:flex;align-items:center;gap:.55rem;cursor:grab}.drag-handle{color:#627d98;font-weight:700}.recipe-manage-item{border:1px solid #dbe7e4;border-radius:10px;padding:.6rem;display:flex;justify-content:space-between;gap:.7rem;align-items:center}.recipe-manage-actions{display:flex;align-items:center;gap:.35rem}.calendar-all-day-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem}.calendar-day-scroll{flex:1;min-height:0;overflow-y:auto}.calendar-chip{--btn-bg: #eef4fb;--btn-border: #c7d8eb;--btn-fg: #334e68;--btn-bg-hover: #e3edf9;--btn-border-hover: #b8cde5;--btn-fg-hover: #243b53;--btn-bg-active: #d8e6f6;--btn-border-active: #a8c2e0;--btn-fg-active: #102a43;border-radius:10px;padding:.28rem .55rem}.calendar-chip.active{--btn-bg: #1a73e8;--btn-border: #1a73e8;--btn-fg: #ffffff;--btn-bg-hover: #1767cf;--btn-border-hover: #1767cf;--btn-fg-hover: #ffffff;--btn-bg-active: #145ab5;--btn-border-active: #145ab5;--btn-fg-active: #ffffff}.calendar-day-grid{height:980px;border:1px solid #e0ebe8;border-radius:10px;position:relative;overflow:hidden;background:linear-gradient(180deg,#fff,#f8fcfb)}.calendar-hour-line{position:relative;height:calc(100% / 24);border-top:1px solid #edf3f1}.calendar-hour-line span{position:absolute;left:.2rem;top:-.45rem;font-size:.72rem;color:#627d98}.calendar-day-events{position:absolute;top:0;left:4.2rem;right:.45rem;bottom:0}.calendar-block{position:absolute;border:1px solid #c3dad3;border-left:3px solid #188038;border-radius:8px;background:#eaf6ef;color:#102a43;padding:.25rem .35rem;text-align:left;overflow:hidden;cursor:pointer}.calendar-block.active{border-color:#0f766e;box-shadow:inset 0 0 0 1px #0f766e}.calendar-block strong{display:block;font-size:.78rem;line-height:1.2}.calendar-block span{font-size:.7rem;color:#334e68}.calendar-week-view{display:grid;flex:1;width:100%;height:100%;min-height:0;grid-template-rows:auto minmax(0,1fr);gap:.35rem}.calendar-week-view.three-day{grid-template-rows:auto minmax(0,1fr)}.calendar-week-static-grid,.calendar-week-body-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}.calendar-week-static-grid.three-day,.calendar-week-body-grid.three-day{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-week-day{display:flex;flex-direction:column;min-height:0;border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-sm);background:var(--surface-bg-tint);padding:.5rem}.calendar-week-day-lanes{border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-sm);background:var(--surface-bg-tint);padding:.5rem}.calendar-week-day header{font-size:.82rem;font-weight:700;margin-bottom:.35rem}.calendar-week-all-day{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:.35rem}.calendar-week-all-day .calendar-chip{min-height:28px;padding:.2rem .45rem;font-size:.76rem}.calendar-week-lanes-scroll{flex:1;min-height:0;overflow-y:auto}.calendar-week-body-scroll{min-height:0;overflow-y:auto}.calendar-week-lanes{position:relative;height:980px;border-top:1px solid #edf3f1;overflow:hidden;background:linear-gradient(180deg,#fff,#f8fcfb)}.calendar-week-hour-line{position:relative;height:calc(100% / 24);border-top:1px solid #edf3f1}.calendar-week-hour-line span{position:absolute;left:.2rem;top:-.45rem;font-size:.68rem;color:#627d98}.calendar-week-events{position:absolute;top:0;left:3.3rem;right:.3rem;bottom:0}.calendar-week-block{position:absolute;border:1px solid #cee0d9;border-left:3px solid #1a73e8;border-radius:7px;background:#eaf1fc;padding:.2rem;font-size:.67rem;text-align:left;overflow:hidden;cursor:pointer}.calendar-week-block.active{border-color:#1a73e8;box-shadow:inset 0 0 0 1px #1a73e8}.calendar-month-view{display:grid;flex:1;width:100%;height:100%;overflow:auto;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}.calendar-month-day{min-height:112px;border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-sm);padding:.4rem;background:var(--surface-bg-base)}.calendar-month-day.muted{background:#f4f8f7;color:#829ab1}.calendar-month-day header{font-weight:700;margin-bottom:.3rem}.calendar-month-stack{display:grid;gap:.2rem}.calendar-month-event{border:1px solid #d3e4dd;border-left:3px solid #188038;background:#edf7f1;border-radius:6px;padding:.15rem .25rem;font-size:.72rem;text-align:left;cursor:pointer}.calendar-month-event.active{border-color:#0f766e}.calendar-more{font-size:.7rem;color:#627d98}.calendar-event-detail{border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-md);padding:.75rem;background:var(--surface-bg-softer);max-height:100%;overflow-y:auto}.calendar-event-detail h4{margin:0 0 .65rem}.calendar-event-detail p{margin:.35rem 0;font-size:.9rem}.calendar-detail-actions{display:flex;gap:.4rem;margin:.65rem 0}.clock{font-size:1.85rem;font-weight:700;line-height:1}.header-clock{text-align:center;white-space:nowrap}.kiosk .touch-button,.kiosk .capture-input{min-height:56px;font-size:1.1rem}.family-settings-page{max-width:1100px;margin:0 auto;padding:1rem;display:grid;gap:1rem}.family-settings-header{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;align-items:flex-start}.family-settings-header h1{margin:0}.family-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.family-settings-card{background:var(--surface-bg-base);border:1px solid var(--surface-border-subtle);border-radius:var(--surface-radius-lg);box-shadow:var(--surface-shadow-panel);padding:.9rem;display:grid;gap:.65rem}.family-settings-card h2,.family-settings-card h3{margin:0}.family-settings-form{display:grid;gap:.55rem}.family-settings-form label,.family-settings-card>label{display:grid;gap:.35rem;font-size:.9rem;color:#334e68}.family-settings-form input,.family-settings-card input,.family-settings-card select{width:100%;min-height:40px;border-radius:10px;border:1px solid var(--surface-border-subtle);background:var(--surface-bg-base);color:#102a43;padding:.5rem .65rem;font:inherit}.family-settings-actions{display:flex;flex-wrap:wrap;gap:.45rem}.family-inline-block{border:1px solid var(--surface-border-subtle);border-radius:10px;padding:.55rem;background:var(--surface-bg-soft)}.family-link-line{margin:0;font-size:.82rem;word-break:break-all}.family-invite-list,.family-member-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.family-invite-item,.family-member-item{border:1px solid var(--surface-border-subtle);border-radius:10px;background:var(--surface-bg-softer);padding:.55rem;display:flex;justify-content:space-between;gap:.6rem;align-items:flex-start}.family-toggle-list{display:grid;gap:.45rem}.family-toggle-item{display:flex;align-items:center;gap:.55rem;border:1px solid var(--surface-border-subtle);border-radius:10px;padding:.5rem .6rem;background:var(--surface-bg-soft)}.family-toggle-item input{width:auto;min-height:18px;transform:scale(1.15)}.family-settings-footer{display:flex;justify-content:flex-end;gap:.5rem}.error{color:#9b2c2c;background:#fff5f5;border:1px solid #feb2b2;padding:.7rem;border-radius:var(--surface-radius-sm)}@media(max-width:760px){.mobile-tabs{display:flex;gap:.5rem;margin-top:.75rem;margin-bottom:.5rem;position:sticky;top:0;z-index:11;background:linear-gradient(180deg,#f2f7f5,#e8f0ec);padding:.35rem 0}.grid{display:block;height:calc(100dvh - var(--main-top-offset, 300px));min-height:320px;overflow:hidden}.mobile-panel{display:none;height:100%;overflow-y:auto}.mobile-panel.active{display:block}.header-weather{max-width:180px;overflow:hidden;text-overflow:ellipsis}.header-weather-popover{right:auto;left:0;min-width:250px}.calendar-panel-header{flex-direction:column}.calendar-modal-layout.split{grid-template-columns:1fr}.calendar-week-view,.calendar-month-view{gap:.5rem}.calendar-week-static-grid,.calendar-week-body-grid,.calendar-month-view{grid-template-columns:1fr}.calendar-week-lanes,.calendar-day-grid{height:820px}.todo-modal-layout,.grocery-review-layout{grid-template-columns:1fr}.meal-input-row{flex-wrap:wrap}}@media(max-width:1080px){.grocery-review-layout{grid-template-columns:1fr}}@media(min-width:761px){body{height:100dvh;overflow:hidden}.dashboard{height:100dvh;overflow-y:auto}.header{position:sticky;top:0;z-index:10;background:linear-gradient(180deg,#f2f7f5,#e8f0ec);padding:.75rem 0}.grid{height:calc(100dvh - var(--main-top-offset, 240px));min-height:320px;overflow:hidden;align-items:stretch}.panel{min-height:0;max-height:calc(100dvh - var(--main-top-offset, 240px));overflow-y:auto}}
