@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/inter-latin-Dx4kXJAl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;font-display:swap;src:url(/assets/material-symbols-outlined-Da3SUFWV.woff2)format("woff2")}.material-symbols-outlined{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;direction:ltr;font-family:Material Symbols Outlined;font-size:24px;font-style:normal;font-weight:400;line-height:1;display:inline-block}:root{--color-primary:#b1241a;--color-primary-surface:#b1241a;--color-primary-dim:#d43e30;--color-primary-bright:#e74c3c;--color-on-primary:#fff;--color-primary-on-dark:#ff8a80;--color-froid:#006497;--color-froid-light:#77c2ff;--color-chauffage:#f39c12;--color-chauffage-dim:#a46700;--color-economies:#27ae60;--color-froid-band:#006497;--color-chauffage-band:#a46700;--color-economies-band:#1c8449;--color-bg:#ececec;--color-surface:#fff;--color-nav:#1a1a1a;--color-surface-low:#f6f3f2;--color-surface-high:#eae7e7;--color-text:#1c1b1b;--color-text-muted:#57514f;--color-text-faint:#6e6664;--color-border:#dbd7d6;--color-border-strong:#c9c3c1;--shadow-card:0px 4px 12px #0000000d;--shadow-card-hover:0px 8px 24px #0000001a;--color-badge-ok-bg:#dcfce7;--color-badge-ok-text:#166534;--color-badge-warn-bg:#fef9c3;--color-badge-warn-text:#854d0e;--color-error-bg:#fef2f2;--color-error-border:#fecaca;--color-error-text:#991b1b;--color-eco-pos:#16a34a;--color-eco-pos-bg:#16a34a12;--color-eco-neg-bg:#b1241a12;--color-pill-active-bg:#fef2f2;--color-focus-ring:#b1241a1f;--color-action-ok:#16a34a;--color-action-ok-hover:#15803d;--color-warn-bg:#fff7ed;--color-warn-border:#fed7aa;--color-warn-text:#92400e;--color-row-update-bg:#fffbeb;--color-row-update-hover:#fef3c7;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-xxl:48px;--space-container:24px;--font:"Inter", sans-serif;--font-mono:ui-monospace, "Cascadia Code", "JetBrains Mono", monospace;--text-2xs:11px;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-4xl:36px;--text-5xl:48px;--leading-tight:1.2;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--fw-normal:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--duration-fast:.1s;--duration-base:.15s;--duration-slow:.25s}[data-theme=dark]{--color-bg:#131211;--color-surface:#1f1e1d;--color-surface-low:#191817;--color-surface-high:#2c2a29;--color-text:#eae7e6;--color-text-muted:#a09a98;--color-text-faint:#8d8583;--color-border:#2f2d2c;--color-border-strong:#423f3e;--shadow-card:0px 4px 12px #0006;--shadow-card-hover:0px 8px 24px #0009;--color-primary:#ef5b50;--color-primary-bright:#ff6155;--color-froid:#4aacde;--color-froid-light:#93d4f3;--color-chauffage:#f5a623;--color-economies:#34c974;--color-badge-ok-bg:#34c97426;--color-badge-ok-text:#86efac;--color-badge-warn-bg:#f5a62326;--color-badge-warn-text:#fcd34d;--color-error-bg:#e8433a1f;--color-error-border:#e8433a4d;--color-error-text:#fca5a5;--color-eco-pos:#34c974;--color-eco-pos-bg:#34c9741a;--color-eco-neg-bg:#e8433a1a;--color-pill-active-bg:#e8433a1f;--color-focus-ring:#e8433a33;--color-action-ok:#22c55e;--color-action-ok-hover:#16a34a;--color-warn-bg:#f59e0b1a;--color-warn-border:#f59e0b40;--color-warn-text:#fcd34d;--color-row-update-bg:#f59e0b14;--color-row-update-hover:#f59e0b26}.material-symbols-outlined{font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;vertical-align:middle;-webkit-user-select:none;user-select:none}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font);font-size:var(--text-sm);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:inherit;text-decoration:none}button{font-family:var(--font);cursor:pointer;background:0 0;border:none}:focus{outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}table tbody tr td{transition:background var(--duration-base)}#root{flex-direction:column;min-height:100vh;display:flex}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin-icon{animation:.9s linear infinite spin;display:inline-block}.page-content{padding:var(--space-lg);flex:1;width:100%;max-width:1600px;margin:0 auto}.navbar{background:var(--color-nav);color:#fff;width:100%;height:64px;padding:0 var(--space-lg);z-index:50;flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.navbar-brand{align-items:center;gap:var(--space-sm);color:#fff;flex-shrink:0;text-decoration:none;display:flex}.navbar-logo{object-fit:contain;width:auto;height:36px}.navbar-app-name{font-size:var(--text-sm);letter-spacing:.01em;white-space:nowrap;font-weight:600}.navbar-links{align-items:center;gap:var(--space-xs);display:flex}.navbar-link{color:#ffffffbf;font-size:var(--text-sm);padding:6px var(--space-md);border-radius:var(--radius-full);white-space:nowrap;transition:color .15s,background .15s}.navbar-link:hover{color:#fff;background:#ffffff1a}.navbar-link:focus-visible{color:#fff;background:#ffffff26;outline:none;box-shadow:0 0 0 2px #ffffff80}.navbar-link--active{color:#fff;background:#ffffff1f}.navbar-actions{align-items:center;gap:var(--space-xs);flex-shrink:0;display:flex}.navbar-avatar{border-radius:var(--radius-full);background:var(--color-primary-surface);width:36px;height:36px;color:var(--color-on-primary);font-size:var(--text-xs);letter-spacing:.03em;cursor:pointer;justify-content:center;align-items:center;font-weight:700;transition:filter .15s;display:flex}.navbar-avatar:hover{filter:brightness(1.15)}.navbar-avatar:focus-visible{outline:none;box-shadow:0 0 0 3px #ffffff80}.navbar-avatar[aria-expanded=true]{box-shadow:0 0 0 2px #ffffff8c}@media (width<=768px){.navbar-links,.navbar-app-name{display:none}}.navbar-pastille{border-radius:var(--radius-full);background:var(--color-primary-on-dark);color:#1a1a1a;min-width:18px;height:18px;font-size:var(--text-2xs);justify-content:center;align-items:center;margin-left:6px;padding:0 5px;font-weight:700;line-height:1;display:inline-flex}.app-footer{background:var(--color-nav);padding:14px var(--space-lg);border-top:1px solid #ffffff0f;margin-top:auto}.app-footer-inner{justify-content:center;align-items:center;gap:var(--space-sm);font-family:var(--font);font-size:var(--text-xs);color:#ffffff85;letter-spacing:.01em;flex-wrap:wrap;display:flex}.app-footer-brand{color:#ffffffbd;font-weight:600}.app-footer-sep{color:#ffffff57;font-size:var(--text-2xs)}.app-footer-copy,.app-footer-version{color:#ffffff85}.toaster{bottom:var(--space-xl);right:var(--space-xl);z-index:9999;gap:var(--space-sm);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-family:var(--font);font-size:var(--text-sm);pointer-events:all;min-width:260px;max-width:380px;font-weight:500;animation:.18s ease-out toast-in;display:flex;box-shadow:0 4px 16px #0000001f}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.toast--success{background:var(--color-badge-ok-bg);border:1px solid var(--color-badge-ok-text);color:var(--color-badge-ok-text)}.toast--error{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text)}.toast--info{background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text-muted)}.toast-icon{flex-shrink:0;font-size:17px}.toast-msg{line-height:1.4}
