@import"https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=Syne:wght@600;700;800&display=swap";:root{--bg-primary: #e6e9ef;--bg-secondary: #f3f4f7;--bg-tertiary: #d8dde6;--bg-ink: #0b0c0f;--card-bg: #ffffff;--card-border: rgba(11, 12, 15, .1);--card-border-hover: rgba(255, 45, 0, .4);--text-primary: #0b0c0f;--text-secondary: #4a5160;--text-muted: #7a8290;--text-on-accent: #ffffff;--accent-primary: #ff2d00;--accent-primary-hover: #d92600;--accent-primary-soft: rgba(255, 45, 0, .1);--accent-primary-glow: transparent;--color-success: #0b8f55;--color-warning: #c47a00;--color-danger: #e11d38;--input-bg: #f7f8fa;--input-border: rgba(11, 12, 15, .14);--input-focus-glow: rgba(255, 45, 0, .2);--surface-muted: rgba(11, 12, 15, .04);--surface-hover: rgba(11, 12, 15, .06);--surface-active: rgba(255, 45, 0, .12);--nav-bg: rgba(255, 255, 255, .94);--overlay-scrim: rgba(11, 12, 15, .45);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--shadow-card: 0 1px 0 rgba(11, 12, 15, .04), 0 10px 28px rgba(11, 12, 15, .08);--shadow-btn: 0 2px 0 rgba(11, 12, 15, .15);--shadow-btn-hover: 0 6px 16px rgba(255, 45, 0, .28);--shadow-glow: none;--font-display: "Syne", system-ui, sans-serif;--font-body: "Outfit", system-ui, sans-serif;font-family:var(--font-body);line-height:1.5;font-weight:400;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--bg-primary);background-image:linear-gradient(115deg,rgba(255,45,0,.07) 0%,transparent 42%),linear-gradient(0deg,transparent 24px,rgba(11,12,15,.035) 25px),linear-gradient(90deg,transparent 24px,rgba(11,12,15,.035) 25px);background-size:auto,26px 26px,26px 26px;background-attachment:fixed}h1,h2,h3,h4,h5{margin:0 0 4px;color:var(--text-primary);font-family:var(--font-display);letter-spacing:-.02em;font-weight:700}p{margin:0}button,input,select,textarea{font:inherit}button{border-radius:var(--radius-md);border:1.5px solid rgba(11,12,15,.22);padding:10px 18px;background:var(--card-bg);color:var(--text-primary);cursor:pointer;font-weight:600;box-shadow:none;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}button:hover:not(:disabled){background:var(--surface-hover);border-color:#0b0c0f59}button:active:not(:disabled){transform:translateY(1px)}button:disabled,button[disabled]{opacity:1;cursor:not-allowed;box-shadow:none;transform:none;background:var(--surface-muted);border-color:#0b0c0f2e;color:var(--text-muted)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}button.btn-primary,button[type=submit]:not(.btn-secondary):not(.btn-ghost):not(.btn-danger):not(.secondary):not(.auth-link-button){background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-on-accent);box-shadow:var(--shadow-btn)}button.btn-primary:hover:not(:disabled),button[type=submit]:not(.btn-secondary):not(.btn-ghost):not(.btn-danger):not(.secondary):not(.auth-link-button):hover:not(:disabled){background:var(--accent-primary-hover);border-color:var(--accent-primary-hover);box-shadow:var(--shadow-btn-hover);color:var(--text-on-accent)}button.btn-primary:disabled,button[type=submit]:not(.btn-secondary):not(.btn-ghost):not(.btn-danger):not(.secondary):not(.auth-link-button):disabled{background:#ff2d0047;border-color:#ff2d0059;color:#fff;box-shadow:none}button.btn-secondary,button.secondary{background:var(--card-bg);border:1.5px solid rgba(11,12,15,.28);color:var(--text-primary);box-shadow:none}button.btn-secondary:hover:not(:disabled),button.secondary:hover:not(:disabled){background:var(--surface-muted);border-color:var(--accent-primary);color:var(--accent-primary)}button.btn-secondary:disabled,button.secondary:disabled{background:var(--surface-muted);border-color:#0b0c0f2e;color:var(--text-muted)}button.btn-ghost{background:transparent;border:1px solid transparent;color:var(--text-secondary);box-shadow:none}button.btn-ghost:hover:not(:disabled){background:var(--surface-muted);color:var(--text-primary)}button.btn-danger{background:transparent;border:1.5px solid rgba(225,29,56,.35);color:var(--color-danger);box-shadow:none}button.btn-danger:hover:not(:disabled){background:#e11d3814;border-color:var(--color-danger)}button.btn-icon{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--card-bg);border:1px solid var(--card-border);color:var(--text-primary);box-shadow:none}button.auth-link-button{background:transparent;border:none;box-shadow:none;color:var(--accent-primary);font-weight:600;padding:8px 4px;text-decoration:underline;text-underline-offset:3px}button.auth-link-button:hover:not(:disabled){background:transparent;color:var(--accent-primary-hover)}input,select,textarea{width:100%;margin-top:6px;padding:12px 14px;min-height:44px;border-radius:var(--radius-md);border:1.5px solid rgba(11,12,15,.2);background:var(--input-bg);color:var(--text-primary);transition:border-color .15s ease,box-shadow .15s ease}textarea{min-height:72px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--text-muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--input-focus-glow)}select{cursor:pointer}select option{background:var(--card-bg);color:var(--text-primary)}label{display:flex;flex-direction:column;font-size:14px;font-weight:500;color:var(--text-secondary)}.muted{color:var(--text-muted)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:#0b0c0f33;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#0b0c0f59}::selection{background:var(--accent-primary);color:#fff}#root{max-width:1100px;margin:0 auto;padding:24px 24px 100px}.app{display:flex;flex-direction:column;gap:24px}.app-header{display:flex;flex-direction:column;gap:16px}.header-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.app-logo{display:flex;align-items:center;gap:12px;color:var(--text-primary);transition:all .2s ease}.app-logo:hover{color:var(--accent-primary)}.logo-icon{width:40px;height:40px;border-radius:10px}.date-picker{display:flex;align-items:center;gap:8px}.date-arrow{width:40px;height:40px;padding:0;font-size:18px;display:flex;align-items:center;justify-content:center;background:var(--card-bg);border:1px solid var(--card-border);color:var(--text-primary);box-shadow:none}.date-arrow:hover{border-color:var(--accent-primary);color:var(--accent-primary);box-shadow:var(--shadow-glow);transform:none}.date-display{position:relative;display:flex;align-items:center}.date-input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;margin:0}.date-label{padding:10px 20px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;font-weight:600;min-width:140px;text-align:center;cursor:pointer;color:var(--text-primary);transition:all .2s ease}.date-label:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.date-today-hint{font-size:13px;color:var(--accent-primary);cursor:pointer;padding:6px 12px;border-radius:6px;transition:all .2s ease;background:#ff6b351a}.date-today-hint:hover{background:#ff6b3533}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#1e1e30f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--card-border);padding:8px 16px;z-index:1000}.bottom-nav-inner{max-width:560px;margin:0 auto;display:flex;justify-content:space-around;align-items:center}.nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 16px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;border-radius:12px;box-shadow:none}.nav-item:hover{color:var(--text-primary);background:#ffffff0d;transform:none;box-shadow:none}.nav-item.active{color:var(--accent-primary);background:#ff6b3526;box-shadow:var(--shadow-glow)}.nav-item-icon{font-size:22px;display:flex;align-items:center;justify-content:center}.nav-item-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.page{display:flex;flex-direction:column;gap:20px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:24px;box-shadow:var(--shadow-card);transition:all .3s ease}.card:hover{border-color:var(--card-border-hover);transform:translateY(-2px)}.card-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:16px;display:flex;align-items:center;gap:8px}.form-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}.form-grid.compact{margin-top:16px}.product-qty-row{grid-column:1 / -1;display:grid;grid-template-columns:1fr minmax(104px,168px) auto;gap:6px 16px;align-items:end}.product-qty-row__search-label{grid-column:1;grid-row:1}.product-qty-row__qty-label{grid-column:2;grid-row:1}.product-qty-row__actions-corner{grid-column:3;grid-row:1;min-height:1.25em}.product-qty-row__search{grid-column:1;grid-row:2;min-width:0}.product-qty-row__qty{grid-column:2;grid-row:2}.product-qty-row__qty input{width:100%}.product-qty-row__actions{grid-column:3;grid-row:2;display:flex;align-items:stretch;gap:8px}.product-qty-row__actions button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;min-height:42px;box-sizing:border-box;line-height:1.1;padding-left:10px;padding-right:10px}.product-qty-row__actions .beta-badge{margin-left:6px;flex-shrink:0;font-size:9px;padding:1px 5px;line-height:1.2}.product-qty-row__hint{grid-column:1;grid-row:3;margin:0;color:var(--text-muted);font-size:.875rem;line-height:1.35}.barcode-panel{grid-column:1 / -1;display:grid;gap:12px;border:1px solid var(--card-border);border-radius:12px;padding:12px;background:var(--surface-muted)}.barcode-scanner-modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));overscroll-behavior:none;touch-action:none}.barcode-scanner-modal__backdrop{position:absolute;inset:0;margin:0;padding:0;border:none;border-radius:0;background:#000000b8;cursor:pointer;box-shadow:none;touch-action:none}.barcode-scanner-modal__backdrop:hover,.barcode-scanner-modal__backdrop:focus-visible{transform:none;box-shadow:none;background:#000000b8}.barcode-scanner-modal__dialog{position:relative;z-index:1;width:min(100%,420px);display:grid;gap:12px;padding:14px;border-radius:16px;border:1px solid var(--card-border);background:var(--card-bg);box-shadow:var(--shadow-card);touch-action:pan-y;overscroll-behavior:contain}.barcode-scanner-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.barcode-scanner-modal__title{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.barcode-scanner-modal__close{flex-shrink:0}.barcode-scanner{display:grid;gap:8px}.barcode-scanner__viewport{position:relative;width:100%;border-radius:10px;overflow:hidden;border:1px solid var(--input-border);background:#111;aspect-ratio:3 / 4;max-height:min(62vh,520px)}.barcode-scanner__video{display:block;width:100%;height:100%;object-fit:cover}.barcode-scanner__overlay{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;background:linear-gradient(to bottom,#00000059,#00000014 32% 68%,#00000059)}.barcode-scanner__reticle{width:min(78%,280px);height:32%;min-height:72px;max-height:120px;border:2px solid rgba(255,180,80,.95);border-radius:8px;box-shadow:0 0 0 9999px #00000040,inset 0 0 12px #ffb45026}.barcode-scanner__status{color:var(--text-muted);font-size:13px}.barcode-panel__lookup-status{margin:0;font-size:13px;color:var(--text-muted)}.barcode-panel__manual{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.barcode-panel__manual label{min-width:0}.barcode-panel__hint{margin:0}.barcode-confirm{grid-column:1 / -1;border:1px solid var(--card-border);border-radius:12px;padding:12px;display:grid;gap:12px}.barcode-confirm h4{margin:0;font-size:15px}.barcode-confirm__grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.barcode-confirm__summary{margin:0;font-size:14px}.barcode-confirm__hint{margin:0;font-size:13px;color:var(--text-muted)}.barcode-confirm__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}.beta-badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;padding:2px 8px;border:1px solid var(--card-border);border-radius:6px;color:var(--text-muted)}.photo-analysis-modal__dialog{max-height:min(92vh,900px);overflow:auto;width:min(560px,calc(100vw - 24px))}.photo-analysis-modal__body{display:grid;gap:12px;padding:0 4px 8px}.photo-analysis-confirm__macros{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.photo-analysis-panel,.photo-analysis-confirm{grid-column:1 / -1;border:1px solid var(--card-border);border-radius:12px;padding:12px;display:grid;gap:12px}.photo-analysis-panel__header{display:flex;align-items:center;gap:8px}.photo-analysis-panel__header h4{margin:0;font-size:15px}.photo-analysis-panel__hint{margin:0;font-size:13px}.photo-analysis-source-actions{display:flex;flex-wrap:wrap;gap:8px}.photo-analysis-source-actions button{flex:1;min-width:120px}.photo-analysis-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.photo-analysis-panel__controls{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}.photo-analysis-uncertainties{margin:0;padding-left:18px;font-size:13px;color:var(--text-muted)}.photo-analysis-ingredients{display:grid;gap:12px}.photo-analysis-ingredient{border-top:1px solid var(--card-border);padding-top:12px;display:grid;gap:8px}.photo-analysis-ingredient__resolve{display:grid;gap:8px}.form-row-optional{display:grid;grid-template-columns:minmax(0,1fr) minmax(7.5rem,9rem);gap:12px;align-items:start;width:100%;min-width:0;box-sizing:border-box}.form-row-optional label{display:flex;flex-direction:column;gap:6px;min-width:0;max-width:100%}.form-row-optional textarea{display:block;width:100%;max-width:100%;box-sizing:border-box;resize:vertical;min-height:56px;padding:10px 14px;border:1px solid var(--input-border);border-radius:var(--radius-md);background:var(--card-bg);color:var(--text-primary);overflow-wrap:anywhere;word-break:break-word}.form-row-optional input[type=time]{display:block;width:100%;max-width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--input-border);border-radius:var(--radius-md);background:var(--card-bg);color:var(--text-primary);min-height:44px}@media(max-width:560px){.form-row-optional{grid-template-columns:1fr}}.form-grid label{display:flex;flex-direction:column;gap:6px}.form-grid textarea{resize:vertical;min-height:60px;padding:10px 14px;border:1px solid var(--input-border);border-radius:10px;background:var(--input-bg);color:var(--text-primary)}.form-grid input[type=time]{padding:8px 12px;border:1px solid var(--input-border);border-radius:10px;background:var(--input-bg);color:var(--text-primary)}.form-actions{display:flex;align-items:flex-end;gap:12px}.form-actions button.secondary{background:transparent;border:1px solid var(--input-border);color:var(--text-muted)}.water-block{display:flex;flex-direction:column;gap:12px}.water-amount{font-size:1.25rem}.water-value{font-weight:600;color:var(--accent-primary)}.water-unit{color:var(--text-secondary);margin-left:2px}.water-norm{color:var(--text-muted);font-size:.95rem}.water-progress{height:8px;background:var(--input-bg);border-radius:4px;overflow:hidden}.water-progress-fill{height:100%;background:linear-gradient(90deg,#3498db,#2ecc71);border-radius:4px;transition:width .3s ease}.water-remaining{font-size:13px}.water-buttons{display:flex;flex-wrap:wrap;gap:8px}.water-buttons button{padding:8px 14px;font-size:14px}.meal-time{font-weight:400;font-size:.9rem;color:var(--text-muted)}.meal-comment{margin-top:6px;font-style:italic}.banner{padding:14px 18px;border-radius:12px;font-size:14px;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.banner.error{background:#ff475726;color:var(--color-danger);border:1px solid rgba(255,71,87,.3)}.banner.success{background:#00d26a26;color:var(--color-success);border:1px solid rgba(0,210,106,.3)}.muted{color:var(--text-secondary);font-size:14px}.stack{display:flex;flex-direction:column;gap:16px;margin-top:12px}.activity{border:1px solid var(--card-border);border-radius:14px;padding:18px;background:var(--surface-muted);display:flex;flex-direction:column;gap:14px;transition:all .2s ease}.activity:hover{border-color:var(--card-border-hover)}.activity-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.items{display:flex;flex-direction:column;gap:12px}.items-header{display:flex;justify-content:space-between;align-items:center}.items-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.item-row{display:flex;flex-direction:column;gap:8px;border:1px solid var(--input-border);border-radius:12px;padding:14px;background:var(--input-bg);transition:all .2s ease}.item-row--product{gap:12px}.item-row--product>div:first-child{flex:1}.item-row__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.product-edit-form{width:100%}.item-row:hover{border-color:var(--card-border-hover)}.item-row-content{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;width:100%}.edit-amount-row{display:flex;align-items:center;gap:8px;margin-top:8px}.edit-amount-row input{width:80px;padding:6px 10px}.edit-amount-row button{padding:6px 12px;font-size:13px}.edit-amount-row button.secondary{background:transparent;border:1px solid var(--input-border);color:var(--text-muted)}.item-actions{display:flex;gap:8px}.item-actions button{padding:6px 12px;font-size:13px}.item-row-editing .edit-form-compact{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;width:100%}.item-row-editing .edit-form-compact label{display:flex;flex-direction:column;gap:4px;font-size:12px}.item-row-editing .edit-form-compact input{padding:6px 8px;font-size:14px;min-width:70px}.item-row-editing .edit-form-actions{display:flex;gap:8px;align-items:center}.item-row-editing .edit-form-actions button.secondary{background:transparent;border:1px solid var(--input-border);color:var(--text-muted)}.product-search{position:relative;width:100%;z-index:20}.product-search input{width:100%}.search-loading{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.search-results{position:absolute;top:100%;left:0;right:0;background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;max-height:300px;overflow-y:auto;z-index:1200;box-shadow:var(--shadow-card);list-style:none;padding:0;margin:6px 0 0}.search-results li button{width:100%;text-align:left;padding:12px 16px;border:none;background:none;cursor:pointer;display:flex;flex-direction:column;gap:4px;color:var(--text-primary);box-shadow:none;border-radius:0;transition:background .15s}.search-results li button:hover{background:#ff6b351a;transform:none;box-shadow:none}.search-item-name{font-weight:500;color:var(--text-primary)}.search-item-info{font-size:12px;color:var(--text-secondary)}.search-empty{position:absolute;top:100%;left:0;right:0;background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;margin-top:6px;padding:14px 16px;color:var(--text-muted);font-size:14px;z-index:1200}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:20px}.pagination button{padding:10px 18px}.pagination span{color:var(--text-secondary);font-size:14px}.list-search{margin-bottom:20px}.list-search input{width:100%;max-width:400px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.profile-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.stat{display:flex;flex-direction:column;gap:6px;padding:12px;background:var(--surface-muted);border-radius:var(--radius-sm);transition:background .15s ease}.stat:hover{background:var(--surface-hover)}.stat-label{font-size:12px;color:var(--text-muted);text-transform:none;letter-spacing:0}.stat-value{font-size:18px;font-weight:600;color:var(--text-primary)}.stat.highlight{background:#ff6b351a;border:1px solid rgba(255,107,53,.2);padding:14px;grid-column:span 2}.stat.highlight .stat-value{color:var(--accent-primary);font-size:22px}.calories-summary{display:flex;flex-direction:column;gap:12px}.calorie-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--card-border)}.calorie-row:last-child{border-bottom:none}.calorie-row.total{font-weight:600;border-top:2px solid var(--accent-primary);border-bottom:none;margin-top:6px;padding-top:14px}.calorie-row .value{font-weight:500}.calorie-row .value.eaten{color:var(--color-warning)}.calorie-row .value.deficit{color:var(--color-success)}.calorie-row .value.surplus{color:var(--color-danger);font-weight:600}.calorie-row .value.remaining{color:var(--color-success)}.calorie-row .label-warning{color:var(--color-danger);font-weight:600}.calorie-row.target-row{background:#00d26a1a;padding:12px 14px;border-radius:10px;border-bottom:none;margin-bottom:6px}.calorie-row .value.target{color:var(--color-success);font-weight:600}.calorie-row.muted-row{font-size:.92em;opacity:.88;padding-top:2px;padding-bottom:2px}.macros-comparison{display:flex;gap:16px;margin-bottom:20px;padding:14px;background:#ffffff08;border-radius:12px}.macro-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.macro-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.macro-value{font-size:14px;font-weight:500;color:var(--text-primary)}.chart-placeholder{height:200px;display:flex;align-items:center;justify-content:center;background:var(--surface-muted);border-radius:10px;border:1px dashed var(--input-border)}.calories-estimate{color:var(--accent-primary);font-weight:600}.muted.small{font-size:11px;margin-top:2px;font-style:italic}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}.spinner{width:44px;height:44px;border:3px solid var(--input-border);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-page{display:flex;align-items:center;justify-content:center;min-height:80vh}.auth-container{background:var(--card-bg);border:1px solid var(--card-border);border-radius:20px;padding:40px;width:100%;max-width:420px;box-shadow:var(--shadow-card);text-align:center}.auth-header{margin-bottom:32px}.auth-header h1{margin:0 0 12px;font-size:32px;color:var(--text-primary)}.auth-tagline{color:var(--text-muted);font-size:16px;margin:0 0 20px}.auth-features{list-style:none;padding:0;margin:0;text-align:left;display:flex;flex-direction:column;gap:10px}.auth-features li{color:var(--text-secondary);font-size:14px;padding:8px 12px;background:#ff6b3514;border-radius:8px;border-left:3px solid var(--accent-primary)}.auth-tabs{display:flex;gap:8px;margin-bottom:28px}.auth-tabs button{flex:1;padding:12px 18px;background:#ffffff0d;border:1px solid var(--input-border);color:var(--text-secondary);box-shadow:none}.auth-tabs button:hover{background:#ffffff14;transform:none;box-shadow:none}.auth-tabs button.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:var(--shadow-btn)}.auth-error{background:#ff475726;color:var(--color-danger);padding:14px 18px;border-radius:10px;margin-bottom:18px;font-size:14px;text-align:left;border:1px solid rgba(255,71,87,.3)}.auth-form{display:flex;flex-direction:column;gap:18px;text-align:left}.auth-form .form-group{display:flex;flex-direction:column;gap:8px}.auth-form label{font-size:14px;font-weight:500;color:var(--text-secondary)}.auth-form input{padding:14px 16px;font-size:15px}.auth-form .btn-primary{margin-top:10px;padding:16px 24px;font-size:16px;font-weight:600}.user-menu{position:relative}.user-menu-trigger{background:#ffffff0d;border:1px solid var(--input-border);color:var(--text-secondary);padding:8px 14px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:14px;box-shadow:none}.user-menu-trigger:hover{color:var(--text-primary);background:#ffffff14;transform:none;box-shadow:none}.user-menu-trigger .arrow{font-size:8px}.user-menu-dropdown{position:absolute;top:100%;right:0;margin-top:6px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;box-shadow:var(--shadow-card);min-width:120px;z-index:100;overflow:hidden}.user-menu-dropdown button{width:100%;text-align:left;padding:12px 16px;background:transparent;border:none;border-radius:0;color:var(--text-secondary);cursor:pointer;font-size:14px;white-space:nowrap;box-shadow:none}.user-menu-dropdown button:hover{background:#ff47571a;color:var(--color-danger);transform:none;box-shadow:none}.yesterday-hint{grid-column:1 / -1;background:#ffb6271a;border:1px solid rgba(255,182,39,.3);border-radius:12px;padding:14px}.yesterday-header{font-weight:600;margin-bottom:10px;color:var(--color-warning)}.yesterday-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.yesterday-items li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,182,39,.2)}.yesterday-items li:last-child{border-bottom:none}.yesterday-items li span{color:var(--text-primary)}.yesterday-items li button{padding:6px 12px;font-size:13px;background:var(--color-warning);color:#1a1a2e;box-shadow:0 4px 15px #ffb6274d}.yesterday-items li button:hover{background:#ffc940}.measurements-latest{margin-bottom:12px}.measurements-row{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:10px}.measurements-row span{font-size:14px;color:var(--text-secondary)}.measurements-row strong{color:var(--text-primary)}.tabs{display:flex;gap:8px;margin-bottom:20px}.tabs button{padding:10px 20px;background:#ffffff0d;border:1px solid var(--input-border);color:var(--text-secondary);box-shadow:none}.tabs button:hover{background:#ffffff14;transform:none;box-shadow:none}.tabs button.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:var(--shadow-btn)}@media(max-width:768px){#root{padding:16px 12px 90px}.app-header{gap:12px}.header-row{flex-wrap:wrap}.logo-icon{width:32px;height:32px}.app-logo{gap:10px;font-size:20px}.date-picker{justify-content:center;width:100%}.date-arrow{width:44px;height:44px}.page-header{flex-direction:column;align-items:stretch;gap:12px}.card{padding:18px;border-radius:14px}.form-grid{grid-template-columns:1fr;gap:14px}.product-qty-row{grid-template-columns:1fr;gap:10px;align-items:stretch}.product-qty-row__search-label,.product-qty-row__qty-label,.product-qty-row__search,.product-qty-row__qty,.product-qty-row__actions,.product-qty-row__hint{grid-column:1}.product-qty-row__search-label{grid-row:1}.product-qty-row__search{grid-row:2}.product-qty-row__qty-label{grid-row:3}.product-qty-row__qty{grid-row:4}.product-qty-row__actions-corner{display:none}.product-qty-row__actions{grid-row:5;width:100%}.product-qty-row__actions button{flex:1 1 0;width:auto;min-width:0;font-size:13px}.product-qty-row__hint{grid-row:6}.barcode-panel__manual{grid-template-columns:1fr;gap:8px}.barcode-panel__manual button,.form-actions{width:100%}.form-actions button{width:100%;padding:14px}.activity-header{flex-direction:column;gap:12px}.inline-actions{width:100%}.inline-actions button{flex:1;padding:12px 10px;font-size:13px}.item-row{padding:12px}.item-row__actions{width:100%}.item-row__actions button{flex:1;margin-top:0}.item-row>button{width:100%;margin-top:10px}.dashboard-grid{grid-template-columns:1fr;gap:16px}.profile-stats{grid-template-columns:1fr;gap:12px}.stat.highlight{grid-column:span 1}.macros-comparison{flex-direction:column;gap:12px}.macro-item{flex-direction:row;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--card-border)}.macro-item:last-child{border-bottom:none}.calorie-row{flex-direction:column;align-items:flex-start;gap:4px}.calorie-row .value{font-size:16px}.pagination{flex-wrap:wrap;gap:10px}.pagination button{flex:1;min-width:100px;padding:12px 14px;font-size:13px}.list-search input{max-width:100%}.auth-container{padding:28px 22px;margin:16px;border-radius:16px}.auth-container h1{font-size:24px}.auth-tabs button{padding:12px 14px;font-size:14px}.tabs{flex-wrap:wrap}.tabs button{flex:1;min-width:80px;padding:12px 14px;font-size:13px}.chart-placeholder{height:160px}.bottom-nav{padding:6px 12px}.nav-item{padding:8px 12px}.nav-item-icon{font-size:20px}.nav-item-label{font-size:10px}}@media(max-width:400px){#root{padding:12px 8px 85px}h1{font-size:22px}h2{font-size:18px}button{font-size:14px;padding:12px 14px}.stat-value{font-size:16px}.stat.highlight .stat-value{font-size:18px}.nav-item{padding:6px 8px}}.analytics-period-selector{display:flex;gap:8px;margin-bottom:16px}.chart-period{margin-bottom:4px}.chart-period-custom{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin:-8px 0 16px}.chart-period-custom label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--text-secondary)}.chart-period-custom input[type=date]{min-width:140px}.analytics-period-selector button{flex:1;padding:10px 12px;background:var(--card-bg);border:1.5px solid var(--card-border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer;box-shadow:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.analytics-period-selector button:hover:not(:disabled){background:var(--surface-muted);border-color:#0b0c0f38;color:var(--text-primary)}.analytics-period-selector button.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-on-accent);font-weight:700;box-shadow:var(--shadow-btn)}.analytics-period-selector button.active:hover:not(:disabled){background:var(--accent-primary-hover);border-color:var(--accent-primary-hover);color:var(--text-on-accent)}.analytics-empty{text-align:center;padding:24px}.workout-analytics{display:flex;flex-direction:column;gap:20px}.analytics-summary{display:flex;gap:16px;padding:16px;background:var(--surface-muted);border:1px solid var(--card-border);border-radius:var(--radius-md)}.analytics-summary .stat-item{display:flex;flex-direction:column;gap:4px;flex:1}.analytics-summary .stat-value{font-size:24px;font-weight:700;font-family:var(--font-display);color:var(--text-primary)}.analytics-summary .stat-item.highlight .stat-value{color:var(--accent-primary)!important;-webkit-text-fill-color:var(--accent-primary)!important;text-shadow:none}.analytics-summary .stat-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:none;letter-spacing:0}.analytics-section{border-top:1px solid var(--card-border);padding-top:16px}.analytics-section h4{font-size:14px;font-weight:700;color:var(--text-primary);margin-bottom:12px;text-transform:none;letter-spacing:0}.analytics-section h5{font-size:12px;font-weight:600;color:var(--text-muted);margin:12px 0 8px}.cardio-list{display:flex;flex-direction:column;gap:12px}.cardio-item{padding:12px 14px;background:var(--surface-muted);border-radius:var(--radius-md);border:1px solid var(--card-border);border-left:3px solid var(--accent-primary)}.cardio-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.cardio-type{font-weight:700;color:var(--text-primary)}.cardio-sessions{font-size:12px;font-weight:600;color:var(--text-muted)}.cardio-stats{display:flex;gap:16px;flex-wrap:wrap}.cardio-stat{font-size:13px;color:var(--text-secondary)}.cardio-stat strong{color:var(--text-primary);font-weight:700}.cardio-stat.calories strong{color:var(--accent-primary)}.cardio-avg{margin-top:8px;font-size:12px;color:var(--text-muted);display:flex;gap:12px}.muscle-groups,.strength-records{margin-bottom:16px}.muscle-list,.records-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.muscle-item,.record-item{padding:10px 12px;background:var(--surface-muted);border:1px solid var(--card-border);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:4px}.muscle-name,.record-name{font-size:13px;font-weight:600;color:var(--text-primary)}.muscle-sets,.record-weight{font-size:12px;color:var(--text-muted)}.strength-total{font-size:14px;color:var(--text-primary);padding:12px 14px;background:var(--accent-primary-soft);border:1px solid var(--card-border-hover);border-radius:var(--radius-sm)}.strength-total strong{color:var(--accent-primary);font-weight:700}.strength-total__meta{margin-top:6px;font-size:12px;color:var(--text-muted)}.strength-total__detail{margin-top:10px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.strength-total__detail .btn-ghost{padding:6px 10px;font-size:13px;color:var(--accent-primary)}.strength-sessions-list{margin:0;padding:0;list-style:none;width:100%;max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:4px}.strength-sessions-list li{display:flex;justify-content:space-between;gap:12px;padding:6px 8px;border-radius:6px;background:var(--card-bg);border:1px solid var(--card-border);font-size:13px;color:var(--text-secondary)}.strength-sessions-list strong{color:var(--text-primary)}.steps-stats{display:flex;gap:16px;flex-wrap:wrap;align-items:baseline}.steps-total{font-size:18px;color:var(--text-primary)}.steps-total strong{font-weight:700;color:var(--accent-primary)}.steps-avg,.steps-calories{font-size:13px;color:var(--text-muted)}.cardio-history-chart{display:flex;flex-direction:column;gap:16px}.chart-summary{display:flex;gap:12px;padding:14px 16px;background:var(--bg-ink);border-radius:var(--radius-md);border:none}.summary-item{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.cardio-history-chart .summary-value,.summary-value{font-size:20px;font-weight:700;font-family:var(--font-display);color:#f5f6f8;-webkit-text-fill-color:#f5f6f8;text-shadow:none}.cardio-history-chart .summary-label,.summary-label{font-size:11px;font-weight:600;color:#f5f6f8d9;-webkit-text-fill-color:rgba(245,246,248,.85);text-transform:uppercase;letter-spacing:.04em}.chart-empty{padding:24px;text-align:center}@media(max-width:600px){.analytics-summary{flex-direction:column;gap:12px}.analytics-summary .stat-item{flex-direction:row;justify-content:space-between;align-items:center}.muscle-list,.records-list{grid-template-columns:1fr 1fr}.cardio-stats{flex-direction:column;gap:4px}}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:8px}.auth-brand__logo{width:64px;height:64px;border-radius:16px;box-shadow:var(--shadow-card)}.auth-brand h1{font-size:34px;letter-spacing:-.03em}.auth-features li{border-left-color:var(--accent-primary);background:var(--accent-primary-soft);font-weight:500}.onboarding-card{background:var(--card-bg);border:2px solid var(--accent-primary);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-card)}.onboarding-card h3{font-size:22px;margin:0}.today-strip{background:var(--bg-ink);color:#f5f6f8;border-radius:var(--radius-lg);padding:20px 22px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;box-shadow:var(--shadow-card)}.today-strip__stats{display:flex;flex-direction:column;gap:4px;font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.02em}.today-strip__stats .muted{color:#f5f6f8a6;font-family:var(--font-body);font-size:14px;font-weight:500}.today-strip__actions{display:flex;flex-wrap:wrap;gap:8px}.today-strip .btn-secondary{background:transparent;border:1.5px solid rgba(245,246,248,.55);color:#f5f6f8;-webkit-text-fill-color:#f5f6f8}.today-strip .btn-secondary:hover:not(:disabled){background:#f5f6f81f;border-color:#fff;color:#fff;-webkit-text-fill-color:#fff}.today-strip .btn-primary{color:#fff;-webkit-text-fill-color:#fff}.today-strip--hero{padding:22px 22px 20px}.today-strip--hero .today-strip__actions{width:100%}.today-strip--hero .today-strip__actions .btn-primary,.today-strip--hero .today-strip__actions .btn-secondary{flex:1 1 140px;justify-content:center}.week-chip{width:100%;display:flex;align-items:center;gap:10px;padding:12px 16px;margin:0 0 4px;border:1px solid var(--card-border);border-radius:var(--radius-md);background:var(--card-bg);box-shadow:var(--shadow-card);cursor:pointer;text-align:left;font:inherit;color:inherit}.week-chip:hover{border-color:var(--color-accent)}.week-chip__label{font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.week-chip__value{font-weight:700;flex:1}.week-chip__cta{font-size:13px;margin-left:auto}.week-verdict{padding:16px 18px;border:1px solid var(--card-border);border-radius:var(--radius-lg);background:var(--card-bg);box-shadow:var(--shadow-card);margin-bottom:4px}.week-verdict__top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.week-verdict__label{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.week-verdict__state{font-family:var(--font-display);font-size:20px;font-weight:800;letter-spacing:-.02em}.week-verdict__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;font-size:14px}.week-verdict__note{margin:8px 0 0;font-size:13px}.home-water__stats{display:flex;align-items:baseline;gap:10px}.home-water__amount{font-family:var(--font-display);font-size:28px;font-weight:800;letter-spacing:-.03em}.profile-stats--compact{grid-template-columns:1fr}.home-workout-done{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.home-workout-done p{margin:0}.info-chip{display:inline-flex;align-items:flex-start;gap:8px;margin-top:12px;padding:10px 12px;border-radius:var(--radius-sm);background:#c47a001f;border:1px solid rgba(196,122,0,.35);color:var(--color-warning);font-size:13px;font-weight:500}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:28px 16px;border:1.5px dashed var(--card-border);border-radius:var(--radius-md);background:var(--surface-muted)}.empty-state__icon{color:var(--accent-primary)}.empty-state__title{font-family:var(--font-display);font-size:18px;font-weight:700;margin:0;color:var(--text-primary)}.empty-state__desc{margin:0;max-width:320px;color:var(--text-secondary);font-size:14px}.skeleton-block{border-radius:var(--radius-md);background:linear-gradient(90deg,var(--surface-muted) 0%,var(--surface-hover) 50%,var(--surface-muted) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.page-skeleton{display:flex;flex-direction:column;gap:16px}.sheet-modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:flex-end;justify-content:center}.sheet-modal__backdrop{position:absolute;inset:0;background:var(--overlay-scrim);border:none;border-radius:0;padding:0;cursor:pointer}.sheet-modal__dialog{position:relative;width:min(560px,100%);max-height:min(88vh,900px);overflow:auto;background:var(--card-bg);border-radius:20px 20px 0 0;border:1px solid var(--card-border);border-bottom:none;box-shadow:var(--shadow-card);padding:20px 20px calc(20px + env(safe-area-inset-bottom));z-index:1}.sheet-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.sheet-modal__header h3{margin:0;font-size:22px}.sheet-modal__body{display:flex;flex-direction:column;gap:12px}.optional-fields{margin-top:8px;border:1px solid var(--card-border);border-radius:var(--radius-md);padding:10px 12px;background:var(--surface-muted);width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow:hidden}.optional-fields summary{cursor:pointer;font-weight:600;color:var(--text-secondary);list-style:none}.optional-fields summary::-webkit-details-marker{display:none}.optional-fields[open] summary{margin-bottom:12px;color:var(--text-primary)}.optional-fields .form-row-optional{grid-column:auto}@media(min-width:900px){#root{max-width:1200px;padding:28px 28px 40px}.app{display:grid;grid-template-columns:200px 1fr;grid-template-rows:auto 1fr;gap:24px 28px;align-items:start}.app-header{grid-column:1 / -1}.bottom-nav{position:sticky;inset:24px auto auto;width:200px;grid-column:1;grid-row:2;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:12px;box-shadow:var(--shadow-card);-webkit-backdrop-filter:none;backdrop-filter:none;height:fit-content}.bottom-nav-inner{max-width:none;flex-direction:column;align-items:stretch;gap:6px}.nav-item{flex-direction:row;justify-content:flex-start;gap:10px;padding:12px 14px;width:100%}.nav-item-label{font-size:14px}main[data-testid=app-main]{grid-column:2;grid-row:2;min-width:0}.sheet-modal{align-items:center}.sheet-modal__dialog{border-radius:var(--radius-lg);border-bottom:1px solid var(--card-border);max-height:85vh}.dashboard-grid{grid-template-columns:1fr 1fr}.today-strip{padding:24px 28px}}.ru-date-field{position:relative;display:flex;align-items:center;margin-top:6px;min-height:44px;border-radius:var(--radius-md);border:1px solid var(--input-border);background:var(--input-bg);overflow:hidden}.ru-date-field__native{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;padding:0;cursor:pointer;border:none;min-height:0}.ru-date-field__display{padding:12px 14px;color:var(--text-primary);font-variant-numeric:tabular-nums;pointer-events:none}.ru-date-field:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--input-focus-glow)}.exercise-combobox{position:relative;margin-top:6px}.exercise-combobox>input{margin-top:0}.exercise-combobox__list{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);margin:0;padding:6px;list-style:none;max-height:240px;overflow:auto;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.exercise-combobox__option{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border-radius:var(--radius-sm);padding:10px 12px}.exercise-combobox__option:hover{background:var(--surface-muted)}.user-menu-dropdown .btn-ghost,.user-menu-dropdown .btn-danger{width:100%;justify-content:flex-start;display:flex;align-items:center;border-radius:0}button.date-today-hint{font-size:13px;color:var(--accent-primary);cursor:pointer;padding:6px 12px;border-radius:6px;border:none;background:var(--accent-primary-soft);box-shadow:none;font-weight:600}button.date-today-hint:hover:not(:disabled){background:var(--surface-active);color:var(--accent-primary-hover)}
