@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--primary:oklch(50% .14 200);--primary-hover:oklch(43% .15 200);--primary-soft:oklch(96% .02 200);--primary-ring:oklch(50% .14 200/.18);--success:oklch(69% .155 160);--success-hover:oklch(60% .16 160);--warning:oklch(74% .16 70);--warning-soft:oklch(96% .05 78);--warning-text:oklch(42% .12 65);--danger:oklch(63% .22 25);--danger-hover:oklch(55% .22 25);--danger-soft:oklch(95% .035 25);--danger-text:oklch(42% .16 25);--bg-color:oklch(98.5% .005 200);--card-bg:oklch(99.8% .002 200);--hover-bg:oklch(95.5% .008 200);--text-main:oklch(27% .018 200);--text-strong:oklch(21% .02 200);--text-muted:oklch(55.5% .014 200);--border-color:oklch(91.5% .006 200);--shadow-sm:0 2px 4px -1px oklch(27% .018 200/.06);--shadow-md:0 4px 16px -2px oklch(27% .018 200/.1);--topbar-h:56px}*{box-sizing:border-box}body{background:var(--bg-color);color:var(--text-main);margin:0;font-family:Inter,system-ui,sans-serif;line-height:1.5}.app-topbar{z-index:10;height:var(--topbar-h);-webkit-backdrop-filter:saturate(140%)blur(8px);backdrop-filter:saturate(140%)blur(8px);border-bottom:1px solid var(--border-color);background:oklch(99.8% .002 200/.92);align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.app-topbar h1{color:var(--text-strong);margin:0;font-size:15px;font-weight:700}.page{max-width:1200px;margin:0 auto;padding:32px 24px 80px}.card{background:var(--card-bg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:12px;margin-bottom:24px;padding:20px 24px}.card h2{color:var(--text-strong);margin:0 0 16px;font-size:16px;font-weight:600}.card p.hint{color:var(--text-muted);margin:-8px 0 16px;font-size:13px}.form-row{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700}input,select{border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-main);border-radius:6px;outline:none;padding:8px 10px;font-family:inherit;font-size:14px;transition:border-color .15s}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring)}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;font-family:inherit;font-size:14px;font-weight:600;transition:background-color .15s,transform .1s,box-shadow .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;padding:11px 22px}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-outline{background:var(--card-bg);color:var(--text-main);border:1px solid var(--border-color);padding:9px 18px}.btn-outline:hover:not(:disabled){background:var(--hover-bg)}.table-wrap{border:1px solid var(--border-color);border-radius:10px;width:100%;overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:100%;min-width:560px}th,td{text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap;padding:9px 12px;font-size:13px}th{background:var(--bg-color);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--hover-bg)}td.cell-astreinte{color:var(--primary);font-weight:700}td.cell-repos{color:var(--text-muted);font-style:italic}tr.ligne-total td{border-top:2px solid var(--border-color);font-weight:700}td.cell-vide{color:var(--text-muted)}.badge{border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-success{background:color-mix(in oklch, var(--success) 15%, white);color:var(--success-hover)}.badge-warning{background:color-mix(in oklch, var(--warning) 18%, white);color:var(--warning-text)}.badge-danger{background:color-mix(in oklch, var(--danger) 15%, white);color:var(--danger-hover)}.stat-row{flex-wrap:wrap;gap:24px;margin-bottom:16px;display:flex}.stat{flex-direction:column;gap:2px;display:flex}.stat .value{color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.stat .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.alert-box{border-radius:8px;margin-bottom:0;padding:16px 20px}.alert-box .alert-title{margin-bottom:4px;font-size:16px;font-weight:700}.alert-box .alert-desc{opacity:.85;margin:0;font-size:14px}.alert-box ul{margin:12px 0 0;padding-left:20px;font-size:13px}.alert-warning{background-color:var(--warning-soft);border:1px solid var(--warning)}.alert-warning .alert-title,.alert-warning .alert-desc{color:var(--warning-text)}.alert-danger{background-color:var(--danger-soft);border:1px solid var(--danger)}.alert-danger .alert-title,.alert-danger .alert-desc{color:var(--danger-text)}.empty-hint{color:var(--text-muted);text-align:center;padding:24px 0;font-size:13px}@media (width<=600px){.page{padding:20px 16px 60px}.form-row{flex-direction:column;align-items:stretch}}.btn-lien{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 0 0 4px;font-size:1em;line-height:1}td.cell-change{box-shadow:inset 0 0 0 2px var(--primary)}.etapes{top:var(--topbar-h);z-index:9;-webkit-backdrop-filter:saturate(140%)blur(8px);backdrop-filter:saturate(140%)blur(8px);border-bottom:1px solid var(--border-color);background:oklch(99.8% .002 200/.94);justify-content:center;align-items:center;gap:8px;padding:10px 24px;display:flex;position:sticky;overflow-x:auto}.etape{border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-muted);font:inherit;cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 8px;font-size:14px;font-weight:600;display:inline-flex}.etape .num{background:var(--hover-bg);border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;display:inline-grid}.etape.fait{color:var(--text-main)}.etape.fait .num{background:var(--success);color:#fff}.etape.actif{background:var(--primary);border-color:var(--primary);color:#fff}.etape.actif .num{color:var(--primary);background:#fff}.etapes .sep{color:var(--text-muted)}.panneau[hidden],.onglet-panneau[hidden]{display:none}.intro{border:1px solid var(--primary-ring);background:var(--primary-soft);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;padding:18px 24px;display:flex}.intro h2{color:var(--text-strong);margin:0 0 8px;font-size:16px}.intro ol{margin:0;padding-left:20px;font-size:14px}.nav-bas{justify-content:space-between;align-items:center;margin:8px 0 24px;display:flex}.btn-lg{padding:12px 26px;font-size:15px}.btn-petit{padding:4px 10px;font-size:12px}.btn-lien-texte{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;margin-left:8px;padding:0;font-size:13px;text-decoration:underline}.titre-section{color:var(--text-strong);margin:8px 0 12px;font-size:15px}.carte-pliable summary{cursor:pointer;color:var(--text-strong);font-weight:600}.carte-pliable>:not(summary){margin-top:16px}.resume-config{color:var(--text-muted);margin:-4px 0 16px;font-size:14px}.alerte-simple{background:var(--warning-soft);color:var(--warning-text);border-radius:8px;padding:10px 14px;font-size:14px}.options summary,.regles-actives summary{cursor:pointer;color:var(--primary);margin-top:16px;font-size:14px}.facultatif{background:var(--hover-bg);color:var(--text-muted);vertical-align:middle;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600}.groupe-regles{border-top:1px solid var(--border-color);margin-top:28px;padding-top:24px}.groupe-regles:first-child{border-top:0;margin-top:0;padding-top:0}.groupe-regles h3{color:var(--text-strong);margin:0 0 4px;font-size:15px}.groupe-regles>.hint,.groupe-regles .form-group .hint{color:var(--text-muted);margin:0 0 12px;font-size:13px}.groupe-regles .form-group{flex:220px;min-width:220px;max-width:320px}.groupe-regles .form-group label{letter-spacing:0;text-transform:none;color:var(--text-strong);font-size:13px;font-weight:600}.groupe-regles .form-group .hint{margin:0;font-size:12px}.case{cursor:pointer;align-items:flex-start;gap:10px;margin-top:10px;font-size:14px;display:flex}.case input{margin-top:3px}#table-agents td,#table-historique td{vertical-align:top;padding-top:10px;padding-bottom:10px}#table-agents input[type=text]{width:12rem}.col-indispo{min-width:18rem}.puces{flex-wrap:wrap;gap:6px;display:flex}.rien{color:var(--text-muted);font-size:13px}.ajout-periode{margin-top:6px}.ajout-periode summary{cursor:pointer;color:var(--primary);font-size:12px}.indispo-ajout{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.indispo-ajout input[type=date]{width:9.5rem}.onglets{border-bottom:1px solid var(--border-color);gap:4px;margin:8px 0 20px;display:flex;overflow-x:auto}.onglet{color:var(--text-muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 16px;font-size:14px;font-weight:600}.onglet[aria-selected=true]{color:var(--primary);border-bottom-color:var(--primary)}@media (width<=700px){.intro{flex-direction:column}.page{padding:20px 14px 60px}.groupe-regles .form-group{max-width:none}}.card .groupe-regles p.hint{margin:4px 0 12px}.card .groupe-regles .form-group p.hint{margin:0}.card .groupe-regles #resume-periode{margin:10px 0 0}.groupe-regles .form-group label{align-items:flex-end;min-height:3em;display:flex}.groupe-regles .form-row{align-items:stretch}.actions-resultat{flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0 20px;display:flex}.actions-resultat .hint{color:var(--text-muted);margin:0;font-size:13px}.grille{max-height:70vh}.grille-planning{border-collapse:separate;border-spacing:0;font-size:12px}.grille-planning th,.grille-planning td{border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);text-align:center;white-space:nowrap;padding:0}.grille-planning thead th{z-index:3;background:var(--card-bg);color:var(--text-muted);text-transform:none;letter-spacing:0;height:24px;font-size:11px;font-weight:600;position:sticky;top:0}.grille-planning thead tr:nth-child(2) th{top:24px}.grille-planning th.groupe{text-align:left;color:var(--text-strong);border-left:1px solid var(--border-color);padding-left:6px}.grille-planning .col-temps{min-width:26px}.grille-planning th.ferie{background:var(--warning-soft);color:var(--warning-text)}.grille-planning .agent{z-index:2;background:var(--card-bg);text-align:left;min-width:11rem;max-width:11rem;color:var(--text-strong);text-overflow:ellipsis;padding:0 10px;font-weight:600;position:sticky;left:0;overflow:hidden}.grille-planning thead .agent{z-index:4}.grille-planning .total{z-index:2;background:var(--card-bg);min-width:3.2rem;color:var(--text-strong);box-shadow:2px 0 0 var(--border-color);padding:0 6px;font-weight:700;position:sticky;left:11rem}.grille-planning thead .total{z-index:4}.grille-planning td.c{min-width:26px;height:28px;font-weight:700}.c-astreinte{background:var(--primary);color:#fff}.c-repos{color:oklch(40% .1 230);background:oklch(93% .04 230)}.c-absent{background:var(--hover-bg);color:var(--text-muted)}.c-hors{background:repeating-linear-gradient(45deg, var(--hover-bg), var(--hover-bg) 3px, transparent 3px, transparent 6px)}.grille-planning td.cell-change{outline:3px solid var(--warning);outline-offset:-3px}.grille-planning tfoot td,.grille-planning tfoot th{background:var(--hover-bg);border-top:2px solid var(--border-color);font-weight:700;position:sticky;bottom:0}.grille-planning tfoot .agent,.grille-planning tfoot .total{z-index:3}.legende{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px 14px;margin:4px 0 10px;font-size:12px;display:flex}.pastille{border:1px solid var(--border-color);border-radius:4px;place-items:center;width:20px;height:20px;margin-right:4px;font-size:11px;font-weight:700;display:inline-grid}.grille-planning th.agent{text-transform:none;letter-spacing:0;font-size:12px}.palette{flex-wrap:wrap;gap:6px;margin:6px 0 10px;display:flex}.pinceau{border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-strong);font:inherit;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px}.pinceau[aria-checked=true]{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary);font-weight:700}.grille-pinceau{-webkit-user-select:none;user-select:none;max-height:50vh}.case-pinceau{cursor:crosshair}.col-remplir{cursor:pointer}.col-remplir:hover{background:var(--hover-bg)}.c-non{background:var(--warning-soft);color:var(--warning-text)}.c-present{color:oklch(38% .1 150);background:oklch(94% .05 150)}.grille-planning td.c-impose{position:relative}.grille-planning td.c-impose:after{content:"🔒";font-size:8px;line-height:1;position:absolute;top:0;right:0}.c-besoin{background:var(--primary);color:#fff}.c-besoin-defaut{color:var(--text-muted);font-weight:400}.ligne-hab{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;display:flex}.ligne-hab input[type=number]{width:4.5rem}.ligne-hab input[type=text]{width:10rem}.groupe-regles h4{margin:16px 0 4px}.grille-planning td.c-manque{background:var(--danger-soft,oklch(93% .06 25));color:var(--danger-text,oklch(40% .15 25))}.ecart-fort{color:var(--warning-text);font-weight:700}.liste-remplacants{padding-left:18px}.liste-remplacants li{margin:6px 0}.regime{flex-direction:column;gap:8px;margin-top:8px;font-size:13px;display:flex}.regime input[type=number],.regime select{width:6rem;margin-left:6px}.aide{border:1px solid var(--primary);background:var(--card-bg);width:18px;height:18px;color:var(--primary);font:inherit;cursor:help;vertical-align:middle;text-transform:none;border-radius:50%;place-items:center;margin-left:6px;padding:0;font-size:11px;font-weight:700;line-height:1;display:inline-grid;position:relative}.aide:hover,.aide:focus-visible{background:var(--primary);color:#fff}.aide:after{content:attr(data-aide);z-index:30;background:var(--text-strong);color:#fff;text-align:left;white-space:normal;border-radius:8px;width:min(300px,80vw);padding:10px 12px;font-size:13px;font-weight:400;line-height:1.4;display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-30%);box-shadow:0 6px 20px oklch(0% 0 0/.25)}.aide:hover:after,.aide:focus:after{display:block}.label-ligne{align-items:center;min-height:3em;display:flex}.label-ligne label{margin:0}.lead{margin:4px 0 16px}.lead h2{color:var(--text-strong);margin:0 0 4px;font-size:22px}.lead p{color:var(--text-muted);max-width:60ch;margin:0}.etape small{color:var(--text-muted);font-size:11px;font-weight:400;display:block}.etape.actif small{color:inherit;opacity:.85}@media (width<=760px){.etape small{display:none}}.lecture-rapide{border:1px solid var(--border-color);background:var(--hover-bg);border-radius:10px;margin:0 0 20px;padding:14px 18px}.lecture-rapide h3{margin:0 0 8px}.lecture-rapide ul{margin:0;padding:0;list-style:none}.lecture-rapide li{padding:3px 0 3px 26px;position:relative}.lecture-rapide li:before{font-weight:700;position:absolute;left:0}.lecture-rapide li.ok:before{content:"✔";color:oklch(50% .15 150)}.lecture-rapide li.attention:before{content:"⚠";color:var(--warning-text)}.titre-actions{margin:16px 0 6px}.glossaire dt{color:var(--text-strong);margin-top:10px;font-weight:700}.glossaire dd{color:var(--text-muted);margin:2px 0 0}.bandeau-test{background:var(--warning-soft);color:var(--warning-text);border-bottom:1px solid var(--border-color);text-align:center;padding:8px 24px;font-size:13px}.bandeau-test a{color:inherit;margin-left:8px;font-weight:700}.erreur-champ{color:var(--danger);flex-basis:100%;font-size:13px}.ligne-hab input[aria-invalid=true]{border-color:var(--danger)}.ligne-zone{flex-wrap:wrap;align-items:center;gap:8px 14px;margin:8px 0;display:flex}.ligne-zone input[type=text]{width:15rem}.ligne-zone input[type=number]{width:5rem;margin-left:6px}.app-topbar .slogan{border-left:1px solid var(--border-color);color:var(--text-muted);margin-left:12px;padding-left:12px;font-size:13px}@media (width<=760px){.app-topbar .slogan{display:none}}
