:root{--ink:#18332f;--muted:#5c706b;--accent:#176b58;--line:#d9e3de;--paper:#f5f7f3}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,sans-serif}a{color:var(--accent);text-underline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ca812b;outline-offset:3px}header{background:#fff;border-bottom:1px solid var(--line);padding:20px 5%;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:750;color:var(--ink)}.brand-icon{display:grid;place-items:center;background:var(--accent);color:white;border-radius:12px;width:48px;height:48px}.brand small{display:block;color:var(--muted);font-size:12px;font-weight:500}nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap}nav a{font-size:14px;text-decoration:none}nav form{margin:0}main{max-width:1180px;margin:auto;padding:44px 28px;min-height:75vh}h1{font-size:clamp(28px,4vw,40px);line-height:1.2;margin:8px 0 18px;font-weight:700;letter-spacing:-1px}h2{font-size:21px;line-height:1.35}h3{font-size:18px}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:750;color:var(--accent)}.heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:28px}.heading form{min-width:170px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:20px}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:26px;margin-bottom:20px}.notice{background:#e9f0ea;border-radius:14px;padding:22px 28px;margin-top:28px}.notice h2{margin-top:0}.notice p{margin-bottom:0}.login{max-width:430px;margin:25px auto}.login button{width:100%;margin-top:24px}label{display:block;font-size:14px;font-weight:650;margin:14px 0 7px}input,select{font:inherit;width:100%;min-height:46px;border:1px solid #96aaa3;border-radius:8px;background:white;padding:9px 12px}button,.button{display:inline-block;background:var(--accent);color:#fff;padding:11px 18px;border:1px solid var(--accent);border-radius:8px;cursor:pointer;font:600 14px/1.5 system-ui;text-decoration:none;min-height:44px}.secondary{background:white;color:var(--accent)}.heading button{margin-top:9px}.error{background:#fff0ee;color:#9a2424;padding:12px;border-radius:8px}.small{font-size:13px}.badge{font-size:12px;color:var(--accent);background:#e9f2ed;padding:4px 10px;border-radius:20px}.sites{padding:0;list-style:none}.sites li{padding:8px 0}.dot{display:inline-block;width:8px;height:8px;background:var(--accent);border-radius:50%;margin-right:12px}dl{display:grid;grid-template-columns:200px 1fr;gap:10px}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}footer{border-top:1px solid var(--line);padding:20px 5%;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.skip{position:absolute;top:-100px}.skip:focus{top:0;background:white;padding:10px;z-index:2}@media(max-width:600px){header{padding:16px 20px}nav{gap:12px}main{padding:28px 18px}.heading{display:block}.heading form{margin:20px 0}.card{padding:22px}dl{grid-template-columns:1fr;gap:3px}dd{margin-bottom:12px}}

/* Phase 2 : tableau de gestion */
.month-nav{display:grid;grid-template-columns:repeat(12,minmax(80px,1fr));gap:6px;margin:0 0 26px;overflow-x:auto;padding-bottom:6px}.month-nav a{border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px;text-decoration:none;text-align:center;white-space:nowrap}.month-nav a[aria-current=page]{background:var(--accent);color:#fff;border-color:var(--accent)}.month-nav small{display:block}.calendar-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.legend{display:flex;gap:8px}.calendar-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}.calendar-table,.comparison-table{border-collapse:collapse;width:100%}.calendar-table{min-width:960px}.calendar-table th,.calendar-table td,.comparison-table th,.comparison-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:10px;vertical-align:top;text-align:left}.calendar-table thead th,.comparison-table thead th{position:sticky;top:0;background:#edf2ee;z-index:1}.calendar-table tbody>tr>th{width:82px;background:#fafbf9}.weekday{display:block;color:var(--muted);font-size:11px;text-transform:capitalize}.calendar-table tbody>tr>th strong{font-size:22px}.day-cell{min-width:360px;border-left:4px solid #9aa8a3;padding-left:10px}.day-cell.is-open{border-left-color:var(--accent)}.day-summary{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.day-summary small{width:100%;color:var(--muted)}.status{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:750}.status.open{background:#dff0e8;color:#075c47}.status.closed{background:#ecefed;color:#53625d}.forecast-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin:12px 0}.inline-form,.stacked-form{display:grid;gap:8px}.inline-form{border:1px solid var(--line);border-radius:10px;padding:10px}.inline-form label,.stacked-form label{margin:0}.inline-form input,.stacked-form input,.stacked-form select,.stacked-form textarea{min-height:38px}.compact{min-height:36px;padding:6px 10px}.need-box{background:#f0f5f1;border-radius:9px;padding:8px 12px}.need-box p{margin:0}.opening-editor{margin-top:10px}.opening-editor summary,.need-box summary{cursor:pointer;color:var(--accent);font-weight:650}.time-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.checkbox{display:flex!important;align-items:center;gap:8px}.checkbox input{width:auto;min-height:auto}.two-columns{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.4fr);gap:22px}.compact-card{display:flex;align-items:center;justify-content:space-between;gap:16px}.compact-card small{display:block;color:var(--muted)}.comparison-table{min-width:900px}.comparison-table .conflict{background:#fff2df}.notice.error,.error{background:#fff0ee;color:#8a2525}.notice.success{background:#e2f3e9;color:#075c47}.filters{min-width:190px}
@media(max-width:760px){.month-nav{grid-template-columns:repeat(12,105px)}.two-columns{grid-template-columns:1fr}.calendar-heading{align-items:start;display:block}.legend{margin-bottom:12px}.calendar-table{min-width:760px}.day-cell{min-width:300px}}

/* Périodes et groupes — Phase 2 corrigée */
.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.85rem; align-items:end; }
.form-grid label, .group-row label { display:grid; gap:.3rem; font-size:.88rem; font-weight:650; }
.period-card { margin-block:1rem; }
.period-title, .cell-status { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; flex-wrap:wrap; }
.period-groups { display:grid; gap:.65rem; margin-block:.75rem; }
.group-row { display:grid; grid-template-columns:2fr 1.4fr 1.4fr auto auto; gap:.6rem; align-items:end; padding:.7rem; border:1px solid var(--border); border-radius:.7rem; }
.forecast-list h4 { margin:.8rem 0 .4rem; }
.forecast-row { display:grid; grid-template-columns:minmax(135px,1.5fr) repeat(2,minmax(75px,.7fr)) auto; gap:.45rem; align-items:end; padding:.5rem 0; border-top:1px solid var(--border); }
.forecast-row span, .age-totals { display:grid; gap:.15rem; }
.forecast-row small { color:var(--muted); }
.age-totals { margin:.6rem 0; padding:.55rem; background:var(--surface-soft); border-radius:.55rem; font-size:.84rem; }
.requirement-warning { border:2px solid #d97706; background:#fff7ed; }
.warning-text { color:#9a3412; font-weight:750; }
.badge.warning { background:#ffedd5; color:#9a3412; }
@media (max-width:800px) { .group-row, .forecast-row { grid-template-columns:1fr 1fr; } .group-row button, .forecast-row button { width:100%; } }
/* Phase 2.5 : vues métier compactes */
.identity{font-size:14px;margin-left:auto}.calendar-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:24px 0}.calendar-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;flex:1}.calendar-filters label{margin:0}.calendar-filters input,.calendar-filters select{width:auto;max-width:220px}.month-scroll,.annual-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.month-grid{width:100%;table-layout:fixed;border-collapse:collapse;min-width:720px}.month-grid th,.month-grid td{border:1px solid var(--line);padding:8px;vertical-align:top}.month-grid thead th{font-size:13px;background:#eef4f0}.month-grid th:first-child{width:44px}.month-grid td{height:136px;font-size:12px}.weekend{background:#edf0f4!important;border-top:3px solid #a8b4c1!important}.month-grid td.outside{background:#fafafa;color:#9ca3af}.month-grid td.today{outline:2px solid var(--accent);outline-offset:-2px}.date-link{display:block;font-size:14px;font-weight:750;text-decoration:none;padding:2px 0 8px}.month-site{border-left:3px solid var(--accent);padding:3px 6px;margin:5px 0}.month-site strong,.month-site small{display:block}.month-site .badge{display:inline-block;margin-top:3px;font-size:10px;padding:2px 5px}.filtered{color:#9ca3af}.week-number{font-size:11px;color:var(--muted)}.group-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:16px;margin:22px 0}.group-card{padding:18px;border:1px solid var(--line);border-radius:12px}.group-card h3{margin-top:0}.inactive-group{background:#f4f5f5}.site-totals{display:flex;gap:16px;flex-wrap:wrap;padding:14px;background:#e9f2ed;border-radius:10px}.group-toggle{margin-top:16px}summary{cursor:pointer;font-weight:600;padding:8px 0}textarea{width:100%;font:inherit;border:1px solid #96aaa3;border-radius:8px;padding:8px}.tabs{border-bottom:1px solid var(--line);margin:24px 0;gap:12px}.tabs a{padding:12px 18px}.tabs a[aria-current]{border-bottom:3px solid var(--accent);font-weight:750}.profile-header{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.profile-header h1{font-size:30px}.annual-grid{border-collapse:collapse;min-width:1080px;width:100%;font-size:12px}.annual-grid th,.annual-grid td{border:1px solid var(--line);padding:7px 3px;text-align:center}.annual-grid th:first-child{position:sticky;left:0;background:#f5f8f6;min-width:100px;text-align:left;padding-left:10px}.annual-grid .invalid{background:repeating-linear-gradient(45deg,#eee,#eee 3px,#fafafa 3px,#fafafa 7px)}.quick-links{display:flex;gap:12px;flex-wrap:wrap}.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}.notice.warning{background:#fff7ed;color:#9a3412}
@media(max-width:760px){.identity{margin-left:0;width:100%}.calendar-toolbar{gap:8px}.calendar-filters{order:3;width:100%}.calendar-filters label{flex:1}.calendar-filters input,.calendar-filters select{width:100%;max-width:none}.month-grid{min-width:680px}.month-grid td{padding:5px}.profile-header{display:block}main{padding:24px 14px}.group-card{padding:14px}}

/* États horaires : texte et couleur toujours associés. */
.hours-legend,.hours-totals{display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0}
.hours-state{padding:.4rem .6rem;border-left:4px solid transparent;border-radius:4px}
.hours-state.planned{background:#fff4c7;border-color:#b88900;color:#594300}
.hours-state.declared{background:#e1efff;border-color:#2878be;color:#15416d}
.hours-state.validated{background:#e1f3e8;border-color:#28824b;color:#18532f}
.hours-state.anomaly{background:#ffe6e6;border-color:#bd3434;color:#8c2020}
.hours-state small{display:block}
.hours-month{border:1px solid #cbd5d1;border-radius:8px;overflow:hidden}
.hours-weekdays,.hours-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.hours-weekdays{background:#edf2ef;text-align:center;padding:.5rem}
.hours-cell{min-height:115px;padding:.5rem;border:1px solid #e3e9e6;min-width:0}
.hours-cell.weekend{background:#f0f1f3;border-top:3px solid #879493}
.hours-cell.outside{opacity:.35;background:#f5f5f5}
.hours-cell a{font-size:.8rem}
.hours-table{width:100%;min-width:780px}
.hours-table th,.hours-table td{vertical-align:top;padding:.65rem;border-bottom:1px solid #dce3df}
.hours-table tr.weekend>th{background:#e8ecef}
.hours-table details{max-width:280px}.hours-table form{margin:1rem 0}
.hours-table td a{display:inline-block;margin:.2rem}
@media(max-width:600px){.hours-cell{padding:.2rem;min-height:105px;font-size:.75rem}.hours-cell .hours-state{padding:.25rem;border-left-width:2px;overflow-wrap:anywhere}.hours-cell a{font-size:.65rem}.hours-weekdays{font-size:.75rem}.hours-totals{display:grid}.hours-cell small{font-size:.6rem}}

/* Simplification UX : identité, contrats et formulaires intégrés. */
.session-controls{display:flex;align-items:center;gap:.7rem;margin-left:auto;flex-wrap:wrap}.session-controls form{margin:0}.session-controls .identity{margin:0}.search-form{display:flex;gap:.7rem;align-items:end;flex-wrap:wrap;margin:1rem 0}.contract-badge{display:inline-block;padding:.3rem .6rem;border-radius:1rem;font-size:.85rem;margin:.2rem}.contract-badge.green{background:#def2e6;color:#145533}.contract-badge.orange{background:#ffead1;color:#874400}.contract-badge.red,.contract-warning{background:#ffe3e3;color:#862626}.contract-warning{border-left:4px solid #ba3333;padding:1rem;border-radius:.4rem}.cell-editor summary{cursor:pointer;min-height:2.5rem}.cell-editor form{min-width:12rem;margin-top:.7rem}.cell-editor input,.cell-editor select,.cell-editor textarea{max-width:100%;width:100%;box-sizing:border-box}.cell-editor .slot-fields{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.cell-editor .slot-fields label:last-child{grid-column:1/-1}.cell-editor fieldset{padding:.4rem;border:1px solid #aab6ac;margin:.5rem 0}.cell-editor .errorlist{color:#8b2222}.hours-table th,.hours-table td{vertical-align:top}.hours-table{min-width:750px}.hours-table td.hours-state{border-radius:0}.hours-table .cell-hint{display:block;font-size:.75rem;font-weight:normal;margin-top:.3rem}.session-controls .identity{font-size:.85rem}@media(max-width:700px){.session-controls{width:100%;margin:0;justify-content:space-between}.session-controls .identity{max-width:65%}.form-grid{grid-template-columns:1fr}.search-form label{width:100%}}

.cell-editor .slot-fields label{margin:0;font-size:.78rem;line-height:1.35}.cell-editor input,.cell-editor select{min-height:40px;padding:6px;font-size:.86rem}.cell-editor legend{font-size:.8rem;font-weight:650}.cell-editor fieldset{margin:.35rem 0;padding:.3rem}.cell-editor .slot-fields{gap:.3rem}.cell-editor form>p{font-size:.8rem;margin:.25rem 0}.cell-editor summary{padding:.25rem 0}.cell-editor summary .cell-hint{font-size:.7rem}.hours-table tbody>tr>th{white-space:nowrap}.hours-table td{min-width:100px}@media(max-width:600px){.cell-editor input,.cell-editor select{min-height:44px}.cell-editor form{min-width:14rem}}

.profile-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.profile-form-grid>div:last-of-type{grid-column:1/-1}.profile-form-grid textarea{min-height:90px}@media(max-width:600px){.profile-form-grid{grid-template-columns:1fr}}

.daily-group-picker{grid-column:1/-1;border:1px solid var(--line);border-radius:8px;padding:12px}.date-link{min-height:44px}.month-grid td.outside .date-link{color:var(--muted)}

/* Le lien de date couvre toute la case, y compris ses espaces vides. */
.month-grid td{position:relative;isolation:isolate}
.month-grid .date-link::after{content:"";position:absolute;inset:0;z-index:1;cursor:pointer;border-radius:2px}
.month-grid .date-link:hover::after{background:rgba(24,113,93,.06);box-shadow:inset 0 0 0 2px var(--accent)}
.month-grid .date-link:focus-visible{outline:none}
.month-grid .date-link:focus-visible::after{outline:3px solid var(--accent);outline-offset:-3px}

/* Formulaire de préparation des périodes. */
#period-editor input[type=checkbox]{width:auto;margin-right:8px}#period-editor fieldset{min-width:0}#period-editor .errorlist{color:#b42318}#group-create-dialog{max-width:min(560px,92vw);border:1px solid var(--line);border-radius:12px;padding:24px}#group-create-dialog::backdrop{background:#0006}

#period-editor input[type=checkbox]{width:18px;height:18px;min-height:18px;padding:0;flex:0 0 18px;accent-color:var(--accent)}
#period-editor [id^=id_][id$=groups] label,#period-editor #id_sites label,#period-editor #id_weekdays label{display:flex;align-items:center;gap:8px;min-height:44px;margin:0}
#period-editor #id_weekdays,#period-editor #id_sites{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:4px}
#period-editor .form-grid{align-items:start}
#period-editor .period-main-fields{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:.85rem;align-items:end}
#period-editor .period-schedule-fields{display:grid;grid-template-columns:1fr 1fr 2fr;gap:.85rem;align-items:start;margin-top:1rem}
#period-editor .period-sites,#period-editor .period-schedule-fields fieldset{border:1px solid var(--line);border-radius:8px;padding:10px}
#period-editor .period-year-hint{margin:.5rem 0 .25rem}
#period-editor .period-sites{width:100%;margin:0}
#period-editor .period-sites #id_sites{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1.5rem}
#period-editor .period-sites #id_sites>div{flex:0 1 auto;min-width:max-content}
#period-editor .period-sites #id_sites label{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;white-space:nowrap}
@media(max-width:800px){#period-editor .period-main-fields{grid-template-columns:1fr 1fr}#period-editor .period-schedule-fields{grid-template-columns:1fr}}
@media(max-width:520px){#period-editor .period-main-fields{grid-template-columns:1fr}}

/* Sélections multiples des événements : libellés et cases sur une même ligne. */
.event-field #id_agents label, .event-field #id_groups label {
    display:flex; align-items:center; gap:.7rem; font-weight:400; padding:.35rem 0;
}
.event-field input[type=checkbox] { width:1.15rem; height:1.15rem; margin:0; flex:none; }
.event-field [hidden] { display:none !important; }
.event-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.event-actions form{margin:0}.event-actions button{margin:0}
/* Affectations aux groupes : grille utilisable à la souris et au tactile. */
.assignment-period-picker select{max-width:760px}.assignment-toolbar{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:14px;align-items:end;position:sticky;top:0;z-index:4}.assignment-toolbar>div:first-child{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.assignment-toolbar label{margin:0}.agent-results{position:absolute;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0002;z-index:8;max-height:260px;overflow:auto;margin-top:4px}.agent-result{display:block;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);text-align:left}.agent-result:hover,.agent-result:focus{background:#e9f2ed}.assignment-grid-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:20px}.assignment-grid{border-collapse:collapse;min-width:max(760px,100%)}.assignment-grid th,.assignment-grid td{border:1px solid var(--line);padding:9px;vertical-align:top;min-width:150px}.assignment-grid thead th{background:#edf2ee;position:sticky;top:0;z-index:2}.assignment-grid tbody th{position:sticky;left:0;background:#f7faf8;z-index:1;min-width:155px}.assignment-grid th span,.assignment-grid th strong,.assignment-grid th small{display:block}.assignment-cell{cursor:pointer;min-height:92px;transition:.12s}.assignment-cell:hover{background:#eef7f2}.assignment-cell.selected{background:#d9eee3;box-shadow:inset 0 0 0 3px var(--accent)}.assignment-cell.closed{cursor:default;background:#f1f2f2;color:var(--muted)}.cell-state{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.selection-mark{font-size:11px;color:var(--accent);font-weight:700}.selected .selection-mark::after{content:' ✓'}.assignment-agents{list-style:none;padding:0;margin:0;display:grid;gap:5px}.assignment-agents li{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:13px}.assignment-agents form{margin:0}.chip-remove{min-height:28px;width:28px;padding:0;border-radius:50%;background:#fff;color:#8a2525;border-color:#d6a0a0}@media(max-width:760px){.assignment-toolbar{grid-template-columns:1fr;position:static}.assignment-cell{min-width:145px;min-height:110px}.assignment-grid th,.assignment-grid td{padding:8px}.assignment-grid tbody th{min-width:120px}}
.assignment-grid .select-period{display:block;margin-top:8px;padding:5px 8px;min-height:34px;font-size:11px;white-space:normal}
.general-team-grid{min-width:1400px}.general-team-grid th,.general-team-grid td{min-width:86px}.general-team-grid th:first-child{min-width:230px}.general-team-grid select{min-width:130px}.presence-check{display:grid;place-items:center;margin:0}.presence-check input{width:22px;min-height:22px}.general-team-grid tfoot td,.general-team-grid tfoot th{background:#edf2ee;position:sticky;bottom:0}

button.danger { background: #b42318; border-color: #b42318; color: #fff; }
button.danger:hover { background: #8f1c13; }

/* Compact RH only: leave other assignment and hours tables untouched. */
.rh-compact.general-team-grid{min-width:100%;width:100%;font-size:13px;line-height:1.2}
.rh-compact.general-team-grid th,.rh-compact.general-team-grid td{min-width:0;padding:3px 4px;height:28px;vertical-align:middle;white-space:nowrap}
.rh-compact.general-team-grid th:first-child{min-width:26px}
.rh-compact.general-team-grid .rh-date{min-width:32px;width:auto;padding:1px 2px;text-align:center;user-select:none;touch-action:none}
.rh-compact .rh-presence{width:12px;height:12px;min-height:12px;margin:0;padding:0;vertical-align:middle}
.rh-compact.general-team-grid td:has(>.rh-agent){width:165px;max-width:165px}
.rh-compact.general-team-grid select.rh-agent{display:block;box-sizing:border-box;min-width:0;width:157px;max-width:100%;height:22px;min-height:22px;margin:0;padding:0 20px 0 3px;border-radius:2px;font:inherit;line-height:normal;appearance:auto;background-image:none;overflow:hidden;text-overflow:ellipsis}
.rh-compact .rh-row-select{background:transparent;color:inherit;width:20px;height:18px;min-height:18px;padding:0;border-radius:2px;font:inherit;line-height:1}
.rh-compact .rh-selected{background:#cde5ff;outline:2px solid #3984bc;outline-offset:-2px}
.rh-compact [data-category-total]{font-weight:bold;background:#edf2ee}
#rh-selection-info{margin-left:12px;font-size:.9rem}

.rh-compact button:not(.rh-row-select){min-height:22px;padding:2px 6px;border-radius:3px;font-size:11px;line-height:1.2}

/* Use the page width only for the RH screen; spare width goes to dates. */
main:has(#rh-table-form){max-width:none;width:100%;padding-left:12px;padding-right:12px}
#rh-table-form .assignment-grid-wrap{width:100%;max-width:100%;border-radius:4px}
.rh-compact.general-team-grid thead th:not(.rh-date){width:1%}
.rh-compact.general-team-grid thead th:nth-child(2){width:165px;min-width:165px}
@media(max-width:600px){main:has(#rh-table-form){padding-left:6px;padding-right:6px}}

.rh-table-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.rh-table-actions [hidden]{display:none!important}

.rh-compact tr.rh-row-selected>td,.rh-compact tr.rh-row-selected>th{background:#cde5ff}

/* Compact presentation scoped to period settings and site/group configuration. */
main:has(.period-ui){max-width:none;padding:24px 18px}
.period-ui{font-size:14px;line-height:1.4}
.period-ui h1{font-size:28px;margin:8px 0 12px}
.period-ui h2{font-size:19px;margin:0 0 10px}
.period-ui h3{font-size:15px;margin:14px 0 6px}
.period-ui nav{margin:8px 0 14px;gap:8px}
.period-ui .card{padding:16px;border-radius:8px;margin-bottom:0}
.period-ui label{font-size:13px;margin:0 0 4px}
.period-ui input:not([type=checkbox]):not([type=hidden]),.period-ui select{min-height:34px;padding:5px 8px;font-size:14px;border-radius:4px}
.period-ui button{min-height:32px;padding:5px 10px;border-radius:4px;font-size:13px}
.period-ui input[type=checkbox]{width:15px;height:15px;min-height:15px;flex:0 0 15px;margin:0;padding:0;vertical-align:middle;accent-color:var(--accent)}
.period-ui label:has(input[type=checkbox]){display:flex;align-items:center;justify-content:flex-start;gap:6px;margin:0;min-height:25px;font-weight:500;width:fit-content}
.period-ui .helptext{display:block;font-size:12px;color:var(--muted);margin:3px 0}
.period-ui .errorlist{color:#b91c1c;font-size:13px;margin:4px 0;padding-left:18px}
.period-ui .period-main-fields{display:grid;grid-template-columns:minmax(200px,2fr) repeat(3,minmax(130px,1fr));gap:12px;align-items:start}
.period-ui .period-schedule-fields{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(260px,2fr);gap:12px;align-items:end;margin:12px 0}
.period-ui #id_weekdays{display:grid;grid-template-columns:repeat(3,minmax(85px,1fr));gap:2px 10px;max-width:440px}
.period-ui .period-rh-fields{grid-template-columns:repeat(2,minmax(150px,220px));padding-top:12px;border-top:1px solid var(--line)}
.period-ui fieldset{min-width:0;margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:6px}
.period-ui legend{font-size:14px;font-weight:650;padding:0 4px}
.period-ui #specific-status-editor .period-schedule-fields{grid-template-columns:minmax(180px,1fr) minmax(120px,180px) auto;max-width:760px;margin:8px 0;align-items:end}
.period-ui .specific-status-row{padding:6px 0;border-bottom:1px solid var(--line)}
.period-ui .specific-status-row[hidden]{display:none!important}
.period-ui #specific-status-error:empty{display:none}
.period-ui #specific-status-editor>p{font-size:12px;color:var(--muted);margin:8px 0 0}
.period-site-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:14px;align-items:start}
.period-site-card>ul{display:flex;flex-wrap:wrap;gap:5px;list-style:none;padding:0;margin:0 0 10px}
.period-site-card>ul li{padding:3px 7px;border:1px solid var(--line);border-radius:4px;background:#f5f8f6;font-size:12px}
.period-site-card form p,.period-add-site form p{margin:8px 0}
.period-site-card form div:has(>div>label>input[type=checkbox]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 10px;margin:6px 0}
.period-site-card form div:has(>label>input[type=checkbox]){min-width:0}
.period-site-card label:has(input[type=checkbox]){width:auto;overflow-wrap:anywhere}
.period-site-card .group-create-form,.period-add-site form{border-top:1px solid var(--line);padding-top:6px}
@media(max-width:800px){.period-ui .period-main-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.period-ui .period-schedule-fields{grid-template-columns:1fr 1fr}.period-ui .period-schedule-fields>div:has(#id_weekdays){grid-column:1/-1}}
@media(max-width:520px){main:has(.period-ui){padding:20px 10px}.period-ui .card{padding:12px}.period-ui .period-main-fields,.period-ui .period-schedule-fields,.period-ui .period-rh-fields,.period-ui #specific-status-editor .period-schedule-fields{grid-template-columns:1fr}.period-ui #id_weekdays{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Site/group placement: standalone two-zone view; no RH or hours table changes. */
main:has(.service-group-screen){max-width:none;padding:24px 14px}
.service-group-screen{font-size:13px;line-height:1.4}
.sg-zones{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:18px;align-items:start}
.sg-zones h2{font-size:17px;margin:8px 0}
.sg-scroll{overflow:auto;border:1px solid var(--line);border-radius:5px;background:white}
.sg-grid{border-collapse:collapse;width:100%;font-size:13px}
.sg-grid th,.sg-grid td{border:1px solid var(--line);min-width:38px;padding:4px;text-align:center;height:30px;white-space:nowrap}
.sg-grid th:first-child{min-width:100px;text-align:left}
.sg-grid thead th{background:#edf2ee}
.sg-grid tbody th:first-child{position:sticky;left:0;background:#f7faf8}
.sg-grid .sg-site th{background:#dfece4;font-size:15px}
.sg-grid .sg-group th{background:#f0f5f1}
.sg-grid form{margin:0}
.sg-grid button{min-height:24px;padding:3px 6px;border-radius:3px;font-size:12px;line-height:1.2}
.sg-person[draggable],.sg-available{cursor:grab;user-select:none}
.sg-available{display:block;font-weight:700;padding:2px}
.sg-grid .sg-drag-over td,.sg-grid .sg-drag-over th{background:#cde5ff}
.sg-assigned{display:flex;align-items:center;justify-content:center;gap:4px}
.sg-grid .sg-remove{background:white;color:#9a2424;border-color:#d9e3de;min-height:18px;height:18px;width:18px;padding:0}
.sg-period-picker{display:flex;gap:8px;align-items:end;margin:12px 0}
.sg-period-picker label{margin:0;min-width:280px}.sg-period-picker select{min-height:34px;padding:5px}
#sg-feedback:empty{display:none}
@media(max-width:900px){.sg-zones{grid-template-columns:1fr}.sg-period-picker{flex-wrap:wrap}}

/* Selection affects placements only, never structural rows. */
.sg-selection-actions { display:flex; gap:8px; margin:8px 0; }
.sg-selection-actions [hidden] { display:none !important; }
.sg-target [data-sg-cell] { user-select:none; }
.sg-target .sg-grid .sg-selected { background:#dcecff; outline:2px solid #3177bd; outline-offset:-2px; }
.sg-target .sg-selected-row > th { background:#dcecff; }
.sg-target .sg-grid .sg-select-line { background:transparent; color:inherit; border:0; padding:2px 4px; font:inherit; cursor:pointer; }

main:has(.post-screen){max-width:none;padding:20px 14px}
.post-scroll{overflow:auto}.post-grid{border-collapse:collapse;width:100%;font-size:13px}
.post-grid th,.post-grid td{border:1px solid #d7dee5;padding:4px;vertical-align:top}
.post-grid thead th{white-space:nowrap}.post-grid td[data-post-cell]{min-width:155px}
.post-inactive{background:#edf0f3}.post-slot{margin-bottom:4px}
.post-screen .post-slot select{width:100%;min-height:26px;padding:2px;font-size:12px}
.post-times{display:flex;gap:2px}.post-screen .post-times input{min-width:0;width:64px;padding:2px;font-size:12px;min-height:24px}
.post-screen .post-grid button{padding:3px 5px;min-height:24px;font-size:11px}
.post-library{margin:12px 0}.post-library form{display:flex;flex-wrap:wrap;align-items:end;gap:10px}

/* Compact spreadsheet: one shared editor, no controls inside date cells. */
.post-screen .post-grid td[data-post-cell]{min-width:105px;max-width:165px;cursor:cell;user-select:none;padding:4px;font-size:12px}
.post-grid [data-slots]{display:flex;flex-direction:column;gap:2px}
.post-summary{display:block;line-height:1.3;overflow-wrap:anywhere}
.post-grid .post-selected{background:#dcecff;outline:2px solid #3177bd;outline-offset:-2px}
.post-slot-selected{font-weight:600}.post-grid .post-dirty{box-shadow:inset 0 -3px #dfad3a}
.post-commands,.post-editor{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin:10px 0}
.post-editor[hidden]{display:none!important}.post-editor label{font-size:12px;margin:0}
.post-editor input,.post-editor select{min-height:30px;padding:3px;font-size:13px;width:auto}
.post-editor button{min-height:30px;padding:5px 8px;font-size:12px}
#post-selected-info{flex-basis:100%;font-size:13px}#post-pending{font-size:12px;color:#775500}

.event-participants{grid-column:1 / -1;min-width:0;width:100%}
.event-field #id_agents.event-adult-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;max-width:none;align-items:start}
.event-adult-column{border:1px solid #d7dee5;border-radius:6px;padding:10px}
.event-adult-column h3{font-size:14px;margin:0 0 8px}
.event-field #id_agents .event-adult-option,.event-field #id_agents .event-adult-all{display:flex;align-items:center;gap:6px;font-size:13px;margin:0;padding:3px 0}
.event-field #id_agents input[type=checkbox]{width:15px;height:15px;min-height:0;margin:0;flex:none}
.event-adult-option[hidden]{display:none!important}.event-adult-all{border-bottom:1px solid #e4e8ec;margin-bottom:5px!important}
@media(max-width:600px){.event-field #id_agents.event-adult-columns{grid-template-columns:1fr}}

.today-screen{max-width:900px;margin:auto}.today-screen .card{padding:18px;margin-bottom:14px}.today-screen h2{margin-top:0}.today-blue{background:#edf5ff;border-color:#a8c5e8}.today-punch summary{display:inline-block;background:#176b58;color:white;border-radius:8px;padding:12px 18px}.today-punch input,.today-punch textarea{max-width:420px}.today-contact{padding:10px 0;border-bottom:1px solid #e1e7e3}.today-contact small{display:block}

/* Header commun : le nombre de liens ne change pas la position de l’identité. */
.app-header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 24px;padding:14px 24px}
.app-header .session-controls{justify-self:end;margin:0;flex-wrap:nowrap;min-width:0}
.app-header .identity{width:auto;max-width:none;overflow-wrap:anywhere}
.app-header .session-controls button{min-height:36px;padding:6px 12px;white-space:nowrap}
.app-header .app-navigation{grid-column:1/-1;display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;min-width:0;min-height:40px;margin:0;padding:0;align-items:center}
.app-navigation a{flex:0 0 auto;font-size:14px;line-height:20px;padding:8px 10px;white-space:nowrap}
.app-navigation .nav-separator{flex:0 0 1px;background:var(--line);height:22px;margin:0 8px}
@media(max-width:600px){.app-header{grid-template-columns:1fr;padding:12px 16px;gap:10px}.app-header .session-controls{justify-self:stretch;width:100%;justify-content:space-between}.app-header .identity{font-size:12px}.app-header .app-navigation{grid-column:1}.app-navigation a{padding:8px;font-size:13px}}

.team-week-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.team-day{display:block;text-decoration:none;color:var(--ink);padding:16px;margin:0}.team-day h2{font-size:17px}.team-day p{font-size:13px}.team-day:hover{border-color:var(--accent)}

.collective-site h3{font-size:14px;margin:12px 0 4px}.collective-site ul{list-style:none;margin:0;padding:0}.collective-site li{font-size:13px;line-height:1.4;padding:5px 0;border-bottom:1px solid var(--line)}.collective-slot{display:block;font-size:12px}.collective-organization{display:grid;gap:8px}.team-day .collective-site li{font-size:12px}.team-day .collective-slot{font-size:11px}


