/* Live, par Maison Daguet. Grammaire imprimée : EB Garamond + Archivo, filets 1 px, angles droits. */

@font-face{font-family:'EB Garamond';src:url(/fonts/eb-garamond-latin-wght-normal.woff2) format('woff2');font-weight:400 800;font-display:swap}
@font-face{font-family:'Archivo';src:url(/fonts/archivo-latin-wght-normal.woff2) format('woff2');font-weight:100 900;font-display:swap}

:root{
  --fond:#ece7dd;        /* lin */
  --papier:#f4f0e8;      /* fiches */
  --encre:#24272a;       /* ardoise foncée */
  --ardoise:#4a5259;
  --doux:#6f746f;
  --filet:#24272a;
  --filet-doux:#b9b3a6;
  --accent:#1f4d3a;      /* vert bouteille */
  --sur-accent:#ece7dd;
  --attente:#8a5a1c;     /* à confirmer */
  --annule:#8c2a24;
  --serif:'EB Garamond',Garamond,Georgia,serif;
  --sans:'Archivo',Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--fond);color:var(--encre);font:400 17px/1.45 var(--serif);font-feature-settings:"kern","liga","onum";min-height:100vh}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.wrap{width:min(1180px,100% - 32px);margin-inline:auto}

/* Étiquettes et boutons (Archivo, capitales espacées) */
.lab{font:500 11px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--doux)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border:1px solid var(--encre);font:500 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;transition:background .15s,color .15s}
.btn:hover{background:var(--encre);color:var(--fond)}
.btn.plein{background:var(--encre);color:var(--fond)}
.btn.plein:hover{background:var(--accent);border-color:var(--accent)}
.btn.vert{border-color:var(--accent);color:var(--accent)}
.btn.vert:hover{background:var(--accent);color:var(--sur-accent)}
.btn.rouge{border-color:var(--annule);color:var(--annule)}
.btn.rouge:hover{background:var(--annule);color:#fff}
.btn.petit{min-height:32px;padding:0 10px;font-size:10.5px}
.btn.doux{border-color:var(--filet-doux);color:var(--ardoise)}
.btn[disabled]{opacity:.45;cursor:default}
.btn[disabled]:hover{background:none;color:inherit}

/* En-tête */
.top{border-bottom:1px solid var(--filet);background:var(--fond);position:sticky;top:0;z-index:20}
.top .wrap{display:flex;align-items:center;gap:22px;min-height:58px;flex-wrap:wrap}
.marque{font:500 17px/1 var(--serif);letter-spacing:.3em;text-transform:uppercase;padding-right:22px;border-right:1px solid var(--filet);align-self:stretch;display:flex;align-items:center}
.marque small{display:none}
.etab{font:400 19px/1.1 var(--serif);display:flex;align-items:center;gap:10px}
.etab select{border:0;background:transparent;font:400 19px/1.1 var(--serif);padding:4px 0;cursor:pointer;max-width:60vw}
.nav{display:flex;gap:0;margin-left:auto}
.nav a,.nav button{font:500 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:21px 14px;border-bottom:2px solid transparent;margin-bottom:-1px}
.nav a.actif{border-bottom-color:var(--encre)}
.nav .pastille{display:inline-block;min-width:18px;padding:0 5px;margin-left:6px;border:1px solid var(--attente);color:var(--attente);font-size:10px;line-height:17px;text-align:center}
.compte{font:400 12px/1.3 var(--sans);color:var(--doux);padding-left:14px;border-left:1px solid var(--filet-doux)}

/* Barre de l'agenda */
.barre{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:20px 0 14px;border-bottom:1px solid var(--filet)}
.barre .vues{display:flex;border:1px solid var(--encre)}
.barre .vues button{font:500 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:0 14px;height:38px;border-right:1px solid var(--encre)}
.barre .vues button:last-child{border-right:0}
.barre .vues button.actif{background:var(--encre);color:var(--fond)}
.barre .dates{display:flex;align-items:center;gap:4px}
.barre .dates button{height:38px;min-width:38px;border:1px solid var(--encre);font:500 16px/1 var(--serif)}
.barre .dates input[type=date]{height:38px;border:1px solid var(--encre);background:var(--papier);padding:0 8px;font:400 15px/1 var(--sans)}
.barre h1{font:400 clamp(24px,4vw,34px)/1.1 var(--serif);margin-right:auto;text-transform:lowercase}
.barre h1::first-letter{text-transform:uppercase}
.barre .droite{display:flex;gap:8px;margin-left:auto}

/* Vue jour */
.jour{padding:22px 0 80px;display:grid;gap:28px}
.service{border-top:1px solid var(--filet)}
.service header{display:flex;align-items:baseline;gap:16px;padding:12px 0 6px;flex-wrap:wrap}
.service h2{font:500 15px/1.2 var(--serif);letter-spacing:.16em;text-transform:uppercase}
.service .jauge{font:400 13px/1 var(--sans);color:var(--doux);letter-spacing:.04em;font-variant-numeric:tabular-nums}
.service .jauge b{color:var(--encre);font-weight:600}
.service .jauge.plein b{color:var(--annule)}
.service .vide{padding:14px 0 18px;color:var(--doux)}
.ligne{display:grid;grid-template-columns:62px 1fr auto;gap:8px 16px;align-items:center;padding:11px 0;border-top:1px dotted var(--filet-doux);cursor:pointer}
.ligne:first-of-type{border-top:0}
.ligne:hover{background:var(--papier)}
.ligne.selection{background:var(--papier)}
.ligne .h{font:500 19px/1 var(--serif);font-variant-numeric:tabular-nums}
.ligne .qui{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;min-width:0}
.ligne .nom{font-size:19px;font-weight:500}
.ligne .n{font:500 13px/1 var(--sans);letter-spacing:.04em;color:var(--ardoise);font-variant-numeric:tabular-nums}
.ligne .tel{font:400 13px/1 var(--sans);color:var(--doux);letter-spacing:.02em}
.ligne .note{flex-basis:100%;font-size:15px;color:var(--doux);font-style:normal}
.ligne .actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.ligne.passee .h,.ligne.passee .nom{color:var(--doux)}
.statut{display:inline-block;font:500 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:5px 7px;border:1px solid currentColor;color:var(--ardoise)}
.statut.pending{color:var(--attente)}
.statut.confirmed{color:var(--accent)}
.statut.declined,.statut.cancelled,.statut.noshow{color:var(--annule)}
.statut.seated{color:var(--accent);background:var(--accent);color:var(--sur-accent);border-color:var(--accent)}
.ligne.cancelled .nom,.ligne.declined .nom,.ligne.noshow .nom{text-decoration:line-through;text-decoration-thickness:1px;color:var(--doux)}
.ligne.pending{border-left:3px solid var(--attente);padding-left:10px}
.ferme{padding:30px 0;color:var(--doux);font-size:19px}
.attente-bloc{border:1px solid var(--attente);padding:12px 16px;margin-top:22px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.attente-bloc b{font-weight:500;color:var(--attente)}

/* Semaine */
.semaine{padding:22px 0 80px}
.semaine .grille{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--filet);border-top:1px solid var(--filet)}
.semaine .case{border-right:1px solid var(--filet);border-bottom:1px solid var(--filet);padding:10px 10px 14px;min-height:150px;cursor:pointer;display:flex;flex-direction:column;gap:6px}
.semaine .case:hover{background:var(--papier)}
.semaine .case.auj{background:var(--papier)}
.semaine .case .d{font:500 11px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--doux);display:flex;justify-content:space-between}
.semaine .case .num{font:500 26px/1 var(--serif)}
.semaine .case .srv{display:flex;justify-content:space-between;font:400 13px/1.3 var(--sans);letter-spacing:.02em;border-top:1px dotted var(--filet-doux);padding-top:5px;font-variant-numeric:tabular-nums}
.semaine .case .srv.plein{color:var(--annule)}
.semaine .case .att{font:500 11px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--attente);margin-top:auto}
.semaine .case.fermee{background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(36,39,42,.06) 6px 7px)}
.semaine .case.fermee .num{color:var(--doux)}

/* Mois */
.mois{padding:22px 0 80px}
.mois .grille{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--filet);border-top:1px solid var(--filet)}
.mois .entete{font:500 11px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--doux);padding:8px 8px;border-right:1px solid var(--filet);border-bottom:1px solid var(--filet)}
.mois .case{border-right:1px solid var(--filet);border-bottom:1px solid var(--filet);min-height:84px;padding:6px 8px;cursor:pointer;display:flex;flex-direction:column}
.mois .case:hover{background:var(--papier)}
.mois .case.hors{color:var(--filet-doux);cursor:default}
.mois .case.auj .num{text-decoration:underline;text-underline-offset:4px}
.mois .case .num{font:500 18px/1 var(--serif);font-variant-numeric:tabular-nums}
.mois .case .tot{margin-top:auto;font:400 12.5px/1.3 var(--sans);letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--ardoise)}
.mois .case .att{font:500 10.5px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--attente)}
.mois .case.fermee{background:repeating-linear-gradient(135deg,transparent 0 6px,rgba(36,39,42,.06) 6px 7px)}

/* Liste d'attente */
.liste{padding:22px 0 80px}
.liste .groupe{border-top:1px solid var(--filet);margin-bottom:22px}
.liste .groupe h2{font:500 15px/1.2 var(--serif);letter-spacing:.14em;text-transform:uppercase;padding:12px 0 6px}

/* Panneau latéral (fiche) */
.panneau{position:fixed;top:0;right:0;bottom:0;width:min(460px,100%);background:var(--papier);border-left:1px solid var(--filet);z-index:40;overflow:auto;padding:22px 24px 40px}
.voile{position:fixed;inset:0;background:rgba(36,39,42,.35);z-index:30}
.panneau .ferm{position:absolute;top:14px;right:16px;font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:8px 0 8px 10px}
.panneau h2{font:400 28px/1.1 var(--serif);margin:28px 0 4px;padding-right:80px}
.panneau .sous{font:400 14px/1.4 var(--sans);color:var(--doux);margin-bottom:18px}
.fiche{border-top:1px solid var(--filet);border-bottom:1px solid var(--filet);margin:14px 0}
.fiche div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:8px 0;border-top:1px dotted var(--filet-doux);align-items:baseline}
.fiche div:first-child{border-top:0}
.fiche dt{font:500 10.5px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--doux)}
.fiche dd{word-break:break-word}
.fiche dd a{border-bottom:1px solid var(--filet-doux)}
.panneau .actes{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.panneau .hist{font:400 12.5px/1.5 var(--sans);color:var(--doux);border-top:1px solid var(--filet-doux);padding-top:10px;margin-top:16px}
.panneau .hist li{list-style:none;padding:3px 0}

/* Formulaires */
.form{display:grid;gap:14px;margin:18px 0}
.form label{display:grid;gap:5px}
.form label span{font:500 10.5px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--doux)}
.form input,.form select,.form textarea{border:1px solid var(--filet-doux);background:#fff;padding:9px 10px;font:400 16px/1.3 var(--serif);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--encre);outline:0}
.form .deux{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form .trois{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.form .coche{display:flex;align-items:center;gap:10px;font-size:15px}
.form .coche input{width:auto}
.form .pied{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.form .erreur{color:var(--annule);font-size:15px}
.form .ok{color:var(--accent);font-size:15px}
.form textarea{min-height:80px;resize:vertical}

/* Réglages et administration */
.page{padding:26px 0 90px;display:grid;gap:36px;max-width:820px}
.page section{border-top:1px solid var(--filet);padding-top:14px}
.page>.barre{border-bottom:0}
.page h2{font:500 15px/1.2 var(--serif);letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px;display:flex;align-items:baseline;gap:12px}
.page h2 .num{font:500 11px/1 var(--sans);letter-spacing:.2em;color:var(--accent)}
.page .aide{color:var(--doux);font-size:15px;max-width:40em;margin-bottom:10px}
.tableau{width:100%;border-collapse:collapse;font-size:15px}
.tableau th{font:500 10.5px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--doux);text-align:left;padding:6px 8px 6px 0;border-bottom:1px solid var(--filet)}
.tableau td{padding:7px 8px 7px 0;border-bottom:1px dotted var(--filet-doux);vertical-align:middle}
.tableau input,.tableau select{border:1px solid var(--filet-doux);background:#fff;padding:6px 7px;font:400 15px/1.2 var(--serif);width:100%;min-width:60px}
.tableau input[type=number]{width:80px}
.tableau input[type=time]{width:100px}
.tableau .jours{display:flex;gap:3px}
.tableau .jours label{display:flex;flex-direction:column;align-items:center;font:500 9.5px/1 var(--sans);letter-spacing:.06em;gap:3px;cursor:pointer}
.tableau .jours input{width:auto;margin:0}
.code{font:400 13px/1.6 ui-monospace,Menlo,Consolas,monospace;background:#fff;border:1px solid var(--filet-doux);padding:12px 14px;white-space:pre-wrap;word-break:break-all}
.liste-simple{list-style:none}
.liste-simple li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px dotted var(--filet-doux)}
.liste-simple li:first-child{border-top:0}
.message{padding:12px 14px;border:1px solid var(--filet);margin:10px 0;font-size:15px}
.message.erreur{border-color:var(--annule);color:var(--annule)}
.message.ok{border-color:var(--accent);color:var(--accent)}
.cartes{display:grid;gap:0;border-top:1px solid var(--filet)}
.cartes .carte{display:grid;grid-template-columns:1fr auto;gap:6px 16px;padding:12px 0;border-bottom:1px solid var(--filet-doux);align-items:center}
.cartes .carte h3{font:400 21px/1.1 var(--serif)}
.cartes .carte .m{font:400 13px/1.4 var(--sans);color:var(--doux)}
.cartes .carte .boutons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.chargement{padding:40px 0;color:var(--doux)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--encre);color:var(--fond);font:400 14px/1.3 var(--sans);padding:12px 18px;z-index:50;max-width:calc(100% - 32px)}

/* Mobile */
@media (max-width:760px){
  .wrap{width:min(1180px,100% - 24px)}
  .top .wrap{gap:12px;min-height:52px}
  .marque{font-size:14px;letter-spacing:.26em;padding-right:12px}
  .etab{font-size:17px}
  .etab select{font-size:17px}
  .nav{margin-left:auto;order:3;width:100%;border-top:1px solid var(--filet-doux);overflow-x:auto;scrollbar-width:none;gap:4px}
  .nav::-webkit-scrollbar{display:none}
  .nav a,.nav button{padding:12px 8px;font-size:10.5px;letter-spacing:.1em;white-space:nowrap;flex:0 0 auto}
  .compte{display:none}
  .barre h1{order:-1;width:100%;margin:0}
  .barre .droite{margin-left:0}
  .ligne{grid-template-columns:52px 1fr}
  .ligne .actions{grid-column:1 / -1;justify-content:flex-start}
  .semaine .grille{grid-template-columns:1fr}
  .semaine .case{min-height:0}
  .mois .case{min-height:60px;padding:4px 5px}
  .mois .case .num{font-size:15px}
  .mois .case .tot{font-size:11px}
  .mois .case .att{font-size:9px;letter-spacing:.06em}
  .panneau{width:100%;padding:18px 16px 40px}
  .fiche div{grid-template-columns:90px 1fr}
  .form .trois{grid-template-columns:1fr 1fr}
  .tableau{display:block;overflow-x:auto}
}
@media (prefers-reduced-motion:reduce){.btn{transition:none}}
@media print{.top,.barre,.btn,.panneau,.voile{display:none!important}body{background:#fff}}
