/* MyUniko : feuille de style unique. Les couleurs sont les variables ci-dessous (charte « Piste A »). */
:root{--teal:#0B6B6A;--nuit:#10292D;--ambre:#F2A33A;--menthe:#DDEFEC;--brume:#F2F5F4;--txt2:#4A6468;--line:#DCE6E4;--line2:#C5D3D1;
--ok-bg:#DDF0E3;--ok:#14532D;--wa-bg:#FDEBD3;--wa:#8A4B08;--er-bg:#FBE3DD;--er:#8A1F11;--in-bg:#DDE6FB;--in:#1E3A8A;
--teal-fonce:#084F4E;--teal-clair:#5EC4BE;--nuit-surface:#183A3F;--succes:#15803D;--attention:#B7791F;--erreur:#B42318;--info:#1D4ED8;--mod-logements:#0B6B6A;--mod-coworking:#D98E04;--mod-restaurant:#1D4ED8;--mod-services:#7C8F92;
--font:'Manrope',system-ui,sans-serif;--font-h:'Bricolage Grotesque',var(--font)}
*{box-sizing:border-box}
html{font:400 15px/1.5 var(--font);color:var(--nuit);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--brume)}
h1,h2,h3{font-family:var(--font-h);margin:0;line-height:1.15}
a{color:var(--teal);font-weight:600}
img{max-width:100%}
.muted{color:var(--txt2)}.muted-d{color:#BFE0DC;font-size:13px}.sm{font-size:12.5px}
/* ---- boutons */
.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:10px;border:1px solid var(--line2);background:#fff;color:var(--nuit);font:700 14px var(--font);cursor:pointer;text-decoration:none}
.btn:hover{border-color:var(--teal)}.btn:focus-visible,input:focus-visible,select:focus-visible,.lang button:focus-visible{outline:3px solid var(--ambre);outline-offset:2px}
.btn.p{background:var(--teal);border-color:var(--teal);color:#fff}.btn.p:hover{background:#095857}
.btn.a{background:var(--ambre);border-color:var(--ambre);color:var(--nuit)}
.btn.sm{min-height:36px;padding:0 12px;font-size:12.5px}.btn.lg{min-height:50px;font-size:16px;width:100%}
/* ---- langue */
.lang{display:inline-flex;border:1px solid var(--line2);border-radius:10px;overflow:hidden;background:#fff;margin:0}
.lang button{padding:9px 12px;min-width:44px;min-height:40px;border:0;background:transparent;font:700 12px var(--font);color:var(--txt2);cursor:pointer}
.lang button.on{background:var(--teal);color:#fff}
.av{width:38px;height:38px;border-radius:50%;background:var(--menthe);color:var(--teal);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:13px}
/* ---- application */
.app{display:flex;min-height:100vh}
.side{flex:0 0 244px;background:var(--nuit);color:#DDE9E7;padding:22px 14px;display:flex;flex-direction:column;gap:20px}
.brand{display:flex;align-items:center;gap:10px;padding:0 6px}.brand b{font:700 21px var(--font-h);color:#fff;letter-spacing:-.2px}.brand b i{font-style:normal;font-weight:500;color:#5EC4BE}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;align-items:center;gap:11px;min-height:42px;padding:0 12px;border-radius:9px;color:#DDE9E7;font-weight:600;font-size:13.5px;text-decoration:none}
.nav a i{width:8px;height:8px;border-radius:50%;background:#4F7377}.nav a.on{background:#183A3F;color:#fff}.nav a.on i{background:#5EC4BE}
.nav a.soon{opacity:.5;cursor:default}
.nav .ng{margin:14px 12px 4px;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#7FA3A6}
.plan{margin-top:auto;padding:14px;border-radius:12px;background:#183A3F;font-size:12.5px}.plan b{color:#fff;display:block}.plan span{color:#A9C4C1}
.main{flex:1;min-width:0;padding:22px 30px 40px;display:flex;flex-direction:column;gap:20px}
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.top h1{font-size:28px}.top .sub{color:var(--txt2);font-size:13px;margin-top:3px}.tools{display:flex;gap:10px;align-items:center}.tools form{margin:0}
/* ---- composants */
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;min-width:0}.card h2{font-size:18px;margin-bottom:12px}
.card.dark{background:var(--nuit);color:#fff;border:0}.card.dark h2{color:#fff}.big{font:700 44px var(--font-h);color:var(--ambre)}
.grid{display:grid;gap:16px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:1fr 1fr}.g21{grid-template-columns:2fr 1fr}
.grid>*{min-width:0}
.col{min-width:0;display:flex;flex-direction:column;gap:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:6px}.kpi span{font-size:12.5px;font-weight:600;color:var(--txt2)}.kpi b{font:700 32px/1 var(--font-h)}.kpi em{font-style:normal;font-size:12.5px;font-weight:600;color:var(--teal)}
table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--txt2);padding:8px;font-weight:700}td{padding:11px 8px;border-top:1px solid #E5EDEB}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700}
.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.wa{background:var(--wa-bg);color:var(--wa)}.badge.er{background:var(--er-bg);color:var(--er)}.badge.in{background:var(--in-bg);color:var(--in)}.badge.mu{background:#E7ECEB;color:#3C5357}.badge.te{background:var(--menthe);color:#0B5453}
.alert{padding:12px 14px;border-radius:10px;font-weight:600;font-size:14px;background:var(--menthe);color:#0B5453}.alert.error{background:var(--er-bg);color:var(--er)}.alert.warning{background:var(--wa-bg);color:var(--wa)}.alert.success{background:var(--ok-bg);color:var(--ok)}
.step{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #E5EDEB;border-radius:12px}.step b{flex:1}.step.done{background:#F2F8F7}
.dot-n{width:30px;height:30px;border-radius:50%;background:#E5EDEB;color:var(--txt2);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:13px}.step.done .dot-n{background:var(--teal);color:#fff}
/* ---- formulaires */
.form{display:flex;flex-direction:column;gap:16px}.form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;font-weight:700;color:var(--txt2)}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=url],input[type=date],input[type=search],select,textarea{min-height:46px;border:1px solid var(--line2);border-radius:10px;background:#fff;padding:10px 12px;font:600 15px var(--font);color:var(--nuit);width:100%}
.hint{margin:0;font-size:12px;color:var(--txt2)}.err{margin:0;font-size:12.5px;font-weight:700;color:var(--er)}.has-error input,.has-error select{border-color:#C2410C}
.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:8px 14px;border-radius:999px;border:1px solid var(--line2);background:#fff;font-weight:700;font-size:13px}.chip.on{background:var(--nuit);color:#fff;border-color:var(--nuit)}
.chip-radio{cursor:pointer}.chip-radio input{position:absolute;opacity:0}.chip-radio span{display:inline-block;padding:10px 18px;border-radius:999px;border:1px solid var(--line2);background:#fff;font-weight:700;font-size:14px}
.chip-radio input:checked+span{background:var(--nuit);color:#fff;border-color:var(--nuit)}.chip-radio input:focus-visible+span{outline:3px solid var(--ambre);outline-offset:2px}
/* ---- listes, barres d'outils, onglets */
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar form{margin:0}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;flex:1}.filters input,.filters select{width:auto;min-width:160px;min-height:44px}
.tablewrap{overflow-x:auto}.actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.actions form{margin:0}
.inline{display:flex;gap:8px;align-items:center;margin:0}.inline select{width:auto;min-height:36px;padding:4px 8px;font-size:13px}
.between{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.between h2{margin:0}
.row{display:flex;gap:10px;flex-wrap:wrap}.narrow{max-width:640px}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:4px}.tabs a{padding:10px 16px;text-decoration:none;color:var(--txt2);border-bottom:3px solid transparent;font-weight:700}.tabs a.on{color:var(--teal);border-color:var(--teal)}
.linkbox{width:200px;min-height:36px;padding:4px 8px;font:500 12px var(--font);border:1px solid var(--line2);border-radius:8px;background:var(--brume)}
.matrix th,.matrix td{text-align:center;white-space:nowrap}.matrix th:first-child,.matrix td:first-child{text-align:left}
.lvl{font-size:12px;font-weight:700;padding:3px 8px;border-radius:6px}.lvl.none{color:#9AAEB0}.lvl.view{background:var(--in-bg);color:var(--in)}.lvl.edit{background:var(--ok-bg);color:var(--ok)}.lvl.admin{background:var(--nuit);color:#fff}
.permgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.form .three{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.card>.two,.card>.three,.card>.field,.card>.checks{margin-top:14px}.card>.two+.two,.card>.field+.two{margin-top:16px}
.pcard{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:8px}.pcard:hover{border-color:var(--teal)}.pstats{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13px;margin-top:6px}
.empty{text-align:center;padding:40px 20px}
.checks{display:flex;flex-wrap:wrap;gap:8px}.check{cursor:pointer}.check input{position:absolute;opacity:0}.check span{display:inline-block;padding:8px 14px;border-radius:999px;border:1px solid var(--line2);background:#fff;font-weight:600;font-size:13px}
.check input:checked+span{background:var(--menthe);border-color:var(--teal);color:#0B5453}.check input:focus-visible+span{outline:3px solid var(--ambre);outline-offset:2px}
.chips.tight{margin-top:12px}
/* ---- connexion et inscription */
.split{display:flex;min-height:100vh}
.hero{flex:1.1;background:var(--nuit);color:#fff;padding:60px 70px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.hero .halo{position:absolute;right:-180px;top:-160px;width:520px;height:520px;border-radius:50%;background:var(--teal);opacity:.35}
.hero .brand{position:relative}.brand.lg b{font-size:30px}
.hero h1{font-size:46px;line-height:1.08;margin:110px 0 20px;max-width:520px;position:relative;color:#fff}
.hero p{font-size:18px;color:#BFE0DC;max-width:470px;position:relative}
.ticks{margin:auto 0 0;padding:0;list-style:none;display:flex;gap:26px;color:#9FBDBA;font-size:13px;position:relative;flex-wrap:wrap}.ticks li:before{content:"✓ "}
.panel{flex:1;display:flex;flex-direction:column;padding:24px 40px}.panel-top{display:flex;justify-content:flex-end}
.panel-body{max-width:460px;width:100%;margin:auto;display:flex;flex-direction:column;gap:16px;padding:20px 0}.panel-body h2{font-size:30px}
/* ---- téléphone et tablette */
@media (max-width:980px){.split{flex-direction:column}.hero{padding:28px 24px}.hero h1{font-size:30px;margin:28px 0 12px}.hero p{font-size:15px}.ticks{margin-top:20px}.panel{padding:20px 20px 40px}
 .app{flex-direction:column}.side{flex:none;flex-direction:row;align-items:center;padding:10px 12px;overflow-x:auto;gap:10px}.side .brand{flex:none}.nav{flex-direction:row;flex:none;align-items:center}.nav .ng{display:none}.nav a{white-space:nowrap;flex:none}.plan{display:none}
 .main{padding:16px}.g4,.g3,.g2,.g21{grid-template-columns:1fr}.top h1{font-size:22px}}
@media (max-width:760px){.permgrid,.form .three{grid-template-columns:1fr}.hm{display:none}.linkbox{width:130px}}
@media (max-width:520px){.form .two{grid-template-columns:1fr}}
.lvl.custom{background:var(--brume);color:var(--txt2);border:1px solid var(--line2);white-space:normal;display:inline-block;max-width:150px}
.rights th,.rights td{text-align:center}.rights th:first-child,.rights td:first-child{text-align:left}
.chk{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;cursor:pointer}.chk input{width:20px;height:20px;accent-color:var(--teal)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nowrap{white-space:nowrap}.pager{align-items:center;justify-content:center;margin-top:14px}
.solo{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.center{text-align:center;display:flex;flex-direction:column;gap:14px;align-items:center}
.plan span{display:block}.meter{height:6px;border-radius:99px;background:#2A4F54;margin-top:8px;overflow:hidden}.meter i{display:block;height:100%;background:var(--ambre);border-radius:99px}
.check-line{display:flex;gap:10px;align-items:center;font-weight:600}.check-line input{width:20px;height:20px;accent-color:var(--teal)}
/* ---- calendrier des réservations */
.calpage{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.calcard{padding:16px;min-width:0}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--txt2);margin-bottom:12px}.legend span{display:inline-flex;align-items:center;gap:6px}
.sw{width:14px;height:14px;border-radius:4px;display:inline-block}
.calwrap{overflow-x:auto;border-radius:10px}
.cal{min-width:calc(150px + var(--n) * 40px)}
.cal-head,.cal-row{display:grid;grid-template-columns:150px 1fr}
.cal-days{display:grid;grid-template-columns:repeat(var(--n),1fr)}
.cal-day{display:flex;flex-direction:column;align-items:center;padding:6px 0;font-size:11px;color:var(--txt2);font-weight:700}.cal-day b{font-size:16px;color:var(--nuit)}
.cal-day.today{background:var(--menthe);border-radius:8px}
.cal-label{padding:10px 8px;border-top:1px solid #E5EDEB;display:flex;flex-direction:column;gap:2px;position:sticky;left:0;background:#fff;z-index:3}.cal-label small{color:var(--txt2);font-size:11.5px}
.cal-track{display:grid;grid-template-columns:repeat(var(--cols),1fr);border-top:1px solid #E5EDEB;min-height:56px;align-items:center}
.cal-track>*{grid-row:1}
.cal-cell{align-self:stretch;border-left:1px solid #EEF3F2;min-height:56px;display:block}
.cal-cell.we{background:#FAFCFB}.cal-cell.today{background:#EEF8F6}.cal-cell:hover{background:#E3F2EF}.cal-cell.drop{background:#CFE9E5;outline:2px dashed var(--teal);outline-offset:-2px}
.bar{z-index:2;margin:0 2px;padding:7px 10px;border-radius:8px;font-size:12.5px;font-weight:700;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.s-confirmed{background:#CDE9E5;color:#0B4F4E}.s-checked_in{background:var(--teal);color:#fff}.s-pending{background:var(--wa-bg);color:var(--wa)}.s-checked_out{background:#E7ECEB;color:#3C5357}
.bar[draggable=true]{cursor:grab}.bar.dragging{opacity:.45}.bar:hover{filter:brightness(.96)}.bar.cut-l{border-top-left-radius:0;border-bottom-left-radius:0}.bar.cut-r{border-top-right-radius:0;border-bottom-right-radius:0}
.sidepanel{position:sticky;top:16px;display:flex;flex-direction:column;gap:12px}.sidepanel h2{margin:0}
.eyebrow{margin:0;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--txt2)}
.seg{display:inline-flex;gap:6px;flex-wrap:wrap}.caltools{justify-content:space-between}
.num{text-align:right}.total td{border-top:2px solid var(--line2)}
.picklist{list-style:none;margin:8px 0 0;padding:0;border:1px solid var(--line2);border-radius:10px;overflow:hidden}.picklist li+li{border-top:1px solid var(--line)}
.pick{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;padding:10px 12px;border:0;background:#fff;cursor:pointer;font:600 14px var(--font);color:var(--nuit);min-height:44px}.pick:hover,.pick:focus-visible{background:var(--menthe)}
.guest-results:empty{display:none}.guest-results{margin-top:8px}
#guest-chosen{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}#guest-chosen[hidden]{display:none}
#cal-alert[hidden]{display:none}
.resgrid .col{min-width:0}
@media (max-width:980px){.calpage{grid-template-columns:1fr}.sidepanel{position:static}}
@media (max-width:760px){.cal{min-width:calc(96px + var(--n) * 38px)}.cal-head,.cal-row{grid-template-columns:96px 1fr}.caltools{justify-content:flex-start}}
.kpis{margin-bottom:0}.badge.lg{font-size:15px;padding:5px 14px}.filterbar{margin-bottom:12px}
a.kpi-link{text-decoration:none;color:inherit}a.kpi-link:hover{border-color:var(--teal)}

/* ---- Sprint 4 : tarifs, compte du séjour, signature, documents imprimables ---- */
.between{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.right{text-align:right}
.tablewrap{overflow-x:auto}form.inline{display:inline;margin:0}
tr.grp td{background:var(--fond);padding-top:10px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--txt2)}
details.adder{margin-top:12px}details.adder summary{cursor:pointer;list-style:none;display:inline-block}details.adder summary::-webkit-details-marker{display:none}details.adder[open] summary{margin-bottom:12px}
.sig{display:block;width:100%;max-width:720px;height:auto;aspect-ratio:720/220;background:#fff;border:2px dashed var(--line2);border-radius:12px;touch-action:none;cursor:crosshair}
.sigimg{max-width:360px;border-bottom:1px solid var(--line2);margin-top:6px}
.doc{max-width:820px}.doc h3{margin:18px 0 8px;font-size:15px}.doc .between{margin-bottom:12px}
@media print{
  body{background:#fff}.side,.top,.tabs,.noprint,.alert,.tools{display:none!important}
  .app{display:block}.main{padding:0;margin:0}.card{border:0;box-shadow:none;padding:0}.doc{max-width:none}
}

/* logos */
.logothumb{display:block;max-height:64px;max-width:200px;object-fit:contain;margin:0 0 12px}
.logoprev{display:flex;align-items:center;gap:16px;margin:6px 0 8px;flex-wrap:wrap}.logoprev img{max-height:64px;max-width:180px;object-fit:contain;border:1px solid var(--line,#dfe5e5);border-radius:8px;padding:6px;background:#fff}
.doc .doclogo{max-height:70px;max-width:220px;object-fit:contain;display:block;margin-bottom:8px}
.doc .legal{margin-top:18px;padding-top:10px;border-top:1px solid var(--line,#dfe5e5);font-size:12px;color:var(--txt2);white-space:pre-line}

/* baux et états des lieux */
fieldset.plain{border:0;padding:0;margin:0;min-width:0;display:contents}
table.insp td,table.insp th{vertical-align:top}table.insp select,table.insp input[type=text]{width:100%;min-width:130px}
.inspthumb{max-width:110px;max-height:80px;border-radius:6px;border:1px solid var(--line);display:block;margin-bottom:6px;object-fit:cover}
.gap{border:1px solid var(--line);border-radius:10px;padding:12px;margin:10px 0}
.check.sm{font-size:12.5px}

/* page d'accueil publique */
.land-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;flex-wrap:wrap}
.land-top .brand{display:flex;align-items:center;gap:10px;font:700 22px var(--font-h);color:var(--nuit)}.land-top .brand i{font-style:normal;color:var(--teal)}
.land-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.land{max-width:1040px;margin:0 auto;padding:0 24px 48px}
.land-hero{padding:48px 0 32px}.land-hero h1{font:700 clamp(32px,6vw,52px)/1.08 var(--font-h);color:var(--nuit);margin:0 0 14px;max-width:16ch}
.land-hero p{font-size:18px;max-width:56ch;color:var(--txt2)}
.land-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:16px 0 40px}
.land-wait .card{margin:0 auto}
.land-foot{text-align:center;padding:24px}
@media (max-width:760px){.land-grid{grid-template-columns:1fr}.land-top{padding:12px 16px}.land{padding:0 16px 32px}}
.gaprow td{background:#FDF1EC}
.paypage{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--bg,#F3F5F4)}
.paycard{max-width:420px;width:100%;text-align:center}.paycard .brand{justify-content:center;margin-bottom:6px}
.payamount{font-size:34px;font-weight:800;margin:8px 0}.btn.wide{width:100%;justify-content:center}
.kpi-big b{font-size:28px}
.paycard .brand b{color:#14302F}.paycard .brand i{color:#0B6B6A;font-style:normal}
.chart{display:flex;align-items:flex-end;gap:12px;height:190px;padding-top:8px}.chart-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%;min-width:0;text-align:center}
.chart-val{font-size:11px;font-weight:600;color:var(--txt2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}
.chart-bar{position:relative;background:var(--teal);border-radius:8px 8px 0 0;min-height:3px;overflow:hidden}.chart-bar i{position:absolute;left:0;right:0;bottom:0;background:#F2A33A;display:block}
.chart-lbl{font-size:12px;color:var(--txt2);padding-top:6px;border-top:1px solid var(--line)}.dot-s,.dot-r{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--teal);vertical-align:middle}.dot-r{background:#F2A33A}
.row-s{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.row-s:last-of-type{border-bottom:0}
h3.sm{font-size:13px;margin:12px 0 4px;color:var(--txt2)}
.filterbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filterbar select,.filterbar input{width:auto;min-width:240px;max-width:100%}
.biz .kpi b{font-size:24px;line-height:1.15;word-break:keep-all}
.tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-bottom:16px}
.tbl{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;min-height:104px;padding:12px;border-radius:14px;border:2px solid var(--line);background:#fff;text-decoration:none;color:inherit;cursor:pointer;width:100%;font:inherit}
.tbl b{font:700 22px/1 var(--font-h)}.tbl span{font-size:13px;color:var(--txt2)}.tbl em{font-style:normal;font-size:12px;font-weight:700}
.tbl.free em{color:var(--ok)}.tbl.busy{border-color:#F2A33A;background:#FFF6E6}.tbl.busy em{color:#9A5B00}.tbl.free:hover{border-color:var(--teal)}
.pos{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:start}.pos-panel{position:sticky;top:12px}
.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:8px}
.item{display:flex;flex-direction:column;gap:6px;text-align:left;padding:12px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;font:inherit;min-height:74px}
.item:hover{border-color:var(--teal)}.item span{font-size:13px;color:var(--teal);font-weight:700}
.oline{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.oline.void{opacity:.55;text-decoration:line-through}
.ol-side{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;font-size:14px}
.ototal{display:flex;justify-content:space-between;padding:12px 0;font-size:18px}.paybox{margin-top:12px;padding-top:8px;border-top:2px solid var(--line)}
.btn.block{display:block;width:100%;margin-top:8px}.note{color:#9A5B00;font-weight:700;font-size:13px}.ticket-card{margin-bottom:12px}
@media (max-width:900px){.pos{grid-template-columns:1fr}.pos-panel{position:static}}
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar form.inline{display:flex;gap:8px;align-items:center}
.toolbar input:not([type=hidden]),.oline select,.paybox select,.paybox input{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;min-height:42px}
.task{margin-bottom:12px}.task.urgent{border-left:5px solid var(--er)}.task-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.task-unit{font:700 22px/1 var(--font-h)}
.task-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}.task-actions form{margin:0}.task-actions .btn.p,.task-actions .btn{min-height:44px}
.task-actions input,.task-actions select{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;min-height:44px}
label.check{display:flex;gap:8px;align-items:center;font-size:14px}.field textarea,.field select{width:100%}
label.check input[type=checkbox],label.check input[type=radio]{appearance:auto;opacity:1;position:static;width:20px;height:20px;flex:none}
.toolbar form.inline{flex-wrap:wrap}.toolbar form.inline input,.toolbar form.inline select{flex:1 1 160px;min-width:0}
.area-row{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:10px 0}.area-row .field{flex:1 1 140px;min-width:0}.area-row .field.wide{flex:2 1 240px}
.week-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.week-row b{flex:0 0 96px}.week-row input[type=time]{width:130px;flex:none}
details.fold{margin:8px 0}details.fold>summary{display:inline-block;cursor:pointer;list-style:none}details.fold[open]>summary{margin-bottom:8px}
.zone-row{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
details.fold>summary.btn{display:inline-flex;align-items:center;min-height:38px}
.qty{white-space:nowrap}.qty b{font-size:18px}.qty.neg b,.neg{color:var(--er)}.pos{color:var(--ok)}
.zone-row form.inline{flex-wrap:nowrap;align-items:center;gap:6px}.zone-row form.inline input[type=text]{width:84px;min-width:0}.zone-row form.inline select{width:auto;min-width:0}
.req{margin-bottom:10px}.req-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.req-actions details.fold{margin:0}
.cw-row{margin-bottom:10px}.cw-track{position:relative;height:22px;border-radius:8px;background:repeating-linear-gradient(90deg,#EEF3F2 0,#EEF3F2 calc(100%/12 - 1px),#fff calc(100%/12 - 1px),#fff calc(100%/12));margin-top:10px;border:1px solid var(--line)}
.cw-track i{position:absolute;top:2px;bottom:2px;border-radius:6px;background:var(--teal)}
a.cw-sub{text-decoration:none;color:inherit}a.cw-sub:hover{background:#F3F8F7}
.eq-labels{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.eq-label{display:flex;gap:12px;align-items:center;border:1px dashed #9aa8a6;border-radius:8px;padding:10px;break-inside:avoid;background:#fff}
.eq-label svg{flex:none;width:92px;height:92px}.eq-num{font-family:ui-monospace,Consolas,monospace;font-size:15px;letter-spacing:.5px;margin-top:2px}
.legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;font-size:13.5px;margin-bottom:8px}.legal-links a{color:var(--txt2)}.legal-links a:hover{color:var(--teal)}
.panel-foot{padding:14px 24px 20px}.panel-foot .legal-links{justify-content:flex-start}
.legal{max-width:780px;padding-bottom:56px}.legal h1{font:700 clamp(28px,5vw,40px)/1.1 var(--font-h);color:var(--nuit);margin:24px 0 6px}
.legal h2{font:700 20px var(--font-h);color:var(--nuit);margin:30px 0 8px}.legal p,.legal li{line-height:1.65}.legal ul{padding-left:22px}.legal li{margin:4px 0}
.legal table{width:100%;border-collapse:collapse;margin:10px 0;font-size:14.5px}.legal th,.legal td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line,#dfe5e5);vertical-align:top}
.legal .note{background:#fff8e8;border:1px solid #f0d9a8;border-radius:10px;padding:12px 14px;margin:16px 0}
.land-top .brand,.land-top .brand:hover{text-decoration:none}.legal-links a{text-decoration:none}.legal-links a:hover{text-decoration:underline}

/* Calendrier : poignées pour prolonger / raccourcir un séjour */
.bar{position:relative}
.rz{position:absolute;top:0;bottom:0;width:12px;cursor:ew-resize;touch-action:none;z-index:3;opacity:0;background:rgba(16,41,45,.22);transition:opacity .12s}
.rz-l{left:0;border-radius:8px 0 0 8px}.rz-r{right:0;border-radius:0 8px 8px 0}
.bar:hover .rz,.bar.resizing .rz{opacity:1}
.bar.resizing{outline:2px solid var(--teal);z-index:5}
.rz-tip{position:fixed;z-index:50;background:var(--nuit);color:#fff;font-size:12px;font-weight:700;padding:4px 9px;border-radius:7px;pointer-events:none}
@media (pointer:coarse){.rz{width:22px;opacity:.7}}

.tabs a.alt{margin-left:auto;color:var(--teal);font-weight:700}
/* Bulle « i » : ce qu'on fait sur la page */
.info{display:inline-block;position:relative;vertical-align:middle;margin-left:8px;font-weight:400}
.info>summary{list-style:none;cursor:pointer;width:22px;height:22px;border-radius:50%;background:#E3F2EF;color:var(--teal);font:italic 700 13px/22px Georgia,serif;text-align:center;user-select:none}
.info>summary::-webkit-details-marker{display:none}.info[open]>summary,.info>summary:hover{background:var(--teal);color:#fff}
.info-pop{position:absolute;left:0;top:30px;z-index:30;width:min(340px,80vw);background:#fff;border:1px solid #D5E5E2;border-radius:12px;box-shadow:0 10px 30px rgba(16,41,45,.16);padding:14px 16px;font-size:13px;line-height:1.5;font-weight:400;color:var(--nuit)}
.info-pop p{margin:0 0 6px}.info-pop ul{margin:6px 0 0;padding-left:18px}.info-pop li{margin:3px 0}
@media (max-width:700px){.info-pop{position:fixed;left:12px;right:12px;top:110px;width:auto}}
/* ---- icônes, actions rapides, bandeau du jour, recherche */
svg.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav a svg.ic{color:#7FB5B2}.nav a.on svg.ic{color:#5EC4BE}.nav a:hover{background:#15343A}
.gsearch{position:relative;display:flex;align-items:center}
.gsearch svg.ic{position:absolute;left:11px;width:17px;height:17px;color:var(--txt2);pointer-events:none}
.gsearch input{height:40px;width:210px;padding:0 12px 0 34px;border:1px solid var(--line2);border-radius:999px;background:#fff;font:600 13.5px var(--font)}
.gsearch input:focus{outline:3px solid var(--ambre);outline-offset:1px;width:260px}
.btn.newres{display:inline-flex;align-items:center;gap:6px}.btn.newres svg.ic{width:16px;height:16px}
.quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px}
.qa{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--nuit);min-height:68px}
.qa svg.ic{grid-row:span 2;width:34px;height:34px;padding:7px;border-radius:10px;background:var(--menthe);color:var(--teal)}
.qa b{font:700 15px var(--font-h)}.qa span{font-size:12.5px;font-weight:600;color:var(--txt2)}
.qa:hover{border-color:var(--teal);box-shadow:0 2px 10px rgba(11,107,106,.12)}
.qa.p{background:var(--teal);border-color:var(--teal);color:#fff}.qa.p span{color:#CDEDEA}.qa.p svg.ic{background:rgba(255,255,255,.18);color:#fff}
.daybar{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.dt{display:grid;grid-template-columns:auto auto;grid-template-areas:"i n" "t t";align-items:center;justify-content:start;column-gap:12px;row-gap:2px;padding:14px 16px;border-radius:14px;text-decoration:none;border:1px solid transparent}
.dt svg.ic{grid-area:i;width:26px;height:26px}.dt b{grid-area:n;font:700 34px/1 var(--font-h)}.dt span{grid-area:t;font-size:13px;font-weight:700}
.dt.in{background:var(--ok-bg);color:var(--ok)}.dt.out{background:var(--in-bg);color:var(--in)}.dt.stay{background:var(--menthe);color:#0B5453}
.dt.warn{background:var(--wa-bg);color:var(--wa)}.dt.bad{background:var(--er-bg);color:var(--er)}
.dt:hover{border-color:currentColor}
@media (max-width:700px){.gsearch{display:none}.btn.newres{display:none}.nav a svg.ic{width:18px;height:18px}.dt b{font-size:28px}}
@media (max-width:700px){.quick{grid-template-columns:1fr 1fr}.qa{grid-template-columns:1fr;row-gap:2px;min-height:0;padding:12px}.qa svg.ic{grid-row:auto}.qa span{display:none}.qa.p{grid-column:span 2}}
/* ---- réservation : étapes numérotées, avancement, solde */
.stepn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-right:10px;border-radius:50%;background:var(--teal);color:#fff;font:700 13px var(--font)}
details.more>summary{cursor:pointer;list-style:none;display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:34px}details.more>summary::-webkit-details-marker{display:none}
details.more>summary b{font:700 18px var(--font-h)}details.more[open]>summary{margin-bottom:12px}
details.more>summary::after{content:"▾";margin-left:auto;color:var(--txt2)}
.resgrid>.col:last-child{position:sticky;top:16px;align-self:start}
#quote tr.total td{font-size:20px}
.steps4{display:flex;gap:0;list-style:none;margin:0 0 14px;padding:0}
.steps4 li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:#8AA0A3;position:relative;text-align:center}
.steps4 li i{width:18px;height:18px;border-radius:50%;background:#DCE6E4;border:3px solid #DCE6E4;z-index:1}
.steps4 li::before{content:"";position:absolute;top:8px;left:-50%;width:100%;height:3px;background:#DCE6E4}.steps4 li:first-child::before{display:none}
.steps4 li.done{color:var(--ok)}.steps4 li.done i,.steps4 li.done::before{background:#3E9B62;border-color:#3E9B62}
.steps4 li.cur{color:var(--teal)}.steps4 li.cur i{background:#fff;border-color:var(--teal)}.steps4 li.cur::before{background:#3E9B62}
.balance{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:12px 16px;border-radius:12px;margin-bottom:14px}
.balance b{font:700 26px/1 var(--font-h)}.balance span{font-weight:700}.balance a{margin-left:auto;font-size:13px}
.balance.due{background:var(--wa-bg);color:var(--wa)}.balance.paid{background:var(--ok-bg);color:var(--ok)}.balance.back{background:var(--in-bg);color:var(--in)}
.balance a{color:inherit}
.toolbar .btn.p{min-height:48px;padding:0 22px;font-size:15px}
@media (max-width:700px){.resgrid>.col:last-child{position:static}.steps4 li{font-size:11px}}
/* ===== couche commune : barre du haut, menu utilisateur, notifications, mobile, états vides ===== */
.top{flex-wrap:nowrap;align-items:flex-start}.ttl{flex:1;min-width:0}.ttl .sub{max-width:62ch}
.tools{flex:none;flex-wrap:nowrap}
.burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;margin-right:6px;border:1px solid var(--line2);border-radius:10px;background:#fff;color:var(--nuit);cursor:pointer;flex:none}
.gsearch kbd{position:absolute;right:10px;font:700 11px var(--font);color:var(--txt2);border:1px solid var(--line2);border-radius:5px;padding:1px 6px;background:var(--brume)}
.gsearch input:focus~kbd{display:none}
.umenu{position:relative}.umenu>summary{list-style:none;cursor:pointer}.umenu>summary::-webkit-details-marker{display:none}
.umenu[open]>summary,.umenu>summary:hover{box-shadow:0 0 0 3px var(--menthe)}
.umenu-pop{position:absolute;right:0;top:48px;z-index:40;width:270px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 36px rgba(16,41,45,.18);padding:8px;display:flex;flex-direction:column;gap:2px}
.umenu-pop .who{padding:10px 12px 12px;display:flex;flex-direction:column;border-bottom:1px solid var(--line);margin-bottom:4px}.umenu-pop .who b{font:700 15px var(--font-h)}.umenu-pop .who span{font-size:12.5px;color:var(--txt2);overflow:hidden;text-overflow:ellipsis}
.umenu-pop .row{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;font-size:13px;font-weight:700;color:var(--txt2)}
.umenu-pop a,.umenu-pop .out{display:flex;align-items:center;min-height:42px;padding:0 12px;border-radius:9px;text-decoration:none;color:var(--nuit);font:600 14px var(--font);background:none;border:0;width:100%;text-align:left;cursor:pointer}
.umenu-pop a:hover,.umenu-pop .out:hover{background:var(--brume)}.umenu-pop .out{color:var(--er)}
/* notifications : elles s'effacent seules (sauf erreurs et avertissements) */
.toasts{position:fixed;right:18px;top:18px;z-index:80;display:flex;flex-direction:column;gap:10px;width:min(420px,calc(100vw - 36px))}
.alert.toast{display:flex;gap:12px;align-items:flex-start;box-shadow:0 12px 32px rgba(16,41,45,.2);animation:tin .22s ease-out;transition:opacity .25s,transform .25s}
.alert.toast.out{opacity:0;transform:translateY(-8px)}
.toast .x{margin-left:auto;background:none;border:0;font-size:22px;line-height:1;cursor:pointer;color:inherit;min-width:28px;min-height:28px;padding:0}
@keyframes tin{from{opacity:0;transform:translateY(-10px)}}
.progress{position:fixed;left:0;top:0;height:3px;width:0;background:var(--ambre);z-index:90;transition:width .35s ease;pointer-events:none}.progress.on{width:72%}
.tabs{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tabs a{white-space:nowrap}
table tbody tr:hover td{background:#F6FAF9}
form.sent button[type=submit],form.sent button:not([type]){opacity:.65;pointer-events:none}
/* états vides */
.empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:36px 20px}
.empty svg.ic{width:48px;height:48px;padding:11px;border-radius:14px;background:var(--menthe);color:var(--teal)}
.empty h3{font:700 18px var(--font-h)}.empty p{margin:0;color:var(--txt2);max-width:440px}.empty .btn{margin-top:8px}
p.empty{display:block}
.tabbar{display:none}.scrim{display:none}
/* tiroir et barre du bas sur téléphone et tablette */
@media (max-width:980px){
 .side{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);z-index:60;transform:translateX(-104%);transition:transform .22s ease;flex:none;flex-direction:column;align-items:stretch;overflow-y:auto;padding:22px 14px;gap:20px}
 .nav{flex-direction:column;flex:none;align-items:stretch}.nav .ng{display:block}.nav a{white-space:normal}.plan{display:block}
 body.nav-open .side{transform:none;box-shadow:0 0 50px rgba(0,0,0,.45)}
 body.nav-open .scrim{display:block;position:fixed;inset:0;z-index:55;background:rgba(16,41,45,.55)}
 .burger{display:inline-flex}
 .main{padding:14px 14px 96px}
 .top{gap:10px}.ttl h1{font-size:21px}
 .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));gap:2px}
 .tabbar a,.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px;font:700 11px var(--font);color:var(--txt2);text-decoration:none;background:none;border:0;border-radius:12px;cursor:pointer}
 .tabbar a.on{color:var(--teal);background:var(--menthe)}.tabbar a:nth-child(n+5){display:none}
 .toasts{left:12px;right:12px;top:auto;bottom:86px;width:auto}
 .umenu-pop{position:fixed;right:12px;left:12px;top:70px;width:auto}
}
@media print{.tabbar,.scrim,.toasts,.burger{display:none!important}}
/* ===== page d'accueil publique, version complète ===== */
.land-top .brand b{color:var(--nuit)}.land-top .brand b i{color:var(--teal)}
.land{max-width:1120px}
.land-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:center;padding:40px 0 24px}
.land-hero h1{max-width:14ch}.lh-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.lh-cta .btn.lg{width:auto;padding:0 26px}
.land-hero .ticks{margin:14px 0 0;gap:16px;color:var(--txt2);font-weight:700;font-size:13.5px}.land-hero .ticks li:before{color:#2E8B57}
.mock{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 24px 60px rgba(16,41,45,.16);transform:rotate(1.5deg);display:flex;flex-direction:column;gap:12px}
.mk-top{display:flex;gap:6px}.mk-top i{width:10px;height:10px;border-radius:50%;background:var(--line2)}
.mk-row{display:flex;align-items:baseline;gap:10px;background:var(--ok-bg);color:var(--ok);padding:12px 14px;border-radius:12px}.mk-row b{font:700 30px/1 var(--font-h)}.mk-row span{font-weight:700;font-size:13px}
.mk-row.ok{background:var(--menthe);color:#0B5453}
.mk-cal{position:relative;height:120px;border-radius:12px;background:repeating-linear-gradient(90deg,#F2F5F4 0 38px,#fff 38px 40px)}
.mk-cal s{position:absolute;height:22px;border-radius:7px;background:var(--teal)}.mk-cal s.a{left:6%;top:14px;width:42%}.mk-cal s.b{left:30%;top:50px;width:36%;background:var(--ambre)}.mk-cal s.c{left:58%;top:14px;width:34%;background:#7CC6C1}.mk-cal s.d{left:8%;top:86px;width:30%;background:#7CC6C1}
.land-mods,.land-steps,.land-plans{margin:44px 0}.land-mods h2,.land-steps h2,.land-plans h2{font-size:28px;margin-bottom:16px}
.mods{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.mods>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:2px;align-items:center}
.mods svg.ic{grid-row:span 2;width:40px;height:40px;padding:9px;border-radius:12px;background:var(--menthe);color:var(--teal)}.mods b{font:700 16px var(--font-h)}.mods span{font-size:13px;color:var(--txt2)}
.land-steps ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;counter-reset:s}
.land-steps li{display:grid;grid-template-columns:auto 1fr;column-gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}
.land-steps li span{grid-row:span 2;width:38px;height:38px;border-radius:50%;background:var(--teal);color:#fff;font:700 17px var(--font-h);display:flex;align-items:center;justify-content:center}
.land-steps li em{font-style:normal;font-size:13px;color:var(--txt2)}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:14px}
.plan-card .pp{font:700 26px var(--font-h);margin:8px 0 12px}.plan-card .pp{white-space:nowrap}.plan-card .pp small{display:inline;font:600 13px var(--font);color:var(--txt2)}
.plan-card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;font-size:14px}.plan-card li::before{content:"✓ ";color:#2E8B57;font-weight:800}
@media (max-width:900px){.land-hero{grid-template-columns:1fr}.lh-shot{display:none}.mods,.land-steps ol{grid-template-columns:1fr}.lh-cta .btn.lg{width:100%}}
/* ===== fiches clients ===== */
.mini-av{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--menthe);color:var(--teal);font:800 12px var(--font);flex:none}
.mini-av.lg{width:56px;height:56px;font-size:19px}
a.who{display:flex;align-items:center;gap:10px;text-decoration:none}a.who span:last-child{display:flex;flex-direction:column}a.who small{font-size:12px;font-weight:600}
.client-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.quick-contact{display:flex;gap:8px;flex-wrap:wrap}
.quick-contact .btn svg.ic{width:16px;height:16px}
.chip-radio{cursor:pointer;display:inline-block}
/* ===== cuisine : l'attente se voit à la couleur ===== */
.ticket-card{border-left:6px solid var(--line2)}.ticket-card.warn{border-left-color:var(--ambre);background:#FFFAF2}.ticket-card.late{border-left-color:#C8301C;background:#FFF5F2}
.age{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--txt2);margin:2px 0 8px}.age svg.ic{width:16px;height:16px}.age.warn{color:var(--wa)}.age.late{color:var(--er)}
.ticket-card .btn.sm{min-height:44px;min-width:92px;font-size:14px}
/* prise de commande : le panneau reste visible pendant qu'on choisit les plats */
@media (min-width:981px){.pos-panel{position:sticky;top:16px;align-self:start}}
/* ===== formulaires : obligatoire, cases à cocher, mot de passe ===== */
.req{color:#C8301C;font-weight:800}
label.check input+span,label.check input:checked+span{padding:0;border:0;background:none;border-radius:0;font-weight:600}
.pw{position:relative;display:block}.pw input{width:100%;padding-right:48px}
.pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;background:none;color:var(--txt2);cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center}
.pw-toggle:hover{background:var(--brume);color:var(--nuit)}.pw-toggle svg.ic{width:20px;height:20px}
.form>*,.main>*{min-width:0}.tablewrap{max-width:100%}
.umenu-pop{box-sizing:border-box;max-width:calc(100vw - 24px);overflow:hidden}.umenu-pop .row{gap:10px}.umenu-pop .lang button{min-width:40px;padding:9px 10px}
details.umenu:not([open])>.umenu-pop{display:none}
.card h3.sub{font:700 13px var(--font);color:var(--txt2);text-transform:uppercase;letter-spacing:.04em;margin:14px 0 8px}
.contract h3{margin:18px 0 6px;font-size:15px;break-after:avoid}.contract p{margin:0 0 8px;line-height:1.55;text-align:justify}
.contract-tab{width:100%;border-collapse:collapse;margin:8px 0 12px;font-size:14px}.contract-tab th,.contract-tab td{border:1px solid var(--line);padding:7px 10px;text-align:left;vertical-align:top}
.contract-tab th{background:var(--brume);font-weight:600;width:20%;color:var(--txt2)}
.contract .sign{gap:24px;align-items:flex-start;break-inside:avoid}.contract .sign>div{flex:1}
@media print{.contract{box-shadow:none;border:0;padding:0}.contract h3,.contract p,.contract-tab{break-inside:avoid}}
.photos,.photo-prev{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.photos img,.photo-prev img{width:92px;height:92px;object-fit:cover;border-radius:10px;border:1px solid var(--line);display:block}
.photos a:hover img{border-color:var(--teal)}
/* Notifications */
.umenu.notif>summary.bell{position:relative;width:38px;height:38px;border-radius:50%;background:#fff;border:1px solid var(--line2);display:flex;align-items:center;justify-content:center;color:var(--nuit)}
.bell .ic{width:19px;height:19px}.bell .dot{position:absolute;top:-4px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--er);color:#fff;font:700 11px/18px var(--font);text-align:center;box-sizing:border-box}
.umenu-pop.npop{width:360px;padding:6px;max-height:min(72vh,560px);overflow:auto}
.npop-head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px 6px}.npop-head b{font:700 15px var(--font-h)}.npop-head form{margin:0}
.lnk{background:none;border:0;color:var(--teal);font:600 12.5px var(--font);cursor:pointer;padding:4px}.lnk:hover{text-decoration:underline}
.npop-empty{padding:18px 12px;color:var(--txt2);font-size:13.5px;margin:0}
.umenu-pop.npop a.npop-all{justify-content:center;color:var(--teal);font-weight:700;min-height:40px;border-top:1px solid var(--line);border-radius:0 0 9px 9px;margin-top:4px}
a.nitem,.umenu-pop a.nitem{display:flex;gap:11px;align-items:flex-start;padding:10px 10px;border-radius:10px;text-decoration:none;color:var(--nuit);min-height:0;width:auto;text-align:left}
a.nitem:hover{background:var(--brume)}a.nitem .ico{flex:none;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--menthe);color:var(--teal)}
a.nitem.warn .ico{background:#fdf0d8;color:#8a5a00}a.nitem.bad .ico{background:#fbe3e0;color:var(--er)}a.nitem.ok .ico{background:#dff3e8;color:#1b7a46}
a.nitem .txt{display:flex;flex-direction:column;gap:2px;min-width:0}a.nitem .txt b{font:600 14px var(--font)}a.nitem .txt span{font-size:13px;color:var(--txt2);overflow-wrap:anywhere}a.nitem .txt em{font-style:normal;font-size:12px;color:var(--txt3,#7b8a8c)}
a.nitem.unread{background:#f3faf8}a.nitem.unread .txt b::after{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--teal);margin-left:7px}
.nlist{padding:6px}.nlist a.nitem{padding:12px}
@media (max-width:980px){.umenu-pop.npop{width:auto}}

a.nitem,.umenu-pop a.nitem{flex:none}a.nitem .txt em{display:block;line-height:1.5;font-style:normal;font-size:12px;color:var(--txt2)}

.fbars{width:34%;min-width:120px}.fbars i,.frow i{display:block;height:7px;border-radius:4px;margin:3px 0}.fin-rev{background:var(--teal)}.fin-cost{background:var(--amb,#F2A33A)}
.frow{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:8px 0;border-bottom:1px solid var(--line)}.frow i{grid-column:1/3;margin:0}.frow:last-child{border-bottom:0}
.exp{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}.exp.voided{opacity:.6}.exp.voided .exp-main b{text-decoration:line-through}
.exp-side{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.exp-side b{font:700 17px var(--font-h)}.exp-side details.fold{margin:0}

.pub{max-width:860px;margin:0 auto;padding:22px 16px 40px;display:flex;flex-direction:column;gap:16px}
.pub-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.pub-head h1{margin:0;font:700 28px var(--font-h)}.pub-head p{margin:2px 0 0}.pub-logo{width:56px;height:56px;border-radius:14px;object-fit:cover}
.pub-lang{margin-left:auto;display:flex;gap:6px}.pub-lang a{padding:6px 10px;border:1px solid var(--line);border-radius:8px;font-weight:700;font-size:13px;text-decoration:none;color:var(--txt2)}.pub-lang a.on{background:var(--teal);border-color:var(--teal);color:#fff}
.pub-intro{font-size:16px;margin:0}.pub-search{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;align-items:end}
.pub-unit{display:grid;grid-template-columns:150px 1fr auto;gap:16px;align-items:center}.pub-unit img{width:150px;height:110px;object-fit:cover;border-radius:12px}
.pub-unit h3{margin:0 0 4px;font:700 18px var(--font-h)}.pub-unit-side{display:flex;flex-direction:column;gap:4px;align-items:flex-end;text-align:right}.pub-unit-side b{font:700 20px var(--font-h)}
.pub-tags{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 0}.pub-total b{font:700 24px var(--font-h)}.pub-ref{font:700 28px var(--font-h);letter-spacing:.04em;color:var(--teal);margin:4px 0}
.pub-form{display:flex;flex-direction:column;gap:12px}.pub-done{text-align:center}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.share{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.share .qr{background:#fff;padding:8px;border:1px solid var(--line);border-radius:10px}
@media (max-width:640px){.pub-unit{grid-template-columns:1fr}.pub-unit img{width:100%;height:160px}.pub-unit-side{align-items:flex-start;text-align:left}}

.evrow{display:grid;grid-template-columns:64px 1fr auto;gap:16px;align-items:center;text-decoration:none;color:inherit}.evrow:hover{border-color:var(--teal)}
.evdate{display:flex;flex-direction:column;align-items:center;background:var(--menthe);border-radius:12px;padding:8px 0}.evdate b{font:700 24px/1 var(--font-h)}.evdate span{font-size:11px;font-weight:700;color:var(--teal)}
.evmoney{display:flex;flex-direction:column;align-items:flex-end}.evmoney b{font:700 17px var(--font-h)}.sm-b{font-size:22px!important}
@media (max-width:640px){.evrow{grid-template-columns:52px 1fr}.evmoney{grid-column:1/3;align-items:flex-start}}
.ownrow{grid-template-columns:1fr auto auto}.ownrow:hover{border-color:var(--line)}
.stmt{width:100%;border-collapse:collapse;margin-bottom:16px}.stmt th,.stmt td{padding:9px 6px;border-bottom:1px solid var(--line);text-align:left;font-size:15px}.stmt th{font-size:12px;text-transform:uppercase;color:var(--muted)}.stmt .num{text-align:right;white-space:nowrap}.stmt b{font-size:inherit}
.share a{overflow-wrap:anywhere;word-break:break-all}.share>div:first-child{min-width:0}
/* Menu principal fixe sur ordinateur : il reste à l'écran, de haut en bas, même sur une longue page */
@media (min-width:981px){.side{position:sticky;top:0;height:100vh;align-self:flex-start;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#2A4F54 transparent}.plan{flex:none}}

/* Recherche dans les longues listes déroulantes */
.selfilter{display:block;width:100%;margin-bottom:6px;min-height:40px}

/* Tableau de bord : les cartes de chaque section se répartissent sur toute la largeur, sans trou */
.grid.biz{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
@media(max-width:980px){.grid.biz{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}

/* Téléphone : les 4 chiffres clés d'une page tiennent sur 2 colonnes, moins de défilement */
@media(max-width:700px){.grid.kpis{grid-template-columns:1fr 1fr;gap:10px}.kpis .kpi{padding:14px}.kpis .kpi b{font-size:20px;line-height:1.2}}

/* Dates prises sur Airbnb, Booking… dans le calendrier */
.bar.ext{background:repeating-linear-gradient(135deg,#e7ebea 0 8px,#f3f5f4 8px 16px);color:#5d6b69;border:1px dashed #b9c4c2;cursor:not-allowed;z-index:3}

/* Compteurs : formulaire de relevé compact ; listes repliables */
td form.row input[type=date]{max-width:150px;min-width:0}.badge{white-space:nowrap}
details.card>summary{cursor:pointer;list-style:none}details.card>summary::-webkit-details-marker{display:none}details.card[open]>summary{margin-bottom:12px}
.card details>summary.btn{display:inline-block;margin-top:8px;cursor:pointer}

/* Aperçu des prix : une case par nuit, première colonne figée */
.pp{border-collapse:separate;border-spacing:2px;font-size:12px;width:auto}.pp th,.pp td{text-align:center;padding:6px 3px;min-width:44px}
.pp thead th{font-weight:600;line-height:1.2}.pp thead th.we{color:var(--teal)}
.pp td{background:#f4f7f6;border-radius:6px;font-weight:600;cursor:default}
.pp td.up,.pp-key.up{background:#fde9c9;color:#7a4a00}.pp td.down,.pp-key.down{background:#d6f0e4;color:#0b5a3c}
.pp td.busy,.pp-key.busy{background:repeating-linear-gradient(135deg,#e7ebea 0 6px,#f3f5f4 6px 12px);color:#8a9694;font-weight:400}
.pp .pp-unit{position:sticky;left:0;background:var(--card,#fff);text-align:left;min-width:92px;z-index:2;white-space:nowrap}
.pp-key{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;border:1px solid var(--line)}
.advice{align-items:flex-start;gap:12px}

.net-banner{background:var(--er-bg);color:var(--er);padding:8px 16px;font-weight:700;text-align:center}.net-banner[hidden]{display:none}.net-banner a{color:var(--er);text-decoration:underline}.splitpick{margin-right:6px}
.track{list-style:none;margin:12px 0;padding:0;display:grid;gap:8px}.track li{padding:8px 12px;border-radius:10px;border:1px solid var(--line);color:var(--txt2)}.track li.on{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:700}
.wl{align-items:center;gap:12px;flex-wrap:wrap}
/* centre d'aide */
.dot.inl{display:inline-block;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--er);color:#fff;font:700 11px/18px var(--font);text-align:center;box-sizing:border-box;vertical-align:middle}
.helpbtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--txt2);font-weight:800;text-decoration:none}.helpbtn:hover{color:var(--teal);border-color:var(--teal)}
.hc-search{display:flex;gap:10px;align-items:center}.hc-search input{flex:1;min-width:0;font-size:16px;padding:12px 14px}
.hc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.hc-card{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}.hc-card:hover{border-color:var(--teal);transform:translateY(-1px)}
.hc-card .ico{display:inline-flex;width:38px;height:38px;border-radius:10px;background:#E5F2EF;color:var(--teal);align-items:center;justify-content:center;margin-bottom:10px}.hc-card b{display:block;font-size:15px}.hc-card span.s{display:block;color:var(--txt2);font-size:13px;margin-top:4px}.hc-card em{display:block;font-style:normal;color:var(--txt2);font-size:12px;margin-top:8px}
.hc-list a.it{display:block;padding:11px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.hc-list a.it:last-child{border-bottom:0}.hc-list a.it b{display:block}.hc-list a.it span{color:var(--txt2);font-size:13px}.hc-list a.it:hover b{color:var(--teal)}
.faq details{border-bottom:1px solid var(--line);padding:11px 0}.faq details:last-child{border-bottom:0}.faq summary{cursor:pointer;font-weight:600;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";float:right;color:var(--txt2);font-weight:400}.faq details[open] summary::after{content:"–"}.faq .ans{padding-top:8px;color:var(--txt2)}
.hc-art{max-width:760px}.hc-art p{line-height:1.65;margin:0 0 14px}.hc-art ul,.hc-art ol{margin:0 0 14px;padding-left:22px;line-height:1.65}.hc-art li{margin-bottom:6px}.hc-art ol{counter-reset:s;list-style:none;padding-left:0}.hc-art ol li{counter-increment:s;position:relative;padding-left:40px;min-height:28px}.hc-art ol li::before{content:counter(s);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;background:var(--teal);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:13px}
.crumb{font-size:13px;color:var(--txt2)}.crumb a{color:var(--txt2)}
.vote{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.vote .thanks{color:var(--teal);font-weight:600}
.hc-sugg{border:1px dashed var(--line);border-radius:12px;padding:10px 14px;margin-top:10px;background:#F7FAF9}.hc-sugg b{font-size:13px}.hc-sugg a{display:block;padding:5px 0}
.stat-row{display:flex;gap:14px;flex-wrap:wrap}.stat-row .st{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;min-width:130px}.stat-row .st b{display:block;font-size:22px}.stat-row .st span{color:var(--txt2);font-size:13px}

/* Nouveautés : repère « Nouveau », carte d'explication, page des nouveautés */
.newpill{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:999px;background:var(--amber,#f2a33a);color:#3a2300;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;line-height:1.5}
.fintro{display:flex;gap:12px;align-items:flex-start;margin:0 0 14px;padding:12px 14px;border:1px solid #f2d9a8;border-left:4px solid var(--amber,#f2a33a);border-radius:12px;background:#fff8ea}
.fintro .newpill{margin-left:0;flex:none;margin-top:2px}
.fintro .fi-body{flex:1;min-width:0}.fintro .fi-body p{margin:3px 0 0;color:#5b4a2c;font-size:14px}
.fintro .fi-act{display:flex;gap:12px;align-items:center;flex:none}.fintro .fi-act a{font-size:13px;color:#7a5a1d}
@media (max-width:640px){.fintro{flex-wrap:wrap}.fintro .fi-act{width:100%;justify-content:space-between}}
.wn-h{display:flex;justify-content:space-between;align-items:center;gap:10px}.wn-h h2{margin:0}
.wn-list{display:grid;gap:10px;margin-top:10px}.wn-it{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;padding:10px 12px;border:1px solid var(--line,#e5e9ec);border-radius:10px}
.wn-it p{margin:3px 0 0;color:var(--muted,#5f6f76);font-size:14px}

/* Mode démonstration : bandeau en haut de l'application */
.demo-bar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:8px 16px;background:#14343a;color:#fff;font-size:13.5px}
.demo-bar b{background:var(--amber,#f2a33a);color:#3a2300;padding:1px 9px;border-radius:999px;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}
.demo-bar .demo-switch{margin-left:auto}.demo-bar label{display:flex;gap:8px;align-items:center}
.demo-bar select{max-width:220px;border-radius:8px;border:0;padding:5px 8px}
.demo-bar form{margin:0}
@media (max-width:640px){.demo-bar .hide-s{display:none}.demo-bar .demo-switch{margin-left:0}}
