:root{--ink:#162b2f;--muted:#6b7b7e;--brand:#0d4148;--brand2:#17656d;--gold:#efc75e;--bg:#f3f6f5;--line:#dce6e4;--white:#fff;--green:#0c825b;--red:#b64242;--amber:#9b6812;--shadow:0 12px 38px rgba(18,54,58,.09);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:16px}button,input,select,textarea{font:inherit}a{text-decoration:none;color:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:238px 1fr}.side{background:var(--brand);color:#fff;padding:26px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;margin:0 7px 36px}.logo{width:41px;height:41px;background:var(--gold);color:var(--brand);border-radius:12px;display:grid;place-items:center;font-weight:900;font-size:20px}.brand b{display:block;font-size:17px}.brand small{color:#bad0d1}.nav{display:grid;gap:6px}.nav a{padding:12px 13px;border-radius:10px;color:#c6d8d9;font-weight:650}.nav a.active,.nav a:hover{background:#fff;color:var(--brand)}.account{margin-top:auto;padding:14px;border:1px solid rgba(255,255,255,.14);border-radius:12px}.account small{color:#bad0d1}.account a{display:block;margin-top:8px;color:var(--gold);font-size:14px}.main{padding:28px 32px 50px;min-width:0}.top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:23px}.top h1{margin:0;font-size:28px}.muted{color:var(--muted);font-size:14px}.btn{border:1px solid var(--line);background:#fff;padding:10px 14px;border-radius:10px;font-weight:750;color:var(--ink);cursor:pointer}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.danger{color:var(--red)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.stat,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 18px rgba(18,54,58,.035)}.stat{padding:18px}.stat span{color:var(--muted);font-size:14px}.stat b{display:block;font-size:29px;margin-top:7px}.grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.panel{padding:18px}.panel h2{font-size:18px;margin:0 0 15px}.rooms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.room{border:1px solid var(--line);padding:14px;border-radius:13px;background:#fbfcfc}.room-head{display:flex;justify-content:space-between;align-items:start}.room strong{font-size:21px}.room p{color:var(--muted);font-size:13px;min-height:37px}.badge{font-size:12px;padding:5px 8px;border-radius:20px;font-weight:800}.available{background:#e5f5ee;color:var(--green)}.occupied{background:#ffedeb;color:var(--red)}.cleaning{background:#fff4d9;color:var(--amber)}.maintenance{background:#eceff0;color:#5e6d70}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);font-size:14px}.table th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.table form{display:inline}.list{display:grid;gap:0}.event{padding:12px 0;border-top:1px solid var(--line)}.event:first-child{border:0}.event b{display:block;font-size:14px}.event small{color:var(--muted)}.flash{padding:12px 15px;border-radius:11px;margin-bottom:17px;background:#e5f5ee;color:#076d4b}.flash.error{background:#ffedeb;color:#9b3535}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:14px;font-weight:700}.field input,.field select,.field textarea{width:100%;padding:11px;border:1px solid #cddbd9;border-radius:9px;background:#fff}.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#092f35,#17656d);padding:20px}.login{background:#fff;border-radius:20px;padding:29px;width:min(430px,100%);box-shadow:0 25px 75px rgba(0,0,0,.25)}.login h1{margin:17px 0 6px}.login .logo{margin:auto}.login form{display:grid;gap:14px;margin-top:24px}.login .btn{width:100%;justify-content:center}.section-actions{display:flex;gap:8px;align-items:center}.empty{padding:22px;text-align:center;color:var(--muted)}
.input-action{display:flex;gap:8px;align-items:stretch}.input-action input{min-width:0;flex:1}.input-action .btn{white-space:nowrap}.info{padding:15px;border-radius:12px;background:#edf5f4;border:1px solid #d5e6e3;color:#31565b;margin-bottom:16px}.info b{display:block;color:var(--brand);margin-bottom:4px}.toast{position:fixed;right:22px;bottom:22px;background:var(--ink);color:#fff;padding:13px 17px;border-radius:11px;box-shadow:var(--shadow);opacity:0;transform:translateY(80px);transition:.2s;z-index:50}.toast.show{opacity:1;transform:none}.btn[disabled]{opacity:.6;cursor:wait}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.rooms{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.shell{display:block}.side{height:auto;position:static;padding:14px}.brand{margin:0 0 12px}.nav{grid-template-columns:repeat(3,1fr);overflow:auto}.nav a{font-size:13px;padding:9px;text-align:center}.account{display:none}.main{padding:19px 14px 35px}.top{align-items:flex-start}.top h1{font-size:23px}.stats{gap:8px}.stat{padding:13px}.stat b{font-size:23px}.rooms{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.input-action{flex-direction:column}}

/* Direction visuelle Novetech 2.0 */
:root{--ink:#10252c;--muted:#718084;--brand:#073d44;--brand2:#09606a;--gold:#e9b94f;--bg:#f4f7f8;--line:#e1e9eb;--white:#fff;--green:#08795a;--red:#b33d48;--amber:#9a6513;--shadow:0 10px 32px rgba(16,50,58,.07)}
body{background:var(--bg);letter-spacing:-.005em}.shell{grid-template-columns:258px minmax(0,1fr)}.side{background:linear-gradient(180deg,#082f36 0%,#0a4850 100%);padding:28px 18px 22px;box-shadow:8px 0 28px rgba(7,44,50,.08)}.brand{margin:0 8px 31px}.logo{width:44px;height:44px;border-radius:13px;box-shadow:0 7px 18px rgba(233,185,79,.22)}.brand b{font-size:18px;letter-spacing:-.02em}.brand small{font-size:12px;letter-spacing:.04em}.nav-label{font-size:10px;font-weight:800;letter-spacing:.17em;color:#7fa5aa;margin:0 13px 10px}.nav{gap:4px}.nav a{padding:11px 13px;border-radius:9px;font-size:14px;border:1px solid transparent;transition:.18s}.nav a.active{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.12);box-shadow:inset 3px 0 0 var(--gold)}.nav a:hover{background:rgba(255,255,255,.08);color:#fff}.account{background:rgba(3,31,36,.24);border-color:rgba(255,255,255,.1);padding:15px}.account small{font-size:9px;font-weight:800;letter-spacing:.14em}.account b{display:block;margin-top:7px;font-size:13px}.account span{display:block;color:#9ebabe;font-size:12px;margin-top:2px}.account a{font-weight:700}.main{padding:34px 38px 55px;max-width:1660px}.top{margin-bottom:28px}.top h1{font-size:31px;letter-spacing:-1px}.top .muted{text-transform:capitalize;margin:0 0 4px}.btn{min-height:42px;border-radius:9px;padding:10px 15px;transition:.18s;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(18,54,58,.09)}.btn.primary{background:linear-gradient(135deg,var(--brand),var(--brand2));box-shadow:0 8px 22px rgba(9,96,106,.17)}.btn.secondary{background:#fff3d5;color:#76500a;border-color:#f0d28b}.btn.accent{background:#fff8e9;border-color:#ebcd83;color:#7b570e}.btn.wide{width:100%;margin-top:15px}.stats{gap:16px}.stat{padding:20px 21px;border:0;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--brand2)}.stat:nth-child(4):before{background:var(--gold)}.stat b{font-size:31px;letter-spacing:-1.2px}.panel{border:0;border-radius:15px;box-shadow:var(--shadow);padding:22px}.panel h2{font-size:18px;letter-spacing:-.25px}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px}.panel-title h2{margin:3px 0 0}.kicker{font-size:10px;color:var(--brand2);font-weight:850;letter-spacing:.14em}.step{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#edf5f5;color:var(--brand);font-weight:850}.count-pill{font-size:12px;font-weight:800;color:var(--brand);background:#ecf5f4;padding:7px 10px;border-radius:99px}.rooms{gap:12px}.room{background:#fff;border-color:#e1e9e8;border-radius:12px;padding:15px;box-shadow:none}.room:hover{border-color:#abc8c8;box-shadow:0 8px 22px rgba(18,54,58,.06)}.badge{letter-spacing:.01em}.field{margin-top:12px}.field label{font-size:13px;color:#294148}.field input,.field select,.field textarea{border-color:#d6e1e2;border-radius:9px;padding:11px 12px;transition:.16s}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(9,96,106,.1);border-color:#4b969c}.field-help{font-size:12px;color:var(--muted);margin-top:2px}.select-action,.input-action{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px}.add-square{width:44px;height:44px;border-radius:10px;background:var(--gold);color:#3e2c06;font-size:24px;font-weight:700;display:grid;place-items:center;box-shadow:0 6px 15px rgba(233,185,79,.2)}.inline-notice{background:#f1f6f6;border:1px dashed #c9dddd;color:#607579;border-radius:9px;padding:11px 13px;font-size:13px}.new-guest-fields{grid-column:1/-1}.form-submit{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:8px}.table th{background:#f7f9fa;color:#75858a;padding:11px}.table td{padding:14px 11px}.table tbody tr:hover{background:#fafcfc}.info{background:linear-gradient(135deg,#e9f3f3,#f5f9f8);border:0;border-left:4px solid var(--brand2);box-shadow:var(--shadow)}.finance-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.finance-stats article{background:#fff;border-radius:15px;padding:20px;border:1px solid var(--line);box-shadow:var(--shadow)}.finance-stats span{display:block;font-size:10px;letter-spacing:.12em;color:var(--muted);font-weight:850}.finance-stats b{display:block;font-size:25px;letter-spacing:-.8px;margin:9px 0 5px}.finance-stats b small{font-size:11px;letter-spacing:.04em}.finance-stats em{font-size:12px;color:var(--muted);font-style:normal}.finance-stats .expense-card{background:linear-gradient(145deg,#173c43,#0c5962);color:#fff;border:0}.finance-stats .expense-card span,.finance-stats .expense-card em{color:#b8ced1}.finance-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.65fr);gap:18px}.finance-actions{display:grid;gap:18px}.money-positive{color:var(--green);font-weight:750}.money-due{color:var(--red);font-weight:800}
@media(max-width:1180px){.finance-stats{grid-template-columns:repeat(2,1fr)}.finance-grid{grid-template-columns:1fr}.main{padding:28px 25px}}@media(max-width:760px){.shell{display:block}.side{height:auto;position:relative}.main{padding:21px 14px 40px}.finance-stats{grid-template-columns:1fr 1fr}.select-action,.input-action{grid-template-columns:minmax(0,1fr) 44px}.form-submit{align-items:stretch;flex-direction:column}.top h1{font-size:26px}}@media(max-width:460px){.finance-stats,.stats{grid-template-columns:1fr}.top{flex-direction:column}.top .btn{width:100%}}
@media(min-width:721px) and (max-width:760px){.shell{display:grid;grid-template-columns:210px minmax(0,1fr)}.side{display:flex;height:100vh;position:sticky;padding:24px 14px}.brand{display:flex;margin:0 5px 26px}.nav{display:grid;grid-template-columns:1fr;overflow:visible}.nav a{text-align:left;font-size:13px;padding:10px}.account{display:block}.main{padding:25px 20px 45px}.top{flex-direction:row}.top .btn{width:auto}}
.input-action{grid-template-columns:minmax(0,1fr) auto}.input-action .btn{padding-left:14px;padding-right:14px}
.pricing-preview{background:linear-gradient(135deg,#073d44,#09606a);color:#fff;border-radius:13px;padding:17px 19px;display:grid;gap:5px;box-shadow:0 10px 24px rgba(7,61,68,.18)}.pricing-preview span{font-size:9px;font-weight:850;letter-spacing:.16em;color:#9ed0d4}.pricing-preview b{font-size:22px}.pricing-preview small{color:#d6e9ea}.rate-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px}.rate-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;align-content:start}.rate-card{border:1px solid var(--line);border-radius:12px;padding:15px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:11px;background:#fbfcfc}.rate-card>div span{font-size:10px;color:var(--brand2);font-weight:850;text-transform:uppercase;letter-spacing:.1em}.rate-card h3{margin:4px 0 3px;font-size:16px}.rate-card small{color:var(--muted)}.rate-card>strong{color:var(--brand);font-size:18px;white-space:nowrap}.rate-card>form{grid-column:1/-1}.rate-card>form .btn{min-height:34px;padding:6px 10px;font-size:12px}.rate-card.disabled{opacity:.55;background:#f1f3f3}.rate-form{border-left:1px solid var(--line);padding-left:20px}.rate-form h2{margin-top:4px}@media(max-width:1050px){.rate-layout{grid-template-columns:1fr}.rate-form{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}}@media(max-width:600px){.rate-cards{grid-template-columns:1fr}}
[hidden]{display:none!important}.section-copy{color:var(--muted);font-size:13px;line-height:1.55;margin:7px 0 0;max-width:720px}.rate-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}.rate-list{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fff}.rate-list-head,.rate-row{display:grid;grid-template-columns:1.05fr 1.1fr 1.45fr .95fr .7fr auto;gap:13px;align-items:center}.rate-list-head{background:#f2f6f6;color:#667a7e;padding:11px 14px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.rate-row{padding:14px;border-top:1px solid var(--line);min-height:72px}.rate-row:first-of-type{border-top:0}.rate-row>span{min-width:0;font-size:13px}.rate-row>span>strong{font-size:16px;color:var(--brand);white-space:nowrap}.rate-row>span>strong small{font-size:10px}.rate-row small{color:var(--muted);line-height:1.35}.rate-row.disabled{opacity:.58;background:#f5f6f6}.rate-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-style:normal;font-weight:800;padding:6px 9px;border-radius:99px}.rate-status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.rate-status.active{background:#e5f5ee;color:var(--green)}.rate-status.inactive{background:#eceff0;color:#667579}.btn.compact{min-height:34px;padding:6px 10px;font-size:11px}.rate-form{border-left:1px solid var(--line);padding-left:24px}.rate-form h2{margin:4px 0 0}.rate-form .section-copy{margin-bottom:15px}@media(max-width:1250px){.rate-layout{grid-template-columns:1fr}.rate-form{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}}@media(max-width:900px){.rate-list{border:0;background:transparent;display:grid;gap:12px}.rate-list-head{display:none}.rate-row{border:1px solid var(--line)!important;border-radius:12px;background:#fff;grid-template-columns:1fr 1fr;gap:14px;padding:16px}.rate-row>span:before{content:attr(data-label);display:block;font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:#849397;margin-bottom:5px}.rate-row>span:last-child{grid-column:1/-1}.rate-row>span:last-child .btn{width:100%}}@media(max-width:760px){.rate-row{grid-template-columns:1fr}.rate-row>span:last-child{grid-column:auto}.panel#rates{padding:17px}.panel#rates .panel-title{align-items:flex-start}.rate-form{padding-top:18px}}
.rate-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.rate-actions form{margin:0}.rate-actions .btn{white-space:nowrap}@media(max-width:900px){.rate-actions{display:grid;grid-template-columns:1fr 1fr}.rate-actions form,.rate-actions .btn{width:100%}}@media(max-width:520px){.rate-actions{grid-template-columns:1fr}}
.room-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.room-actions form,.room-actions .btn{width:100%}.room-actions form{margin:0}

/* Organisation multi-établissements et création guidée des chambres */
.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.property-switcher{display:grid;gap:3px;min-width:245px}.property-switcher label{font-size:9px;font-weight:850;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.property-switcher select{width:100%;padding:9px 34px 9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--brand);font-weight:750}.structure-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;padding:26px 28px;border-radius:18px;color:#fff;background:radial-gradient(circle at 82% 0,rgba(47,163,155,.32),transparent 35%),linear-gradient(135deg,#0c3940,#0d5962);box-shadow:0 16px 38px rgba(9,55,62,.15)}.structure-hero h2{font-size:28px;margin:5px 0}.structure-hero p{margin:0;color:#c7dcdf}.structure-hero .kicker{color:#8ed0d2}.structure-metrics{display:flex;gap:9px}.structure-metrics span{min-width:92px;padding:13px;border:1px solid rgba(255,255,255,.15);border-radius:12px;background:rgba(255,255,255,.08);font-size:10px;color:#bed6d9}.structure-metrics b{display:block;font-size:23px;color:#fff;margin-bottom:3px}.structure-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.7fr);gap:18px;align-items:start}.structure-grid.lower{margin-top:18px}.property-list,.hierarchy-list,.structure-actions{display:grid;gap:12px}.property-card{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px;border:1px solid var(--line);border-radius:13px;background:#fbfcfc}.property-card.selected{border-color:#81b4b5;background:#f0f7f6;box-shadow:inset 3px 0 0 var(--brand2)}.property-card small{font-size:9px;font-weight:850;letter-spacing:.13em;color:var(--brand2)}.property-card h3{font-size:16px;margin:5px 0 3px}.property-card p{font-size:12px;color:var(--muted);margin:0}.hierarchy-list>article{padding:16px;border:1px solid var(--line);border-radius:13px}.hierarchy-building{display:flex;align-items:center;gap:12px}.hierarchy-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--brand);color:#fff;font-weight:850}.hierarchy-building div{display:grid;gap:3px}.hierarchy-building small{color:var(--muted)}.hierarchy-building em{margin-left:auto;font-size:11px;font-style:normal;color:var(--muted)}.floor-chips{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0 0 48px}.floor-chips span{padding:7px 9px;border-radius:8px;background:#edf4f4;color:var(--brand);font-size:11px;font-weight:750}.floor-chips small{color:var(--muted);font-weight:500}.room-workspace{display:grid;grid-template-columns:minmax(0,1fr) 385px;gap:18px;align-items:start}.room-workspace+.grid{display:none}.room-catalog .rooms{grid-template-columns:repeat(3,minmax(180px,1fr))}.room-location{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:600}.room-builder{position:sticky;top:18px}.room-builder h2{margin:4px 0 16px}.creation-tabs{display:grid;grid-template-columns:1fr 1fr;margin:0 -4px 16px;padding:4px;border-radius:11px;background:#edf3f3}.creation-tabs button{border:0;border-radius:8px;padding:10px;background:transparent;color:var(--muted);font-weight:800;cursor:pointer}.creation-tabs button.active{background:#fff;color:var(--brand);box-shadow:0 4px 13px rgba(15,61,67,.09)}.range-fields{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:end}.range-fields>span{padding-bottom:11px;color:var(--muted);font-weight:800}.batch-preview{display:grid;gap:4px;margin:15px 0;padding:14px;border-radius:11px;background:linear-gradient(135deg,#edf6f5,#f8fbfb);border:1px solid #dbe9e7}.batch-preview span{font-size:9px;color:var(--brand2);font-weight:850;letter-spacing:.12em}.batch-preview b{font-size:14px}.batch-preview small{color:var(--muted);line-height:1.45}.device-details{margin-top:15px;padding:13px;border:1px solid var(--line);border-radius:11px;background:#fafcfc}.device-details summary{cursor:pointer;color:var(--brand);font-size:13px;font-weight:800}.room-empty{grid-column:1/-1}.single-room-fields{display:block}
.organization-settings{margin:-7px 0 18px;padding:0 20px}.organization-settings summary{padding:15px 0;cursor:pointer;color:var(--brand);font-size:13px;font-weight:850}.organization-form{display:grid;grid-template-columns:1.2fr 1fr 1.2fr auto;gap:12px;align-items:end;padding:0 0 18px}.organization-form .field{margin:0}.organization-form .btn{margin-bottom:1px}
@media(max-width:1220px){.structure-grid,.room-workspace{grid-template-columns:1fr}.room-builder{position:static}.room-catalog .rooms{grid-template-columns:repeat(3,minmax(170px,1fr))}.organization-form{grid-template-columns:1fr 1fr}}@media(max-width:850px){.top{align-items:flex-start}.top-actions{align-items:stretch;flex-direction:column}.property-switcher{min-width:210px}.structure-hero{align-items:flex-start;flex-direction:column}.structure-metrics{width:100%}.structure-metrics span{flex:1}.room-catalog .rooms{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:560px){.top{flex-direction:column}.top-actions,.property-switcher{width:100%}.structure-metrics{display:grid;grid-template-columns:repeat(3,1fr)}.structure-metrics span{min-width:0}.room-catalog .rooms{grid-template-columns:1fr}.range-fields,.organization-form{grid-template-columns:1fr}.range-fields>span{display:none}.floor-chips{margin-left:0}}

/* Navigation structurée et comptes utilisateurs */
.side{overflow:hidden}.side-nav-wrap{flex:1;min-height:0;overflow-y:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.nav-group+.nav-group{margin-top:20px}.nav-group .nav-label{margin-bottom:7px}.account{flex:0 0 auto;margin-top:16px}.account-links{display:flex;justify-content:space-between;gap:10px;margin-top:9px}.account-links a{margin:0;font-size:12px}.permission-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 18px}.permission-strip article{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;box-shadow:0 5px 18px rgba(16,50,58,.045)}.permission-strip b{display:block;color:var(--brand);font-size:13px;margin-bottom:5px}.permission-strip span{display:block;color:var(--muted);font-size:11px;line-height:1.45}.user-management{grid-template-columns:minmax(0,1fr) 360px}.user-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.user-actions form{margin:0}.password-reset{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.password-reset h3{font-size:15px;margin:0}.profile-layout{display:grid;grid-template-columns:280px minmax(0,560px);gap:18px;align-items:start}.profile-card{text-align:center}.profile-avatar{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;margin:18px auto 12px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-size:30px;font-weight:850}.profile-card h2{margin-bottom:4px}.profile-card p{color:var(--muted);margin:0 0 14px}
@media(max-width:1180px){.permission-strip{grid-template-columns:repeat(3,1fr)}.user-management{grid-template-columns:1fr}}
@media(max-width:760px){.shell{display:block!important}.side{width:100%;height:auto;position:relative;overflow:visible;padding:12px 14px}.brand{margin:0 0 8px}.side-nav-wrap{overflow:visible;padding:0}.nav-group+.nav-group{margin-top:8px}.nav-group .nav-label{margin:0 4px 4px;font-size:8px}.nav-group .nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.nav-group .nav a{text-align:center;font-size:10px;padding:7px 4px;min-height:34px;display:grid;place-items:center}.account{display:block;margin-top:10px;padding:9px 11px}.account small{display:none}.account b,.account span{display:inline;font-size:11px}.account span:before{content:" · "}.account-links{float:right;margin:0}.permission-strip{grid-template-columns:1fr 1fr}.profile-layout{grid-template-columns:1fr}.user-actions{display:grid;grid-template-columns:1fr 1fr}.user-actions form,.user-actions .btn{width:100%}}
@media(max-width:460px){.permission-strip{grid-template-columns:1fr}.nav-group .nav{grid-template-columns:repeat(3,minmax(0,1fr))}.account{display:grid;gap:4px}.account-links{float:none}.account-links a{font-size:11px}}

/* Hiérarchie SaaS : plateforme > organisation > établissement */
.tenant-context{display:grid;gap:4px;margin:-14px 2px 22px;padding:12px 13px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.06)}.tenant-context small{font-size:8px;letter-spacing:.14em;color:#8eb4b8;font-weight:850}.tenant-context b{font-size:13px}.tenant-context span{font-size:10px;color:#c0d6d8}.platform-banner,.portfolio-head,.property-setup-head{display:flex;justify-content:space-between;align-items:center;gap:26px;margin-bottom:18px;padding:27px 29px;border-radius:18px;background:linear-gradient(135deg,#092f36,#0a5962);color:#fff;box-shadow:0 16px 38px rgba(9,55,62,.15)}.platform-banner h2,.portfolio-head h2,.property-setup-head h2{font-size:28px;margin:5px 0}.platform-banner p,.portfolio-head p,.property-setup-head p{max-width:720px;margin:0;color:#c6dade;line-height:1.55}.platform-banner .kicker,.portfolio-head .kicker,.property-setup-head .kicker{color:#8ed0d2}.platform-stats{display:flex;gap:10px}.platform-stats span{min-width:105px;padding:13px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.07);font-size:10px;color:#bfd4d7}.platform-stats b{display:block;font-size:24px;color:#fff;margin-bottom:3px}.saas-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:18px;align-items:start}.tenant-list{display:grid}.tenant-row{display:grid;grid-template-columns:44px minmax(190px,1fr) repeat(3,82px) 86px auto;gap:13px;align-items:center;padding:15px 4px;border-top:1px solid var(--line)}.tenant-row:first-child{border-top:0}.tenant-avatar{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#e7f2f1;color:var(--brand);font-weight:900}.tenant-main{display:grid;gap:4px}.tenant-main small,.tenant-metric small{color:var(--muted);font-size:10px}.tenant-metric{display:grid;gap:2px}.tenant-metric b{font-size:18px}.subscription{justify-self:start;padding:6px 9px;border-radius:99px;font-size:10px;font-weight:850}.subscription.trial{background:#fff3d5;color:#805809}.subscription.active{background:#e4f4ed;color:#087454}.subscription.suspended{background:#ffebeb;color:#a43d45}.onboarding-card hr{border:0;border-top:1px solid var(--line);margin:20px 0 5px}.organization-switcher{display:grid;gap:5px;min-width:280px}.organization-switcher label{font-size:9px;letter-spacing:.12em;color:#9fc1c5;font-weight:850}.organization-switcher select{padding:11px;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:#fff;color:var(--brand);font-weight:750}.portfolio-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}.portfolio-kpis article{padding:18px 20px;border-radius:14px;background:#fff;box-shadow:var(--shadow)}.portfolio-kpis span,.portfolio-kpis small{display:block;color:var(--muted);font-size:11px}.portfolio-kpis b{display:block;margin:5px 0;font-size:27px;color:var(--brand)}.portfolio-cards{display:grid;grid-template-columns:repeat(2,minmax(250px,1fr));gap:14px}.portfolio-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}.property-cover{display:grid;gap:5px;padding:20px;background:linear-gradient(145deg,#eef5f4,#f9fbfb)}.property-cover span{font-size:9px;letter-spacing:.14em;color:var(--brand2);font-weight:850}.property-cover b{font-size:18px}.property-cover small{color:var(--muted)}.property-data{display:grid;grid-template-columns:repeat(3,1fr);padding:15px 18px}.property-data div{display:grid;gap:2px;border-left:1px solid var(--line);padding-left:12px}.property-data div:first-child{border-left:0;padding-left:0}.property-data b{font-size:17px}.property-data small{font-size:9px;color:var(--muted)}.property-actions{display:flex;gap:8px;padding:0 18px 18px}.property-actions .btn{flex:1;font-size:11px}.property-setup-head>a{color:#fff}.property-setup-head div:first-child{display:grid;gap:3px}.property-setup-head div:first-child>a{font-size:11px;color:#bcd3d5;margin-bottom:5px}
@media(max-width:1280px){.saas-layout{grid-template-columns:1fr}.tenant-row{grid-template-columns:44px minmax(180px,1fr) repeat(3,70px) 80px auto}.portfolio-cards{grid-template-columns:1fr}}@media(max-width:900px){.platform-banner,.portfolio-head,.property-setup-head{align-items:flex-start;flex-direction:column}.platform-stats{width:100%}.platform-stats span{flex:1}.portfolio-kpis{grid-template-columns:1fr 1fr}.tenant-row{grid-template-columns:44px 1fr auto}.tenant-row .tenant-metric{display:none}.subscription{grid-column:2}.tenant-row>.btn{grid-column:3;grid-row:1/3}.organization-switcher{width:100%;min-width:0}}@media(max-width:760px){.tenant-context{display:none}.portfolio-kpis{grid-template-columns:1fr 1fr}.platform-stats{display:grid;grid-template-columns:repeat(3,1fr)}.platform-stats span{min-width:0}.property-actions{flex-direction:column}}

/* Plan visuel bâtiment > étage > chambres */
.property-setup-head.compact{padding:21px 25px}.hotel-map{display:grid;grid-template-columns:190px 190px minmax(0,1fr);min-height:610px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.map-rail{padding:0;border-right:1px solid var(--line);background:#f7f9f9}.map-rail-title{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;border-bottom:1px solid var(--line);font-size:13px}.map-rail-title span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#e7f0ef;color:var(--brand);font-size:11px;font-weight:850}.map-nav-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-bottom:1px solid #e7eded;color:#52666a}.map-nav-item>span:last-child{display:grid;gap:2px;min-width:0}.map-nav-item b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-nav-item small{font-size:9px;color:#829195}.map-nav-item.active{background:#0d84d8;color:#fff}.map-nav-item.active small{color:#d7efff}.map-letter{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto;background:#e4eeed;color:var(--brand);font-size:10px;font-weight:900}.map-nav-item.active .map-letter{background:rgba(255,255,255,.18);color:#fff}.map-letter.all{font-size:15px}.quick-add{border-bottom:1px solid var(--line)}.quick-add summary{padding:13px 16px;cursor:pointer;color:var(--brand2);font-size:12px;font-weight:800;list-style:none}.quick-add summary::-webkit-details-marker{display:none}.quick-add[open]{padding-bottom:13px;background:#fff}.quick-add[open] summary{border-bottom:1px solid var(--line)}.quick-add form{padding:0 12px}.quick-add label{display:block;margin-top:11px;font-size:11px;font-weight:750}.quick-add input{width:100%;margin-top:6px;padding:9px;border:1px solid #d3dfe0;border-radius:8px;font-size:12px}.quick-add .btn{min-height:36px;margin-top:9px;font-size:11px}.room-map{padding:20px 22px 36px;min-width:0;background:#fbfcfc}.room-map-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.room-map-head h2{margin:3px 0 0;font-size:20px}.building-group{margin-top:24px}.building-group:first-of-type{margin-top:0}.building-group-title{display:flex;align-items:center;gap:11px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.building-group-title h3{margin:0;font-size:15px}.building-group-title small{color:var(--muted);font-size:10px}.floor-group{margin:14px 0 22px}.floor-group-title{display:flex;align-items:center;gap:9px;margin-bottom:9px}.floor-group-title b{font-size:12px;color:#334b50}.floor-group-title span{font-size:9px;padding:4px 7px;border-radius:99px;background:#eaf2f1;color:#617478}.map-rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px}.map-room,.add-room-tile{min-height:100px;border:1px solid #dfe7e7;border-radius:10px;background:#fff;padding:13px;position:relative;text-align:left}.map-room{display:flex;justify-content:space-between;align-items:flex-start}.map-room>div{display:grid;gap:6px}.map-room strong{font-size:19px}.map-room small{color:var(--muted);font-size:10px}.map-room>a{position:absolute;right:10px;bottom:9px;width:25px;height:25px;display:grid;place-items:center;border-radius:7px;background:#fff0f1;color:#e23249;font-size:19px}.room-state{width:9px;height:9px;border-radius:50%;margin:3px 2px 0 0}.room-state.available{background:#14a476}.room-state.occupied{background:#dc4755}.room-state.cleaning{background:#e8aa32}.room-state.maintenance{background:#7f8d90}.add-room-tile{display:grid;place-items:center;align-content:center;gap:7px;color:#53686c;cursor:pointer;border-style:dashed}.add-room-tile:hover{border-color:#0d84d8;color:#0d84d8;background:#f4faff}.add-room-tile b{font-size:25px;font-weight:400}.add-room-tile span{font-size:11px}.room-dialog{width:min(520px,calc(100vw - 30px));border:0;border-radius:18px;padding:26px;box-shadow:0 28px 90px rgba(7,45,51,.3)}.room-dialog::backdrop{background:rgba(4,30,34,.54);backdrop-filter:blur(3px)}.room-dialog h2{margin:4px 0}.dialog-close{position:absolute;right:14px;top:12px}.dialog-close button{width:34px;height:34px;border:0;border-radius:9px;background:#edf3f3;color:var(--brand);font-size:22px;cursor:pointer}.room-dialog .creation-tabs{margin-top:18px}
@media(max-width:1180px){.hotel-map{grid-template-columns:165px 165px minmax(0,1fr)}.map-rooms{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}@media(max-width:850px){.hotel-map{grid-template-columns:1fr 1fr}.room-map{grid-column:1/-1}.map-rail{min-height:0}.floors-rail{border-right:0}.map-rooms{grid-template-columns:repeat(2,minmax(130px,1fr))}}@media(max-width:560px){.hotel-map{display:block}.map-rail{border-right:0}.room-map{padding:17px 13px 28px}.room-map-head{align-items:flex-start;flex-direction:column}.room-map-head .btn{width:100%}.map-rooms{grid-template-columns:1fr 1fr}.property-setup-head.compact{padding:20px}.room-dialog{padding:23px 18px}}
.room-legend{display:flex;justify-content:flex-end;gap:16px;margin:-7px 3px 12px;color:var(--muted);font-size:10px}.room-legend span{display:flex;align-items:center;gap:6px}.room-legend i{width:8px;height:8px;border-radius:50%}.room-legend i.available{background:#14a476}.room-legend i.occupied{background:#dc4755}.room-legend i.cleaning{background:#e8aa32}.room-legend i.maintenance{background:#7f8d90}@media(max-width:560px){.room-legend{justify-content:flex-start;flex-wrap:wrap;margin-top:-4px}}

/* Plan des chambres : interface de travail compacte, inspirée du poste réception. */
.page-property_setup{max-width:none;padding:27px 26px 42px}
.page-property_setup>.top{margin-bottom:17px}
.page-property_setup .property-setup-head{display:none}
.page-property_setup .room-legend{min-height:27px;align-items:center;margin:0 4px 9px}
.page-property_setup .hotel-map{grid-template-columns:150px 128px minmax(0,1fr);min-height:650px;border:1px solid #dfe7e7;border-radius:10px;box-shadow:0 7px 24px rgba(18,54,58,.055)}
.page-property_setup .map-rail{background:#f7f9f9}
.page-property_setup .map-rail-title{height:46px;padding:0 12px;font-size:12px;background:#f1f4f4}
.page-property_setup .map-nav-item{gap:7px;padding:10px 9px}
.page-property_setup .map-letter{width:25px;height:25px;border-radius:7px;font-size:9px}
.page-property_setup .map-nav-item .map-letter{display:none}
.page-property_setup .map-nav-item b{font-size:11px}
.page-property_setup .map-nav-item small{font-size:8px}
.page-property_setup .quick-add summary{padding:12px 11px;font-size:11px}
.page-property_setup .room-map{padding:16px 20px 30px;background:#fff}
.page-property_setup .room-map-head{justify-content:flex-end;margin-bottom:12px}
.page-property_setup .room-map-head>div{display:none}
.page-property_setup .room-map-head .btn{min-height:38px;padding:8px 13px;font-size:11px;box-shadow:none}
.page-property_setup .building-group{margin-top:25px}
.page-property_setup .building-group:first-of-type{margin-top:0}
.page-property_setup .building-group-title{margin-bottom:11px;padding:0 0 10px}
.page-property_setup .building-group-title .hierarchy-icon{width:31px;height:31px;border-radius:8px;font-size:12px}
.page-property_setup .building-group-title h3{font-size:14px}
.page-property_setup .floor-group{margin:12px 0 24px}
.page-property_setup .floor-group-title{margin-bottom:8px}
.page-property_setup .map-rooms{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:9px}
.page-property_setup .map-room,.page-property_setup .add-room-tile{min-height:92px;border-radius:8px;padding:12px}
.page-property_setup .map-room strong{font-size:18px}
.page-property_setup .map-room>a{width:23px;height:23px;right:8px;bottom:8px}
@media(max-width:1180px){.page-property_setup .hotel-map{grid-template-columns:140px 120px minmax(0,1fr)}.page-property_setup .map-rooms{grid-template-columns:repeat(auto-fill,minmax(122px,1fr))}}
@media(max-width:850px){.page-property_setup{padding:21px 14px 38px}.page-property_setup .hotel-map{grid-template-columns:1fr 1fr}.page-property_setup .room-map{grid-column:1/-1}.page-property_setup .map-rooms{grid-template-columns:repeat(3,minmax(115px,1fr))}}
@media(max-width:560px){.page-property_setup .map-rooms{grid-template-columns:1fr 1fr}.page-property_setup .room-legend{justify-content:flex-start}}

/* Contrôles financiers, autorisations et reçus */
.approval-form{display:grid!important;grid-template-columns:minmax(150px,1fr) auto;gap:6px;min-width:285px}.approval-form input{min-width:0;border:1px solid var(--line);border-radius:8px;padding:8px;font-size:12px}.payment-ledger{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;margin-top:18px;align-items:start}.refund-panel{position:sticky;top:18px}.receipt-sheet{width:min(760px,100%);margin:0 auto;background:#fff;border-radius:18px;padding:34px;box-shadow:var(--shadow)}.receipt-brand{display:flex;align-items:center;gap:13px;padding-bottom:22px;border-bottom:1px solid var(--line)}.receipt-brand h2{margin:0 0 3px}.receipt-brand span,.receipt-number span,.receipt-details span,.receipt-total span,.receipt-net span{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em}.receipt-number{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:24px 0;padding:14px 16px;background:#f2f7f7;border-radius:11px}.receipt-number b{color:var(--brand);font-size:18px}.receipt-details{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:8px 0 22px}.receipt-details div{display:grid;gap:5px}.receipt-details b{font-size:14px}.receipt-total,.receipt-net{display:flex;justify-content:space-between;align-items:center;padding:18px;border-radius:12px}.receipt-total{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff}.receipt-total span{color:#c2dcde}.receipt-total b{font-size:25px}.refund-line{display:flex;justify-content:space-between;gap:15px;padding:14px 4px;border-bottom:1px solid var(--line);color:var(--red)}.refund-line div{display:grid;gap:4px}.refund-line small{color:var(--muted)}.receipt-net{margin-top:12px;background:#f7f9f9}.receipt-net b{font-size:18px}.receipt-actions{display:flex;justify-content:space-between;gap:10px;margin-top:24px}
@media(max-width:1100px){.payment-ledger{grid-template-columns:1fr}.refund-panel{position:static}}
@media(max-width:760px){.approval-form{grid-template-columns:1fr;min-width:220px}.receipt-sheet{padding:20px}.receipt-details{grid-template-columns:1fr 1fr}.receipt-number,.receipt-total,.receipt-net,.receipt-actions{align-items:flex-start;flex-direction:column}.receipt-actions .btn{width:100%}}
@media print{.side,.top,.flash,.receipt-actions{display:none!important}.shell{display:block}.main{padding:0}.receipt-sheet{box-shadow:none;width:100%;border-radius:0}}

/* Statistiques, rapports et sous-domaines */
.domain-input{display:flex;align-items:center;border:1px solid #d6e1e2;border-radius:9px;background:#fff;overflow:hidden}.domain-input input{border:0!important;border-radius:0!important}.domain-input span{padding:0 12px;color:var(--muted);font-size:12px;white-space:nowrap;background:#f3f6f6;align-self:stretch;display:flex;align-items:center;border-left:1px solid var(--line)}
.report-toolbar{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:15px}.report-toolbar h2{margin:4px 0 0}.report-toolbar form{display:grid;grid-template-columns:190px 145px 145px auto auto;gap:9px;align-items:end}.report-toolbar .field{margin:0}.report-toolbar .field label{font-size:10px}.report-toolbar input,.report-toolbar select{padding:9px}.report-toolbar .btn{min-height:39px}
.report-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.report-kpis article{padding:18px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 6px 22px rgba(18,54,58,.05)}.report-kpis article.positive{background:linear-gradient(145deg,#0c554c,#08775c);color:#fff;border:0}.report-kpis article.negative{background:linear-gradient(145deg,#7a2732,#b43b49);color:#fff;border:0}.report-kpis span{display:block;font-size:9px;letter-spacing:.11em;color:var(--muted);font-weight:850}.report-kpis .positive span,.report-kpis .negative span,.report-kpis .positive em,.report-kpis .negative em{color:rgba(255,255,255,.72)}.report-kpis b{display:block;margin:8px 0 4px;font-size:23px}.report-kpis b small{font-size:10px}.report-kpis em{font-style:normal;color:var(--muted);font-size:10px}
.report-secondary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin-bottom:16px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line)}.report-secondary article{padding:13px 15px;background:#fff}.report-secondary span{display:block;font-size:9px;color:var(--muted)}.report-secondary b{display:block;margin-top:5px;font-size:14px}
.report-grid{display:grid;grid-template-columns:minmax(0,1.8fr) 340px;gap:16px;align-items:stretch}.chart-legend{display:flex;gap:13px;color:var(--muted);font-size:10px}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i{width:8px;height:8px;border-radius:3px}.chart-legend .revenue,.bar-pair .revenue{background:#0b8c69}.chart-legend .expense,.bar-pair .expense{background:#e5a735}.bar-chart{height:255px;display:flex;align-items:stretch;gap:5px;padding-top:15px;border-bottom:1px solid var(--line)}.bar-day{flex:1;min-width:7px;display:grid;grid-template-rows:1fr 18px;gap:6px;align-items:end}.bar-pair{height:100%;display:flex;align-items:end;justify-content:center;gap:2px}.bar-pair i{width:min(9px,43%);min-height:2px;border-radius:4px 4px 0 0}.bar-day small{text-align:center;color:#849296;font-size:8px}.breakdown h2{margin:5px 0 12px}.breakdown>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:11px}.breakdown>div span{color:var(--muted)}.breakdown hr{border:0;border-top:1px solid var(--line);margin:18px 0}.property-performance{margin-top:16px}.performance-row{display:grid;grid-template-columns:190px minmax(120px,1fr) 140px;align-items:center;gap:14px;padding:11px 0;border-top:1px solid var(--line);font-size:12px}.performance-row>span{height:8px;border-radius:8px;background:#edf2f2;overflow:hidden}.performance-row i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand2),#25a58c)}.performance-row strong{text-align:right}
@media(max-width:1250px){.report-toolbar{align-items:stretch;flex-direction:column}.report-toolbar form{grid-template-columns:1.3fr 1fr 1fr auto auto}.report-grid{grid-template-columns:1fr}.report-kpis{grid-template-columns:1fr 1fr}.report-secondary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.domain-input{align-items:stretch;flex-direction:column}.domain-input span{border-left:0;border-top:1px solid var(--line);padding:9px 12px}.report-toolbar form{grid-template-columns:1fr 1fr}.report-toolbar form .field:first-of-type{grid-column:1/-1}.report-kpis,.report-secondary{grid-template-columns:1fr 1fr}.report-secondary{gap:1px}.performance-row{grid-template-columns:1fr}.performance-row strong{text-align:left}.bar-chart{height:210px}}
.top-rooms{margin-top:16px}.rank-badge{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#edf4f3;color:var(--brand);font-weight:900}.top-rooms tbody tr:first-child .rank-badge{background:#f6d779;color:#604708}.door-summary{display:grid;grid-template-columns:minmax(260px,1fr) 180px 180px auto;gap:12px;align-items:center;margin-bottom:16px;padding:19px 21px;border-radius:15px;background:linear-gradient(135deg,#0b3d44,#0b6670);color:#fff;box-shadow:var(--shadow)}.door-summary h2{margin:4px 0}.door-summary p{margin:0;color:#bcd4d7}.door-summary article{padding:13px;border:1px solid rgba(255,255,255,.15);border-radius:11px;background:rgba(255,255,255,.08)}.door-summary article span{display:block;color:#bdd5d8;font-size:10px}.door-summary article b{display:block;margin-top:5px;font-size:24px}.door-summary .btn{background:#fff;border-color:#fff;color:var(--brand)}
@media(max-width:1000px){.door-summary{grid-template-columns:1fr 1fr}.door-summary>div{grid-column:1/-1}}@media(max-width:560px){.door-summary{grid-template-columns:1fr}.door-summary>div{grid-column:auto}}
.log-filter-panel{margin-bottom:16px}.log-filter-form{display:grid;grid-template-columns:minmax(190px,1.25fr) minmax(190px,1.25fr) repeat(2,minmax(125px,.65fr)) repeat(2,minmax(135px,.7fr));gap:10px;align-items:end}.log-filter-form .field{margin:0}.log-filter-form label{font-size:10px}.log-filter-form input,.log-filter-form select{padding:9px 10px}.log-filter-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;padding-top:3px}.log-filter-actions .btn{min-height:38px}.log-results{padding-bottom:16px}.page-indicator{font-size:11px;color:var(--muted);font-weight:750}.pagination{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:17px}.pagination>div{display:flex;gap:5px}.pagination>div a{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--brand);font-size:12px;font-weight:800}.pagination>div a.active{background:var(--brand);border-color:var(--brand);color:#fff}
@media(max-width:1200px){.log-filter-form{grid-template-columns:1fr 1fr 1fr}.log-filter-actions{grid-column:1/-1}}@media(max-width:700px){.log-filter-form{grid-template-columns:1fr}.log-filter-actions{grid-column:auto;display:grid}.pagination{justify-content:space-between}.pagination .btn{font-size:10px;padding:7px}.pagination>div a{width:30px;height:30px}}

/* Sciener E5 encoder workspace */
.encoder-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:25px 28px;margin-bottom:14px;border-radius:18px;color:#fff;background:radial-gradient(circle at 78% 0,rgba(69,181,176,.35),transparent 32%),linear-gradient(135deg,#123c43,#0d2d34);box-shadow:0 18px 42px rgba(10,43,50,.16)}
.encoder-hero h2{font-size:28px;margin:5px 0 7px}.encoder-hero p{max-width:720px;margin:0;color:#c8dcdf;line-height:1.55}.encoder-live{min-width:260px;display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid rgba(255,255,255,.18);border-radius:13px;background:rgba(255,255,255,.08)}
.encoder-live .status-dot{width:11px;height:11px;border-radius:50%;background:#f4bd5b;box-shadow:0 0 0 6px rgba(244,189,91,.13)}.encoder-live.online .status-dot{background:#61d6a0;box-shadow:0 0 0 6px rgba(97,214,160,.13)}.encoder-live.offline .status-dot{background:#f17f7f;box-shadow:0 0 0 6px rgba(241,127,127,.13)}.encoder-live div{display:grid;gap:3px}.encoder-live b{font-size:12px}.encoder-live small{font-size:10px;color:#a9c3c7}
.encoder-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}.encoder-steps article{display:flex;align-items:center;gap:11px;padding:13px 14px;background:#fff;border:1px solid var(--line);border-radius:13px}.encoder-steps article>span{width:29px;height:29px;flex:0 0 29px;display:grid;place-items:center;border-radius:9px;background:#edf2f3;color:#65777b;font-size:11px;font-weight:900}.encoder-steps article.done>span,.encoder-steps article.ready>span{background:#dff3ea;color:var(--green)}.encoder-steps article.warning>span{background:#fff0d7;color:#a86912}.encoder-steps article div{display:grid;gap:3px}.encoder-steps b{font-size:11px;color:var(--brand)}.encoder-steps small{font-size:9px;line-height:1.35;color:var(--muted)}
.encoder-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.7fr);gap:18px;align-items:start}.encoder-console,.encoder-requirements{height:100%}.next-card{display:grid;grid-template-columns:190px 1fr;gap:22px;align-items:center;margin:18px 0;padding:20px;border:1px solid #dbe5e6;border-radius:15px;background:#f7fafa}.card-visual{aspect-ratio:1.58;border-radius:13px;padding:17px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#14444b,#1e6870);color:#fff;box-shadow:0 14px 26px rgba(17,63,70,.2)}.card-visual span,.card-visual small{font-size:8px;letter-spacing:.16em;font-weight:900}.card-visual b{font-size:27px}.next-card-copy>span{font-size:9px;font-weight:900;letter-spacing:.13em;color:var(--muted)}.next-card-copy h3{font-size:20px;margin:5px 0}.next-card-copy p{font-size:12px;color:var(--muted)}.encoder-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}.encoder-actions .primary{margin-left:auto}.check-list{display:grid;gap:11px;margin:18px 0 22px;padding:0;list-style:none}.check-list li{position:relative;padding-left:27px;color:#52676c;font-size:12px;line-height:1.45}.check-list li:before{content:"";position:absolute;left:0;top:1px;width:17px;height:17px;border-radius:6px;border:1px solid #b8c7ca;background:#f7f9f9}.check-list li.ok:before{content:"✓";display:grid;place-items:center;border-color:#8cccad;background:#e3f4eb;color:var(--green);font-weight:900}.security-note{padding:15px;border-radius:12px;background:#edf5f5}.security-note b{font-size:12px;color:var(--brand)}.security-note p{font-size:10px;line-height:1.5;color:var(--muted);margin:6px 0 0}.inline-notice.danger-soft{background:#fff2f0;color:#9b4037;border:1px solid #f1d2ce}.error-text{display:block;max-width:280px;margin-top:5px;color:#a4463d;line-height:1.35}
@media(max-width:1100px){.encoder-steps{grid-template-columns:1fr 1fr}.encoder-layout{grid-template-columns:1fr}.encoder-requirements{height:auto}.encoder-actions .primary{margin-left:0}}
@media(max-width:700px){.encoder-hero{align-items:flex-start;flex-direction:column;padding:20px}.encoder-live{width:100%;min-width:0}.encoder-steps{grid-template-columns:1fr}.next-card{grid-template-columns:1fr}.card-visual{max-width:240px}.encoder-actions{display:grid}.encoder-actions .btn{width:100%}}

/* Finance centre — one clear task per view */
.finance-nav{display:flex;gap:8px;margin:-4px 0 18px;padding:6px;background:#eaf0f0;border-radius:13px;width:max-content;max-width:100%;overflow:auto}.finance-nav a{display:flex;align-items:center;gap:9px;padding:10px 15px;border-radius:9px;color:#52696d;font-size:13px;font-weight:800;white-space:nowrap}.finance-nav a span{display:grid;place-items:center;width:23px;height:23px;border-radius:7px;background:#dbe7e7;font-size:10px}.finance-nav a b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:#fff;color:var(--brand);font-size:11px}.finance-nav a.active{background:#fff;color:var(--brand);box-shadow:0 4px 14px rgba(17,65,70,.09)}.finance-nav a.active span{background:var(--brand);color:#fff}.finance-stats-compact{margin-bottom:20px}.finance-home-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.8fr);gap:18px}.finance-guide h2{margin-bottom:15px}.finance-choice{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:13px;padding:14px 0;border-top:1px solid var(--line);color:inherit}.finance-choice:hover b,.text-link:hover{color:var(--brand2)}.finance-choice-icon{width:40px;height:40px;border-radius:11px;background:#edf5f4;color:var(--brand);display:grid;place-items:center;font-size:20px;font-weight:800}.finance-choice b,.finance-choice small{display:block}.finance-choice b{font-size:14px}.finance-choice small{margin-top:3px;color:var(--muted);font-size:12px}.finance-choice strong{color:var(--brand2);font-size:18px}.text-link{font-size:12px;font-weight:800;color:var(--brand)}.balance-list>div{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;border-top:1px solid var(--line)}.balance-list b,.balance-list small{display:block}.balance-list small{margin-top:3px;color:var(--muted)}.balance-list strong{white-space:nowrap;color:var(--red);font-size:14px}.finance-empty-good{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:170px;text-align:center;background:#f1f8f5;border:1px dashed #bbd8cc;border-radius:12px;color:#527066}.finance-empty-good:before{content:'✓';display:grid;place-items:center;width:42px;height:42px;margin-bottom:9px;border-radius:50%;background:#dcefe6;color:var(--green);font-weight:900}.finance-empty-good b{color:#245a48}.finance-empty-good span{font-size:12px;margin-top:4px}.finance-recent{margin-top:18px}.finance-context{display:flex;align-items:center;padding:17px 20px;margin-bottom:18px;border-radius:13px;background:#edf5f5;border-left:4px solid var(--brand2)}.finance-context b,.finance-context p{display:block}.finance-context b{font-size:16px;margin:4px 0}.finance-context p{margin:0;color:#61777b;font-size:13px}.finance-collection-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:18px}.finance-cash-form{align-self:start}.finance-cash-form h2{margin-bottom:6px}.finance-refund{margin-top:18px}.finance-refund summary{cursor:pointer;font-size:14px;font-weight:800;color:#7c5712}.finance-refund-form{display:grid;grid-template-columns:1.4fr .7fr 1.2fr auto;gap:12px;align-items:end;margin-top:8px}.finance-refund-form .field{margin:0}.expense-context{border-left-color:var(--gold);background:#fff8e9}.finance-expense-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.expense-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.expense-form-grid .full{grid-column:1/-1}.expense-month-card{align-self:start;background:linear-gradient(145deg,#173c43,#0c5962);color:#fff}.expense-month-card .kicker,.expense-month-card p,.expense-month-card>span{color:#bad0d2}.expense-month-card>b{display:block;font-size:30px;margin:17px 0 5px}.expense-month-card>b small{font-size:11px}.expense-month-card hr{border:0;border-top:1px solid rgba(255,255,255,.15);margin:20px 0}.expense-month-card strong{display:block;font-size:19px;margin-top:7px;color:#fff}.stay-payment-heading{margin-top:18px;padding:16px 18px;border-radius:12px;background:#f1f6f6;border:1px solid #d8e6e6}.stay-payment-heading h3{margin:4px 0 5px;font-size:16px}.stay-payment-heading p{margin:0;color:#607579;font-size:13px;line-height:1.5}.stay-payment-heading b{color:#294c52}
@media(max-width:1100px){.finance-home-grid,.finance-collection-grid,.finance-expense-grid{grid-template-columns:1fr}.finance-refund-form{grid-template-columns:1fr 1fr}.finance-refund-form button{width:100%}.expense-month-card{order:-1}}
@media(max-width:700px){.finance-nav{width:100%}.finance-nav a{padding:9px 11px}.finance-nav a span{display:none}.finance-refund-form,.expense-form-grid{grid-template-columns:1fr}.expense-form-grid .full{grid-column:auto}.finance-choice{grid-template-columns:38px 1fr}.finance-choice>strong{display:none}.balance-list>div{align-items:flex-start;flex-direction:column}.finance-stats-compact{grid-template-columns:1fr}}

/* Gateway inventory and room coverage */
.gateway-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 28px;margin-bottom:15px;border-radius:18px;background:radial-gradient(circle at 82% 10%,rgba(74,181,176,.32),transparent 32%),linear-gradient(135deg,#123c43,#0b5962);color:#fff;box-shadow:0 18px 42px rgba(10,43,50,.15)}.gateway-hero h2{font-size:27px;margin:5px 0 7px}.gateway-hero p{max-width:760px;margin:0;color:#c8dcdf;line-height:1.55}.gateway-hero .kicker{color:#7ed2cd}.gateway-hero-state{min-width:150px;padding:17px 20px;text-align:center;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.08)}.gateway-hero-state span{display:block;font-size:26px;font-weight:850}.gateway-hero-state small{color:#c6dcde}.gateway-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:15px}.gateway-stats article{padding:17px 19px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.gateway-stats span,.gateway-stats small{display:block}.gateway-stats span{font-size:9px;font-weight:850;letter-spacing:.13em;color:var(--muted)}.gateway-stats b{display:block;margin:7px 0 2px;font-size:24px;color:var(--brand)}.gateway-stats small{color:var(--muted)}.gateway-stats .needs-attention{border-left:4px solid var(--gold)}.gateway-architecture{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.gateway-architecture article{display:flex;align-items:center;gap:13px;padding:14px 17px;border:1px solid #d8e5e5;border-radius:13px;background:#f8fbfb}.gateway-type-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:11px;background:#dceff0;color:var(--brand);font-size:11px;font-weight:900}.gateway-type-icon.es3w{background:#fff0d1;color:#8a5c08}.gateway-architecture b{font-size:13px}.gateway-architecture p{margin:3px 0 0;color:var(--muted);font-size:11px}.gateway-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:18px;align-items:start}.gateway-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gateway-card{padding:17px;border:1px solid var(--line);border-radius:14px;background:#fbfcfc}.gateway-card-top,.gateway-card footer{display:flex;justify-content:space-between;align-items:center;gap:10px}.gateway-model{display:grid;place-items:center;min-width:38px;height:27px;padding:0 8px;border-radius:8px;background:#dceff0;color:var(--brand);font-size:10px;font-weight:900}.gateway-model.es3w{background:#fff0d1;color:#8a5c08}.gateway-card h3{margin:13px 0 3px;font-size:16px}.gateway-card>p{margin:0;color:var(--muted);font-size:11px}.gateway-identifiers{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.gateway-identifiers span{padding:9px;border-radius:9px;background:#f0f5f5}.gateway-identifiers small,.gateway-identifiers b{display:block}.gateway-identifiers small{font-size:8px;letter-spacing:.08em;color:var(--muted)}.gateway-identifiers b{margin-top:3px;font-size:10px;overflow-wrap:anywhere}.gateway-coverage{padding:10px 0 12px;border-top:1px solid var(--line)}.gateway-coverage small,.gateway-coverage b{display:block}.gateway-coverage small{color:var(--muted);font-size:9px}.gateway-coverage b{margin-top:4px;font-size:12px}.gateway-card footer{padding-top:10px;border-top:1px solid var(--line)}.gateway-card footer>small{color:var(--muted);font-size:9px}.gateway-empty{display:flex;min-height:310px;align-items:center;justify-content:center;flex-direction:column;text-align:center;border:1px dashed #bfd2d4;border-radius:14px;background:#f6fafa}.gateway-empty>span{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;background:#e4f0f0;color:var(--brand);font-size:25px}.gateway-empty b{margin-top:13px}.gateway-empty p{max-width:390px;margin:5px 20px;color:var(--muted);font-size:12px}.gateway-editor{position:sticky;top:18px}.gateway-editor h2{margin-bottom:5px}.gateway-type-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gateway-type-options label{cursor:pointer}.gateway-type-options input{position:absolute;opacity:0;pointer-events:none}.gateway-type-options span{display:block;padding:11px;border:1px solid var(--line);border-radius:10px}.gateway-type-options b,.gateway-type-options small{display:block}.gateway-type-options small{margin-top:3px;color:var(--muted);font-size:9px}.gateway-type-options input:checked+span{border-color:var(--brand2);background:#edf6f5;box-shadow:inset 0 0 0 1px var(--brand2)}.gateway-tech-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.gateway-room-picker{max-height:225px;overflow:auto;margin-top:8px;border:1px solid var(--line);border-radius:11px;padding:7px}.gateway-room-picker label{display:flex;align-items:center;gap:9px;padding:9px;border-radius:8px;cursor:pointer}.gateway-room-picker label:hover{background:#f2f7f7}.gateway-room-picker input{width:17px;height:17px}.gateway-room-picker b,.gateway-room-picker small{display:block}.gateway-room-picker b{font-size:11px}.gateway-room-picker small{margin-top:2px;color:var(--muted);font-size:9px}.other-devices{margin-top:18px}
@media(max-width:1150px){.gateway-layout{grid-template-columns:1fr}.gateway-editor{position:static}.gateway-list{grid-template-columns:1fr 1fr}}@media(max-width:700px){.gateway-hero{align-items:flex-start;flex-direction:column;padding:21px}.gateway-hero-state{width:100%}.gateway-stats,.gateway-architecture,.gateway-list{grid-template-columns:1fr}.gateway-tech-grid{grid-template-columns:1fr}}

/* Tableau de bord opérationnel */
.page-dashboard{background:linear-gradient(180deg,#f0f5f4 0,#f7f9f8 300px)}
.dashboard-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:15px;padding:28px 30px;border-radius:20px;color:#fff;background:radial-gradient(circle at 78% -20%,rgba(94,212,193,.38),transparent 36%),radial-gradient(circle at 100% 100%,rgba(239,199,94,.18),transparent 30%),linear-gradient(135deg,#0a333a 0%,#0b5962 100%);box-shadow:0 20px 44px rgba(10,56,63,.18)}
.dashboard-hero:after{content:"";position:absolute;right:-55px;top:-90px;width:240px;height:240px;border:1px solid rgba(255,255,255,.1);border-radius:50%;box-shadow:0 0 0 38px rgba(255,255,255,.03),0 0 0 76px rgba(255,255,255,.025)}
.dashboard-hero>div{position:relative;z-index:1}.dashboard-eyebrow{display:block;margin-bottom:7px;color:#81d8cf;font-size:9px;font-weight:900;letter-spacing:.17em}.dashboard-hero h2{margin:0 0 7px;font-size:29px;letter-spacing:-.025em}.dashboard-hero p{margin:0;color:#c6dadd;font-size:12px}.dashboard-hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;min-width:440px}.dashboard-action{display:grid;grid-template-columns:36px 1fr;gap:0 10px;align-items:center;padding:13px 15px;border-radius:13px;border:1px solid rgba(255,255,255,.18);color:#fff;background:rgba(255,255,255,.09);backdrop-filter:blur(7px);transition:.18s ease}.dashboard-action:hover{transform:translateY(-2px);background:rgba(255,255,255,.15)}.dashboard-action>span{grid-row:1/3;width:35px;height:35px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.13);font-size:19px}.dashboard-action b{font-size:12px}.dashboard-action small{color:#c6dade;font-size:9px}.dashboard-action.gold{border-color:#efd47d;background:linear-gradient(145deg,#f6d878,#e7b944);color:#40320c;box-shadow:0 9px 24px rgba(224,175,49,.22)}.dashboard-action.gold>span{background:rgba(255,255,255,.35)}.dashboard-action.gold small{color:#6e5716}
.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.dashboard-kpi{position:relative;overflow:hidden;display:flex;align-items:center;gap:14px;min-height:122px;padding:19px;border-radius:16px;border:1px solid rgba(12,70,77,.08);background:#fff;box-shadow:0 8px 26px rgba(18,54,58,.07)}.dashboard-kpi:after{content:"";position:absolute;right:-20px;bottom:-34px;width:92px;height:92px;border-radius:50%;background:currentColor;opacity:.035}.dashboard-kpi .kpi-icon{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;border-radius:14px;font-size:17px;font-weight:900}.dashboard-kpi>div:last-child{min-width:0}.dashboard-kpi span,.dashboard-kpi small{display:block}.dashboard-kpi span{margin-bottom:4px;color:#6b7e81;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.dashboard-kpi b{display:block;margin-bottom:3px;color:#173c42;font-size:27px;line-height:1}.dashboard-kpi small{overflow:hidden;color:#839194;font-size:9px;white-space:nowrap;text-overflow:ellipsis}.dashboard-kpi.occupancy{border-top:4px solid #168e91;color:#168e91}.dashboard-kpi.occupancy .kpi-icon{background:#e1f3f2;color:#087376}.dashboard-kpi.available-kpi{border-top:4px solid #23a575;color:#23a575}.dashboard-kpi.available-kpi .kpi-icon{background:#e1f5ec;color:#138057}.dashboard-kpi.revenue{border-top:4px solid #e6b63e;color:#b78812}.dashboard-kpi.revenue .kpi-icon{background:#fff4d5;color:#9c7008}.dashboard-kpi.balance{border-top:4px solid #eb775e;color:#d95c45}.dashboard-kpi.balance .kpi-icon{background:#ffebe7;color:#c74b38}
.dashboard-pulse{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:15px;border:1px solid #dce7e6;border-radius:14px;background:#fff;box-shadow:0 5px 19px rgba(18,54,58,.045)}.dashboard-pulse article{display:flex;align-items:center;gap:11px;padding:13px 17px;border-left:1px solid #e3ebea}.dashboard-pulse article:first-child{border-left:0}.dashboard-pulse article.attention{background:#fff7f4}.pulse-icon{width:31px;height:31px;display:grid;place-items:center;flex:0 0 31px;border-radius:9px;font-size:13px;font-weight:900}.pulse-icon.arrivals{background:#e3f4ec;color:#13815b}.pulse-icon.departures{background:#e3f0f5;color:#1e758f}.pulse-icon.cards{background:#fff2cf;color:#9b6a08}.pulse-icon.overdue{background:#ffebe8;color:#c84e3c}.dashboard-pulse b,.dashboard-pulse small{display:block}.dashboard-pulse b{color:#173d43;font-size:17px}.dashboard-pulse small{margin-top:2px;color:#7b898c;font-size:9px}
.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.65fr);gap:15px;align-items:stretch}.dashboard-rooms-panel,.dashboard-departures{margin:0}.dashboard-rooms-panel .panel-title,.dashboard-departures .panel-title{align-items:flex-start}.dashboard-rooms-panel h2,.dashboard-departures h2{margin:4px 0 3px}.dashboard-rooms-panel .section-copy{margin:0;color:var(--muted);font-size:11px}.room-distribution{display:flex;width:100%;height:10px;margin:16px 0 10px;border-radius:99px;overflow:hidden;background:#edf2f2}.room-distribution span{display:block;height:100%;min-width:0}.available-bar{background:#21a777}.occupied-bar{background:#e05b5b}.cleaning-bar{background:#e7ad38}.maintenance-bar{background:#7e8d90}.dashboard-room-legend{display:flex;flex-wrap:wrap;gap:13px;margin-bottom:16px;color:#697b7e;font-size:9px}.dashboard-room-legend span{display:flex;align-items:center;gap:5px}.dashboard-room-legend i{width:7px;height:7px;border-radius:50%}.available-dot{background:#21a777}.occupied-dot{background:#e05b5b}.cleaning-dot{background:#e7ad38}.maintenance-dot{background:#7e8d90}.dashboard-room-grid{display:grid;grid-template-columns:repeat(4,minmax(115px,1fr));gap:8px}.dashboard-room-card{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:63px;padding:10px 11px;border:1px solid #e1e9e8;border-left:4px solid #9aabaa;border-radius:10px;background:#fbfcfc;color:inherit;transition:.16s ease}.dashboard-room-card:hover{transform:translateY(-2px);box-shadow:0 7px 17px rgba(20,64,69,.09)}.dashboard-room-card>div{display:grid;gap:3px;min-width:0}.dashboard-room-card strong{font-size:16px;color:#193f45}.dashboard-room-card small{overflow:hidden;color:#829093;font-size:8px;white-space:nowrap;text-overflow:ellipsis}.dashboard-room-card>span{padding:4px 6px;border-radius:99px;background:#eef3f3;color:#637679;font-size:8px;font-weight:800}.dashboard-room-card.available-card{border-left-color:#20a675;background:#f7fcfa}.dashboard-room-card.available-card>span{background:#e0f4eb;color:#137a56}.dashboard-room-card.occupied-card{border-left-color:#df5959;background:#fffafa}.dashboard-room-card.occupied-card>span{background:#ffe9e9;color:#b64444}.dashboard-room-card.cleaning-card{border-left-color:#e4aa36;background:#fffcf6}.dashboard-room-card.cleaning-card>span{background:#fff1d2;color:#946406}.dashboard-room-card.maintenance-card{border-left-color:#7e8d90}.dashboard-empty{min-height:264px;display:flex;align-items:center;justify-content:center;gap:24px;padding:28px;border:1px dashed #bfd4d3;border-radius:14px;background:linear-gradient(145deg,#f5faf9,#fbfcfc)}.dashboard-empty>div:last-child{max-width:430px}.dashboard-empty h3{margin:0 0 7px;color:#173e44;font-size:18px}.dashboard-empty p{margin:0 0 15px;color:#6d8083;font-size:12px;line-height:1.55}.empty-illustration{position:relative;width:82px;height:82px;flex:0 0 82px;display:grid;place-items:center;border-radius:22px;background:#dfeeed;color:#155a62}.empty-illustration span{font-size:37px}.empty-illustration i{position:absolute;right:-5px;bottom:-5px;width:28px;height:28px;display:grid;place-items:center;border:4px solid #f6faf9;border-radius:50%;background:#efc75e;color:#49390a;font-style:normal;font-weight:900}
.dashboard-departures{display:flex;flex-direction:column}.departure-list{display:grid;margin:4px 0 13px}.departure-item{display:grid;grid-template-columns:37px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0;border-top:1px solid #e4ebea;color:inherit}.departure-item:first-child{border-top:0}.departure-item:hover b{color:var(--brand2)}.departure-room{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#e4f1f0;color:#12565e;font-size:10px;font-weight:900}.departure-item.late .departure-room{background:#ffebe8;color:#c34836}.departure-item b,.departure-item small{display:block}.departure-item b{overflow:hidden;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.departure-item small{margin-top:3px;color:#7d8d90;font-size:9px}.departure-item.late small{color:#c34c3d}.departure-item em{color:#785c0d;font-size:10px;font-style:normal;font-weight:850;white-space:nowrap}.dashboard-departures>.btn{margin-top:auto}.departure-empty{min-height:230px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.departure-empty>span{width:47px;height:47px;display:grid;place-items:center;border-radius:50%;background:#e1f4eb;color:#13805a;font-size:20px;font-weight:900}.departure-empty b{margin-top:12px;color:#284c51}.departure-empty p{max-width:210px;margin:5px 0;color:#7b8b8e;font-size:10px;line-height:1.5}
.dashboard-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:15px}.dashboard-shortcuts>a{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;padding:15px;border:1px solid #dbe6e5;border-radius:13px;background:#fff;color:inherit;box-shadow:0 4px 16px rgba(18,54,58,.04);transition:.17s ease}.dashboard-shortcuts>a:hover{border-color:#9fc4c2;transform:translateY(-2px);box-shadow:0 9px 24px rgba(18,54,58,.08)}.dashboard-shortcuts>a>span{width:37px;height:37px;display:grid;place-items:center;border-radius:10px;background:#e5f1f0;color:#155961;font-size:18px;font-weight:850}.dashboard-shortcuts b,.dashboard-shortcuts small{display:block}.dashboard-shortcuts b{font-size:11px;color:#23484e}.dashboard-shortcuts small{margin-top:3px;color:#829093;font-size:8px}.dashboard-shortcuts em{color:#779093;font-size:17px;font-style:normal}
@media(max-width:1180px){.dashboard-hero{align-items:flex-start;flex-direction:column}.dashboard-hero-actions{width:100%;min-width:0}.dashboard-kpis{grid-template-columns:1fr 1fr}.dashboard-room-grid{grid-template-columns:repeat(3,minmax(115px,1fr))}.dashboard-shortcuts{grid-template-columns:1fr 1fr}}
@media(max-width:880px){.dashboard-layout{grid-template-columns:1fr}.dashboard-pulse{grid-template-columns:1fr 1fr}.dashboard-pulse article:nth-child(3){border-left:0;border-top:1px solid #e3ebea}.dashboard-pulse article:nth-child(4){border-top:1px solid #e3ebea}.dashboard-room-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.page-dashboard{padding-left:13px;padding-right:13px}.dashboard-hero{padding:22px 19px;border-radius:16px}.dashboard-hero h2{font-size:24px}.dashboard-hero-actions{grid-template-columns:1fr}.dashboard-kpis{grid-template-columns:1fr}.dashboard-kpi{min-height:104px}.dashboard-pulse{grid-template-columns:1fr}.dashboard-pulse article,.dashboard-pulse article:nth-child(3){border-left:0;border-top:1px solid #e3ebea}.dashboard-pulse article:first-child{border-top:0}.dashboard-room-grid{grid-template-columns:1fr 1fr}.dashboard-shortcuts{grid-template-columns:1fr}.dashboard-empty{align-items:flex-start;flex-direction:column}.dashboard-room-legend{gap:8px}.dashboard-rooms-panel,.dashboard-departures{padding:17px}.dashboard-rooms-panel .panel-title{align-items:flex-start;flex-direction:column}}

/* Navigation d’établissement et écrans de configuration premium */
.property-switcher{position:relative;display:grid;gap:1px;min-width:276px;padding:8px 12px 8px 48px;border:1px solid #d8e5e4;border-radius:14px;background:#fff;box-shadow:0 7px 22px rgba(18,54,58,.075);transition:.18s ease}.property-switcher:hover{border-color:#9fc3c1;box-shadow:0 10px 26px rgba(18,54,58,.11)}.property-switcher:before{content:"⌂";position:absolute;left:10px;top:50%;width:29px;height:29px;display:grid;place-items:center;transform:translateY(-50%);border-radius:9px;background:linear-gradient(145deg,#dcefed,#edf7f5);color:#0d6066;font-size:15px;font-weight:900}.property-switcher label{color:#74888b;font-size:8px;line-height:1;font-weight:900;letter-spacing:.14em}.property-switcher select{width:100%;padding:3px 26px 2px 0;border:0;border-radius:0;outline:0;background-color:transparent;color:#123f45;font-size:13px;font-weight:850;box-shadow:none}.property-switcher:focus-within{border-color:#3b9a98;box-shadow:0 0 0 3px rgba(34,139,137,.1)}
.page-property_setup,.page-devices{background:linear-gradient(180deg,#eff5f4 0,#f7f9f8 320px)}.page-property_setup>.top,.page-devices>.top{margin-bottom:18px}.page-property_setup .property-setup-head{position:relative;overflow:hidden;display:flex;margin-bottom:14px;padding:22px 25px;border-radius:18px;background:radial-gradient(circle at 83% -20%,rgba(92,209,193,.35),transparent 38%),linear-gradient(135deg,#0a343b,#0b626b);box-shadow:0 17px 38px rgba(10,56,63,.16)}.page-property_setup .property-setup-head:after{content:"";position:absolute;right:-40px;top:-75px;width:210px;height:210px;border:1px solid rgba(255,255,255,.1);border-radius:50%;box-shadow:0 0 0 34px rgba(255,255,255,.03)}.page-property_setup .property-setup-head>div{position:relative;z-index:1}.page-property_setup .property-setup-head h2{margin:4px 0;font-size:23px}.page-property_setup .property-setup-head p{font-size:11px}.page-property_setup .property-setup-head div:first-child>a{color:#a9d5d3}.page-property_setup .structure-metrics{position:relative;z-index:1}.page-property_setup .structure-metrics span{min-width:88px;text-align:center}.page-property_setup .room-legend{min-height:38px;justify-content:flex-end;margin:0 0 10px;padding:9px 13px;border:1px solid #dce7e6;border-radius:11px;background:#fff;box-shadow:0 4px 15px rgba(18,54,58,.035)}
.page-property_setup .hotel-map{grid-template-columns:178px 158px minmax(0,1fr);min-height:610px;border:1px solid #d7e4e3;border-radius:17px;background:#fff;box-shadow:0 15px 38px rgba(18,54,58,.09)}.page-property_setup .map-rail{background:#f5f8f7}.page-property_setup .map-rail:first-child{background:linear-gradient(180deg,#0c4d55,#0b3d44);border-color:#0a4148}.page-property_setup .map-rail-title{height:53px;padding:0 14px;background:rgba(10,57,63,.035);color:#274a4f}.page-property_setup .map-rail:first-child .map-rail-title{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.09);color:#fff}.page-property_setup .map-rail-title span{background:#e1f1ef;color:#0e6469}.page-property_setup .map-rail:first-child .map-rail-title span{background:rgba(255,255,255,.12);color:#d8eeee}.page-property_setup .map-nav-item{position:relative;gap:9px;min-height:55px;padding:11px 12px;border-color:#e0e9e8;background:transparent}.page-property_setup .map-nav-item .map-letter{display:grid;width:28px;height:28px}.page-property_setup .map-rail:first-child .map-nav-item{border-color:rgba(255,255,255,.08);color:#c7dcdc}.page-property_setup .map-rail:first-child .map-nav-item small{color:#8fb2b6}.page-property_setup .map-nav-item.active{background:linear-gradient(135deg,#16847f,#159a8c);color:#fff;box-shadow:inset 4px 0 0 #efc75e}.page-property_setup .map-nav-item.active small{color:#d4eeec}.page-property_setup .map-rail:first-child .map-nav-item.active{background:rgba(255,255,255,.12)}.page-property_setup .map-letter{background:#e2efed;color:#125e64}.page-property_setup .map-rail:first-child .map-letter{background:rgba(255,255,255,.1);color:#d7eaea}.page-property_setup .quick-add{border-color:#dce6e5}.page-property_setup .map-rail:first-child .quick-add{border-color:rgba(255,255,255,.08)}.page-property_setup .quick-add summary{padding:14px 13px;color:#12666b}.page-property_setup .map-rail:first-child .quick-add summary{color:#f0cc68}.page-property_setup .quick-add[open]{background:#fff}.page-property_setup .map-rail:first-child .quick-add[open]{background:#0d454c}.page-property_setup .map-rail:first-child .quick-add label{color:#d8e8e8}.page-property_setup .room-map{padding:19px 22px 34px;background:linear-gradient(180deg,#fff,#fbfcfc)}.page-property_setup .room-map-head{justify-content:space-between;margin-bottom:18px;padding-bottom:15px;border-bottom:1px solid #e2eae9}.page-property_setup .room-map-head>div{display:block}.page-property_setup .room-map-head .kicker{color:#1a817e}.page-property_setup .room-map-head .btn{min-height:41px;padding:9px 15px;border-color:#e2bb4f;background:linear-gradient(145deg,#f5d36f,#e7b83f);color:#483708;box-shadow:0 8px 19px rgba(222,173,43,.18)}.page-property_setup .building-group{padding:16px;border:1px solid #e1e9e8;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(18,54,58,.04)}.page-property_setup .building-group-title{margin-bottom:14px}.page-property_setup .building-group-title .hierarchy-icon{width:36px;height:36px;border-radius:11px;background:linear-gradient(145deg,#0c4d55,#14777a);box-shadow:0 6px 15px rgba(13,74,80,.16)}.page-property_setup .floor-group{margin-bottom:10px;padding:13px;border-radius:11px;background:#f7faf9}.page-property_setup .floor-group-title b{font-size:13px}.page-property_setup .floor-group-title span{background:#e3efed;color:#426568}.page-property_setup .add-room-tile{border:1px dashed #9fc7c4;background:linear-gradient(145deg,#f2f8f7,#fff);color:#176c6e}.page-property_setup .add-room-tile:hover{border-color:#15847f;background:#eaf6f3;box-shadow:0 7px 18px rgba(20,111,110,.09)}.page-property_setup .add-room-tile b{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;background:#dcefeb;color:#126b6d;font-size:19px}
.page-devices .gateway-hero{position:relative;overflow:hidden;padding:28px 30px;border-radius:20px;background:radial-gradient(circle at 82% 0,rgba(83,211,194,.4),transparent 36%),radial-gradient(circle at 100% 100%,rgba(239,199,94,.16),transparent 30%),linear-gradient(135deg,#092f36,#0a626a);box-shadow:0 20px 44px rgba(10,56,63,.18)}.page-devices .gateway-hero:after{content:"";position:absolute;right:-55px;top:-90px;width:240px;height:240px;border:1px solid rgba(255,255,255,.1);border-radius:50%;box-shadow:0 0 0 40px rgba(255,255,255,.03)}.page-devices .gateway-hero>div{position:relative;z-index:1}.page-devices .gateway-hero-state{min-width:170px;padding:19px;border-radius:16px;background:rgba(255,255,255,.1);backdrop-filter:blur(6px)}.page-devices .gateway-stats{gap:13px}.page-devices .gateway-stats article{position:relative;overflow:hidden;min-height:105px;padding:19px;border-top:4px solid #208f8c;border-radius:15px}.page-devices .gateway-stats article:nth-child(2){border-top-color:#25a674}.page-devices .gateway-stats article:nth-child(3){border-top-color:#e6b63f}.page-devices .gateway-stats article:after{content:"";position:absolute;right:-22px;bottom:-35px;width:90px;height:90px;border-radius:50%;background:#168985;opacity:.05}.page-devices .gateway-architecture{position:relative;gap:13px}.page-devices .gateway-architecture:before{content:"OU";position:absolute;left:50%;top:50%;z-index:2;width:31px;height:31px;display:grid;place-items:center;transform:translate(-50%,-50%);border:4px solid #f2f6f5;border-radius:50%;background:#fff;color:#738689;font-size:8px;font-weight:900}.page-devices .gateway-architecture article{min-height:82px;padding:16px 20px;border:1px solid #d7e5e4;border-radius:15px;background:#fff;box-shadow:0 5px 17px rgba(18,54,58,.045)}.page-devices .gateway-type-icon{width:47px;height:47px;flex-basis:47px;border-radius:14px}.page-devices .gateway-catalog,.page-devices .gateway-editor,.page-devices .other-devices{border:1px solid #dce7e6;box-shadow:0 10px 30px rgba(18,54,58,.065)}.page-devices .gateway-editor{border-top:4px solid #efc75e}.page-devices .gateway-empty{min-height:330px;background:radial-gradient(circle at 50% 0,#e9f5f3,transparent 45%),#f9fbfb}.page-devices .gateway-empty>span{width:62px;height:62px;border-radius:18px;background:linear-gradient(145deg,#d8ece9,#eef7f5);font-size:29px}.page-devices .gateway-type-options span{padding:13px;border-radius:12px;background:#f8faf9}.page-devices .gateway-type-options input:checked+span{border-color:#19827e;background:#e9f5f2;box-shadow:inset 0 0 0 1px #19827e,0 5px 14px rgba(20,116,112,.08)}
@media(max-width:1180px){.page-property_setup .hotel-map{grid-template-columns:160px 145px minmax(0,1fr)}.page-property_setup .property-setup-head{align-items:flex-start;flex-direction:column}.page-property_setup .structure-metrics{width:100%}}
@media(max-width:850px){.property-switcher{min-width:230px}.page-property_setup .hotel-map{grid-template-columns:1fr 1fr}.page-property_setup .map-rail:first-child{border-radius:0}.page-property_setup .room-map{grid-column:1/-1}.page-property_setup .property-setup-head{padding:20px}.page-devices .gateway-architecture:before{display:none}}
@media(max-width:560px){.property-switcher{width:100%;min-width:0}.page-property_setup .property-setup-head{display:flex}.page-property_setup .structure-metrics{display:grid}.page-property_setup .hotel-map{display:block}.page-property_setup .room-map-head{align-items:stretch}.page-property_setup .room-map-head .btn{width:100%}.page-property_setup .room-legend{justify-content:flex-start}.page-devices .gateway-hero{padding:22px 19px}}
