:root{--bg: #0f0f23;--bg2: #1a1a2e;--card: rgba(30, 30, 50, .9);--border: rgba(255,255,255,.1);--text: #ffffff;--muted: rgba(255,255,255,.6);--accent: #00d4ff;--accent-hover: #00b8e6;--accent-glow: rgba(0, 212, 255, .3);--primary: #6366f1;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;--purple-border: rgba(99, 102, 241, .15);--purple-border-hover: rgba(99, 102, 241, .3);--purple-glow: rgba(99, 102, 241, .2);--card-bg: linear-gradient(135deg, rgba(30, 30, 50, .95) 0%, rgba(26, 26, 46, .9) 100%);--card-bg-light: linear-gradient(135deg, rgba(30, 30, 50, .6) 0%, rgba(26, 26, 46, .5) 100%);--input-bg: rgba(15, 15, 35, .8);--nav-h: 80px;--radius: 20px;--radius-sm: 12px;--content-max: 520px;--page-max: 1000px;--gutter: 16px;--ease: cubic-bezier(.4, 0, .2, 1);--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-accent: linear-gradient(135deg, #00d4ff 0%, #0099cc 100%);--gradient-success: linear-gradient(135deg, #10b981 0%, #059669 100%)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}input,textarea,[contenteditable]{-webkit-user-select:text;user-select:text}html,body{height:100vh;height:100dvh;margin:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg2);color:var(--text);overflow:hidden;-webkit-font-smoothing:antialiased}#root{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}:focus-visible{outline:2px solid rgba(249,115,22,.55);outline-offset:2px;border-radius:12px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.app-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.main-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px}.loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.1);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all .3s var(--ease);border:none;background:var(--gradient-accent);color:#fff}@media(hover:hover){.btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.1)}.btn-outline:hover:not(:disabled){background:#ffffff0d;border-color:var(--accent)}.btn-ghost:hover:not(:disabled){background:#ffffff0d;color:var(--text)}}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-ghost{background:transparent;color:var(--muted)}.input-field,input[type=text],input[type=number],textarea{width:100%;padding:10px 14px;background:var(--input-bg);border:1px solid var(--purple-border);border-radius:var(--radius-sm);color:var(--text);font-size:14px;font-family:inherit;transition:all .3s var(--ease)}.input-field:focus,input:focus,textarea:focus{outline:none;border-color:var(--accent)}textarea{resize:vertical;min-height:100px}.card{background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px;padding:20px;transition:all .3s var(--ease)}@media(hover:hover){.card:hover{transform:translateY(-4px);border-color:var(--purple-border-hover)}}.card-header{margin-bottom:16px}.card-title{margin:0;font-size:18px;font-weight:700;color:var(--text)}.card-content{padding:0}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;background:var(--gradient-accent);color:#fff}.badge-secondary{background:#ffffff1a;color:var(--text)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav-h);background:var(--card-bg);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);border-top:1px solid var(--purple-border);display:flex;justify-content:space-around;align-items:center;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);z-index:1000}@media(min-width:721px){.bottom-nav{left:50%;transform:translate(-50%);max-width:900px;height:70px;border-radius:24px 24px 0 0;border-left:1px solid var(--purple-border);border-right:1px solid var(--purple-border);padding:0 32px;gap:12px}}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 16px;color:#fff;background-color:#1a1a2e;text-decoration:none;transition:all .3s var(--ease);cursor:pointer;border-radius:var(--radius-sm);width:54px;max-height:54px}@media(min-width:721px){.nav-item{flex:1;min-width:100px;max-width:120px;width:100%;padding:14px 20px;max-height:none;border-radius:16px;gap:6px}.nav-item.active{background:var(--gradient-accent);color:#fff}.nav-label{font-size:12px;font-weight:600}.nav-icon{font-size:24px}}@media(min-width:721px){.nav-item.desktop-only{display:flex}.nav-item.mobile-only{display:none}.bottom-nav{justify-content:center;gap:8px;padding:0 24px}}@media(max-width:720px){.nav-item.desktop-only{display:none}.nav-item.mobile-only{display:flex}}@media(hover:hover){.nav-item:hover{background-color:#ffffff14;transform:translateY(-4px)}.nav-item.active:hover{transform:translateY(-4px) scale(1.02)}}.nav-item.active{color:var(--accent)}.nav-label{font-size:11px;font-weight:600}.swipe-page{height:100%;display:flex;flex-direction:column;padding:16px;padding-bottom:calc(var(--nav-h) + 16px);overflow:hidden;gap:12px}@media(min-width:1024px){.swipe-page{max-width:1600px;margin:0 auto}}.swipe-layout{display:flex;gap:16px;flex:1;min-height:0}.swipe-main{flex:1;display:flex;flex-direction:column;min-width:0}.swipe-container{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}.selection-sidebar{width:200px;background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px;padding:16px;overflow-y:auto;flex-shrink:0}.selection-sidebar h3{margin:0 0 16px;font-size:16px;font-weight:700}.selection-group{margin-bottom:16px}.selection-group-title{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}.tinder-card{position:relative!important;width:328px!important;height:100%!important;max-height:600px!important;margin:0 auto!important;border-radius:24px!important;padding:10px 10px 90px!important;border:1px solid rgba(255,255,255,.1)!important;background:linear-gradient(135deg,#ffffff1a,#ffffff0d)!important;-webkit-backdrop-filter:blur(20px) saturate(180%)!important;backdrop-filter:blur(20px) saturate(180%)!important;transition:all .4s var(--ease)!important;display:flex;flex-direction:column;justify-content:center}.tinder-card-handle{width:74px!important;height:6px!important;border-radius:999px!important;background:#ffffff29!important;margin:0 auto 18px!important}.tinder-card-slot{text-transform:uppercase!important;letter-spacing:.18em!important;font-size:12px!important;color:#94a3b8e6!important;text-align:center!important;margin-bottom:10px!important}.tinder-card-title{font-size:clamp(20px,8vw,42px)!important;font-weight:800!important;text-align:center!important;color:#fff!important;line-height:1.2!important;margin:0!important}.tinder-card-actions{position:absolute!important;bottom:20px!important;left:20px!important;right:20px!important;display:flex!important;justify-content:center!important;gap:16px!important}.btn-swipe{width:64px;height:64px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s var(--ease)}.btn-nope{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-like{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-swipe:disabled{opacity:.5;cursor:not-allowed}.under-card-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;padding:16px;background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px;flex-shrink:0;max-width:400px;margin:0 auto}.progress-compact{flex:1;min-width:200px}.progress-text{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px;display:block}.progress-bar{height:6px;background:#ffffff1a;border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--gradient-accent);border-radius:999px;transition:width .3s var(--ease)}.toggle-controls-compact{display:flex;gap:12px}.toggle-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text);cursor:pointer}.switch{position:relative;width:44px;height:24px;background:#ffffff1a;border-radius:999px;cursor:pointer;transition:all .3s var(--ease)}.switch.checked{background:var(--gradient-accent)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:all .3s var(--ease)}.switch.checked:after{left:22px}.suggested-recipes-sidebar{width:280px;background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px;padding:16px;overflow-y:auto;flex-shrink:0;max-height:100%}.suggestions-header-modern{background:linear-gradient(135deg,var(--purple-border) 0%,rgba(139,92,246,.15) 100%);border:1px solid var(--purple-border-hover);border-radius:16px;padding:16px 20px;margin-bottom:16px}.header-content{display:flex;align-items:center;gap:12px}.header-icon{font-size:24px}.recipe-count-badge{background:var(--gradient-accent);color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:12px;margin-left:auto}.recipes-grid-modern{display:flex;flex-direction:column;gap:12px}.recipe-card-modern{background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px;padding:16px;transition:all .3s var(--ease)}@media(hover:hover){.recipe-card-modern:hover{transform:translateY(-4px);border-color:var(--purple-border-hover)}}.recipe-card-title{margin:0 0 12px;font-size:16px;font-weight:600;color:#fff}.recipe-nutrition-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}.nutrition-item{display:flex;flex-direction:column;align-items:center;padding:8px;background:#ffffff0d;border-radius:8px}.nutrition-icon{font-size:16px;margin-bottom:4px}.nutrition-value{font-size:14px;font-weight:700;color:#fff}.nutrition-label{font-size:11px;color:var(--muted)}.shopping-list-page{height:100%;display:flex;flex-direction:column;padding:20px 16px;padding-bottom:calc(var(--nav-h) + 20px);overflow:hidden;gap:20px}.shopping-header{display:flex;justify-content:space-between;gap:16px}.shopping-header-content{display:flex;align-items:center;gap:12px}.shopping-header-content h1{margin:0;font-size:20px;font-weight:700;color:#fff}.shopping-header-actions{display:flex;align-items:center;gap:12px;justify-content:flex-end;flex:1}.add-toggle-btn{width:32px;height:32px;border-radius:8px;background:var(--gradient-accent);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s var(--ease);flex-shrink:0}.add-toggle-btn svg{transition:transform .3s var(--ease);width:18px;height:18px}.add-toggle-btn svg.rotate-45{transform:rotate(45deg)}.item-count-badge{background:var(--gradient-accent);color:#fff;font-size:14px;font-weight:700;padding:4px 12px;border-radius:12px}.add-shopping-item{background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px;padding:16px;animation:slideDown .3s ease}.shopping-input-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center}.item-name-input{flex:1}.item-amount-input{width:120px}.add-item-btn{width:48px;height:48px;padding:0!important;display:flex;align-items:center;justify-content:center;background:var(--gradient-accent)!important;border:none!important}.shopping-list-content{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:24px;padding-right:4px}.shopping-section{display:flex;flex-direction:column;gap:12px}.section-title{font-size:14px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0}.shopping-items{display:flex;flex-direction:column;gap:8px}.shopping-item{background:var(--card-bg);border:1px solid var(--purple-border);border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:12px;transition:all .3s var(--ease)}@media(hover:hover){.shopping-item:hover{background:var(--card-bg-light);border-color:var(--purple-border-hover);transform:translate(4px)}}.shopping-item.checked{opacity:.6}.shopping-item.checked .item-name{text-decoration:line-through}.check-btn{background:none;border:none;cursor:pointer;padding:0}.checkbox{width:24px;height:24px;border:2px solid var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .3s var(--ease)}.checkbox.checked{background:var(--gradient-accent);border-color:var(--accent)}.item-info{flex:1;display:flex;flex-direction:column;gap:4px}.item-name{font-size:15px;font-weight:600;color:#fff}.item-amount{font-size:13px;color:var(--muted)}.delete-btn{background:none;border:none;color:var(--danger);cursor:pointer;padding:8px;border-radius:8px;transition:all .3s var(--ease)}.empty-state-shopping{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:var(--muted)}.empty-icon{opacity:.3;animation:float 3s ease-in-out infinite}.decks-page{padding:20px 16px;padding-bottom:calc(var(--nav-h) + 20px);max-width:1200px;margin:0 auto}.decks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.decks-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.tab-btn{padding:12px 16px;background:var(--card-bg);border:1px solid var(--purple-border);border-radius:12px;color:var(--text);font-weight:600;cursor:pointer;transition:all .3s var(--ease)}.tab-btn.active{background:var(--gradient-accent);border-color:var(--accent);color:#fff}.add-item-section{background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px;padding:20px;margin-bottom:24px;animation:slideDown .3s ease}.add-form{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto;gap:12px;align-items:end}.items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.item-card-modern{background:var(--card-bg);border:1px solid var(--purple-border);border-radius:10px;padding:1px;transition:all .3s var(--ease)}@media(hover:hover){.item-card-modern:hover{transform:translateY(-4px);border-color:var(--purple-border-hover)}}.item-card-modern.editing{border-color:var(--accent)}.item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;padding:3px 10px}.item-name{font-size:13px;font-weight:600;color:#fff}.item-actions{display:flex;gap:4px}.icon-btn{width:26px;height:26px;padding:0;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;transition:all .3s var(--ease)}@media(hover:hover){.icon-btn:hover{background:#ffffff1a;border-color:var(--accent);transform:scale(1.1)}.icon-btn.delete:hover{background:#ef44441a;border-color:var(--danger)}}.icon-btn svg{width:14px;height:14px}.icon-btn.delete{color:var(--danger)}.nutrition-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:0 6px 6px}.nutrition-badge{display:flex;flex-direction:column;align-items:center;padding:6px;background:#ffffff14;border-radius:6px;font-size:11px;border:1px solid rgba(255,255,255,.15)}.nutrition-badge.kcal{border-left:3px solid #f59e0b}.nutrition-badge.protein{border-left:3px solid #10b981}.nutrition-badge.carbs{border-left:3px solid #3b82f6}.nutrition-badge.fat{border-left:3px solid #ef4444}.nutrition-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:0 6px 6px}.nutrition-badges span{display:flex;align-items:center;justify-content:center;padding:6px 4px;background:#ffffff14;border-radius:6px;font-size:11px;border:1px solid rgba(255,255,255,.15);white-space:nowrap}.ideas-page{max-width:var(--page-max);margin:0 auto;padding:20px 16px;padding-bottom:calc(var(--nav-h) + 20px)}.ideas-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.ideas-header h2{margin:0;font-size:24px;font-weight:700;color:#fff}.recipe-count{background:var(--gradient-accent);color:#fff;font-size:14px;font-weight:700;padding:4px 12px;border-radius:12px}.refresh-btn{width:36px;height:36px;border-radius:8px;background:#ffffff0d;border:1px solid var(--border);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s var(--ease)}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.spinning{animation:spin 1s linear infinite}.recipe-search{margin-bottom:20px}.recipes-container{display:flex;flex-direction:column;gap:16px}@media(max-width:720px){.recipes-container{gap:10px}}@media(min-width:721px){.recipes-container{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}}.recipe-card{background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px;transition:all .3s var(--ease)}@media(max-width:720px){.recipe-card{border-radius:10px}}@media(hover:hover){.recipe-card:hover{transform:translateY(-4px);border-color:var(--purple-border-hover)}}.recipe-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;cursor:pointer}@media(max-width:720px){.recipe-header{padding:10px 12px;align-items:center}}.recipe-title{margin:0;font-size:18px;font-weight:600;color:#fff;line-height:1.3}@media(max-width:720px){.recipe-title{font-size:15px;line-height:1.2}}.recipe-nutrition-collapsed{display:flex;gap:12px;margin-top:8px;font-size:13px;color:var(--muted)}@media(max-width:720px){.recipe-nutrition-collapsed{gap:6px;margin-top:4px;font-size:11px}}.recipe-toggle-icon{color:var(--accent);flex-shrink:0}.recipe-expanded{padding:0 16px 16px;animation:slideDown .3s ease}@media(max-width:720px){.recipe-expanded{padding:0 12px 10px}}.recipe-tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:1px solid var(--purple-border)}@media(max-width:720px){.recipe-tabs{gap:4px;margin-bottom:10px}}.tab{padding:10px 16px;background:transparent;border:none;color:var(--muted);font-weight:600;cursor:pointer;transition:all .3s var(--ease);border-bottom:2px solid transparent;font-size:14px}@media(max-width:720px){.tab{padding:8px 12px;font-size:13px}}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.recipe-edit{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.recipe-planner{background:#ffffff0d;border:1px solid var(--purple-border);border-radius:12px;padding:12px;margin:12px 0;width:100%}.planner-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text);margin-bottom:8px}.planner-controls{display:flex;gap:8px;align-items:center}.weekday-select{flex:1;min-width:0;max-width:200px;padding:10px 14px;background:var(--input-bg);border:1px solid var(--purple-border);border-radius:var(--radius-sm);color:var(--text);font-size:14px;font-family:inherit;cursor:pointer;transition:all .3s var(--ease)}.weekday-select:focus{outline:none;border-color:var(--accent)}.weekday-select option{background:var(--bg2);color:var(--text)}.plan-btn{flex-shrink:0}.tab-content{margin-top:16px}.recipe-ingredients ul{margin:0;padding-left:20px;color:var(--text)}.recipe-ingredients li{margin-bottom:8px;line-height:1.5}.recipe-ingredients pre,.recipe-steps pre{margin:0;font-family:inherit;color:var(--text);line-height:1.6}.empty-ideas-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:var(--muted);padding:40px 20px}.empty-ideas-state h3{margin:0;font-size:20px;font-weight:600;color:var(--text)}.empty-ideas-state p{margin:0;font-size:14px}.import-page{height:100%;width:100%;max-width:900px;display:flex;flex-direction:column;margin:0 auto;padding:16px;padding-bottom:calc(var(--nav-h) + 16px);overflow:hidden}.import-header{margin-bottom:14px;text-align:center}.import-header h2{margin:0 0 6px;font-size:20px;font-weight:700;color:#fff}.import-header p{margin:0;font-size:13px;color:var(--muted);line-height:1.35}.import-content{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.upload-card{background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px}.upload-area{min-height:min(46vh,460px);padding:30px 18px;gap:14px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center}.upload-icon{width:72px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:20px;background:#00d4ff1a;border:1px solid rgba(0,212,255,.3);color:var(--accent)}.upload-area h3{margin:6px 0 0;font-size:16px;font-weight:700;color:#fff}.upload-area p{margin:0;color:var(--muted);font-size:13px;max-width:36ch;line-height:1.4}.upload-buttons{margin-top:18px;gap:14px;padding-bottom:6px;max-width:560px;width:100%;display:grid;grid-template-columns:1fr}.upload-buttons .btn{width:100%;justify-content:center;min-height:48px;border-radius:14px}.camera-btn{background:var(--gradient-accent)!important;border:none!important;color:#fff!important;font-weight:600}.upload-btn{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;color:var(--text)!important}.loading-card{background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px;padding:40px 20px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:300px}.loading-state h3{margin:0;font-size:18px;font-weight:600;color:#fff}.loading-state p{margin:0;font-size:14px;color:var(--muted)}.ocr-results-card{background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px;padding:20px}.preview-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.ocr-results-card h3{margin:16px 0 8px;font-size:14px;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.05em}.ocr-title-input{margin-bottom:16px}.ocr-textarea{width:100%;min-height:120px;padding:12px;border-radius:var(--radius-sm);border:1px solid var(--purple-border);background:var(--input-bg);color:var(--text);font-family:inherit;font-size:14px;line-height:1.5;resize:vertical;transition:all .3s var(--ease);margin-bottom:16px}.ocr-textarea:focus{outline:none;border-color:var(--accent)}.ocr-actions{display:flex;gap:12px;flex-direction:column;margin-top:20px}.planner-page{max-width:1200px;margin:0 auto;padding:20px 16px;padding-bottom:calc(var(--nav-h) + 20px)}.planner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.planner-header h2{margin:0;font-size:33px;font-weight:700;color:#fff}.calendar-nav{display:flex;gap:8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);column-gap:4px;row-gap:0px;background:var(--card-bg);border:1px solid var(--purple-border);border-radius:16px;padding:16px;grid-auto-rows:minmax(14px,auto)}.weekday-label{text-align:center;font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:0;line-height:1;height:20px;display:flex;align-items:center;justify-content:center;margin-bottom:-8px}.calendar-day{aspect-ratio:1;background:#ffffff0d;border:1px solid var(--purple-border);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:8px;transition:all .3s var(--ease);min-height:100px;align-items:center}@media(hover:hover){.calendar-day:hover:not(.empty){background:#ffffff14;border-color:var(--purple-border-hover);transform:scale(1.02)}}.calendar-day.empty{background:transparent;border:none}.calendar-day.is-today{border-color:var(--accent)}.day-number{font-size:14px;font-weight:700;color:var(--text)}.day-content{flex:1;display:flex;flex-direction:column;gap:8px}.recipe-title-short{font-size:12px;font-weight:600;color:#fff;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;text-align:center}.day-actions{display:flex;gap:4px;margin-top:auto;justify-content:center;align-items:center}.day-actions button{padding:4px 8px;background:#ffffff1a;border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .3s var(--ease);font-size:14px}.add-plan-btn{width:100%;height:100%;background:#00d4ff1a;border:1px dashed var(--accent);border-radius:8px;color:var(--accent);font-size:24px;cursor:pointer;transition:all .3s var(--ease);display:flex;align-items:center;justify-content:center}.planner-controls{display:flex;flex-direction:row;gap:6px;align-items:center}.view-toggle{display:flex;gap:3px;background:#ffffff0d;border:1px solid var(--purple-border);border-radius:6px;padding:3px}.view-btn{padding:6px 10px;background:transparent;border:none;color:var(--muted);cursor:pointer;border-radius:4px;transition:all .3s var(--ease);display:flex;align-items:center;justify-content:center}.view-btn.active{background:var(--gradient-accent);color:#fff}.calendar-grid.week-grid{grid-template-columns:repeat(7,1fr);gap:12px}.calendar-day.week-view{min-height:50px;display:flex;flex-direction:column}.calendar-day.week-view .day-number{font-size:18px;font-weight:700;margin-bottom:4px}.calendar-day.week-view .day-name{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.portions-selector{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:12px}.portions-label{font-size:14px;font-weight:500;color:#fffc}.portions-controls{display:flex;align-items:center;gap:12px}.portion-btn{width:28px;height:28px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s var(--ease)}.portion-btn:active{transform:scale(.95)}.portions-value{font-size:16px;font-weight:700;color:var(--accent);min-width:30px;text-align:center}.portions-badge{background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600;color:#fffc;white-space:nowrap}@media(min-width:721px){:root{--content-max: 700px;--page-max: 1400px;--gutter: 24px}.swipe-page,.shopping-list-page,.decks-page,.ideas-page,.planner-page{padding:32px 24px;padding-bottom:calc(var(--nav-h) + 32px)}.tinder-card{width:420px!important;max-height:700px!important;padding:16px 16px 100px!important}.tinder-card-title{font-size:48px!important}.selection-sidebar{width:280px}.suggested-recipes-sidebar{width:320px}.items-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.calendar-grid{padding:24px;column-gap:12px;row-gap:8px}.calendar-day{min-height:140px;padding:12px}.recipe-title-short{font-size:14px}.recipes-container{gap:20px}.recipe-card{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}.recipe-card:hover{transform:translateY(-2px)}.card:hover{transform:translateY(-2px);border-color:var(--purple-border-hover)}.btn:hover:not(:disabled){transform:translateY(-1px)}.nav-item:hover{background-color:#ffffff0d}}@media(min-width:1400px){:root{--page-max: 1600px}}@media(max-width:720px){.swipe-layout{flex-direction:column;align-items:center}.selection-sidebar,.suggested-recipes-sidebar{width:100%;max-width:400px}.tinder-card{width:300px!important;max-width:300px!important;min-width:300px!important}.under-card-actions{max-width:300px}.decks-tabs{grid-template-columns:repeat(2,1fr)}.add-form{grid-template-columns:1fr;gap:12px}.items-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.calendar-grid{column-gap:6px;row-gap:2px;padding:12px}.calendar-day{min-height:80px;padding:6px}.day-number{font-size:12px}.recipe-title-short{font-size:11px}.calendar-grid.week-grid{grid-template-columns:1fr;gap:8px}.calendar-day.week-view{min-height:80px;flex-direction:row;align-items:center;padding:12px}.calendar-day.week-view .day-number,.calendar-day.week-view .day-name{margin:0}.calendar-day.week-view .day-number{font-size:16px;min-width:40px}.calendar-day.week-view .day-name{min-width:30px;margin-right:12px}.calendar-day.week-view .day-content,.calendar-day.week-view .add-plan-btn{flex:1}}@media(max-width:480px){:root{--nav-h: 70px}.bottom-nav{padding:0 8px env(safe-area-inset-bottom) 8px}.nav-item{padding:8px 12px;min-width:56px}.nav-label{font-size:10px}.tinder-card{width:92vw!important;max-width:340px!important;min-width:340px!important;padding:12px 12px 80px!important}.under-card-actions{width:92vw!important;max-width:340px;margin:20px auto 0;flex-direction:column!important;gap:12px;padding:12px;align-items:center}.under-btn{min-width:120%}.under-card-actions .btn{width:100%}.tinder-card-title{font-size:clamp(18px,7vw,36px)!important}.btn{width:10vw}.btn-swipe{width:56px;height:56px}.progress-compact{width:100%}.shopping-header{flex-wrap:wrap}.shopping-header-actions{width:100%;justify-content:flex-end}.shopping-input-row{grid-template-columns:1fr;gap:8px}.item-amount-input{width:100%}.nutrition-grid{grid-template-columns:repeat(2,1fr)}.items-grid{grid-template-columns:1fr}.ideas-header{flex-wrap:wrap}.upload-buttons{grid-template-columns:1fr}.calendar-grid{width:92vw;height:130vw;gap:2px;padding:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;row-gap:2px}.calendar-day{aspect-ratio:unset;min-height:45px;max-height:60px;min-width:40px;padding:3px;gap:2px}.calendar-day .day-number{font-size:9px}.calendar-day .recipe-title-short{font-size:7px;line-height:1.1}.calendar-day .day-actions{gap:2px;flex-direction:row}.calendar-day .day-actions button{font-size:9px;padding:1px 3px}.add-plan-btn{font-size:14px;padding:0;display:flex;align-items:center;justify-content:center}.weekday-label{font-size:12px;padding:2px}.day-number{font-size:11px}.recipe-title-short{font-size:10px;-webkit-line-clamp:1;line-clamp:1}.day-actions button{font-size:12px;padding:2px 6px}.calendar-nav{max-width:100%}.today-btn{width:100%;max-width:120px}.calendar-day.week-view{min-height:0!important;height:60px!important;max-height:80px!important;min-width:unset;width:85vw!important;max-width:380px!important;padding:4px!important}.add-plan-btn{min-width:unset;width:92vw;max-width:40px!important}.sidebar{position:fixed;top:0;left:-280px;width:280px;height:100%;background:var(--card-bg);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);border-right:1px solid var(--purple-border);z-index:1001;transition:left .3s var(--ease);display:flex;flex-direction:column}.sidebar.is-open{left:0}.sidebar-overlay{position:fixed;inset:0;background-color:#0009;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media(min-width:721px){.sidebar,.sidebar.is-open,.sidebar-overlay{display:none!important;visibility:hidden!important;pointer-events:none!important;left:-280px!important}}.sidebar-header{padding:24px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--purple-border);background:#6366f10d}.sidebar-header h2{margin:0;font-size:1.5rem;font-weight:700;color:var(--text)}.close-sidebar-btn{background:none;border:none;padding:8px;cursor:pointer;color:var(--text);border-radius:8px;transition:all .3s var(--ease)}@media(hover:hover){.close-sidebar-btn:hover{background:#ffffff1a;transform:rotate(90deg)}}.sidebar-nav{flex:1;padding:24px 12px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;justify-content:center}.sidebar-item{display:flex;align-items:center;gap:12px;padding:16px;border:none;border-radius:12px;background:transparent;font-size:15px;font-weight:500;text-align:left;cursor:pointer;color:var(--text);transition:all .3s var(--ease);border:1px solid transparent}.sidebar-item .sidebar-icon{font-size:20px;width:24px;display:flex;align-items:center;justify-content:center}.sidebar-item.is-active{background:var(--gradient-accent);color:#fff;font-weight:600;border-color:var(--accent)}@media(hover:hover){.sidebar-item:hover:not(.is-active){background:#ffffff14;border-color:var(--purple-border-hover);transform:translate(4px)}}.sidebar-footer{padding:20px;border-top:1px solid var(--purple-border);background:#6366f10d}.user-profile{display:flex;flex-direction:column;gap:12px}.user-info{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);overflow:hidden;padding:10px;background:#ffffff0d;border-radius:8px}.user-mail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;border-radius:10px;border:1px solid var(--purple-border);background:transparent;cursor:pointer;font-weight:600;font-size:14px;transition:all .3s var(--ease);color:var(--text)}.auth-btn.logout{color:var(--danger);border-color:#ef44444d}@media(hover:hover){.auth-btn.logout:hover{background:#ef44441a;border-color:var(--danger)}.auth-btn.login:hover{background:var(--gradient-accent);color:#fff;border-color:var(--accent)}}.auth-btn.login{background:var(--gradient-accent);color:#fff;border:none}.auth-page{display:flex;justify-content:center;color:#000;align-items:center;min-height:80vh;padding:20px}.auth-card{width:100%;max-width:400px;background:#fff;padding:2rem;border-radius:12px}.auth-header{text-align:center;margin-bottom:2rem}.auth-header h1{font-size:1.8rem;margin-bottom:.5rem;color:#1a202c}.auth-header p{color:#718096;font-size:.95rem}.supabase-auth-ui_ui-button{border-radius:8px!important;padding:10px!important;font-weight:600!important}.supabase-auth-ui_ui-input{border-radius:8px!important;padding:10px!important}.auth-form{display:flex;flex-direction:column;gap:15px;margin-top:20px}.auth-form-group{display:flex;flex-direction:column}.auth-form-group label{display:block;font-weight:500;margin-bottom:8px;color:#1a202c;font-size:14px}.auth-form-group input{width:100%;padding:12px;border-radius:8px;border:1px solid #e2e8f0;font-size:15px;transition:border-color .2s;outline:none;background:transparent;color:#1a202c}.auth-form-group input:focus{border-color:#3182ce}.auth-submit-btn{padding:12px;background:#3182ce;color:#fff;border:none;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;transition:background .2s;margin-top:8px}.auth-submit-btn:disabled{background:#90cdf4;cursor:not-allowed}.auth-link-btn{background:none;border:none;color:#3182ce;cursor:pointer;font-size:14px;padding:8px;text-decoration:underline}.auth-message{padding:12px;border-radius:8px;margin-bottom:16px;font-size:14px}.auth-message.error{background-color:#fed7d7;color:#c53030;border:1px solid #fc8181}.auth-message.success{background-color:#c6f6d5;color:#22543d;border:1px solid #9ae6b4}.account-page{display:flex;justify-content:center;align-items:flex-start;min-height:80vh;padding:20px 20px 100px}.account-card{width:100%;max-width:600px;background:#fff;padding:2rem;border-radius:12px}.account-card h1{font-size:1.8rem;margin-bottom:1.5rem;color:#1a202c}.account-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e2e8f0}.account-section:last-child{border-bottom:none}.account-section h2{font-size:1.2rem;margin-bottom:1rem;color:#2d3748}.account-info{background:#f7fafc;padding:1rem;border-radius:8px;margin-bottom:1rem}.account-info p{margin:.5rem 0;color:#4a5568}.delete-account-btn{width:100%;padding:12px;background:#e53e3e;color:#fff;border:none;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;transition:background .2s}.delete-account-btn:disabled{background:#fc8181;cursor:not-allowed}.signout-btn{width:100%;padding:12px;background:#718096;color:#fff;border:none;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;transition:background .2s}.auth-required-message{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:2rem}.auth-required-message .empty-icon{color:#cbd5e0;margin-bottom:1rem}.auth-required-message h2{font-size:1.5rem;color:#2d3748;margin-bottom:.5rem}.auth-required-message p{color:#718096;font-size:1rem}.recipe-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.recipe-modal{background:var(--card-bg);border-radius:12px;max-width:600px;width:100%;height:90vh;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border)}.recipe-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border)}.recipe-modal-header h2{margin:0;font-size:1.5rem;color:var(--text)}.modal-close-btn{background:none;border:none;cursor:pointer;color:var(--muted);padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.recipe-modal-content{overflow-y:auto;padding:1.5rem}.recipe-modal-section{margin-bottom:1.5rem}.recipe-modal-section:last-child{margin-bottom:0}.recipe-modal-section h3{font-size:1.2rem;color:var(--text);margin-bottom:.75rem}.recipe-modal-section ul{list-style:none;padding:0}.recipe-modal-section li{padding:.5rem 0;border-bottom:1px solid var(--border);color:var(--muted)}.recipe-modal-section pre{background:#0f0f2380;padding:1rem;border-radius:8px;line-height:1.6;color:var(--muted)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:65px;background:#1a1a2e;display:flex;justify-content:space-around;align-items:center;border-top:1px solid #1a1a2e;padding-bottom:env(safe-area-inset-bottom);z-index:1000}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;background:none;border:none;color:#718096;padding:8px 0;cursor:pointer;transition:color .2s}.nav-item.is-active{color:#3182ce}.nav-label{font-size:.7rem;margin-top:4px}}@media(max-height:600px)and (orientation:landscape){.swipe-page{padding:12px;padding-bottom:calc(var(--nav-h) + 12px)}.tinder-card{max-height:400px!important}.calendar-day{min-height:70px}}.under-btn{min-width:150px;flex:1}.calendar-nav .btn{min-width:36px;padding:8px}.calendar-nav .btn:not(.today-btn){min-width:36px;padding:8px}.calendar-nav svg{display:block}.clear-btn{min-width:120px;margin-left:auto}
