:root{
  --navy:#1f3864; --navy-2:#2b4a80; --gold:#b8860b; --green:#2e7d32;
  --red:#c62828; --orange:#e08a00; --blue:#1565c0; --grey:#6b7280;
  --bg:#f4f5f8; --card:#fff; --line:#e3e6ec; --text:#1d2330;
  --radius:10px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:15px;color:var(--text);background:var(--bg);}
a{color:var(--navy-2)}
.layout{display:flex;min-height:100vh}
.sidebar{width:220px;background:var(--navy);color:#fff;flex-shrink:0;display:flex;flex-direction:column}
.sidebar .brand{padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.12)}
.sidebar .brand b{display:block;font-size:17px}
.sidebar .brand small{color:#c9d3e6}
.sidebar nav a{display:block;padding:11px 18px;color:#e6ebf5;text-decoration:none;border-left:3px solid transparent}
.sidebar nav a:hover,.sidebar nav a.actif{background:var(--navy-2);border-left-color:var(--gold);color:#fff}
.sidebar .bas{margin-top:auto;padding:14px 18px;font-size:13px;color:#c9d3e6;border-top:1px solid rgba(255,255,255,.12)}
.sidebar .bas a{color:#fff}
.main{flex:1;min-width:0}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;background:#fff;border-bottom:1px solid var(--line)}
.topbar h1{font-size:20px;margin:0;color:var(--navy)}
.date-expl{background:#fff7e0;border:1px solid #f0d58a;color:#7a5a00;padding:5px 10px;border-radius:20px;font-size:13px;white-space:nowrap}
.content{padding:20px 24px}
.menu-toggle{display:none}
.grid{display:grid;gap:16px}
.g4{grid-template-columns:repeat(4,1fr)} .g3{grid-template-columns:repeat(3,1fr)} .g2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.card h2{font-size:16px;margin:0 0 12px;color:var(--navy)}
.kpi .lib{color:var(--grey);font-size:13px}
.kpi .val{font-size:26px;font-weight:700;color:var(--navy);margin-top:4px}
.kpi .sub{font-size:13px;color:var(--grey)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--grey);font-weight:600}
td.num,th.num{text-align:right;white-space:nowrap}
tr.barre td{color:#9aa1ad;text-decoration:line-through}
.btn{display:inline-block;padding:8px 14px;border-radius:8px;border:1px solid var(--navy-2);background:var(--navy-2);color:#fff;text-decoration:none;font-size:14px;cursor:pointer;font-family:inherit;line-height:1.2}
.btn:hover{background:var(--navy)}
.btn.sec{background:#fff;color:var(--navy-2)}
.btn.vert{background:var(--green);border-color:var(--green)}
.btn.rouge{background:#fff;color:var(--red);border-color:var(--red)}
.btn.or{background:var(--gold);border-color:var(--gold)}
.btn.petit{padding:4px 9px;font-size:12px}
.btn.grand{padding:12px 20px;font-size:16px}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
form.inline{display:inline}
label{display:block;font-size:13px;color:var(--grey);margin-bottom:4px}
input,select,textarea{width:100%;padding:9px 10px;border:1px solid #cfd5df;border-radius:8px;font-size:15px;font-family:inherit;background:#fff}
input[type=checkbox]{width:auto}
.champ{margin-bottom:12px}
.champ .aide{font-size:12px;color:var(--grey);margin-top:3px}
.champ .err,.errorlist{color:var(--red);font-size:13px;margin:4px 0;padding:0;list-style:none}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 16px}
.messages{list-style:none;padding:0;margin:0 0 16px}
.messages li{padding:10px 14px;border-radius:8px;margin-bottom:8px}
.messages .success{background:#e8f5e9;color:#1b5e20;border:1px solid #b9dfbb}
.messages .error{background:#fdecea;color:#8e1c1c;border:1px solid #f3c0bb}
.messages .info,.messages .warning{background:#fff7e0;color:#7a5a00;border:1px solid #f0d58a}
.badge{display:inline-block;padding:3px 9px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap}
.b-option{background:#fff3cd;color:#7a5a00}
.b-confirmee{background:#e3ecfb;color:var(--blue)}
.b-en_cours{background:#e3f4e4;color:var(--green)}
.b-terminee{background:#eceff3;color:#4b5563}
.b-annulee,.b-no_show{background:#fdecea;color:var(--red)}
.b-propre{background:#e3f4e4;color:var(--green)}
.b-sale{background:#fdecea;color:var(--red)}
.b-en_nettoyage{background:#fff3cd;color:#7a5a00}
.b-a_controler{background:#e3ecfb;color:var(--blue)}
.b-hors_service{background:#374151;color:#fff}
.solde-du{color:var(--red);font-weight:700}
.solde-ok{color:var(--green);font-weight:700}
.muted{color:var(--grey)}
.vide{color:var(--grey);font-style:italic;padding:10px 0}
.recherche{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.recherche input,.recherche select{width:auto;flex:1;min-width:160px}
/* Planning */
.planning-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.planning{border-collapse:separate;border-spacing:0;min-width:900px}
.planning th,.planning td{border-bottom:1px solid var(--line);border-right:1px solid #f0f2f5;padding:0;height:38px;font-size:12px}
.planning th{text-align:center;padding:6px 2px;text-transform:none}
.planning th.auj{background:#fff7e0;color:#7a5a00}
.planning td.ch{position:sticky;left:0;background:#fff;padding:0 10px;font-weight:600;min-width:110px;z-index:1;border-right:1px solid var(--line)}
.planning td.ch small{display:block;font-weight:400;color:var(--grey)}
.planning td.libre a{display:block;width:100%;height:38px}
.planning td.libre a:hover{background:#eef3fb}
.planning .bloc{display:block;margin:3px 2px;padding:5px 7px;border-radius:6px;color:#fff;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.bloc.option{background:var(--orange)}
.bloc.confirmee{background:var(--blue)}
.bloc.en_cours{background:var(--green)}
.bloc.terminee{background:#9aa1ad}
.legende{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;margin:10px 0}
.legende span::before{content:"";display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px;background:var(--c)}
/* Housekeeping */
.chambres{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.tuile{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;border-top:5px solid var(--c,#ccc)}
.tuile .num{font-size:22px;font-weight:700;color:var(--navy)}
.tuile .etat{margin:6px 0}
.tuile select{margin-top:6px}
/* Connexion */
.connexion{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy),var(--navy-2))}
.connexion .card{width:100%;max-width:380px;padding:28px}
.connexion h1{color:var(--navy);font-size:22px;margin:0 0 4px}
/* Impression */
.imprimable{max-width:800px;margin:0 auto;background:#fff;padding:32px;font-size:14px}
.imprimable .entete{display:flex;justify-content:space-between;border-bottom:3px solid var(--gold);padding-bottom:12px;margin-bottom:18px}
.imprimable h1{color:var(--navy);margin:0;font-size:22px}
.no-print{margin:16px auto;max-width:800px;display:flex;gap:8px}
@media print{
  .no-print,.sidebar,.topbar{display:none!important}
  body{background:#fff}
  .imprimable{padding:0;max-width:none}
  .content{padding:0}
}
@media (max-width:900px){
  .g4{grid-template-columns:repeat(2,1fr)} .g3,.g2,.form-grid{grid-template-columns:1fr}
  .layout{display:block}
  .sidebar{width:100%;position:sticky;top:0;z-index:10}
  .sidebar nav{display:none}
  .sidebar.ouvert nav{display:block}
  .sidebar .bas{display:none}
  .sidebar.ouvert .bas{display:block}
  .sidebar .brand{display:flex;justify-content:space-between;align-items:center}
  .menu-toggle{display:block;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:6px;padding:6px 10px;font-size:15px}
  .content{padding:14px}
  .topbar{padding:12px 14px;flex-wrap:wrap}
  .table-scroll{overflow-x:auto}
}

.recherche-globale{flex:1;max-width:460px}
.recherche-globale input{padding:7px 12px;border-radius:20px;background:#f4f5f8}
.alerte{padding:10px 14px;border-radius:8px;margin-bottom:12px;background:#fdecea;color:#8e1c1c;border:1px solid #f3c0bb}
.alerte.ok{background:#e8f5e9;color:#1b5e20;border-color:#b9dfbb}
.alerte.info{background:#fff7e0;color:#7a5a00;border-color:#f0d58a}
.case-liste ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:4px}
.case-liste label{display:flex;gap:6px;align-items:center;color:var(--text)}
/* Passage */
.tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.tuile-p{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;border-top:6px solid var(--c,#ccc)}
.tuile-p .num{font-size:24px;font-weight:700;color:var(--navy)}
.tuile-p.libre{--c:var(--green)} .tuile-p.occupee{--c:var(--blue)} .tuile-p.depasse{--c:var(--red)}
.tuile-p.a_nettoyer{--c:var(--orange)} .tuile-p.sejour{--c:#9aa1ad}
.formules{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.formules label{border:1px solid var(--navy-2);border-radius:8px;padding:6px 8px;cursor:pointer;font-size:13px;color:var(--navy-2)}
.formules input{display:none}
.formules input:checked+span{font-weight:700}
.formules label:has(input:checked){background:var(--navy-2);color:#fff}
.chrono{font-size:20px;font-weight:700}
.recu{width:300px;border:1px dashed #999;padding:14px;font-family:monospace;font-size:13px;margin:0 auto 20px}
.recu h2{font-size:16px;margin:0 0 6px;text-align:center}
.recus{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}
@media print{.recus{display:block}.recu{page-break-after:always;border:none}}
.btn[disabled]{opacity:.45;cursor:not-allowed}
/* Rack HOTELIUM : blanc libre, jaune sale, rouge attendu, bleu occupée, orange départ, gris HS */
.rack-compteurs{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:14px}
.rack-compteurs .cpt{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:12px;color:var(--grey);border-top:4px solid #cfd5df}
.rack-compteurs .cpt b{display:block;font-size:24px;color:var(--navy)}
.cpt.libre{border-top-color:#cfd5df}.cpt.occupee{border-top-color:#1565c0}.cpt.depart{border-top-color:#e08a00}
.cpt.depart.deb b{color:var(--red)}.cpt.attendu{border-top-color:#c62828}.cpt.hs{border-top-color:#6b7280}
.rack-barre{display:flex;gap:14px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.rack-barre input{max-width:380px}
.legende{font-size:12px;color:var(--grey)}
.legende i{display:inline-block;width:12px;height:12px;border-radius:3px;margin:0 3px 0 10px;vertical-align:-2px;border:1px solid #bbb}
.legende i.libre,.rk.libre{background:#fff}.legende i.sale,.rk.sale{background:#fff3b0}
.legende i.attendu,.rk.attendu{background:#f8d0d0}.legende i.occupee,.rk.occupee{background:#cfe0f7}
.legende i.passage,.rk.passage{background:#ddd3f5}.legende i.depart,.rk.depart{background:#ffd9a8}.legende i.hs,.rk.hs{background:#d5d7db}
.rack-touches{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:var(--navy);padding:8px;border-radius:8px;margin-bottom:12px}
.rack-touches .sel{color:#fff;font-weight:600;margin-right:8px;min-width:220px}
.rack-touches button{background:#fff;border:0;border-radius:6px;padding:7px 10px;font:inherit;font-size:13px;cursor:pointer;color:var(--navy)}
.rack-touches button:disabled{opacity:.35;cursor:not-allowed}
.rack-touches button:not(:disabled):hover{background:var(--gold);color:#fff}
.rack-hs{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.rack-hs input{max-width:420px}
.rack-hs[hidden]{display:none}
.rack{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.rk{border:1px solid #c3c8d1;border-radius:8px;padding:8px 10px;min-height:96px;cursor:pointer;user-select:none;font-size:12px}
.rk[hidden]{display:none}
.rk.choisie{outline:3px solid var(--navy);outline-offset:1px}
.rk.sale-aussi{box-shadow:inset 0 -5px 0 #f2d200}
.rk-tete{display:flex;justify-content:space-between;align-items:baseline}
.rk-num{font-size:20px;font-weight:700;color:var(--navy)}.rk-type{color:#555;font-size:11px}
.rk-nom{font-weight:600;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk-info{color:#444}
@media (max-width:900px){.rack-compteurs{grid-template-columns:repeat(4,1fr)}}
/* Délogement */
.choix-chambres{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px}
.choix-chambres label,.choix-ligne label{display:flex;gap:6px;align-items:center;color:var(--text);font-size:14px;border:1px solid var(--line);border-radius:6px;padding:7px}
.choix-chambres input,.choix-ligne input{width:auto}.choix-ligne{display:flex;gap:10px;flex-wrap:wrap}
.choix-chambres div,.choix-ligne div{display:contents}
/* Reçu de versement, confirmation, état gouvernante */
.versement{margin-bottom:24px;border:1px dashed #bbb}
.versement .montant{font-size:20px;font-weight:700}
.signatures{display:flex;justify-content:space-between;margin:36px 0 50px}.signatures div{width:45%;text-align:center;border-top:1px solid #999;padding-top:6px}
.signatures div:first-child:empty{border:0}
.mention{font-size:12px;font-style:italic;border-top:1px solid var(--line);padding-top:8px}
.pied{font-size:11px}.annule{color:var(--red);font-weight:700}
table.gouv th,table.gouv td{padding:5px 6px;font-size:12px;border:1px solid #ccc}table.gouv td.ecrire{min-width:110px}
@media print{.versement{page-break-after:always;border:0}}
/* Lot 2 : folios, transfert de note */
table.folios{margin-top:8px;font-size:12px}table.folios td{padding:3px 4px}
select.mini{width:auto;padding:2px 4px;font-size:12px}
form.transfert{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;padding:8px;background:#f7f8fb;border-radius:8px;font-size:13px}
form.transfert select,form.transfert input{width:auto;max-width:240px;padding:5px 8px;font-size:13px}
.lignes-pf input,.lignes-pf select{padding:6px;font-size:14px}
.saut-page{page-break-after:always;height:30px}
/* Menu organisé comme HOTELIUM */
.sidebar nav .nav-titre{padding:12px 18px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--gold);font-weight:700}
.sidebar nav a{padding:8px 18px}
.sidebar nav kbd{float:right;font:11px/1.6 monospace;background:rgba(255,255,255,.12);border-radius:4px;padding:0 5px;color:#dfe6f3}
.sidebar nav a.aide{margin-top:10px;font-size:12px;color:#f3d98b;border-top:1px solid rgba(255,255,255,.12)}
.pastille{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;text-align:center}
.etats-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.etats-grille a{display:block;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;text-decoration:none;color:var(--text)}
.etats-grille a:hover{border-color:var(--gold)}
.etats-grille small{color:var(--grey)}
table.etat th,table.etat td{padding:5px 7px;font-size:13px}
table.etat.large th,table.etat.large td{padding:3px 4px;font-size:11px;text-align:center}
.consigne{border-left:4px solid var(--blue);background:#fff;border-radius:6px;padding:10px 12px;margin-bottom:8px}
.consigne.importante{border-left-color:var(--red)}
.consigne .qui{font-size:12px;color:var(--grey)}
/* Lot 3 : gestion */
.grid.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media (max-width:900px){.grid.g4{grid-template-columns:1fr 1fr}}
table.ce tr.total td{font-weight:700;background:#f3f5f9}
table.ce tr.rbe td{font-weight:700;background:#fdf6e3;color:var(--navy)}
table.ce tr.charge td:first-child{padding-left:22px}
table.budget{font-size:12px}table.budget td,table.budget th{padding:3px}
table.budget input{width:92px;padding:4px;font-size:12px;text-align:right}
table.budget tr.kpi td{background:#f7f8fb}
.statut.st-soumise{background:#fff3cd;color:#8a6100}.statut.st-validee{background:#dbeafe;color:#1e40af}
.statut.st-payee{background:#dcfce7;color:#166534}.statut.st-rejetee{background:#fee2e2;color:#991b1b}
.statut{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600;vertical-align:middle}
/* Services généraux */
.statut.st-attente,.statut.st-prevu{background:#fff3cd;color:#8a6100}.statut.st-recu,.statut.st-tenu,.statut.st-en_cours{background:#dcfce7;color:#166534}
.statut.st-patiente,.statut.st-arrive{background:#dbeafe;color:#1e40af}.statut.st-refuse,.statut.st-non_tenu,.statut.st-annule{background:#fee2e2;color:#991b1b}
.statut.st-renvoye,.statut.st-reporte,.statut.st-parti{background:#eef0f4;color:#444}
.code-P{color:#166534;font-weight:700}.code-R{color:#b45309;font-weight:700}.code-A,.code-AI{color:#b91c1c;font-weight:700;background:#fee2e2}
.code-C,.code-M,.code-PE,.code-MI,.code-RC{color:#1e40af}.code-RP{color:#999}
table.presences-mois th,table.presences-mois td{padding:2px 3px;font-size:11px;text-align:center}
.vehicules{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.vh{display:block;background:#fff;border:1px solid var(--line);border-left:6px solid #16a34a;border-radius:8px;padding:10px;color:var(--text);text-decoration:none;font-size:13px}
.vh-mission{border-left-color:#2563eb}.vh-garage,.vh-immobilise{border-left-color:#dc2626}.vh-reforme{border-left-color:#999}
.vh-imm{font-size:18px;font-weight:700;color:var(--navy)}.vh-st{font-weight:600;margin:4px 0}
body.kiosque{background:var(--navy);display:flex;min-height:100vh;align-items:center;justify-content:center}
.kiosque-boite{background:#fff;border-radius:14px;padding:30px;width:min(440px,92vw);text-align:center}
.kiosque-boite h1{color:var(--navy);margin:0 0 6px;font-size:22px}.horloge{font-size:54px;font-weight:700;color:var(--navy)}
.kiosque-boite input{font-size:20px;padding:12px;margin:8px 0;text-align:center}
.kiosque-msg{margin:14px 0;padding:14px;border-radius:8px;font-size:18px;font-weight:600}
.kiosque-msg.ok{background:#dcfce7;color:#166534}.kiosque-msg.ko{background:#fee2e2;color:#991b1b}
tr.retard td{background:#fff3f0}
.pj table td{padding:4px 6px}
/* Documents RH imprimables (contrat, attestation, bulletin) */
.papier{background:#fff;max-width:820px;margin:16px auto;padding:34px 44px;border:1px solid var(--line);font-size:13.5px;line-height:1.55}
.papier h1{font-size:19px;text-align:center;text-transform:uppercase;letter-spacing:.5px;margin:10px 0 18px}
.papier h3{font-size:14px;margin:16px 0 4px;text-transform:uppercase}
.papier table{width:100%;border-collapse:collapse}.papier td,.papier th{border:1px solid #999;padding:4px 7px}
.papier .entete-doc{display:flex;justify-content:space-between;border-bottom:2px solid var(--navy);padding-bottom:8px;font-size:12px}
.papier .signatures{display:flex;justify-content:space-between;margin-top:40px}.papier .signatures div{width:45%;text-align:center}
.bulletin{font-size:11.5px;padding:22px 26px}.bulletin td,.bulletin th{padding:3px 5px}
.bulletin .num{text-align:right;white-space:nowrap}
@media print{.papier{border:none;margin:0;padding:0 8px;max-width:none}.saut-page{page-break-after:always}}
@media print{.ecran{display:none!important}}
/* Restaurant, bar et points de vente (écran tactile) */
.pdv-tuile{display:grid;gap:6px;text-decoration:none;color:inherit;border-top:4px solid var(--gold,#b8862b)}
.pdv-tuile h2{margin:0;font-size:22px}.pdv-type{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#667)}
.pastille{display:inline-block;font-size:12px;padding:3px 8px;border-radius:3px;background:#eceef3;color:#555}.pastille.ok{background:#e3f2e8;color:#1f6b3a}
.btn.gros{padding:12px 18px;font-size:16px}
.tables{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.table-tuile{width:92px;height:70px;border:2px solid #cfd5df;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;text-decoration:none;color:inherit}
.table-tuile b{font-size:20px}.table-tuile small{font-size:11px;color:#667}
.table-tuile.occupee{border-color:#1f3557;background:#e8eef8}.table-tuile.attente{border-color:#b8862b;background:#fff6df}
.pdv-ecran{display:grid;grid-template-columns:minmax(0,3fr) minmax(320px,2fr);gap:14px;align-items:start}
.familles{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.famille{border:1px solid #cfd5df;background:#f3f5f9;border-radius:4px;padding:10px 14px;font-size:15px;cursor:pointer}
.famille.actif{background:#1f3557;color:#fff;border-color:#1f3557}
.produits{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.produit-btn{width:100%;min-height:76px;border:1px solid #cfd5df;border-radius:6px;background:#fff;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:8px 10px;font-size:14px;text-align:left}
.produit-btn:hover,.produit-btn:focus{border-color:#1f3557;background:#f0f4fb}.produit-btn b{color:#1f3557}
.lignes-note td{padding:6px 4px;border-bottom:1px solid #eceef3;vertical-align:top}.lignes-note small.offert{color:#1f6b3a}
.total-note{display:flex;justify-content:space-between;font-size:22px;font-weight:700;margin:10px 0 4px;border-top:2px solid #1f3557;padding-top:8px}
.total-ligne{display:flex;justify-content:space-between;margin:6px 0 0}
details.bloc{border-top:1px solid #eceef3;padding:8px 0}details.bloc summary{cursor:pointer;font-weight:600}
details.ligne-actions summary{cursor:pointer;list-style:none;padding:0 6px;font-size:18px}
details.ligne-actions form{display:grid;gap:4px;min-width:200px}
.modes{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}
@media (max-width:900px){.pdv-ecran{grid-template-columns:1fr}}
.produits[hidden]{display:none}
.gros-chiffre{font-size:22px;font-weight:700;max-width:220px}
.billets{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.monnaie{margin:10px 0;padding:10px 12px;border-radius:4px;font-size:16px}
.monnaie.ok{background:#e3f2e8;color:#1f6b3a}.monnaie.ok b{font-size:20px}
.monnaie.erreur{background:#fdecea;color:#9b1c1c}
.rendre{font-size:18px}
/* Dépannage */
.bouton-depannage{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:50;display:flex;align-items:center;gap:8px;background:#b8862b;color:#fff;font-weight:700;padding:12px 18px;border-radius:30px;box-shadow:0 4px 14px rgba(0,0,0,.25);text-decoration:none;font-size:15px}
.bouton-depannage:hover,.bouton-depannage:focus{background:#9a6f1f;color:#fff}
.pastille-rouge{background:#c62828;color:#fff;border-radius:10px;padding:1px 7px;font-size:12px;font-weight:700}
.urgences{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.urgences label{border:2px solid #cfd5df;border-radius:6px;padding:10px;cursor:pointer;display:flex;gap:8px;align-items:flex-start;background:#fff}
.urgences label:has(input:checked){border-color:#1f3557;background:#e8eef8}
.statut-t{display:inline-block;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:600;background:#eceef3}
.statut-t.nouveau{background:#fdecea;color:#9b1c1c}.statut-t.pris,.statut-t.en_cours{background:#e8eef8;color:#1f3557}
.statut-t.attente{background:#fff6df;color:#7a5600}.statut-t.resolu,.statut-t.clos{background:#e3f2e8;color:#1f6b3a}
.urg-bloquant{color:#b00;font-weight:700}
.fil{display:grid;gap:8px}.bulle{padding:10px 12px;border-radius:6px;max-width:80ch}
.bulle.hotel{background:#f3f5f9}.bulle.cabinet{background:#e8eef8;margin-left:auto}.bulle.interne{background:#fff6df;border:1px dashed #b8862b;margin-left:auto}
.bulle small{display:block;color:#667;margin-bottom:4px}
pre.diag{background:#f3f5f9;padding:10px;font-size:11px;overflow-x:auto;max-height:240px}
@media (max-width:700px){.urgences{grid-template-columns:1fr}}
.urgences input{width:auto;flex:none;margin-top:3px}.urgences label span{text-align:left}
.panneau-pf{max-width:820px;margin:12px auto;text-align:left}.panneau-pf .card{text-align:left}
/* Rapports hebdomadaires */
.indic{background:#f3f5f9;border-radius:6px;padding:10px 12px;margin-bottom:12px}
.indic dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px 14px;margin:8px 0 0}
.indic dt{font-size:12px;color:#667}.indic dd{margin:0;font-weight:700}
.meteo{display:inline-block;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:600}
.meteo.bonne{background:#e3f2e8;color:#1f6b3a}.meteo.moyenne{background:#fff6df;color:#7a5600}.meteo.difficile{background:#fdecea;color:#9b1c1c}
.bloc-service{border-top:1px solid #eceef3;padding-top:8px}.indic-ligne{font-size:13px;color:#445}
ol.odj li{margin:4px 0}
/* Maintenance */
.rouge-txt{color:#b00020}
.st-m{display:inline-block;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:600;background:#eceef3;color:#333}
.st-m.signalee{background:#fdecea;color:#9b1c1c}.st-m.affectee,.st-m.en_cours{background:#e8eef8;color:#1f3557}
.st-m.attente{background:#fff6df;color:#7a5600}.st-m.terminee{background:#efe7fb;color:#5b2a91}
.st-m.cloturee{background:#e3f2e8;color:#1f6b3a}.st-m.annulee{background:#eceef3;color:#777;text-decoration:line-through}
.urg{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;font-weight:600}
.urg.urgente{background:#c62828;color:#fff}.urg.normale{background:#e8eef8;color:#1f3557}.urg.faible{background:#eceef3;color:#555}
/* CRM */
.cs{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;font-weight:600;background:#eceef3;color:#444;vertical-align:middle}
.cs.client{background:#e3f2e8;color:#1f6b3a}.cs.prospect{background:#e8eef8;color:#1f3557}.cs.perdu{background:#fdecea;color:#9b1c1c}
.etape{display:inline-block;padding:1px 8px;border-radius:3px;font-size:12px;font-weight:600;background:#eceef3}
.etape.piste{background:#f1f3f7}.etape.qualifiee{background:#e8eef8;color:#1f3557}.etape.proforma{background:#fff6df;color:#7a5600}
.etape.negociation{background:#ffe9d6;color:#8a4200}.etape.gagnee{background:#e3f2e8;color:#1f6b3a}.etape.perdue{background:#fdecea;color:#9b1c1c}
.pipeline{display:grid;grid-template-columns:repeat(6,minmax(170px,1fr));gap:10px;overflow-x:auto;padding-bottom:6px}
.colonne{background:#f4f6fa;border-radius:8px;padding:6px;min-height:120px}
.col-tete{display:block;padding:6px 8px;margin-bottom:6px;font-size:13px}.col-tete small{font-weight:400}
.carte-af{background:#fff;border:1px solid #e1e5ec;border-radius:6px;padding:8px;margin-bottom:6px;font-size:13px}
.carte-af .avancer select{margin-top:6px;font-size:12px;padding:3px}
.rc{display:inline-block;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:600}
.rc.ouverte{background:#fdecea;color:#9b1c1c}.rc.traitement{background:#e8eef8;color:#1f3557}.rc.resolue,.rc.close{background:#e3f2e8;color:#1f6b3a}
.questionnaire .question{margin:12px 0}.questionnaire .question>label{font-weight:600;display:block;margin-bottom:6px}
.choix-notes{display:flex;flex-wrap:wrap;gap:6px}.choix-notes label{display:flex;align-items:center;gap:4px;border:1px solid #d5dae3;border-radius:6px;padding:6px 10px;cursor:pointer;font-weight:400}
.choix-notes input{width:auto;margin:0}.choix-notes.dix label{padding:6px 9px}
.questionnaire textarea{width:100%}
/* Circuits de validation */
ol.niveaux{margin:6px 0 6px 0;padding-left:20px}ol.niveaux li{margin:6px 0}
ol.niveaux li.fait{color:#1f6b3a}ol.niveaux li.encours{font-weight:600}
.niveau-form .case-liste ul{columns:2;list-style:none;padding:0;margin:0}.niveau-form .case-liste li label{font-weight:400}
.niveau-form .case-liste input{width:auto}
.da{display:inline-block;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:600;background:#eceef3}
.da.a_valider{background:#fff6df;color:#7a5600}.da.validee{background:#e8eef8;color:#1f3557}.da.commandee{background:#e3f2e8;color:#1f6b3a}
.da.refusee{background:#fdecea;color:#9b1c1c}.da.annulee{color:#777;text-decoration:line-through}
.radios ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}.radios li label{font-weight:400;display:flex;gap:6px;align-items:center;border:1px solid #d5dae3;border-radius:6px;padding:5px 9px}.radios li input{width:auto;margin:0}
.bloc.confirmee.ng{background:repeating-linear-gradient(135deg,var(--blue) 0 8px,#5f86c4 8px 16px);outline:2px dashed #e0a100;outline-offset:-2px}
.legende .ng-leg::before{background:repeating-linear-gradient(135deg,var(--blue) 0 4px,#5f86c4 4px 8px);outline:2px dashed #e0a100}
.choix-chambres{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.choix-chambres label{display:flex;gap:6px;align-items:center;border:1px solid #d5dae3;border-radius:6px;padding:6px 10px;font-weight:400;cursor:pointer}
.choix-chambres input{width:auto;margin:0}.choix-chambres label:has(input:checked){border-color:#1f3557;background:#e8eef8}
.src{display:inline-block;padding:1px 7px;border-radius:3px;font-size:12px;font-weight:600;background:#eceef3}.src.site{background:#e3f2e8;color:#1f6b3a}.src.booking{background:#e1ebff;color:#003580}.src.expedia{background:#fff3cd;color:#7a5600}.src.airbnb{background:#ffe3e6;color:#a11a2c}
.actions input[type=date]{width:auto}
.bandeau-cloud{background:#e8eef8;color:#1f3557;border-bottom:1px solid #c9d6ea;padding:8px 18px;font-size:14px}
.barres7{display:flex;gap:8px;align-items:flex-end;height:180px;padding:6px 0}
.col7{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;height:100%}
.col7 .pile{flex:1;width:100%;max-width:42px;display:flex;flex-direction:column-reverse;background:#f4f6fa;border-radius:4px;overflow:hidden}
.b-dir{background:#c9a227;display:block}.b-aut{background:#9fb3d1;display:block}
.leg{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:middle}
tr.ligne-or td{background:#fff7dc;font-weight:600}
.propositions .prop{border:1px solid #e1e5ec;border-radius:6px;padding:8px;margin-bottom:8px;white-space:pre-wrap;font-size:13px}
/* En-tête et pied des documents : identité de l'hôtel */
.ent-hotel{display:flex;gap:14px;align-items:flex-start}.ent-logo{max-height:70px;max-width:140px;object-fit:contain}
.ent-classement{font-size:12px;color:#b8862b;font-weight:600;margin:-4px 0 2px}
.mentions-legales{margin-top:24px;padding-top:8px;border-top:1px solid #ccd;font-size:10.5px;color:#667;text-align:center;line-height:1.5}
.seul-impression{display:none}@media print{.seul-impression{display:block}}
.identite-grille{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}
.identite-grille>div{position:sticky;top:10px}
@media (max-width:1100px){.identite-grille{grid-template-columns:1fr}.identite-grille>div{position:static}}
.mini-connexion{position:relative;height:190px;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,#1f3557,#2c4d7c 55%,#b8862b);background-size:cover;background-position:center}
.mini-voile{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,22,40,.75),rgba(12,22,40,.15))}
.mini-hotel{position:absolute;left:14px;bottom:14px;color:#fff;display:grid;gap:3px;max-width:52%}
.mini-hotel img{max-height:30px;max-width:80px;object-fit:contain;background:#fff;border-radius:4px;padding:2px}.mini-hotel b{font-size:15px}.mini-hotel small{opacity:.85;font-size:11px}
.mini-carte{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:34%;background:rgba(255,255,255,.95);border-radius:6px;padding:10px;display:grid;gap:6px}
.mini-carte i{display:block;height:9px;border:1px solid #ccd;border-radius:3px}.mini-carte span{display:block;height:11px;background:#2e7d32;border-radius:3px}
.apercu-doc{border:1px solid #dde;border-radius:6px;padding:14px;background:#fff;font-size:12px}.apercu-doc h1{font-size:16px;margin:0 0 3px}
.apercu-doc .ent-logo{max-height:46px}.apercu-corps{display:grid;gap:6px;margin-top:14px}.apercu-corps span{display:block;height:7px;background:#eef0f4;border-radius:3px}
.apercu-doc .mentions-legales{margin-top:14px;font-size:9.5px}
/* Page de connexion : photo de l'hôtel en plein écran */
.page-connexion{margin:0;min-height:100vh;background:#0f1d33;overflow-x:hidden}
.cx-fond{position:fixed;inset:0;background:radial-gradient(circle at 20% 80%,rgba(184,134,43,.35),transparent 45%),linear-gradient(135deg,#14243f,#1f3557 50%,#2c4d7c)}
.cx-photo{background-size:cover;background-position:center;animation:cx-zoom 28s ease-out both}
@keyframes cx-zoom{from{transform:scale(1.08)}to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.cx-photo{animation:none}}
.cx-voile{position:fixed;inset:0;background:linear-gradient(100deg,rgba(8,16,30,.82) 0%,rgba(8,16,30,.45) 45%,rgba(8,16,30,.25) 65%,rgba(8,16,30,.55) 100%)}
.cx{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:48px clamp(16px,6vw,96px);box-sizing:border-box}
.cx-hotel{color:#fff;max-width:560px;align-self:flex-end;padding-bottom:4vh}
.cx-logo{max-height:96px;max-width:220px;object-fit:contain;background:rgba(255,255,255,.94);border-radius:10px;padding:10px 14px;margin-bottom:22px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.cx-classement{color:#e2b866;letter-spacing:.18em;text-transform:uppercase;font-size:13px;font-weight:600;margin-bottom:6px}
.cx-hotel h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(34px,4.6vw,60px);line-height:1.05;margin:0;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.cx-slogan{font-size:clamp(16px,1.6vw,20px);margin:14px 0 0;opacity:.92;font-style:italic;font-family:Georgia,serif}
.cx-ville{margin:16px 0 0;font-size:13px;letter-spacing:.14em;text-transform:uppercase;opacity:.75;border-top:1px solid rgba(255,255,255,.35);padding-top:12px;display:inline-block}
.cx-carte{background:rgba(255,255,255,.96);border-radius:16px;padding:34px 32px 22px;width:100%;max-width:380px;box-sizing:border-box;box-shadow:0 24px 60px rgba(0,0,0,.35);backdrop-filter:blur(6px)}
.cx-carte h2{margin:0;color:#1f3557;font-size:26px;font-family:Georgia,serif;font-weight:400}
.cx-sous{color:#667;margin:6px 0 22px;font-size:14px}
.cx-carte label{display:block;font-size:13px;font-weight:600;color:#334;margin:0 0 6px}
.cx-carte input{width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid #cfd5e0;border-radius:8px;font-size:15px;margin-bottom:16px;background:#fff}
.cx-carte input:focus{outline:none;border-color:#b8862b;box-shadow:0 0 0 3px rgba(184,134,43,.18)}
.cx-mdp{position:relative}.cx-mdp input{padding-right:84px}
.cx-voir{position:absolute;right:6px;top:6px;border:0;background:none;color:#1f3557;font-size:12.5px;padding:7px 8px;cursor:pointer}
.cx-bouton{width:100%;padding:13px;border:0;border-radius:8px;background:#1f3557;color:#fff;font-size:16px;font-weight:600;cursor:pointer;margin-top:4px}
.cx-bouton:hover{background:#2c4d7c}
.cx-erreur{background:#fdecea;color:#a12622;border-radius:8px;padding:10px 12px;font-size:14px;margin:0 0 16px}
.cx-pied{text-align:center;color:#99a;font-size:11.5px;margin:20px 0 0}
@media (max-width:820px){.cx{flex-direction:column;justify-content:center;gap:26px;padding:32px 16px}.cx-hotel{align-self:center;text-align:center;padding:0}
  .cx-logo{max-height:64px;margin-bottom:12px}.cx-ville{display:none}.cx-voile{background:rgba(8,16,30,.55)}}
/* Fiche technique : photo du plat */
.plat-photo-zone{display:flex;gap:20px;flex-wrap:wrap;align-items:flex-start}
.plat-photo{width:300px;display:grid;gap:6px}.plat-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid #dde}
.plat-sans-photo{width:100%;aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #cfd5e0;border-radius:8px;color:#889;text-align:center;background:#fafbfd}
.vignette-plat{width:46px;height:36px;object-fit:cover;border-radius:4px;display:block}
.pastille-photo{font-size:10.5px;color:#9a6a00;background:#fff4dc;border-radius:10px;padding:2px 6px;white-space:nowrap}
.ft-titre{color:var(--navy);font-size:24px;margin:4px 0 14px}
.ft-grille{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}
.ft-photo{display:grid;gap:4px}.ft-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}.ft-photo small{color:#667;font-size:11px}
.ft-prep{border:1px solid #dde;border-radius:6px;padding:12px;line-height:1.6}
@media print{.ft-grille{grid-template-columns:260px 1fr}}
/* Choix des informations affichées */
.aff-connexion{display:flex;flex-wrap:wrap;gap:8px 18px}.aff-case{display:flex;gap:6px;align-items:center;font-size:14px;cursor:pointer}
.aff-matrice-zone{overflow-x:auto;border:1px solid #e3e6ee;border-radius:8px}
.aff-matrice{border-collapse:collapse;width:100%;font-size:13px}.aff-matrice th,.aff-matrice td{padding:6px 8px;border-bottom:1px solid #eef0f4;text-align:center}
.aff-matrice td:first-child,.aff-matrice th:first-child{text-align:left;position:sticky;left:0;background:#fff;min-width:210px;z-index:1}
.aff-matrice thead th{vertical-align:bottom;height:120px;font-weight:600;color:#1f3557;background:#f7f8fb}
.aff-matrice thead th span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}
.aff-matrice tbody tr:hover td{background:#fbf6ea}.aff-matrice tr.aff-sep td{border-top:2px solid #d9dde6}
.aff-matrice input{width:17px;height:17px;cursor:pointer}.aff-matrice small{font-size:10.5px}
.aff-tout{border:1px solid #cfd5e0;background:#fff;border-radius:4px;cursor:pointer;width:24px;height:22px;padding:0}
.cx-ville{text-transform:none!important;letter-spacing:.04em!important}
/* Utilisateurs et accès */
.acces-grille{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}@media (max-width:1000px){.acces-grille{grid-template-columns:1fr}}
.acces-groupe summary{cursor:pointer;font-size:15px}.pastille-nb{background:#eef0f4;border-radius:10px;padding:1px 8px;font-size:12px;margin-left:6px}
.table-acces{width:100%;margin-top:8px}.table-acces td{padding:7px 6px;border-top:1px solid #eef0f4;vertical-align:middle}
.etiquette{font-size:11px;border-radius:10px;padding:2px 8px;margin-right:4px;white-space:nowrap}.etiquette.rouge{background:#fdecea;color:#a12622}.etiquette.or{background:#fff4dc;color:#8a5a00}
.btn.petit{padding:4px 10px;font-size:13px}
.legende-acces{display:flex;flex-wrap:wrap;gap:16px;font-size:12.5px;color:#556;margin:4px 0 10px}.legende-acces i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.legende-acces i.g-voir{background:#9fb3d1}.legende-acces i.g-action{background:#4f8a5b}.legende-acces i.g-sensible{background:#c0392b}
.module-acces{padding:0}.module-acces>summary{display:flex;align-items:center;gap:14px;padding:12px 16px;cursor:pointer;list-style:none;border-bottom:1px solid transparent}
.module-acces[open]>summary{border-bottom-color:#eef0f4}.module-acces>summary::-webkit-details-marker{display:none}
.module-acces>summary::before{content:"▸";color:#889;transition:transform .15s}.module-acces[open]>summary::before{transform:rotate(90deg)}
.module-tete{display:flex;gap:8px;align-items:center;font-size:15px;cursor:pointer}.module-tete input,.ligne-acces input,.lecture-seule input{width:17px;height:17px}
.compte-module{font-size:12px;color:#667;background:#f3f5f9;border-radius:10px;padding:2px 8px}
.lecture-seule{margin-left:auto;font-size:13px;display:flex;gap:6px;align-items:center;color:#8a5a00;cursor:pointer}
.sous-module{padding:8px 16px 10px 44px}.sous-titre{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#889;margin:4px 0 4px}
.ligne-acces{display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:6px;cursor:pointer;border-left:3px solid transparent}
.ligne-acces:hover{background:#f7f8fb}.ligne-acces.g-voir{border-left-color:#9fb3d1}.ligne-acces.g-action{border-left-color:#4f8a5b}.ligne-acces.g-sensible{border-left-color:#c0392b}
.ligne-acces.g-sensible .lib{color:#7a1f16}.ligne-acces.bloque{opacity:.55;cursor:not-allowed}
.marque-profil{font-size:10px;background:#e8edf6;color:#1f3557;border-radius:3px;padding:1px 5px}.marque-perso{font-size:11px;background:#fff1cc;color:#8a5a00;border-radius:3px;padding:0 5px}
.barre-enregistrer{position:sticky;bottom:0;background:var(--bg,#f4f6fa);padding:10px 0;gap:14px}
.autorisation-sup{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:#fff7e6;border:1px dashed #d9a441;border-radius:6px;padding:6px 8px;margin:6px 0;width:100%}
.autorisation-sup .cadenas{font-size:12.5px;color:#8a5a00;font-weight:600;width:100%}.autorisation-sup input{flex:1;min-width:140px}
.chambres-liste{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chambre-pastille{display:flex;flex-direction:column;align-items:center;min-width:72px;padding:8px 6px;border:1px solid #d6dbe4;border-radius:8px;background:#f7f9fc}
.chambre-pastille b{font-size:16px}.chambre-pastille small{font-size:11px;color:#667}
.chambre-pastille.inactive{opacity:.5;border-style:dashed}
.chambre-pastille .lien{border:0;background:none;color:#1f3557;font-size:11.5px;text-decoration:underline;cursor:pointer;padding:2px}

/* Planning : glisser-déposer */
.planning-wrap{position:relative}
.planning th.passe{color:#a7adb8;background:#fafbfc}
.planning td.libre.passe{background:repeating-linear-gradient(135deg,#fafbfc 0 6px,#f2f4f7 6px 12px)}
.planning .bloc.mobile{position:relative;cursor:grab;touch-action:none;-webkit-user-drag:none;user-select:none;padding-right:12px}
.planning .bloc .poignee{position:absolute;top:0;right:0;width:9px;height:100%;cursor:ew-resize;border-left:2px solid rgba(255,255,255,.55)}
.planning .bloc.en-deplacement{opacity:.45}
body.pl-glisse,body.pl-glisse *{cursor:grabbing!important;user-select:none}
.pl-fantome{position:absolute;z-index:5;border:2px dashed var(--blue);background:rgba(43,93,170,.14);border-radius:6px;pointer-events:none;display:flex;align-items:center;padding:0 8px;box-sizing:border-box}
.pl-fantome span{font-size:11.5px;font-weight:600;color:#123a7a;white-space:nowrap;background:#fff;border-radius:4px;padding:1px 6px;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.pl-fantome.refus{border-color:#c0392b;background:rgba(192,57,43,.12)}
.pl-fantome.refus span{color:#a0281c}
/* Fenêtre « prévenir le client ? » */
.dlg-prevenir{border:none;border-radius:12px;padding:22px 24px;max-width:520px;width:calc(100% - 32px);box-shadow:0 18px 50px rgba(0,0,0,.25)}
.dlg-prevenir::backdrop{background:rgba(15,23,42,.45)}
.dlg-prevenir h3{margin:0 0 8px}
.dlg-prevenir .dlg-detail{white-space:pre-line;background:#f5f7fa;border-radius:8px;padding:10px 12px;font-size:13.5px}
.dlg-prevenir .actions{flex-wrap:wrap;gap:8px;margin-top:14px}
/* Proforma : aperçu des totaux pendant la saisie */
.pf-apercu{margin:14px 0;max-width:460px;margin-left:auto;border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:#fafbfc}
.pf-apercu div{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:13.5px}
.pf-apercu div.total{border-top:2px solid var(--line);margin-top:4px;padding-top:8px;font-size:15px}
.pf-apercu small{color:var(--grey)}
.pf-lettres{margin:14px 0 6px;font-size:13px}
.pf-trace{font-size:10.5px;color:#666;margin-top:14px;border-top:1px solid #ddd;padding-top:6px}
.pf-signature{min-height:150px;position:relative}
.pf-cadre-sign{border:1px dashed #b9c0cc;border-radius:6px;height:110px;margin-top:6px;display:flex;align-items:center;justify-content:center;color:#9aa1ad;font-size:12px}
/* Proforma au format de l'ancienne proforma HOTELIUM */
.pf-modele{font-size:13px;color:#222}
.pf-tete{display:grid;grid-template-columns:120px 1fr 220px;align-items:center;border-bottom:1px solid #999;padding-bottom:8px}
.pf-tete .pf-logo img{max-height:70px;max-width:110px}
.pf-tete .pf-nom{text-align:center;font:700 26px/1.1 Georgia,"Times New Roman",serif;color:#1f3557}
.pf-tete .pf-nom small{display:block;font:400 12px var(--font,sans-serif);color:#777;margin-top:2px}
.pf-tete .pf-coord{text-align:right;font-size:11.5px;color:#444}
.pf-titre{display:flex;justify-content:space-between;align-items:baseline;margin:10px 0}
.pf-titre h1{font-size:21px;margin:0;color:#222}
.pf-parties{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin-bottom:12px}
.pf-infos td{padding:1px 8px 1px 0;border:none;font-size:12.5px;vertical-align:top}
.pf-infos td:first-child{white-space:nowrap;color:#444}
.pf-adresse u{display:block;font-size:14px;margin-bottom:4px}
.pf-adresse b{font-size:16px}
table.pf-lignes{width:100%;border-collapse:collapse;border:1px solid #444}
.pf-lignes th{background:#e2e2e2;border:1px solid #444;padding:6px;font-size:12.5px;text-align:center;color:#222;text-transform:none}
.pf-lignes td{border-left:1px solid #444;border-right:1px solid #444;border-top:none;border-bottom:none;padding:4px 6px;font-size:12.5px}
.pf-lignes td.c{text-align:center}
.pf-lignes tr.pf-vide td{height:120px}
.pf-cadre{border:1px solid #444;border-top:none;padding:10px 12px}
.pf-totaux{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.pf-souligne{text-decoration:underline;display:block;margin-bottom:6px}
table.pf-gris{border-collapse:separate;border-spacing:0 3px}
.pf-gris td,.pf-gris th{background:#e2e2e2;border:1px solid #888;padding:4px 8px;font-size:12.5px}
.pf-somme{min-width:330px}
.pf-somme td:first-child,.pf-somme th:first-child{font-weight:600;letter-spacing:.02em}
.pf-reglement p{margin:0 0 8px}
.pf-bas{display:flex;justify-content:space-between;gap:20px}
.pf-mode{flex:1;text-align:center}
.pf-mode table{margin:4px auto 0;text-align:left}
.pf-mode td{border:none;padding:1px 6px;font-size:12px;vertical-align:top}
.pf-mode td:first-child{text-align:right;color:#444;white-space:nowrap}
.pf-signature{width:220px;text-align:center}
.pf-tampon{position:relative;height:120px}
.pf-tampon .cachet{height:115px;opacity:.9}
.pf-tampon .sign{height:60px;position:absolute;left:55px;top:30px}
.pf-projet{text-align:center;color:#b42020;font-weight:700;margin:8px 0 0}
.pf-modele .pf-trace{font-size:10.5px;font-weight:600;color:#555;margin-top:8px;border-top:none}
@media print{.pf-lignes tr.pf-vide td{height:240px}}
.pf-gris th{color:#222;font-weight:700;text-transform:none;letter-spacing:.02em}
.pf-totaux > div > table.pf-gris{min-width:260px}
table.perf th.groupe{text-align:center;border-bottom:1px solid var(--line)}
table.perf tfoot th{background:#f5f7fa}
.sidebar nav .nav-sous-titre{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.55);padding:6px 20px 2px 28px}
.sidebar nav a.sous{padding-left:30px}
label.sous-titre{display:flex;align-items:center;gap:6px;cursor:pointer;font-weight:600}
label.sous-titre input{width:auto;margin:0}
/* Gouvernante : occupation en temps réel (mêmes couleurs que le rack de la réception) */
.hk-occupation{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
.hk-compteur{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:999px;font-size:13px;color:#1f2937;text-decoration:none;border:2px solid transparent}
.hk-compteur.actif{border-color:#1f2937}
.hk-compteur.occ-sejour,.tuile.occ-sejour .hk-bandeau{background:#cfe0f7}
.hk-compteur.occ-passage,.tuile.occ-passage .hk-bandeau{background:#ddd3f5}
.hk-compteur.occ-depart,.tuile.occ-depart .hk-bandeau{background:#ffd9a8}
.hk-compteur.occ-arrivee,.tuile.occ-arrivee .hk-bandeau{background:#f8d0d0}
.hk-compteur.occ-libre,.tuile.occ-libre .hk-bandeau{background:#e7f3ea}
.hk-compteur.occ-hs,.tuile.occ-hs .hk-bandeau{background:#d5d7db}
.tuile .hk-bandeau{margin:-12px -12px 8px;padding:6px 12px;font-size:12px;font-weight:700;letter-spacing:.02em;color:#1f2937}
.tuile.occ-sejour,.tuile.occ-passage,.tuile.occ-depart{box-shadow:0 0 0 2px rgba(31,53,87,.08)}
.tuile.occ-passage .hk-bandeau{color:#4c2a8f}
.tuile.occ-depasse .hk-bandeau{background:#f4b4b4;color:#8b1a1a}
.hk-detail{font-size:12.5px;color:#374151;margin:4px 0 2px}
tr.ligne-alerte td{background:#fff4f4}
.etiquette.vert{background:#e3f4e8;color:#1f6b3a}
/* Fenêtres internes (documents ouverts sans nouvel onglet) */
.fen{position:fixed;z-index:900;background:#fff;border:1px solid #9aa4b5;border-radius:10px;box-shadow:0 18px 50px rgba(15,23,42,.35);display:flex;flex-direction:column;overflow:hidden;resize:both;min-width:360px;min-height:240px}
.fen[hidden]{display:none}
.fen.max{left:0!important;top:0!important;width:100vw!important;height:100vh!important;border-radius:0;resize:none}
.fen-tete{display:flex;align-items:center;gap:6px;padding:7px 10px;background:var(--navy);color:#fff;cursor:move;user-select:none;flex-shrink:0}
.fen-titre{flex:1;font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fen-tete button{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:6px;padding:4px 10px;font-size:13px;cursor:pointer}
.fen-tete button:hover{background:rgba(255,255,255,.25)}
.fen-tete .fen-fermer:hover{background:#c0392b}
.fen iframe{flex:1;border:0;width:100%;background:#f3f5f8}
/* Page affichée dans une fenêtre interne : sans menu ni barre du haut */
.dans-fenetre .sidebar,.dans-fenetre .topbar,.dans-fenetre .bouton-depannage{display:none!important}
.dans-fenetre .main{margin-left:0}
@media print{.fen{display:none!important}}

/* ---- Confirmation Oui / Non (toutes les validations) ---- */
.dlg-confirmer{border:none;border-radius:14px;padding:24px 26px 20px;max-width:460px;width:calc(100% - 32px);box-shadow:0 18px 50px rgba(0,0,0,.28);text-align:center}
.dlg-confirmer::backdrop{background:rgba(15,23,42,.45)}
.dlg-confirmer .dlg-c-icone{width:46px;height:46px;border-radius:50%;margin:0 auto 10px;background:#fff7e0;color:var(--gold);border:2px solid #f0d58a;font:700 26px/42px Georgia,serif}
.dlg-confirmer h3{margin:0 0 8px;color:var(--navy)}
.dlg-confirmer .dlg-c-texte{white-space:pre-line;margin:0 0 4px;font-size:14.5px;line-height:1.45}
.dlg-confirmer .actions{justify-content:center;gap:10px;margin-top:16px}
.dlg-confirmer .actions .btn{min-width:120px}
.btn.en-traitement{opacity:.65;pointer-events:none;cursor:progress}
.btn.en-traitement::after{content:"";display:inline-block;width:11px;height:11px;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:clo-tourne .7s linear infinite;vertical-align:-1px}

/* ---- Écran de progression de la clôture ---- */
.clo-voile{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow:auto}
.clo-voile[hidden]{display:none}
.clo-boite{background:#fff;border-radius:14px;width:100%;max-width:640px;box-shadow:0 24px 60px rgba(0,0,0,.3);overflow:hidden}
.clo-tete{background:var(--navy);color:#fff;padding:18px 22px 14px}
.clo-tete h2{margin:0;font-size:20px;color:#fff}
.clo-sous{margin:4px 0 12px;font-size:13.5px;opacity:.85}
.clo-barre{height:6px;background:rgba(255,255,255,.18);border-radius:3px;overflow:hidden}
.clo-barre span{display:block;height:100%;width:0;background:var(--gold);transition:width .5s ease}
.clo-boite.echec .clo-tete{background:var(--red)}
.clo-boite.echec .clo-barre span{background:#fff}
.clo-boite.termine .clo-tete{background:var(--green)}
.clo-etapes{list-style:none;margin:0;padding:12px 22px 4px}
.clo-etapes>li{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);color:#9aa1ad}
.clo-etapes>li:last-child{border-bottom:none}
.clo-etapes>li>i{flex:0 0 24px;height:24px;border-radius:50%;border:2px solid #cfd4dc;margin-top:1px;font-style:normal;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.clo-etapes>li b{display:block;font-size:14.5px}
.clo-etapes>li small{display:block;font-size:12.5px;margin-top:2px}
.clo-etapes>li.encours{color:var(--text)}
.clo-etapes>li.encours>i{border-color:var(--gold);border-right-color:transparent;animation:clo-tourne .8s linear infinite}
.clo-etapes>li.fait{color:var(--text)}
.clo-etapes>li.fait>i{background:var(--green);border-color:var(--green);color:#fff}
.clo-etapes>li.fait>i::before{content:"✓"}
.clo-etapes>li.alerte{color:var(--text)}
.clo-etapes>li.alerte>i{background:var(--orange);border-color:var(--orange);color:#fff}
.clo-etapes>li.alerte>i::before{content:"!"}
.clo-etapes>li.alerte small{color:#9a5b00}
.clo-etapes>li.erreur{color:var(--red)}
.clo-etapes>li.erreur>i{background:var(--red);border-color:var(--red);color:#fff}
.clo-etapes>li.erreur>i::before{content:"✕"}
.clo-detail{list-style:none;margin:4px 0 0;padding:0;font-size:12.5px;color:#374151}
.clo-detail li{padding:1px 0;animation:clo-apparait .3s ease}
.clo-detail li.ko,.clo-detail li.raison{color:#9a5b00}
.clo-detail li.ok{color:var(--green)}
@keyframes clo-tourne{to{transform:rotate(360deg)}}
@keyframes clo-apparait{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
/* L'enveloppe : visible pendant l'envoi, elle s'envole avec des traits de vitesse */
.clo-enveloppe{display:none;position:relative;height:44px;margin:6px 0 2px;color:var(--navy-2)}
.clo-etapes>li.envol .clo-enveloppe{display:block}
.clo-enveloppe svg{position:absolute;left:0;top:3px;animation:clo-vole 1.4s ease-in-out infinite}
.clo-trait{position:absolute;left:0;top:14px;height:3px;width:26px;border-radius:2px;background:var(--gold);opacity:0;animation:clo-vitesse 1.4s ease-in-out infinite}
.clo-trait.t2{top:26px;width:18px;animation-delay:.15s}
@keyframes clo-vole{0%{transform:translate(0,4px) rotate(-4deg)}50%{transform:translate(150px,-4px) rotate(5deg)}100%{transform:translate(300px,4px) rotate(-3deg);opacity:0}}
@keyframes clo-vitesse{0%{opacity:0;transform:translateX(-10px)}50%{opacity:.9;transform:translateX(120px)}100%{opacity:0;transform:translateX(270px)}}
.clo-fin{padding:4px 22px 0;text-align:center}
.clo-date{display:inline-block;font:700 30px/1.2 Georgia,serif;color:var(--green);border:2px solid #b7dfbb;background:#eef8ef;border-radius:10px;padding:8px 22px;animation:clo-apparait .5s ease}
.clo-diag{padding:4px 22px 0;max-height:46vh;overflow:auto}
.clo-points{margin:8px 0 10px}
.clo-points h3{font-size:14.5px;margin:6px 0;color:var(--red)}
.clo-points.attention h3{color:#9a5b00}
.clo-point{border-left:4px solid var(--red);background:#fdf1f1;border-radius:6px;padding:8px 10px;margin-bottom:8px;font-size:13.5px}
.clo-points.attention .clo-point{border-left-color:var(--orange);background:#fff7e8}
.clo-point ul{margin:4px 0 2px;padding-left:18px}
.clo-point small{display:block;color:#4b5563}
.clo-actions{padding:14px 22px 18px;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.date-expl b.clignote{animation:clo-clignote 1s ease 3}
@keyframes clo-clignote{50%{background:#f0d58a}}
@media (prefers-reduced-motion:reduce){.clo-enveloppe svg,.clo-trait,.clo-etapes>li.encours>i{animation:none}}
.clo-diag>p{font-size:13.5px;margin:6px 0 0}
.bandeau-depassement{display:block;background:#c62828;color:#fff;padding:9px 18px;font-size:14px;text-decoration:none;animation:depasse-clignote 1.6s ease-in-out infinite}
.bandeau-depassement:hover{background:#a51f1f;color:#fff}
@keyframes depasse-clignote{50%{background:#e53935}}
.tuile-p.depasse{animation:depasse-tuile 1.2s ease-in-out infinite}
@keyframes depasse-tuile{50%{box-shadow:0 0 0 4px rgba(198,40,40,.45)}}
.tuile-p .du{font-weight:700;color:#c62828;margin-top:4px}
@media (prefers-reduced-motion:reduce){.bandeau-depassement,.tuile-p.depasse{animation:none}}

/* ---- Barre du Front Office en bas de l'écran (comme HOTELIUM) ---- */
.dock-fo{position:fixed;left:220px;right:0;bottom:0;z-index:45;display:flex;gap:6px;justify-content:flex-start;flex-wrap:wrap;align-items:center;padding:10px 190px calc(10px + env(safe-area-inset-bottom,0px)) 16px;background:rgba(255,255,255,.97);border-top:1px solid #d9dee8;box-shadow:0 -3px 12px rgba(15,23,42,.08)}
.dock-fo a{pointer-events:auto;display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;text-decoration:none;font-size:12.5px;font-weight:600;padding:8px 11px;border-radius:22px;white-space:nowrap;border:2px solid transparent}
.dock-fo a:hover,.dock-fo a:focus-visible{background:#2a4a7a;color:#fff}
.dock-fo a.actif{background:#fff;color:var(--navy);border-color:var(--navy)}
.dock-fo kbd{font:600 10.5px/1 inherit;background:rgba(255,255,255,.18);border-radius:4px;padding:2px 4px}
.dock-fo a.actif kbd{background:#e8eef8}
.main:has(.dock-fo) .content{padding-bottom:150px}
body:has(.dock-fo) .bouton-depannage{bottom:calc(10px + env(safe-area-inset-bottom,0px));padding:9px 16px;font-size:14px}
.dans-fenetre .dock-fo{display:none!important}
@media print{.dock-fo{display:none!important}}
@media (max-width:900px){
  .dock-fo{left:0;right:0;bottom:0;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.96);box-shadow:0 -2px 10px rgba(0,0,0,.12);pointer-events:auto}
  .dock-fo a{box-shadow:none}
  body:has(.dock-fo) .bouton-depannage{bottom:calc(66px + env(safe-area-inset-bottom,0px))}
}

/* ---- Marque HOTELIUM ---- */
.sidebar .brand-logo{display:block;width:150px;max-width:100%;height:auto;margin:0 0 8px}
.sidebar .brand-marque b{display:block;font-size:14.5px;opacity:.92;border-top:1px solid rgba(255,255,255,.14);padding-top:8px}
.cx-marque{display:block;width:180px;max-width:70%;height:auto;margin:0 auto 10px}
@media (max-width:900px){.sidebar .brand-logo{width:96px;margin-bottom:4px}.sidebar .brand-marque b{border-top:0;padding-top:0}}
/* ---- Bande bleue compacte : tout le menu tient sur un écran (v1.10) ---- */
@media (min-width:901px){
  .sidebar{position:sticky;top:0;height:100vh}
  .sidebar nav{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}
  .sidebar .brand{padding:10px 16px 8px}
  .sidebar .brand-logo{width:100px;margin:0 0 4px}
  .sidebar .brand-marque b{font-size:13.5px;padding-top:5px}
  .sidebar nav .nav-titre{padding:6px 18px 0;font-size:10px;letter-spacing:.05em;line-height:1.35}
  .sidebar nav a{padding:2px 18px;font-size:13.5px;line-height:1.35}
  .sidebar nav kbd{font-size:10px;line-height:1.5}
  .sidebar nav a.aide{margin-top:6px;padding-top:6px;padding-bottom:6px}
  .sidebar .bas{padding:7px 16px;font-size:12px}
  .sidebar .bas .btn{margin-top:4px!important}
}
/* Bouton de clôture sur le Rack Séjour : bien visible, à part des autres */
.dock-fo a.cloture{background:var(--gold);margin-left:auto;font-size:13px;padding:9px 15px;box-shadow:0 2px 6px rgba(184,134,11,.35)}
.dock-fo a.cloture::before{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a5 5 0 0 0-5 5v4H5v13h14V10h-2V6a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v4H9z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a5 5 0 0 0-5 5v4H5v13h14V10h-2V6a5 5 0 0 0-5-5zm-3 5a3 3 0 0 1 6 0v4H9z'/%3E%3C/svg%3E") center/contain no-repeat}
.dock-fo a.cloture:hover,.dock-fo a.cloture:focus-visible{background:#9a7009}
.dock-fo a.cloture.actif{background:#fff;color:#8a6408;border-color:var(--gold)}
/* Barre du haut : Actualiser et Maintenance, pour tous les utilisateurs */
.outils-page{display:flex;gap:6px;flex-shrink:0}
.outils-page .outil{display:inline-flex;align-items:center;gap:5px;font:600 12.5px/1 inherit;color:var(--navy);background:#fff;border:1px solid #cfd6e3;border-radius:18px;padding:7px 11px;cursor:pointer;white-space:nowrap}
.outils-page .outil:hover,.outils-page .outil:focus-visible{background:#eef2f8;border-color:var(--navy)}
.outils-page .outil.tourne svg{animation:hot-tourne .7s linear infinite}
@keyframes hot-tourne{to{transform:rotate(360deg)}}
@media (max-width:900px){.outils-page .outil{padding:7px 9px}}
.dlg-maintenance{border:none;border-radius:14px;padding:22px 24px 18px;max-width:560px;width:calc(100% - 32px);box-shadow:0 18px 50px rgba(0,0,0,.28)}
.dlg-maintenance::backdrop{background:rgba(15,23,42,.45)}
.dlg-maintenance h3{margin:0 0 4px;color:var(--navy)}
.dlg-m-sous{margin:0 0 10px;color:var(--grey);font-size:14px}
.dlg-m-sous.ok{color:var(--green);font-weight:600}.dlg-m-sous.attention{color:#a35f00;font-weight:600}.dlg-m-sous.ko{color:var(--red);font-weight:600}
.dlg-m-barre{height:4px;background:#e8ecf3;border-radius:3px;overflow:hidden;margin-bottom:12px}
.dlg-m-barre span{display:block;height:100%;width:35%;background:var(--gold);border-radius:3px;animation:hot-glisse 1.1s ease-in-out infinite}
.dlg-m-barre.finie span{width:100%;animation:none;background:var(--green)}
@keyframes hot-glisse{0%{margin-left:-35%}100%{margin-left:100%}}
.dlg-m-etapes{list-style:none;margin:0;padding:0;max-height:52vh;overflow:auto}
.dlg-m-etapes li{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--line)}
.dlg-m-etapes li i{flex:0 0 22px;height:22px;border-radius:50%;font:700 13px/22px inherit;text-align:center;font-style:normal;color:#fff;background:var(--green)}
.dlg-m-etapes li.corrige i{background:var(--blue)}.dlg-m-etapes li.attention i{background:var(--orange)}.dlg-m-etapes li.erreur i{background:var(--red)}
.dlg-m-etapes li b{display:block;font-size:14px}.dlg-m-etapes li small{display:block;color:#4b5563;font-size:12.5px;line-height:1.4}
.dlg-m-ticket{background:#eef4ff;border:1px solid #c9dafc;border-radius:8px;padding:8px 10px;font-size:13px;margin:10px 0 0}
.dlg-maintenance .actions{justify-content:flex-end;margin-top:12px}
.recherche-globale{min-width:200px}
@media (max-width:1500px){.outils-page .outil .lib{display:none}.outils-page .outil{padding:8px 9px}.outils-page .outil svg{width:17px;height:17px}}
/* Check-in sans garantie : engagement de la réceptionniste */
.dlg-garantie{border:none;border-radius:14px;padding:22px 24px 18px;max-width:540px;width:calc(100% - 32px);box-shadow:0 18px 50px rgba(0,0,0,.3);border-top:6px solid var(--red)}
.dlg-garantie::backdrop{background:rgba(15,23,42,.5)}
.dlg-g-icone{width:44px;height:44px;border-radius:50%;margin:0 auto 8px;background:#fdecec;color:var(--red);border:2px solid #f3b4b4;font:800 26px/40px Georgia,serif;text-align:center}
.dlg-garantie h3{margin:0 0 6px;color:var(--red);text-align:center}
.dlg-g-texte{margin:0 0 12px;font-size:14.5px;line-height:1.45;text-align:center}
.dlg-g-case{display:flex;gap:9px;align-items:flex-start;font-size:14px;line-height:1.4;margin:10px 0;cursor:pointer}
.dlg-g-case input{margin-top:3px;flex-shrink:0;width:17px;height:17px}
.dlg-g-champ{display:block;font-weight:600;font-size:13.5px;margin:12px 0 4px}
.dlg-garantie #dlg-g-motif{width:100%}
.dlg-garantie .actions{justify-content:flex-end;margin-top:14px}
.btn.danger{background:var(--red);color:#fff;border-color:var(--red)}
.btn.danger:disabled{opacity:.45;cursor:not-allowed}
.bandeau-garantie{background:#fdecec;border:1px solid #f3b4b4;border-left:6px solid var(--red);color:#7f1d1d;border-radius:10px;padding:10px 14px;margin:0 0 14px;font-size:14px;line-height:1.45}
.bandeau-garantie.regle{background:#eaf6ec;border-color:#b9dfc0;border-left-color:var(--green);color:#1f5130}
.bandeau-suivi{display:block;background:#7f1d1d;color:#fff;padding:8px 24px;font-size:13.5px;text-decoration:none}
.bandeau-suivi:hover{background:#991b1b;color:#fff}
.rk-garantie{display:inline-block;margin-top:4px;background:var(--red);color:#fff;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700}
.rk-doit{color:var(--red);font-weight:700;font-size:13px}
.rk-rien{color:var(--red)}
.rk-ok{color:var(--green);font-weight:600}
/* Journal de caisse (comme un relevé) */
.journal-caisse tr.report td{background:#f6f8fb}
.journal-caisse tr.total-jour td{background:#fff7e0;font-weight:600;font-size:13px;border-bottom:2px solid #f0d58a}
.journal-caisse tr.total-periode th{background:#e9eef7}
.compte-resultat tr.solde-intermediaire th{background:#eef2f8;color:var(--navy)}

/* Portail du Cabinet : passer d'un hôtel à l'autre */
.sidebar .bas .changer-hotel{display:inline-block;margin-top:8px;margin-right:6px;background:var(--gold);color:#1f3557;border-color:var(--gold);font-weight:600}
