*,:before,:after{box-sizing:border-box}:root{--police-titre:"Barlow Condensed", "Arial Narrow", sans-serif;--police-texte:Inter, system-ui, -apple-system, "Segoe UI", sans-serif;--h-bouton:40px;--h-champ:44px;--h-puce:36px;--h-heure:56px}html,body{background:var(--c-fond);color:var(--c-texte);font-family:var(--police-texte);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.4}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--c-texteAccent);outline-offset:2px}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.nowrap{white-space:nowrap}.doux{color:var(--c-texteDoux);font-size:13px}.page{height:100vh;display:flex}.laterale{background:var(--c-surface);border-right:1px solid var(--c-trait);width:240px;height:100vh;padding:var(--e-xl) var(--e-l);gap:var(--e-xl);flex-direction:column;flex:none;display:flex;position:sticky;top:0}.marque{align-items:center;gap:var(--e-m);padding:0 var(--e-m);font:800 24px/1 var(--police-titre);text-transform:uppercase;letter-spacing:.02em;display:flex}.lieu-actif{gap:var(--e-xs);padding:var(--e-m);border:1px solid var(--c-trait);border-radius:var(--r-m);background:var(--c-fond);flex-direction:column;min-width:0;display:flex}.lieu-actif b{white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.lieu-actif span{color:var(--c-texteDoux);white-space:nowrap;font-size:12px}.navigation{gap:var(--e-xs);flex-direction:column;display:flex}.navigation a{height:var(--h-bouton);border-radius:var(--r-s);padding:0 var(--e-m);align-items:center;gap:var(--e-m);color:var(--c-texteDoux);font-weight:600;text-decoration:none;display:flex}.navigation a[aria-current=page]{background:var(--c-accentDoux);color:var(--c-texteAccent)}.contenu{min-width:0;min-height:0;padding:var(--e-xl) var(--e-xxl) var(--e-xxl);gap:var(--e-xl);flex-direction:column;flex:1;display:flex;overflow-y:auto}.entete{justify-content:space-between;align-items:flex-end;gap:var(--e-l);flex-wrap:wrap;display:flex}.entete-titres{gap:var(--e-s);flex-direction:column;min-width:0;display:flex}.surtitre{color:var(--c-texteAccent);white-space:nowrap;font-size:13px;font-weight:700}.titre{font:800 34px/1 var(--police-titre);text-transform:uppercase;white-space:nowrap;margin:0}.entete-actions{align-items:center;gap:var(--e-s);flex-wrap:wrap;display:flex}.bouton{height:var(--h-bouton);padding:0 var(--e-l);border-radius:var(--r-s);border:1px solid var(--c-primaire);background:var(--c-primaire);color:var(--c-surPrimaire);font:800 15px/1 var(--police-titre);letter-spacing:.04em;text-transform:uppercase;justify-content:center;align-items:center;gap:var(--e-s);white-space:nowrap;display:inline-flex}.bouton.secondaire{background:var(--c-surface);border-color:var(--c-trait);color:var(--c-texte)}.bouton.large{height:var(--h-champ);width:100%}.bouton:disabled{opacity:.6}.bouton.danger-contour{border-color:var(--c-dangerTrait);color:var(--c-danger);background:0 0}.bouton.danger{background:var(--c-dangerDoux);border-color:var(--c-dangerTrait);color:var(--c-danger)}.bouton.danger-contour:hover:not(:disabled),.bouton.danger:hover:not(:disabled){border-color:var(--c-danger)}.bouton.secondaire:hover:not(:disabled){border-color:var(--c-texteDoux)}.icone{width:var(--h-bouton);height:var(--h-bouton);border-radius:var(--r-s);border:1px solid var(--c-trait);background:var(--c-surface);color:var(--c-texte);flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icone:hover{border-color:var(--c-texteDoux)}.puces{gap:var(--e-s);flex-wrap:wrap;display:flex}.puce{height:var(--h-puce);padding:0 var(--e-l);border-radius:var(--r-plein);border:1px solid var(--c-trait);background:var(--c-fond);color:var(--c-texte);white-space:nowrap;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.puce[aria-pressed=true]{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-surAccent)}.puce:hover:not([aria-pressed=true]):not(:disabled){border-color:var(--c-texteDoux)}.puce:disabled{opacity:.45}.chiffres{gap:var(--e-m);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:0;display:grid}.chiffre{background:var(--c-surface);border:1px solid var(--c-trait);border-radius:var(--r-m);padding:var(--e-l);gap:var(--e-xs);flex-direction:column-reverse;display:flex}.chiffre dd{font:800 28px/1.1 var(--police-titre);white-space:nowrap;margin:0}.chiffre dt{color:var(--c-texteDoux);white-space:nowrap;font-size:13px}.legende{gap:var(--e-l);color:var(--c-texteDoux);flex-wrap:wrap;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.legende li{align-items:center;gap:var(--e-s);white-space:nowrap;display:inline-flex}.pastille{border:1px solid #0000;border-radius:4px;width:12px;height:12px}.pastille.paye{background:var(--c-okDoux);border-color:var(--c-ok)}.pastille.sur-place{background:var(--c-attentionDoux);border-color:var(--c-attention)}.pastille.indispo{background:var(--c-pris);border-color:var(--c-textePris)}.pastille.libre{border:1px dashed var(--c-texteDoux)}.zone{gap:var(--e-xl);flex-direction:column;flex:1;min-height:0;transition:opacity .15s;display:flex}.zone.attenue{opacity:.5;pointer-events:none}.cadre-grille{overscroll-behavior:contain;border:1px solid var(--c-trait);border-radius:var(--r-l);background:var(--c-surface);flex:1;min-height:240px;overflow:auto}.grille{-webkit-user-select:none;user-select:none;min-width:max-content;display:grid}.grille>.case{border-bottom:1px solid var(--c-trait);border-left:1px solid var(--c-trait);padding:var(--e-xs);min-width:0}.grille>.case.derniere{border-bottom:0}.grille>.tete.heure{z-index:3;background:var(--c-surface2)}.grille>.tete{z-index:2;height:48px;padding:0 var(--e-m);align-items:center;gap:var(--e-xs);background:var(--c-surface2);white-space:nowrap;font-weight:700;display:flex;position:sticky;top:0;overflow:hidden}.tete .type{color:var(--c-texteDoux);font-weight:400}.grille>.heure{z-index:1;background:var(--c-surface);color:var(--c-texteDoux);white-space:nowrap;font-variant-numeric:tabular-nums;border-left:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex;position:sticky;left:0}.bloc{border-radius:var(--r-s);width:100%;height:100%;padding:0 var(--e-m);justify-content:space-between;align-items:center;gap:var(--e-s);text-align:left;border:1px solid #0000;min-width:0;font-size:13px;font-weight:600;display:flex}.bloc .gauche{flex-direction:column;gap:2px;min-width:0;display:flex}.bloc .nom{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bloc .plage{white-space:nowrap;font-size:12px;font-weight:400}.bloc .droite{white-space:nowrap;text-align:right;flex:none}.bloc.paye{background:var(--c-okDoux);color:var(--c-ok)}.bloc.sur-place{background:var(--c-attentionDoux);color:var(--c-attention)}.bloc.indispo{background:var(--c-pris);color:var(--c-textePris)}.bloc.libre{border:1px dashed var(--c-trait);color:var(--c-texteDoux);touch-action:none;background:0 0}.bloc.libre .plus{color:var(--c-texteAccent);font-size:18px;font-weight:700;line-height:1}.bloc.libre:hover{border-color:var(--c-texteAccent);color:var(--c-texte)}.bloc.paye:hover,.bloc.sur-place:hover,.bloc.indispo:hover{border-color:currentColor}.bloc.libre.choisi{border-style:solid;border-color:var(--c-texteAccent);background:var(--c-accentDoux);color:var(--c-texteAccent)}.vide{border:1px dashed var(--c-trait);border-radius:var(--r-l);padding:var(--e-xxl) var(--e-xl);align-items:center;gap:var(--e-m);text-align:center;flex-direction:column;display:flex}.voile{z-index:10;background:var(--c-voile);padding:var(--e-l);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fenetre{width:100%;max-width:480px;max-height:calc(100vh - 2 * var(--e-l));background:var(--c-surface);border:1px solid var(--c-trait);border-radius:var(--r-l);padding:var(--e-xl);gap:var(--e-l);flex-direction:column;display:flex;overflow-y:auto}.fenetre.large{max-width:520px}.fenetre-tete{justify-content:space-between;align-items:flex-start;gap:var(--e-m);display:flex}.fenetre-tete>div{gap:var(--e-xs);flex-direction:column;min-width:0;display:flex}.fenetre-titre{font:800 26px/1.05 var(--police-titre);text-transform:uppercase;margin:0}.groupe{gap:var(--e-s);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.etiquette{color:var(--c-texteDoux);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:0;font-size:12px;font-weight:700}.deux-colonnes{gap:var(--e-m);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.champ{height:var(--h-champ);border-radius:var(--r-s);border:1px solid var(--c-trait);background:var(--c-fond);width:100%;color:var(--c-texte);padding:0 var(--e-m);font-weight:600}.champ::placeholder{color:var(--c-texteDoux);font-weight:400}.options{gap:var(--e-s);flex-direction:column;display:flex}.option{width:100%;padding:var(--e-l);border-radius:var(--r-m);border:1px solid var(--c-trait);background:var(--c-fond);color:var(--c-texte);align-items:flex-start;gap:var(--e-xs);text-align:left;flex-direction:column;font-size:15px;font-weight:700;display:flex}.option span{color:var(--c-texteDoux);font-size:13px;font-weight:400}.option:hover{border-color:var(--c-texteAccent)}.lignes{gap:var(--e-m);flex-direction:column;margin:0;display:flex}.ligne{justify-content:space-between;align-items:baseline;gap:var(--e-l);display:flex}.ligne dt{color:var(--c-texteDoux);white-space:nowrap}.ligne dd{white-space:nowrap;text-align:right;margin:0;font-weight:700}.ligne dd.ok{color:var(--c-ok)}.ligne dd.attention{color:var(--c-attention)}.actions{justify-content:flex-end;gap:var(--e-s);flex-wrap:wrap;display:flex}.actions.pleine>.bouton{flex:1}.empile{gap:var(--e-s);flex-direction:column;display:flex}.erreur{padding:var(--e-m);border-radius:var(--r-s);background:var(--c-attentionDoux);color:var(--c-attention);margin:0;font-size:13px;font-weight:600}.pied{justify-content:space-between;align-items:center;gap:var(--e-m);padding-top:var(--e-l);border-top:1px solid var(--c-trait);display:flex}.pied .total{gap:var(--e-xs);flex-direction:column;display:flex}.pied .total b{font:800 24px/1 var(--police-titre);white-space:nowrap}.toast{right:var(--e-xl);bottom:var(--e-xl);z-index:20;max-width:min(420px, calc(100vw - 2 * var(--e-xl)));background:var(--c-texte);color:var(--c-fond);border-radius:var(--r-m);padding:var(--e-m) var(--e-l);font-weight:700;position:fixed}@media (width<=800px){.page{flex-direction:column;height:auto;min-height:100vh}.contenu{overflow:visible}.cadre-grille{flex:none;height:70vh}.laterale{align-items:center;gap:var(--e-m);width:auto;height:auto;padding:var(--e-m) var(--e-l);border-right:0;border-bottom:1px solid var(--c-trait);flex-flow:wrap;position:static}.marque{padding:0}.lieu-actif{padding:var(--e-s) var(--e-m)}.navigation{flex-direction:row;margin-left:auto}.contenu{padding:var(--e-l);gap:var(--e-l)}.titre{font-size:28px}.chiffres{gap:var(--e-s);grid-template-columns:repeat(3,minmax(0,1fr))}.chiffre{padding:var(--e-s)}.chiffre dd{font-size:20px}.chiffre dt{font-size:11px}.fenetre{padding:var(--e-l)}.toast{left:var(--e-l);right:var(--e-l);bottom:var(--e-l)}}.grille>.case.ferme{background:var(--c-pris);justify-content:center;align-items:flex-start;display:flex}.ferme-message{top:calc(48px + var(--e-xxl));margin-top:var(--e-xxl);align-items:center;gap:var(--e-s);text-align:center;padding:0 var(--e-l);flex-direction:column;display:flex;position:sticky}.ferme-message b{font:800 24px/1 var(--police-titre);text-transform:uppercase;color:var(--c-textePris);white-space:nowrap}.gerant{align-items:center;column-gap:var(--e-m);row-gap:var(--e-xs);padding:0 var(--e-m);grid-template-columns:auto minmax(0,1fr);margin-top:auto;display:grid}.avatar{border-radius:var(--r-plein);background:var(--c-accentDoux);width:32px;height:32px;color:var(--c-texteAccent);font:800 14px/1 var(--police-titre);grid-row:span 2;justify-content:center;align-items:center;display:flex}.gerant-nom{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.lien-discret,.lien{color:var(--c-texteDoux);white-space:nowrap;text-align:left;background:0 0;border:0;justify-self:start;padding:0;font-size:13px;font-weight:600}.lien-discret:hover{color:var(--c-texte);text-decoration:underline}.lien{color:var(--c-texteAccent);font-weight:700}.lien:hover{text-decoration:underline}.accueil{min-height:100vh;display:flex}.accueil-cote{background:var(--c-surface);border-right:1px solid var(--c-trait);width:480px;padding:var(--e-xxl);justify-content:space-between;gap:var(--e-xl);flex-direction:column;flex:none;display:flex}.marque.grande{padding:0;font-size:34px}.accueil-texte{gap:var(--e-xl);flex-direction:column;display:flex}.accueil-titre{font:800 48px/1 var(--police-titre);text-transform:uppercase;margin:0}.atouts{gap:var(--e-m);flex-direction:column;margin:0;padding:0;font-size:15px;list-style:none;display:flex}.atouts li{gap:var(--e-m);display:flex}.atouts b{width:16px;color:var(--c-texteAccent);flex:none}.accueil-centre{min-width:0;padding:var(--e-xxl);flex:1;justify-content:center;align-items:center;display:flex}.carte-accueil{background:var(--c-surface);border:1px solid var(--c-trait);border-radius:var(--r-l);width:100%;max-width:480px;padding:var(--e-xxl);gap:var(--e-l);flex-direction:column;display:flex}.carte-accueil.large{max-width:560px;min-height:640px}.titre.long{white-space:normal}.doux.grand{font-size:15px}.centre{text-align:center}.champ.grand{height:48px;font-size:15px}.bouton.grand{flex:none;width:100%;height:48px;font-size:17px}.icone.grande{width:44px;height:44px}.champ-avec-bouton{align-items:center;display:flex;position:relative}.champ-avec-bouton .champ{padding-right:88px}.bouton-champ,.suffixe{right:var(--e-xs);height:40px;padding:0 var(--e-m);border-radius:var(--r-s);color:var(--c-texteDoux);white-space:nowrap;background:0 0;border:0;align-items:center;font-size:13px;font-weight:600;display:flex;position:absolute}.bouton-champ:hover{color:var(--c-texte)}.suffixe{pointer-events:none;font-weight:700}.champ-avec-bouton:has(.suffixe) .champ{padding-right:48px}.bascule{justify-content:center;align-items:baseline;gap:var(--e-xs);display:flex}.mise-en-route{align-items:center;gap:var(--e-xl);min-height:100vh;padding:var(--e-xl) var(--e-xxl) var(--e-xxl);flex-direction:column;display:flex}.mise-en-route-haut{justify-content:space-between;align-items:center;gap:var(--e-l);width:100%;display:flex}.mise-en-route-haut .marque{padding:0}.ligne-gerant{gap:var(--e-l);margin:0;padding:0;display:flex}.etapes{align-items:center;gap:var(--e-m);display:flex}.etapes-barre{gap:var(--e-s);flex-direction:column;flex:1;display:flex}.progression{gap:var(--e-xs);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.progression i{background:var(--c-trait);border-radius:2px;height:4px}.progression i.faite{background:var(--c-texteAccent)}.ressort{flex:1}.facultatif{text-transform:none;letter-spacing:0;font-weight:600}.terrains{gap:var(--e-s);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.terrain-ligne{align-items:center;gap:var(--e-m);padding:var(--e-m);border:1px solid var(--c-trait);border-radius:var(--r-m);background:var(--c-fond);display:flex}.terrain-texte{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.terrain-texte b,.terrain-texte span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.encart{gap:var(--e-l);padding:var(--e-l);border:1px solid var(--c-trait);border-radius:var(--r-m);background:var(--c-fond);flex-direction:column;display:flex}.encart .champ,.encart .puce{background:var(--c-surface)}.encart .puce[aria-pressed=true]{background:var(--c-accent)}.jours{gap:var(--e-xs);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.jours .puce{justify-content:center;height:40px;padding:0}.pastille-ok{border-radius:var(--r-plein);background:var(--c-okDoux);width:56px;height:56px;color:var(--c-ok);justify-content:center;align-items:center;display:flex}.attente{min-height:100vh;padding:var(--e-xxl);justify-content:center;align-items:center;display:flex}@media (width<=800px){.accueil{flex-direction:column}.accueil-cote{border-right:0;border-bottom:1px solid var(--c-trait);width:auto;padding:var(--e-l)}.marque.grande{font-size:24px}.accueil-texte{display:none}.accueil-centre,.attente{padding:var(--e-l);align-items:flex-start}.carte-accueil{padding:var(--e-xl) var(--e-l)}.carte-accueil.large{min-height:0}.mise-en-route{padding:var(--e-l);gap:var(--e-l)}.gerant{margin-top:0;padding:0}.avatar{display:none}}
