@import"https://fonts.googleapis.com/css2?family=Chivo+Mono:wght@400;600&family=DM+Serif+Display:ital@0;1&family=Source+Sans+3:wght@400;600;700&display=swap";:root{--color-bg: #efe7d7;--color-bg-deep: #e2d5bf;--color-surface: #fff9ef;--color-surface-elevated: #f3ead8;--color-text: #1f1912;--color-text-muted: #665c4f;--color-accent: #c74f32;--color-accent-dim: #e9c2ac;--color-accent-cool: #1d6b66;--color-success: #2f8f56;--color-warning: #d78f27;--color-danger: #ca3e2f;--color-on-accent: #fff6ef;--tap-target: 48px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 20px;--font-size-xl: 30px;--font-size-timer: clamp(68px, 18vw, 138px);--radius-sm: 10px;--radius: 16px;--radius-lg: 22px;--shadow-hard: 0 10px 0 rgba(31, 25, 18, .14);--line-strong: rgba(31, 25, 18, .2);--line-soft: rgba(31, 25, 18, .11);--line-top: rgba(31, 25, 18, .1);--surface-glass: color-mix(in srgb, var(--color-surface) 94%, white 6%);--surface-input: #fffdf7;--surface-chip: #fff;--surface-note: #fffef9;--surface-profile: #fffdf7;--surface-timer-start: #fffaf2;--surface-timer-end: #f4e8d3;--surface-header-start: #fff8ea;--surface-header-end: #f5ead8;--overlay-bg: rgba(22, 16, 12, .82);--texture-stripe: rgba(255, 255, 255, .24);--chat-user-end: #db7f5f;--chat-user-border: rgba(120, 38, 19, .2);--workout-btn-end: #3e8e85;--focus-ring: rgba(29, 107, 102, .24);--focus-accent-ring: rgba(199, 79, 50, .2)}:root[data-theme=midnight]{--color-bg: #0b1221;--color-bg-deep: #121c30;--color-surface: #151f34;--color-surface-elevated: #1c2840;--color-text: #eff4ff;--color-text-muted: #9fb0ce;--color-accent: #e46d3d;--color-accent-dim: #473644;--color-accent-cool: #4bc5be;--color-success: #38a96f;--color-warning: #f6ae3d;--color-danger: #f3594f;--color-on-accent: #fff8f4;--shadow-hard: 0 10px 0 rgba(8, 10, 20, .38);--line-strong: rgba(180, 198, 228, .3);--line-soft: rgba(180, 198, 228, .2);--line-top: rgba(180, 198, 228, .22);--surface-glass: color-mix(in srgb, var(--color-surface) 92%, #05080f 8%);--surface-input: #1a2438;--surface-chip: #202e47;--surface-note: #1a263c;--surface-profile: #18243a;--surface-timer-start: #18243a;--surface-timer-end: #111c30;--surface-header-start: #1c2a44;--surface-header-end: #18233b;--overlay-bg: rgba(8, 12, 22, .88);--texture-stripe: rgba(118, 145, 196, .15);--chat-user-end: #b95b35;--chat-user-border: rgba(255, 150, 100, .26);--workout-btn-end: #2f7e7c;--focus-ring: rgba(75, 197, 190, .3);--focus-accent-ring: rgba(228, 109, 61, .28)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:"Source Sans 3",Segoe UI,sans-serif;font-size:var(--font-size-md);color:var(--color-text);-webkit-text-size-adjust:100%}body{background:radial-gradient(circle at 20% 12%,rgba(199,79,50,.2),transparent 38%),radial-gradient(circle at 82% 88%,rgba(29,107,102,.18),transparent 42%),linear-gradient(140deg,var(--color-bg) 0%,var(--color-bg-deep) 100%);position:relative;overflow:hidden;transition:background .24s ease}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.24;background:repeating-linear-gradient(-16deg,var(--texture-stripe) 0,var(--texture-stripe) 2px,transparent 2px,transparent 18px)}#root{height:100%}.app-container{display:flex;flex-direction:column;height:100dvh;position:relative;z-index:1;background:var(--surface-glass);border-top:4px solid var(--line-top);box-shadow:var(--shadow-hard);animation:app-rise .36s cubic-bezier(.22,1,.36,1)}.theme-toggle{position:absolute;top:10px;right:10px;z-index:4;min-height:38px;min-width:38px;padding:8px 10px;border-radius:999px;font-family:Chivo Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;background:color-mix(in srgb,var(--color-surface) 82%,transparent);color:var(--color-text);border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.theme-toggle-icon{display:inline-block;line-height:1}@keyframes app-rise{0%{opacity:0;transform:translateY(18px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.tab-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.tab-bar{display:flex;gap:4px;padding:var(--spacing-sm) var(--spacing-xs);background:var(--color-surface-elevated);flex-shrink:0}.tab-bar.bottom{order:999;border-top:2px solid var(--line-top)}.tab-button{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;min-height:var(--tap-target);padding:var(--spacing-sm) var(--spacing-xs);font-family:Chivo Mono,monospace;font-size:11px;letter-spacing:.03em;text-transform:uppercase;overflow:hidden;white-space:nowrap;color:var(--color-text-muted);background:transparent;border:1px solid transparent;border-radius:999px;cursor:pointer;touch-action:manipulation;transition:all .18s ease}.tab-icon{width:16px;height:16px;display:inline-flex}.tab-icon svg{width:16px;height:16px}.tab-text{line-height:1}.tab-button.active{color:var(--color-surface);background:var(--color-text);box-shadow:inset 0 -2px #fff3}.chat-container{display:flex;flex-direction:column;height:100%}.chat-messages{flex:1;overflow-y:auto;padding:var(--spacing-lg) var(--spacing-md);-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.chat-messages-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--font-size-lg);text-align:center;padding:var(--spacing-xl);font-family:"DM Serif Display",serif;font-style:italic}.chat-message{max-width:min(86%,580px);padding:12px 14px;border-radius:var(--radius);border:1px solid var(--line-soft);word-wrap:break-word;line-height:1.45;animation:lift-in .34s ease both}.chat-message.no-animate{animation:none}.chat-message.user{align-self:flex-end;background:linear-gradient(140deg,var(--color-accent) 0%,var(--chat-user-end) 100%);color:var(--color-on-accent);border-bottom-right-radius:5px;border-color:var(--chat-user-border)}.chat-message.model{align-self:flex-start;background:var(--color-surface-elevated);border-bottom-left-radius:5px}.chat-message-time{font-size:12px;font-family:Chivo Mono,monospace;color:color-mix(in srgb,var(--color-text-muted) 80%,black 20%);margin-top:6px;opacity:.8}.chat-message.user .chat-message-time{color:color-mix(in srgb,white 76%,var(--color-accent) 24%);text-align:right}.chat-nutrition-logged{margin-top:8px;padding:8px 10px;background:color-mix(in srgb,var(--color-accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-accent) 25%,transparent);border-radius:var(--radius-sm)}.chat-nutrition-logged-header{display:flex;align-items:center;gap:5px;font-size:.8rem;font-weight:600;color:var(--color-accent);font-family:Chivo Mono,monospace;letter-spacing:.04em;margin-bottom:4px}.chat-nutrition-logged-items{display:flex;flex-direction:column;gap:2px}.chat-nutrition-logged-item{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.78rem}.chat-nutrition-item-name{color:var(--color-text);font-weight:500}.chat-nutrition-item-macros{color:var(--color-text-muted);font-family:Chivo Mono,monospace;font-size:.72rem;white-space:nowrap}.chat-sources{padding-top:8px;margin-top:8px;border-top:1px solid var(--line-soft)}.chat-sources-summary{font-size:.8rem;color:var(--color-text-muted);cursor:pointer;font-family:Chivo Mono,monospace;letter-spacing:.04em;list-style:none;-webkit-user-select:none;user-select:none}.chat-sources-summary::-webkit-details-marker{display:none}.chat-sources-summary:before{content:"";display:inline-block;width:0;height:0;border-left:5px solid var(--color-text-muted);border-top:4px solid transparent;border-bottom:4px solid transparent;margin-right:6px;transition:transform .18s ease}.chat-sources[open]>.chat-sources-summary:before{transform:rotate(90deg)}.chat-sources-list{display:flex;flex-direction:column;gap:6px;margin-top:6px}.chat-source-item{background:var(--color-surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:6px 8px}.chat-source-header{font-size:.8rem;font-weight:600;color:var(--color-text-muted);font-family:Chivo Mono,monospace}.chat-source-snippet{font-size:.75rem;color:var(--color-text-muted);line-height:1.35;margin-top:2px;opacity:.85}.chat-skeleton{display:flex;flex-direction:column;gap:10px;flex:1;padding:var(--spacing-sm) 0}.skeleton-msg{border-radius:var(--radius);animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-user{align-self:flex-end;width:55%;height:52px;background:color-mix(in srgb,var(--color-accent) 15%,transparent);border:1px solid color-mix(in srgb,var(--color-accent) 10%,transparent);border-bottom-right-radius:5px}.skeleton-model{align-self:flex-start;width:65%;height:64px;background:color-mix(in srgb,var(--color-surface-elevated) 70%,transparent);border:1px solid var(--line-soft);border-bottom-left-radius:5px}.skeleton-wide{width:78%;height:80px}.skeleton-narrow{width:40%;height:44px}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}@keyframes lift-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.streaming-indicator{display:inline-flex;gap:6px;padding:4px 0}.streaming-indicator .dot{width:6px;height:6px;background:var(--color-accent-cool);border-radius:50%;animation:pulse-dot 1.2s infinite ease-in-out}.streaming-indicator .dot:nth-child(2){animation-delay:.18s}.streaming-indicator .dot:nth-child(3){animation-delay:.36s}@keyframes pulse-dot{0%,80%,to{opacity:.35;transform:scale(.82)}40%{opacity:1;transform:scale(1)}}.memory-toggle{position:absolute;top:10px;left:10px;z-index:4;min-height:38px;min-width:38px;padding:8px 10px;border-radius:999px;font-family:Chivo Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;background:color-mix(in srgb,var(--color-surface) 82%,transparent);color:var(--color-text-muted);border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.memory-toggle.active{background:var(--color-accent-cool);color:#effcf9;border-color:transparent}.chat-input-bar{display:flex;gap:var(--spacing-sm);padding:var(--spacing-md);background:linear-gradient(180deg,color-mix(in srgb,var(--color-surface) 70%,transparent),var(--color-surface-elevated));border-top:2px solid var(--line-top);flex-shrink:0}.chat-input{flex:1;min-height:var(--tap-target);padding:var(--spacing-sm) 14px;font-size:var(--font-size-md);font-family:inherit;color:var(--color-text);background:var(--surface-input);border:1px solid var(--line-strong);border-radius:var(--radius-sm);outline:none;resize:none;transition:border-color .16s ease,box-shadow .16s ease}.chat-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--focus-accent-ring)}.chat-input::placeholder{color:#8d8376}.btn-voice{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap-target);min-width:var(--tap-target);padding:var(--spacing-sm);background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--line-strong);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;transition:background .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease}.btn-voice:hover:not(:disabled){color:var(--color-text);border-color:var(--color-accent)}.btn-voice.recording{background:var(--color-danger);color:#fff;border-color:transparent;animation:voice-pulse 1.4s ease-in-out infinite}.btn-voice.transcribing{background:var(--color-surface-elevated);color:var(--color-text-muted);border-color:var(--line-soft);cursor:wait}.voice-spinner{width:18px;height:18px;border:2px solid var(--line-soft);border-top-color:var(--color-accent-cool);border-radius:50%;animation:voice-spin .7s linear infinite}@keyframes voice-pulse{0%,to{box-shadow:0 0 #ca3e2f66}50%{box-shadow:0 0 0 8px #ca3e2f00}}@keyframes voice-spin{to{transform:rotate(360deg)}}.voice-error{font-size:var(--font-size-sm);color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 10%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-danger) 30%,transparent);border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;font-family:Chivo Mono,monospace;font-size:12px;text-align:center}button,.tap-target{min-height:var(--tap-target);min-width:var(--tap-target);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);font-family:inherit;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;touch-action:manipulation;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}button:hover{transform:translateY(-1px)}button:active{transform:translateY(0)}button:focus-visible,input:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus-ring)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-accent);color:var(--color-on-accent);font-weight:700;font-family:Chivo Mono,monospace;letter-spacing:.04em;text-transform:uppercase}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--line-strong)}.btn-workout{background:linear-gradient(90deg,var(--color-accent-cool),var(--workout-btn-end));color:#effcf9;font-weight:700;width:100%;margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.05em}.rest-timer-overlay{position:fixed;inset:0;background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--spacing-md)}.rest-timer{display:flex;flex-direction:column;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;background:linear-gradient(180deg,var(--surface-timer-start) 0%,var(--surface-timer-end) 100%);border:2px solid var(--line-strong);border-radius:var(--radius-lg);width:min(92vw,460px);padding:var(--spacing-xl);gap:var(--spacing-lg);box-shadow:0 28px 70px #00000059}.rest-timer-label{font-size:var(--font-size-lg);color:var(--color-text-muted);font-family:Chivo Mono,monospace;text-transform:uppercase;letter-spacing:.18em}.rest-timer-time{font-size:var(--font-size-timer);font-weight:700;line-height:1;font-family:Chivo Mono,monospace;font-variant-numeric:tabular-nums;text-shadow:0 3px 0 rgba(31,25,18,.09)}.rest-timer-skip{font-size:var(--font-size-lg);padding:var(--spacing-md) var(--spacing-xl);font-family:Chivo Mono,monospace}.workout-view{display:flex;flex-direction:column;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--spacing-md);gap:var(--spacing-md)}.workout-empty,.profile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-text-muted);padding:var(--spacing-xl);text-align:center;gap:var(--spacing-md)}.workout-empty h2{font-size:var(--font-size-xl);color:var(--color-text);font-family:"DM Serif Display",serif}.workout-header{text-align:left;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:linear-gradient(130deg,var(--surface-header-start),var(--surface-header-end));box-shadow:var(--shadow-hard)}.workout-title{font-size:var(--font-size-xl);font-family:"DM Serif Display",serif;letter-spacing:.02em}.workout-date{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:3px;font-family:Chivo Mono,monospace}.workout-exercises{display:flex;flex-direction:column;gap:var(--spacing-md)}.workout-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-sm) 0}.workout-nav-indicator{font-size:var(--font-size-md);font-family:Chivo Mono,monospace;color:var(--color-text-muted)}.workout-notes{background:var(--surface-note);border:1px dashed var(--line-strong);padding:var(--spacing-md);border-radius:var(--radius);font-size:var(--font-size-sm);color:var(--color-text-muted)}.exercise-card{background:var(--color-surface);border-radius:var(--radius);padding:var(--spacing-md);border:1px solid var(--line-soft);border-left:4px solid transparent;box-shadow:var(--shadow-hard);transition:transform .18s ease,border-color .18s ease}.exercise-card.active{border-left-color:var(--color-accent);transform:translateY(-2px)}.exercise-header{margin-bottom:var(--spacing-md)}.exercise-name{font-size:var(--font-size-lg);font-family:"DM Serif Display",serif}.exercise-summary{font-size:var(--font-size-md);color:var(--color-text-muted);margin-top:var(--spacing-xs)}.exercise-rest{font-size:var(--font-size-sm);color:var(--color-accent-cool);margin-top:var(--spacing-xs);font-family:Chivo Mono,monospace}.exercise-sets{display:flex;flex-direction:column;gap:var(--spacing-sm)}.set-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-elevated);border-radius:var(--radius-sm);border:1px solid var(--line-soft)}.set-row.complete{background:color-mix(in srgb,var(--color-success) 24%,var(--color-surface));border-color:color-mix(in srgb,var(--color-success) 52%,var(--color-surface))}.set-number{font-size:var(--font-size-sm);color:var(--color-text-muted);min-width:48px;font-weight:600;font-family:Chivo Mono,monospace}.set-details{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:18px;font-weight:700}.set-prescribed{display:flex;gap:var(--spacing-md);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-muted)}.set-actuals{display:flex;gap:var(--spacing-sm)}.set-actual-input{width:72px;padding:4px 8px;font-size:var(--font-size-sm);font-family:Chivo Mono,monospace;font-weight:600;border:1px solid var(--line-soft);border-radius:6px;background:var(--surface-input);color:var(--color-text);text-align:center;-moz-appearance:textfield}.set-actual-input::-webkit-inner-spin-button,.set-actual-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.set-actual-input::placeholder{color:var(--color-text-muted);opacity:.5;font-weight:400}.set-actual-input:focus{outline:none;border-color:var(--color-accent-cool);box-shadow:0 0 0 2px var(--focus-ring)}.set-reps{color:var(--color-text)}.set-weight{color:var(--color-accent)}.set-rpe{color:var(--color-text-muted);font-size:var(--font-size-sm);align-self:center}.set-done-btn{background:var(--surface-chip);color:var(--color-text);border-color:var(--line-strong);font-family:Chivo Mono,monospace;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.set-done-btn.complete{background:var(--color-success);color:#fff;border-color:transparent}.profile-editor{display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-md);overflow-y:auto;-webkit-overflow-scrolling:touch;height:100%}.profile-title{font-size:var(--font-size-xl);font-family:"DM Serif Display",serif;text-align:left}.profile-section{display:flex;flex-direction:column;gap:var(--spacing-sm);border:1px solid var(--line-soft);background:var(--surface-profile);border-radius:var(--radius);padding:var(--spacing-md)}.profile-section-title{font-size:var(--font-size-md);font-weight:700;color:var(--color-accent-cool);text-transform:uppercase;letter-spacing:.09em;font-family:Chivo Mono,monospace}.profile-maxes,.profile-prefs{display:flex;flex-direction:column;gap:var(--spacing-sm)}.profile-max-row,.profile-pref-row{display:flex;align-items:center;gap:var(--spacing-md);background:var(--color-surface-elevated);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm)}.profile-max-label,.profile-pref-label{flex:1;font-size:var(--font-size-md)}.profile-max-input,.profile-pref-input{width:84px;min-height:var(--tap-target);padding:var(--spacing-sm) var(--spacing-md);font-size:18px;font-family:Chivo Mono,monospace;font-weight:600;color:var(--color-text);background:var(--surface-input);border:1px solid var(--line-strong);border-radius:var(--radius-sm);text-align:center;outline:none}.profile-tags,.profile-equipment{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.profile-tag,.profile-equipment-btn{background:var(--color-surface-elevated);color:var(--color-text);border-color:var(--line-soft);padding:var(--spacing-sm) var(--spacing-md);border-radius:999px;font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--spacing-xs)}.profile-equipment-btn.selected{background:var(--color-accent-cool);color:#fff;border-color:transparent}.profile-add-row{display:flex;gap:var(--spacing-sm)}.profile-add-input{flex:1;min-height:var(--tap-target);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);font-family:inherit;color:var(--color-text);background:var(--surface-input);border:1px solid var(--line-strong);border-radius:var(--radius-sm);outline:none}.profile-add-input::placeholder{color:var(--color-text-muted)}.profile-goals{display:flex;flex-direction:column;gap:var(--spacing-sm)}.profile-goal-tag{justify-content:flex-start;border-radius:var(--radius-sm);width:100%;text-align:left}.profile-goal-number{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:50%;background:var(--color-accent-cool);color:#fff;font-size:12px;font-weight:700;font-family:Chivo Mono,monospace;margin-right:var(--spacing-sm);flex-shrink:0}.profile-remove-btn{min-height:36px;min-width:36px;padding:4px 10px;background:var(--color-danger);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:700;font-family:Chivo Mono,monospace;line-height:1}.profile-save{width:100%;margin-top:var(--spacing-md);margin-bottom:var(--spacing-xl)}.profile-save.saved{background:var(--color-success)}.workout-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-text-muted);padding:var(--spacing-xl);text-align:center;gap:var(--spacing-md)}.workout-placeholder h2{font-size:var(--font-size-lg)}.splash-screen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,rgba(199,79,50,.25),transparent 50%),radial-gradient(circle at 70% 80%,rgba(29,107,102,.22),transparent 50%),linear-gradient(160deg,var(--color-bg) 0%,var(--color-bg-deep) 100%);transition:opacity .6s cubic-bezier(.4,0,.2,1)}.splash-screen.fading{opacity:0;pointer-events:none}.splash-content{display:flex;flex-direction:column;align-items:center;gap:6px;animation:splash-enter .8s cubic-bezier(.22,1,.36,1) both}.splash-icon{width:80px;height:80px;color:var(--color-accent);margin-bottom:8px;animation:splash-icon-pulse 2s ease-in-out infinite}.splash-icon svg{width:100%;height:100%;filter:drop-shadow(0 4px 12px rgba(199,79,50,.3))}.splash-title{font-family:"DM Serif Display",serif;font-size:clamp(48px,12vw,72px);color:var(--color-text);letter-spacing:-.02em;line-height:1;text-shadow:0 2px 0 rgba(31,25,18,.06)}.splash-subtitle{font-family:Chivo Mono,monospace;font-size:clamp(12px,3vw,15px);text-transform:uppercase;letter-spacing:.22em;color:var(--color-accent-cool);margin-top:2px}.splash-loader{width:120px;height:3px;background:var(--line-soft);border-radius:3px;overflow:hidden;margin-top:28px}.splash-loader-bar{height:100%;width:0%;border-radius:3px;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-cool));animation:splash-load 1.8s cubic-bezier(.4,0,.2,1) forwards}@keyframes splash-enter{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes splash-icon-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes splash-load{0%{width:0%}60%{width:70%}to{width:100%}}@media(min-width:768px){#root{display:flex;flex-direction:column;align-items:center}.app-container{width:100%;max-width:760px;margin:32px auto 18px;height:calc(100dvh - 50px);border-radius:28px;border:2px solid var(--line-soft);overflow:hidden}.chat-message{max-width:74%}}@media(max-width:390px){.set-row{grid-template-columns:1fr;gap:6px}.set-done-btn,.set-actual-input{width:100%}.set-actuals{flex-direction:column}}.nutrition-page{display:flex;flex-direction:column;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--spacing-md);gap:var(--spacing-md)}.nutrition-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-muted);font-family:Chivo Mono,monospace}.nutrition-date-nav{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md)}.nutrition-date-btn{min-height:38px;min-width:38px;padding:var(--spacing-sm);font-family:Chivo Mono,monospace;font-weight:700}.nutrition-date-label{font-size:var(--font-size-lg);font-family:"DM Serif Display",serif;min-width:120px;text-align:center}.macro-rings{display:flex;justify-content:space-around;padding:var(--spacing-sm) 0;gap:var(--spacing-xs)}.macro-ring{display:flex;flex-direction:column;align-items:center;gap:2px;position:relative}.macro-ring svg{display:block}.macro-ring-value{font-size:var(--font-size-md);font-weight:700;font-family:Chivo Mono,monospace;margin-top:4px;line-height:1}.macro-ring-unit{font-size:11px;font-weight:400}.macro-ring-label{font-size:11px;font-family:Chivo Mono,monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.macro-ring-target{font-size:11px;font-family:Chivo Mono,monospace;color:var(--color-text-muted);opacity:.7}.meal-section{background:var(--color-surface);border:1px solid var(--line-soft);border-radius:var(--radius);padding:var(--spacing-md);box-shadow:var(--shadow-hard)}.meal-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--spacing-sm)}.meal-title{font-size:var(--font-size-lg);font-family:"DM Serif Display",serif}.meal-calories{font-size:var(--font-size-sm);font-family:Chivo Mono,monospace;color:var(--color-text-muted)}.meal-entries{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.meal-entry{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-elevated);border-radius:var(--radius-sm);border:1px solid var(--line-soft)}.meal-entry-info{flex:1;min-width:0}.meal-entry-name{font-size:var(--font-size-md);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-entry-servings{font-weight:400;color:var(--color-text-muted);font-size:var(--font-size-sm)}.meal-entry-macros{font-size:var(--font-size-sm);font-family:Chivo Mono,monospace;color:var(--color-text-muted);margin-top:2px}.meal-entry-delete{min-height:32px;min-width:32px;padding:0;background:transparent;color:var(--color-text-muted);border:none;font-size:18px;line-height:1;opacity:.6}.meal-entry-delete:hover{opacity:1;color:var(--color-danger)}.meal-add-btn{width:100%;min-height:40px;padding:var(--spacing-sm);background:transparent;color:var(--color-text-muted);border:2px dashed var(--line-strong);border-radius:var(--radius-sm);font-family:Chivo Mono,monospace;font-size:var(--font-size-sm);letter-spacing:.04em;text-transform:uppercase}.meal-add-btn:hover{border-color:var(--color-accent-cool);color:var(--color-accent-cool)}.food-modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:100;padding:var(--spacing-md)}.food-modal{width:100%;max-width:520px;max-height:85vh;background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border:1px solid var(--line-soft);display:flex;flex-direction:column;overflow:hidden;animation:slide-up .24s cubic-bezier(.22,1,.36,1)}@keyframes slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.food-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--line-soft);flex-shrink:0}.food-modal-title{font-size:var(--font-size-lg);font-family:"DM Serif Display",serif}.food-modal-close{min-height:36px;min-width:36px;padding:4px 10px;background:transparent;color:var(--color-text-muted);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-family:Chivo Mono,monospace;font-size:var(--font-size-sm);font-weight:700}.food-search-bar{display:flex;gap:var(--spacing-sm);padding:var(--spacing-md);flex-shrink:0}.food-search-input{flex:1;min-height:var(--tap-target);padding:var(--spacing-sm) 14px;font-size:var(--font-size-md);font-family:inherit;color:var(--color-text);background:var(--surface-input);border:1px solid var(--line-strong);border-radius:var(--radius-sm);outline:none}.food-search-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--focus-accent-ring)}.food-search-input::placeholder{color:var(--color-text-muted)}.food-barcode-btn{white-space:nowrap;font-family:Chivo Mono,monospace;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.food-results{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 var(--spacing-md) var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.food-results-loading,.food-results-empty{text-align:center;color:var(--color-text-muted);padding:var(--spacing-lg);font-family:Chivo Mono,monospace;font-size:var(--font-size-sm)}.food-result-item{display:block;padding:0;min-height:0;flex-shrink:0;background:var(--color-surface-elevated);border:1px solid var(--line-soft);border-radius:var(--radius-sm);text-align:left;width:100%}.food-result-item:hover{border-color:var(--color-accent-cool)}.food-result-content{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md)}.food-result-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md)}.food-result-info{display:flex;flex-direction:column;flex:1;min-width:0}.food-result-name{display:block;font-size:var(--font-size-md);font-weight:600;line-height:1.3}.food-result-brand{display:block;font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:1px}.food-result-cal{font-family:Chivo Mono,monospace;font-size:var(--font-size-md);font-weight:700;white-space:nowrap;line-height:1.3}.food-result-macros{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-sm);font-family:Chivo Mono,monospace}.food-result-macro-line{color:var(--color-text-muted)}.food-result-source{font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:4px;font-weight:600}.food-result-source.usda{background:color-mix(in srgb,var(--color-accent-cool) 20%,transparent);color:var(--color-accent-cool)}.food-result-source.openfoodfacts{background:color-mix(in srgb,var(--color-warning) 20%,transparent);color:var(--color-warning)}.food-result-source.gemini{background:color-mix(in srgb,var(--color-accent) 20%,transparent);color:var(--color-accent)}.food-detail{padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md);overflow-y:auto}.food-detail-back{align-self:flex-start;background:transparent;color:var(--color-accent-cool);border:none;font-family:Chivo Mono,monospace;font-size:var(--font-size-sm);padding:var(--spacing-xs) 0;min-height:auto;text-transform:uppercase;letter-spacing:.04em}.food-detail-name{font-size:var(--font-size-lg);font-family:"DM Serif Display",serif}.food-detail-brand{font-size:var(--font-size-md);color:var(--color-text-muted);margin-top:-8px}.food-detail-serving{font-size:var(--font-size-sm);font-family:Chivo Mono,monospace;color:var(--color-text-muted)}.food-servings{display:flex;flex-direction:column;gap:var(--spacing-sm)}.food-servings-label{font-size:var(--font-size-sm);font-family:Chivo Mono,monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.food-servings-presets{display:flex;gap:var(--spacing-sm);align-items:center}.food-serving-btn{min-height:40px;min-width:48px;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-elevated);color:var(--color-text);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-family:Chivo Mono,monospace;font-size:var(--font-size-sm);font-weight:600}.food-serving-btn.active{background:var(--color-accent-cool);color:#fff;border-color:transparent}.food-serving-input{width:64px;min-height:40px;padding:var(--spacing-sm);font-size:var(--font-size-md);font-family:Chivo Mono,monospace;font-weight:600;color:var(--color-text);background:var(--surface-input);border:1px solid var(--line-strong);border-radius:var(--radius-sm);text-align:center;outline:none;-moz-appearance:textfield}.food-serving-input::-webkit-inner-spin-button,.food-serving-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.food-serving-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--focus-accent-ring)}.food-preview{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--color-surface-elevated);border-radius:var(--radius-sm);border:1px solid var(--line-soft)}.food-preview-row{display:flex;justify-content:space-between;font-size:var(--font-size-md)}.food-preview-row span{color:var(--color-text-muted)}.food-preview-row strong{font-family:Chivo Mono,monospace}.food-add-btn{width:100%}.quick-add-row{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-xs)}.quick-add-input{flex:1;min-height:40px;padding:var(--spacing-sm) 14px;font-size:var(--font-size-md);font-family:inherit;color:var(--color-text);background:var(--surface-input);border:1px solid var(--line-strong);border-radius:var(--radius-sm);outline:none;transition:border-color .16s ease,box-shadow .16s ease}.quick-add-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--focus-accent-ring)}.quick-add-input::placeholder{color:var(--color-text-muted)}.quick-add-submit{min-height:40px;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.quick-add-cancel{min-height:40px;min-width:40px;padding:var(--spacing-sm);font-size:var(--font-size-sm);font-family:Chivo Mono,monospace;font-weight:700}.quick-add-photo{min-height:40px;min-width:40px;padding:var(--spacing-sm);display:flex;align-items:center;justify-content:center}.photo-add-preview{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-xs)}.photo-add-image{width:100%;max-height:200px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.photo-add-actions{display:flex;gap:var(--spacing-sm)}.photo-add-submit{flex:1;min-height:40px;font-size:var(--font-size-sm)}.photo-add-retake{min-height:40px;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.meal-entry-pending{animation:skeleton-pulse 1.4s ease-in-out infinite}.meal-entry-failed{opacity:.7}.meal-entry-badge{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:4px;font-size:11px;font-family:Chivo Mono,monospace;font-weight:600;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}.meal-entry-badge.pending{background:color-mix(in srgb,var(--color-warning) 20%,transparent);color:var(--color-warning)}.meal-entry-badge.failed{background:color-mix(in srgb,var(--color-danger) 20%,transparent);color:var(--color-danger)}.meal-entry-macros-pending{animation:skeleton-pulse 1.4s ease-in-out infinite}.meal-entry-macros-failed{color:var(--color-danger)}.auth-screen{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,rgba(199,79,50,.25),transparent 50%),radial-gradient(circle at 70% 80%,rgba(29,107,102,.22),transparent 50%),linear-gradient(160deg,var(--color-bg) 0%,var(--color-bg-deep) 100%);padding:var(--spacing-md)}.auth-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--spacing-lg);animation:splash-enter .6s cubic-bezier(.22,1,.36,1) both}.auth-branding{display:flex;flex-direction:column;align-items:center;gap:4px}.auth-icon{width:64px;height:64px;color:var(--color-accent);margin-bottom:4px}.auth-icon svg{width:100%;height:100%;filter:drop-shadow(0 4px 12px rgba(199,79,50,.3))}.auth-title{font-family:"DM Serif Display",serif;font-size:clamp(36px,10vw,48px);color:var(--color-text);letter-spacing:-.02em;line-height:1}.auth-subtitle{font-family:Chivo Mono,monospace;font-size:12px;text-transform:uppercase;letter-spacing:.22em;color:var(--color-accent-cool)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.auth-input{min-height:var(--tap-target);padding:var(--spacing-sm) 14px;font-size:var(--font-size-md);font-family:inherit;color:var(--color-text);background:var(--surface-input);border:1px solid var(--line-strong);border-radius:var(--radius-sm);outline:none;transition:border-color .16s ease,box-shadow .16s ease}.auth-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--focus-accent-ring)}.auth-input::placeholder{color:var(--color-text-muted)}.auth-submit{width:100%;margin-top:var(--spacing-xs)}.auth-error{background:color-mix(in srgb,var(--color-danger) 12%,var(--color-surface));color:var(--color-danger);border:1px solid color-mix(in srgb,var(--color-danger) 30%,transparent);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-family:Chivo Mono,monospace;text-align:center}.auth-links{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.auth-link{background:none;border:none;color:var(--color-accent-cool);font-size:var(--font-size-sm);font-family:Chivo Mono,monospace;letter-spacing:.02em;cursor:pointer;padding:var(--spacing-xs) 0;min-height:auto;min-width:auto}.auth-link:hover{color:var(--color-accent);transform:none}.auth-description{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;line-height:1.5}.auth-check-email{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);text-align:center;padding:var(--spacing-md) 0}.auth-check-icon{width:48px;height:48px;color:var(--color-accent-cool)}.auth-check-icon svg{width:100%;height:100%}.auth-check-email h3{font-family:"DM Serif Display",serif;font-size:var(--font-size-lg)}.auth-check-email p{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.5}.auth-loading{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,rgba(199,79,50,.25),transparent 50%),radial-gradient(circle at 70% 80%,rgba(29,107,102,.22),transparent 50%),linear-gradient(160deg,var(--color-bg) 0%,var(--color-bg-deep) 100%)}.auth-loading-spinner{width:32px;height:32px;border:3px solid var(--line-soft);border-top-color:var(--color-accent);border-radius:50%;animation:voice-spin .7s linear infinite}.profile-account{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--line-soft);background:var(--surface-profile);border-radius:var(--radius)}.profile-account-email{font-size:var(--font-size-sm);color:var(--color-text-muted);font-family:Chivo Mono,monospace;word-break:break-all}.profile-signout-btn{width:100%;background:transparent;color:var(--color-danger);border:1px solid color-mix(in srgb,var(--color-danger) 40%,transparent);font-family:Chivo Mono,monospace;font-size:var(--font-size-sm);letter-spacing:.04em;text-transform:uppercase}.profile-signout-btn:hover{background:color-mix(in srgb,var(--color-danger) 10%,transparent)}
