:root{--font-dense: 12px;--font-base: 16px;--font-md: 20px;--font-lg: 24px;--font-xl: 28px;--touch-min: 44px;--color-bg: #fbfaf7;--color-surface: #ffffff;--color-text: #1c1a17;--color-text-doux: #4a4640;--color-primary: #0f5b52;--color-primary-contrast: #ffffff;--color-border: #55504a;--color-error: #96201d;--color-weekend: #ece7dd;--color-selected-row: #ffd9b3;--color-total-bg: #f0ece4;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--width-form: 420px;--width-form-etroit: 360px;--form-bordure: 1px solid var(--color-border);--form-rayon: 8px;--form-fond: var(--color-surface);--form-remplissage: var(--space-4);--col-nom: 200px;--col-hsem: 64px;--col-total: 88px;--palette-rangees: 3;--palette-max-h: calc( var(--palette-rangees) * var(--touch-min) + (var(--palette-rangees) - 1) * var(--space-1) + var(--space-2) )}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--font-base);line-height:1.5;color:var(--color-text);background:var(--color-bg)}button,select,input{font-size:var(--font-base);min-height:var(--touch-min);min-width:var(--touch-min);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text)}button.primary{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary);cursor:pointer}button.primary:disabled{opacity:1;background:var(--color-border);border-color:var(--color-border);color:var(--color-primary-contrast);cursor:not-allowed}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.error-message{color:var(--color-error);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}table.grille{border-collapse:collapse;width:100%;font-size:var(--font-dense);background:var(--color-surface)}table.grille th,table.grille td{border:1px solid var(--color-border);padding:var(--space-1);text-align:center;min-width:var(--touch-min)}table.grille th.jour,table.grille td.jour{padding:0}table.grille td.weekend,table.grille th.weekend{background-color:var(--color-weekend);background-image:repeating-linear-gradient(-45deg,rgba(20,33,61,.06) 0,rgba(20,33,61,.06) 1px,transparent 1px,transparent 6px)}table.grille td .cellule{background:transparent;border:0;margin:0;padding:0;width:100%;min-width:var(--touch-min);min-height:var(--touch-min);font:inherit;color:inherit;text-align:center;cursor:pointer}table.grille td .cellule:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px}table.grille tr.ligne-selectionnee>*{background-color:var(--color-selected-row);box-shadow:inset 0 4px 0 0 var(--color-primary),inset 0 -4px 0 0 var(--color-primary)}table.grille tr.ligne-selectionnee>*:first-child{box-shadow:inset 4px 0 0 0 var(--color-primary),inset 0 4px 0 0 var(--color-primary),inset 0 -4px 0 0 var(--color-primary)}.palette-tags .tag-prorata{margin-left:.15em;font-weight:700}.infobulle-type{position:fixed;z-index:10;pointer-events:none;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);color:var(--color-text);font-size:var(--font-base);white-space:nowrap;box-shadow:0 2px 6px #1c1a1740}.bande-saisie{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2)}.palette{flex:1 1 auto;min-width:0}.ligne-action{margin-bottom:var(--space-2)}.palette-tags{display:flex;flex-wrap:wrap;gap:var(--space-1);list-style:none;margin:0;padding:var(--space-1);max-height:var(--palette-max-h);overflow-y:auto}.palette-message{margin:0;padding:var(--space-1)}.palette-tags .tag{min-width:var(--touch-min);min-height:var(--touch-min);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-text);font:inherit;cursor:pointer}.palette-tags .tag-actif{background:var(--color-primary);color:var(--color-primary-contrast);outline:3px solid var(--color-text);outline-offset:1px}.palette-tags .tag-effacer{border-style:dashed;border-width:2px}table.grille th.groupe{text-align:left;background:var(--color-total-bg)}table.grille tr.ligne-total{background-color:var(--color-total-bg);font-weight:600}table.grille .fige-nom,table.grille .fige-hsem,table.grille .fige-total-1,table.grille .fige-total-2,table.grille .fige-total-3{position:sticky;z-index:2;background-color:var(--color-bg)}table.grille tr.ligne-total .fige-nom,table.grille tr.ligne-total .fige-total-1,table.grille tr.ligne-total .fige-total-2,table.grille tr.ligne-total .fige-total-3,table.grille thead .fige-nom,table.grille thead .fige-hsem,table.grille thead .fige-total-1,table.grille thead .fige-total-2,table.grille thead .fige-total-3{background-color:var(--color-total-bg)}table.grille .fige-nom{left:0;width:var(--col-nom);min-width:var(--col-nom);max-width:var(--col-nom)}table.grille .fige-hsem{left:var(--col-nom);width:var(--col-hsem);min-width:var(--col-hsem);max-width:var(--col-hsem);box-shadow:1px 0 0 var(--color-border)}table.grille .fige-total-3{right:0;width:var(--col-total);min-width:var(--col-total);max-width:var(--col-total)}table.grille .fige-total-2{right:var(--col-total);width:var(--col-total);min-width:var(--col-total);max-width:var(--col-total)}table.grille .fige-total-1{right:calc(var(--col-total) * 2);width:var(--col-total);min-width:var(--col-total);max-width:var(--col-total);box-shadow:-1px 0 0 var(--color-border)}.defilement-grille{overflow-x:auto;container-type:inline-size}@container (max-width: 900px){table.grille .fige-nom,table.grille .fige-hsem,table.grille .fige-total-1,table.grille .fige-total-2,table.grille .fige-total-3{position:static;width:auto;min-width:var(--touch-min);max-width:none;box-shadow:none}}table.liste{border-collapse:collapse;width:100%;margin-bottom:var(--space-2)}table.liste th,table.liste td{border:1px solid var(--color-border);padding:var(--space-1) var(--space-2);text-align:left;vertical-align:middle}table.liste thead th{background:var(--color-total-bg)}table.liste tbody td{min-height:var(--touch-min)}nav.principale{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-top:var(--space-2)}nav.principale a{display:inline-flex;align-items:center;min-height:var(--touch-min);padding:0 var(--space-3);border-radius:6px;color:var(--color-primary);text-decoration:underline}nav.principale a[aria-current=page]{font-weight:700;text-decoration-thickness:3px;text-underline-offset:4px;background:var(--color-total-bg)}button[aria-current=true]{font-weight:700;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px;background:var(--color-total-bg)}header.bandeau{padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.bandeau-ligne{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-4)}.bandeau-organisation{margin:0;color:var(--color-text-doux);font-weight:600}h1{font-size:var(--font-xl);margin:0}h2{font-size:var(--font-lg)}h3{font-size:var(--font-md)}main{padding:var(--space-4) var(--space-2)}.pile-large{display:grid;gap:var(--space-5)}.formulaire{display:grid;gap:var(--space-3);max-width:var(--width-form);border:var(--form-bordure);border-radius:var(--form-rayon);background:var(--form-fond);padding:var(--form-remplissage)}.formulaire--etroit{max-width:var(--width-form-etroit)}.formulaire-titre{margin:0}.formulaire-ligne .formulaire-titre{flex-basis:100%}.formulaire-champ{display:grid;gap:var(--space-1)}.formulaire-groupe{display:grid;gap:var(--space-3)}.formulaire-case{display:flex;align-items:center;gap:var(--space-2)}.formulaire input:not([type=checkbox]){width:100%}.formulaire-ligne{display:flex;gap:var(--space-2);align-items:end;flex-wrap:wrap;width:fit-content;max-width:100%;border:var(--form-bordure);border-radius:var(--form-rayon);background:var(--form-fond);padding:var(--form-remplissage)}.etat-vide{margin:0;padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--form-rayon);background:var(--color-surface);color:var(--color-text-doux);max-width:var(--width-form)}.liste-simple>li{margin-bottom:var(--space-2)}.champ-annee{width:100px}table.grille tr.ligne-total th.fige-nom,table.grille td.fige-nom{text-align:left}.consultation{display:flex;flex-direction:column;gap:var(--space-5)}.consultation-actions{display:flex;gap:var(--space-3)}.consultation-identite{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:var(--space-4)}.consultation-champs{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-4);margin:var(--space-3) 0 0}.consultation-champs dt{color:var(--color-text-doux)}.consultation-champs dd{margin:0}.consultation-historique{display:flex;flex-direction:column;gap:var(--space-5)}.attente{color:var(--color-text-doux);padding:var(--space-4)}.calendrier-navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.calendrier-navigation h3{margin:0}.defilement-calendrier{overflow-x:auto}.calendrier-grille{width:100%;border-collapse:collapse;background:var(--color-surface)}.calendrier-grille th,.calendrier-grille td{border:1px solid var(--color-border);padding:var(--space-2);text-align:left;vertical-align:top}.calendrier-grille thead th{background:var(--color-total-bg)}.calendrier-grille .jour-numero{display:block;color:var(--color-text-doux)}.calendrier-grille .jour-code{display:block;font-weight:700}.calendrier-grille .jour-saisi{background:var(--color-total-bg)}.calendrier-grille .jour-hors-mois{background:var(--color-bg)}.calendrier-grille .semaine-total{background:var(--color-total-bg);font-weight:700;text-align:right;white-space:nowrap}.calendrier-grille .semaine-general{border-left:2px solid var(--color-text)}.totaux-mois dl{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin:var(--space-2) 0 0}.totaux-mois dt{color:var(--color-text-doux)}.totaux-mois dd{margin:0 var(--space-4) 0 0;font-weight:700}.totaux-mois h3,.totaux-par-type h3{margin:0}
