@font-face{font-family:"Emoji";src:local("Apple Color Emoji"),local("Segoe UI Emoji"),local("Noto Color Emoji"),local("Android Emoji");unicode-range:U+200D,U+2049,U+20E3,U+2139,U+2190-21FF,U+2300-23FF,U+2460-24FF,U+25A0-25FF,U+2600-27BF,U+2900-297F,U+2B00-2BFF,U+FE00-FE0F,U+1F000-1FAFF}:root{--bg: linear-gradient(to left, #E8EFF7 0%, #D8E2EE 60%, #CDD8E6 100%);--bg-flat: #E0E8F0;--surface: #FFFFFF;--surface-alt: #F8FAFC;--surface-glass: rgba(255, 255, 255, .72);--card-bg: linear-gradient(180deg, #FFFFFF 0%, #F8FAFC 100%);--card-border: rgba(255, 255, 255, .95);--card-inset: rgba(255, 255, 255, .65);--glass-border: rgba(255, 255, 255, .65);--glass-shadow: rgba(0, 0, 0, .04);--slab-bg-top: rgba(255, 255, 255, .82);--slab-bg-bottom: rgba(242, 248, 252, .88);--tab-bg: rgba(242, 243, 245, .85);--tab-border: rgba(0, 0, 0, .05);--tab-muted: #B0BEC5;--primary: #22B8CF;--primary-bright: #2DD4E8;--primary-deep: #1FA6B2;--primary-soft: rgba(34, 184, 207, .1);--color-pink: #EC4899;--color-purple: #8B5CF6;--text: #1A1D23;--text-medium: #4A5568;--text-muted: #8896A6;--text-light: #B0BEC5;--text-on-primary: #FFFFFF;--border: rgba(0, 0, 0, .06);--divider: rgba(0, 0, 0, .05);--success: #4ADE80;--warning: #FBBF24;--danger: #F87171;--info: #38BDF8;--overlay: rgba(0, 0, 0, .55);--input-bg: rgba(0, 0, 0, .04);--badge-bg: rgba(34, 184, 207, .12);--shadow-color: rgba(0, 0, 0, .06);--shadow-soft: rgba(0, 0, 0, .04);--radius-card: 18px;--radius-btn: 12px;--radius-input: 10px;--font: "DM Sans", system-ui, -apple-system, sans-serif;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}*{-webkit-overflow-scrolling:touch;touch-action:manipulation}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}input,textarea,select{font-family:inherit;font-size:max(16px,1em)!important;color:inherit;user-select:auto;-webkit-user-select:auto}button{font-family:inherit;font-size:inherit;color:inherit;user-select:auto;-webkit-user-select:auto}input:focus,textarea:focus,select:focus{border-color:var(--primary)!important;box-shadow:0 0 0 2px #22b8cf26}input[type=date],input[type=time]{color-scheme:light;-webkit-appearance:auto;appearance:auto;cursor:pointer}button{cursor:pointer;border:none;background:none;transition:transform .1s ease,opacity .1s ease;-webkit-tap-highlight-color:transparent}button:active:not(:disabled){transform:scale(.97);opacity:.82}a{color:var(--primary);text-decoration:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0000001f;border-radius:4px}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes typingDot{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes tabBadgePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}body.barcode-scanner-active{background:transparent!important}body.barcode-scanner-active #root,body.barcode-scanner-active ion-app{background:transparent!important;--background: transparent !important}body.barcode-scanner-active>*{visibility:hidden!important}@keyframes rapidFlashIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.15);opacity:1}to{transform:scale(1);opacity:.85}}.ember-week{--week-teal: #2dd4e8;--week-gold: #ffe066;color:#fff;background:#083a44;border-radius:24px;padding:24px 18px;text-align:center;margin-top:12px}.ember-week-eyebrow{color:var(--week-teal);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px}.ember-week h1{font-size:clamp(23px,6vw,29px);line-height:1.15;letter-spacing:-.03em;margin:0 auto 16px;max-width:310px}.ember-week-dial{position:relative;width:min(100%,320px);aspect-ratio:1;margin:0 auto}.ember-week-dial svg{position:absolute;inset:0;width:100%;height:100%}.ember-week-portrait{position:absolute;width:55%;height:55%;object-fit:contain;left:22.5%;top:22.5%;border-radius:50%}.ember-week-day{position:absolute;transform:translate(-50%,-50%);width:42px;height:42px;border:1px solid #65a6b2;border-radius:50%;background:#0a4855;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;padding:0}.ember-week-day span{font-weight:800;font-size:16px}.ember-week-day small{font-size:9px}.ember-week-day.protein-day{border-color:var(--week-gold)}.ember-week-day.is-selected{color:#083a44;background:var(--week-gold);border-color:#fff}.ember-week-readout{border-left:3px solid var(--week-gold);text-align:left;padding:12px 14px;background:#ffffff12;border-radius:0 12px 12px 0}.ember-week-readout p{margin:4px 0 0;font-size:15px;line-height:1.4;font-weight:600}.ember-week-note{color:#d1e4e8;font-size:13px;line-height:1.5;margin:14px 0}.ember-week-details{display:flex;justify-content:center;flex-wrap:wrap;gap:6px}.ember-week-details span{color:#fff;background:#ffffff14;font-size:12px;padding:7px 10px;border-radius:30px}.ember-week-promises{text-align:left;padding-left:18px;color:#d1e4e8;font-size:13px;line-height:1.5;margin:18px 0}.ember-week-promises li+li{margin-top:6px}.ember-commitment{padding-top:28px}.ember-commitment-portrait{width:138px;height:138px;object-fit:contain;border-radius:50%;margin:12px auto 22px}.ember-commitment blockquote{font-size:23px;line-height:1.4;font-weight:600;color:var(--week-gold);margin:22px 0 28px}.ember-hold{position:relative;overflow:hidden;width:100%;min-height:56px;border-radius:14px;border:1px solid var(--week-teal);background:#0a4855;color:#fff;font-size:16px;font-weight:700;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none}.ember-hold-fill{position:absolute;inset:0;background:#127f8f;transform-origin:left}.ember-hold-label{position:relative}.ember-confirm,.ember-skip{display:block;margin:12px auto 0;border:0;background:transparent;cursor:pointer;padding:8px}.ember-confirm{color:#fff;text-decoration:underline;text-underline-offset:3px;font-size:13px}.ember-skip{color:#b7d3d9;font-size:12px}.ember-week button:focus-visible{outline:3px solid var(--week-gold);outline-offset:4px}@media(prefers-reduced-motion:reduce){.ember-week{animation:none}}
