@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;--ease-standard:cubic-bezier(.4, 0, .2, 1);--ease-sortie:cubic-bezier(.16, 1, .3, 1);--z-barre:50;--z-panneau:60;--z-modale:200;--z-infobulle:300;--z-toast:1000;--border-width:1px;--focus-ring-width:2px;--largeur-contenu:1280px;--largeur-texte:68ch}[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}.ui-chiffres,.ui-table td,.ui-badge{font-variant-numeric:tabular-nums}.ui-btn{justify-content:center;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);border:var(--border-width) solid transparent;border-radius:var(--radius-sm);font-family:var(--font);font-size:var(--text-xs);font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;line-height:var(--leading-tight);white-space:nowrap;cursor:pointer;transition:background var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard), color var(--duration-base) var(--ease-standard), filter var(--duration-base) var(--ease-standard);display:inline-flex}.ui-btn .material-symbols-outlined{font-size:18px}.ui-btn--sm{padding:var(--space-2xs) var(--space-sm)}.ui-btn--sm .material-symbols-outlined{font-size:16px}.ui-btn--plein{width:100%}.ui-btn:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.ui-btn--primaire{background:var(--color-primary-surface);color:var(--color-on-primary);box-shadow:0 1px 4px #0000001f}.ui-btn--primaire:hover:not(:disabled){filter:brightness(1.1)}.ui-btn--secondaire{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.ui-btn--secondaire:hover:not(:disabled){background:var(--color-surface-low)}.ui-btn--discret{color:var(--color-text-muted);background:0 0}.ui-btn--discret:hover:not(:disabled){background:var(--color-surface-high);color:var(--color-text)}.ui-btn--danger{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-error-border)}.ui-btn--danger:hover:not(:disabled){background:var(--color-error-bg)}.ui-btn--succes{background:var(--color-economies-band);color:#fff}.ui-btn--succes:hover:not(:disabled){filter:brightness(.92)}.ui-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.ui-btn[aria-busy=true]{opacity:.8;cursor:progress}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ui-pile{gap:var(--space-md);flex-direction:column;display:flex}.ui-groupe{border:0;min-width:0;margin:0;padding:0}.ui-groupe>legend{margin-bottom:6px;padding:0}.ui-champ{flex-direction:column;gap:6px;display:flex}.ui-champ-label{font-size:var(--text-xs);font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-faint)}.ui-champ-requis{color:var(--color-primary);margin-left:2px}.ui-input{width:100%;font-family:var(--font);font-size:var(--text-sm);color:var(--color-text);background:var(--color-surface);border:var(--border-width) solid var(--color-border-strong);border-radius:var(--radius-sm);padding:10px var(--space-md);transition:border-color var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard)}.ui-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.ui-input:disabled{background:var(--color-surface-low);color:var(--color-text-faint);cursor:not-allowed}.ui-input[aria-invalid=true]{border-color:var(--color-error-text)}textarea.ui-input{resize:vertical;min-height:80px;line-height:var(--leading-normal)}select.ui-input{cursor:pointer}.ui-champ-controle{position:relative}.ui-input--suffixe{padding-right:44px}.ui-champ-suffixe{display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.ui-champ-suffixe button{border-radius:var(--radius-sm);color:var(--color-text-faint);transition:color var(--duration-base) var(--ease-standard);padding:4px;display:flex}.ui-champ-suffixe button:hover{color:var(--color-text)}.ui-champ-suffixe .material-symbols-outlined{font-size:20px}.ui-champ-aide,.ui-champ-erreur{font-size:var(--text-xs);line-height:var(--leading-snug)}.ui-champ-aide{color:var(--color-text-muted)}.ui-champ-erreur{color:var(--color-error-text);font-weight:var(--fw-medium)}.ui-modale-voile{z-index:var(--z-modale);padding:var(--space-lg);animation:ui-fondu var(--duration-slow) var(--ease-sortie);background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ui-modale{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:480px;max-height:90vh;box-shadow:var(--shadow-card-hover);animation:ui-entree var(--duration-slow) var(--ease-sortie);flex-direction:column;display:flex}.ui-modale:focus{outline:none}.ui-modale--sm{max-width:400px}.ui-modale--lg{max-width:720px}.ui-modale-entete{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-lg);border-bottom:var(--border-width) solid var(--color-surface-high);display:flex}.ui-modale-titres{min-width:0}.ui-modale-titre{font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--color-text)}.ui-modale-sous-titre{font-size:var(--text-sm);color:var(--color-text-muted);overflow-wrap:anywhere;margin-top:2px}.ui-modale-fermer{border-radius:var(--radius-full);width:32px;height:32px;color:var(--color-text-faint);transition:background var(--duration-base), color var(--duration-base);flex-shrink:0;justify-content:center;align-items:center;display:flex}.ui-modale-fermer:hover{background:var(--color-surface-high);color:var(--color-text)}.ui-modale-corps{padding:var(--space-lg);flex:1;overflow-y:auto}.ui-modale-actions{justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:var(--border-width) solid var(--color-surface-high);flex-wrap:wrap;display:flex}.ui-tiroir-voile{z-index:var(--z-panneau);animation:ui-fondu var(--duration-slow) var(--ease-sortie);background:#00000059;justify-content:flex-end;display:flex;position:fixed;inset:0}.ui-tiroir{background:var(--color-surface);border-left:var(--border-width) solid var(--color-border);width:min(460px,100%);height:100%;box-shadow:var(--shadow-card-hover);animation:ui-glisse var(--duration-slow) var(--ease-sortie);flex-direction:column;display:flex}.ui-tiroir:focus{outline:none}.ui-tiroir-entete{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:var(--border-width) solid var(--color-border);display:flex}.ui-tiroir-corps{flex:1;overflow-y:auto}.ui-tiroir-actions{justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:var(--border-width) solid var(--color-border);flex-wrap:wrap;display:flex}@keyframes ui-glisse{0%{opacity:0;transform:translate(24px)}}@keyframes ui-fondu{0%{opacity:0}}@keyframes ui-entree{0%{opacity:0;transform:translateY(8px)scale(.98)}}.ui-etat{justify-content:center;align-items:center;gap:var(--space-sm);min-height:320px;padding:var(--space-xl);text-align:center;color:var(--color-text-muted);flex-direction:column;display:flex}.ui-etat--compact{min-height:0;padding:var(--space-lg)}.ui-etat-icone{color:var(--color-border-strong);font-size:40px}.ui-etat--compact .ui-etat-icone{font-size:28px}.ui-etat--erreur .ui-etat-icone{color:var(--color-primary)}.ui-etat-titre{font-size:var(--text-md);font-weight:var(--fw-semibold);color:var(--color-text)}.ui-etat-description{max-width:var(--largeur-texte);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.ui-etat-action{margin-top:var(--space-xs)}.ui-alerte{align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:var(--border-width) solid var(--color-border);border-left:3px solid var(--color-text-faint);border-radius:var(--radius-md);background:var(--color-surface-low);font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-text);display:flex}.ui-alerte-icone{flex-shrink:0;font-size:20px}.ui-alerte-texte{min-width:0;padding-top:1px}.ui-alerte--erreur{background:var(--color-error-bg);border-color:var(--color-error-border);border-left-color:var(--color-primary)}.ui-alerte--erreur .ui-alerte-icone{color:var(--color-primary)}.ui-alerte--attention{background:var(--color-warn-bg);border-color:var(--color-warn-border);border-left-color:var(--color-warn-text)}.ui-alerte--attention .ui-alerte-icone{color:var(--color-warn-text)}.ui-alerte--info{border-left-color:var(--color-froid)}.ui-alerte--info .ui-alerte-icone{color:var(--color-froid)}.ui-squelette{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-surface-low) 25%, var(--color-surface-high) 50%, var(--color-surface-low) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite ui-reflet;display:block}.ui-squelette-lignes{gap:var(--space-xs);flex-direction:column;display:flex}.ui-squelette-lignes>.ui-squelette{height:.9em}.ui-squelette-lignes>.ui-squelette:last-child:not(:first-child){width:60%}@keyframes ui-reflet{0%{background-position:200% 0}to{background-position:-200% 0}}.ui-badge{padding:3px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.ui-badge .material-symbols-outlined{font-size:14px}.ui-badge--ok{background:var(--color-badge-ok-bg);color:var(--color-badge-ok-text)}.ui-badge--attention{background:var(--color-badge-warn-bg);color:var(--color-badge-warn-text)}.ui-badge--danger{background:var(--color-error-bg);color:var(--color-error-text)}.ui-badge--neutre{background:var(--color-surface-high);color:var(--color-text-muted)}.ui-badge--info{background:color-mix(in srgb, var(--color-froid) 14%, transparent);color:var(--color-froid)}.ui-carte{background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.ui-carte-entete{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:var(--border-width) solid var(--color-surface-high);flex-wrap:wrap;display:flex}.ui-carte-titre{align-items:center;gap:var(--space-xs);font-size:var(--text-lg);font-weight:var(--fw-semibold);color:var(--color-text);display:flex}.ui-carte-actions{align-items:center;gap:var(--space-xs);display:flex}.ui-carte-corps{padding:var(--space-lg)}.ui-carte--dense .ui-carte-corps{padding:var(--space-md)}.ui-table{border-collapse:collapse;width:100%}.ui-table th{padding:var(--space-xs) var(--space-md);background:var(--color-surface-low);border-bottom:var(--border-width) solid var(--color-border);font-size:var(--text-xs);font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-faint);text-align:left;white-space:nowrap}.ui-table td{padding:var(--space-xs) var(--space-md);border-top:var(--border-width) solid var(--color-surface-high);font-size:var(--text-sm);color:var(--color-text)}.ui-table tbody tr:hover td{background:var(--color-surface-low)}.ui-table th.ui-droite,.ui-table td.ui-droite{text-align:right}*,: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}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.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}
