:root{--ui-bg: #f5f6f8;--ui-surface: #ffffff;--ui-surface-alt: #eef0f4;--ui-border: #dde1e8;--ui-text: #111827;--ui-text-muted: #5b6474;--ui-skeleton: #e3e7ee;--ui-skeleton-highlight: #f3f5f8;--ui-accent: #334155;--ui-on-accent: #ffffff;--ui-accent-soft: color-mix(in srgb, var(--ui-accent) 14%, transparent);--ui-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ui-font-size-sm: .875rem;--ui-font-size-md: 1rem;--ui-font-size-lg: 1.25rem;--ui-space-1: 4px;--ui-space-2: 8px;--ui-space-3: 12px;--ui-space-4: 16px;--ui-space-5: 24px;--ui-space-6: 32px;--ui-radius-sm: 8px;--ui-radius-md: 12px;--ui-radius-lg: 20px;--ui-radius-pill: 999px;--ui-header-height: 56px;--ui-safe-top: env(safe-area-inset-top, 0px);--ui-safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:light dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ui-bg: #0f1115;--ui-surface: #181b21;--ui-surface-alt: #20242c;--ui-border: #2c313b;--ui-text: #f1f3f7;--ui-text-muted: #9aa3b2;--ui-skeleton: #252a33;--ui-skeleton-highlight: #313743}}:root[data-theme=dark]{--ui-bg: #0f1115;--ui-surface: #181b21;--ui-surface-alt: #20242c;--ui-border: #2c313b;--ui-text: #f1f3f7;--ui-text-muted: #9aa3b2;--ui-skeleton: #252a33;--ui-skeleton-highlight: #313743}[data-app=hub]{--ui-accent: #334155;--ui-on-accent: #ffffff}[data-app=buvette]{--ui-accent: #113885;--ui-on-accent: #ffffff}[data-app=jarvis-maison]{--ui-accent: #37628f;--ui-on-accent: #ffffff}[data-app=push-up-fc]{--ui-accent: #ff6b35;--ui-on-accent: #ffffff}[data-app=chinois]{--ui-accent: #c0392b;--ui-on-accent: #ffffff}[data-app=iptv-reader]{--ui-accent: #f53d0f;--ui-on-accent: #ffffff}[data-app=ost-downloader]{--ui-accent: #8b5cf6;--ui-on-accent: #ffffff}[data-app=suivi-poids]{--ui-accent: #c25c39;--ui-on-accent: #fff7ee}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--ui-bg);color:var(--ui-text);font-family:var(--ui-font);-webkit-font-smoothing:antialiased}html:not([data-app-transition])::view-transition-group(*),html:not([data-app-transition])::view-transition-old(*),html:not([data-app-transition])::view-transition-new(*){animation:none}
