/*!
 * FitBites — unified glassmorphism for all hub / sheet pages.
 * Targets *-sheet, *-sheet-head, toolbars, and hub controls under [data-pack="glass"].
 * Chrome rail/top bar use liquid-glass-shell.css — never apply hub data-layer fills there.
 */[data-shell=glass] .glass-rail [class$=-group],[data-shell=glass] .glass-rail [class$=-inset],[data-shell=glass] .glass-rail [class$=-list],[data-shell=glass] .glass-rail [class$=-panel],[data-shell=glass] .glass-rail [class$=-sheet],[data-shell=glass] .glass-rail [class$=-stat],[data-shell=glass] .glass-top [class$=-group],[data-shell=glass] .glass-top [class$=-inset],[data-shell=glass] .glass-top [class$=-panel],[data-shell=glass] .glass-top [class$=-stat]{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}[data-shell=glass] [class$=-panel],[data-shell=glass] [class$=-sheet]:not(.touch-more-sheet){position:relative;border-color:var(--glass-border);background:linear-gradient(180deg,var(--glass-tint-top),var(--glass-tint-bottom));box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-rim-top),inset 0 0 0 1px var(--glass-rim-hairline)}[data-shell=glass] [class$=-panel],[data-shell=glass] [class$=-sheet-head],[data-shell=glass] [class$=-sheet]:not(.touch-more-sheet){backdrop-filter:blur(var(--glass-blur-panel)) saturate(var(--glass-sat));-webkit-backdrop-filter:blur(var(--glass-blur-panel)) saturate(var(--glass-sat))}[data-shell=glass] [class$=-sheet-head]{border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);border-bottom-color:color-mix(in srgb,var(--glass-border) 85%,transparent);background:color-mix(in srgb,var(--glass-l3) 55%,transparent)}[data-shell=glass] [class$=-filters],[data-shell=glass] [class$=-segment],[data-shell=glass] [class$=-segments],[data-shell=glass] [class$=-tabs],[data-shell=glass] [class$=-toolbar]{border-color:color-mix(in srgb,var(--glass-border) 88%,transparent);background:color-mix(in srgb,var(--glass-l3) 42%,transparent);box-shadow:inset 0 1px 0 var(--glass-rim-hairline);backdrop-filter:blur(var(--glass-blur-data)) saturate(145%);-webkit-backdrop-filter:blur(var(--glass-blur-data)) saturate(145%)}[data-shell=glass] [class$=-chip],[data-shell=glass] [class$=-count]{border-color:var(--glass-border);background:var(--glass-l3);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}[data-shell=glass] [class$=-stat]{border-color:color-mix(in srgb,var(--glass-border) 90%,transparent);background:var(--glass-l4);box-shadow:inset 0 1px 0 var(--glass-rim-hairline);backdrop-filter:blur(var(--glass-blur-data)) saturate(140%);-webkit-backdrop-filter:blur(var(--glass-blur-data)) saturate(140%)}[data-shell=glass] [class$=-btn],[data-shell=glass] [class$=-sheet-link]{border-color:color-mix(in srgb,var(--glass-border) 92%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%)}[data-shell=glass] [class$=-btn--primary],[data-shell=glass] [class*=-btn-primary]{border-color:color-mix(in srgb,var(--primary) 35%,var(--glass-border));background:linear-gradient(155deg,color-mix(in srgb,var(--primary) 88%,white),color-mix(in srgb,var(--primary) 70%,transparent));box-shadow:0 8px 20px color-mix(in srgb,var(--primary) 28%,transparent),inset 0 1px 0 rgba(255,255,255,.35),inset 0 0 0 1px rgba(255,255,255,.12)}[data-shell=glass] .sub-file-group,[data-shell=glass] [class$=-inset],[data-shell=glass] [class$=-table-wrap]{border-radius:var(--radius-md);overflow:hidden;border-color:color-mix(in srgb,var(--glass-border) 90%,transparent);background:var(--glass-l4);box-shadow:inset 0 1px 0 var(--glass-rim-hairline);backdrop-filter:blur(var(--glass-blur-data)) saturate(140%);-webkit-backdrop-filter:blur(var(--glass-blur-data)) saturate(140%)}[data-shell=glass] [class$=-sheet-block]{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}[data-shell=glass] [class*=-table-wrap][class*=-sheet-block]{border-radius:var(--radius-md);overflow:auto;border-color:color-mix(in srgb,var(--glass-border) 90%,transparent);background:var(--glass-l4);box-shadow:inset 0 1px 0 var(--glass-rim-hairline);backdrop-filter:blur(var(--glass-blur-data)) saturate(140%);-webkit-backdrop-filter:blur(var(--glass-blur-data)) saturate(140%)}[data-shell=glass] [class$=-list]:not(.touch-more-sheet__list),[data-shell=glass] [class$=-meal-list]{display:flex;flex-direction:column;gap:.5rem;padding:.55rem;margin:0;border:0;border-radius:calc(1rem + .55rem);overflow:hidden;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}[data-shell=glass] [class$=-list]:not(.touch-more-sheet__list)>[class$=-item],[data-shell=glass] [class$=-list]:not(.touch-more-sheet__list)>li,[data-shell=glass] [class$=-meal-list]>[class$=-meal-row]{border-bottom-color:color-mix(in srgb,var(--glass-border) 72%,transparent);border-top-color:color-mix(in srgb,var(--glass-border) 72%,transparent);border-radius:1rem;border:1px solid color-mix(in srgb,var(--glass-border) 72%,transparent);background:color-mix(in srgb,var(--glass-l3) 68%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.16);backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%)}[data-shell=glass] [class$=-meal-list]>[class$=-meal-row]{padding-block:.75rem;padding-inline:.85rem}[data-shell=glass] [class$=-hub] [class$=-group]:not(.sub-file-group){display:grid;gap:.4rem;padding:.5rem;overflow:hidden;border-radius:calc(.85rem + .5rem);border-color:color-mix(in srgb,var(--glass-border) 70%,transparent);background:color-mix(in srgb,var(--glass-l3) 32%,transparent);box-shadow:inset 0 1px 0 var(--glass-rim-hairline);backdrop-filter:blur(12px) saturate(145%);-webkit-backdrop-filter:blur(12px) saturate(145%)}[data-shell=glass] [class$=-hub] [class$=-group]:not(.sub-file-group)>[class$=-row],[data-shell=glass] [class$=-hub] [class$=-group]:not(.sub-file-group)>a[class*=-row]{border-bottom-width:1px;border-radius:.85rem;border:1px solid color-mix(in srgb,var(--glass-border) 68%,transparent);background:color-mix(in srgb,var(--glass-l4) 70%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.14);backdrop-filter:blur(12px) saturate(145%);-webkit-backdrop-filter:blur(12px) saturate(145%)}[data-shell=glass] [class$=-hub] [class$=-group]:not(.sub-file-group)>[class$=-row]:not(:last-child),[data-shell=glass] [class$=-hub] [class$=-group]:not(.sub-file-group)>a[class*=-row]:not(:last-child){border-bottom:1px solid color-mix(in srgb,var(--glass-border) 68%,transparent)}[data-shell=glass] [class$=-filter-field] input,[data-shell=glass] [class$=-filter-field] select{border-color:color-mix(in srgb,var(--glass-border) 90%,transparent);background:var(--glass-l4);backdrop-filter:blur(var(--glass-blur-data));-webkit-backdrop-filter:blur(var(--glass-blur-data))}[data-shell=glass] .login-card{border-color:var(--glass-border);background:linear-gradient(180deg,var(--glass-tint-top),var(--glass-tint-bottom));backdrop-filter:blur(var(--glass-blur-panel)) saturate(var(--glass-sat));-webkit-backdrop-filter:blur(var(--glass-blur-panel)) saturate(var(--glass-sat));box-shadow:var(--glass-shadow),inset 0 1px 0 var(--glass-rim-top),inset 0 0 0 1px var(--glass-rim-hairline)}[data-shell=glass] .login-field__input{background:var(--glass-l4);backdrop-filter:blur(var(--glass-blur-data));-webkit-backdrop-filter:blur(var(--glass-blur-data));border-color:color-mix(in srgb,var(--glass-border) 90%,transparent)}[data-shell=glass] .login-submit{background:linear-gradient(155deg,color-mix(in srgb,var(--primary) 88%,white),color-mix(in srgb,var(--primary) 70%,transparent));box-shadow:0 8px 20px color-mix(in srgb,var(--primary) 28%,transparent),inset 0 1px 0 rgba(255,255,255,.35),inset 0 0 0 1px rgba(255,255,255,.12)}.hub-root{display:flex;flex-direction:column;gap:1rem;width:100%;min-width:0;margin-inline:auto;max-width:min(72rem,100%);box-sizing:border-box}.hub-root--narrow{max-width:min(56rem,100%)}.hub-root--mid{max-width:min(64rem,100%)}.hub-sheet{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);box-shadow:var(--shadow-lg)}.hub-sheet-head{padding:.875rem 1.125rem;border-bottom:1px solid var(--border);border-start-start-radius:var(--radius-md);border-start-end-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 72%,var(--surface-2))}.hub-sheet-hint{margin-top:.3rem;font-size:var(--type-xs);line-height:1.5;color:var(--text-muted)}.hub-sheet{border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:var(--radius-lg,12px);background:color-mix(in srgb,var(--surface) 92%,transparent);padding:1rem 1.1rem}.hub-sheet-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.hub-kicker{margin:0;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;opacity:.7}.hub-title{margin:.15rem 0 0;font-size:1.15rem;font-weight:600}.hub-empty{margin:0;padding:1.25rem .25rem;text-align:center;opacity:.75;font-size:.95rem}.hub-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}

/*!
 * FitBites — glass motion system (production).
 * Vocabulary: Stagger, Scale in, Fade in, Press/Tap feedback, Origin-aware popover,
 * Layout animation (accordion), Crossfade (modals), Ease-out orchestration.
 */[data-pack=glass]{--motion-ease-out:cubic-bezier(0.16,1,0.3,1);--motion-ease-in-out:cubic-bezier(0.32,0.72,0,1);--motion-exit:140ms cubic-bezier(0.23,1,0.32,1);--motion-stagger-step:55ms;--motion-enter-distance:10px}[data-shell=glass] .glass-main>*{animation:glass-page-enter var(--motion-panel) var(--motion-ease-out) both}[data-shell=glass] .glass-main>:first-child{animation-delay:0s}[data-shell=glass] .glass-main>:nth-child(2){animation-delay:calc(var(--motion-stagger-step) * 1)}[data-shell=glass] .glass-main>:nth-child(3){animation-delay:calc(var(--motion-stagger-step) * 2)}[data-shell=glass] .glass-main>:nth-child(4){animation-delay:calc(var(--motion-stagger-step) * 3)}[data-shell=glass] .glass-main>:nth-child(n+5){animation-delay:calc(var(--motion-stagger-step) * 4)}@keyframes glass-page-enter{0%{opacity:0;transform:translateY(var(--motion-enter-distance)) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}[data-shell=glass] .login-hub .login-card{animation:glass-sheet-enter calc(var(--motion-panel) + 40ms) var(--motion-ease-out) both;animation-delay:calc(var(--motion-stagger-step) * .5)}@keyframes glass-sheet-enter{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}[data-shell=glass] .motion-modal-scrim{opacity:0;transition:opacity var(--motion-surface)}[data-shell=glass] .motion-modal-root[data-state=open] .motion-modal-scrim{opacity:1}[data-shell=glass] .motion-modal-panel{opacity:0;transform:scale(.96);transition:transform var(--motion-panel),opacity var(--motion-panel)}[data-shell=glass] .motion-modal-panel[data-state=open]{opacity:1;transform:scale(1)}[data-shell=glass] .motion-modal-panel[data-state=closed]{transition-duration:var(--motion-exit)}[data-shell=glass] .notification-popover,[data-shell=glass] .ui-popover{transform-origin:top right;animation:glass-popover-in var(--motion-surface) var(--motion-ease-out)}[dir=ltr][data-shell=glass] .notification-popover,[dir=ltr][data-shell=glass] .ui-popover{transform-origin:top left}@keyframes glass-popover-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}[data-shell=glass] .notification-popover-backdrop{opacity:0;transition:opacity var(--motion-surface)}[data-shell=glass] .notification-popover-backdrop[data-state=open]{opacity:1}[data-shell=glass] .glass-scrim{opacity:0;transition:opacity var(--motion-surface)}[data-shell=glass] .glass-scrim[data-state=open]{opacity:1}[data-shell=glass] .glass-scrim[data-state=closed]{transition-duration:var(--motion-exit)}@media (min-width:1024px){[data-shell=glass] .glass-rail{transition:width var(--motion-panel) var(--motion-ease-in-out)}}[data-shell=glass] .glass-nav-sub{animation:glass-subnav-in var(--motion-surface) var(--motion-ease-out)}@keyframes glass-subnav-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-shell=glass] .glass-rail .glass-nav-item span:not(.sr-only),[data-shell=glass] .glass-rail-collapse span:not(.sr-only){transition:opacity var(--motion-surface)}[data-shell=glass] .glass-rail[data-collapsed] .glass-nav-item span:not(.sr-only),[data-shell=glass] .glass-rail[data-collapsed] .glass-rail-collapse span:not(.sr-only){opacity:0}[data-shell=glass] [class$=-action-cell],[data-shell=glass] [class$=-btn],[data-shell=glass] [class$=-picker-chip],[data-shell=glass] [class$=-quick-btn],[data-shell=glass] [class$=-sheet-link],[data-shell=glass] [class$=-toolbar-btn]{transition:transform var(--motion-press),border-color var(--motion-surface),background-color var(--motion-surface),box-shadow var(--motion-surface),color var(--motion-surface)}[data-shell=glass] [class$=-action-cell]:active,[data-shell=glass] [class$=-btn]:active:not(:disabled),[data-shell=glass] [class$=-picker-chip]:active,[data-shell=glass] [class$=-quick-btn]:active,[data-shell=glass] [class$=-sheet-link]:active,[data-shell=glass] [class$=-toolbar-btn]:active:not(:disabled){transform:scale(.98)}[data-shell=glass] .sub-file-rules[open] .sub-file-rules__body,[data-shell=glass] details[open]>:not(summary){animation:glass-accordion-in .22s var(--motion-ease-out) both}@keyframes glass-accordion-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){[data-shell=glass] .glass-main>*,[data-shell=glass] .glass-nav-sub,[data-shell=glass] .login-hub .login-card,[data-shell=glass] .notification-popover,[data-shell=glass] .sub-file-rules[open] .sub-file-rules__body,[data-shell=glass] .ui-popover{animation:none!important}[data-shell=glass] .glass-scrim,[data-shell=glass] .motion-modal-panel,[data-shell=glass] .notification-popover-backdrop{transition:opacity .12s ease}[data-shell=glass] [class$=-action-cell]:active,[data-shell=glass] [class$=-btn]:active:not(:disabled),[data-shell=glass] [class$=-sheet-link]:active,[data-shell=glass] [class$=-toolbar-btn]:active:not(:disabled){transform:none}}

/*!
 * FitBites — motion trial (glass only).
 * Active when html has [data-pack="glass"][data-motion-trial="true"].
 */[data-pack=glass][data-motion-trial=true]{--motion-exit:120ms cubic-bezier(0.23,1,0.32,1)}[data-shell=glass][data-motion-trial=true] .motion-modal-scrim{position:absolute;inset:0;border:0;background:var(--glass-modal-tint);opacity:0;transition:opacity var(--motion-surface)}[data-shell=glass][data-motion-trial=true] .motion-modal-root[data-state=open] .motion-modal-scrim{opacity:1}[data-shell=glass][data-motion-trial=true] .motion-modal-panel{opacity:0;transform:scale(.96);transition:transform var(--motion-panel),opacity var(--motion-panel)}[data-shell=glass][data-motion-trial=true] .motion-modal-panel[data-state=open]{opacity:1;transform:scale(1)}[data-shell=glass][data-motion-trial=true] .motion-modal-panel[data-state=closed]{transition-duration:var(--motion-exit)}[data-shell=glass][data-motion-trial=true] .notification-popover{animation:none;opacity:0;transform:scale(.96);transform-origin:top right;transition:transform var(--motion-surface),opacity var(--motion-surface)}[dir=ltr][data-shell=glass][data-motion-trial=true] .notification-popover{transform-origin:top left}[data-shell=glass][data-motion-trial=true] .notification-popover[data-state=open]{opacity:1;transform:scale(1)}[data-shell=glass][data-motion-trial=true] .notification-popover[data-state=closed]{transition-duration:var(--motion-exit)}[data-shell=glass][data-motion-trial=true] .notification-popover-backdrop{opacity:0;transition:opacity var(--motion-surface)}[data-shell=glass][data-motion-trial=true] .notification-popover-backdrop[data-state=open]{opacity:1}[data-shell=glass][data-motion-trial=true] .notification-popover-backdrop[data-state=closed]{transition-duration:var(--motion-exit)}[data-shell=glass][data-motion-trial=true] .glass-scrim{opacity:0;transition:opacity var(--motion-surface)}[data-shell=glass][data-motion-trial=true] .glass-scrim[data-state=open]{opacity:1}[data-shell=glass][data-motion-trial=true] .glass-scrim[data-state=closed]{transition-duration:var(--motion-exit)}[data-shell=glass][data-motion-trial=true] .motion-preview-banner{animation:motion-preview-banner-in var(--motion-surface) cubic-bezier(.23,1,.32,1)}@keyframes motion-preview-banner-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}[data-shell=glass][data-motion-trial=true] .glass-rail .glass-nav-item span:not(.sr-only),[data-shell=glass][data-motion-trial=true] .glass-rail-collapse span:not(.sr-only){transition:opacity var(--motion-surface)}[data-shell=glass][data-motion-trial=true] .glass-rail[data-collapsed] .glass-nav-item span:not(.sr-only),[data-shell=glass][data-motion-trial=true] .glass-rail[data-collapsed] .glass-rail-collapse span:not(.sr-only){opacity:0}@media (prefers-reduced-motion:reduce){[data-shell=glass][data-motion-trial=true] .glass-scrim,[data-shell=glass][data-motion-trial=true] .motion-modal-panel,[data-shell=glass][data-motion-trial=true] .motion-preview-banner,[data-shell=glass][data-motion-trial=true] .notification-popover{animation:none;transform:none;transition:opacity .15s ease}}

/*!
 * FitBites touch shell — tokens.
 *
 * Part 1 of 7 (import in this order, see src/app/layout.tsx):
 *   1. touch-glass-tokens.css     — base [data-touch] token overrides, light + dark (this file)
 *   2. touch-glass-shell.css      — backdrop, app-grid/stage/main layout, header/topbar
 *   3. touch-glass-components.css — card/panel/sheet/hub/list frost, touch-more scroll lock
 *   4. touch-glass-dock.css       — bottom tab dock
 *   5. touch-glass-more-sheet.css — "More" overflow sheet
 *   6. touch-glass-a11y-print.css — reduced-motion + print + desktop hide, for files 4-5
 *   7. touch-glass-mono.css       — mono pack re-skin (tokens + the few !important spots)
 *
 * Activation: html[data-touch="true"] (≤767px). Pack stays "glass" for files
 * 1-6; file 7 layers [data-pack="mono"] on top the same way batman used to.
 * Translucent panels + strong backdrop blur over soft color blobs.
 */[data-touch=true][data-shell=glass]{--touch-dock-h:88px;--touch-topbar-h:2.85rem;--touch-chrome-top:max(0.55rem,env(safe-area-inset-top,0px));--touch-ink:#1c1c28;--touch-well:rgba(255,255,255,0.55);--touch-page:#efeff2;--touch-card:rgba(255,255,255,0.72);--touch-chrome:rgba(255,255,255,0.68);--touch-shadow:0 1px 2px rgba(28,28,40,0.04),0 14px 36px rgba(28,28,40,0.1);--touch-rim:inset 0 1px 0 rgba(255,255,255,0.95);--touch-glass-border:rgba(255,255,255,0.72);--touch-blur:48px;--touch-blur-chrome:56px;--touch-sat:160%;--touch-dock-bg-top:#f3f3f7;--touch-dock-bg-bottom:#ebebf0;--glass-blur-chrome:var(--touch-blur-chrome);--glass-blur-panel:var(--touch-blur);--glass-blur-data:24px;--glass-sat:var(--touch-sat);--glass-radius-chrome:26px;--radius-sm:14px;--radius:20px;--radius-md:24px;--glass-tint-top:rgba(255,255,255,0.82);--glass-tint-bottom:rgba(255,255,255,0.62);--glass-chrome-tint-top:rgba(255,255,255,0.78);--glass-chrome-tint-bottom:rgba(255,255,255,0.58);--glass-border:var(--touch-glass-border);--glass-rim-top:rgba(255,255,255,0.98);--glass-rim-hairline:rgba(255,255,255,0.5);--glass-rim-bottom:rgba(28,28,40,0.04);--glass-shadow:var(--touch-shadow);--glass-l2:var(--touch-card);--glass-l3:var(--touch-well);--glass-l4:rgba(255,255,255,0.84);--glass-pro-content:rgba(255,255,255,0.74);--glass-pro-inset:rgba(28,28,40,0.035);--glass-modal-tint:rgba(28,28,40,0.24);--glass-page-bg:var(--touch-page);--bg:var(--touch-page);--bg-muted:rgba(243,243,246,0.72);--surface:var(--touch-card);--surface-2:rgba(255,255,255,0.84);--text:var(--touch-ink);--text-muted:#5a5a6b;--border:rgba(255,255,255,0.55);--primary:var(--touch-ink);--primary-fg:#ffffff;--shadow:var(--touch-shadow);--shadow-lg:0 20px 50px rgba(28,28,40,0.14)}[data-touch=true][data-theme=dark][data-shell=glass]{--touch-ink:#f2f2f5;--touch-well:rgba(255,255,255,0.1);--touch-page:#12121a;--touch-card:rgba(42,42,54,0.62);--touch-chrome:rgba(48,48,62,0.58);--touch-hub-top:rgba(72,72,88,0.42);--touch-hub-bottom:rgba(36,36,48,0.3);--touch-hub-border:rgba(255,255,255,0.1);--touch-hub-rim:rgba(255,255,255,0.12);--touch-hub-inset:rgba(255,255,255,0.05);--touch-shadow:0 1px 2px rgba(0,0,0,0.35),0 16px 42px rgba(0,0,0,0.42);--touch-rim:inset 0 1px 0 rgba(255,255,255,0.2);--touch-glass-border:rgba(255,255,255,0.18);--touch-dock-bg-top:#2e2e3a;--touch-dock-bg-bottom:#252530;--glass-tint-top:rgba(255,255,255,0.16);--glass-tint-bottom:rgba(255,255,255,0.07);--glass-chrome-tint-top:rgba(255,255,255,0.18);--glass-chrome-tint-bottom:rgba(255,255,255,0.08);--glass-border:var(--touch-glass-border);--glass-rim-top:rgba(255,255,255,0.22);--glass-rim-hairline:rgba(255,255,255,0.12);--glass-l2:var(--touch-card);--glass-l3:var(--touch-well);--glass-l4:rgba(52,52,66,0.68);--glass-pro-content:rgba(42,42,54,0.64);--glass-modal-tint:rgba(6,6,10,0.5);--bg:var(--touch-page);--bg-muted:rgba(255,255,255,0.06);--surface:var(--touch-card);--surface-2:rgba(52,52,66,0.68);--text:#f2f2f5;--text-muted:#9b9ba8;--border:rgba(255,255,255,0.14);--primary:#f2f2f5;--primary-fg:#1c1c28}

/*!
 * FitBites touch shell — backdrop, layout, header.
 * Part 2 of 7 — see the header comment in touch-glass-tokens.css for the
 * full import order.
 */[data-touch=true][data-theme=light] .liquid-glass-backdrop{background:var(--touch-page)!important}[data-touch=true][data-theme=light] .liquid-glass-backdrop:before{background:radial-gradient(26rem 22rem at 14% 8%,rgba(201,204,230,.72),transparent 62%),radial-gradient(24rem 21rem at 92% 38%,rgba(217,210,232,.7),transparent 64%),radial-gradient(28rem 23rem at 38% 96%,rgba(207,214,232,.68),transparent 62%),radial-gradient(18rem 16rem at 70% 12%,color-mix(in srgb,var(--glass-accent,#ff7a3d) 28%,transparent),transparent 70%)!important;filter:blur(40px)!important;opacity:1!important}[data-touch=true][data-theme=light] .liquid-glass-backdrop:after{opacity:.12!important}[data-touch=true][data-theme=dark] .liquid-glass-backdrop{background:var(--touch-page)!important}[data-touch=true][data-theme=dark] .liquid-glass-backdrop:before{background:radial-gradient(26rem 22rem at 14% 8%,rgba(122,128,190,.38),transparent 62%),radial-gradient(24rem 21rem at 92% 38%,rgba(140,122,180,.34),transparent 64%),radial-gradient(28rem 23rem at 38% 96%,rgba(104,120,168,.32),transparent 62%),radial-gradient(18rem 16rem at 70% 12%,color-mix(in srgb,var(--glass-accent,#ff7a3d) 22%,transparent),transparent 70%)!important;filter:blur(40px)!important}[data-touch=true][data-theme=dark] .liquid-glass-backdrop:after{opacity:.16!important}[data-touch=true][data-shell=glass] .glass-app{width:100%;max-width:100%;height:100dvh;max-height:100dvh;grid-template-rows:minmax(0,1fr);box-sizing:border-box;overflow:hidden;padding-top:var(--touch-chrome-top);padding-bottom:0;padding-left:max(.85rem,env(safe-area-inset-left,0px));padding-right:max(.85rem,env(safe-area-inset-right,0px));gap:.65rem}[data-touch=true][data-shell=glass] .glass-stage{display:flex;flex-direction:column;min-height:0;height:100%;max-height:100%;overflow:hidden;padding-top:0}[data-touch=true][data-shell=glass] .glass-menu-toggle,[data-touch=true][data-shell=glass] .glass-rail{display:none!important}.touch-dock,.touch-more-sheet{display:none}[data-touch=true][data-shell=glass] .touch-dock{display:block}[data-touch=true][data-shell=glass] .glass-main{flex:1 1 auto;width:100%;max-width:100%;min-width:0;min-height:0;overflow-x:clip;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:.15rem 0 calc(var(--touch-dock-h) + env(safe-area-inset-bottom, 0px) + .5rem)}[data-touch=true][data-shell=glass] .glass-main .dashboard-page,[data-touch=true][data-shell=glass] .glass-main .hub-root,[data-touch=true][data-shell=glass] .glass-main .meals-gallery-hub,[data-touch=true][data-shell=glass] .glass-main .space-y-5,[data-touch=true][data-shell=glass] .glass-main [class$=-hub],[data-touch=true][data-shell=glass] .glass-main [class*="-hub "],[data-touch=true][data-shell=glass] .glass-main>*{width:100%;max-width:100%;min-width:0;box-sizing:border-box}[data-touch=true][data-shell=glass] .glass-main :is(section,form,table,.ui-panel,[class*=-sheet],[class*=-ops-bar],[class*=-toolbar],[class*=-period],[class*=-kpi]){max-width:100%;min-width:0;box-sizing:border-box}[data-touch=true][data-shell=glass] .glass-main :is(input,select,textarea,button,a.button,.accounting-btn,.subscribers-input,.subscribers-select,.meals-gallery-search-input){max-width:100%;box-sizing:border-box}[data-touch=true][data-shell=glass] .glass-main :is(input[type=date],input[type=datetime-local],input[type=time],input[type=month],input[type=week]){width:100%;min-width:0!important;max-width:100%}[data-touch=true][data-shell=glass] .glass-main :is(input[type=date],input[type=datetime-local],input[type=month],input[type=week])::-webkit-datetime-edit{min-width:0}[data-touch=true][data-shell=glass] .glass-top{position:relative;top:auto;inset-inline:auto;flex-shrink:0;z-index:30;width:100%;max-width:100%;min-height:var(--touch-topbar-h);height:var(--touch-topbar-h);align-items:center;flex-wrap:nowrap;gap:.4rem;margin:0;border-radius:999px;padding:.3rem .4rem;border:1px solid var(--touch-glass-border)!important;background:linear-gradient(180deg,var(--glass-chrome-tint-top),var(--glass-chrome-tint-bottom))!important;box-shadow:var(--touch-shadow),var(--touch-rim)!important;backdrop-filter:blur(var(--touch-blur-chrome)) saturate(var(--touch-sat))!important;-webkit-backdrop-filter:blur(var(--touch-blur-chrome)) saturate(var(--touch-sat))!important}[data-touch=true][data-shell=glass] .glass-top .shell-tools{display:inline-flex;align-items:center;gap:.3rem}[data-touch=true][data-shell=glass] .glass-top .shell-tool,[data-touch=true][data-shell=glass] .glass-top .shell-tool-icon,[data-touch=true][data-shell=glass] .glass-top .shell-tools a,[data-touch=true][data-shell=glass] .glass-top .shell-tools button{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;border:1px solid var(--touch-glass-border);border-radius:999px;background:color-mix(in srgb,var(--touch-well) 80%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.35);color:var(--text);backdrop-filter:blur(16px) saturate(var(--touch-sat));-webkit-backdrop-filter:blur(16px) saturate(var(--touch-sat))}[data-touch=true][data-shell=glass] .glass-top .shell-chrome-icon,[data-touch=true][data-shell=glass] .glass-top .shell-tool-icon>svg{width:.95rem;height:.95rem}[data-touch=true][data-shell=glass] .glass-header-user{padding-inline:.15rem;min-height:0;gap:.4rem}[data-touch=true][data-shell=glass] .glass-avatar{height:1.7rem;width:1.7rem;font-size:.7rem;border:1px solid var(--touch-glass-border);background:linear-gradient(180deg,var(--glass-chrome-tint-top),var(--glass-chrome-tint-bottom));box-shadow:var(--touch-rim)}[data-touch=true][data-shell=glass] .glass-header-user .truncate{font-size:.75rem}

/*!
 * FitBites touch shell — content surfaces.
 * Part 3 of 7 — see the header comment in touch-glass-tokens.css for the
 * full import order.
 *
 * Cards, panels, sheets, hub frost, list rows, and the scroll lock the
 * "More" sheet applies to the page behind it.
 */[data-touch=true][data-shell=glass] .glass-card,[data-touch=true][data-shell=glass] .liquid-glass-chip,[data-touch=true][data-shell=glass] .liquid-glass:not(.touch-more-sheet),[data-touch=true][data-shell=glass] .ui-panel,[data-touch=true][data-shell=glass] main .border.bg-surface{border:1px solid var(--touch-glass-border)!important;border-radius:24px!important;background:linear-gradient(165deg,var(--glass-tint-top),var(--glass-tint-bottom))!important;box-shadow:var(--touch-shadow),var(--touch-rim),inset 0 0 0 1px var(--glass-rim-hairline)!important;backdrop-filter:blur(var(--touch-blur)) saturate(var(--touch-sat))!important;-webkit-backdrop-filter:blur(var(--touch-blur)) saturate(var(--touch-sat))!important}[data-touch=true][data-shell=glass] [class$=-filters],[data-touch=true][data-shell=glass] [class$=-panel],[data-touch=true][data-shell=glass] [class$=-segment],[data-touch=true][data-shell=glass] [class$=-sheet]:not(.touch-more-sheet),[data-touch=true][data-shell=glass] [class$=-table-wrap],[data-touch=true][data-shell=glass] [class$=-tabs],[data-touch=true][data-shell=glass] [class$=-toolbar]{border-radius:var(--radius-md);border-color:color-mix(in srgb,var(--touch-glass-border) 55%,transparent);background:linear-gradient(165deg,color-mix(in srgb,rgba(255,255,255,.28) 50%,transparent),color-mix(in srgb,var(--glass-l2) 55%,transparent));box-shadow:var(--touch-shadow),inset 0 1px 0 rgba(255,255,255,.34),inset 0 0 0 1px color-mix(in srgb,var(--glass-rim-hairline) 50%,transparent);backdrop-filter:blur(36px) saturate(170%);-webkit-backdrop-filter:blur(36px) saturate(170%)}[data-touch=true][data-shell=glass] [class$=-table-wrap]{overflow:auto}[data-touch=true][data-shell=glass] [class$=-sheet-block]{background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}[data-touch=true][data-shell=glass] [class*=-table-wrap][class*=-sheet-block]{border-radius:var(--radius-md);overflow:auto;border-color:color-mix(in srgb,var(--touch-glass-border) 55%,transparent);background:linear-gradient(165deg,color-mix(in srgb,rgba(255,255,255,.28) 50%,transparent),color-mix(in srgb,var(--glass-l2) 55%,transparent));box-shadow:var(--touch-shadow),inset 0 1px 0 rgba(255,255,255,.34),inset 0 0 0 1px color-mix(in srgb,var(--glass-rim-hairline) 50%,transparent);backdrop-filter:blur(36px) saturate(170%);-webkit-backdrop-filter:blur(36px) saturate(170%)}[data-touch=true][data-theme=dark][data-shell=glass] [class$=-filters],[data-touch=true][data-theme=dark][data-shell=glass] [class$=-panel],[data-touch=true][data-theme=dark][data-shell=glass] [class$=-segment],[data-touch=true][data-theme=dark][data-shell=glass] [class$=-sheet]:not(.touch-more-sheet),[data-touch=true][data-theme=dark][data-shell=glass] [class$=-table-wrap],[data-touch=true][data-theme=dark][data-shell=glass] [class$=-tabs],[data-touch=true][data-theme=dark][data-shell=glass] [class$=-toolbar],[data-touch=true][data-theme=dark][data-shell=glass] [class*="-filters "],[data-touch=true][data-theme=dark][data-shell=glass] [class*="-panel "],[data-touch=true][data-theme=dark][data-shell=glass] [class*="-sheet "]:not(.touch-more-sheet),[data-touch=true][data-theme=dark][data-shell=glass] [class*="-tabs "],[data-touch=true][data-theme=dark][data-shell=glass] [class*="-toolbar "],[data-touch=true][data-theme=dark][data-shell=glass] [class*=-table-wrap][class*=-sheet-block]{border-color:var(--touch-hub-border);background:linear-gradient(165deg,var(--touch-hub-top),var(--touch-hub-bottom));box-shadow:var(--touch-shadow),inset 0 1px 0 var(--touch-hub-rim),inset 0 0 0 1px var(--touch-hub-inset);backdrop-filter:blur(40px) saturate(165%);-webkit-backdrop-filter:blur(40px) saturate(165%)}[data-touch=true][data-theme=dark][data-shell=glass] [class$=-sheet-block]:not([class*=-table-wrap]){background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}[data-touch=true][data-shell=glass] [class$=-hub] [class$=-group]:not(.sub-file-group)>[class$=-row],[data-touch=true][data-shell=glass] [class$=-hub] [class$=-group]:not(.sub-file-group)>a[class*=-row],[data-touch=true][data-shell=glass] [class$=-list]:not(.touch-more-sheet__list)>[class$=-item],[data-touch=true][data-shell=glass] [class$=-list]:not(.touch-more-sheet__list)>li,[data-touch=true][data-shell=glass] [class$=-meal-list]>[class$=-meal-row]{border-color:rgba(255,255,255,.1);background:color-mix(in srgb,rgba(255,255,255,.1) 80%,transparent);backdrop-filter:blur(22px) saturate(155%);-webkit-backdrop-filter:blur(22px) saturate(155%)}[data-touch=true][data-theme=dark][data-shell=glass] [class$=-hub] [class$=-group]:not(.sub-file-group)>[class$=-row],[data-touch=true][data-theme=dark][data-shell=glass] [class$=-hub] [class$=-group]:not(.sub-file-group)>a[class*=-row],[data-touch=true][data-theme=dark][data-shell=glass] [class$=-list]:not(.touch-more-sheet__list)>[class$=-item],[data-touch=true][data-theme=dark][data-shell=glass] [class$=-list]:not(.touch-more-sheet__list)>li,[data-touch=true][data-theme=dark][data-shell=glass] [class$=-meal-list]>[class$=-meal-row]{border-color:rgba(255,255,255,.08);background:color-mix(in srgb,rgba(255,255,255,.07) 85%,transparent)}[data-touch=true][data-shell=glass] .meals-gallery-card{border-color:color-mix(in srgb,var(--touch-glass-border) 50%,transparent)!important;background:linear-gradient(165deg,color-mix(in srgb,rgba(255,255,255,.24) 55%,transparent),color-mix(in srgb,var(--glass-l2) 50%,transparent))!important;backdrop-filter:blur(28px) saturate(160%)!important;-webkit-backdrop-filter:blur(28px) saturate(160%)!important}[data-touch=true][data-shell=glass] .glass-app[data-touch-more=true]{overflow:hidden;overscroll-behavior:none}[data-touch=true][data-shell=glass] .glass-app[data-touch-more=true] .glass-main,[data-touch=true][data-shell=glass] .glass-app[data-touch-more=true] .glass-stage{overflow:hidden;overscroll-behavior:none;touch-action:none}body:has([data-touch-more=true]),html:has([data-touch-more=true]){overflow:hidden!important;overscroll-behavior:none}

/*!
 * FitBites touch shell — bottom tab dock.
 * Part 4 of 7 — see the header comment in touch-glass-tokens.css for the
 * full import order. Reduced-motion for this component lives in
 * touch-glass-a11y-print.css alongside the more sheet's.
 *
 * Instagram-inspired icon+label; active = glowing icon.
 */[data-touch=true][data-shell=glass] .touch-dock{position:fixed;z-index:45;inset-inline:1rem;bottom:max(1.1rem,env(safe-area-inset-bottom,0px));pointer-events:none}[data-touch=true][data-shell=glass] .touch-dock__pill{pointer-events:auto;position:relative;display:flex;align-items:stretch;justify-content:space-between;gap:0;min-height:64px;padding:.4rem .35rem .45rem;border:1px solid var(--touch-glass-border);border-radius:999px;background:linear-gradient(180deg,var(--touch-dock-bg-top),var(--touch-dock-bg-bottom));box-shadow:var(--touch-shadow),var(--touch-rim),inset 0 0 0 1px var(--glass-rim-hairline);backdrop-filter:none;-webkit-backdrop-filter:none;isolation:isolate}[data-touch=true][data-shell=glass] .touch-dock__item{position:relative;z-index:1;flex:1 1 0;display:flex;align-items:center;justify-content:center;min-width:0;min-height:3.25rem;padding:0;border:0;border-radius:999px;background:transparent;color:color-mix(in srgb,var(--touch-ink) 48%,transparent);font:inherit;text-decoration:none;cursor:pointer;transition:color .18s cubic-bezier(.23,1,.32,1),transform .12s cubic-bezier(.23,1,.32,1)}[data-touch=true][data-shell=glass] .touch-dock__chip{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.18rem;max-width:100%;padding:.15rem .2rem .1rem;box-sizing:border-box}[data-touch=true][data-shell=glass] .touch-dock__glyph{display:grid;place-items:center;width:2rem;height:2rem;transition:color .18s cubic-bezier(.23,1,.32,1),filter .18s cubic-bezier(.23,1,.32,1)}[data-touch=true][data-shell=glass] .touch-dock__item svg{width:1.25rem;height:1.25rem;flex-shrink:0;stroke-width:1.7}[data-touch=true][data-shell=glass] .touch-dock__label{max-width:4.6rem;overflow:hidden;text-overflow:ellipsis;font-size:.625rem;font-weight:600;letter-spacing:.01em;line-height:1.1;white-space:nowrap;text-align:center}[data-touch=true][data-shell=glass] .touch-dock__item.is-active{color:color-mix(in srgb,var(--touch-ink) 72%,transparent)}[data-touch=true][data-shell=glass] .touch-dock__item.is-active .touch-dock__label{font-weight:700}[data-touch=true][data-shell=glass] .touch-dock__item.is-active .touch-dock__glyph{color:#1c1c28;filter:drop-shadow(0 0 4px rgba(28,28,40,.28))}[data-touch=true][data-theme=dark][data-shell=glass] .touch-dock__item.is-active .touch-dock__glyph{color:#ffffff;filter:drop-shadow(0 0 5px rgba(255,255,255,.9)) drop-shadow(0 0 12px rgba(255,255,255,.45))}[data-touch=true][data-shell=glass] .touch-dock__item.is-active svg{color:inherit;stroke-width:2}[data-touch=true][data-shell=glass] .touch-dock__item:active{transform:scale(.96)}

/*!
 * FitBites touch shell — "More" overflow sheet.
 * Part 5 of 7 — see the header comment in touch-glass-tokens.css for the
 * full import order. Reduced-motion for this component lives in
 * touch-glass-a11y-print.css alongside the dock's.
 *
 * Frosted glass panel + a unified settings-style list (not pill chips).
 */[data-touch=true][data-shell=glass] .touch-more-scrim{z-index:42;display:block;background:rgba(28,28,40,.26);backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%)}[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-scrim{background:rgba(6,6,10,.5)}[data-touch=true][data-shell=glass] .touch-more-sheet{position:fixed;z-index:44;inset-inline:.75rem;bottom:calc(var(--touch-dock-h) + env(safe-area-inset-bottom, 0px) + .15rem);display:flex;max-height:calc(100dvh - var(--touch-dock-h) - env(safe-area-inset-bottom, 0px) - env(safe-area-inset-top, 0px) - 1.35rem);flex-direction:column;overflow:hidden;isolation:isolate;border:1px solid color-mix(in srgb,var(--touch-glass-border) 92%,white 8%)!important;border-radius:28px!important;background:linear-gradient(165deg,rgba(255,255,255,.58),rgba(255,255,255,.36) 48%,rgba(245,246,250,.28))!important;box-shadow:0 -14px 52px rgba(28,28,40,.2),var(--touch-rim),inset 0 1px 0 rgba(255,255,255,.62),inset 0 0 0 1px var(--glass-rim-hairline)!important;backdrop-filter:blur(40px) saturate(185%)!important;-webkit-backdrop-filter:blur(40px) saturate(185%)!important;transform:translateY(14px);opacity:0;transition:transform .22s cubic-bezier(.16,1,.3,1),opacity .16s cubic-bezier(.16,1,.3,1)}[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-sheet{border-color:rgba(255,255,255,.18)!important;background:linear-gradient(165deg,rgba(72,72,88,.55),rgba(40,40,54,.42) 52%,rgba(22,22,32,.36))!important;box-shadow:0 -14px 52px rgba(0,0,0,.5),var(--touch-rim),inset 0 1px 0 rgba(255,255,255,.14),inset 0 0 0 1px var(--glass-rim-hairline)!important;backdrop-filter:blur(44px) saturate(175%)!important;-webkit-backdrop-filter:blur(44px) saturate(175%)!important}[data-touch=true][data-shell=glass] .touch-more-sheet[data-state=open]{transform:none;opacity:1}[data-touch=true][data-shell=glass] .touch-more-sheet__handle{width:2.75rem;height:.28rem;margin:.55rem auto .15rem;flex-shrink:0;border-radius:999px;background:rgba(28,28,40,.16)}[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-sheet__handle{background:rgba(255,255,255,.28)}[data-touch=true][data-shell=glass] .touch-more-sheet__head{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:.75rem;padding:.15rem 1rem .4rem}[data-touch=true][data-shell=glass] .touch-more-sheet__title{margin:0;font-size:1.05rem;font-weight:650;color:var(--text)}[data-touch=true][data-shell=glass] .touch-more-sheet__close{min-height:38px;min-width:38px;border:1px solid color-mix(in srgb,var(--touch-glass-border) 90%,transparent);border-radius:999px;padding:0 .85rem;background:color-mix(in srgb,rgba(255,255,255,.5) 78%,transparent);color:var(--text);font:inherit;font-size:.8rem;font-weight:550;cursor:pointer;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-sheet__close{background:color-mix(in srgb,rgba(255,255,255,.14) 82%,transparent);color:rgba(242,242,245,.95)}[data-touch=true][data-shell=glass] .touch-more-sheet__nav{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:0 .75rem .75rem;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}[data-touch=true][data-shell=glass] .touch-more-sheet__nav::-webkit-scrollbar{display:none;width:0;height:0}[data-touch=true][data-shell=glass] .touch-more-sheet__list{display:flex;width:100%;flex:0 0 auto;flex-direction:column;align-items:stretch;overflow:visible;border:1px solid color-mix(in srgb,var(--touch-glass-border) 80%,transparent);border-radius:22px;background:color-mix(in srgb,rgba(255,255,255,.42) 82%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.48),0 1px 0 rgba(255,255,255,.06);backdrop-filter:blur(28px) saturate(170%);-webkit-backdrop-filter:blur(28px) saturate(170%)}[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-sheet__list{border-color:rgba(255,255,255,.14);background:color-mix(in srgb,rgba(255,255,255,.08) 78%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 1px 0 rgba(0,0,0,.22);backdrop-filter:blur(30px) saturate(165%);-webkit-backdrop-filter:blur(30px) saturate(165%)}[data-touch=true][data-shell=glass] .touch-more-sheet__empty{margin:.85rem 1rem;color:var(--text-muted);font-size:.85rem}[data-touch=true][data-shell=glass] .touch-more-sheet__group,[data-touch=true][data-shell=glass] .touch-more-sheet__item{display:block;width:100%!important;max-width:none!important;min-width:0;flex:0 0 auto;align-self:stretch!important}[data-touch=true][data-shell=glass] .touch-more-sheet__item{margin:0!important;border:0!important;border-radius:0!important;padding:0!important;background:transparent!important;color:var(--text);font:inherit;text-align:start;text-decoration:none;cursor:pointer;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}[data-touch=true][data-shell=glass] .touch-more-sheet__row{position:relative;display:flex;width:100%;box-sizing:border-box;min-height:48px;align-items:center;gap:.7rem;padding:.55rem .9rem}[data-touch=true][data-shell=glass] .touch-more-sheet__group+.touch-more-sheet__group>.touch-more-sheet__item .touch-more-sheet__row:before,[data-touch=true][data-shell=glass] .touch-more-sheet__group+.touch-more-sheet__item .touch-more-sheet__row:before,[data-touch=true][data-shell=glass] .touch-more-sheet__item+.touch-more-sheet__group>.touch-more-sheet__item .touch-more-sheet__row:before,[data-touch=true][data-shell=glass] .touch-more-sheet__item+.touch-more-sheet__item .touch-more-sheet__row:before,[data-touch=true][data-shell=glass] .touch-more-sheet__subitem+.touch-more-sheet__subitem .touch-more-sheet__row:before{content:"";position:absolute;top:0;inset-inline-start:3.85rem;inset-inline-end:.95rem;height:1px;background:color-mix(in srgb,var(--border) 72%,transparent);pointer-events:none}[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-sheet__group+.touch-more-sheet__group>.touch-more-sheet__item .touch-more-sheet__row:before,[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-sheet__group+.touch-more-sheet__item .touch-more-sheet__row:before,[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-sheet__item+.touch-more-sheet__group>.touch-more-sheet__item .touch-more-sheet__row:before,[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-sheet__item+.touch-more-sheet__item .touch-more-sheet__row:before,[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-sheet__subitem+.touch-more-sheet__subitem .touch-more-sheet__row:before{background:rgba(255,255,255,.1)}[data-touch=true][data-shell=glass] .touch-more-sheet__icon{display:inline-flex;width:2.15rem;height:2.15rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:999px;border:1px solid color-mix(in srgb,var(--touch-glass-border) 65%,transparent);background:color-mix(in srgb,rgba(255,255,255,.62) 85%,transparent);color:#4f4f5e;box-shadow:inset 0 1px 0 rgba(255,255,255,.55);backdrop-filter:blur(14px) saturate(145%);-webkit-backdrop-filter:blur(14px) saturate(145%)}[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-sheet__icon{border-color:rgba(255,255,255,.14);background:color-mix(in srgb,rgba(255,255,255,.12) 88%,transparent);color:rgba(236,236,244,.92);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}[data-touch=true][data-shell=glass] .touch-more-sheet__icon svg{width:1.05rem;height:1.05rem}[data-touch=true][data-shell=glass] .touch-more-sheet__label{flex:1 1 auto;min-width:0;font-size:.95rem;font-weight:550;line-height:1.25;color:inherit}[data-touch=true][data-shell=glass] .touch-more-sheet__chevron{width:1rem;height:1rem;flex-shrink:0;color:color-mix(in srgb,var(--text-muted) 88%,transparent);transition:transform .16s cubic-bezier(.23,1,.32,1)}[data-touch=true][data-shell=glass] .touch-more-sheet__chevron.is-open{transform:rotate(-90deg)}[data-touch=true][data-shell=glass] .touch-more-sheet__item.is-active .touch-more-sheet__row,[data-touch=true][data-shell=glass] .touch-more-sheet__item.is-current .touch-more-sheet__row{background-color:color-mix(in srgb,var(--primary) 10%,transparent)}[data-touch=true][data-shell=glass] .touch-more-sheet__item.is-active .touch-more-sheet__icon,[data-touch=true][data-shell=glass] .touch-more-sheet__item.is-current .touch-more-sheet__icon{border-color:color-mix(in srgb,var(--primary) 28%,transparent);background:color-mix(in srgb,var(--primary) 16%,rgba(255,255,255,.35));color:var(--primary)}[data-touch=true][data-shell=glass] .touch-more-sheet__item.is-active .touch-more-sheet__label,[data-touch=true][data-shell=glass] .touch-more-sheet__item.is-current .touch-more-sheet__label{color:var(--primary);font-weight:650}[data-touch=true][data-shell=glass] .touch-more-sheet__sub{display:flex;flex-direction:column;background:color-mix(in srgb,rgba(0,0,0,.03) 60%,transparent)}[data-touch=true][data-theme=dark][data-shell=glass] .touch-more-sheet__sub{background:color-mix(in srgb,rgba(0,0,0,.2) 70%,transparent)}[data-touch=true][data-shell=glass] .touch-more-sheet__subitem .touch-more-sheet__row{min-height:48px;padding-inline-start:1.15rem}[data-touch=true][data-shell=glass] .touch-more-sheet__subitem .touch-more-sheet__label{font-size:.9rem;font-weight:500}[data-touch=true][data-shell=glass] .touch-more-sheet__customize .touch-more-sheet__label{font-size:.88rem;color:var(--text-muted)}

/*!
 * FitBites touch shell — reduced motion, print, desktop hide.
 * Part 6 of 7 — see the header comment in touch-glass-tokens.css for the
 * full import order.
 *
 * The original file had two separate prefers-reduced-motion blocks for the
 * dock, written at different times; the second (further down, same
 * specificity) fully overrode the first's .touch-dock__item and :active
 * rules, so those two declarations from the first block were dead — this
 * merges them into one block and keeps only what was actually taking
 * effect: .touch-dock__glyph's own reduced transition (never covered by the
 * second block) plus the second block's stronger "no transition at all" for
 * .touch-dock__item and .touch-more-sheet.
 */@media (prefers-reduced-motion:reduce){[data-touch=true][data-shell=glass] .touch-dock__glyph{transition:color .12s ease,filter .12s ease}[data-touch=true][data-shell=glass] .touch-dock__item,[data-touch=true][data-shell=glass] .touch-more-sheet,[data-touch=true][data-shell=glass] .touch-more-sheet__chevron{transition:none}[data-touch=true][data-shell=glass] .touch-dock__item:active{transform:none}}@media print{.touch-dock,.touch-more-sheet{display:none!important}}@media (min-width:768px){.touch-dock,.touch-more-sheet{display:none!important}}

/*!
 * FitBites touch shell — mono pack ("Liquid Glass and Monochrome") re-skin.
 * Part 7 of 7 — see the header comment in touch-glass-tokens.css for the
 * full import order.
 *
 * Cards/panels/lists already read var(--touch-hub-*), var(--glass-l2), etc.
 * (see touch-glass-tokens.css's dark-mode block), so redefining that small
 * token set here re-colors every hub card/panel/toolbar/tab automatically —
 * no need to restate a giant selector list per component. Only the two spots
 * that hardcode a literal color with !important instead of a token (dock
 * active glow, the more sheet panel) need an explicit override.
 * ========================================================================== */[data-touch=true][data-shell=glass][data-pack=mono]{--touch-ink:#171717;--touch-well:rgba(10,10,10,0.05);--touch-page:#ffffff;--touch-card:rgba(255,255,255,0.6);--touch-chrome:rgba(255,255,255,0.55);--touch-shadow:0 1px 2px rgba(23,23,23,0.05),0 14px 36px rgba(23,23,23,0.1);--touch-rim:inset 0 1px 0 rgba(255,255,255,0.85);--touch-glass-border:rgba(10,10,10,0.12);--touch-dock-bg-top:#fafafa;--touch-dock-bg-bottom:#f0f0f0;--touch-hub-top:rgba(255,255,255,0.55);--touch-hub-bottom:rgba(255,255,255,0.28);--touch-hub-border:rgba(10,10,10,0.1);--touch-hub-rim:rgba(255,255,255,0.7);--touch-hub-inset:rgba(10,10,10,0.04);--glass-tint-top:rgba(255,255,255,0.7);--glass-tint-bottom:rgba(255,255,255,0.42);--glass-chrome-tint-top:rgba(255,255,255,0.65);--glass-chrome-tint-bottom:rgba(255,255,255,0.35);--glass-border:var(--touch-glass-border);--glass-rim-top:rgba(255,255,255,0.9);--glass-rim-hairline:rgba(255,255,255,0.4);--glass-shadow:var(--touch-shadow);--glass-l2:var(--touch-card);--glass-l3:var(--touch-well);--glass-l4:rgba(255,255,255,0.86);--glass-page-bg:var(--touch-page);--border:rgba(10,10,10,0.1);--primary:#000000;--primary-fg:#ffffff;--shadow:var(--touch-shadow);--shadow-lg:0 20px 50px rgba(23,23,23,0.12)}[data-touch=true][data-theme=dark][data-shell=glass][data-pack=mono]{--touch-ink:#f5f5f5;--touch-well:rgba(255,255,255,0.05);--touch-page:#000000;--touch-card:rgba(255,255,255,0.06);--touch-chrome:rgba(255,255,255,0.055);--touch-hub-top:rgba(255,255,255,0.08);--touch-hub-bottom:rgba(255,255,255,0.03);--touch-hub-border:rgba(255,255,255,0.1);--touch-hub-rim:rgba(255,255,255,0.1);--touch-hub-inset:rgba(255,255,255,0.04);--touch-shadow:0 1px 2px rgba(0,0,0,0.5),0 16px 42px rgba(0,0,0,0.55);--touch-rim:inset 0 1px 0 rgba(255,255,255,0.14);--touch-glass-border:rgba(255,255,255,0.14);--touch-dock-bg-top:#0a0a0a;--touch-dock-bg-bottom:#050505;--glass-tint-top:rgba(255,255,255,0.12);--glass-tint-bottom:rgba(255,255,255,0.04);--glass-chrome-tint-top:rgba(255,255,255,0.14);--glass-chrome-tint-bottom:rgba(255,255,255,0.05);--glass-border:rgba(255,255,255,0.1);--primary:#ffffff;--primary-fg:#000000;--shadow:var(--touch-shadow);--shadow-lg:0 24px 56px rgba(0,0,0,0.6);--glass-l2:var(--touch-card);--glass-l4:rgba(10,10,10,0.8);--glass-modal-tint:rgba(0,0,0,0.6);--bg:var(--touch-page);--surface:var(--touch-card);--surface-2:rgba(10,10,10,0.8)}[data-touch=true][data-pack=mono] .liquid-glass-backdrop{background:var(--touch-page)!important}[data-touch=true][data-pack=mono] .liquid-glass-backdrop:before{background:none!important}[data-touch=true][data-pack=mono] .liquid-glass-backdrop:after{opacity:.05!important}[data-touch=true][data-shell=glass][data-pack=mono] .touch-dock__item.is-active .touch-dock__glyph{color:var(--glass-accent);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--glass-accent) 40%,transparent))}[data-touch=true][data-theme=dark][data-shell=glass][data-pack=mono] .touch-dock__item.is-active .touch-dock__glyph{color:var(--glass-accent);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--glass-accent) 80%,transparent)) drop-shadow(0 0 12px color-mix(in srgb,var(--glass-accent) 40%,transparent))}[data-touch=true][data-shell=glass][data-pack=mono] .touch-more-sheet{border-color:rgba(10,10,10,.12)!important;background:rgba(255,255,255,.88)!important;box-shadow:0 -14px 52px rgba(23,23,23,.16),var(--touch-rim),inset 0 1px 0 rgba(255,255,255,.85),inset 0 0 0 1px var(--glass-rim-hairline)!important}[data-touch=true][data-theme=dark][data-shell=glass][data-pack=mono] .touch-more-sheet{border-color:rgba(255,255,255,.14)!important;background:rgba(10,10,10,.9)!important;box-shadow:0 -14px 52px rgba(0,0,0,.6),var(--touch-rim),inset 0 1px 0 rgba(255,255,255,.1),inset 0 0 0 1px var(--glass-rim-hairline)!important}