html,body{margin:0;min-height:100%;background:#b8c3b4}

/* Sauvegardes : résumé accessible, sans modifier les trois accès aux réglages. */
#alvidomo-app .app-backup-badge{display:inline-flex;align-items:center;gap:7px;margin:0;padding:8px;border:0;border-radius:8px;background:transparent;font-size:11px;line-height:1.4;color:#dfebd6;max-width:170px;text-align:left}
#alvidomo-app .app-backup-badge:hover{background:#ffffff12}

#alvidomo-app .app-backup-dot{display:inline-block;width:16px;height:16px;flex:none;border-radius:50%;background:#a4ada6;border:1px solid #e5ece2}
#alvidomo-app .app-backup-dot.is-ok{background:#73d181}
#alvidomo-app .app-backup-dot.is-warning{background:#f0bd63}
#alvidomo-app .app-backup-dot.is-error{background:#ed7970}
#alvidomo-app .app-backup-card{margin:22px auto 0;padding:22px;max-width:900px;background:#d0dbc6;border:1px solid #99ac91;border-radius:12px;color:#173c34}
#alvidomo-app .app-backup-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
#alvidomo-app .app-backup-heading h2{font-size:18px;margin:0;letter-spacing:0}
#alvidomo-app .app-backup-status{display:inline-flex;align-items:center;gap:7px;font-size:12px}
#alvidomo-app .app-backup-card p{font-size:13px;line-height:1.6;margin:12px 0 18px}
#alvidomo-app .app-backup-card dl{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 18px}
#alvidomo-app .app-backup-card dt{font-size:11px;color:#52694e;margin-bottom:5px}
#alvidomo-app .app-backup-card dd{font-size:14px;margin:0;font-weight:500}
#alvidomo-app .app-backup-card small{font-size:11px;line-height:1.5;color:#52694e}
@media(max-width:540px){#alvidomo-app .app-backup-card{padding:18px}#alvidomo-app .app-backup-card dl{grid-template-columns:1fr}}

#alvidomo-app{--amp-bg:light-dark(#f5f6f9,#141922);--amp-surface:light-dark(#ffffff,#202734);--amp-text:light-dark(#26334a,#ebf0fa);--amp-muted:light-dark(#63728b,#aebbd0);--amp-border:light-dark(#e1e6ed,#374355);--amp-accent:light-dark(#345ccb,#a5bbff);--amp-soft:light-dark(#edf2fc,#2d3b5b);--amp-radius:14px;font-family:"Segoe UI",system-ui,sans-serif;color:var(--amp-text);color-scheme:light dark}
#alvidomo-app *{box-sizing:border-box}
#alvidomo-app [hidden]{display:none!important}
#alvidomo-app button{font:inherit}
#alvidomo-app svg{width:20px;height:20px;stroke-width:1.7;flex:none}
#alvidomo-app .amp-shell{background:var(--amp-bg);border-radius:16px;overflow:hidden}
#alvidomo-app .amp-header{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:22px 27px;background:var(--amp-surface);border-bottom:1px solid var(--amp-border);min-height:83px}
#alvidomo-app .amp-brand{font-size:25px;font-weight:500;letter-spacing:-1px;display:flex;align-items:center}
#alvidomo-app .amp-brand>span:last-child{font-weight:400}
#alvidomo-app .amp-logo{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--amp-text);color:var(--amp-surface);font-size:29px;letter-spacing:-3px;padding-right:4px;margin-right:10px}
#alvidomo-app .amp-preview{font-size:11px;color:var(--amp-muted);margin-right:75px}
#alvidomo-app .amp-layout{display:grid;grid-template-columns:205px minmax(0,1fr);min-height:630px}
#alvidomo-app .amp-sidebar{background:var(--amp-surface);border-right:1px solid var(--amp-border);padding:28px 16px;display:flex;flex-direction:column;gap:9px}
#alvidomo-app .amp-caption{font-size:11px;letter-spacing:1.5px;color:var(--amp-muted);display:block;line-height:1.5}
#alvidomo-app .amp-sidebar>.amp-caption{padding:0 11px;margin-bottom:3px}
#alvidomo-app .amp-spaced{margin-top:30px}
#alvidomo-app .amp-nav{border:0;background:transparent;color:var(--amp-muted);padding:12px 11px;text-align:left;font-size:13px;display:flex;align-items:center;gap:10px;border-radius:9px;min-height:46px}
#alvidomo-app .amp-nav.active{background:var(--amp-soft);color:var(--amp-accent)}
#alvidomo-app .amp-nav:hover{background:var(--amp-soft)}
#alvidomo-app .amp-side-note{margin-top:auto;padding:40px 11px 0;color:var(--amp-muted);font-size:11px;line-height:1.8}
#alvidomo-app .amp-main{padding:30px;min-width:0;display:flex;flex-direction:column}
#alvidomo-app .amp-heading{margin-bottom:27px}
#alvidomo-app h2{font-size:29px;line-height:1.2;letter-spacing:-.7px;font-weight:500;margin:10px 0;color:var(--amp-text)}
#alvidomo-app .amp-heading p{color:var(--amp-muted);font-size:14px;line-height:1.6;margin:0}
#alvidomo-app .amp-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
#alvidomo-app .amp-room-choice{display:flex;gap:13px;align-items:center;text-align:left;padding:18px;background:var(--amp-surface);color:var(--amp-text);border:1px solid var(--amp-border);border-radius:var(--amp-radius);min-height:102px;min-width:0}
#alvidomo-app .amp-room-choice:hover{border-color:var(--amp-accent);background:var(--amp-soft)}
#alvidomo-app .amp-room-symbol{padding:11px;border-radius:11px;background:var(--amp-soft);color:var(--amp-accent);display:flex;flex:none}
#alvidomo-app .amp-room-choice strong{display:block;font-weight:500;font-size:15px;line-height:1.4}
#alvidomo-app .amp-room-choice small{display:block;color:var(--amp-muted);font-size:12px;margin-top:6px}
#alvidomo-app .amp-room-chevron{margin-left:auto;color:var(--amp-muted);width:16px;height:16px}
#alvidomo-app .amp-footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--amp-muted);line-height:1.6;margin-top:auto;padding-top:30px}
#alvidomo-app .amp-back{background:transparent;color:var(--amp-accent);border:0;display:flex;gap:7px;align-items:center;padding:0 0 22px;font-size:12px;min-height:36px}
#alvidomo-app .amp-back svg{width:16px;height:16px}
#alvidomo-app .amp-room-tabs{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--amp-border);margin-bottom:20px;padding-bottom:12px;font-size:12px}
#alvidomo-app .amp-selected-tab{color:var(--amp-accent);font-weight:500}
#alvidomo-app .amp-device-count{color:var(--amp-muted);font-size:11px}
#alvidomo-app .amp-equipment{background:var(--amp-surface);border:1px solid var(--amp-border);border-radius:var(--amp-radius);padding:22px}
#alvidomo-app .amp-equipment-heading{display:flex;align-items:center;gap:11px}
#alvidomo-app h3{font-size:17px;font-weight:500;color:var(--amp-text);margin:0;line-height:1.5}
#alvidomo-app .amp-equipment-heading small{font-size:12px;color:var(--amp-muted)}
#alvidomo-app .amp-position{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:24px 0 19px}
#alvidomo-app .amp-position strong{font-size:44px;line-height:1;font-weight:400;letter-spacing:-1.8px;font-variant-numeric:tabular-nums}
#alvidomo-app .amp-position strong span{font-size:21px;letter-spacing:0;margin-left:4px}
#alvidomo-app .amp-position small{color:var(--amp-muted);font-size:12px;display:block;margin-top:7px}
#alvidomo-app .amp-state{color:var(--amp-accent);background:var(--amp-soft);border-radius:7px;font-size:12px;padding:7px 10px}
#alvidomo-app .amp-commands{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#alvidomo-app .amp-commands button{background:var(--amp-surface);border:1px solid var(--amp-border);color:var(--amp-text);border-radius:9px;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:9px 5px;font-size:13px}
#alvidomo-app .amp-commands button:hover{background:var(--amp-soft);border-color:var(--amp-accent)}
#alvidomo-app .amp-follow{font-size:12px;color:var(--amp-muted);margin-top:17px;display:flex;align-items:center;gap:7px}
#alvidomo-app .amp-follow svg{width:14px;height:14px}
#alvidomo-app .amp-room-future{display:flex;align-items:center;gap:8px;color:var(--amp-muted);font-size:12px;line-height:1.7;padding:22px 0}
#alvidomo-app .amp-room-future svg{width:16px;height:16px}
#alvidomo-app .amp-shutter-list{display:grid}
#alvidomo-app .amp-shutter-row{display:grid;grid-template-columns:minmax(120px,1fr) 66px minmax(220px,1fr);gap:16px;align-items:center;border-bottom:1px solid var(--amp-border);padding:17px 0}
#alvidomo-app .amp-shutter-row h3{font-size:14px}
#alvidomo-app .amp-shutter-row small{color:var(--amp-muted);font-size:11px}
#alvidomo-app .amp-shutter-percent{font-size:18px;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}
#alvidomo-app .amp-shutter-row .amp-commands{gap:5px}
#alvidomo-app .amp-shutter-row .amp-commands button{flex-direction:column;gap:3px;font-size:11px;min-height:52px}
#alvidomo-app .amp-shutter-row .amp-commands svg{width:15px;height:15px}
#alvidomo-app .amp-empty{text-align:center;padding:60px 15px}
#alvidomo-app .amp-empty>svg{height:38px;width:38px;color:var(--amp-muted);margin-bottom:20px}
#alvidomo-app .amp-empty p{color:var(--amp-muted);font-size:14px;line-height:1.9}
@media(max-width:860px){#alvidomo-app .amp-layout{grid-template-columns:1fr}#alvidomo-app .amp-sidebar{flex-direction:row;gap:7px;flex-wrap:wrap;padding:12px 22px;border-right:0;border-bottom:1px solid var(--amp-border)}#alvidomo-app .amp-sidebar>.amp-caption,#alvidomo-app .amp-side-note{display:none}#alvidomo-app .amp-main{padding:25px;min-height:620px}#alvidomo-app .amp-nav{font-size:12px;padding:10px;min-height:42px}#alvidomo-app .amp-nav svg{width:17px;height:17px}}
@media(max-width:540px){#alvidomo-app .amp-header{padding:18px;align-items:flex-start;flex-direction:column;gap:12px}#alvidomo-app .amp-preview{margin:0}#alvidomo-app .amp-sidebar{padding:10px;gap:3px}#alvidomo-app .amp-nav{font-size:11px;padding:8px;gap:5px}#alvidomo-app .amp-nav svg{width:14px;height:14px}#alvidomo-app .amp-main{padding:24px 16px;min-height:700px}#alvidomo-app h2{font-size:25px}#alvidomo-app .amp-heading p{font-size:13px}#alvidomo-app .amp-room-grid{gap:9px}#alvidomo-app .amp-room-choice{padding:14px 10px;min-height:116px;flex-direction:column;align-items:flex-start;gap:10px;position:relative}#alvidomo-app .amp-room-symbol{padding:8px}#alvidomo-app .amp-room-choice strong{font-size:13px}#alvidomo-app .amp-room-choice small{font-size:11px;margin-top:3px}#alvidomo-app .amp-room-chevron{position:absolute;right:10px;top:18px}#alvidomo-app .amp-equipment{padding:18px 14px}#alvidomo-app .amp-commands button{font-size:12px;flex-direction:column;gap:6px;min-height:62px}#alvidomo-app .amp-shutter-row{grid-template-columns:1fr auto;gap:12px}#alvidomo-app .amp-shutter-row .amp-commands{grid-column:1/-1}#alvidomo-app .amp-shutter-row .amp-commands button{flex-direction:row;min-height:44px}#alvidomo-app .amp-footer{font-size:11px}}


#alvidomo-app{color-scheme:light;--amp-bg:#b8c3b4;--amp-surface:#d4ddcd;--amp-text:#20392e;--amp-muted:#485e4f;--amp-border:#a4b39e;--amp-accent:#24583c;--amp-soft:#c3d0b9}
#alvidomo-app .amp-header{display:none}
#alvidomo-app .amp-layout{grid-template-columns:232px minmax(0,1fr);min-height:720px}
#alvidomo-app .amp-sidebar{background:#173c34;color:#eff5e8;border:0;padding:28px 18px;gap:9px}
#alvidomo-app .amp-side-identity{padding:6px 8px 35px;margin-bottom:21px;border-bottom:1px solid #ffffff1a}
#alvidomo-app .amp-side-identity .amp-brand{font-size:25px;color:#fff;letter-spacing:-1px}
#alvidomo-app .amp-brand-word{display:inline-flex;flex-direction:column;white-space:nowrap}
#alvidomo-app .amp-brand .amp-wordmark-text{font-weight:500;line-height:1.1}
#alvidomo-app .amp-wordmark-text>span{font-weight:400}
#alvidomo-app .amp-logo{width:43px;height:45px;border-radius:13px 13px 13px 3px;background:#bade9b;color:#173c34;font-size:34px}
#alvidomo-app .amp-brand-word small{display:flex;justify-content:space-between;gap:6px;align-self:stretch;color:#b6cbb4;font-size:9px;letter-spacing:1.1px;margin-top:7px;font-weight:500;line-height:1.1}
#alvidomo-app .amp-sidebar>.amp-caption{color:#9bb49e}
#alvidomo-app .amp-nav{color:#c4d6c5;font-size:13px}
#alvidomo-app .amp-nav.active,#alvidomo-app .amp-nav:hover{background:#c6e1a91c;color:#e1f1c9}
#alvidomo-app .amp-side-note{color:#a1bba6;line-height:1.9;border-top:1px solid #ffffff1a;padding-top:22px;margin-top:auto}
#alvidomo-app .amp-main{padding:26px 30px 23px}
#alvidomo-app .amp-welcome-strip{background:#173c34;color:#eff5e8;border-radius:12px;padding:20px 23px;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:93px}
#alvidomo-app .amp-welcome-strip>div>span{display:block;font-size:10px;letter-spacing:1.8px;color:#b6cbb4;margin-bottom:9px}
#alvidomo-app .amp-welcome-strip h2{color:#eff5e8;font-size:24px;letter-spacing:-.6px;font-weight:500;margin:0;line-height:1.3}
#alvidomo-app .amp-strip-note{color:#b6cbb4;font-size:11px;white-space:nowrap}
#alvidomo-app .amp-rooms-heading{display:flex;gap:15px;justify-content:space-between;align-items:center;margin:25px 0 15px}
#alvidomo-app .amp-rooms-heading h3{font-size:19px;letter-spacing:-.3px}
#alvidomo-app .amp-rooms-heading>span{font-size:12px;color:var(--amp-muted)}
#alvidomo-app .amp-room-choice{min-height:96px;padding:17px;gap:12px;background:#a5b797;border-color:#8fa683}
#alvidomo-app .amp-room-choice:hover{background:#b4c4a8;border-color:#2e654a}
#alvidomo-app .amp-room-symbol{background:var(--amp-soft);color:var(--amp-accent)}
#alvidomo-app .amp-room-choice strong{font-size:15px}
#alvidomo-app .amp-room-choice small{font-size:12px}
@media(min-width:1200px){#alvidomo-app .amp-room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){#alvidomo-app .amp-header{display:flex;background:#173c34;color:#eff5e8;padding:20px 23px;min-height:76px}#alvidomo-app .amp-header .amp-logo{width:38px;height:39px;font-size:30px}#alvidomo-app .amp-preview{color:#b6cbb4}#alvidomo-app .amp-layout{grid-template-columns:1fr;min-height:650px}#alvidomo-app .amp-sidebar{display:flex;flex-direction:row;gap:6px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid #ffffff14}#alvidomo-app .amp-side-identity,#alvidomo-app .amp-side-note{display:none}#alvidomo-app .amp-main{padding:24px;min-height:600px}#alvidomo-app .amp-welcome-strip{min-height:87px;padding:18px 20px}#alvidomo-app .amp-welcome-strip h2{font-size:22px}}
@media(max-width:540px){#alvidomo-app .amp-header{padding:18px;gap:10px}#alvidomo-app .amp-header .amp-preview{font-size:11px}#alvidomo-app .amp-sidebar{padding:9px 10px;gap:3px}#alvidomo-app .amp-nav{font-size:11px;padding:8px;gap:5px}#alvidomo-app .amp-main{padding:17px 14px;min-height:710px}#alvidomo-app .amp-welcome-strip{padding:17px;min-height:88px}#alvidomo-app .amp-welcome-strip h2{font-size:21px}#alvidomo-app .amp-strip-note{display:none}#alvidomo-app .amp-rooms-heading{margin:21px 0 13px;align-items:flex-start}#alvidomo-app .amp-rooms-heading>span{font-size:11px;max-width:115px;line-height:1.5;text-align:right}#alvidomo-app .amp-room-choice{min-height:113px;flex-direction:column;align-items:flex-start;padding:14px 11px;gap:10px}#alvidomo-app .amp-room-choice strong{font-size:13px}#alvidomo-app .amp-room-choice small{font-size:11px}}
/* Interface opérationnelle : commandes réelles, sans couche de simulation. */
#alvidomo-app .amp-shell{border-radius:0;min-height:100vh}
#alvidomo-app .amp-layout{min-height:100vh}
#alvidomo-app .amp-brand{color:inherit;text-decoration:none}
#alvidomo-app .amp-sidebar{position:sticky;top:0;height:100vh;align-self:start}
#alvidomo-app .amp-sidebar nav{display:grid;gap:9px}
#alvidomo-app .amp-nav{width:100%;cursor:pointer}
#alvidomo-app .amp-main{min-height:100vh}
#alvidomo-app main>section:not(#rooms-view){margin-top:25px}
#alvidomo-app .amp-welcome-strip h1{font-size:24px;line-height:1.3;font-weight:500;letter-spacing:-.6px;margin:0;color:#eff5e8}
#alvidomo-app .amp-rooms-heading h2{font-size:19px;font-weight:500;letter-spacing:-.3px;margin:0}
#alvidomo-app button{cursor:pointer;transition:background .15s,border-color .15s}
#alvidomo-app button:disabled{cursor:wait;opacity:.45}
#alvidomo-app button:focus-visible,#alvidomo-app a:focus-visible,#alvidomo-app input:focus-visible{outline:3px solid #739664;outline-offset:3px}
#alvidomo-app .amp-commands{margin-top:10px}
#alvidomo-app .amp-commands button{font-size:14px;min-height:50px}
#alvidomo-app .amp-equipment{max-width:760px;margin-bottom:18px}
#alvidomo-app .amp-empty>span{display:inline-flex;color:var(--amp-muted);margin-bottom:15px}
#alvidomo-app .amp-empty>span svg{width:38px;height:38px}
#alvidomo-app .amp-room-chevron{font-size:25px;line-height:1}
#alvidomo-app .amp-follow{line-height:1.6;align-items:flex-start;overflow-wrap:anywhere}
#alvidomo-app .amp-follow svg{margin-top:3px}
#alvidomo-app .amp-state{font-size:13px}
#alvidomo-app .app-read-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
#alvidomo-app .app-read-actions button,#alvidomo-app .app-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--amp-border);border-radius:8px;padding:10px 12px;min-height:44px;background:var(--amp-surface);color:var(--amp-text);font-size:13px}
#alvidomo-app .app-read-actions button:hover,#alvidomo-app .app-button:hover{background:var(--amp-soft);border-color:var(--amp-accent)}
#alvidomo-app .app-read-actions svg,#alvidomo-app .app-button svg{width:16px;height:16px}
#alvidomo-app .app-sidebar-bottom{margin-top:auto;padding-top:35px;display:grid;gap:9px}
#alvidomo-app .app-server{border-top:1px solid #ffffff1a;display:flex;gap:10px;padding:22px 10px 0;margin-top:10px;align-items:center;color:#e0ebda;font-size:12px}
#alvidomo-app .app-server small{display:block;font-size:11px;color:#abc3ae;margin-top:5px}
#alvidomo-app #server-dot{width:7px;height:7px;border-radius:50%;background:#bade9b}
#alvidomo-app #server-dot.offline{background:#e4b78e}
#alvidomo-app .app-section-header{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:10px}
#alvidomo-app .app-section-header .amp-heading{margin-bottom:10px}
#alvidomo-app .app-row-read{grid-column:1/-1}
#alvidomo-app .app-row-read .app-read-actions{margin-top:0}
#alvidomo-app .app-row-read small{display:block;margin-top:8px;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
#alvidomo-app .app-room-link{background:transparent;border:0;padding:0;color:var(--amp-text);font-size:15px;font-weight:500;text-align:left;text-decoration:underline;text-decoration-color:var(--amp-border);text-underline-offset:4px}
#alvidomo-app .amp-shutter-row>div:first-child>small{display:block;margin-top:6px}
#alvidomo-app .app-journal-item,#alvidomo-app .app-settings-card{border:1px solid var(--amp-border);border-radius:12px;background:var(--amp-surface);padding:20px;margin-bottom:12px}
#alvidomo-app .app-journal-item summary{display:flex;gap:15px;align-items:center;font-size:13px;cursor:pointer}
#alvidomo-app .app-journal-item time{margin-left:auto;color:var(--amp-muted);font-size:12px}
#alvidomo-app .app-journal-item pre{background:var(--amp-soft);border-radius:8px;padding:15px;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}
#alvidomo-app .app-settings-card{max-width:800px}
#alvidomo-app .app-settings-card p{font-size:14px;line-height:1.8;color:var(--amp-muted)}
#alvidomo-app .app-settings-card code{font:inherit;background:var(--amp-soft);padding:3px 5px;border-radius:3px}
#alvidomo-app .app-pair{max-width:450px;margin:30px auto}
#alvidomo-app .app-pair form{display:grid;gap:15px}
#alvidomo-app .app-pair input{font:inherit;font-size:22px;letter-spacing:5px;border:1px solid var(--amp-border);background:var(--amp-surface);border-radius:9px;padding:12px;color:var(--amp-text);width:100%}
#alvidomo-app #pair-error{color:#823d25}
.app-toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#173c34;color:#eff5e8;border-radius:10px;padding:14px 20px;font:14px/1.6 "Segoe UI",sans-serif;max-width:calc(100% - 35px);z-index:30;box-shadow:0 6px 25px #173c3426}
.app-toast.error{background:#804c38}
.app-toast[hidden]{display:none}
@media(min-width:1500px){#alvidomo-app .amp-main{padding:30px 42px}#alvidomo-app .amp-room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){#alvidomo-app .amp-sidebar{position:static;height:auto}#alvidomo-app .amp-sidebar nav{display:flex;gap:5px;flex-wrap:wrap}#alvidomo-app .amp-nav{width:auto}#alvidomo-app .app-sidebar-bottom{padding:0;margin:0 0 0 auto;display:flex;gap:5px}#alvidomo-app .app-server{display:none}#alvidomo-app .app-sidebar-bottom .amp-nav{font-size:0;gap:0}#alvidomo-app .app-sidebar-bottom svg{width:18px;height:18px}#alvidomo-app .amp-main{min-height:calc(100vh - 140px)}#alvidomo-app .amp-layout{min-height:0}}
@media(max-width:540px){#alvidomo-app .amp-welcome-strip h1{font-size:21px}#alvidomo-app .amp-commands button{font-size:12px;min-height:56px}#alvidomo-app .amp-shutter-row .amp-commands button{font-size:12px;min-height:46px}#alvidomo-app .app-read-actions{gap:7px}#alvidomo-app .app-read-actions button{font-size:12px;min-height:44px}#alvidomo-app .app-journal-item summary{flex-wrap:wrap;gap:8px}#alvidomo-app .app-journal-item time{margin:0;width:100%}#alvidomo-app .amp-sidebar{gap:5px}#alvidomo-app .amp-position strong{font-size:39px}}

#alvidomo-app svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}

#alvidomo-app .app-clock{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:5px;flex:none;color:#eff5e8;text-align:right;white-space:nowrap}
#alvidomo-app #clock-time{font-size:29px;font-weight:500;line-height:1.1;letter-spacing:.5px;font-variant-numeric:tabular-nums}
#alvidomo-app #date-label{font-size:15px;font-weight:400;line-height:1.4;color:#d0e1c6}
@media(max-width:1100px){#alvidomo-app .amp-welcome-strip{flex-wrap:wrap}#alvidomo-app .app-clock{margin-left:auto}#alvidomo-app #clock-time{font-size:26px}#alvidomo-app #date-label{font-size:14px}}
@media(max-width:540px){#alvidomo-app .app-clock{max-width:100%;margin-top:3px;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}#alvidomo-app #clock-time{font-size:24px}#alvidomo-app #date-label{font-size:14px;white-space:normal;text-align:right}}

/* Équipements d’une pièce : trois cartes par rangée sur ordinateur. */
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview>.amp-equipment{width:100%;max-width:none;min-width:0;min-height:335px;margin:0;padding:22px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview>.amp-empty{grid-column:1/-1}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-position{gap:12px;flex-wrap:wrap}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands button{flex-direction:column;gap:6px;min-height:57px;font-size:12px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-read-actions{gap:6px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-read-actions button{font-size:12px;padding:9px 8px;min-height:42px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-follow{font-size:12px}
@media(max-width:1250px){#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview{grid-template-columns:1fr}#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview>.amp-equipment{max-width:420px;padding:20px;min-height:335px}}

/* Essai Salon : largeur proche d’une demi-carte du format précédent. */
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview{grid-template-columns:repeat(auto-fill,minmax(210px,230px));gap:16px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview>.amp-equipment{padding:18px 13px;min-height:335px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands{gap:4px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands button{font-size:11px;padding:8px 2px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-read-actions{flex-direction:column;gap:7px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-read-actions button{width:100%;min-height:40px}
@media(max-width:340px){#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview{grid-template-columns:minmax(0,230px)}}
/* Salon compact : hauteur naturelle, sans minimum imposé. */
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview>.amp-equipment{min-height:0;padding:14px 12px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-equipment-heading{gap:9px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-equipment-heading .amp-room-symbol{padding:8px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-equipment-heading h3{font-size:16px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-equipment-heading small{font-size:11px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-position{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:15px 0 12px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-position strong{font-size:32px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-position strong span{font-size:17px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-position small{font-size:11px;margin-top:4px;line-height:1.4}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-state{font-size:10px;padding:5px;max-width:68px;white-space:normal}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands{margin-top:0}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands button{min-height:38px;padding:7px;gap:0}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands svg{width:18px;height:18px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-read-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:7px;gap:6px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-read-actions button{min-height:33px;font-size:11px;padding:6px;gap:5px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-read-actions svg{width:13px;height:13px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-follow{margin-top:9px;font-size:11px;line-height:1.45;gap:5px}
@media(pointer:coarse){#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands button,#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-read-actions button{min-height:44px}}
/* Trois touches regroupées, comme un boîtier d’interrupteur. */
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands{padding:4px;border:1px solid #9eae95;background:#bcc9b2;border-radius:11px;gap:4px}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands button{min-height:44px;border-radius:7px;border-color:#a8b89c;background:#dce5d3;box-shadow:inset 0 1px 0 #f4f7ef,inset 0 -2px 0 #c2cfb7;color:#254732}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands button:hover{background:#e8eedf;border-color:#7e996d}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands button:active{background:#c8d5bd;box-shadow:inset 0 2px 2px #899e7e40}

#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-read-actions{grid-template-columns:1fr}

/* Les touches gardent leur aspect pendant l’envoi ; seule la touche pressée change. */
#alvidomo-app .amp-commands button:disabled{opacity:1}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-read-actions button:disabled{opacity:1}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands button.is-sending{background:#6e8e60;color:#f7faef;border-color:#4a6d40;box-shadow:inset 0 2px 3px #36512e40}
#alvidomo-app .amp-commands button.is-sending{background:#8ba47c;color:#173c34;border-color:#5d7f50}
/* La touche du mouvement rapporté reste colorée jusqu’au retour d’arrêt. */
#alvidomo-app .amp-commands button.is-moving{background:#8ba47c;color:#173c34;border-color:#5d7f50}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-commands button.is-moving{background:#6e8e60;color:#f7faef;border-color:#4a6d40;box-shadow:inset 0 2px 3px #36512e40}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-pulse-command{grid-template-columns:1fr}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-pulse-command button{display:flex;flex-direction:row;gap:10px;min-height:52px;font-size:13px}
#alvidomo-app .app-garage-card .app-garage-estimate,#alvidomo-app .app-garage-result{font-size:11px;line-height:1.6;color:var(--amp-muted);margin:10px 0 0;overflow-wrap:anywhere}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-garage-card .amp-equipment-heading h3{font-size:14px}
/* Format commun des interrupteurs : espace réservé même sans pied de carte. */
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview{align-items:stretch;grid-auto-rows:1fr}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview>.amp-equipment{box-sizing:border-box;height:auto;min-height:248px;overflow:visible}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .amp-equipment-heading>div{min-width:0;overflow-wrap:anywhere}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-garage-card .amp-equipment-heading h3{font-size:16px}

/* Lumière : même boîtier compact que les autres équipements. */
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-light-state{font-size:24px;line-height:1.25}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-light-commands{grid-template-columns:1fr 1fr}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-light-commands button{display:flex;flex-direction:row;gap:5px;font-size:11px}
#alvidomo-app .app-light-help{margin:6px 0 0;font-size:10px;line-height:1.3;color:var(--amp-muted)}
#alvidomo-app :is(#room-devices,#shutter-list,#light-list).compact-preview .app-light-card .amp-position{margin:10px 0 8px}
/* Le parent ne doit pas devenir un conteneur de défilement pour la barre sticky. */
#alvidomo-app .amp-shell{overflow:visible;overflow:clip}
@media(min-width:861px){
 #alvidomo-app .amp-sidebar{position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior-y:contain;align-self:start}
 #alvidomo-app .amp-sidebar>*{flex-shrink:0}
}

/* Journal : choix par appareil, sans effet sur les commandes. */
#alvidomo-app .app-journal-filter{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 22px}
#alvidomo-app .app-journal-filter label{font-size:14px;font-weight:500}
#alvidomo-app .app-journal-filter select{font:inherit;font-size:14px;min-height:44px;max-width:100%;min-width:240px;padding:9px 35px 9px 12px;border:1px solid var(--amp-border);border-radius:9px;background:var(--amp-surface);color:var(--amp-text)}
#alvidomo-app #journal-result-count{font-size:12px;color:var(--amp-muted)}
@media(max-width:540px){#alvidomo-app .app-journal-filter{align-items:flex-start;flex-direction:column;gap:8px}#alvidomo-app .app-journal-filter select{width:100%;min-width:0}}

/* Bandeau de contexte toujours visible pendant le défilement du contenu. */
#alvidomo-app .amp-welcome-strip{position:sticky;top:0;z-index:20;isolation:isolate;background:#173c34}
#alvidomo-app .app-header-context{color:#eff5e8;font-size:20px;font-weight:500;line-height:1.3;text-align:center;flex:1;min-width:0;overflow-wrap:anywhere}
@media(max-width:1100px){#alvidomo-app .app-header-context{font-size:18px}}
@media(max-width:860px){#alvidomo-app .amp-welcome-strip{gap:12px}#alvidomo-app .app-header-context{flex-basis:100%;order:3;text-align:left;font-size:17px}}

/* En-tête continu : marque, pièce et horloge dans une même barre verte. */
#alvidomo-app{--app-topbar-height:100px}
#alvidomo-app .app-topbar{display:grid;grid-template-columns:232px minmax(0,1fr) 232px;align-items:center;gap:0;position:sticky;top:0;z-index:25;isolation:isolate;width:100%;height:var(--app-topbar-height);min-height:var(--app-topbar-height);padding:0;background:#173c34;color:#eff5e8;border:0;border-radius:0}
#alvidomo-app .app-topbar>.amp-brand{padding:0 24px;min-width:0;justify-self:start;font-size:25px;white-space:nowrap}
#alvidomo-app .app-topbar .amp-logo{width:43px;height:45px;font-size:34px}
#alvidomo-app .app-topbar-heading{min-width:0;padding:0 20px;text-align:center}
#alvidomo-app .app-topbar-heading h1{font-size:26px;font-weight:500;line-height:1.25;letter-spacing:-.4px;color:#eff5e8;margin:0;overflow-wrap:anywhere}
#alvidomo-app .app-topbar>.app-clock{padding:0 30px 0 0;gap:5px;margin:0;text-align:right;align-items:flex-end;justify-self:stretch}
#alvidomo-app .app-topbar #clock-time{font-size:30px;line-height:1;letter-spacing:.3px}
#alvidomo-app .app-topbar #date-label{font-size:13px;line-height:1.4;color:#d0e1c6;white-space:nowrap}
#alvidomo-app .amp-layout{min-height:calc(100vh - var(--app-topbar-height));min-height:calc(100dvh - var(--app-topbar-height))}
#alvidomo-app .amp-main{min-height:calc(100vh - var(--app-topbar-height));min-height:calc(100dvh - var(--app-topbar-height))}
@media(min-width:861px){#alvidomo-app .amp-sidebar{top:var(--app-topbar-height);height:calc(100vh - var(--app-topbar-height));height:calc(100dvh - var(--app-topbar-height));padding-top:24px}}
@media(max-width:860px){
 #alvidomo-app{--app-topbar-height:136px}
 #alvidomo-app .app-topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:76px 60px;align-items:center}
 #alvidomo-app .app-topbar>.amp-brand{grid-column:1;grid-row:1;padding:0 20px;font-size:24px}
 #alvidomo-app .app-topbar>.app-clock{grid-column:2;grid-row:1;padding:0 20px;max-width:100%;gap:4px}
 #alvidomo-app .app-topbar #clock-time{font-size:25px}
 #alvidomo-app .app-topbar #date-label{font-size:12px;white-space:normal;max-width:180px}
 #alvidomo-app .app-topbar-heading{grid-column:1/-1;grid-row:2;padding:0 20px 14px;align-self:center}
 #alvidomo-app .app-topbar-heading h1{font-size:22px}
 #alvidomo-app .amp-layout{min-height:0}
 #alvidomo-app .amp-sidebar{position:static;top:auto;height:auto;overflow:visible}
}
@media(max-width:400px){
 #alvidomo-app .app-topbar>.amp-brand{padding-left:12px;font-size:21px}
 #alvidomo-app .app-topbar .amp-logo{width:34px;height:37px;font-size:29px;margin-right:8px}
 #alvidomo-app .app-topbar .amp-brand-word small{font-size:7px;letter-spacing:.8px;gap:3px}
 #alvidomo-app .app-topbar>.app-clock{padding:0 12px 0 8px}
 #alvidomo-app .app-topbar #date-label{font-size:11px;max-width:135px}
 #alvidomo-app .app-topbar-heading h1{font-size:20px}
}

/* Demande finale : colonne de marque toute hauteur, sans bandeau horizontal. */
#alvidomo-app{--app-topbar-height:0px}
#alvidomo-app .amp-layout{min-height:100vh;min-height:100dvh}
#alvidomo-app .amp-main{min-height:100vh;min-height:100dvh}
#alvidomo-app .amp-side-identity{display:block}
@media(min-width:861px){#alvidomo-app .amp-sidebar{position:sticky;top:0;height:100vh;height:100dvh;padding-top:24px}}
@media(max-width:860px){
 #alvidomo-app .amp-layout{min-height:0}
 #alvidomo-app .amp-sidebar{position:static;height:auto;top:auto}
 #alvidomo-app .amp-side-identity{flex-basis:100%;width:100%;padding:8px 10px 16px;margin:0 0 8px}
}

/* Bandeau contenu dans la partie droite, détaché de tous les bords. */
#alvidomo-app .app-floating-banner{position:sticky;top:24px;z-index:20;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:28px;align-self:center;width:min(100%,720px);min-height:96px;margin:0 auto 24px;padding:20px 26px;background:#173c34;color:#eff5e8;border:1px solid #ffffff14;border-radius:16px;box-shadow:0 8px 24px #173c3424;flex-shrink:0}
#alvidomo-app .app-floating-banner h1{min-width:0;flex:1;margin:0;font-size:24px;line-height:1.3;font-weight:500;letter-spacing:-.4px;color:#eff5e8;overflow-wrap:anywhere}
#alvidomo-app .app-floating-clock{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none;min-width:174px;text-align:right;color:#eff5e8}
#alvidomo-app #floating-time{font-size:28px;font-weight:500;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:.3px}
#alvidomo-app #floating-date{font-size:12px;line-height:1.5;color:#d0e1c6;white-space:nowrap}
@media(max-width:860px){#alvidomo-app .app-floating-banner{top:16px}}
@media(max-width:540px){
 #alvidomo-app .app-floating-banner{padding:16px;gap:12px;border-radius:13px;min-height:88px;margin-bottom:20px}
 #alvidomo-app .app-floating-banner h1{font-size:19px}
 #alvidomo-app .app-floating-clock{min-width:0;width:128px;gap:4px}
 #alvidomo-app #floating-time{font-size:24px}
 #alvidomo-app #floating-date{font-size:11px;white-space:normal;line-height:1.4}
}

/* Navigation : retour discret, sans déplacement de la zone de clic. */
#alvidomo-app .amp-sidebar .amp-nav{transition:background-color 160ms ease,color 160ms ease,box-shadow 160ms ease;background:transparent;box-shadow:inset 0 0 0 1px transparent}
#alvidomo-app .amp-sidebar .amp-nav.active{background:#c6e1a91c;color:#e1f1c9}
#alvidomo-app .amp-sidebar .amp-nav svg{transition:transform 160ms ease}
@media(hover:hover) and (pointer:fine){
 #alvidomo-app .amp-sidebar .amp-nav:hover{background:#c6e1a935;color:#f0f8e4;box-shadow:inset 0 0 0 1px #c6e1a925}
 #alvidomo-app .amp-sidebar .amp-nav:hover svg{transform:translateX(2px)}
}
#alvidomo-app .amp-sidebar .amp-nav:active{background:#c6e1a94a;color:#f0f8e4;box-shadow:inset 0 0 0 1px #c6e1a94a}
#alvidomo-app .amp-sidebar .amp-nav:active svg{transform:scale(.94)}
#alvidomo-app .amp-sidebar .amp-nav:focus-visible{outline:2px solid #bade9b;outline-offset:3px;background:#c6e1a935;color:#f0f8e4}
@media(prefers-reduced-motion:reduce){
 #alvidomo-app .amp-sidebar .amp-nav,#alvidomo-app .amp-sidebar .amp-nav svg{transition:none}
 #alvidomo-app .amp-sidebar .amp-nav:hover svg,#alvidomo-app .amp-sidebar .amp-nav:active svg{transform:none}
}

/* Navigation discrète : aucune pastille permanente pour la vue sélectionnée. */
#alvidomo-app .amp-sidebar .amp-nav.active{background:transparent;box-shadow:none;color:#e1f1c9;font-weight:600}
#alvidomo-app .amp-sidebar .amp-nav.active svg{color:#bade9b}
@media(hover:hover) and (pointer:fine){
 #alvidomo-app .amp-sidebar .amp-nav.active:hover{background:#c6e1a935;box-shadow:inset 0 0 0 1px #c6e1a925;color:#f0f8e4}
}
#alvidomo-app .amp-sidebar .amp-nav.active:active{background:#c6e1a94a;box-shadow:inset 0 0 0 1px #c6e1a94a}
#alvidomo-app .amp-sidebar .amp-nav.active:focus-visible{background:#c6e1a935;outline:2px solid #bade9b;outline-offset:3px}

/* Les quatre accès partagent exactement le même retour d’interaction. */
@media(hover:hover) and (pointer:fine){
 #alvidomo-app .amp-sidebar .amp-nav:hover,#alvidomo-app .amp-sidebar .amp-nav.active:hover{background:#c6e1a935;color:#f0f8e4;box-shadow:inset 0 0 0 1px #c6e1a925}
}
#alvidomo-app .amp-sidebar .amp-nav:active,#alvidomo-app .amp-sidebar .amp-nav.active:active{background:#c6e1a94a;color:#f0f8e4;box-shadow:inset 0 0 0 1px #c6e1a94a}
#alvidomo-app .amp-sidebar .amp-nav:focus-visible,#alvidomo-app .amp-sidebar .amp-nav.active:focus-visible{outline:2px solid #bade9b;outline-offset:3px;background:#c6e1a935;color:#f0f8e4}

/* Regrouper les quatre accès sur téléphone sans changer leur disposition bureau. */
#alvidomo-app .app-primary-navigation{display:contents}
@media(max-width:540px){
 #alvidomo-app .app-primary-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;width:100%;min-width:0}
 #alvidomo-app .app-primary-navigation nav{display:contents}
 #alvidomo-app .app-primary-navigation .amp-nav{width:100%;min-width:0;justify-content:flex-start;white-space:normal}
}

/* Bandeau fluide : les marges de la zone principale gardent le détachement latéral. */
#alvidomo-app .app-floating-banner{width:100%;max-width:none}

/* Vue volets : récupérer l’espace au-dessus des tuiles, sans les réduire. */
#alvidomo-app main>section#shutters-view{margin-top:0}
#alvidomo-app .amp-main:has(>#shutters-view:not([hidden]))>.app-floating-banner{margin-bottom:12px}
#alvidomo-app #shutters-view .app-section-header{margin-bottom:12px;gap:12px}
#alvidomo-app #shutters-view .app-section-header .amp-heading{margin-bottom:0}
#alvidomo-app #shutters-view .amp-heading h2{margin:0 0 4px}


/* Fenêtre PC basse : titre et précision sur une ligne, commandes inchangées. */
@media(min-width:1200px){
 #alvidomo-app #shutters-view .app-section-header .amp-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px}
 #alvidomo-app #shutters-view .amp-heading h2{margin:0}
 #alvidomo-app #shutters-view .app-section-header{margin-bottom:8px}
 #alvidomo-app #shutter-list.compact-preview{row-gap:10px}
}

/* Le titre de la vue et sa description vivent dans le bandeau, sans doublon. */
#alvidomo-app .app-floating-copy{flex:1;min-width:0}
#alvidomo-app .app-floating-copy h1{margin:0}
#alvidomo-app #floating-description{margin:4px 0 0;color:#d0e1c6;font-size:13px;line-height:1.4}
#alvidomo-app #floating-description[hidden]{display:none}
#alvidomo-app #shutters-view .app-section-header{justify-content:flex-end;margin-bottom:8px}
@media(max-width:540px){
 #alvidomo-app .app-floating-banner.has-description{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:7px 12px}
 #alvidomo-app .has-description .app-floating-copy{display:contents}
 #alvidomo-app .has-description #floating-context{grid-column:1;grid-row:1}
 #alvidomo-app .has-description .app-floating-clock{grid-column:2;grid-row:1}
 #alvidomo-app .has-description #floating-description{grid-column:1/-1;grid-row:2;margin:0;font-size:12px}
}
#alvidomo-app #read-all[hidden]{display:none}
#alvidomo-app .app-floating-banner #read-all{flex-shrink:0}
@media(max-width:1199px){
 #alvidomo-app .app-floating-banner.has-description{display:grid;grid-template-columns:minmax(0,1fr) 174px;gap:7px 12px}
 #alvidomo-app .has-description .app-floating-copy{display:contents}
 #alvidomo-app .has-description #floating-context{grid-column:1;grid-row:1}
 #alvidomo-app .has-description .app-floating-clock{grid-column:2;grid-row:1}
 #alvidomo-app .has-description #floating-description{grid-column:1/-1;grid-row:2;margin:0}
 #alvidomo-app .has-description #read-all{grid-column:1/-1;grid-row:3;justify-self:end}
}
@media(max-width:540px){#alvidomo-app .app-floating-banner.has-description{grid-template-columns:minmax(0,1fr) 128px}}

/* Action compacte distincte de l'horloge, intégrée au bandeau. */
#alvidomo-app .app-floating-banner.has-description{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:20px}
#alvidomo-app .has-description .app-floating-copy{display:block;grid-column:1;grid-row:1;min-width:0}
#alvidomo-app .has-description #floating-description{margin:4px 0 0}
#alvidomo-app .has-description #read-all{grid-column:2;grid-row:1;justify-self:end;min-height:44px;padding:9px 12px;background:#ffffff0d;border-color:#d0e1c640;color:#eff5e8;white-space:nowrap;font-size:12px;transition:background-color 160ms ease}
#alvidomo-app .has-description #read-all:hover{background:#ffffff1c;border-color:#d0e1c670}
#alvidomo-app .has-description #read-all:focus-visible{outline:2px solid #bade9b;outline-offset:3px}
#alvidomo-app .has-description .app-floating-clock{grid-column:3;grid-row:1;border-left:1px solid #d0e1c633;padding-left:20px;width:auto;min-width:174px}
#alvidomo-app #read-all[aria-busy="true"] svg{animation:alvidomo-refresh-spin 1s linear infinite}
@keyframes alvidomo-refresh-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){
 #alvidomo-app .app-floating-banner.has-description{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px}
 #alvidomo-app .has-description .app-floating-copy{grid-column:1/-1;grid-row:1}
 #alvidomo-app .has-description #read-all{grid-column:1;grid-row:2;justify-self:start}
 #alvidomo-app .has-description .app-floating-clock{grid-column:2;grid-row:2;min-width:0;padding-left:12px}
}
@media(prefers-reduced-motion:reduce){#alvidomo-app .has-description #read-all{transition:none}#alvidomo-app #read-all[aria-busy="true"] svg{animation:none}}

/* Actualiser est rattaché aux tuiles, hors du bandeau. */
#alvidomo-app .app-floating-banner.has-description{display:flex;gap:28px}
#alvidomo-app .has-description .app-floating-copy{display:block}
#alvidomo-app .has-description .app-floating-clock{border-left:0;padding-left:0;min-width:174px}
#alvidomo-app .app-shutter-tools{display:flex;justify-content:flex-end;margin-bottom:10px}
#alvidomo-app .app-shutter-tools #read-all{min-height:44px;padding:9px 12px;font-size:12px;white-space:nowrap}
#alvidomo-app #shutters-view[hidden]{display:none}
@media(min-width:1200px){
 #alvidomo-app #shutters-view{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start}
 #alvidomo-app #shutter-list{grid-column:1;grid-row:1}
 #alvidomo-app .app-shutter-tools{grid-column:2;grid-row:1;margin:0}
}
@media(max-width:540px){
 #alvidomo-app .app-floating-banner.has-description{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:7px 12px}
 #alvidomo-app .has-description .app-floating-copy{display:contents}
 #alvidomo-app .has-description #floating-context{grid-column:1;grid-row:1}
 #alvidomo-app .has-description .app-floating-clock{grid-column:2;grid-row:1;min-width:0}
 #alvidomo-app .has-description #floating-description{grid-column:1/-1;grid-row:2;margin:0}
}

/* Vues globales : contenu directement sous leur bandeau, sans titre dupliqué. */
#alvidomo-app main>section#lights-view,#alvidomo-app main>section#cameras-view{margin-top:0}
#alvidomo-app .amp-main:has(>#lights-view:not([hidden]),>#cameras-view:not([hidden]))>.app-floating-banner{margin-bottom:12px}

/* Futurs capteurs : même bandeau et même état vide que les autres vues. */
#alvidomo-app main>section#temperatures-view{margin-top:0}
#alvidomo-app .amp-main:has(>#temperatures-view:not([hidden]))>.app-floating-banner{margin-bottom:12px}
@media(max-width:540px){#alvidomo-app .app-primary-navigation [data-view="temperatures"]{grid-column:1/-1}}

/* Gestion des accès : une ligne par session associée, sans identifiant sensible. */
#alvidomo-app #associated-devices{margin-top:24px;padding-top:20px;border-top:1px solid var(--amp-border)}
#alvidomo-app .app-associated-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
#alvidomo-app .app-associated-heading h4{margin:0;font-size:17px;font-weight:600}
#alvidomo-app .app-associated-heading h4 span{font-size:12px;padding:3px 7px;border-radius:6px;background:#e4ebdc;margin-left:6px}
#alvidomo-app .app-associated-note{font-size:12px!important;line-height:1.6}
#alvidomo-app .app-associated-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:12px}
#alvidomo-app .app-associated-device{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;background:#f5f7f0;border:1px solid #d5dfcd;border-radius:12px;min-width:0}
#alvidomo-app .app-associated-device>div:first-child{min-width:0;overflow-wrap:anywhere}
#alvidomo-app .app-associated-device strong{font-size:14px;color:#173c34}
#alvidomo-app .app-associated-device p{font-size:12px;line-height:1.6;margin:4px 0!important}
#alvidomo-app .app-associated-device small{font-size:11px;color:#627664}
#alvidomo-app .app-associated-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap}
#alvidomo-app .app-associated-device .amp-state{margin-left:8px}
@media(max-width:700px){#alvidomo-app .app-associated-device{align-items:flex-start;flex-direction:column}#alvidomo-app .app-associated-actions{width:100%}#alvidomo-app .app-associated-actions .app-button{flex:1}}
#alvidomo-app #associated-devices h5{font-size:14px;color:#173c34;margin:22px 0 4px}
#alvidomo-app .app-associated-history{margin-top:20px;border-top:1px solid var(--amp-border);padding-top:16px}
#alvidomo-app .app-associated-history summary{font-size:13px;cursor:pointer;padding:10px 0;color:#506749}

/* Réglages : accueil court, rubriques ouvertes séparément. */
#alvidomo-app #settings-view{margin-top:0}
#alvidomo-app #settings-content{max-width:800px}
#alvidomo-app .app-settings-card h2{font-size:19px;margin:0 0 12px;color:var(--amp-ink)}
#alvidomo-app .app-settings-card>p:first-child{margin-top:0}
#alvidomo-app .app-settings-sections{display:grid;gap:12px}
#alvidomo-app .app-settings-entry{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:86px;text-align:left;padding:18px 20px;background:var(--amp-surface);color:#173c34;border:1px solid var(--amp-border);border-radius:12px;cursor:pointer;transition:background .16s}
#alvidomo-app .app-settings-entry strong{display:block;font-size:16px;font-weight:600}
#alvidomo-app .app-settings-entry small{display:block;font-size:13px;line-height:1.5;margin-top:6px;color:var(--amp-muted)}
#alvidomo-app .app-settings-entry>span:last-child{font-size:25px;flex-shrink:0}
#alvidomo-app .app-settings-entry:hover{background:#c5d2bc}
#alvidomo-app .app-settings-entry:focus-visible{outline:2px solid #173c34;outline-offset:3px}
#alvidomo-app .app-settings-back{margin:0 0 16px;min-height:44px}
#alvidomo-app .app-settings-loading{font-size:14px;color:var(--amp-muted)}
@media(max-width:540px){#alvidomo-app .app-settings-entry{padding:16px;min-height:86px}#alvidomo-app .app-settings-card{padding:16px}}

/* Réglages : serveur compact et trois rubriques de même format. */
#alvidomo-app #settings-content{max-width:1040px}
#alvidomo-app .app-settings-server{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 28px;padding:24px;margin-bottom:20px}
#alvidomo-app .app-settings-server-main{display:flex;gap:16px;align-items:flex-start}
#alvidomo-app .app-settings-icon{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:12px;background:#bdccb2;color:#173c34}
#alvidomo-app .app-settings-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
#alvidomo-app .app-settings-server h2{margin:1px 0 7px;font-size:19px}
#alvidomo-app .app-settings-server-main p{margin:0;font-size:13px;line-height:1.65;max-width:430px}
#alvidomo-app .app-settings-gateway{align-self:center;display:grid;gap:7px;padding-left:24px;border-left:1px solid var(--amp-border)}
#alvidomo-app .app-settings-gateway>span{font-size:12px;color:var(--amp-muted)}
#alvidomo-app .app-settings-gateway code{font-size:14px;font-weight:600;background:none;padding:0;color:#173c34}
#alvidomo-app .app-settings-server .app-settings-secret{grid-column:1/-1;display:flex;align-items:center;gap:9px;border-top:1px solid var(--amp-border);padding-top:14px;margin:0;font-size:12px;line-height:1.6}
#alvidomo-app .app-settings-secret svg{width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5}
#alvidomo-app .app-settings-sections{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
#alvidomo-app .app-settings-entry{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:18px;min-height:218px;padding:22px;text-align:left}
#alvidomo-app .app-settings-entry .app-settings-icon{font-size:inherit}
#alvidomo-app .app-settings-entry-copy{flex:1;min-width:0}
#alvidomo-app .app-settings-entry strong{font-size:17px;line-height:1.35}
#alvidomo-app .app-settings-entry small{font-size:13px;line-height:1.6;margin-top:8px}
#alvidomo-app .app-settings-entry .app-settings-entry-open{display:flex;width:100%;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;color:#3b6149}
#alvidomo-app .app-settings-entry-open>span{font-size:20px;line-height:1}
#alvidomo-app .app-settings-back{background:transparent;border-color:transparent;padding-left:0;color:#365442}
@media(max-width:1100px) and (min-width:861px){#alvidomo-app .app-settings-server{grid-template-columns:1fr;gap:16px}#alvidomo-app .app-settings-gateway{border-left:0;padding-left:60px;gap:4px}#alvidomo-app .app-settings-entry{padding:18px;gap:16px}}
@media(max-width:700px){#alvidomo-app .app-settings-server{grid-template-columns:1fr;padding:20px;gap:16px}#alvidomo-app .app-settings-gateway{border-left:0;padding-left:60px;gap:4px}#alvidomo-app .app-settings-sections{grid-template-columns:1fr;gap:12px}#alvidomo-app .app-settings-entry{display:grid;grid-template-columns:44px minmax(0,1fr) 18px;gap:16px;min-height:110px;padding:18px;align-items:center}#alvidomo-app .app-settings-entry .app-settings-entry-open{font-size:0}#alvidomo-app .app-settings-entry strong{font-size:16px}#alvidomo-app .app-settings-entry small{margin-top:5px}#alvidomo-app .app-settings-secret{align-items:flex-start}}
#alvidomo-app .app-settings-entry>span.app-settings-entry-open:last-child{font-size:12px}
@media(max-width:700px){#alvidomo-app .app-settings-entry>span.app-settings-entry-open:last-child{font-size:0}}

/* Direction validée par la demande : présentation centrale et boutons compacts. */
#alvidomo-app #settings-content:has(.app-settings-server){max-width:900px;margin:0 auto}
#alvidomo-app .app-settings-server{grid-template-columns:1fr;text-align:center;padding:28px 30px;gap:18px;margin-bottom:18px}
#alvidomo-app .app-settings-server-main{flex-direction:column;align-items:center;gap:14px}
#alvidomo-app .app-settings-server-main p{max-width:560px;margin:0 auto}
#alvidomo-app .app-settings-server h2{font-size:21px;margin:0 0 8px}
#alvidomo-app .app-settings-gateway{padding:0;border:0;justify-items:center;gap:5px}
#alvidomo-app .app-settings-server .app-settings-secret{justify-content:center;text-align:center;font-size:12px}
#alvidomo-app .app-settings-sections{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
#alvidomo-app .app-settings-entry{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:10px;min-height:64px;width:auto;flex:1;min-width:0;padding:13px 16px;border-radius:10px}
#alvidomo-app .app-settings-entry .app-settings-icon{width:30px;height:30px;border-radius:8px;background:transparent}
#alvidomo-app .app-settings-entry .app-settings-icon svg{width:21px;height:21px}
#alvidomo-app .app-settings-entry-copy{flex:0 1 auto;text-align:left}
#alvidomo-app .app-settings-entry strong{font-size:14px;line-height:1.4}
#alvidomo-app .app-settings-entry small,#alvidomo-app .app-settings-entry>span.app-settings-entry-open:last-child{display:none}
@media(max-width:700px){#alvidomo-app .app-settings-server{padding:24px 20px;gap:16px}#alvidomo-app .app-settings-sections{flex-direction:column;gap:10px}#alvidomo-app .app-settings-entry{width:100%;flex:auto;min-height:58px;justify-content:flex-start;padding:12px 18px}#alvidomo-app .app-settings-server .app-settings-secret{align-items:flex-start;text-align:left}#alvidomo-app .app-settings-server h2{font-size:19px}}

/* Sous-rubrique Appareils et accès uniquement. */
#alvidomo-app .app-access-layout{display:grid;gap:18px;max-width:1040px}
#alvidomo-app .app-access-admin{display:flex;align-items:center;gap:8px;font-size:12px;color:#52694f;margin:0 0 2px}
#alvidomo-app .app-access-admin svg{width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5}
#alvidomo-app .app-access-panel{padding:24px;border:1px solid var(--amp-border);border-radius:14px;background:var(--amp-surface);min-width:0}
#alvidomo-app #associated-devices.app-access-panel{margin:0;padding:24px;border:1px solid var(--amp-border)}
#alvidomo-app .app-access-panel h2{font-size:18px;line-height:1.4;margin:0;color:#173c34}
#alvidomo-app .app-access-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
#alvidomo-app .app-access-heading p{font-size:13px;line-height:1.6;color:var(--amp-muted);margin:6px 0 0}
#alvidomo-app .app-access-heading h2 span{font-size:12px;padding:3px 7px;background:#c1cfb6;border-radius:6px;margin-left:6px;vertical-align:middle}
#alvidomo-app .app-access-heading .app-button{flex-shrink:0}
#alvidomo-app .app-access-connect-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
#alvidomo-app .app-access-address,#alvidomo-app .app-access-pair{min-width:0}
#alvidomo-app .app-access-address>span,#alvidomo-app .app-access-pair>span{display:block;font-size:13px;font-weight:600;color:#37533e;margin-bottom:12px}
#alvidomo-app .app-access-address a{display:block;width:fit-content;font-size:16px;color:#173c34;overflow-wrap:anywhere;text-underline-offset:4px;padding:10px 0}
#alvidomo-app .app-access-pair{border-left:1px solid var(--amp-border);padding-left:24px}
#alvidomo-app .app-access-code{display:inline-block;vertical-align:top;margin-right:10px;margin-bottom:8px}
#alvidomo-app .app-access-code summary{cursor:pointer;min-height:44px;padding:12px 14px;background:#bdccb2;border-radius:8px;font-size:13px;color:#173c34}
#alvidomo-app .app-access-code strong{display:block;letter-spacing:5px;font-size:24px;padding:12px 0 2px;color:#173c34}
#alvidomo-app .app-access-code p{font-size:12px;color:var(--amp-muted);margin:6px 0}
#alvidomo-app .app-access-duration{border-top:1px solid var(--amp-border);margin:18px 0 0;padding-top:14px;font-size:12px;line-height:1.6;color:var(--amp-muted)}
#alvidomo-app .app-access-list{list-style:none;padding:0;margin:0;display:grid;gap:0}
#alvidomo-app .app-access-device{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,.8fr) auto;gap:20px;padding:18px 0;border-top:1px solid var(--amp-border);align-items:center;min-width:0}
#alvidomo-app .app-access-device:first-child{border-top:0;padding-top:0}
#alvidomo-app .app-access-identity{display:flex;gap:12px;align-items:flex-start;min-width:0}
#alvidomo-app .app-access-identity>div{min-width:0;overflow-wrap:anywhere}
#alvidomo-app .app-access-device-icon{display:grid;place-items:center;width:38px;height:38px;background:#bdccb2;border-radius:10px;color:#36563f;flex-shrink:0}
#alvidomo-app .app-access-device-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
#alvidomo-app .app-access-identity strong{font-size:14px;font-weight:600;color:#173c34}
#alvidomo-app .app-access-identity small{display:block;font-size:11px;color:var(--amp-muted);margin-top:5px}
#alvidomo-app .app-access-new{display:inline-block;margin-left:6px;font-size:10px;padding:3px 5px;border-radius:4px;background:#c5d2bd;color:#3c5941}
#alvidomo-app .app-access-device-details summary{font-size:11px;color:#506a50;cursor:pointer;padding:8px 0 0}
#alvidomo-app .app-access-device-details p{font-size:11px;line-height:1.6;margin:5px 0 0;color:var(--amp-muted)}
#alvidomo-app .app-access-dates{margin:0;display:grid;gap:8px;font-size:12px}
#alvidomo-app .app-access-dates div{display:grid;gap:2px}
#alvidomo-app .app-access-dates dt{font-size:11px;color:var(--amp-muted)}
#alvidomo-app .app-access-dates dd{margin:0;color:#37533e;font-variant-numeric:tabular-nums}
#alvidomo-app .app-access-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
#alvidomo-app .app-access-revoke{background:transparent;border-color:#9da994;color:#6e5144}
#alvidomo-app .app-access-revoke:hover{background:#d6d8c9}
#alvidomo-app .app-access-help{border-top:1px solid var(--amp-border);padding-top:10px;margin-top:5px}
#alvidomo-app .app-access-help summary{font-size:12px;cursor:pointer;color:#506a50;padding:10px 0}
#alvidomo-app .app-access-help p,#alvidomo-app .app-access-empty{font-size:12px;line-height:1.7;color:var(--amp-muted);margin:8px 0}
#alvidomo-app .app-access-global{display:flex;align-items:center;justify-content:space-between;gap:24px;background:transparent;padding:20px 24px}
#alvidomo-app .app-access-global h2{font-size:15px}
#alvidomo-app .app-access-global p{font-size:12px;line-height:1.7;color:var(--amp-muted);margin:6px 0 0;max-width:580px}
#alvidomo-app .app-access-global button{flex-shrink:0}
@media(max-width:1100px){#alvidomo-app .app-access-device{grid-template-columns:minmax(0,1fr) minmax(155px,.7fr)}#alvidomo-app .app-access-actions{grid-column:1/-1;justify-content:flex-start;padding-left:50px}#alvidomo-app .app-access-global{align-items:flex-start;flex-direction:column;gap:14px}}
@media(max-width:700px){#alvidomo-app .app-access-panel,#alvidomo-app #associated-devices.app-access-panel{padding:18px}#alvidomo-app .app-access-heading{align-items:flex-start;flex-direction:column;gap:12px}#alvidomo-app .app-access-connect-grid{grid-template-columns:1fr;gap:18px}#alvidomo-app .app-access-pair{padding-left:0;border-left:0;border-top:1px solid var(--amp-border);padding-top:18px}#alvidomo-app .app-access-device{grid-template-columns:1fr;gap:14px;padding:18px 0}#alvidomo-app .app-access-dates{grid-template-columns:1fr 1fr;padding-left:50px;gap:10px}#alvidomo-app .app-access-actions{padding-left:50px;gap:8px}#alvidomo-app .app-access-global{padding:18px}#alvidomo-app .app-access-global button{max-width:100%;white-space:normal;text-align:left}}
/* Ma maison : trois pièces par ligne dès que la largeur est suffisante. */
@media(min-width:1000px),(min-width:720px) and (max-width:860px){#alvidomo-app .amp-room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Pièces : titre et portée dans le bandeau, retour puis équipements. */
#alvidomo-app main>section#room-view{margin-top:0}
#alvidomo-app #room-view>.amp-back{margin-bottom:18px}
/* Résumés de types : retour à la ligne sans élargir les tuiles. */
#alvidomo-app .amp-room-choice>span:nth-child(2){min-width:0}
#alvidomo-app .amp-room-choice small{white-space:normal;overflow-wrap:anywhere;line-height:1.5}
/* Voyant de retour réel, partagé par les deux vues lumière. */
#alvidomo-app .app-light-card .amp-equipment-heading>div{flex:1;min-width:0}
#alvidomo-app .app-light-card .amp-equipment-heading h3{overflow-wrap:anywhere}
#alvidomo-app .app-light-indicator{display:block;flex-shrink:0;align-self:flex-start;width:13px;height:13px;margin:3px 0 0 auto;border-radius:50%;border:1px solid #6f7e70;background:#8b958b;box-shadow:0 0 0 3px rgba(255,255,255,.25)}
#alvidomo-app .app-light-indicator.is-on{background:#38884c;border-color:#286e39}
#alvidomo-app .app-light-indicator.is-off{background:#bd4b43;border-color:#9f3c36}
/* Voyants lumière : plus visibles, sans animation. */
#alvidomo-app .app-light-indicator{width:19px;height:19px;margin-top:1px;background:#8b958b;border-color:#69756b;box-shadow:0 0 0 3px rgba(255,255,255,.4),inset 0 2px 2px rgba(255,255,255,.3)}
#alvidomo-app .app-light-indicator.is-on{background:#16d448;border-color:#138b36;box-shadow:0 0 0 3px rgba(22,212,72,.15),0 0 9px rgba(22,212,72,.32),inset 0 2px 2px rgba(255,255,255,.55)}
#alvidomo-app .app-light-indicator.is-off{background:#ff3939;border-color:#c52b2b;box-shadow:0 0 0 3px rgba(255,57,57,.12),0 0 9px rgba(255,57,57,.28),inset 0 2px 2px rgba(255,255,255,.55)}
/* Éteint en gris plein ; inconnu en cercle creux distinct. */
#alvidomo-app .app-light-indicator.is-off{background:#788279;border-color:#59675d;box-shadow:0 0 0 3px rgba(120,130,121,.12),0 0 7px rgba(120,130,121,.18),inset 0 2px 2px rgba(255,255,255,.4)}
#alvidomo-app .app-light-indicator.is-unknown{background:transparent;border:2px dashed #98a196;box-shadow:none}

/* État des lumières directement sur Ma maison. */
#alvidomo-app .amp-room-choice.has-light{position:relative}
#alvidomo-app .amp-room-choice.has-light>span:nth-child(2){padding-right:20px}
#alvidomo-app .amp-room-choice .app-room-light-indicator{position:absolute;top:13px;right:14px;margin:0}
@media(max-width:540px){#alvidomo-app .amp-room-choice.has-light .amp-room-chevron{top:auto;bottom:12px}}

#alvidomo-app .amp-room-choice .app-room-light-indicator{width:25px;height:25px;top:11px;right:12px}

/* Essai icône volet : Salon seulement. */
#alvidomo-app .amp-room-choice.has-shutter-preview>span:nth-child(2){padding-right:54px}
#alvidomo-app .app-room-shutter-indicator{position:absolute;top:8px;right:48px;width:30px;height:30px;color:#275440;display:block}
#alvidomo-app .app-room-shutter-indicator svg{display:block;width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#alvidomo-app .app-room-shutter-indicator.is-unknown{color:#68776a}

/* Voyants et volet centrés verticalement sur les tuiles. */
#alvidomo-app .amp-room-choice .app-room-light-indicator,#alvidomo-app .amp-room-choice .app-room-shutter-indicator{top:50%;transform:translateY(-50%)}
/* Commandes groupées des volets. */
#alvidomo-app #shutters-view{display:block}
#alvidomo-app #shutters-view[hidden]{display:none}
#alvidomo-app .app-shutter-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 16px;justify-content:space-between}
#alvidomo-app .app-shutter-group{display:flex;flex-wrap:wrap;gap:10px}
#alvidomo-app .app-shutter-group button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;font-size:13px}
#alvidomo-app .app-shutter-group svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#alvidomo-app #shutter-group-status{font-size:12px;color:var(--amp-muted)}
@media(max-width:540px){#alvidomo-app .app-shutter-group{width:100%}#alvidomo-app .app-shutter-group button{flex:1;min-width:0;font-size:12px}}

/* Commandes groupées des lumières. */
#alvidomo-app .app-light-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 16px;justify-content:space-between}
#alvidomo-app .app-light-group{display:flex;flex-wrap:wrap;gap:10px}
#alvidomo-app .app-light-group button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;font-size:13px}
#alvidomo-app .app-light-group svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#alvidomo-app #light-group-status{font-size:12px;color:var(--amp-muted)}
@media(max-width:540px){#alvidomo-app .app-light-group{width:100%}#alvidomo-app .app-light-group button{flex:1;min-width:0;font-size:12px}}

/* Sur téléphone, le voyant reste dans le bandeau, sous le titre et l’horloge. */

/* Heure, date puis sauvegardes dans un seul bloc aligné à droite. */
#alvidomo-app .app-floating-clock{align-self:flex-start;margin-top:-4px}
#alvidomo-app .app-floating-clock #backup-badge{align-self:flex-end;justify-content:flex-end;order:initial;flex-basis:auto;max-width:200px;padding:2px 0;margin-top:3px;text-align:right;grid-column:auto;grid-row:auto}
#alvidomo-app .app-backup-card .app-backup-dot{width:20px;height:20px}
@media(max-width:540px){#alvidomo-app .app-floating-clock,#alvidomo-app .has-description .app-floating-clock{width:145px;min-width:0}#alvidomo-app .app-floating-clock #backup-badge{max-width:145px;font-size:10px;gap:6px}}

/* Réglage d’adresse : client portable ou rôle serveur, sans ouvrir les droits administrateur. */
#alvidomo-app .app-client-address{max-width:900px;margin:22px auto 0;padding:22px;border:1px solid #99ac91;border-radius:12px;background:#d0dbc6;color:#173c34}
#alvidomo-app .app-client-address h2{font-size:18px;letter-spacing:0;margin:0 0 12px}
#alvidomo-app .app-client-address p{font-size:13px;line-height:1.6;margin:0 0 14px}
#alvidomo-app .app-client-address small{display:block;font-size:12px;line-height:1.6;color:#52694e;margin-top:14px}
#alvidomo-app .app-server-addresses{display:grid;gap:8px;margin-bottom:16px;overflow-wrap:anywhere}
#alvidomo-app .app-server-addresses a{font-size:15px;color:#173c34;text-underline-offset:3px}
#alvidomo-app .app-client-address [role=status]:empty{display:none}
#alvidomo-app .app-local-settings-note{font-size:12px;color:#52694e;margin:18px auto;max-width:900px;line-height:1.6}


/* Meuble télé : aperçu distinct dans la tuile Salon. */
#alvidomo-app .app-room-tv-indicator{right:84px}
#alvidomo-app .app-room-tv-indicator.is-on{color:#16a53b}
#alvidomo-app .app-room-tv-indicator.is-off{color:#788279}
#alvidomo-app .app-room-tv-indicator.is-unknown{color:#68776a;opacity:.65}

/* Programmation : fenêtre locale, même palette que la maison. */
.app-programming{width:min(920px,calc(100vw - 32px));max-height:88vh;padding:0;border:1px solid #78907d;border-radius:20px;background:#d7dfd0;color:#173c34;box-shadow:0 24px 90px #122b3655}
.app-programming::backdrop{background:#102d2766;backdrop-filter:blur(3px)}
.app-programming header{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#173c34;color:#edf4e8;padding:22px 28px}
.app-programming h2{font-size:27px;margin:6px 0 0}.app-programming header small{font-size:10px;letter-spacing:1.5px}.app-program-body{padding:24px 28px}.app-program-intro{line-height:1.6;margin:0 0 20px}.app-program-intro small,.app-program-caption{color:#51695c;font-size:13px}
.app-programming .app-button{border:1px solid #6d8777;border-radius:9px;padding:10px 16px;background:#edf2e7;color:#173c34;cursor:pointer;font:inherit;min-height:42px}.app-programming .app-button:hover{background:#c3d4b7}.app-programming .app-button:disabled{opacity:.5;cursor:wait}.app-programming header .app-button{background:#31584b;color:white;border-color:#608073}
.app-program-toolbar,.app-program-item-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.app-program-toolbar h3{font-size:20px}.app-program-toolbar h3 span{font-size:14px;color:#5d745d}.app-program-item{border:1px solid #8ca28b;border-radius:14px;background:#b8c9ab;padding:20px;margin:14px 0}.app-program-item h3{margin:0 0 10px}.app-program-hour{font-size:25px;margin-right:15px}.app-program-item ul{line-height:1.8;padding-left:20px}.app-program-item details{font-size:13px;margin-bottom:15px}.app-program-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.app-program-empty{text-align:center;padding:30px 15px;border:1px dashed #8ca28b;border-radius:14px}
.app-programming input,.app-programming select{font:inherit;accent-color:#275440}.app-program-fields{display:grid;grid-template-columns:2fr 1fr;gap:18px}.app-program-fields label{display:flex;flex-direction:column;gap:8px}.app-program-fields input,.app-program-device input[type=number],.app-program-device select{padding:10px;border:1px solid #8ca28b;border-radius:8px;background:#f2f5ee;color:#173c34;min-width:0}.app-programming fieldset{border:1px solid #8ca28b;border-radius:12px;padding:16px;margin:20px 0}.app-programming legend{font-weight:600;padding:0 7px}.app-program-days{display:flex;gap:15px;flex-wrap:wrap}.app-program-equipment{display:grid;grid-template-columns:1fr 1fr;gap:10px}.app-program-device{background:#c5d4b9;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:12px}.app-program-device>label:first-child{display:flex;align-items:center;gap:7px}.app-program-target{font-size:13px}.app-program-target input{width:76px}.app-program-enable{display:flex;align-items:center;gap:9px;font-weight:600}.app-programming input[type=checkbox]{width:18px;height:18px}.app-program-toggle{white-space:nowrap;display:flex;align-items:center;gap:6px}.app-programming #program-message:empty{display:none}.app-programming #program-message{padding:10px 12px;background:#eff3e9;border-radius:8px}
@media(max-width:620px){.app-programming{width:calc(100vw - 16px);max-height:94vh}.app-programming header,.app-program-body{padding:18px}.app-program-fields,.app-program-equipment{grid-template-columns:1fr}.app-program-item-top{align-items:flex-start}.app-program-toolbar{flex-wrap:wrap}.app-program-hour{display:block;margin-bottom:8px}}

.app-programming{font-family:'Segoe UI',sans-serif;font-size:15px}
/* Centrer la fenêtre dans le contenu, hors menu latéral. */
.app-programming{position:fixed;inset:auto;left:var(--program-center-x,50vw);top:var(--program-center-y,50vh);transform:translate(-50%,-50%);margin:0;box-sizing:border-box;width:min(920px,calc(var(--program-area-width,100vw) - 32px));max-height:min(88vh,calc(var(--program-area-height,100vh) - 32px))}
@media(max-width:620px){.app-programming{width:calc(var(--program-area-width,100vw) - 16px);max-height:min(94vh,calc(var(--program-area-height,100vh) - 16px))}}

/* Accueil : identite AlviDomo au centre, pieces accessibles via Ma maison. */
#alvidomo-app #welcome-view:not([hidden]){flex:1;display:grid;place-items:center;min-height:0;position:relative;isolation:isolate;overflow:hidden;border-radius:24px}
#alvidomo-app #welcome-view::before{content:"";position:absolute;z-index:-1;width:min(700px,90%);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#d6e1c780 0,#c4d2b743 42%,transparent 69%);pointer-events:none}
#alvidomo-app .app-welcome-content{text-align:center;padding:46px 22px 54px;max-width:100%}
#alvidomo-app .app-welcome-brand{display:flex;align-items:center;justify-content:center;gap:24px;color:#173c34}
#alvidomo-app .app-welcome-logo{width:112px;height:116px;flex:none;display:grid;place-items:center;border-radius:32px 32px 32px 8px;background:#bade9b;color:#173c34;font-size:88px;font-weight:600;letter-spacing:-8px;padding-right:9px;box-shadow:0 14px 42px #173c3412}
#alvidomo-app .app-welcome-brand-copy{text-align:left;min-width:0}
#alvidomo-app .app-welcome-wordmark{font-size:clamp(46px,6vw,86px);line-height:1.04;letter-spacing:-4px;margin:0;font-weight:700}
#alvidomo-app .app-welcome-wordmark span{font-weight:350}
#alvidomo-app .app-welcome-signature{font-size:clamp(11px,1.15vw,16px);letter-spacing:.31em;line-height:1.8;margin:12px 0 0;font-weight:600;color:#52694e}
#alvidomo-app .app-welcome-greeting{font-size:21px;color:#52694e;line-height:1.6;margin:38px 0 24px}
#alvidomo-app .app-welcome-enter{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:1px solid #173c34;border-radius:13px;background:#173c34;color:#f2f6ed;padding:15px 24px;min-height:52px;font:600 15px 'Segoe UI',sans-serif;cursor:pointer;box-shadow:0 8px 24px #173c3412;transition:background .18s,transform .18s}
#alvidomo-app .app-welcome-enter:hover{background:#285548;transform:translateY(-2px)}
#alvidomo-app .app-welcome-enter:focus-visible{outline:3px solid #f3f7e9;outline-offset:4px}
#alvidomo-app .app-welcome-enter svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:540px){#alvidomo-app #welcome-view:not([hidden]){min-height:400px}#alvidomo-app .app-welcome-brand{flex-direction:column;gap:22px}#alvidomo-app .app-welcome-brand-copy{text-align:center}#alvidomo-app .app-welcome-logo{width:88px;height:92px;font-size:70px;border-radius:25px 25px 25px 6px}#alvidomo-app .app-welcome-wordmark{font-size:54px;letter-spacing:-3px}#alvidomo-app .app-welcome-signature{font-size:11px;letter-spacing:.25em}#alvidomo-app .app-welcome-greeting{font-size:18px;margin-top:28px}}
@media(prefers-reduced-motion:reduce){#alvidomo-app .app-welcome-enter{transition:none}}

/* Signature alignee sur les deux bords du nom AlviDomo. */
#alvidomo-app .app-welcome-brand-copy{width:max-content}
#alvidomo-app .app-welcome-signature{display:flex;justify-content:space-between;align-items:center;width:100%;letter-spacing:0}
#alvidomo-app .app-welcome-signature>span{flex:none}
#alvidomo-app .app-welcome-word-gap{width:.45em}

/* Plan prive de la maison : contenu charge par une API authentifiee. */
.app-house-plan{position:fixed;left:var(--plan-center-x,50%);top:50%;transform:translate(-50%,-50%);margin:0;width:var(--plan-width,94vw);max-width:none;max-height:94dvh;padding:0;border:1px solid #79917d;border-radius:18px;background:#f7f9f1;color:#173c34;box-shadow:0 24px 90px #122b3655;font-family:'Segoe UI',Arial,sans-serif}
.app-house-plan::backdrop{background:#102d2766;backdrop-filter:blur(3px)}
.app-house-plan header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 24px;background:#173c34;color:#edf4e8}.app-house-plan header small{font-size:10px;letter-spacing:1.5px;color:#bade9b}.app-house-plan h2{font-size:25px;margin:5px 0 0}.app-house-plan header button{font:inherit;font-size:13px;min-height:40px;padding:8px 14px;background:#31584b;color:#fff;border:1px solid #608073;border-radius:8px;cursor:pointer}
.app-plan-body{padding:12px 18px 16px}.app-plan-map{height:min(69dvh,780px);display:grid;place-items:center}.app-plan-map>svg{display:block;width:100%;height:100%}.app-plan-loading{text-align:center;padding:25px}.app-plan-loading[hidden]{display:none}
.app-house-plan .wall{fill:none;stroke:#25483c;stroke-width:13;stroke-linecap:square;stroke-linejoin:miter}.app-house-plan .partition{fill:none;stroke:#365749;stroke-width:8;stroke-linecap:square}.app-house-plan .opening{fill:none;stroke:#fafbf6;stroke-width:19}.app-house-plan .window{fill:none;stroke:#8cae9d;stroke-width:5}.app-house-plan .window-line{fill:none;stroke:#587f6d;stroke-width:2}.app-house-plan .door{fill:none;stroke:#8da18d;stroke-width:2.5}.app-house-plan .closet{fill:#e2e8db;stroke:#a3b29a;stroke-width:2}.app-house-plan .label{font-family:'Segoe UI',Arial,sans-serif;font-size:27px;font-weight:500;fill:#214537;text-anchor:middle}.app-house-plan .small{font-size:20px;fill:#71836c;font-weight:400}
.app-plan-marker{color:#315345;cursor:pointer}.app-plan-marker>rect{fill:#f6f9ef;stroke:#90a68b;stroke-width:2}.app-plan-marker svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.app-plan-marker text{font:600 19px 'Segoe UI',Arial,sans-serif;fill:currentColor;pointer-events:none}.app-plan-marker.is-on{color:#136d31}.app-plan-marker.is-on>rect{fill:#d4efc9;stroke:#269644;stroke-width:3}.app-plan-marker.is-off{color:#738174}.app-plan-marker.is-unknown>rect{stroke-dasharray:5 4;fill:#edf0e7}.app-plan-marker.is-moving>rect{fill:#d4efc9;stroke:#269644;stroke-width:3}.app-plan-marker:focus>rect,.app-plan-marker:hover>rect{stroke:#173c34;stroke-width:4}.app-plan-marker:focus{outline:none}
.app-plan-legend{display:flex;align-items:center;justify-content:center;gap:12px 22px;flex-wrap:wrap;font-size:12px;color:#52694e;padding-top:6px}.app-plan-legend span{display:inline-flex;align-items:center;gap:6px}.app-plan-legend i{display:inline-block;width:11px;height:11px;border-radius:50%;background:#269644}.app-plan-legend i.off{background:#788279}.app-plan-legend i.unknown{background:transparent;border:1.5px dashed #788279}.app-plan-help{font-size:12px;color:#71836c;text-align:center;line-height:1.6;margin:10px 0 0}@media(max-width:600px){.app-house-plan header{padding:14px}.app-house-plan h2{font-size:21px}.app-plan-body{padding:5px 5px 12px}.app-plan-map{height:58dvh}.app-plan-legend{font-size:10px;gap:8px 12px}.app-plan-help{padding:0 8px;font-size:10px}}

.app-house-plan .label text[data-plan-room]{cursor:pointer;paint-order:stroke;stroke:transparent;stroke-width:8px;stroke-linejoin:round}.app-house-plan .label text[data-plan-room]:hover,.app-house-plan .label text[data-plan-room]:focus{fill:#107038;stroke:#d7eacb;outline:none}
#alvidomo-app .app-plan-device{position:fixed;left:var(--plan-center-x,50%);top:50%;transform:translate(-50%,-50%);margin:0;width:340px;max-width:calc(100vw - 24px);max-height:90dvh;padding:0;border:1px solid #79917d;border-radius:16px;background:#edf1e7;color:#173c34;box-shadow:0 20px 80px #102d2760}
#alvidomo-app .app-plan-device::backdrop{background:#102d2744}
#alvidomo-app .app-plan-device header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;background:#173c34;color:#edf4e8}
#alvidomo-app .app-plan-device header h2{font-size:20px;margin:4px 0 0}#alvidomo-app .app-plan-device header small{color:#bade9b;font-size:12px}#alvidomo-app .app-plan-device header button{border:1px solid #608073;border-radius:8px;background:#31584b;color:white;padding:9px;font:inherit;cursor:pointer}
#alvidomo-app .app-plan-device-body{padding:20px;display:grid;justify-content:center}#alvidomo-app .app-plan-device-body .amp-equipment{margin:0}

#alvidomo-app .app-plan-device header h2{color:#edf4e8}

#alvidomo-app .app-plan-device{width:390px}#alvidomo-app .app-plan-device-body{display:block;padding:20px}#alvidomo-app .app-plan-device-body .amp-equipment{width:100%;max-width:none;box-sizing:border-box}#alvidomo-app .app-plan-device .app-light-commands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#alvidomo-app .app-plan-device .app-light-commands button{width:100%;min-width:0;min-height:48px;padding:10px 12px;gap:8px;font-size:14px;white-space:nowrap;justify-content:center;flex-direction:row}#alvidomo-app .app-plan-device .app-light-commands button svg{width:19px;height:19px;flex-shrink:0}

#alvidomo-app .app-plan-device .app-read-actions{display:flex;justify-content:center;width:100%;margin-top:14px}#alvidomo-app .app-plan-device .app-read-actions button{margin:0}

.app-plan-marker.is-on{color:#104e26}.app-plan-marker.is-on>rect{fill:#16d448;stroke:#138b36;stroke-width:3;filter:drop-shadow(0 0 5px #16d44888)}.app-plan-legend i.on{background:#16d448;box-shadow:0 0 7px #16d44866}#alvidomo-app .app-room-navigation{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center}#alvidomo-app .app-room-navigation .amp-back{margin-right:0}

.app-plan-marker.is-pending{cursor:wait;opacity:.65}.app-plan-marker.is-pending>rect{stroke:#e5a928;stroke-width:3}

.app-plan-workspace{display:grid;grid-template-columns:minmax(0,1fr) 196px;gap:16px;align-items:center}.app-plan-sidebar{border-left:1px solid #ccd6c5;padding:10px 0 4px 18px}.app-plan-sidebar h3{font-size:13px;margin:0 0 12px;color:#315345;letter-spacing:.2px}.app-plan-sidebar .app-plan-legend{align-items:flex-start;justify-content:flex-start;flex-direction:column;gap:9px;font-size:11px;padding:0 0 18px}.app-plan-global{border-top:1px solid #ccd6c5;padding-top:16px}.app-plan-global h3:not(:first-child){margin-top:18px}.app-plan-global button{display:flex;align-items:center;gap:12px;width:100%;padding:12px 13px;margin:8px 0;border:1px solid #a0b297;border-radius:11px;background:#e3ebdb;color:#173c34;font:600 12px/1.45 'Segoe UI',Arial,sans-serif;text-align:left;cursor:pointer;box-shadow:0 2px 4px #173c3408;transition:background .15s,transform .15s}.app-plan-global button:hover:not(:disabled){background:#d0e1c3;transform:translateY(-1px)}.app-plan-global button:disabled{opacity:.55;cursor:wait}.app-plan-action-symbol{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#173c34;color:#c9e7ad;font-size:22px;font-weight:400;flex-shrink:0}.app-plan-global [data-plan-group="lights:on"] .app-plan-action-symbol{background:#bade9b;color:#173c34}.app-plan-group-status{font-size:11px;color:#54704b;min-height:15px;margin:9px 0 0}.app-plan-workspace .app-plan-map{height:69dvh}@media(max-width:850px){.app-plan-workspace{grid-template-columns:1fr}.app-plan-sidebar{border-left:0;border-top:1px solid #ccd6c5;padding:12px 6px}.app-plan-sidebar .app-plan-legend{flex-direction:row;flex-wrap:wrap;gap:8px 14px;padding-bottom:10px}.app-plan-sidebar>h3{display:none}.app-plan-global{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:0;padding:0}.app-plan-global h3{display:none}.app-plan-global button{margin:0}.app-plan-group-status{grid-column:1/-1;margin:0}.app-plan-workspace .app-plan-map{height:46dvh}.app-house-plan{overflow:auto}}

#alvidomo-app .app-plan-device .app-read-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;margin-top:10px}#alvidomo-app .app-plan-device .app-read-actions button{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;width:100%;min-height:44px;margin:0;padding:10px 7px;border:1px solid #a5b39b;border-radius:8px;background:#e4ebdc;color:#173c34;font:500 13px 'Segoe UI',Arial,sans-serif;cursor:pointer}#alvidomo-app .app-plan-device .app-read-actions button:hover{background:#d0dfc5}#alvidomo-app .app-plan-device .app-read-actions svg{width:16px;height:16px}#alvidomo-app .app-plan-device .app-close-only{grid-template-columns:1fr}#alvidomo-app .app-plan-device .amp-commands:not(.app-light-commands){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}#alvidomo-app .app-plan-device .amp-commands:not(.app-light-commands) button{min-width:0;width:100%;min-height:48px;padding:10px;justify-content:center}

#alvidomo-app .app-tv-card{height:auto!important;min-height:248px}.app-plan-marker.is-tv-on>rect{fill:#dae8ed;stroke:#4b7d88;stroke-width:3}#alvidomo-app .app-tv-state{font-size:15px;margin:15px 0;color:#315345}#alvidomo-app .app-tv-card button{min-height:40px;border:1px solid #a3b39a;border-radius:8px;background:#e4ebdc;color:#173c34;cursor:pointer;font:500 12px 'Segoe UI',Arial,sans-serif}#alvidomo-app .app-tv-card button:disabled{opacity:.5;cursor:wait}#alvidomo-app .app-tv-sound,#alvidomo-app .app-tv-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}#alvidomo-app .app-tv-sound button{font-size:17px}#alvidomo-app .app-tv-navigation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:12px 0}#alvidomo-app .app-tv-navigation button:nth-child(1){grid-area:1/2}#alvidomo-app .app-tv-navigation button:nth-child(2){grid-area:2/1}#alvidomo-app .app-tv-navigation button:nth-child(3){grid-area:2/2;background:#173c34;color:#edf4e8}#alvidomo-app .app-tv-navigation button:nth-child(4){grid-area:2/3}#alvidomo-app .app-tv-navigation button:nth-child(5){grid-area:3/2}

#alvidomo-app .app-tv-power,#alvidomo-app .app-tv-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}#alvidomo-app .app-tv-volume{font-size:14px;margin:16px 0 9px;color:#315345}#alvidomo-app .app-tv-card .is-active{background:#16d448;color:#104e26;border-color:#138b36;box-shadow:0 0 7px #16d44855}

#alvidomo-app .app-tv-card button.is-active{background:#8ba47c;color:#173c34;border-color:#5d7f50;box-shadow:inset 0 2px 3px #36512e26}#alvidomo-app #room-devices.compact-preview .app-tv-card button.is-active{background:#6e8e60;color:#f7faef;border-color:#4a6d40;box-shadow:inset 0 2px 3px #36512e40}

#alvidomo-app .app-tv-card button.is-active:disabled{opacity:1}

.app-plan-window-actions{display:flex;align-items:center;gap:10px}.app-house-plan.is-fullscreen[open]{display:flex;flex-direction:column;left:0;top:0;transform:none;width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;border:0;border-radius:0;margin:0;box-sizing:border-box}.app-house-plan.is-fullscreen>header{flex-shrink:0}.app-house-plan.is-fullscreen .app-plan-body{display:flex;flex-direction:column;flex:1;min-height:0;box-sizing:border-box;overflow:auto}.app-house-plan.is-fullscreen .app-plan-workspace{flex:1;min-height:0;align-items:stretch}.app-house-plan.is-fullscreen .app-plan-map{height:100%;min-height:0}.app-house-plan.is-fullscreen .app-plan-sidebar{align-self:center}.app-house-plan.is-fullscreen .app-plan-help{flex-shrink:0}.app-plan-window-actions [aria-pressed="true"]{background:#6e8e60;border-color:#bade9b}@media(max-width:850px){.app-house-plan.is-fullscreen .app-plan-workspace{grid-template-rows:minmax(220px,1fr) auto}.app-house-plan.is-fullscreen .app-plan-map{min-height:220px}.app-house-plan.is-fullscreen .app-plan-sidebar{align-self:stretch}.app-plan-window-actions{gap:6px}.app-house-plan .app-plan-window-actions button{font-size:11px;padding:7px 9px}}

.app-contact-state{font-size:1.7rem;font-weight:700;margin:20px 0;color:#66716a}.app-contact-state.is-open{color:#b45b19}.app-contact-state.is-closed{color:#246b45}.app-plan-marker.is-contact-open>rect{fill:#fff0db;stroke:#c67a29}.app-plan-marker.is-contact-closed>rect{fill:#dcebd9;stroke:#5d7f50}.app-contact-card small{display:block}.app-contact-card .app-read-actions{margin-top:18px}

.app-plan-door{cursor:pointer;--door-state:#7d8781}.app-plan-door.is-contact-open{--door-state:#ff202d}.app-plan-door.is-contact-closed{--door-state:#22b653}.app-plan-door-hit{fill:none;stroke:transparent;stroke-width:32;pointer-events:stroke}.app-plan-door-line{fill:none;stroke:var(--door-state);stroke-width:16;stroke-linecap:round;pointer-events:none}.app-plan-door.is-unknown .app-plan-door-line{stroke-dasharray:8 6}.app-plan-door:focus{outline:none}.app-plan-door:focus .app-plan-door-line{stroke-width:20;filter:drop-shadow(0 0 4px var(--door-state))}

.app-journal-filter{flex-wrap:wrap;gap:12px}.app-journal-filter input[type=date]{font:inherit;padding:9px 12px;border:1px solid #bccbbd;border-radius:9px;background:#fff;color:#203d30}.app-journal-item time{white-space:nowrap;min-width:165px}#journal-warning{color:#a33b20}@media(max-width:650px){.app-journal-item summary{flex-wrap:wrap}.app-journal-item time{white-space:normal}}
