.page-shell{flex-direction:column;gap:1.5rem;padding:3rem 1.5rem 4rem;display:flex}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;display:grid}.card{background:#0f172ad1;border:1px solid #94a3b833;border-radius:1rem;padding:1.5rem;box-shadow:0 18px 45px #0f172a47}.hero-card{justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.eyebrow{color:#c084fc;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.5rem;font-size:.85rem;font-weight:700}.supporting-copy{color:#cbd5e1;max-width:60ch;line-height:1.6}.stack{flex-direction:column;gap:.9rem;display:flex}.detail-list{gap:.75rem;display:grid}.detail-list dt{color:#94a3b8;font-size:.9rem}.detail-list dd{margin:.15rem 0 0}.field{flex-direction:column;gap:.4rem;display:flex}.field span{color:#cbd5e1;font-size:.95rem;font-weight:600}.field input{color:#f8fafc;font:inherit;background:#0f172a73;border:1px solid #94a3b84d;border-radius:.75rem;padding:.85rem 1rem}.field input::placeholder{color:#94a3b8}.field textarea{color:#f8fafc;font:inherit;resize:vertical;background:#0f172a73;border:1px solid #94a3b84d;border-radius:.75rem;min-height:7rem;padding:.85rem 1rem}.field-control,.field select{color:#f8fafc;font:inherit;background:#0f172a73;border:1px solid #94a3b84d;border-radius:.75rem;padding:.85rem 1rem}.primary-button,.secondary-button,.text-link{font:inherit;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:inline-flex}.primary-button,.secondary-button{cursor:pointer;border:1px solid #0000;padding:.8rem 1.2rem}.primary-button{color:#fff;background:linear-gradient(135deg,#8b5cf6,#ec4899)}.secondary-button{color:#f8fafc;background:0 0;border-color:#94a3b859}.primary-button:hover,.secondary-button:hover,.text-link:hover{transform:translateY(-1px);box-shadow:0 12px 30px #8b5cf638}.primary-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.7}.text-link{color:#c084fc;justify-content:flex-start;margin-top:1rem}.invite-link{overflow-wrap:anywhere;background:#0f172a73;border:1px dashed #c084fc99;border-radius:.75rem;margin:1rem 0 .5rem;padding:.85rem 1rem}.member-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1.5rem 0;display:grid}.member-card{background:#1e293bbf;border:1px solid #94a3b829;border-radius:.9rem;padding:1rem}.member-card h2{margin-bottom:.35rem;font-size:1.1rem}.invite-panel,.inline-error,.error-card{margin-top:1rem}.inline-error,.error-card{color:#fecaca}.error-details-toggle{color:#93c5fd;cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.error-details-toggle:hover{color:#bfdbfe}.error-details{white-space:pre-wrap;word-break:break-word;background:#0000004d;border-radius:4px;max-height:200px;margin-top:.5rem;padding:.5rem .75rem;font-size:.8rem;overflow:auto}.pantry-header{justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.pantry-form-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;display:grid}.pantry-summary{margin-top:1rem}.pantry-groups{flex-direction:column;gap:1.25rem;margin-top:1.5rem;display:flex}.pantry-group{flex-direction:column;gap:.9rem;display:flex}.pantry-group-header{justify-content:space-between;align-items:center;display:flex}.pantry-group-header h3{margin:0}.pantry-group-header span{color:#cbd5e1;font-size:.95rem}.pantry-item-list{gap:.9rem;display:grid}.pantry-item-card{background:#1e293bbf;border:1px solid #94a3b829;border-radius:.9rem;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.pantry-item-card h4{margin:0 0 .25rem}.pantry-item-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:.75rem;display:flex}.pantry-inline-field{min-width:120px}.pantry-unit{color:#cbd5e1;padding-bottom:.8rem;font-weight:600}.danger-button{color:#fecaca;border-color:#f8717173}.success-card{color:#bbf7d0}.grocery-header-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.grocery-summary-card{margin-top:0}.empty-state-card{text-align:center;align-items:center;padding:3rem 2rem}.empty-state-card .supporting-copy{margin:.75rem auto 1.5rem}.empty-state-card .primary-button{text-decoration:none;display:inline-flex}.empty-state-icon{margin-bottom:1rem;font-size:3rem}.grocery-groups{flex-direction:column;gap:1.25rem;display:flex}.grocery-group{flex-direction:column;gap:1rem;display:flex}.grocery-item-list{gap:.9rem;display:grid}.grocery-item-card{cursor:pointer;background:#1e293bbf;border:1px solid #94a3b829;border-radius:.9rem;align-items:flex-start;gap:1rem;padding:1rem;display:flex}.grocery-checkbox-wrap{padding-top:.25rem}.grocery-checkbox-wrap input{accent-color:#8b5cf6;width:1.1rem;height:1.1rem}.grocery-item-copy{flex:1}.grocery-item-title-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.grocery-item-title-row h3{margin:0 0 .35rem}.grocery-item-quantity{color:#f8fafc;white-space:nowrap;font-weight:700}.no-print{display:inherit}.planner-hero{justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.planner-toolbar,.planner-nav,.planner-week-switcher{gap:.75rem;display:flex}.planner-toolbar{flex-direction:column;align-items:flex-end}.planner-nav{flex-wrap:wrap;margin-top:1rem}.planner-nav-link{margin-top:0}.planner-week-switcher{flex-wrap:wrap;justify-content:flex-end;align-items:center}.planner-week-label{background:#0f172a73;border:1px solid #94a3b833;border-radius:.9rem;flex-direction:column;align-items:center;min-width:180px;padding:.8rem 1rem;display:flex}.planner-week-label span{color:#94a3b8;font-size:.85rem}.planner-layout{grid-template-columns:minmax(280px,320px) minmax(0,1fr);gap:1.5rem;display:grid}.planner-settings-card,.planner-board-card{height:fit-content}.planner-settings-days{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.planner-checkbox{background:#0f172a73;border:1px solid #94a3b833;border-radius:.8rem;align-items:center;gap:.65rem;padding:.8rem 1rem;display:flex}.planner-checkbox input{accent-color:#c084fc}.planner-servings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.planner-servings-field span{font-size:.85rem}.planner-board-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.planner-grid{grid-template-columns:repeat(7,minmax(180px,1fr));gap:1rem;padding-bottom:.25rem;display:grid;overflow-x:auto}.day-card{background:#1e293bb8;border:1px solid #94a3b82e;border-radius:1rem;flex-direction:column;gap:.9rem;min-height:100%;padding:1rem;transition:border-color .15s,box-shadow .15s,opacity .15s,transform .15s;display:flex}.day-card--locked{border-color:#c084fc80}.day-card--skipped{opacity:.72}.day-card--dragging,.day-card--over{border-color:#ec4899a6;box-shadow:0 18px 30px #ec489929}.day-card-header,.day-card-state-row,.day-card-actions,.day-card-meta{display:flex}.day-card-header,.day-card-state-row{justify-content:space-between;align-items:flex-start}.day-card-header h3,.day-card-body h4{margin:0}.day-card-drag-handle{color:#cbd5e1;cursor:grab;font:inherit;background:0 0;border:1px dashed #94a3b859;border-radius:999px;min-width:2.5rem;padding:.45rem .75rem;font-weight:700}.day-card-drag-handle:disabled{cursor:not-allowed;opacity:.5}.state-pill{border-radius:999px;padding:.35rem .7rem;font-size:.8rem;font-weight:700}.state-pill--active{color:#bbf7d0;background:#22c55e2e}.state-pill--skipped{color:#e2e8f0;background:#94a3b82e}.state-pill--locked{color:#e9d5ff;background:#c084fc2e}.day-card-image{aspect-ratio:16/10;object-fit:cover;background:#0f172a66;border-radius:.9rem;width:100%}.day-card-image--placeholder{color:#cbd5e1;justify-content:center;align-items:center;font-size:2rem;display:flex}.day-card-body{flex-direction:column;flex:1;gap:.65rem;display:flex}.day-card-meta{color:#cbd5e1;flex-wrap:wrap;gap:.75rem;font-size:.9rem}.day-card-link{margin-top:0}.day-card-actions{flex-wrap:wrap;gap:.65rem}.day-card-action{flex:120px}.day-card-paste-form,.history-header-actions{flex-direction:column;gap:.75rem;display:flex}.history-filter-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.history-checkbox{color:#cbd5e1;align-items:center;gap:.6rem;margin-top:1rem;display:inline-flex}.history-list{flex-direction:column;gap:1rem;display:flex}.history-card{background:#1e293bbf;border:1px solid #94a3b829;border-radius:.9rem;flex-direction:column;gap:1rem;padding:1rem;display:flex}.history-card h3{margin:0 0 .35rem}.history-card-header,.history-entry-controls{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.history-entry-controls{flex-wrap:wrap}.history-entry-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.history-control-label{color:#cbd5e1;margin:0 0 .45rem;font-size:.9rem}.history-notes{flex-direction:column;gap:.75rem;display:flex}.history-notes-input{width:100%}.history-notes-toggle{margin-top:0}.star-rating{gap:.2rem;display:inline-flex}.star-button{color:#64748b;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1}.star-button.is-filled{color:#fbbf24}.star-rating.is-readonly .star-button{cursor:default}.favorite-button{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #94a3b84d;border-radius:999px;min-width:2.75rem;padding:.55rem .8rem;font-size:1.1rem;line-height:1}.favorite-button.is-active{color:#fb7185;border-color:#fb718573}@media (width<=768px){.hero-card,.pantry-header,.pantry-item-card,.pantry-item-actions,.planner-hero,.planner-toolbar,.grocery-item-title-row,.history-card-header,.history-entry-controls,.history-entry-actions{flex-direction:column;align-items:flex-start}.pantry-item-actions,.history-header-actions,.grocery-header-actions{width:100%}.planner-toolbar,.planner-week-switcher{align-items:stretch}.planner-layout,.planner-grid,.planner-settings-days,.planner-servings-grid{grid-template-columns:1fr}}@media print{:root{color:#0f172a;background:#fff}#root{max-width:none}.page-shell{gap:1rem;padding:0}.card,.grocery-item-card{box-shadow:none;color:#0f172a;background:#fff;border:1px solid #cbd5e1}.supporting-copy,.grocery-item-quantity,.eyebrow,.pantry-group-header span{color:#334155}.no-print{display:none!important}}.dietary-restrictions-section{border-top:1px solid #94a3b833;margin-top:1.5rem;padding-top:1.5rem}.dietary-restrictions-section h2{margin-bottom:.25rem}.preset-grid{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.preset-chip{color:#e2e8f0;cursor:pointer;background:#94a3b81a;border:1px solid #94a3b84d;border-radius:2rem;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.9rem;transition:all .15s;display:inline-flex}.preset-chip:hover{background:#94a3b833;border-color:#94a3b880}.preset-chip--active{color:#e9d5ff;background:#a78bfa33;border-color:#a78bfa}.preset-chip__check{color:#a78bfa;font-weight:700}.active-restrictions{margin:1.5rem 0}.active-restrictions h3{margin-bottom:.75rem}.restriction-card{background:#1e293b99;border:1px solid #94a3b826;border-radius:.75rem;margin-bottom:.75rem;padding:1rem}.restriction-card__header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.restriction-card__actions{gap:.75rem;display:flex}.text-button{color:#a78bfa;cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem}.text-button:hover{text-decoration:underline}.text-button--danger{color:#f87171}.substitution-list{margin-top:1rem}.substitution-table{border-collapse:collapse;width:100%;font-size:.85rem}.substitution-table th{color:#94a3b8;text-align:left;border-bottom:1px solid #94a3b833;padding:.4rem .5rem;font-weight:600}.substitution-table td{border-bottom:1px solid #94a3b814;padding:.4rem .5rem}.add-substitution-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.add-substitution-row input,.add-substitution-row select{color:#e2e8f0;background:#0f172a99;border:1px solid #94a3b84d;border-radius:.4rem;padding:.4rem .6rem;font-size:.85rem}.add-substitution-row input{flex:1;min-width:120px}.small-button{color:#e9d5ff;cursor:pointer;background:#a78bfa33;border:1px solid #a78bfa;border-radius:.4rem;padding:.4rem .8rem;font-size:.8rem}.small-button:hover{background:#a78bfa59}.custom-restriction-form{background:#1e293b99;border:1px solid #94a3b833;border-radius:.75rem;margin-top:1rem;padding:1.25rem}.custom-restriction-form h3{margin-bottom:1rem}.custom-restriction-form h4{margin-top:1rem;margin-bottom:.5rem}.form-field{margin-bottom:.75rem}.form-field label{color:#94a3b8;margin-bottom:.25rem;font-size:.85rem;display:block}.form-field input{color:#e2e8f0;background:#0f172a99;border:1px solid #94a3b84d;border-radius:.4rem;width:100%;padding:.5rem .75rem;font-size:.9rem}.substitution-preview{margin:.5rem 0;padding:0;font-size:.85rem;list-style:none}.substitution-preview li{align-items:center;gap:.5rem;padding:.25rem 0;display:flex}.form-actions{gap:.75rem;margin-top:1.25rem;display:flex}.error-text{color:#f87171;font-size:.9rem}.admin-success{color:#4ade80;background:#22c55e1a;border-color:#22c55e4d}.admin-timestamp{color:#ffffff80;font-size:.8rem}.admin-services{flex-direction:column;gap:.5rem;display:flex}.admin-service-row{align-items:center;gap:.5rem;display:flex}.admin-status-dot{background:#6b7280;border-radius:50%;width:8px;height:8px}.admin-status-dot.ok{background:#4ade80}.admin-status-dot.error{background:#f87171}.admin-service-name{text-transform:capitalize;font-weight:500}.admin-service-detail{color:#fff9;margin-left:auto;font-size:.85rem}.admin-config-details{margin-top:.5rem}.admin-config-details summary{cursor:pointer;color:#fff9;font-size:.85rem}.admin-config-pre{color:#fffc;background:#0000004d;border-radius:6px;margin-top:.5rem;padding:.75rem;font-size:.75rem;overflow-x:auto}.admin-stat-grid{grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:.75rem;display:grid}.admin-stat{flex-direction:column;align-items:center;gap:.25rem;display:flex}.admin-stat-value{background:linear-gradient(135deg,#8b5cf6,#ec4899);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700}.admin-stat-label{color:#ffffff80;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.admin-warning{color:#fbbf24;background:#fbbf241a;border-radius:6px;padding:.5rem;font-size:.85rem}.admin-cuisine-list,.admin-household-list{flex-direction:column;gap:.25rem;margin-top:.5rem;display:flex}.admin-cuisine-row,.admin-household-row{justify-content:space-between;align-items:center;padding:.25rem 0;font-size:.85rem;display:flex}.admin-cuisine-count{color:#ffffff80;font-size:.8rem}.admin-household-name{font-weight:500}.admin-household-members{color:#ffffff80;font-size:.8rem}.recipe-search-layout{grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:1.5rem;display:grid}.recipe-sidebar{height:fit-content;position:sticky;top:1.5rem}.recipe-search-fields{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.recipe-facets{border-top:1px solid #94a3b833;flex-direction:column;gap:1.25rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}.recipe-facet-group h3{margin:0 0 .6rem;font-size:.95rem}.recipe-facet-list{flex-wrap:wrap;gap:.4rem;display:flex}.recipe-facet-chip{color:#cbd5e1;cursor:pointer;background:#94a3b81a;border:1px solid #94a3b840;border-radius:2rem;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.82rem;transition:all .15s;display:inline-flex}.recipe-facet-chip:hover{background:#94a3b833;border-color:#94a3b880}.recipe-facet-chip.is-active{color:#e9d5ff;background:#a78bfa33;border-color:#a78bfa}.recipe-facet-count{color:#94a3b8;font-size:.75rem}.recipe-results-summary{margin-bottom:.5rem}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.recipe-card{cursor:pointer;background:#1e293bbf;border:1px solid #94a3b829;border-radius:1rem;flex-direction:column;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;overflow:hidden}.recipe-card:hover{border-color:#c084fc73;transform:translateY(-2px);box-shadow:0 12px 30px #8b5cf626}.recipe-card-image{aspect-ratio:16/10;object-fit:cover;background:#0f172a66;width:100%}.recipe-card-image--placeholder{color:#cbd5e1;justify-content:center;align-items:center;font-size:2.5rem;display:flex}.recipe-card-body{flex-direction:column;flex:1;gap:.5rem;padding:1rem;display:flex}.recipe-card-title{margin:0;font-size:1.05rem}.recipe-card-meta{color:#cbd5e1;flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.85rem;display:flex}.recipe-meta-tag{color:#e9d5ff;background:#c084fc26;border-radius:999px;padding:.2rem .6rem;font-size:.8rem;font-weight:600}.recipe-card-rating{margin-top:auto}.recipe-card-tags{flex-wrap:wrap;gap:.35rem;margin-top:.25rem;display:flex}.recipe-dietary-tag{color:#bbf7d0;background:#22c55e1f;border:1px solid #22c55e40;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:600}.recipe-detail-back{margin-top:0;margin-bottom:.5rem}.recipe-detail-header{gap:1.5rem;margin-top:.5rem;display:flex}.recipe-detail-image{object-fit:cover;border-radius:.9rem;width:100%;max-width:320px;height:auto}.recipe-detail-meta{color:#cbd5e1;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.5rem;display:flex}.recipe-detail-body{grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.5rem;display:grid}.recipe-detail-section h2{border-bottom:1px solid #94a3b833;margin-bottom:.75rem;padding-bottom:.5rem}.recipe-ingredient-list{flex-direction:column;gap:.5rem;padding:0;list-style:none;display:flex}.recipe-ingredient-list li{border-bottom:1px solid #94a3b814;padding:.4rem 0}.recipe-instructions-list{flex-direction:column;gap:.75rem;padding-left:1.25rem;display:flex}.recipe-instructions-list li{line-height:1.6}@media (width<=768px){.recipe-search-layout{grid-template-columns:1fr}.recipe-sidebar{position:static}.recipe-detail-header{flex-direction:column}.recipe-detail-image{max-width:100%}.recipe-detail-body{grid-template-columns:1fr}}:root{color:#f8fafc;font-synthesis:none;text-rendering:optimizelegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;background:radial-gradient(circle at top,#8b5cf640,#0000 35%),linear-gradient(#0f172a 0%,#020617 100%);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-height:100vh;margin:0}button,input{font:inherit}a{color:inherit}h1,h2,p{margin-top:0}#root{max-width:1080px;min-height:100vh;margin:0 auto}
