:root{--ink: #17201b;--muted: #647067;--soft: #f4f1ec;--base: #fbfaf7;--surface: #ffffff;--line: #e4dfd6;--green: #2f6b4f;--green-dark: #214d39;--blue: #315d82;--clay: #a9573f;--gold: #b6862c;--danger: #b3261e;--shadow: 0 18px 48px rgb(23 32 27 / .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--base);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}a{color:inherit}.app-shell{min-height:100svh;padding:0}.app-frame{width:100%;max-width:1200px;margin:0 auto}.centered-frame,.login-screen{display:grid;min-height:calc(100svh - 36px);place-items:center}.loading-mark{width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.login-screen{max-width:440px;margin:0 auto;padding:24px 16px}.auth-card{display:grid;width:100%;gap:22px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:28px;box-shadow:var(--shadow)}.brand-lockup{display:inline-flex;align-items:center;gap:12px;width:fit-content;font-size:18px;font-weight:900}.brand-mark,.metric-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;background:var(--green);color:#fff}.auth-heading{display:grid;gap:8px}.auth-heading h1{margin:0;font-size:30px;line-height:1;letter-spacing:0}.auth-heading p{margin:0;color:var(--muted);line-height:1.45}.auth-button,.google-auth-slot{width:100%}.google-auth-slot{display:grid;min-height:44px;place-items:center}.google-auth-slot.loading{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:13px;font-weight:900}.google-button{width:100%}.surface,.metric-tile{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.workspace-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 22px}.header-actions{display:flex;align-items:center;gap:8px}.module-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 14px}.authenticated-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100svh}.side-nav{position:sticky;top:0;display:grid;align-content:start;gap:28px;height:100svh;border-right:1px solid var(--line);background:var(--surface);padding:22px 18px}.side-brand{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:900}.nav-stack{display:grid;gap:6px}.shell-main{min-width:0;padding:0 32px 40px}.accountbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 -32px 28px;border-bottom:1px solid var(--line);background:#fbfaf7eb;padding:14px 32px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.account-welcome{display:grid;gap:3px;min-width:0}.accountbar .account-actions{display:flex;align-items:center;gap:8px;min-width:auto}.account-welcome strong,.account-welcome span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-welcome span{color:var(--muted);font-size:13px;font-weight:800}.account-welcome strong{color:var(--ink);font-size:18px;line-height:1.1;font-weight:950}.account-button{min-width:106px}.language-button{width:48px;min-width:48px;padding:0}.household-select{min-height:40px;max-width:220px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px;color:var(--ink);font-weight:850}.eyebrow{margin:0 0 8px;color:var(--green);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.page-title{margin:0;font-size:clamp(30px,5vw,52px);line-height:1;letter-spacing:0}.section-title{margin:0;font-size:18px;font-weight:900;letter-spacing:0}.muted,.form-hint{color:var(--muted)}.form-hint{margin:0;font-size:13px}.notice{display:inline-flex;align-items:center;gap:8px;margin:0;border-radius:8px;padding:12px 14px;font-weight:800}.notice.error{background:#b3261e14;color:var(--danger)}.invite-page{display:grid;min-height:100svh;place-items:center;background:var(--soft);padding:24px}.invite-panel{display:grid;width:min(520px,100%);gap:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:28px;box-shadow:var(--shadow)}.invite-hero{display:grid;gap:10px}.invite-hero h1{margin:0;color:var(--ink);font-size:38px;line-height:1;letter-spacing:0}.invite-hero p{margin:0;color:var(--muted);line-height:1.45}.invite-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.invite-details div{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--soft);padding:12px}.invite-details span,.invite-auth p{color:var(--muted);font-size:12px;font-weight:900}.invite-details strong{overflow-wrap:anywhere;color:var(--ink);font-size:15px}.invite-action{width:100%}.invite-auth{display:grid;gap:12px}.invite-auth p{display:inline-flex;align-items:center;gap:8px;margin:0}.section-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--line);border-radius:8px;color:var(--green)}.status-pill,.count-badge,.chip{display:inline-flex;align-items:center;justify-content:center;min-height:30px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:900;white-space:nowrap}.status-pill.live{border-color:#2f6b4f3d;background:#2f6b4f14;color:var(--green)}.btn,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:0;border-radius:8px;background:var(--green);color:#fff;font-weight:900;text-decoration:none}.btn{padding:10px 14px}.btn.secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}.icon-button{width:42px;padding:0}.input,.textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:11px 12px;color:var(--ink);outline:none}.compact-input{min-height:38px;padding:8px 10px;font-size:13px}input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.textarea{min-height:92px;resize:vertical}.input:focus,.textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #315d821f}.field{display:grid;gap:7px}.field span{color:var(--muted);font-size:12px;font-weight:900}.field-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field-group.narrow{grid-template-columns:minmax(120px,.55fr) minmax(120px,.45fr)}.field-grid{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(260px,1.2fr);gap:14px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric-tile{display:grid;grid-template-columns:42px 1fr;gap:6px 12px;align-items:center;padding:14px}.metric-tile strong{font-size:28px;line-height:1}.metric-tile>span:last-child{grid-column:2;color:var(--muted);font-size:13px;font-weight:800}.dashboard-grid,.split-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:16px}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.module-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:14px;color:var(--ink);text-decoration:none;box-shadow:var(--shadow)}.module-card.large{grid-template-columns:44px minmax(0,1fr) auto 18px;min-height:92px}.module-card span:nth-child(2){display:grid;gap:4px;min-width:0}.module-card strong,.module-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-card small{color:var(--muted);font-size:13px;font-weight:700}.module-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;background:#315d821a;color:var(--blue)}.module-tabs{display:flex;gap:6px;margin:0 0 18px;border-bottom:1px solid var(--line);overflow-x:auto}.module-tab{display:inline-flex;align-items:center;min-height:42px;border-bottom:2px solid transparent;padding:0 12px;color:var(--muted);font-size:14px;font-weight:900;text-decoration:none;white-space:nowrap}.module-tab.router-link-exact-active{border-bottom-color:var(--green);color:var(--green)}.recipe-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:16px;align-items:start}.recipes-library{display:grid;gap:16px}.surface{padding:18px}.main-surface,.side-surface,.form-surface,.list-surface{display:grid;align-content:start;gap:16px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.timeline,.item-list,.shopping-list{display:grid;gap:10px}.recipe-list{display:grid;gap:12px}.recipe-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px}.recipe-card-main{display:grid;gap:8px;min-width:0}.recipe-card-title{display:grid;gap:3px;min-width:0}.recipe-card-title strong{overflow-wrap:anywhere;font-size:17px}.recipe-card-title span,.recipe-card small{color:var(--muted);font-size:12px;font-weight:900;line-height:1.45}.recipe-card small{overflow-wrap:anywhere}.recipe-card-side,.recipe-actions{display:flex;align-items:center;gap:8px}.recipe-card-side{justify-content:flex-end;flex-wrap:wrap;max-width:260px}.recipe-actions{flex-wrap:nowrap}.danger-button:has(span){width:auto;padding:0 10px}.danger-button span{font-size:12px;font-weight:900}.recipe-composer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;overflow-y:auto;background:#17201b38;padding:24px}.recipe-composer{width:min(940px,100%);max-height:min(860px,calc(100svh - 48px));overflow-y:auto}.catalog-modal{width:min(980px,100%);max-height:min(820px,calc(100svh - 48px));overflow-y:auto}.catalog-tabs{display:flex;flex-wrap:wrap;gap:8px}.catalog-tab{min-height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 12px;color:var(--ink);font-weight:900}.catalog-tab.active{border-color:var(--green);background:#2f6b4f1a;color:var(--green)}.catalog-list{display:grid;gap:8px}.catalog-row{display:grid;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--soft);padding:10px}.ingredient-catalog-row{grid-template-columns:minmax(150px,1.2fr) 90px minmax(120px,.9fr) minmax(130px,1fr) auto 42px 42px}.category-catalog-row{grid-template-columns:minmax(180px,1fr) auto 42px}.location-catalog-row{grid-template-columns:minmax(180px,1fr) 42px 42px}.strong-input{font-weight:900}.recipe-name-field .input{min-height:54px;font-size:20px;font-weight:900}.meal-slot-picker{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.meal-slot-picker>span{width:100%;color:var(--muted);font-size:12px;font-weight:900}.meal-slot-picker small{color:var(--muted);font-size:12px;font-weight:900}.meal-slot-choice{min-height:48px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 14px;color:var(--ink);font-weight:900}.meal-slot-choice.selected{border-color:var(--green);background:#2f6b4f1a;color:var(--green);box-shadow:0 0 0 3px #2f6b4f1a}.playful-editor{gap:10px}.ingredient-card-row{display:grid;grid-template-columns:minmax(160px,1.4fr) 76px minmax(90px,.75fr) minmax(116px,.9fr) minmax(130px,1fr) 42px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--soft);padding:10px}.ingredient-card-row .input{background:#fff}.ingredient-name-input{font-weight:900}.autocomplete-input{position:relative;min-width:0}.autocomplete-menu{position:absolute;top:calc(100% + 6px);right:0;left:0;z-index:45;display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:6px;box-shadow:0 18px 36px #17201b29}.autocomplete-option{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;min-height:34px;border:0;border-radius:6px;background:transparent;padding:7px 8px;color:var(--ink);text-align:left;font-size:13px;font-weight:900}.autocomplete-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autocomplete-option.active,.autocomplete-option:hover{background:#2f6b4f1a;color:var(--green)}.create-option{color:var(--blue)}.timeline-item,.list-row,.action-row,.shopping-row{display:grid;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;text-decoration:none}.timeline-item{grid-template-columns:130px 1fr;padding:14px}.timeline-item span,.meal-label,.list-row span,.shopping-row small{color:var(--muted);font-size:12px;font-weight:900}.empty-state{display:grid;gap:6px;border:1px dashed var(--line);border-radius:8px;background:var(--soft);padding:18px;color:var(--muted)}.empty-state strong{color:var(--ink)}.empty-state.wide{margin-bottom:16px}.action-row{grid-template-columns:22px 1fr;min-height:54px;padding:14px;font-weight:900}.action-list{display:grid;gap:10px}.week-board{display:grid;grid-template-columns:repeat(7,minmax(190px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}.planner-header{align-items:center}.week-controls{display:flex;align-items:center;gap:8px}.week-date-selector{position:relative;display:grid;width:min(330px,100%);gap:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:8px;box-shadow:var(--shadow)}.week-date-selector.busy{opacity:.78}.week-date-topline,.mini-calendar-head,.week-date-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.week-date-range{display:flex;min-width:0;flex:1;align-items:center;justify-content:center;gap:8px;border:0;border-radius:6px;background:transparent;color:var(--green);padding:4px 6px;text-align:center}.week-date-range span{display:grid;min-width:0;gap:2px}.week-date-range strong,.mini-calendar-head strong{overflow:hidden;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.week-date-range small,.week-date-footer{color:var(--muted);font-size:12px;font-weight:900}.mini-icon{width:34px;min-height:34px}.mini-calendar{position:absolute;top:calc(100% + 8px);right:0;z-index:15;display:grid;width:330px;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:10px;box-shadow:var(--shadow)}.mini-weekdays,.mini-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.mini-weekdays span{color:var(--muted);font-size:11px;font-weight:900;text-align:center;text-transform:uppercase}.mini-days button{min-width:0;min-height:32px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--ink);font-size:12px;font-weight:900}.mini-days button.muted{color:#64706785}.mini-days button.selected{border-color:#2f6b4f40;background:#2f6b4f1a;color:var(--green)}.week-date-footer{padding-top:2px}.week-date-status{padding:7px 4px 0;color:var(--muted);font-size:12px;font-weight:900}.week-date-error{color:var(--danger)}.week-picker{display:grid;gap:4px;min-width:170px}.week-picker span,.date-field-stack .field span{color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.week-picker strong{font-size:13px}.secondary-icon{border:1px solid var(--line);background:#fff;color:var(--ink)}.planner-layout,.shopping-layout{display:grid;grid-template-columns:minmax(620px,1fr) 320px;gap:16px;align-items:start}.shopping-layout{grid-template-columns:320px minmax(0,1fr)}.week-matrix{overflow-x:auto}.matrix-header,.matrix-row{display:grid;grid-template-columns:112px repeat(7,minmax(112px,1fr));gap:8px;min-width:920px;align-items:stretch}.matrix-header{margin-bottom:8px}.matrix-header strong{display:grid;gap:2px;border-bottom:2px solid var(--ink);padding:0 4px 8px;font-size:14px}.matrix-header span{color:var(--muted);font-size:12px}.matrix-row{margin-bottom:8px}.slot-heading{display:flex;align-items:center;color:var(--muted);font-size:13px}.meal-cell-button{display:grid;align-items:center;min-height:64px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;color:var(--muted);text-align:left}.meal-cell-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:900}.meal-cell-button.planned{border-color:#2f6b4f47;background:#2f6b4f0f;color:var(--ink)}.meal-cell-button.selected{border-color:var(--blue);box-shadow:0 0 0 3px #315d821f}.meal-editor,.shopping-scope{display:grid;gap:16px;min-width:0}.day-column{display:grid;align-content:start;gap:10px;min-width:190px}.day-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--ink);padding:0 2px 8px}.day-header span{color:var(--muted);font-weight:900}.meal-planner{display:grid;gap:9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:12px}.meal-planner strong{display:block;margin-top:3px;min-height:21px}.save-button{width:100%}.ingredient-editor{display:grid;gap:8px}.ingredient-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.compact-button{min-height:36px;padding:8px 10px;font-size:13px}.ingredient-header,.ingredient-row{display:grid;grid-template-columns:minmax(150px,1.3fr) 72px minmax(94px,.8fr) minmax(116px,.95fr) minmax(120px,1fr) 42px;gap:8px;align-items:center}.ingredient-header{padding:0 2px;color:var(--muted);font-size:12px;font-weight:900}.form-actions{display:flex;justify-content:flex-end;gap:10px}.spread-actions{justify-content:space-between}.search-field{display:grid;grid-template-columns:20px 1fr;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 12px;color:var(--muted)}.search-field input{min-height:40px;border:0;background:transparent;color:var(--ink);outline:0}.pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:13px;font-weight:900}.segmented-control{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;border:1px solid var(--line);border-radius:8px;background:var(--soft);padding:4px}.segmented-control.two-options{grid-template-columns:repeat(2,1fr)}.date-field-stack{display:grid;gap:12px}.date-field-stack .input,.week-picker .input{min-width:0}.range-summary{display:grid;gap:4px;margin:0;color:var(--muted);line-height:1.35}.range-summary strong{color:var(--ink)}.segmented-control button{min-height:34px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:13px;font-weight:900}.segmented-control button.active{background:#fff;color:var(--green);box-shadow:0 1px 2px #17201b14}.danger-button{background:#b3261e14;color:var(--danger)}.icon-button.copied{border-color:#2f6b4f33;background:#2f6b4f1a;color:var(--green)}.settings-form{display:grid;gap:14px;border-bottom:1px solid var(--line);padding-bottom:18px}.settings-form:last-child{border-bottom:0;padding-bottom:0}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.slot-order-list{display:grid;gap:8px}.slot-order-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 10px}.editable-list{display:grid;gap:8px}.editable-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px}.invite-row{min-height:58px;padding:10px 14px}.invite-display{min-height:36px;gap:2px}.invite-display strong{font-size:16px;line-height:1.15}.invite-display small{color:var(--muted);font-size:12px;font-weight:850;line-height:1.25}.slot-order-row.editable-row{grid-template-columns:28px minmax(0,1fr) auto}.profile-row{grid-template-columns:26px minmax(0,1fr) auto}.profile-color{width:18px;height:18px;border:2px solid white;border-radius:50%;box-shadow:0 0 0 1px var(--line)}.member-edit-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.member-color-swatches{display:flex;flex-wrap:wrap;gap:6px}.color-swatch{width:24px;min-width:24px;height:24px;min-height:24px;border:2px solid white;border-radius:50%;padding:0;box-shadow:0 0 0 1px var(--line)}.color-swatch.selected{box-shadow:0 0 0 2px var(--ink)}.color-swatch:focus-visible{outline:3px solid rgb(49 93 130 / .2);outline-offset:2px}.pet-row{grid-template-columns:46px minmax(0,1fr) auto;gap:14px;min-height:82px;padding:14px}.pet-row.editing{grid-template-columns:46px minmax(0,1fr);align-items:start}.pet-row.editing .slot-order-actions{grid-column:2;justify-content:flex-start}.compact-field{gap:5px}.inline-display{display:grid;min-width:0;min-height:42px;align-content:center;justify-items:start;border:0;border-radius:8px;background:transparent;padding:0;color:var(--ink);text-align:left}.inline-display:hover{color:var(--green)}.inline-display strong,.inline-display span{overflow-wrap:anywhere}.pet-display{gap:3px}.pet-display span{color:var(--muted);font-size:13px;font-weight:800}.pet-edit-fields{display:grid;grid-template-columns:1fr;gap:8px;min-width:0}.drag-handle{display:grid;width:28px;min-height:38px;place-items:center;color:var(--muted);cursor:grab}.drag-handle:active{cursor:grabbing}.species-mark{display:grid;width:46px;height:46px;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--soft);font-size:22px}.slot-order-actions,.row-badges{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.list-row{grid-template-columns:minmax(0,1fr) auto;padding:13px}.list-row div{display:grid;gap:4px;min-width:0}.list-row strong,.list-row span,.list-row small{overflow-wrap:anywhere}.list-row small{color:var(--muted);font-size:12px;font-weight:700}.item-list.compact .list-row{grid-template-columns:1fr}.shopping-row{grid-template-columns:38px minmax(0,1fr) auto;width:100%;padding:12px;text-align:left}.shopping-row span:nth-child(2){display:grid;gap:3px}.shopping-row.done{color:var(--muted)}.shopping-row.done strong:first-child{text-decoration:line-through}.shopping-group{display:grid;gap:8px}.shopping-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 2px 0}.check{display:grid;width:32px;height:32px;place-items:center;border:2px solid rgb(47 107 79 / .22);border-radius:8px;background:#fff;color:var(--green);font-weight:900}.nav-item{display:flex;min-width:0;align-items:center;gap:10px;border-radius:8px;padding:11px 12px;color:var(--muted);text-decoration:none;font-size:14px;font-weight:900}.nav-item.router-link-active{background:#2f6b4f1a;color:var(--green)}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.dashboard-grid,.split-layout,.recipe-layout,.planner-layout,.shopping-layout{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.authenticated-shell{display:block;padding-bottom:72px}.side-nav{position:fixed;right:12px;bottom:12px;left:12px;top:auto;z-index:20;display:block;height:auto;min-height:0;border:1px solid var(--line);border-radius:8px;background:#fffffff0;padding:8px;box-shadow:0 18px 48px #17201b29;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.side-brand{display:none}.nav-stack{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.nav-item{justify-content:center;padding:9px 6px;font-size:12px}.shell-main{min-height:100svh;padding:0 14px 28px}.app-frame{max-width:none}.accountbar{margin:0 -14px 20px;padding:12px 14px}.workspace-header,.header-actions{align-items:stretch}.workspace-header{flex-direction:column}.header-actions{width:100%}.header-actions .btn{flex:1}.ingredient-header{display:none}.recipe-card{grid-template-columns:1fr}.recipe-card-side{justify-content:space-between;max-width:none}.recipe-composer-backdrop{align-items:end;padding:0}.recipe-composer,.catalog-modal{width:100%;max-height:100svh;min-height:100svh;border-right:0;border-left:0;border-radius:0}.ingredient-catalog-row,.category-catalog-row,.location-catalog-row{grid-template-columns:minmax(0,1fr) 42px}.ingredient-catalog-row .input,.ingredient-catalog-row .autocomplete-input,.category-catalog-row .input,.location-catalog-row .input{grid-column:span 2}.ingredient-catalog-row .count-badge,.category-catalog-row .count-badge{justify-self:start}.ingredient-card-row{grid-template-columns:minmax(0,1fr) 86px}.ingredient-card-row .autocomplete-input:first-child,.ingredient-card-row .autocomplete-input:nth-of-type(n+2){grid-column:span 2}.ingredient-row{grid-template-columns:minmax(0,1fr) 90px;border:1px solid var(--line);border-radius:8px;padding:10px}.ingredient-row .input:first-child,.ingredient-row select{grid-column:span 2}.ingredient-row .icon-button{justify-self:end}.week-controls,.week-date-selector{width:100%}.mini-calendar{left:0;right:auto;width:min(100%,330px)}.week-picker{flex:1}.accountbar .account-actions{flex-shrink:0}}@media(max-width:620px){.app-shell{padding:0}.accountbar{align-items:flex-start}.accountbar .account-actions{gap:6px}.account-button{width:42px;min-width:42px;padding:0}.account-button svg{margin:0}.account-button{font-size:0}.workspace-header,.module-header{align-items:stretch;flex-direction:column}.auth-card{padding:22px}.metric-grid,.field-group,.field-group.narrow,.pet-row{grid-template-columns:1fr}.slot-order-row.editable-row{grid-template-columns:32px minmax(0,1fr)}.profile-row{grid-template-columns:minmax(0,1fr)}.pet-edit-fields{grid-template-columns:1fr}.slot-order-row.editable-row .slot-order-actions,.profile-row .slot-order-actions,.pet-row .slot-order-actions{justify-content:flex-start}.timeline-item{grid-template-columns:1fr}.shopping-row{grid-template-columns:34px minmax(0,1fr)}.shopping-row>strong{grid-column:2}.module-card.large,.module-card{grid-template-columns:42px minmax(0,1fr)}.module-card>.count-badge,.module-card>svg{display:none}}
