:root{--nuit: #0c1024;--ardoise: #1c2140;--brume: #ececf3;--violet: #6e4bff;--lime: #cfff45;--surface-0: var(--nuit);--surface-1: var(--ardoise);--surface-2: #272d52;--scene: #0a0e22;--line: #343b66;--ink: var(--brume);--ink-muted: #c9ccde;--brand: var(--violet);--on-brand: #ffffff;--brand-text: #a693ff;--accent: var(--lime);--on-accent: var(--nuit);--success: #4ade9b;--warning: #ffb547;--danger: #ff6b85;--font-sans: "Sora", system-ui, sans-serif;--font-mono: "DM Mono", ui-monospace, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 999px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-ressort: cubic-bezier(.34, 1.56, .64, 1);--dur-1: .12s;--dur-2: .2s;--dur-3: .32s;--dur-4: .6s;--stagger: 30ms}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--surface-0);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit;color:inherit}a{color:var(--brand-text)}:focus-visible{outline:2px solid var(--lime);outline-offset:2px}.mono{font-family:var(--font-mono)}.etiquette{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--ink-muted);text-transform:uppercase}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{display:flex;flex-direction:column;min-height:100vh}.contenu{flex:1;min-width:0;width:100%;max-width:1360px;margin:0 auto;padding:32px 40px 64px;display:flex;flex-direction:column;gap:24px}.entete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px}.entete h1{margin:0;font-size:40px;line-height:44px;font-weight:700;letter-spacing:-.02em}.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.carte{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:12px;min-width:0;transition:transform var(--dur-2) var(--ease-out),border-color var(--dur-2)}@media(hover:hover){.carte:hover{transform:translateY(-2px);border-color:var(--violet)}}.carte-tete{display:flex;justify-content:space-between;align-items:center;gap:12px}.carte-tete h2{margin:0;font-size:16px;font-weight:600}.lien-discret{background:none;border:0;padding:0;color:var(--brand-text);font-size:13px;cursor:pointer}.bouton{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px;border-radius:var(--radius-md);border:1px solid var(--violet);background:var(--violet);color:var(--on-brand);font-weight:600;font-size:14px;cursor:pointer;transition:transform .15s var(--ease-out),filter .2s}.bouton:hover{filter:brightness(1.08)}.bouton:active{transform:scale(.97)}.bouton.secondaire{background:transparent;border-color:var(--line);color:var(--ink)}.tag{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.04em;color:var(--lime);background:var(--surface-2);padding:3px 8px;border-radius:var(--radius-pill);white-space:nowrap}.tag.famille{color:var(--brand-text)}.statut{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;white-space:nowrap}.statut:before{content:"";width:8px;height:8px;border-radius:999px;background:currentColor}.champ{height:44px;padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-2);color:var(--ink);min-width:0;flex:1}.champ::placeholder{color:var(--ink-muted)}textarea.champ{height:auto;padding:12px 14px;resize:vertical;line-height:1.6}.tache{display:flex;align-items:center;gap:12px;min-height:44px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}.tache input[type=checkbox]{width:18px;height:18px;accent-color:var(--violet);margin:0;flex:none;transition:transform var(--dur-1) var(--ease-ressort)}.tache input[type=checkbox]:active{transform:scale(.85)}.tache label{flex:1;font-size:14px;position:relative}.tache.faite label{color:var(--ink-muted)}.tache.faite label:after{content:"";position:absolute;left:0;top:50%;height:1px;width:100%;background:var(--lime);animation:barre-coche var(--dur-3) var(--ease-out) both}.tache-entree{animation:monte var(--dur-3) var(--ease-out) both;animation-delay:calc(var(--stagger) * var(--i, 0))}.tache-supprimer{flex:none;width:28px;height:28px;border-radius:8px;border:0;background:transparent;color:var(--ink-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s,background .15s,color .15s}.tache:hover .tache-supprimer,.tache-supprimer:focus-visible{opacity:1}.tache-supprimer:hover{background:var(--surface-2);color:var(--danger)}.vide{color:var(--ink-muted);font-size:14px;padding:12px 0}.cocon{position:relative;height:600px;border-radius:24px;background:var(--scene);border:1px solid var(--line);overflow:hidden}.cocon-scene{position:absolute;inset:40px 24px 64px}.cocon-scene svg{width:100%;height:100%}.cocon-hg{position:absolute;left:24px;top:24px;display:flex;flex-direction:column;gap:12px}.cocon-hd{position:absolute;right:24px;top:24px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.cocon-bg{position:absolute;left:24px;bottom:24px;display:flex;flex-wrap:wrap;gap:16px}.puce{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--radius-pill);background:#0c1024d9;border:1px solid var(--line);font-size:13px;white-space:nowrap}.segment{display:flex;gap:4px;padding:4px;border-radius:var(--radius-md);background:#0c1024d9;border:1px solid var(--line)}.segment button{height:38px;padding:0 14px;border-radius:9px;border:0;background:transparent;color:var(--ink-muted);font-size:13px;font-weight:600;cursor:pointer;transition:background .25s var(--ease-out),color .25s}.segment button[aria-pressed=true]{background:var(--violet);color:var(--on-brand)}.etage{animation:etage var(--dur-4) var(--ease-out) both}.lueur{animation:lueur 3.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.alerte{animation:alerte 1.8s ease-out infinite;transform-box:fill-box;transform-origin:center}.goutte{animation:tombe-pluie .6s linear infinite;transform-box:fill-box;transform-origin:center}.flocon{animation:tombe-neige 3.4s linear infinite;transform-box:fill-box;transform-origin:center}.dossiers{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.dossiers-liste{flex:1 1 346px;max-width:400px;display:flex;flex-direction:column;gap:4px}.dossier-ligne{display:flex;align-items:center;gap:2px}.dossier-ligne .nav-lien{flex:1;min-width:0}.dossier-action{flex:none;width:28px;height:28px;border-radius:8px;border:0;background:transparent;color:var(--ink-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s,background .15s,color .15s}.dossier-ligne:hover .dossier-action,.dossier-action:focus-visible{opacity:1}.dossier-action:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.dossier-action:disabled{cursor:not-allowed}.dossier-renommage{padding:0 2px}.notes-liste{flex:1 1 280px;max-width:340px;display:flex;flex-direction:column;gap:8px}.note-carte{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:var(--radius-md);text-align:left;border:1px solid transparent;background:transparent;cursor:pointer}.note-carte[aria-current=true]{background:var(--surface-1);border-color:var(--line)}.note-carte strong{font-size:15px;font-weight:600}.note-carte span{font-size:13px;color:var(--ink-muted)}.editeur{flex:999 1 420px;min-width:0;display:flex;flex-direction:column;gap:16px}.editeur-tete{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.editeur input.titre,.editeur h2.titre{font-size:32px;font-weight:700;letter-spacing:-.02em;background:transparent;border:0;padding:0;outline:none}.lien-discret{display:inline-flex;align-items:center;gap:6px}.lien-discret.danger{color:var(--danger)}.md{display:flex;flex-direction:column;gap:10px;margin-top:12px}.md h2{font-size:22px;margin:8px 0 0}.md h3{font-size:18px;margin:6px 0 0}.md h4{font-size:15px;margin:4px 0 0}.md p{margin:0;line-height:1.6}.md ul{margin:0;padding-left:4px;list-style:none;display:flex;flex-direction:column;gap:6px}.md ul li{display:flex;align-items:flex-start;gap:8px;line-height:1.5}.md ul li:before{content:"—";color:var(--ink-muted);flex:none}.md li.md-case:before{content:none}.md li.md-case{align-items:center}.md li.md-case input[type=checkbox]{width:16px;height:16px;accent-color:var(--violet);flex:none}.ouverture{position:fixed;inset:0;z-index:50;background:var(--nuit);display:flex;align-items:center;justify-content:center;animation:ouverture-sortie .5s var(--ease-out) 1.25s both}.ouverture .bande{transform-box:fill-box;animation:bande .7s var(--ease-out) both}.ouverture .barre{transform-box:fill-box;transform-origin:right center;animation:barre .45s var(--ease-out) .75s both}.ouverture .mot{animation:mot .6s var(--ease-out) .7s both}.squelette{border-radius:var(--radius-sm);min-height:14px;background:repeating-linear-gradient(0deg,var(--surface-2) 0 6px,transparent 6px 12px);animation:defile 1.2s linear infinite;opacity:.7}.vue{animation:monte .45s var(--ease-out) both}@keyframes bande{0%{transform:translate(-110%);opacity:0}to{transform:none;opacity:1}}@keyframes barre{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes mot{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ouverture-sortie{to{opacity:0;visibility:hidden}}@keyframes monte{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes etage{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}@keyframes lueur{0%,to{opacity:.85}50%{opacity:1;transform:scale(1.06)}}@keyframes alerte{0%{opacity:.6;transform:scale(.8)}to{opacity:0;transform:scale(1.6)}}@keyframes defile{to{background-position:0 12px}}@keyframes barre-coche{0%{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}@keyframes tombe-pluie{0%{transform:translateY(-20px);opacity:0}15%{opacity:1}to{transform:translateY(480px);opacity:0}}@keyframes tombe-neige{0%{transform:translateY(-20px);opacity:0}15%{opacity:.9}to{transform:translate(14px,480px);opacity:0}}.feuille-fond{position:fixed;inset:0;background:#05071499;z-index:50;display:flex;align-items:flex-end}.feuille{width:100%;background:var(--surface-1);border-radius:20px 20px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:2px}.feuille-poignee{width:36px;height:4px;border-radius:var(--radius-pill);background:var(--line);margin:6px auto 14px}.feuille-action{display:flex;align-items:center;gap:14px;min-height:48px;padding:0 10px;border:0;background:transparent;color:var(--ink);text-align:left;border-radius:10px;font-size:15px}.feuille-action:active{background:var(--surface-2)}@media(max-width:860px){.contenu{padding:20px 16px calc(96px + env(safe-area-inset-bottom))}.cocon{height:420px}.cocon-hd .puce:not(:first-child){display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.connexion{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px}.connexion h1{margin:0;font-size:40px;letter-spacing:.02em}.connexion p{margin:0;color:var(--ink-muted)}.synchro{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px}.synchro:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor}.synchro.a-jour{color:var(--success)}.synchro.hors-ligne{color:var(--warning)}.connexion-google{min-height:44px;display:flex;justify-content:center}.connexion-lien{margin-top:24px;font-family:var(--font-mono, "DM Mono", monospace);font-size:12px;color:var(--ink-muted);text-decoration:none}.connexion-lien:hover{color:var(--ink)}.meteo-carte{display:flex;flex-direction:column;gap:14px}.meteo-actuel{display:flex;align-items:center;gap:14px}.meteo-temp{font-family:var(--font-mono);font-size:34px;font-weight:500;line-height:1}.meteo-courbe{display:flex;align-items:flex-end;gap:8px;height:56px}.meteo-barre{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;flex:1;height:100%;animation:monte var(--dur-3) var(--ease-out) both}.meteo-barre-valeur{display:block;width:6px;border-radius:3px;background:var(--brand-text)}.meteo-barre-heure{font-size:10px;color:var(--ink-muted)}.meteo-bas{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.note-recente{display:flex;justify-content:space-between;gap:12px;min-height:44px;align-items:center;border-bottom:1px solid var(--line);animation:monte var(--dur-3) var(--ease-out) both}.corbeille{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:40;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{display:flex;align-items:center;gap:16px;padding:10px 10px 10px 16px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--line);box-shadow:0 12px 32px #00000059;font-size:13px;animation:toast-entree .3s var(--ease-out) both}.toast-annuler{height:32px;padding:0 14px;border-radius:var(--radius-pill);border:0;background:var(--lime);color:var(--on-accent);font-weight:600;font-size:12.5px;cursor:pointer;transition:filter .15s}.toast-annuler:hover{filter:brightness(.95)}@keyframes toast-entree{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.perime{font-family:var(--font-mono);font-size:12px;color:var(--warning)}.appareil-ligne{display:flex;flex-direction:column;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.appareil-ligne:first-of-type{border-top:0}.appareil-tete{display:flex;align-items:center;gap:12px;min-height:44px}.appareil-icone{width:36px;height:36px;border-radius:var(--radius-md);background:var(--surface-2);display:flex;align-items:center;justify-content:center;flex:none}.appareil-ligne[data-etat=allume] .appareil-icone{color:var(--lime)}.appareil-ligne[data-etat=indisponible] .appareil-icone{color:var(--danger)}.appareil-texte{display:flex;flex-direction:column;min-width:0;flex:1}.appareil-nom{font-size:14px;overflow:hidden;text-overflow:ellipsis}.appareil-etat{font-size:12px;color:var(--ink-muted)}.appareil-reglage{display:flex;flex-direction:column;gap:6px;padding-left:48px}.appareil-reglage input[type=range]{width:100%;accent-color:var(--violet);min-height:28px}.appareil-couleur{width:56px;height:36px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent}.interrupteur{position:relative;flex:none;width:52px;height:44px;border:0;background:transparent;padding:0;cursor:pointer}.interrupteur:before{content:"";position:absolute;left:0;top:10px;width:52px;height:24px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--line);transition:background var(--dur-2) var(--ease-out)}.interrupteur[aria-checked=true]:before{background:var(--violet);border-color:var(--violet)}.interrupteur-bille{position:absolute;left:4px;top:14px;width:16px;height:16px;border-radius:50%;background:var(--brume);transition:transform var(--dur-2) var(--ease-ressort)}.interrupteur[aria-checked=true] .interrupteur-bille{transform:translate(28px);background:#fff}.interrupteur:disabled{opacity:.4;cursor:default}.interrupteur:focus-visible{outline:2px solid var(--lime);outline-offset:2px;border-radius:var(--radius-sm)}.services{display:flex;flex-direction:column}.service-ligne{display:flex;align-items:center;gap:12px;min-height:48px;border-top:1px solid var(--line)}.service-ligne:first-child{border-top:0}.service-point{width:10px;height:10px;border-radius:50%;flex:none}.service-mot{font-size:12px}.scenes{display:flex;flex-wrap:wrap;gap:10px}.scenes .bouton{gap:8px}.cameras{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.cameras .appareil-ligne{border-top:0}.connexion-maison{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.connexion-maison .champ{flex:1 1 220px;min-width:0}.camera-image{position:relative;aspect-ratio:16 / 9;background:var(--scene);border-radius:var(--radius-md);overflow:hidden;display:flex;align-items:center;justify-content:center}.camera-image img{width:100%;height:100%;object-fit:cover}.camera-vide{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--ink-muted);font-size:13px;text-align:center;padding:12px}.camera-rafraichir{position:absolute;right:8px;bottom:8px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--nuit);color:var(--ink);display:flex;align-items:center;justify-content:center}.feuille-maison{max-width:560px;margin:0 auto;max-height:85vh;overflow-y:auto}.avis-maison{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:60;background:var(--surface-1);border:1px solid var(--danger);color:var(--ink);padding:10px 16px;border-radius:var(--radius-pill);font-size:14px}.piece-zone{cursor:pointer;transition:fill var(--dur-2) var(--ease-out)}.piece-zone:hover{fill:#2d3566}.piece-zone:focus-visible,.appareil:focus-visible{outline:none;stroke:var(--lime);stroke-width:2.4}.appareil{cursor:pointer}.sonnette{transform-box:fill-box;transform-origin:center;animation:sonnette 1.2s var(--ease-out) infinite}.scintille{animation:scintille 1.6s ease-in-out infinite}@keyframes sonnette{0%{transform:scale(.8);opacity:.9}to{transform:scale(1.8);opacity:0}}@keyframes scintille{0%,to{opacity:.2}50%{opacity:1}}.kpis{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}.kpi{display:flex;flex-direction:column;gap:8px;min-width:0}.kpi-valeur{margin:0;font-size:24px;line-height:32px;font-weight:700;overflow-wrap:anywhere}.kpi-note{font-size:12px;color:var(--ink-muted)}.paiement{display:flex;flex-direction:column;gap:8px}.choix-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choix{min-height:48px;padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font-size:14px;text-align:left;cursor:pointer}.choix[aria-pressed=true]{background:var(--violet);border-color:var(--violet);color:var(--on-brand)}.choix:disabled{opacity:.45;cursor:not-allowed}.journal-ligne{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.tache-supprimer.arme,.lien-discret.arme{width:auto;padding:0 10px;font-size:12px;color:var(--danger)}.epi-ajout{display:flex;gap:8px}.epi-ajout .champ{height:52px;font-size:16px}.epi-ajout .bouton{height:52px;flex:none}.epi-ligne{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line)}.epi-corps{flex:1;display:flex;align-items:center;gap:14px;min-height:52px;cursor:pointer;font-size:16px;min-width:0}.epi-corps input[type=checkbox]{width:22px;height:22px;accent-color:var(--violet);margin:0;flex:none}.epi-ligne.coche .epi-corps{color:var(--ink-muted);text-decoration:line-through}.menu-cadre{overflow-x:auto}.menu-tableau{display:grid;grid-template-columns:repeat(7,minmax(112px,1fr));gap:6px;min-width:784px}.menu-entete{padding:4px 2px}.menu-entete.aujourdhui{color:var(--brand-text)}textarea.menu-case{height:96px;resize:none;padding:8px 10px;font-size:13px;line-height:1.4}@media(max-width:860px){.kpis{grid-template-columns:1fr}}.tache-deplacer{flex:0 0 auto;max-width:110px;padding:2px 4px;border:0;border-radius:var(--radius-sm, 6px);background:transparent;color:var(--ink-muted);font:inherit;font-size:12px;cursor:pointer}.tache-deplacer:hover,.tache-deplacer:focus-visible{color:var(--ink);background:var(--surface-2, rgba(255, 255, 255, .06))}.sous-nav{align-self:flex-start;margin-bottom:16px;flex-wrap:wrap}.entete-site{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;padding:0 40px;min-height:64px;background:var(--surface-0);border-bottom:1px solid var(--line)}.entete-site-marque{flex:none}.onglets{display:flex;align-items:stretch;gap:2px;flex:1;min-width:0;align-self:stretch;overflow-x:auto;scrollbar-width:none}.onglets::-webkit-scrollbar{display:none}.onglet-groupe{display:flex;align-items:stretch;flex:none}.onglet-separateur{align-self:center;width:1px;height:22px;margin:0 10px;background:var(--line)}.onglet{position:relative;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:0;background:transparent;color:var(--ink-muted);font-size:14px;white-space:nowrap;cursor:pointer;transition:color var(--dur-2) var(--ease-out)}.onglet:hover,.onglet[aria-current=page]{color:var(--ink)}.onglet[aria-current=page]:after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:2px;background:var(--violet);border-radius:2px}.onglet-code{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted)}.compte{position:relative;flex:none}.compte-bouton{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink);font-size:14px;cursor:pointer}.compte-bouton:hover{background:var(--surface-1)}.synchro-point{width:8px;height:8px;border-radius:999px;background:var(--ink-muted)}.synchro-point.a-jour{background:var(--success)}.synchro-point.hors-ligne{background:var(--warning)}.compte-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-md);z-index:30}.compte-lien{min-height:40px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left;font-size:14px;cursor:pointer}.compte-lien:hover{background:var(--surface-2)}@keyframes glisse-sort-gauche{to{transform:translate(-36px);opacity:0}}@keyframes glisse-entre-droite{0%{transform:translate(36px);opacity:0}}@keyframes glisse-sort-droite{to{transform:translate(36px);opacity:0}}@keyframes glisse-entre-gauche{0%{transform:translate(-36px);opacity:0}}html[data-sens=droite]::view-transition-old(root){animation:glisse-sort-gauche var(--dur-3) var(--ease-out) both}html[data-sens=droite]::view-transition-new(root){animation:glisse-entre-droite var(--dur-3) var(--ease-out) both}html[data-sens=gauche]::view-transition-old(root){animation:glisse-sort-droite var(--dur-3) var(--ease-out) both}html[data-sens=gauche]::view-transition-new(root){animation:glisse-entre-gauche var(--dur-3) var(--ease-out) both}.ajout-rapide{display:none}@media(max-width:860px){.entete-site{flex-wrap:wrap;gap:0 8px;padding:0 12px;min-height:0}.entete-site-marque{order:1;padding:10px 4px;flex:1}.compte{order:2}.onglets{order:3;flex:0 0 100%;margin:0 -12px;padding:0 8px;border-top:1px solid var(--line)}.onglet{min-height:48px;padding:0 12px}.onglet-code{display:none}.ajout-rapide{display:flex;align-items:center;justify-content:center;position:fixed;z-index:30;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));width:56px;height:56px;border:0;border-radius:var(--radius-pill);background:var(--violet);color:var(--on-brand)}}@media(min-width:861px)and (max-width:1100px){.onglet-code{display:none}}.nav-lien{display:flex;align-items:center;gap:12px;min-height:40px;padding:0 12px;border-radius:10px;border:0;background:transparent;color:var(--ink-muted);text-align:left;cursor:pointer;font-size:14px;transition:background .2s var(--ease-out),color .2s var(--ease-out)}.nav-lien:hover,.nav-lien[aria-current=page]{background:var(--surface-1);color:var(--ink)}.nav-lien>span:last-of-type{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.barre-mobile-bouton{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:transparent;color:var(--ink);border-radius:10px}@media(max-width:860px){.nav-lien{min-height:48px}}.compte-etat{font-family:var(--font-mono);font-size:11px;color:var(--warning)}.parametres{max-width:860px}.reglages-carte{display:flex;flex-direction:column;gap:16px}.reglage-ligne{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.reglage-ligne .champ{flex:1;min-width:140px}.reglage-actions{display:flex;gap:4px}.reglage-actions button:disabled{opacity:.35}.reglage-titre{margin:8px 0 0;font-size:14px;font-weight:600}.note-reglage{margin:0;font-size:13px;color:var(--ink-muted);line-height:1.5}.liste-ordonnee{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.liste-ordonnee>li{border-top:1px solid var(--line)}.liste-ordonnee>li:first-child{border-top:0}html[data-animations=reduites] *,html[data-animations=reduites] *:before,html[data-animations=reduites] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}@media(max-width:860px){.reglage-ligne{flex-wrap:wrap}}.appareils-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}.appareil-tuile{padding:6px 10px 8px;gap:4px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-0)}.appareil-tuile:first-of-type{border-top:1px solid var(--line)}.appareil-tuile .appareil-tete{min-height:40px;gap:10px}.appareil-tuile .appareil-icone{width:30px;height:30px}.appareil-tuile .appareil-nom{font-size:13px;white-space:nowrap}.appareil-tuile .appareil-reglage{padding-left:0}.appareil-tuile[data-etat=allume]{border-color:var(--violet)}.pastille-ha{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-pill);background:transparent;color:var(--ink-muted);font-family:var(--font-mono);font-size:12px;cursor:pointer}.pastille-ha:hover{color:var(--ink);background:var(--surface-1)}.pastille-ha-point{width:8px;height:8px;border-radius:50%;background:var(--success)}.pastille-ha-point[data-probleme]{background:var(--warning)}.en-cours{display:flex;flex-direction:column;gap:6px;border-style:dashed}.en-cours p{margin:0;color:var(--ink-muted);font-size:14px}.en-cours .etiquette{color:var(--brand-text)}.maison3d{position:relative;height:560px;border-radius:var(--radius-lg);overflow:hidden;background:var(--scene);border:1px solid var(--line);touch-action:none}.maison3d .cocon-scene{inset:0}.maison3d-scene{position:absolute;inset:0}.maison3d-scene canvas{display:block;width:100%;height:100%;cursor:grab}.maison3d-scene canvas:active{cursor:grabbing}.maison3d-etiquettes{position:absolute;inset:0;pointer-events:none}.maison3d-attente{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink-muted);font-size:13px}.maison3d-aide{position:absolute;left:24px;bottom:20px;font-size:12px;color:var(--ink-muted);pointer-events:none}.etiquette3d{font-family:var(--font-mono);font-size:12px;color:var(--brume);background:#0c1024d9;border:1px solid var(--line);border-radius:var(--radius-pill);padding:4px 10px;white-space:nowrap;pointer-events:none}.etiquette3d.choisie{border-color:var(--lime)}.maison3d-etiquettes .etiquette3d{transition:opacity var(--dur-2) var(--ease-out)}.maison3d-etiquettes.loin .etiquette3d:not(.cle):not(.discrete):not(.alerte):not(.choisie){opacity:0}.etiquette3d.camera{border-color:var(--success)}.etiquette3d.alerte{border-color:var(--danger)}.etiquette3d.discrete{background:transparent;border-color:transparent;color:var(--ink-muted)}@media(max-width:860px){.maison3d{height:460px;margin:0 -16px;border-radius:0;border-left:0;border-right:0}.maison3d .cocon-hg{left:16px;top:16px}.maison3d .cocon-hd{right:16px;top:auto;bottom:16px}.maison3d-aide{display:none}.etiquette3d{font-size:11px;padding:3px 8px}}
