*{box-sizing:border-box}:root{--bg:#0b1020;--bg-elevated:#111831;--surface:#151f3c;--surface-soft:#1b2748;--text:#ecf2ff;--muted:#9fb1d7;--primary:#7c3aed;--primary-2:#06b6d4;--success:#22c55e;--danger:#f43f5e;--warning:#f59e0b;--border:#2a3b67;--ring:#60a5fa;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 4px 12px #0000003d;--shadow-md:0 12px 30px #0000004d;--space-1:0.5rem;--space-2:0.75rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--speed:180ms ease}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(1200px 500px at 10% -5%,#7c3aed33,#0000 60%),radial-gradient(900px 400px at 100% 0,#06b6d41f,#0000 60%),#0b1020;background:radial-gradient(1200px 500px at 10% -5%,#7c3aed33,#0000 60%),radial-gradient(900px 400px at 100% 0,#06b6d41f,#0000 60%),var(--bg);color:#ecf2ff;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.45;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid #60a5fa;outline:2px solid var(--ring);outline-offset:2px}.stats-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(4,1fr)}.stat-card{border:2px solid #0000;border-radius:12px;box-shadow:0 4px 14px #0000001f;color:#fff;cursor:pointer;font:inherit;margin:0;padding:1.5rem;text-align:center;transition:background .2s,box-shadow .2s,border-color .2s,transform .15s;width:100%}.stat-card:hover{box-shadow:0 6px 20px #0000002e}.stat-card:focus-visible{box-shadow:0 0 0 3px #fff,0 0 0 6px #2c3e5073;outline:none}.stat-card.active{border-color:#fffffff2;box-shadow:inset 0 0 0 1px #fff6,0 8px 24px #0003}.stat-card:active{transform:scale(.99)}.stat-icon{align-items:center;display:flex;justify-content:center;margin-bottom:.75rem}.stat-icon svg{stroke:currentColor}.stat-value{color:#fff;font-size:2.25rem;font-weight:700;margin:.25rem 0}.stat-label{color:#ffffffe6;font-size:.9rem;font-weight:600}.stat-card.total{background:#3498db}.stat-card.total:hover{background:#2e86c1}.stat-card.fresh{background:#27ae60}.stat-card.fresh:hover{background:#229954}.stat-card.expiring{background:#e67e22}.stat-card.expiring:hover{background:#d35400}.stat-card.expired{background:#e74c3c}.stat-card.expired:hover{background:#c0392b}@media (max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.pantry-card{background:var(--bg-elevated);border:1px solid var(--border);border-left:4px solid #bdc3c7;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.25rem;position:relative;transition:box-shadow .2s,border-color .2s}.pantry-card--expired{background:linear-gradient(105deg,#f43f5e33 0,var(--bg-elevated) 48%);border-left-color:#e74c3c}.pantry-card--expiring{background:linear-gradient(105deg,#f59e0b33 0,var(--bg-elevated) 48%);border-left-color:var(--warning)}.pantry-card--fresh{background:linear-gradient(105deg,#22c55e2e 0,var(--bg-elevated) 48%);border-left-color:var(--success)}.pantry-card--unknown{border-left-color:#95a5a6}.pantry-card:hover{box-shadow:var(--shadow-md)}.pantry-card-actions{display:flex;gap:.25rem;position:absolute;right:.75rem;top:.75rem}.card-action-btn{align-items:center;background:var(--surface);border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-size:.9rem;height:32px;justify-content:center;transition:background .2s;width:32px}.card-action-btn:hover{background:var(--surface-soft)}.pantry-card-icon{align-items:center;background:var(--surface);border-radius:10px;display:flex;height:56px;justify-content:center;margin-bottom:.75rem;width:56px}.pantry-card-letter{color:var(--muted);font-size:1.5rem;font-weight:700}.expiry-dot{border-radius:50%;display:inline-block;height:8px;margin-right:.35rem;vertical-align:middle;width:8px}.expiry-dot[data-status=expired]{background:#e74c3c}.expiry-dot[data-status=expiring]{background:#e67e22}.expiry-dot[data-status=fresh]{background:#27ae60}.expiry-dot[data-status=unknown]{background:#95a5a6}.pantry-card-img{border-radius:10px;height:100%;object-fit:cover;width:100%}.pantry-card-name{color:var(--text);font-size:1.1rem;font-weight:600;margin:0 0 .25rem}.pantry-card-added,.pantry-card-meta,.pantry-card-quantity{color:var(--muted);font-size:.85rem;margin:.25rem 0}.pantry-card-expiry{align-items:center;display:flex;font-size:.9rem;font-weight:600;gap:.35rem;margin:.5rem 0 0}.pantry-card-expiry.expired{color:#ff9cb0}.pantry-card-expiry.expiring-soon{color:#ffd18a}.pantry-card-expiry.fresh{color:#96f1b8}.pantry-card-expiry.unknown{color:var(--muted)}.consume-btn{background:linear-gradient(90deg,#7c3aed40,#06b6d42e);border:1px solid #4f6db1;border-radius:var(--radius-sm);color:#eef4ff;cursor:pointer;font-weight:600;margin-top:.75rem;padding:.5rem .75rem;width:100%}.consume-btn:hover{filter:brightness(1.08)}.needs-attention-section{margin-top:2rem}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.section-title{color:#27ae60;font-size:1.75rem;margin:0}.needs-attention-scope{color:#7f8c8d;font-size:1rem;font-weight:600}.view-all-link{background:none;border:none;color:#27ae60;cursor:pointer;font-size:1rem;font-weight:600;padding:.5rem 0;text-decoration:underline}.view-all-link:hover{color:#229954}.attention-count{color:#7f8c8d;font-size:.95rem;font-weight:600}.items-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr)}@media (max-width:1200px){.items-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.items-grid{grid-template-columns:1fr}}.reminder-center{margin-top:1rem}.reminder-title{color:var(--text);font-size:1.1rem;margin:0 0 .6rem}.reminder-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(3,minmax(0,1fr))}.reminder-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:.8rem}.reminder-label{color:var(--muted);font-size:.85rem;margin:0}.reminder-count{color:var(--text);font-size:1.35rem;font-weight:700;margin:.2rem 0 0}@media (max-width:768px){.reminder-grid{grid-template-columns:1fr}}.activity-feed{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);margin-top:1.2rem;padding:1rem}.activity-title{font-size:1.1rem;margin:0 0 .75rem}.activity-list{display:flex;flex-direction:column;gap:.6rem;list-style:none;margin:0;padding:0}.activity-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .75rem}.activity-message{color:var(--text);font-weight:600;margin:0}.activity-time{font-size:.8rem;margin:.2rem 0 0}.activity-empty,.activity-time{color:var(--muted)}.home-page{padding:0}.home-page-title{color:var(--text);font-size:2rem;font-weight:700;margin:0 0 .25rem}.home-page-subtitle{color:var(--muted);font-size:1rem;margin:0 0 2rem}.home-pantry-section{margin-top:2.5rem}.pantry-section-title{color:var(--text);font-size:1.5rem;font-weight:700;margin:0 0 .25rem}.error,.loading{box-shadow:var(--shadow-sm)}.pantry-page{padding:0}.pantry-page-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1.5rem}.pantry-page-title{color:var(--text);font-size:2rem;font-weight:700;margin:0 0 .25rem}.pantry-page-count{color:var(--muted);font-size:1rem;margin:0}.add-item-btn{align-items:center;background:linear-gradient(90deg,var(--primary),var(--primary-2));border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:.5rem;min-height:44px;padding:.6rem 1.25rem;transition:transform var(--speed),filter var(--speed)}.add-item-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.add-icon{font-size:1.2rem}.pantry-toolbar{display:flex;gap:1rem;margin-bottom:1.5rem}.search-wrap{align-items:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;flex:1 1;padding:0 1rem}.search-icon{font-size:1rem;margin-right:.5rem;opacity:.7}.search-input{background:#0000;border:none;color:var(--text);flex:1 1;font-size:1rem;outline:none;padding:.75rem 0}.search-input::placeholder{color:var(--muted)}.category-select{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.95rem;min-height:44px;min-width:160px;padding:.75rem 1rem}.pantry-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.pantry-empty{color:var(--muted)}.error,.loading,.pantry-empty{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:3rem;text-align:center}.error{color:#ff9cb0}.error h2{margin-bottom:.5rem}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:var(--bg-elevated);border-radius:var(--radius-lg);border-top:3px solid var(--primary);box-shadow:0 25px 50px -12px #0000002e,0 12px 24px #00000014;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.modal-header{align-items:center;background:var(--surface);border-bottom:none;display:flex;justify-content:space-between;padding:1.35rem 2rem 1.25rem}.modal-title{color:var(--text);font-size:1.5rem;font-weight:700;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:8px;color:var(--muted);cursor:pointer;display:flex;font-size:2rem;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.modal-close:hover{background:var(--surface-soft);color:var(--text)}.add-item-mode-bar{background:var(--bg-elevated);border-bottom:1px solid var(--border);padding:.65rem 2rem 1rem}.add-item-mode-switch{background:var(--surface);border-radius:10px;display:flex;gap:0;min-width:0;padding:4px;width:100%}.mode-segment{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--muted);cursor:pointer;display:inline-flex;flex:1 1;font-family:inherit;font-size:.9rem;font-weight:600;gap:.45rem;justify-content:center;min-width:0;padding:.55rem .65rem;transition:background .2s,color .2s,box-shadow .2s}.mode-segment:hover:not(.active){background:#ffffff14;color:var(--text)}.mode-segment.active{background:linear-gradient(90deg,var(--primary),var(--primary-2));box-shadow:0 1px 3px #27ae6059;color:#fff}.mode-segment svg{color:inherit;flex-shrink:0}.add-modal-back-btn{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.9rem;font-weight:600;justify-content:center;padding:.5rem 1rem;transition:background .2s,border-color .2s}.add-modal-back-btn:hover{background:var(--surface-soft);border-color:#4462a8;color:#e4dbff}.add-item-form{padding:1.25rem 2rem}.add-item-form-compact .form-row{margin-bottom:1rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr);margin-bottom:1.5rem}.form-row-2{grid-template-columns:1fr 1fr}.form-optional{margin-bottom:.5rem;margin-top:1rem}.form-optional-toggle{background:none;border:none;color:#27ae60;cursor:pointer;font-size:.9rem;font-weight:500;padding:.25rem 0}.form-optional-toggle:hover{text-decoration:underline}.form-optional-fields{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.form-optional-fields .form-row{margin-bottom:1rem}.form-group{display:flex;flex-direction:column}.form-group.full-width{grid-column:1/-1}.form-group label{color:var(--text);font-size:.875rem;font-weight:600;margin-bottom:.5rem}.required{color:#e74c3c}.form-group input,.form-group select,.form-group textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-size:1rem;padding:.75rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--ring);box-shadow:0 0 0 3px #60a5fa33;outline:none}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#e74c3c}.form-group textarea{min-height:60px;resize:vertical}.add-modal-scan{padding:1rem 2rem 1.5rem}.add-modal-scan-header{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.75rem}.add-modal-scan-hint{color:var(--muted);font-size:.95rem;margin:0}.add-modal-camera-wrap{background:#111;border-radius:12px;min-height:min(42vh,400px);overflow:hidden;position:relative}.add-modal-camera-mount{min-height:min(40vh,380px);width:100%}.add-modal-camera-mount video{display:block;width:100%}.add-modal-camera-error,.add-modal-camera-loading{background:#000c;bottom:0;color:#fff;font-size:.9rem;left:0;margin:0;padding:.75rem 1rem;position:absolute;right:0}.add-modal-camera-error{color:#f8d7da}.date-input-wrapper{align-items:center;display:flex;position:relative}.date-input-wrapper input[type=date]{flex:1 1;padding-right:2.5rem}.date-input-wrapper input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;height:100%;opacity:0;position:absolute;right:0;width:100%}.calendar-icon{font-size:1.1rem;pointer-events:none;position:absolute;right:.75rem;top:50%;transform:translateY(-50%);z-index:1}.error-message{color:#e74c3c;font-size:.75rem;margin-top:.25rem}.form-actions{background:var(--surface);border-radius:0 0 13px 13px;display:flex;gap:1rem;justify-content:flex-end;margin:1.5rem -2rem -1.25rem;padding:1.15rem 2rem 1.35rem}.btn-cancel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.btn-cancel:hover{background:var(--surface-soft);border-color:#4e68a8}.btn-add{align-items:center;background:linear-gradient(90deg,var(--primary),var(--primary-2));border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:background .2s}.btn-add:hover{filter:brightness(1.08)}.add-icon{font-size:1.25rem;font-weight:300}@media (max-width:768px){.modal-content{margin:1rem;max-width:100%}.add-item-form,.add-item-mode-bar,.form-actions,.modal-header{padding-left:1.25rem;padding-right:1.25rem}.form-actions{border-radius:0 0 12px 12px;flex-direction:column-reverse;margin-bottom:-1.25rem;margin-left:-1.25rem;margin-right:-1.25rem}.mode-segment{font-size:.82rem;padding:.5rem .4rem}.form-row,.form-row-2{gap:1rem;grid-template-columns:1fr}.form-group.full-width{grid-column:1}.btn-add,.btn-cancel{justify-content:center;width:100%}.add-modal-scan{padding-left:1.25rem;padding-right:1.25rem}.add-modal-scan-header{align-items:stretch;flex-direction:column}}.scan-page{padding:0}.scan-page-title{color:var(--text);font-size:2rem;font-weight:700;margin:0 0 .25rem}.scan-page-subtitle{color:var(--muted);font-size:1rem;margin:0 0 2rem}.scan-camera-area{margin-bottom:2rem}.scan-camera-wrapper{background:#111;border-radius:12px;min-height:min(52vh,520px);overflow:hidden;position:relative}.scan-camera-mount{min-height:min(50vh,500px);width:100%}.scan-camera-mount video{display:block;width:100%}.scan-camera-wrapper .scan-start-camera-btn{margin:1rem}.scan-camera-error,.scan-camera-loading{font-size:.95rem;margin:.5rem 1rem 0}.scan-camera-error{color:#e74c3c}.scan-camera-loading{color:#27ae60}.scan-camera-placeholder{background:var(--bg-elevated);border:2px dashed var(--border);border-radius:var(--radius-md);box-shadow:0 2px 8px #0000000f;padding:3rem;text-align:center}.scan-camera-icon{color:#bdc3c7;display:block;margin-bottom:1rem}.scan-camera-icon svg{stroke:currentColor}.scan-camera-status{color:var(--text);font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.scan-camera-hint{color:var(--muted);font-size:.95rem;margin:0 0 1.5rem}.scan-start-camera-btn{background:linear-gradient(90deg,var(--primary),var(--primary-2));border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem}.scan-start-camera-btn.secondary{background:#475569}.scan-manual{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.5rem}.scan-manual-title{color:var(--text);font-size:1.1rem;font-weight:600;margin:0 0 1rem}.scan-manual-form{display:flex;gap:.75rem;margin-bottom:.75rem}.scan-manual-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);flex:1 1;font-size:1rem;padding:.75rem 1rem}.scan-lookup-btn{background:linear-gradient(90deg,var(--primary),var(--primary-2));border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.25rem}.scan-lookup-btn:disabled{opacity:.7}.scan-manual-hint{color:var(--muted);font-size:.85rem;margin:0}.scan-manual-error{color:#e74c3c;font-size:.9rem;margin:.5rem 0 0}.recipe-generator{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-top:2rem;padding:2rem}.recipe-generator-header{margin-bottom:1.5rem}.recipe-title{color:#d9c7ff;font-size:1.75rem;font-weight:700;margin:0 0 .5rem}.recipe-subtitle{color:var(--muted);font-size:1rem;margin:0}.recipe-preferences-section{margin-bottom:1.5rem}.recipe-preferences-title{color:var(--text);font-size:1rem;font-weight:700;margin:0 0 .75rem}.recipe-filters{display:flex;flex-wrap:wrap;gap:1rem}.generate-btn-icon{font-size:1.25rem}.filter-group{display:flex;flex-direction:column;gap:.25rem}.filter-group label{color:#dbe7ff;font-size:.85rem;font-weight:600}.filter-group select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.95rem;min-width:140px;padding:.5rem .75rem}.generate-recipe-btn{align-items:center;background:linear-gradient(90deg,var(--primary),var(--primary-2));border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;gap:.5rem;justify-content:center;margin-bottom:2rem;padding:1rem 1.5rem;transition:transform var(--speed),filter var(--speed);width:100%}.generate-recipe-btn:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.generate-recipe-btn:disabled{cursor:not-allowed;opacity:.6}.spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:18px;width:18px}@keyframes spin{to{transform:rotate(1turn)}}.recipe-card{background:#101a34;border:1px solid #4160a6;border-radius:var(--radius-md);padding:1.5rem}.recipe-card-header{margin-bottom:1rem}.recipe-name{color:var(--text);font-size:1.5rem;font-weight:700;margin:0 0 .5rem}.recipe-meta{color:var(--muted);display:flex;flex-wrap:wrap;font-size:.9rem;gap:1.5rem}.recipe-meta span{align-items:center;display:inline-flex;gap:.35rem}.recipe-meta svg{stroke:currentColor;flex-shrink:0}.recipe-description{color:#d4e2ff;font-style:italic;margin-bottom:1rem}.priority-alert{align-items:center;background:#f59e0b33;border:1px solid #f59e0b73;border-radius:var(--radius-sm);color:#ffdca8;display:flex;font-weight:600;gap:.5rem;margin-bottom:1rem;padding:.75rem}.alert-icon{font-size:1.2rem}.recipe-section{margin-bottom:1.5rem}.recipe-section:last-child{margin-bottom:0}.section-title{color:#c3deff;font-size:1.1rem;font-weight:700;margin:0 0 .75rem}.ingredients-list{list-style:none;margin:0;padding:0}.ingredients-list li{align-items:center;background:var(--surface);border-radius:var(--radius-sm);display:flex;justify-content:space-between;margin-bottom:.5rem;padding:.5rem}.ingredients-list li.expiring-ingredient{background:#f59e0b24;border-left:3px solid var(--warning)}.ingredient-name{color:var(--text);font-weight:600}.expiry-badge{background:#f59e0b4d;border-radius:12px;color:#ffe7c2;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.instructions-list{color:#d8e5ff;line-height:1.8;padding-left:1.5rem}.instructions-list li{margin-bottom:.75rem}.missing-section{background:#22c55e21;border-radius:var(--radius-sm);padding:1rem}.missing-intro{color:#bbf7d0;font-size:.95rem;margin:0 0 .5rem}.missing-list{color:#d8e5ff;margin:0 0 1rem;padding-left:1.25rem}.delivery-links{display:flex;flex-wrap:wrap;gap:.75rem}.delivery-btn{border-radius:var(--radius-sm);display:inline-block;font-size:.9rem;font-weight:600;padding:.6rem 1rem;text-decoration:none;transition:opacity .2s}.delivery-btn:hover{opacity:.9}.delivery-btn.deliveroo{background:#00ccbc;color:#fff}.delivery-btn.add-shopping{background:#1d4ed8;border:none;color:#fff;cursor:pointer}.delivery-btn.ubereats{background:#06c167;color:#fff}.use-recipe-btn{background:#1f3b8a;border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-weight:600;padding:.8rem 1rem;width:100%}.use-recipe-btn:hover:not(:disabled){filter:brightness(1.08)}.use-recipe-btn:disabled{cursor:not-allowed;opacity:.65}@media (max-width:768px){.recipe-generator{padding:1.2rem}.recipe-meta{flex-direction:column;gap:.5rem}.delivery-btn,.generate-recipe-btn,.use-recipe-btn{min-height:44px}}.recipes-page{padding:0}.recipes-page-title{color:var(--text);font-size:2rem;font-weight:700;margin:0 0 .25rem}.recipes-page-subtitle{color:var(--muted);font-size:1rem;margin:0 0 1.5rem}.priority-ingredients-box{background:linear-gradient(100deg,#7c3aed38,#06b6d424);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:1.5rem;padding:1.25rem}.priority-ingredients-title{color:var(--text);font-size:1rem;font-weight:700;margin:0 0 .75rem}.priority-tags{display:flex;flex-wrap:wrap;gap:.5rem}.priority-tag{background:var(--surface);border:1px solid var(--border);border-radius:20px;color:#dce8ff;display:inline-block;font-size:.85rem;padding:.4rem .75rem}.socials-page{margin:0 auto;max-width:960px;padding:8px 0 24px}.socials-title{margin:0}.socials-subtitle{color:var(--muted);margin:8px 0 18px}.socials-composer{grid-gap:10px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);display:grid;gap:10px;margin-bottom:18px;padding:14px}.socials-composer input,.socials-composer textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;padding:10px}.socials-date-label,.socials-file-label{grid-gap:6px;color:#dce8ff;display:grid;font-weight:600;gap:6px}.socials-photo-preview{border:1px solid var(--border);border-radius:8px;max-width:220px}.socials-actions{display:flex;gap:8px}.socials-actions button,.socials-like-btn,.socials-owner-actions button{border:0;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;padding:9px 12px}.socials-actions button,.socials-like-btn{background:linear-gradient(90deg,var(--primary),var(--primary-2));color:#fff}.socials-actions .secondary,.socials-owner-actions .secondary{background:var(--surface);border:1px solid var(--border);color:var(--text)}.socials-owner-actions .danger{background:#f43f5e33;border:1px solid #f43f5e73;color:#ffb2c0}.socials-error{color:#ff98ad;margin-bottom:12px}.socials-empty,.socials-loading{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--muted);padding:16px}.socials-feed{grid-gap:12px;display:grid;gap:12px}.socials-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px}.socials-card h3{margin:0 0 8px}.socials-card-head{display:flex;gap:10px;justify-content:space-between;margin-bottom:10px}.socials-author{align-items:center;display:flex;gap:10px}.socials-author-fallback,.socials-author-photo{align-items:center;background:#7c3aed59;border-radius:50%;color:#f3ecff;display:inline-flex;font-weight:700;height:36px;justify-content:center;width:36px}.socials-author-name{font-weight:700}.socials-meta{color:var(--muted);font-size:.9rem}.socials-caption{margin:4px 0 10px}.socials-post-photo{border-radius:10px;margin:8px 0 10px;max-width:100%}.socials-owner-actions{display:flex;gap:6px}.socials-like-btn{margin-top:8px}.socials-like-btn.liked{background:linear-gradient(90deg,#0ea5e9,#0d9488)}@media (max-width:768px){.socials-card-head{align-items:flex-start;flex-direction:column}.socials-actions button,.socials-like-btn,.socials-owner-actions button{min-height:44px}}.shopping-page{padding:0}.shopping-title{font-size:2rem;margin:0 0 .25rem}.shopping-subtitle{color:var(--muted);margin:0 0 1.2rem}.shopping-add-row{display:flex;gap:.75rem;margin-bottom:1rem}.shopping-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);flex:1 1;padding:.65rem .8rem}.shopping-add-btn{background:linear-gradient(90deg,var(--primary),var(--primary-2));border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;padding:.6rem 1rem}.shopping-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:1rem;padding:1rem}.shopping-suggestions{display:flex;flex-wrap:wrap;gap:.5rem}.suggestion-chip{background:#7c3aed33;border:1px solid #4464aa;border-radius:999px;color:#dcd5ff;cursor:pointer;padding:.35rem .7rem}.shopping-list{display:flex;flex-direction:column;gap:.65rem}.shopping-item{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;justify-content:space-between;padding:.65rem .75rem}.shopping-item-name{font-weight:600;margin:0}.shopping-item-meta{color:var(--muted);font-size:.85rem;margin:.2rem 0 0}.shopping-remove-btn{background:#f43f5e33;border:none;border-radius:var(--radius-sm);color:#ffb7c4;cursor:pointer;padding:.4rem .6rem}.shopping-empty{color:var(--muted)}.insights-page{padding:0}.insights-title{font-size:2rem;margin:0 0 .2rem}.insights-subtitle{color:var(--muted);margin:0 0 1rem}.insights-grid{grid-gap:.8rem;display:grid;gap:.8rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:.8rem}.insight-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem}.insight-card p{color:var(--muted);margin:0}.insight-card h3{font-size:1.8rem;margin:.2rem 0 0}.insights-list{margin:.5rem 0 0}@media (max-width:768px){.insights-grid{grid-template-columns:1fr}}.household-page{padding:0}.household-title{font-size:2rem;margin:0 0 .2rem}.household-subtitle{color:var(--muted);margin:0 0 1rem}.household-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem}.household-row{display:flex;gap:.6rem;margin-bottom:.8rem}.household-row input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);flex:1 1;padding:.6rem .75rem}.household-card button,.household-row button{background:linear-gradient(90deg,var(--primary),var(--primary-2));border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;padding:.55rem .8rem}.household-members{margin:.4rem 0 .8rem}.invite-code{font-weight:700;margin-top:.8rem}.share-mode-row{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;gap:.75rem;justify-content:space-between;margin:.8rem 0 .35rem;padding:.6rem .75rem}.share-mode-label{color:var(--text);font-weight:600}.share-mode-helper{color:var(--muted);font-size:.9rem;margin:0 0 .75rem}.profile-page{padding:0}.profile-title{font-size:2rem;margin:0 0 .2rem}.profile-subtitle{color:var(--muted);margin:0 0 1rem}.profile-card{grid-gap:1rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);display:grid;gap:1rem;grid-template-columns:220px 1fr;padding:1rem}.profile-photo-wrap{align-items:center;display:flex;flex-direction:column;gap:.7rem}.profile-photo,.profile-photo-fallback{border-radius:50%;height:120px;object-fit:cover;width:120px}.profile-photo-fallback{align-items:center;background:#7c3aed59;color:#f3ecff;display:flex;font-size:2rem;font-weight:700;justify-content:center}.profile-upload-btn{background:#7c3aed38;border:none;border-radius:var(--radius-sm);color:#ddd6fe;cursor:pointer;font-weight:600;padding:.45rem .7rem}.profile-form{display:flex;flex-direction:column;gap:.45rem}.profile-form input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:.6rem .75rem}.profile-save-btn{background:linear-gradient(90deg,var(--primary),var(--primary-2));border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;margin-top:.5rem;padding:.55rem .8rem;width:-webkit-fit-content;width:fit-content}.profile-message{margin:.3rem 0 0}.profile-message.error{color:#ff98ad}.profile-message.success{color:#8af0b0}@media (max-width:768px){.profile-card{grid-template-columns:1fr}}.auth-page{align-items:center;background:radial-gradient(800px 320px at 20% 0,#7c3aed3d,#0000 70%),radial-gradient(700px 260px at 100% 5%,#06b6d42e,#0000 70%),#0000;display:flex;justify-content:center;min-height:100vh;padding:2rem}.auth-card{animation:authCardIn .26s ease;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);max-width:430px;padding:2rem 1.6rem;width:100%}@keyframes authCardIn{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-brand{margin-bottom:1.5rem;text-align:center}.auth-brand-icon{align-items:center;color:var(--success);display:inline-flex;height:48px;justify-content:center;margin-bottom:.5rem;width:48px}.auth-brand-icon svg{height:100%;width:100%}.auth-brand-title{color:var(--text);font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .25rem}.auth-brand-subtitle{color:var(--muted);font-size:.95rem;margin:0}.auth-tabs{background:var(--surface);border-radius:10px;display:flex;gap:.25rem;margin-bottom:1.5rem;padding:4px}.auth-tab{background:#0000;border:none;border-radius:8px;color:var(--muted);cursor:pointer;flex:1 1;font-size:.95rem;font-weight:500;padding:.6rem 1rem;transition:background .2s,color .2s}.auth-tab:hover{background:#ffffff0f}.auth-tab.active{background:linear-gradient(90deg,#7c3aed57,#06b6d433);box-shadow:var(--shadow-sm);color:#f5f3ff}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-label{color:#dbe7ff;font-size:.9rem;font-weight:500}.auth-input{background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:1rem;padding:.75rem 1rem;transition:border-color .2s}.auth-input:focus{border-color:#86b8ff;box-shadow:0 0 0 3px #60a5fa40;outline:none}.auth-input:disabled{background:#1a2340;cursor:not-allowed}.auth-error{color:#ff9cb0;font-size:.9rem;margin:0;padding:.5rem 0}.auth-submit{background:linear-gradient(90deg,var(--primary),var(--primary-2));border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.25rem;padding:.75rem 1.5rem;transition:transform var(--speed),filter var(--speed)}.auth-submit:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.auth-submit:disabled{cursor:not-allowed;opacity:.7}.auth-switch{color:var(--muted);font-size:.9rem;margin:1.25rem 0 0;text-align:center}.auth-switch-btn{background:none;border:none;color:#b5d4ff;cursor:pointer;font-weight:600;padding:0;text-decoration:underline}.auth-switch-btn:hover{color:#dbeafe}@media (max-width:480px){.auth-page{padding:1rem}.auth-card{padding:1.4rem 1rem}.auth-submit,.auth-tab{min-height:44px}}.undo-snackbar{align-items:center;background:#2c3e50;border-radius:10px;bottom:1.2rem;color:#fff;display:flex;gap:.6rem;left:50%;padding:.7rem .9rem;position:fixed;transform:translateX(-50%);z-index:2000}.undo-btn{background:#27ae60;border:none;border-radius:8px;color:#fff;cursor:pointer;padding:.35rem .6rem}.undo-close-btn{background:#0000;border:none;color:#d7e3ef;cursor:pointer}.App{background:#0000;color:var(--text);min-height:100vh}.topnav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb,var(--bg-elevated) 80%,#0000);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);gap:var(--space-2);justify-content:space-between;min-height:70px;padding:.75rem 1.25rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.topnav,.topnav-brand{align-items:center;display:flex}.topnav-brand{background:none;border:none;cursor:pointer;font:inherit;gap:.6rem;padding:0}.topnav-brand:hover{opacity:.95}.brand-icon{align-items:center;color:var(--success);display:flex;height:38px;justify-content:center;width:38px}.brand-logo-svg{height:100%;width:100%}.brand-title{color:var(--text);font-size:1.35rem;font-weight:800;letter-spacing:-.02em;margin:0}.topnav-actions{align-items:center;display:flex;flex-shrink:0;gap:.5rem;margin-left:auto}.pages-menu-wrap,.profile-menu-wrap{position:relative}.pages-menu-trigger{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;display:inline-flex;font:inherit;font-size:.95rem;font-weight:700;gap:.45rem;padding:.55rem .85rem;transition:transform var(--speed),background var(--speed),border-color var(--speed),color var(--speed)}.pages-menu-trigger:hover{background:var(--surface-soft);border-color:#3c5492;transform:translateY(-1px)}.pages-menu-trigger.open{background:linear-gradient(90deg,#7c3aed47,#06b6d433);border-color:#6178b3}.pages-menu-item-icon,.pages-menu-trigger-icon{color:inherit;display:flex}.pages-menu-current{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pages-menu-chevron{border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid #a8badf;flex-shrink:0;height:0;width:0}.pages-menu-dropdown,.profile-menu-dropdown{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);position:absolute;right:0;top:calc(100% + .4rem);z-index:300}.pages-menu-dropdown{max-height:min(70vh,440px);min-width:228px;overflow-y:auto;padding:.35rem}.pages-menu-item{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;display:flex;font:inherit;font-size:.95rem;font-weight:600;gap:.65rem;min-height:44px;padding:.65rem .75rem;text-align:left;width:100%}.pages-menu-item:hover{background:var(--surface)}.pages-menu-item.active{background:linear-gradient(90deg,#7c3aed4d,#06b6d438);color:#fff}.profile-menu-trigger{align-items:center;background:#0000;border:1px solid #0000;border-radius:999px;cursor:pointer;display:flex;gap:.45rem;min-height:44px;padding:.25rem .5rem .25rem .25rem}.profile-menu-trigger:hover{background:var(--surface);border-color:var(--border)}.profile-trigger-fallback,.profile-trigger-photo{border-radius:50%;height:34px;width:34px}.profile-trigger-photo{object-fit:cover}.profile-trigger-fallback{align-items:center;background:#7c3aed59;color:#f5f3ff;display:inline-flex;font-weight:700;justify-content:center}.profile-trigger-name{color:var(--text);font-size:.9rem;max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-menu-dropdown{min-width:170px;padding:.25rem}.profile-menu-item{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;min-height:44px;padding:.6rem .75rem;text-align:left;width:100%}.profile-menu-item:hover{background:var(--surface)}.profile-menu-item.danger{color:#ff8da1}.main-content{margin:0 auto;max-width:1200px;padding:var(--space-5)}.App [class*=box],.App [class*=card],.App [class*=content],.App [class*=dropdown],.App [class*=modal],.App [class*=panel],.App [class*=section],.App [class*=wrap]{border-color:var(--border)}@media (max-width:900px){.topnav{flex-wrap:wrap;height:auto;padding:.75rem 1rem}.topnav-actions{justify-content:flex-end;margin-left:0;width:100%}.pages-menu-current{max-width:min(42vw,140px)}.pages-menu-dropdown{max-width:calc(100vw - 2rem)}.main-content{padding:1rem}}
/*# sourceMappingURL=main.ff92858d.css.map*/