@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;1,400&family=DM+Sans:wght@300;400;500;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a1628;--surface:#2c3340;--surface-2:#363d4a;--surface-3:#404854;--accent:#5bc8e8;--accent-light:#8ddff5;--accent-dim:#5bc8e81f;--text:#fff;--text-muted:#c8d8e8;--text-faint:#6a7a8a;--border:#ffffff1a;--border-accent:#5bc8e866;--shadow-sm:0 2px 16px #0006;--r-sm:8px;--r-md:14px;--r-lg:20px;--r-pill:999px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:DM Sans,sans-serif;line-height:1.6}.app{flex-direction:column;align-items:center;min-height:100vh;display:flex}.app-header{text-align:center;background:#061020;border-bottom:1px solid #5bc8e833;width:100%;padding:48px 24px 40px}.app-title{color:#fff;letter-spacing:-.02em;font-family:Playfair Display,serif;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:600;line-height:1.1}.app-title em{color:var(--accent);font-style:italic;font-weight:400}.app-tagline{color:#7aaec8;letter-spacing:.03em;margin-top:8px;font-size:1.05rem;font-weight:300}.app-main{flex-direction:column;gap:20px;width:100%;max-width:720px;padding:36px 20px 80px;display:flex}.how-it-works{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--border-accent);padding:20px 26px}.how-it-works-text{color:var(--text-muted);text-align:center;font-size:.95rem;line-height:1.8}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);border:1px solid #ffffff1a;padding:26px}.card-title{color:#fff;justify-content:center;align-items:center;gap:8px;margin-bottom:18px;font-family:Playfair Display,serif;font-size:1.3rem;font-weight:600;display:flex}.calorie-row{justify-content:center;align-items:center;gap:10px;display:flex}.calorie-input-wrap{background:var(--surface-2);border-radius:var(--r-pill);border:2px solid #ffffff26;align-items:center;max-width:260px;padding:0 18px;transition:border-color .2s;display:flex}.calorie-input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #5bc8e826}.calorie-input-wrap input{color:#fff;appearance:textfield;background:0 0;border:none;outline:none;width:130px;padding:11px 6px;font-family:DM Sans,sans-serif;font-size:1.25rem;font-weight:600}.calorie-input-wrap input::-webkit-outer-spin-button{appearance:none}.calorie-input-wrap input::-webkit-inner-spin-button{appearance:none}.calorie-unit{color:#c8d8e8;white-space:nowrap;font-size:.9rem}.plan-toggle{justify-content:center;gap:10px;display:flex}.plan-toggle-btn{border-radius:var(--r-pill);cursor:pointer;background:var(--surface-2);color:#c8d8e8;border:2px solid #ffffff26;padding:10px 26px;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:600;transition:all .2s}.plan-toggle-btn.active{background:var(--accent);color:#061020;border-color:var(--accent);box-shadow:0 2px 16px #5bc8e859}.plan-toggle-btn:hover:not(.active){color:#fff;border-color:#ffffff4d}.pantry-section{flex-direction:column;gap:18px;display:flex}.pantry-category{flex-direction:column;gap:10px;display:flex}.category-header{align-items:center;display:flex}.category-badge{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border-radius:var(--r-pill);background:#5bc8e81f;border:1px solid #5bc8e866;padding:4px 14px;font-size:.75rem;font-weight:700}.pantry-add-row{align-items:center;gap:8px;display:flex}.pantry-select{color:#fff;background:var(--surface-2);border-radius:var(--r-pill);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235BC8E8' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;border:1px solid #ffffff26;outline:none;flex:1;padding:10px 36px 10px 16px;font-family:DM Sans,sans-serif;font-size:.95rem;transition:border-color .2s}.pantry-select:focus{border-color:var(--accent)}.pantry-select option{color:#fff;background:#2c3340}.chip-list{flex-wrap:wrap;gap:7px;display:flex}.chip{background:var(--surface-3);color:#fff;border-radius:var(--r-pill);border:1px solid #ffffff2e;align-items:center;gap:5px;padding:5px 12px;font-size:.88rem;font-weight:500;display:inline-flex}.chip-remove{cursor:pointer;color:#6a7a8a;background:0 0;border:none;align-items:center;padding:0;font-size:1rem;line-height:1;transition:color .15s;display:flex}.chip-remove:hover{color:var(--accent)}.btn{border-radius:var(--r-pill);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;padding:10px 20px;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background:var(--accent);color:#061020;font-weight:700;box-shadow:0 2px 16px #5bc8e859}.btn-primary:hover:not(:disabled){background:var(--accent-light);transform:translateY(-1px);box-shadow:0 4px 20px #5bc8e873}.btn-primary:disabled{opacity:.35;cursor:not-allowed}.btn-secondary{background:var(--surface-3);color:#fff;border:1px solid #ffffff2e}.btn-secondary:hover:not(:disabled){background:var(--surface-2);color:var(--accent);border-color:#5bc8e866}.btn-icon{background:var(--surface-2);color:#c8d8e8;border-radius:var(--r-sm);border:1px solid #ffffff1f;padding:7px 11px;font-size:.95rem;line-height:1}.btn-icon:hover:not(:disabled){background:var(--surface-3);color:var(--accent);border-color:#5bc8e866}.generate-section{justify-content:center;display:flex}.generate-section .btn-primary{padding:15px 44px;font-size:1.1rem}.meal-plan{flex-direction:column;gap:14px;display:flex}.meal-plan-heading{color:#fff;text-align:center;margin-bottom:2px;font-family:Playfair Display,serif;font-size:1.7rem;font-weight:600}.meal-plan-subheading{text-align:center;color:#c8d8e8;margin-bottom:6px;font-size:.92rem}.week-day-header{color:var(--accent);border-bottom:1px solid #5bc8e840;margin-top:10px;margin-bottom:6px;padding:10px 0 6px;font-family:Playfair Display,serif;font-size:1.2rem;font-weight:600}.meal-card{background:var(--surface);border-radius:var(--r-md);border:1px solid #ffffff1a;transition:border-color .2s,box-shadow .2s;overflow:hidden}.meal-card:hover{border-color:#5bc8e859;box-shadow:0 4px 20px #0000004d}.meal-card-header{background:var(--surface-3);border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.meal-label{align-items:center;gap:8px;display:flex}.meal-label-icon{font-size:1rem}.meal-label-text{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.78rem;font-weight:700}.meal-card-actions{gap:6px;display:flex}.meal-card-body{padding:16px}.meal-name{color:#fff;margin-bottom:6px;font-family:Playfair Display,serif;font-size:1.2rem;font-weight:600;line-height:1.3}.meal-description{color:#c8d8e8;font-size:.95rem;line-height:1.6}.meal-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.meal-calories{color:var(--accent);border-radius:var(--r-pill);background:#5bc8e81a;border:1px solid #5bc8e84d;align-items:center;gap:4px;padding:4px 12px;font-size:.82rem;font-weight:700;display:inline-flex}.meal-serving{color:#c8d8e8;background:var(--surface-2);border-radius:var(--r-pill);border:1px solid #ffffff1a;align-items:center;gap:4px;padding:4px 12px;font-size:.82rem;font-weight:500;display:inline-flex}.recipe-panel{background:var(--bg);border-top:1px solid #ffffff14;padding:18px 16px 20px}.recipe-title{color:#fff;margin-bottom:12px;font-family:Playfair Display,serif;font-size:1.05rem;font-weight:600}.recipe-meta{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.recipe-meta-item{color:var(--accent);border-radius:var(--r-pill);background:#5bc8e81a;border:1px solid #5bc8e84d;padding:4px 12px;font-size:.82rem;font-weight:600}.recipe-section-label{letter-spacing:.12em;text-transform:uppercase;color:#6a7a8a;margin-top:14px;margin-bottom:8px;font-size:.72rem;font-weight:700}.recipe-ingredients{flex-direction:column;gap:5px;list-style:none;display:flex}.recipe-ingredients li{color:#c8d8e8;padding-left:14px;font-size:.92rem;line-height:1.5;position:relative}.recipe-ingredients li:before{content:"·";color:var(--accent);font-weight:700;position:absolute;left:0}.recipe-steps{flex-direction:column;gap:12px;list-style:none;display:flex}.recipe-step{color:#c8d8e8;gap:12px;font-size:.92rem;line-height:1.6;display:flex}.recipe-step-num{background:var(--accent);color:#061020;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:3px;font-size:.7rem;font-weight:700;display:flex}.loading-container{text-align:center;padding:32px 20px}.loading-spinner{border:3px solid #ffffff1a;border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:0 auto 14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:#c8d8e8;font-size:.95rem}.error-banner{border-radius:var(--r-md);color:var(--accent-light);background:#5bc8e80f;border:1px solid #5bc8e84d;padding:13px 16px;font-size:.92rem}.custom-item-row{border-top:1px solid #ffffff14;align-items:center;gap:8px;margin-top:8px;padding-top:16px;display:flex}.custom-category-select{flex-shrink:0;max-width:140px}.pantry-custom-input{color:#fff;background:var(--surface-2);border-radius:var(--r-pill);border:1px solid #ffffff26;outline:none;flex:1;padding:10px 16px;font-family:DM Sans,sans-serif;font-size:.95rem;transition:border-color .2s}.pantry-custom-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5bc8e81f}.pantry-custom-input::placeholder{color:#4a5a6a}.share-section{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--border);flex-direction:column;align-items:center;gap:12px;margin-top:8px;padding:20px;display:flex}.share-label{color:var(--text-muted);text-align:center;font-size:.88rem;line-height:1.5}.btn-share{background:var(--accent);color:#061020;border-radius:var(--r-pill);cursor:pointer;border:none;align-items:center;gap:8px;padding:14px 40px;font-family:DM Sans,sans-serif;font-size:1rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 16px #5bc8e859}.btn-share:hover{background:var(--accent-light);transform:translateY(-1px);box-shadow:0 4px 20px #5bc8e873}.btn-open-all{background:var(--surface-2);color:var(--accent);border:2px solid var(--border-accent);box-shadow:none}.btn-open-all:hover{background:var(--accent-dim);color:#fff}.reset-section{flex-direction:column;align-items:center;padding:10px 0 20px;display:flex}.btn-reset{color:#6a7a8a;border-radius:var(--r-pill);cursor:pointer;letter-spacing:.02em;background:0 0;border:2px dashed #3a4a5a;width:100%;padding:14px 48px;font-family:DM Sans,sans-serif;font-size:1rem;font-weight:600;transition:all .2s}.btn-reset:hover{color:#e05c5c;background:#e05c5c14;border-color:#e05c5c}.reset-confirm{background:var(--surface);border-radius:var(--r-lg);border:1px solid #e05c5c;flex-direction:column;gap:16px;width:100%;padding:20px 24px;display:flex}.reset-warning{color:#c8d8e8;text-align:center;font-size:.95rem;line-height:1.55}.reset-confirm-btns{justify-content:center;gap:10px;display:flex}.btn-reset-confirm{color:#fff;border-radius:var(--r-pill);cursor:pointer;background:#e05c5c;border:none;padding:11px 28px;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:700;transition:all .2s}.btn-reset-confirm:hover{background:#c94a4a;transform:translateY(-1px)}.btn-reset-cancel{background:var(--surface-2);color:#c8d8e8;border-radius:var(--r-pill);cursor:pointer;border:1px solid #ffffff1a;padding:11px 28px;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:600;transition:all .2s}.btn-reset-cancel:hover{background:var(--surface-3);color:#fff}@media (width<=600px){.app-header{padding:32px 16px 28px}.app-main{padding:24px 14px 60px}.card{padding:20px 16px}.plan-toggle,.custom-item-row{flex-wrap:wrap}}
