*{box-sizing:border-box}body{margin:0;background:#0b1220;color:#edf3fa;font:15px system-ui,-apple-system,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}.wrap{max-width:1100px;margin:auto;padding:28px 22px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px}.logo{font-weight:800;letter-spacing:.1em;color:#6ee7b7}.muted{color:#9aaabd}.eyebrow{color:#6ee7b7;font-size:12px;text-transform:uppercase;letter-spacing:.16em}.hero{padding:65px 0 35px}h1{font-size:clamp(32px,5vw,56px);line-height:1.08;margin:14px 0}h2{font-size:21px;margin:0 0 20px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:#141f31;border:1px solid #2a3b50;border-radius:20px;padding:24px;box-shadow:0 12px 40px #0002}.tile{display:block;transition:.2s}.tile:hover{transform:translateY(-3px);border-color:#6ee7b7}.icon{font-size:34px}.badge{display:inline-block;border:1px solid #4a6475;color:#b5c8d6;padding:6px 10px;border-radius:99px;font-size:12px}.value{font-size:33px;font-weight:750;margin:10px 0 3px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.button{display:inline-block;background:#6ee7b7;color:#08271d;padding:12px 16px;border:0;border-radius:12px;font-weight:750;cursor:pointer}.button:disabled{opacity:.5;cursor:not-allowed}.ghost{background:#233449;color:#e8f3f6}.banner{background:#47351d;color:#ffe1a5;border:1px solid #8c6530;padding:13px 16px;border-radius:13px;margin:20px 0}.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.pill{padding:9px 12px;border:1px solid #3c5368;border-radius:10px;background:#1b2c40;color:#d4e0eb}.pill.active{background:#155b49;border-color:#6ee7b7;color:white}.section{margin:28px 0}.wide{grid-column:span 2}.small{font-size:13px}.foot{border-top:1px solid #263649;padding:25px 0;margin-top:35px}.hidden{display:none}@media(max-width:760px){.grid{grid-template-columns:1fr}.wide{grid-column:auto}.hero{padding-top:36px}.wrap{padding:20px 16px}.card{padding:20px}}
.auth-wrap{max-width:520px;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:28px}
.auth-wrap h1{font-size:34px}form{display:flex;flex-direction:column;gap:18px;margin-top:22px}
label{display:flex;flex-direction:column;gap:8px;color:#cbd7e4;font-weight:600}
input{width:100%;border:1px solid #3c5368;background:#0d1726;color:#fff;border-radius:12px;padding:15px;font:inherit;min-height:50px}
input:focus{outline:2px solid #6ee7b7;outline-offset:1px}
form .button{min-height:52px;font-size:16px}

.password-toggle{align-self:flex-end;margin-top:-3px;padding:7px 12px;border:1px solid #3c5368;background:#182b3c;color:#d8f5ee;border-radius:9px;min-height:38px;font:inherit;cursor:pointer}.password-toggle:focus-visible{outline:2px solid #6ee7b7;outline-offset:2px}

.install-card{margin:26px 0;border-color:#3e947c;background:linear-gradient(150deg,#152f32,#141f31 70%)}.install-card h2{margin:10px 0}.install-btn{display:block;width:100%;padding:17px 20px;font-size:16px;min-height:56px;margin:20px 0 10px}.install-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}@media(min-width:760px){.install-card{max-width:720px}}

/* Respecte l'attribut hidden, même si un style display est appliqué. */
[hidden] { display: none !important; }

/* Masquage natif dans la PWA installée, sans dépendre du JavaScript. */
@media (display-mode: standalone), (display-mode: fullscreen), (display-mode: minimal-ui) {
  #install-card { display: none !important; }
}
html.pwa-installed #install-card { display: none !important; }

.register-grid{display:grid;gap:8px;margin-top:14px}.register-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #293748;overflow-wrap:anywhere}.register-row strong{text-align:right}

/* Poêle Salon : disposition compacte mobile-first, sans scroll pour les commandes principales. */
.stove-page{overflow:hidden}.stove-shell{height:100dvh;display:flex;flex-direction:column;max-width:760px;margin:auto}.stove-fixed{flex:0 0 auto;background:#111d2b;border-bottom:1px solid #2b4053;padding:12px 16px 10px}.stove-head,.stove-line{display:flex;align-items:center;justify-content:space-between;gap:8px}.stove-head .logo{font-size:14px;letter-spacing:.05em}.stove-head .logo span{color:#b9cad8;font-weight:500}.settings-link{font-size:23px}.stove-line{font-size:12px;color:#b4c7d6;margin:8px 0}.status-dot{color:#6ee7b7}.stove-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.stove-kpis>div{background:#1b2d40;border:1px solid #2d4256;border-radius:12px;padding:9px 5px;text-align:center;min-width:0}.stove-kpis span{display:block;color:#a9bacb;font-size:10px;white-space:nowrap}.stove-kpis strong{display:block;font-size:clamp(14px,4vw,20px);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stove-alert{font-size:11px;color:#f2d6a4;margin:8px 0 0;line-height:1.3}.stove-content{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px 16px 18px;overscroll-behavior:contain}.stove-panel h1{font-size:23px;margin:0 0 10px}.stove-panel h2{font-size:15px;margin:18px 0 8px}.stove-panel p{margin:8px 0 12px}.compact-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 3px;border-bottom:1px solid #2b3d50}.compact-row strong{color:#fff}.compact-pills{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin:10px 0}.compact-pills button{padding:12px 0;border:1px solid #3d536a;background:#1a2a3d;color:#c7d8e6;border-radius:9px;opacity:.65}.schedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.schedule{display:flex;flex-direction:column;gap:7px;background:#192a3c;padding:18px 12px;border-radius:14px}.schedule strong{font-size:30px;color:#6ee7b7}.schedule small{color:#a9bacb}.stove-nav{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:#111d2b;border-top:1px solid #2c4053;padding:8px 10px max(8px,env(safe-area-inset-bottom))}.nav-btn{border:0;border-radius:12px;background:transparent;color:#9cabbc;font:600 11px system-ui;min-height:53px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.nav-btn span{font-size:21px}.nav-btn.active{background:#1d5145;color:#9df2d5}.stove-content .install-card{margin:18px 0}.stove-content .install-btn{margin:10px 0}.stove-page [hidden]{display:none!important}
@media(min-width:761px){.stove-shell{border-inline:1px solid #293b50}.stove-content{padding:22px}}

/* v1.2: navigation visible dans Android standalone même avec barres système */
.stove-shell{height:100%;height:100dvh;min-height:0;overflow:hidden}
.stove-nav{position:relative;z-index:50;flex-shrink:0;min-height:72px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 20px #0005}
.stove-content{min-height:0;touch-action:pan-y;overscroll-behavior-x:contain}
.stove-panel{min-height:100%}
.nav-btn{touch-action:manipulation;min-height:55px}
@supports (-webkit-touch-callout:none){.stove-shell{height:-webkit-fill-available}}
