/* Villa Marinia — administration. Charte : Forêt #0E3B22, Soleil #F9C921 (accent rare),
   Basalte #1D1D1B, Lin #F6F1E7, Sable #E2D8C3, Mousse #C9D6CC. Cormorant Garamond + Jost. */
:root{
  --foret:#0E3B22; --foret-2:#24513A; --soleil:#F9C921; --soleil-pale:#FDF6D8;
  --basalte:#1D1D1B; --lin:#F6F1E7; --sable:#E2D8C3; --sable-2:#EFE8DA; --mousse:#C9D6CC;
  --gris:#5B574E; --alerte:#9A5B00; --ok:#24513A; --vert-pale:#E6EDE8;
  --serif:'Cormorant Garamond', Georgia, serif; --sans:'Jost', system-ui, sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--lin);color:var(--basalte);font-family:var(--sans);font-weight:300;font-size:15px;line-height:1.5}
a{color:var(--foret)} a:hover{color:var(--foret-2)}
h1,h2,h3{font-weight:400;margin:0}
button,input,select,textarea{font:inherit;color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Structure */
.shell{display:flex;min-height:100vh}
.side{flex:0 0 248px;background:var(--foret);color:var(--lin);padding:28px 22px;display:flex;flex-direction:column;gap:32px;position:sticky;top:0;height:100vh}
.side img{height:60px;width:auto;align-self:flex-start}
.nav{display:flex;flex-direction:column;gap:4px}
.nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;color:var(--mousse);text-decoration:none;font-size:15px;border-radius:2px}
.nav a:hover{color:var(--lin);background:rgba(255,255,255,.05)}
.nav a[aria-current=page]{color:var(--lin);background:var(--foret-2)}
.nav a[aria-current=page] svg{stroke:var(--soleil)}
.nav svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.4}
.side-foot{margin-top:auto;border-top:1px solid var(--foret-2);padding-top:18px;display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--mousse)}
.side-foot a{color:var(--mousse)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--soleil);display:inline-block}
main.content{flex:1;min-width:0;padding:36px clamp(16px,3vw,48px) 64px;display:flex;flex-direction:column;gap:32px}
@media (max-width:900px){.shell{flex-direction:column}.side{position:static;height:auto;flex:none;gap:18px}.nav{flex-direction:row;flex-wrap:wrap}.side-foot{display:none}}

/* En-tête de page */
.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px}
.page-head h1{font-family:var(--serif);font-weight:500;font-size:44px;line-height:1.05;color:var(--foret)}
.eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gris)}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.label{margin:0;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--foret);font-weight:400;display:flex;align-items:center;gap:12px}
.label::before{content:"";display:inline-block;width:28px;height:1px;background:var(--soleil)}
.muted{color:var(--gris)} .small{font-size:13px} .warn{color:var(--alerte)} .ok{color:var(--ok)}
.serif{font-family:var(--serif)}

/* Boutons et champs */
.btn{min-height:44px;border:none;background:var(--foret);color:var(--lin);font-size:13px;letter-spacing:.12em;text-transform:uppercase;padding:0 18px;border-radius:2px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.btn:hover{background:var(--foret-2);color:var(--lin)}
.btn-line{background:transparent;color:var(--foret);border:1px solid var(--foret)}
.btn-line:hover{background:var(--foret);color:var(--lin)}
.btn-sm{min-height:36px;padding:0 12px;letter-spacing:.04em;text-transform:none;font-size:13px}
.btn-dash{background:transparent;color:var(--foret);border:1px dashed var(--foret);letter-spacing:0;text-transform:none}
.btn-ghost{background:none;border:none;color:var(--gris);cursor:pointer;min-width:40px;min-height:40px;font-size:18px}
.field{display:flex;flex-direction:column;gap:6px;font-size:14px}
.field input,.field select,.field textarea,.input{min-height:44px;border:1px solid var(--sable);background:#fff;padding:0 12px;border-radius:0}
.field textarea,textarea.input{padding:10px 12px;min-height:80px;resize:vertical}
.pill{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;background:#fff;border:1px solid var(--sable);font-size:14px}
.pill select,.pill input{border:none;background:transparent;outline:none}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{min-height:40px;display:inline-flex;align-items:center;border:1px solid var(--sable);background:#fff;color:var(--basalte);font-size:13px;padding:0 14px;border-radius:22px;text-decoration:none}
.chip[aria-pressed=true],.chip.on{background:var(--foret);border-color:var(--foret);color:var(--lin)}
.grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.check{display:flex;align-items:center;gap:12px;min-height:40px;font-size:15px}
.check input{width:20px;height:20px;accent-color:var(--foret)}

/* Cartes */
.card{background:#fff;border:1px solid var(--sable)}
.pad{padding:22px} .pad-l{padding:26px}
.stack{display:flex;flex-direction:column;gap:14px}
.row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:24px;align-items:start}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.kpi{background:#fff;border:1px solid var(--sable);padding:20px;display:flex;flex-direction:column;gap:8px}
.kpi .k{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.kpi .v{font-family:var(--serif);font-size:38px;font-weight:500;line-height:1;color:var(--foret)}
.kpi .s{font-size:13px;color:var(--gris)}
.kpi.dark{background:var(--foret);border-color:var(--foret);color:var(--lin)}
.kpi.dark .k{color:var(--soleil)} .kpi.dark .v{color:var(--lin)} .kpi.dark .s{color:var(--mousse)}
.bar{height:4px;background:var(--sable-2)} .bar>span{display:block;height:4px;background:var(--foret)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.tile{background:#fff;border:1px solid var(--sable);padding:20px;display:flex;flex-direction:column;gap:14px}
.avatar{flex:none;width:48px;height:48px;border-radius:50%;background:var(--vert-pale);color:var(--foret);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:20px}
.avatar.gold{background:var(--foret);color:var(--soleil)}
.tag{font-size:12px;padding:4px 10px;background:var(--lin);border:1px solid var(--sable);display:inline-block}
.tag.gold{background:var(--soleil-pale);border-color:var(--soleil)}
.tag.green{background:var(--vert-pale);border-color:var(--vert-pale);color:var(--foret)}
.tag.warn{background:#fff;border-color:var(--alerte);color:var(--alerte)}
.dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:14px}
.dl dt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.dl dd{margin:2px 0 0}
.facts{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;background:var(--sable-2);border:1px solid var(--sable-2)}
.facts>div{background:#fff;padding:14px}
.facts dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gris)}
.facts dd{margin:6px 0 0;font-size:16px}
.list{list-style:none;margin:0;padding:0}
.list>li{padding:12px 0;border-bottom:1px solid var(--sable-2);display:flex;gap:12px;align-items:flex-start}
.list>li:last-child{border-bottom:none}
.datebox{flex:none;width:58px;display:flex;flex-direction:column;align-items:center;border:1px solid var(--sable);padding:6px 0}
.datebox b{font-family:var(--serif);font-weight:400;font-size:24px;line-height:1;color:var(--foret)}
.datebox span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.datebox.on{background:var(--foret);border-color:var(--foret)} .datebox.on b{color:var(--lin)} .datebox.on span{color:var(--mousse)}
.hbars{display:flex;flex-direction:column;gap:12px}
.hbar{display:grid;grid-template-columns:160px 1fr 72px;gap:12px;align-items:center;font-size:14px}
.hbar>div{height:10px;background:var(--sable-2)} .hbar>div>span{display:block;height:10px;background:var(--foret)}
.note-gold{background:var(--soleil-pale);border:1px solid var(--soleil);padding:12px 14px;font-size:14px}
.notice{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--sable);padding:14px 18px;font-size:14px;max-width:900px}
.flash{padding:12px 16px;border:1px solid var(--sable);background:#fff;font-size:14px}
.flash.danger,.flash.warning{border-color:var(--alerte);color:var(--alerte)}
.flash.success{border-color:var(--ok);color:var(--ok)}

/* Tableaux */
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;color:var(--gris);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:400;padding:14px 12px}
.tbl td{padding:13px 12px;border-top:1px solid var(--sable-2);vertical-align:top}
.tbl th:first-child,.tbl td:first-child{padding-left:20px}
.tbl th:last-child,.tbl td:last-child{padding-right:20px}
.tbl tr.hl td{background:var(--lin)}
.right,.tbl .right{text-align:right}

/* Bande calendrier */
.strip{display:grid;gap:2px;font-size:11px;color:var(--gris);text-align:center;min-width:900px}
.strip .b{height:30px;display:flex;align-items:center;padding:0 6px;font-size:12px;overflow:hidden;white-space:nowrap}
.strip .stay{background:var(--foret);color:var(--lin)}
.strip .option{background:var(--soleil);color:var(--basalte);justify-content:center}

/* Feuilles imprimables (facture, relevé, fiche) */
.sheet{background:#fff;border:1px solid var(--sable);box-shadow:0 18px 40px -28px rgba(14,59,34,.45)}
.sheet-head{background:var(--foret);color:var(--lin);padding:clamp(24px,4vw,44px);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px}
.sheet-head img{height:64px;width:auto}
.sheet-head .t{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}
.sheet-head .t .e{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--soleil)}
.sheet-head .t .n{font-family:var(--serif);font-size:34px;font-weight:500;line-height:1}
.sheet-gold{height:2px;background:var(--soleil)}
.sheet-body{padding:clamp(24px,4vw,44px);display:flex;flex-direction:column;gap:30px}
.sheet-foot{border-top:1px solid var(--sable-2);padding:18px clamp(24px,4vw,44px);display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:12px;color:var(--gris)}
.sheet .tbl th{color:var(--basalte);font-weight:500;letter-spacing:.06em;border-bottom:1px solid var(--foret)}
.sheet .tbl th:first-child,.sheet .tbl td:first-child{padding-left:8px}
.total-line{font-family:var(--serif);font-size:26px;color:var(--foret)}
@media print{
  @page{size:A4;margin:12mm}
  body{background:#fff}
  .side,.no-print,.flash{display:none !important}
  main.content{padding:0}
  .sheet{box-shadow:none;border:none}
  .sheet-head,.sheet-gold,.tag,.kpi.dark{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
