:root{--bg: #F2F2F7;--bg-card: #FFFFFF;--bg-grouped: #F2F2F7;--bg-elevated: #FFFFFF;--bg-sheet: #F2F2F7;--text: #000000;--text-secondary: #3C3C43;--text-tertiary: #8E8E93;--text-on-accent: #FFFFFF;--separator: rgba(60,60,67,.12);--separator-opaque: #C6C6C8;--fill: rgba(120,120,128,.2);--fill-secondary: rgba(120,120,128,.16);--accent: #D4A04A;--accent-hover: #C4902A;--accent-soft: rgba(212,160,74,.12);--ios-blue: #007AFF;--ios-green: #34C759;--ios-red: #FF3B30;--ios-orange: #FF9500;--ios-yellow: #FFCC00;--ios-purple: #AF52DE;--ios-teal: #5AC8FA;--calories: #FF3B30;--protein: #34C759;--fat: #FF9500;--carbs: #007AFF;--cal-bg: rgba(255,59,48,.1);--prot-bg: rgba(52,199,89,.1);--fat-bg: rgba(255,149,0,.1);--carbs-bg: rgba(0,122,255,.1);--font: -apple-system, "SF Pro Display", "SF Pro Text", "Helvetica Neue", system-ui, sans-serif;--font-rounded: -apple-system, "SF Pro Rounded", "SF Pro Display", system-ui, sans-serif;--font-mono: "SF Mono", "Menlo", monospace;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 22px;--radius-full: 100px;--shadow-sm: 0 1px 2px rgba(0,0,0,.04);--shadow: 0 2px 8px rgba(0,0,0,.06);--shadow-md: 0 4px 16px rgba(0,0,0,.1);--shadow-sheet: 0 -2px 20px rgba(0,0,0,.12);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--tab-height: 82px;--header-height: 56px;--spring: cubic-bezier(.2, .9, .3, 1);--ease-out: cubic-bezier(0, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.47;min-height:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}a{color:var(--accent);text-decoration:none}.app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.page-content{flex:1;padding:0 16px calc(var(--tab-height) + var(--safe-bottom) + 8px);padding-top:calc(var(--safe-top) + 8px);overflow-y:auto;-webkit-overflow-scrolling:touch}.nav-bar{position:sticky;top:0;z-index:100;padding:calc(var(--safe-top) + 4px) 16px 8px;background:#f2f2f7d1;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.nav-bar-inner{display:flex;align-items:center;justify-content:space-between;min-height:44px}.nav-bar .back-btn{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--accent);font-size:17px;font-family:var(--font);font-weight:400;cursor:pointer;padding:12px 8px 12px 0;min-height:44px}.nav-bar .nav-title{font-size:17px;font-weight:600;flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-bar .nav-action{background:none;border:none;color:var(--accent);font-size:17px;font-family:var(--font);font-weight:400;cursor:pointer;padding:12px 0 12px 8px;min-width:44px;min-height:44px;text-align:right}.large-title{font-size:34px;font-weight:800;letter-spacing:.37px;margin-bottom:4px;line-height:1.12}.subtitle{font-size:15px;color:var(--text-tertiary);margin-bottom:16px}.tab-bar{position:fixed;bottom:0;left:0;right:0;z-index:200;background:#f9f9f9e0;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--separator-opaque);padding-bottom:var(--safe-bottom)}.tab-bar-inner{display:flex;justify-content:space-around;align-items:center;height:50px;max-width:600px;margin:0 auto}.tab-item{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--text-tertiary);font-size:10px;font-weight:500;letter-spacing:-.01em;padding:4px 0;min-width:64px;cursor:pointer;transition:transform .15s var(--spring);-webkit-user-select:none;user-select:none}.tab-item:active{transform:scale(.88)}.tab-item.active{color:var(--accent)}.tab-item svg{width:24px;height:24px;stroke-width:1.8}.tab-item.active svg{stroke-width:2.2}.tab-label{font-size:10px;line-height:1}.ios-group{background:var(--bg-card);border-radius:var(--radius);margin-bottom:20px;overflow:hidden}.ios-group-title{font-size:13px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.02em;padding:24px 16px 8px}.ios-row{display:flex;align-items:center;padding:12px 16px;min-height:44px;gap:12px;position:relative}.ios-row+.ios-row{border-top:.5px solid var(--separator);margin-left:16px;padding-left:0}.ios-row .row-icon{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ios-row .row-icon svg{width:18px;height:18px}.ios-row .row-label{font-size:17px;flex:1;min-width:0}.ios-row .row-value{font-size:17px;color:var(--text-tertiary);text-align:right;flex-shrink:0}.ios-row .row-chevron{color:var(--separator-opaque);flex-shrink:0}.ios-row-tap{cursor:pointer;transition:background .08s}.ios-row-tap:active{background:var(--fill-secondary)}.btn-ios{display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 20px;border:none;border-radius:var(--radius);font-family:var(--font);font-size:17px;font-weight:600;cursor:pointer;width:100%;transition:transform .12s var(--spring),opacity .12s;-webkit-user-select:none}.btn-ios:active{transform:scale(.97);opacity:.7}.btn-ios:disabled{opacity:.4;pointer-events:none}.btn-primary-ios{background:var(--accent);color:var(--text-on-accent)}.btn-secondary-ios{background:var(--fill);color:var(--text)}.btn-danger-ios{background:#ff3b301f;color:var(--ios-red)}.btn-text-ios{background:transparent;color:var(--accent);padding:10px 16px}.btn-sm-ios{padding:10px 16px;font-size:15px;font-weight:500;border-radius:var(--radius-sm);width:auto}.btn-pill{border-radius:var(--radius-full);padding:8px 16px;font-size:15px;font-weight:500;width:auto}.btn-pill.active{background:var(--accent);color:var(--text-on-accent)}.btn-pill:not(.active){background:var(--fill);color:var(--text)}.ios-input-group{margin-bottom:12px}.ios-label{font-size:13px;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.02em;margin-bottom:6px;padding-left:4px}.ios-input{width:100%;padding:12px 14px;border:1.5px solid var(--separator-opaque);border-radius:var(--radius);font-family:var(--font);font-size:17px;background:var(--bg-card);color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.ios-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ios-input::placeholder{color:var(--text-tertiary)}.ios-input-inline{background:var(--bg-card);border:1.5px solid var(--separator-opaque);border-radius:var(--radius-sm);padding:10px 12px;font-size:16px}.ios-input-inline:focus{border-color:var(--accent)}.ios-select{width:100%;padding:12px 32px 12px 14px;border:1.5px solid var(--separator-opaque);border-radius:var(--radius);font-family:var(--font);font-size:17px;background:var(--bg-card);color:var(--text);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%238E8E93' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .2s}.ios-select:focus{border-color:var(--accent)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000052;z-index:500;animation:sheetFadeIn .25s var(--ease-out);touch-action:none}body.sheet-open{overflow:hidden!important;position:fixed!important;width:100%!important;height:100%!important}.sheet{position:fixed;bottom:0;left:0;right:0;z-index:501;background:var(--bg-sheet);border-radius:14px 14px 0 0;max-height:92vh;max-height:92dvh;height:92vh;height:92dvh;display:flex;flex-direction:column;overflow:hidden;animation:sheetSlideUp .35s var(--spring);box-shadow:var(--shadow-sheet)}.sheet-top{flex-shrink:0;z-index:2;background:var(--bg-sheet);border-radius:14px 14px 0 0}.sheet-handle{width:36px;height:5px;border-radius:3px;background:var(--separator-opaque);margin:8px auto 12px}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px 12px}.sheet-header h2{font-size:17px;font-weight:600}.sheet-header button{background:none;border:none;font-size:17px;font-family:var(--font);color:var(--accent);cursor:pointer;padding:8px 0;font-weight:500}.sheet-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:calc(var(--safe-bottom) + 32px)}.sheet-body{padding:0 16px}@keyframes sheetFadeIn{0%{opacity:0}to{opacity:1}}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.nutrient-rings{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.nutrient-ring{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 4px;border-radius:var(--radius);position:relative}.nutrient-ring .ring-value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.nutrient-ring .ring-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;opacity:.8}.nutrient-ring .ring-sub{font-size:11px;font-weight:400;opacity:.6}.ring-cal{background:var(--cal-bg);color:var(--calories)}.ring-prot{background:var(--prot-bg);color:var(--protein)}.ring-fat{background:var(--fat-bg);color:var(--fat)}.ring-carbs{background:var(--carbs-bg);color:var(--carbs)}.ring-fiber{background:#7878801a;color:var(--text-secondary)}.progress-track{height:8px;background:var(--fill-secondary);border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;transition:width .5s var(--spring)}.meal-card{background:var(--bg-card);border-radius:var(--radius);overflow:hidden;margin-bottom:12px}.meal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px}.meal-header-left{display:flex;align-items:center;gap:10px}.meal-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center}.meal-title{font-size:17px;font-weight:600}.meal-kcal{font-size:15px;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.meal-add-btn{width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--text-on-accent);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s var(--spring)}.meal-add-btn:active{transform:scale(.85)}.meal-entry{display:flex;align-items:center;padding:10px 16px;gap:12px;border-top:.5px solid var(--separator)}.meal-entry-info{flex:1;min-width:0}.meal-entry-name{font-size:16px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-entry-meta{font-size:13px;color:var(--text-tertiary)}.meal-entry-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.meal-entry-kcal{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.meal-entry-actions{display:flex;gap:4px}.icon-btn{width:44px;height:44px;border-radius:10px;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-tertiary);transition:background .12s,transform .12s var(--spring)}.icon-btn:active{transform:scale(.85);background:var(--fill-secondary)}.icon-btn-danger:active{background:#ff3b301f;color:var(--ios-red)}.recipe-card-ios{background:var(--bg-card);border-radius:var(--radius);overflow:hidden;transition:transform .2s var(--spring);text-decoration:none;color:var(--text);display:block}.recipe-card-ios:active{transform:scale(.97)}.recipe-card-visual{height:110px;background:linear-gradient(135deg,var(--accent-soft),var(--fill-secondary));display:flex;align-items:center;justify-content:center}.recipe-card-body-ios{padding:12px 14px 14px}.recipe-card-name{font-size:16px;font-weight:600;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-card-meta-ios{display:flex;gap:10px;font-size:13px;color:var(--text-tertiary);margin-bottom:10px}.recipe-card-nutrients{display:flex;gap:6px}.mini-badge{font-size:12px;font-weight:600;padding:3px 8px;border-radius:6px;font-variant-numeric:tabular-nums}.tag-ios{display:inline-block;padding:4px 10px;border-radius:var(--radius-full);font-size:13px;font-weight:500;background:var(--fill);color:var(--text-secondary)}.tag-ios-accent{background:var(--accent-soft);color:var(--accent)}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}.quick-action{background:var(--bg-card);border-radius:var(--radius);padding:16px 14px;display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);transition:transform .12s var(--spring);cursor:pointer}.quick-action:active{transform:scale(.96)}.qa-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.qa-icon svg{width:22px;height:22px}.qa-label{font-size:15px;font-weight:600}.qa-desc{font-size:12px;color:var(--text-tertiary);margin-top:1px}.date-bar{display:flex;align-items:center;gap:8px;margin-bottom:16px}.date-bar-center{flex:1;text-align:center}.date-bar-label{font-size:17px;font-weight:600;text-transform:capitalize}.date-bar-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--fill);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);transition:transform .12s var(--spring)}.date-bar-btn:active{transform:scale(.85)}.ing-row{display:flex;align-items:center;padding:12px 16px;gap:12px;cursor:pointer;transition:background .08s}.ing-row:active{background:var(--fill-secondary)}.ing-row+.ing-row{border-top:.5px solid var(--separator)}.ing-name{flex:1;font-size:16px;font-weight:500;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ing-kcal{font-size:15px;font-weight:600;color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}.search-ios{position:relative;margin-bottom:16px}.search-ios svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);width:18px;height:18px}.search-ios input{width:100%;padding:10px 10px 10px 36px;border:none;border-radius:var(--radius);font-family:var(--font);font-size:17px;background:var(--fill-secondary);color:var(--text);outline:none;-webkit-appearance:none}.search-ios input::placeholder{color:var(--text-tertiary)}.segment-control{display:flex;background:var(--fill-secondary);border-radius:var(--radius-sm);padding:2px;margin-bottom:16px}.segment-btn{flex:1;padding:10px 14px;border:none;border-radius:7px;font-family:var(--font);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s var(--spring);background:transparent;color:var(--text-secondary)}.segment-btn.active{background:var(--bg-card);color:var(--text);box-shadow:0 1px 4px #00000014}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.cal-day-name{font-size:11px;font-weight:600;color:var(--text-tertiary);padding:4px}.cal-day{padding:8px 4px;border-radius:50%;font-size:15px;cursor:pointer;aspect-ratio:1;display:flex;align-items:center;justify-content:center;transition:background .15s}.cal-day:active{background:var(--fill)}.cal-day.today{font-weight:700;color:var(--accent)}.cal-day.selected{background:var(--accent);color:var(--text-on-accent);font-weight:700}.empty-ios{text-align:center;padding:40px 24px;color:var(--text-tertiary)}.empty-ios svg{width:52px;height:52px;margin-bottom:12px;opacity:.4}.empty-ios p{font-size:16px;margin-bottom:16px}.auth-page-ios{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;background:var(--bg)}.auth-logo{font-size:32px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}.auth-logo span{color:var(--accent)}.auth-subtitle{font-size:15px;color:var(--text-tertiary);margin-bottom:32px;text-align:center}.auth-form-ios{width:100%;max-width:380px;display:flex;flex-direction:column;gap:12px}.auth-footer-ios{margin-top:24px;font-size:15px;color:var(--text-tertiary);text-align:center}.loading-ios{display:flex;align-items:center;justify-content:center;padding:48px;color:var(--text-tertiary);font-size:15px}.toast-ios{position:fixed;top:calc(var(--safe-top) + 12px);left:50%;transform:translate(-50%);background:var(--text);color:var(--text-on-accent);padding:12px 20px;border-radius:var(--radius-full);font-size:15px;font-weight:500;z-index:600;animation:toastIn .3s var(--spring);box-shadow:var(--shadow-md)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.grid-2-ios{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid-3-ios{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.page-enter{animation:pageSlideIn .3s var(--spring)}@keyframes pageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.scroll-row{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}.scroll-row::-webkit-scrollbar{display:none}.scroll-row>*{scroll-snap-align:start;flex-shrink:0}.profile-avatar{width:64px;height:64px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;margin:16px auto}.profile-name{text-align:center;font-size:20px;font-weight:700;margin-bottom:4px}.profile-email{text-align:center;font-size:15px;color:var(--text-tertiary);margin-bottom:24px}.flex-between{display:flex;align-items:center;justify-content:space-between}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.mb-24{margin-bottom:24px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.p-16{padding:0 16px}
