@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{font-family:'DM Sans',Arial,sans-serif;color:#1f302f;background:#f5f7f5;font-synthesis:none;text-rendering:optimizeLegibility;--green:#174c45;--deep:#173f3a;--mint:#e8f3ee;--muted:#798783;--line:#e9eeeb;--white:#fff}
*{box-sizing:border-box}body{margin:0;min-height:100vh}.shell{max-width:1160px;margin:0 auto;padding:0 34px 48px}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9eeeb}.brand{display:flex;align-items:center;gap:11px;color:var(--deep);text-decoration:none}.brand-mark{height:36px;width:36px;border-radius:12px;background:var(--green);color:#fff;display:grid;place-items:center;font:800 19px Manrope,sans-serif}.brand strong,.brand small{display:block}.brand strong{font:800 16px Manrope,sans-serif;letter-spacing:-.5px}.brand small{font-size:9px;letter-spacing:1.8px;color:#71817b;margin-top:1px}.month-controls{display:flex;align-items:center;gap:10px}.month-label{font-size:12px;color:#74827e;margin-right:3px}.month-controls input{font:600 13px 'DM Sans',sans-serif;color:var(--deep);border:1px solid #e4eae6;border-radius:9px;padding:8px 10px;background:white}.icon-button{height:34px;width:34px;border:1px solid #e5ebe7;border-radius:9px;background:#fff;color:#41625d;font-size:25px;line-height:20px;cursor:pointer}.welcome{display:flex;justify-content:space-between;align-items:flex-end;padding:39px 0 25px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.7px;color:#64847c;margin:0 0 9px}.welcome h1{font:800 29px Manrope,sans-serif;letter-spacing:-1px;color:#1a3632;margin:0}.subtitle{font-size:13px;color:var(--muted);margin:8px 0 0}.primary-button{border:0;border-radius:9px;background:var(--green);color:white;font:600 12px 'DM Sans',sans-serif;padding:12px 16px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 3px 8px #174c4524;transition:background .15s,transform .15s}.primary-button:hover{background:#0f3e38;transform:translateY(-1px)}.primary-button span{font-size:17px;line-height:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;align-items:center;gap:14px;min-height:80px}.stat-total{background:#edf6f1;border-color:#dfede6}.stat-icon{height:38px;width:38px;border-radius:11px;background:#d9ece3;color:#28665a;display:grid;place-items:center;font-size:18px}.stat-icon.muted{background:#f0f3f1;color:#75847f}.stat-icon.amber{background:#f8f1e5;color:#aa8547}.stat-label{font-size:11px;color:#7d8b86;display:block;margin-bottom:3px}.stat-card strong{font:800 22px Manrope,sans-serif;color:#1a3934}.roster-card{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.roster-heading{display:flex;justify-content:space-between;align-items:center;padding:19px 21px;border-bottom:1px solid var(--line)}.roster-heading h2{font:700 15px Manrope,sans-serif;color:#1b3934;margin:0}.roster-heading p{font-size:11px;color:#8a9691;margin:5px 0 0}.search{height:34px;width:205px;border:1px solid #e5eae7;border-radius:8px;display:flex;align-items:center;gap:7px;padding:0 10px;color:#81918b}.search span{font-size:22px;transform:rotate(-20deg)}.search input{border:0;outline:0;width:100%;font:12px 'DM Sans',sans-serif;color:#2d403d}.search input::placeholder{color:#a1aba7}.table-wrap{min-height:150px}table{border-collapse:collapse;width:100%;text-align:left}thead th{padding:11px 20px;background:#fbfcfb;font-size:9px;letter-spacing:1px;color:#8b9792;font-weight:700}thead th:nth-child(1){width:34%}thead th:nth-child(2){width:30%}thead th:nth-child(3){width:30%}tbody tr{border-top:1px solid #f0f2f1}tbody td{padding:8px 20px;height:49px;font-size:12px;color:#42534f}.monitor-name{font-weight:600;color:#314541}.initial{width:28px;height:28px;border-radius:9px;background:#edf4f0;color:#52776d;display:inline-grid;place-items:center;font-size:9px;font-weight:700;margin-right:10px}.name-cell{display:flex;align-items:center}.availability{border:1px solid #e7ece9;border-radius:7px;padding:7px 10px;font:500 11px 'DM Sans',sans-serif;color:#64736e;background:white;min-width:150px;outline:none}.availability:focus,.note-input:focus{border-color:#82ab9c;box-shadow:0 0 0 2px #e7f2ec}.availability.is-yes{background:#eff7f2;border-color:#e1eee5;color:#327158}.availability.is-no{background:#faf1ef;border-color:#f1e4e0;color:#a05d4e}.note-input{border:1px solid transparent;border-radius:6px;padding:7px 8px;width:100%;font:11px 'DM Sans',sans-serif;color:#596965;outline:none;background:transparent}.note-input::placeholder{color:#b2bbb7}.remove-button{border:0;background:transparent;color:#aab4b0;font-size:18px;cursor:pointer;opacity:0;padding:4px 7px;border-radius:6px}.remove-button:hover{color:#a3564e;background:#fbefed}tbody tr:hover .remove-button,tbody tr:focus-within .remove-button{opacity:1}.roster-footer{border-top:1px solid var(--line);padding:12px 20px;display:flex;justify-content:space-between;font-size:10px;color:#89958f}.saved-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#56a37a;margin-right:6px;vertical-align:1px}.privacy-note{text-align:center;font-size:10px;color:#96a19c;margin:14px 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:35px 16px;color:#81908a}.empty-state>span{font-size:27px}.empty-state strong{font:600 13px Manrope,sans-serif;color:#455752}.empty-state p{font-size:11px;margin:0}.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}dialog{border:0;padding:0;border-radius:15px;width:min(430px,calc(100% - 32px));box-shadow:0 22px 80px #16392f30;color:#1f302f}dialog::backdrop{background:#102c25a3;backdrop-filter:blur(2px)}dialog form{padding:27px}.dialog-close{position:absolute;top:16px;right:17px;border:0;background:none;color:#81908a;font-size:24px;cursor:pointer}.dialog-copy{font-size:12px;color:#81908a;margin:0 0 22px}.field-label{display:block;font-size:11px;font-weight:700;color:#566862;margin-bottom:7px}.name-input{width:100%;border:1px solid #dfe8e2;border-radius:8px;padding:11px 12px;font:13px 'DM Sans',sans-serif;outline:none}.name-input:focus{border-color:#77a292;box-shadow:0 0 0 3px #e8f3ed}.form-error{color:#a44f47;font-size:11px;margin:7px 0 0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.secondary-button{border:1px solid #e3eae5;border-radius:9px;background:white;color:#52635e;font:600 12px 'DM Sans',sans-serif;padding:11px 14px;cursor:pointer}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:#193f39;color:white;padding:11px 17px;border-radius:9px;font-size:12px;box-shadow:0 8px 20px #183a3430;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:720px){.shell{padding:0 16px 28px}.topbar{height:auto;min-height:70px;gap:14px;flex-wrap:wrap;padding:13px 0}.month-controls{gap:6px}.month-label{display:none}.month-controls input{width:142px}.welcome{align-items:flex-start;gap:15px;flex-direction:column;padding:28px 0 18px}.welcome h1{font-size:25px}.stats{grid-template-columns:1fr;gap:8px}.stat-card{min-height:66px;padding:11px 14px}.roster-heading{align-items:flex-start;gap:14px;flex-direction:column}.search{width:100%}.table-wrap{overflow-x:auto}table{min-width:680px}thead th,tbody td{padding-left:14px;padding-right:14px}.remove-button{opacity:1}.privacy-note{line-height:1.5}}

.agenda-card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;margin-bottom:20px}.agenda-heading{padding:18px 20px;display:flex;justify-content:space-between;align-items:center}.agenda-heading h2{font:700 15px Manrope,sans-serif;color:#1b3934;margin:0}.agenda-heading p{font-size:11px;color:#8a9691;margin:5px 0 0}.availability-key{font-size:10px;color:#83918b;display:flex;align-items:center;gap:7px}.availability-key span{width:8px;height:8px;border-radius:50%;background:#438c69}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#fbfcfb;border-top:1px solid #edf0ee;border-bottom:1px solid #edf0ee}.calendar-weekdays span{text-align:right;padding:10px 10px 9px;font-size:8px;letter-spacing:.9px;color:#96a19c;font-weight:700}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-day{min-height:132px;border-right:1px solid #edf0ee;border-bottom:1px solid #edf0ee;padding:8px;position:relative}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#fafbfa}.calendar-day.outside .day-number{color:#c2cac6}.day-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.day-number{font-size:11px;font-weight:600;color:#566761;height:22px;width:22px;display:grid;place-items:center;border-radius:50%}.calendar-day.today .day-number{color:#fff;background:#438c69}.add-assignment{border:0;background:transparent;color:#97a49e;font-size:17px;cursor:pointer;height:24px;width:24px;border-radius:7px;line-height:20px}.add-assignment:hover{color:#174c45;background:#edf5f0}.day-assignments{display:flex;flex-direction:column;gap:4px}.assignment-chip{border:0;border-radius:5px;background:#edf5f0;color:#356b58;text-align:left;padding:5px 6px;display:block;width:100%;font:500 9px 'DM Sans',sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-chip span{font-weight:700}.assignment-chip button{float:right;border:0;background:none;color:#78948a;cursor:pointer;padding:0 1px;font-size:11px;line-height:12px}.assignment-chip.more{background:#f5f7f5;color:#77857f}.calendar-empty{font-size:9px;color:#b2bcb7;padding:4px 2px}.activity-label{margin-top:14px}.activity-label span{font-weight:400;color:#97a19d}
@media(max-width:720px){.agenda-heading{gap:8px;align-items:flex-start}.calendar-day{min-height:90px;padding:5px}.calendar-weekdays span{padding-right:5px;font-size:7px}.day-head{margin-bottom:4px}.assignment-chip{font-size:8px;padding:4px 3px}.calendar-empty{font-size:8px}.add-assignment{height:22px;width:22px}}
.day-available-count{display:flex;align-items:baseline;gap:3px;margin:0 0 5px;color:#55916e;font-size:9px;line-height:1.3;white-space:nowrap}.day-available-count strong{font:700 11px Manrope,sans-serif;color:#347758}.day-available-count span{overflow:hidden;text-overflow:ellipsis}.calendar-day.outside .day-available-count{color:#9bb6a4}.calendar-day.outside .day-available-count strong{color:#8ba895}
@media(max-width:720px){.day-available-count{font-size:7px;gap:2px;margin-bottom:3px}.day-available-count strong{font-size:9px}}
.day-count-input{width:40px;height:24px;border:1px solid #dce8df;border-radius:5px;background:#fbfdfb;padding:3px 4px;color:#347758;font:700 11px Manrope,sans-serif;outline:none}.day-count-input:focus{border-color:#6ea187;box-shadow:0 0 0 2px #e8f3ec}.day-count-input::placeholder{color:#a9b7ae;font-weight:500}.day-count-input::-webkit-inner-spin-button,.day-count-input::-webkit-outer-spin-button{opacity:1}.day-count-input:disabled{background:transparent;border-color:transparent;color:#b5c1b9}.day-available-count span{font-size:9px;color:#789487}
@media(max-width:720px){.day-count-input{width:34px;height:22px;padding:2px}.day-available-count span{display:none}}
.monitor-picker{border:0;padding:0;margin:0;min-width:0}.monitor-picker legend{padding:0;margin-bottom:8px}.monitor-picker legend span{font-weight:400;color:#97a19d}.monitor-options{max-height:230px;overflow-y:auto;border:1px solid #e4ebe6;border-radius:8px;padding:4px 10px}.monitor-option{display:flex;align-items:center;gap:9px;min-height:36px;border-bottom:1px solid #f0f3f1;cursor:pointer}.monitor-option:last-child{border-bottom:0}.monitor-option input{accent-color:#287257;width:15px;height:15px;margin:0}.monitor-option .initial{height:25px;width:25px;margin:0;font-size:8px;flex:none}.monitor-option-name{font-size:11px;font-weight:600;color:#40534d}.no-available-monitors{font-size:11px;line-height:1.5;color:#81908a;margin:8px 2px}.primary-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}
.view-switch{display:flex;gap:5px;padding:0 20px 12px}.view-button{border:1px solid transparent;border-radius:7px;background:transparent;color:#82918b;padding:7px 12px;font:600 11px 'DM Sans',sans-serif;cursor:pointer}.view-button:hover{background:#f4f7f5}.view-button.active{color:#245c4a;background:#eaf3ed;border-color:#dcebe0}.planning-view[hidden],.calendar-view[hidden]{display:none!important}.planner-scroll{max-height:70vh;overflow:auto;border-top:1px solid #edf0ee;position:relative}.planner-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;text-align:center;table-layout:fixed}.planner-table th,.planner-table td{border-right:1px solid #edf0ee;border-bottom:1px solid #edf0ee;padding:0}.planner-name-header,.planner-name-cell{position:sticky;left:0;width:205px;min-width:205px;max-width:205px;text-align:left;background:#fff;z-index:2}.planner-name-header{top:0;z-index:4;background:#fbfcfb;padding:10px 14px!important;font-size:9px;letter-spacing:1px;color:#8b9792}.planner-date{position:sticky;top:0;z-index:3;width:62px;min-width:62px;background:#fbfcfb}.planner-date.today{background:#eff7f1}.planner-date-label{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px 3px}.planner-date-label span{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#788780}.planner-date-label strong{height:28px;width:28px;border-radius:50%;display:grid;place-items:center;color:#596b64;font:700 15px 'DM Sans',sans-serif}.planner-date.today .planner-date-label strong{background:#438c69;color:white}.planner-count{display:flex;align-items:center;justify-content:center;gap:2px;padding:0 2px 6px}.planner-count .day-count-input{width:36px;height:21px;font-size:10px}.planner-count span{font-size:7px;color:#83948b}.planner-name-cell{padding:6px 12px!important}.planner-monitor{display:flex;align-items:center;gap:9px;min-height:32px}.planner-monitor .initial{width:26px;height:26px;margin:0;flex:none;font-size:8px}.planner-monitor strong{display:block;font-size:10px;color:#354a43;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monitor-status{display:block;margin-top:2px;font-size:8px;color:#8c9893}.monitor-status.status-yes{color:#438565}.monitor-status.status-no{color:#ad7569}.planner-cell{height:45px;width:62px;min-width:62px;background:white}.planner-cell:nth-child(even){background:#fcfdfc}.assignment-toggle{appearance:none;width:16px;height:16px;border:1px solid #d4ded8;border-radius:4px;background:#fff;cursor:pointer;vertical-align:middle;position:relative}.assignment-toggle:checked{border-color:#33765a;background:#33765a}.assignment-toggle:checked:after{content:'✓';color:#fff;font:700 12px 'DM Sans',sans-serif;position:absolute;left:2px;top:-1px}.assignment-toggle:disabled{background:#f0f2f1;border-color:#e7ebe8;cursor:not-allowed}.assignment-toggle:focus-visible{outline:2px solid #7cab93;outline-offset:2px}
@media(max-width:720px){.view-switch{padding-left:12px}.planner-name-header,.planner-name-cell{width:150px;min-width:150px;max-width:150px}.planner-monitor{gap:6px}.planner-monitor .initial{width:23px;height:23px}.planner-monitor strong{font-size:9px}.planner-date,.planner-cell{width:56px;min-width:56px}.planner-count .day-count-input{width:33px}.planner-cell{height:40px}}
.planner-assigned-count{display:flex;align-items:baseline;justify-content:center;gap:2px;padding:0 1px 6px;color:#ff0000;white-space:nowrap}.planner-assigned-count strong{font:800 15px Manrope,sans-serif;color:#ff0000;line-height:1}.day-count-badge{min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#e8f3ec;color:#367456;font:700 8px 'DM Sans',sans-serif;display:inline-flex;align-items:center;justify-content:center;margin-left:3px}.day-count-badge[hidden]{display:none}

.welcome-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.manage-dialog-content{position:relative;padding:27px}.manage-dialog-content h2{font:700 20px Manrope,sans-serif;color:#1b3934;margin:0 0 8px}.manage-dialog-content .dialog-copy{padding-right:20px}.manage-dialog-content .dialog-actions{margin-top:16px}#monitors-dialog{width:min(600px,calc(100% - 32px));max-height:min(82vh,760px);overflow:auto}.manage-table{min-width:0!important}.manage-table thead th:first-child{width:auto}.manage-table thead th:last-child{width:60px;text-align:center}.manage-table tbody td:last-child{text-align:center}.manage-table .name-cell .initial{flex:none}.visible-remove-button{opacity:1;color:#a3564e}.visible-remove-button:hover{color:#842d26;background:#fbefed}@media(max-width:720px){.welcome-actions{width:100%}.manage-dialog-content{padding:24px 18px}.manage-table tbody td{padding-left:10px;padding-right:10px}}

.planner-cell.is-assigned{background:#86d99a!important}.assignment-toggle:checked{border-color:#00a83b;background:#00a83b;box-shadow:0 0 0 3px #d4f2dd}.assignment-toggle:checked:after{color:#fff}

.planner-total-header,.planner-total-cell{position:sticky;right:0;width:68px;min-width:68px;max-width:68px;text-align:center;background:#fbfcfb;z-index:2}.planner-total-header{top:0;z-index:5;padding:10px 5px!important;font-size:9px;letter-spacing:.5px;color:#8b9792}.planner-total-cell{background:#f4f8f5;font:700 12px 'DM Sans',sans-serif;color:#245c4a}.planner-total-cell strong{display:inline-grid;place-items:center;min-width:24px;min-height:24px;border-radius:8px;background:#e3f0e8}

.planner-cell.is-presence-red{background:#ffd6d6!important}.planner-cell.is-presence-red .assignment-toggle:checked{border-color:#e00000;background:#e00000;box-shadow:0 0 0 3px #ffd1d1}

.planner-present-header,.planner-present-cell{right:120px;width:94px;min-width:94px;max-width:94px}.planner-absent-header,.planner-absent-cell{right:0;width:120px;min-width:120px;max-width:120px}.planner-present-cell{background:#f4f8f5}.planner-absent-cell{background:#fff1f1;color:#c90000}.planner-absent-cell strong{background:#ffd6d6;color:#c90000}.planner-present-header,.planner-absent-header{white-space:normal;line-height:1.3;font-size:8px;letter-spacing:.2px}

.planner-absent-header,.planner-absent-cell{right:0;width:88px;min-width:88px;max-width:88px}.planner-present-header,.planner-present-cell{right:88px}

.planner-absent-header,.planner-absent-cell{width:64px;min-width:64px;max-width:64px}.planner-present-header,.planner-present-cell{right:64px}

.planner-present-header,.planner-present-cell{right:64px;width:64px;min-width:64px;max-width:64px}

.planner-present-header,.planner-present-cell{width:48px;min-width:48px;max-width:48px}

.planner-present-header,.planner-present-cell{width:64px;min-width:64px;max-width:64px}

.planner-present-header,.planner-present-cell{width:58px;min-width:58px;max-width:58px}

/* Planning mensuel inspiré du tableau hebdomadaire de référence */
.planner-scroll{max-height:72vh;background:#fff;border:1px solid #dfe5e4;border-radius:0 0 10px 10px}.planner-table{min-width:max-content;background:#fff}.planner-week-row th{height:34px;position:sticky;top:0;z-index:5;background:#f5f7f8;border-bottom:1px solid #d9e0e2;color:#697b86;font-size:10px;letter-spacing:.3px}.planner-week-header{font-weight:700;text-align:left;padding:0 10px!important;border-right:1px solid #dce3e5!important}.planner-name-header{top:0!important;vertical-align:middle;background:#f5f7f8!important}.planner-date{top:34px;z-index:4;height:67px;background:#fff}.planner-date.weekend{background:#fff3e4}.planner-date.today{background:#edf5fb}.planner-date.today .planner-date-label strong{background:#2f7cba}.planner-date-label{padding:7px 1px 2px}.planner-date-label span{text-transform:uppercase;font-size:9px;color:#7b8d96;letter-spacing:.2px}.planner-date-label strong{font-size:14px;color:#344c58}.planner-assigned-count{padding-bottom:5px}.planner-assigned-count strong{font-size:13px;color:#df2626}.planner-cell{height:43px;padding:2px!important;background:#f9fafb;transition:background .12s}.planner-cell.weekend{background:#fff8ef}.planner-cell.is-assigned{background:#19dc29!important}.planner-cell.is-presence-red{background:#ff7777!important}.planner-assignment-control{display:flex;position:relative;align-items:center;justify-content:center;width:100%;height:100%;min-height:37px;cursor:pointer}.assignment-toggle{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.assignment-toggle:disabled{cursor:not-allowed}.planner-cell-label{font-size:9px;font-weight:700;color:#fff;pointer-events:none}.planner-cell:not(.is-assigned) .planner-cell-label{display:none}.planner-cell.is-presence-red .planner-cell-label{color:#fff}.planner-assignment-control:has(.assignment-toggle:focus-visible){outline:2px solid #216f9d;outline-offset:-2px;border-radius:2px}.planner-total-header,.planner-total-cell{z-index:3}.planner-total-header{background:#f5f7f8}.planner-present-header,.planner-present-cell{right:64px;width:58px;min-width:58px;max-width:58px}.planner-absent-header,.planner-absent-cell{right:0;width:64px;min-width:64px;max-width:64px}.planner-present-cell{background:#f0f8f1}.planner-absent-cell{background:#fff0f0;color:#c90000}.planner-absent-cell strong{background:#ffdada;color:#c90000}.planner-name-cell{background:#fff;box-shadow:2px 0 5px #29434a0b}.planner-body tr:nth-child(even) .planner-name-cell{background:#f9fbfc}.planner-table tr:hover .planner-name-cell{background:#f1f7f9}@media(max-width:720px){.planner-date,.planner-cell{width:50px;min-width:50px}.planner-cell{height:39px}.planner-cell-label{font-size:8px}.planner-week-row th{font-size:9px}.planner-date{top:34px}}

.planner-date.closed-day{background:#fff0d8!important}.planner-cell.closed-day{background:#fff5e7!important}.planner-cell.closed-day.is-assigned{background:#19dc29!important}.planner-cell.closed-day.is-presence-red{background:#ff7777!important}

.planner-date.closed-day{background:#dff4ff!important}.planner-cell.closed-day{background:#edf9ff!important}.planner-cell.closed-day.is-assigned{background:#19dc29!important}.planner-cell.closed-day.is-presence-red{background:#ff7777!important}

.planner-cell.closed-day .planner-assignment-control{cursor:not-allowed}

.absence-chart-card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;margin:0 0 20px}.absence-chart-heading{padding:20px 21px;border-bottom:1px solid var(--line)}.absence-chart-heading .eyebrow{margin-bottom:6px}.absence-chart-heading h2{font:700 16px Manrope,sans-serif;color:#1b3934;margin:0}.absence-chart-heading p:last-child{font-size:11px;color:#86938e;margin:6px 0 0}.absence-chart-heading p strong{color:#435c53}.absence-chart-scroll{max-height:65vh;overflow:auto}.absence-chart-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;text-align:center}.absence-chart-table th,.absence-chart-table td{width:72px;min-width:72px;border-right:1px solid #edf0ee;border-bottom:1px solid #edf0ee;padding:0}.absence-chart-table thead th{position:sticky;top:0;z-index:2;height:34px;background:#f5f8f7;color:#74847c;font-size:9px;text-transform:uppercase;letter-spacing:.4px}.absence-chart-table thead .absence-name-header,.absence-chart-table .absence-name-cell{position:sticky;left:0;width:205px;min-width:205px;text-align:left;padding:0 14px;background:#fff;z-index:1}.absence-chart-table thead .absence-name-header{top:0;z-index:4;background:#f5f8f7}.absence-chart-table .absence-name-cell{font-size:10px;font-weight:600;color:#354a43;height:48px}.absence-chart-table tbody tr:nth-child(even) .absence-name-cell{background:#f9fbfa}.absence-bar-cell{height:47px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;padding-top:3px}.absence-bar-cell>span{font:700 9px Manrope,sans-serif;color:#bd3f3a;line-height:12px}.absence-bar-track{width:22px;height:30px;display:flex;align-items:flex-end;justify-content:center;background:#fbf4f3;border-radius:4px 4px 0 0;overflow:hidden}.absence-bar-track i{display:block;width:100%;max-height:30px;background:#ef6c65;border-radius:4px 4px 0 0}.absence-bar-cell>span:only-child{color:#9aa5a0}@media(max-width:720px){.absence-chart-heading{padding:17px 15px}.absence-chart-table thead .absence-name-header,.absence-chart-table .absence-name-cell{width:150px;min-width:150px;padding:0 10px}.absence-chart-table th,.absence-chart-table td{width:58px;min-width:58px}.absence-bar-track{width:18px}}

#absence-chart-dialog{width:min(1000px,calc(100% - 32px));max-height:88vh;overflow:auto;border-radius:13px}#absence-chart-dialog .absence-chart-card{margin:0;border:0;border-radius:13px}#absence-chart-dialog .absence-chart-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}#absence-chart-dialog .absence-chart-scroll{max-height:58vh}@media(max-width:720px){#absence-chart-dialog .absence-chart-heading{align-items:flex-start}.welcome-actions #show-absence-chart-button{width:100%;justify-content:center}}

#absence-chart-dialog{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}#absence-chart-dialog .absence-chart-scroll{max-height:none;overflow:visible}.absence-chart-table thead th{height:29px}.absence-chart-table .absence-name-cell{height:34px}.absence-bar-cell{height:33px;gap:0;padding-top:1px}.absence-bar-cell>span{font-size:8px;line-height:10px}.absence-bar-track{height:21px}.absence-bar-track i{max-height:21px}

.absence-chart-table .absence-total-header,.absence-chart-table .absence-total-cell{position:sticky;right:0;width:72px;min-width:72px;max-width:72px;z-index:2;border-left:1px solid #dfe8e2}.absence-chart-table .absence-total-header{background:#eaf3ed;z-index:3;color:#356550}.absence-chart-table .absence-total-cell{background:#f0f8f1;font:700 11px Manrope,sans-serif;color:#245c4a}.absence-chart-table .absence-total-cell strong{display:inline-grid;place-items:center;min-width:24px;min-height:22px;border-radius:7px;background:#dcefe2}

@keyframes top-absence-flash{0%,100%{opacity:1}50%{opacity:.22}}.absence-chart-table .absence-total-cell.is-top-absence strong{color:#e00000;background:#ffe0e0;animation:top-absence-flash .9s steps(2,end) infinite}@media(prefers-reduced-motion:reduce){.absence-chart-table .absence-total-cell.is-top-absence strong{animation:none;color:#e00000}}

.absence-chart-actions{display:flex;align-items:center;gap:8px;flex:none}.absence-chart-actions label{font-size:11px;font-weight:600;color:#66766f}.absence-year-select,#absence-chart-year{height:36px;min-width:88px;border:1px solid #dfe8e2;border-radius:8px;background:#fff;color:#245c4a;padding:0 10px;font:600 12px 'DM Sans',sans-serif}@media(max-width:720px){#absence-chart-dialog .absence-chart-heading{flex-wrap:wrap}.absence-chart-actions{width:100%;justify-content:flex-end}}

#top-absence-dialog{width:min(520px,calc(100% - 32px));max-height:85vh;overflow:auto}#top-absence-dialog .manage-dialog-content h2{padding-right:22px}.top-absence-table{min-width:0!important}.top-absence-table thead th:last-child,.top-absence-table tbody td:last-child{text-align:right;width:110px}.top-absence-table tbody td{height:48px}.top-absence-rank{display:inline-grid;place-items:center;width:23px;height:23px;margin-right:10px;border-radius:8px;background:#ffe1e1;color:#d90000;font:700 10px Manrope,sans-serif}.top-absence-count strong{color:#e00000;font:800 16px Manrope,sans-serif}.top-absence-count{white-space:nowrap}

.planner-cell.is-presence-blue{background:#124d9a!important}.planner-cell.is-presence-blue .planner-cell-label{color:#fff}

.planner-cell-extra{display:none;align-items:center;justify-content:center;width:100%;min-height:12px;flex:0 0 12px;background:#fff;color:#124d9a;font:700 8px 'DM Sans',sans-serif;line-height:12px}.planner-cell-extra[hidden]{display:none}.planner-cell.is-presence-blue .planner-assignment-control{flex-direction:column;justify-content:flex-start}.planner-cell.is-presence-blue .planner-cell-extra:not([hidden]){display:flex}.planner-cell.is-presence-blue .planner-cell-label{flex:1;display:flex;align-items:center;justify-content:center;width:100%;font-size:8px;color:#fff}

.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#e6f2ed 0,transparent 36%),#f5f7f5}.auth-screen[hidden]{display:none}.auth-card{width:min(420px,100%);padding:36px;background:#fff;border:1px solid #e5ece7;border-radius:18px;box-shadow:0 18px 60px #183a3414}.auth-brand-mark{width:46px;height:46px;border-radius:15px;margin:0 auto 22px;font-size:23px}.auth-card .eyebrow{text-align:center;margin-bottom:8px}.auth-card h1{text-align:center;font:800 26px Manrope,sans-serif;color:#1a3632;margin:0}.auth-description{text-align:center;color:#84918b;font-size:12px;margin:8px 0 25px}.auth-card .field-label{margin-top:14px}.auth-password-label{margin-top:16px!important}.auth-card .name-input{min-height:44px}.auth-submit{width:100%;justify-content:center;margin-top:23px;min-height:43px}.auth-switch-copy{text-align:center;color:#78857f;font-size:11px;margin:18px 0 0}.auth-mode-toggle{border:0;background:transparent;color:#24674e;font:700 11px 'DM Sans',sans-serif;cursor:pointer;padding:4px}.auth-mode-toggle:hover{text-decoration:underline}.auth-card .form-error{padding:9px 10px;border-radius:7px;background:#fff3f1;margin-top:12px}.logout-button{white-space:nowrap}@media(max-width:520px){.auth-card{padding:30px 22px}.topbar{justify-content:center}.logout-button{margin-left:auto}}

.roster-card .table-wrap{overflow-x:auto}.roster-card table{min-width:820px}.roster-card thead th:nth-child(1){width:24%}.roster-card thead th:nth-child(2){width:15%}.roster-card thead th:nth-child(3){width:21%}.roster-card thead th:nth-child(4){width:30%}.roster-card thead th:nth-child(5){width:48px}.roster-card tbody td{padding-left:14px;padding-right:14px}.contract-type{min-width:90px;border:1px solid #e5ebe7;border-radius:7px;padding:7px 8px;background:#fff;color:#52635e;font:600 10px 'DM Sans',sans-serif}.contract-type:focus{outline:2px solid #dcece2;border-color:#77a292}.contract-type option[value='EXTRA']{color:#247c72}.contract-type option[value='FIXE']{color:#315f9a}

.manage-table thead th:nth-child(2){width:120px}.manage-table thead th:last-child{width:46px}.manage-table tbody td:nth-child(2){width:120px;padding-left:8px;padding-right:8px}.manage-table tbody td:last-child{width:46px;padding-left:4px;padding-right:4px}.manage-table .contract-type{min-width:84px}

.planner-monitor-details{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}.planner-contract{min-width:66px;height:19px;padding:1px 16px 1px 5px;font-size:8px;border-color:#e6ece8;border-radius:5px}.planner-monitor-details strong{max-width:143px}@media(max-width:720px){.planner-monitor-details strong{max-width:92px}.planner-contract{min-width:60px;height:18px;padding-left:4px;font-size:7px}}
/* Give the monthly planner more horizontal room without enlarging its height. */
.shell{max-width:1600px;padding-left:24px;padding-right:24px}
@media(max-width:720px){.shell{padding-left:16px;padding-right:16px}}
.planner-scroll{max-height:82vh}
.manage-add-monitor{margin:0 0 14px}
.planner-contract-label{color:#e00000;font-size:9px;font-weight:800;line-height:1;text-transform:uppercase}
@media(max-width:720px){.planner-contract-label{font-size:8px}}
.planner-formation-aff-cell.is-assigned:not(.is-presence-red){background:#f7caca!important}
.planner-formation-aff-cell.is-assigned{box-shadow:inset 0 0 0 2px #ff1010}
.planner-formation-aff-cell.is-presence-red{background:#ff7777!important}
.planner-formation-aff-cell .planner-assignment-control{display:flex;flex-direction:column;justify-content:flex-start;gap:2px;padding:1px}
.planner-formation-aff-cell .assignment-toggle{z-index:0}
.formation-aff-header{position:relative;z-index:1;display:block;width:100%;flex:0 0 12px;background:#fff;color:#9d3333;font:700 7px 'DM Sans',sans-serif;line-height:12px;text-align:center;pointer-events:none}
.formation-language-select{position:relative;z-index:2;width:100%;height:17px;min-width:0;padding:0 2px;border:1px solid #e8baba;border-radius:3px;background:#fff;color:#8b3434;font:600 8px 'DM Sans',sans-serif;text-align:center;cursor:pointer}
.formation-language-select[hidden],.formation-aff-header[hidden]{display:none}
.planner-formation-aff-cell .planner-cell-label{display:none!important}
@media(max-width:720px){.formation-aff-header{font-size:6px;flex-basis:11px;line-height:11px}.formation-language-select{height:16px;font-size:7px}}
#date-events-dialog{width:min(820px,calc(100% - 32px));max-height:88vh;overflow:auto}
#date-events-dialog [hidden],#date-events-empty[hidden]{display:none!important}
#users-dialog{width:min(980px,calc(100% - 32px));max-height:88vh;overflow:auto}
#users-dialog [hidden]{display:none!important}
.users-table td{height:46px;white-space:nowrap}
.user-pending-label{display:block;margin-top:2px;color:#a66a12;font-size:9px;font-weight:700}
.user-self-label{color:#64847c;font-size:10px;font-weight:700;padding:0 6px}
.temporary-password{margin:0 0 16px;padding:12px 14px;border:1px solid #f1d9a6;border-radius:9px;background:#fff8e8;font-size:12px;color:#5b4a26}
.temporary-password p{margin:0 0 8px}
.temporary-password-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.temporary-password code{font:700 17px ui-monospace,Consolas,monospace;letter-spacing:1px;color:#1b3934;background:#fff;border:1px solid #ecdcb5;border-radius:6px;padding:6px 10px;user-select:all}
body.is-viewer .admin-only{display:none!important}
.planner-client-cell{background:#f4f8ff!important}
.stat-day-body{flex:1;min-width:0}
.stat-day-unset{display:block;margin-top:2px;font-size:10px;color:#7d8b86}
.stat-day-unset[hidden]{display:none}
.stat-day-nav{display:flex;gap:4px;align-self:center;flex:none}
.stat-day-nav .icon-button{width:28px;height:28px;font-size:20px;line-height:16px}
.client-count-input{display:block;width:100%;height:37px;border:1px solid #d6e2f2;border-radius:5px;background:#fff;color:#1d4f91;font:800 14px Manrope,sans-serif;text-align:center;padding:0 2px;outline:none}
.client-count-input:focus{border-color:#2f7cba;box-shadow:0 0 0 2px #dceaf8}
.client-count-input::placeholder{color:#b7c4d4;font-weight:500}
.client-count-input:disabled{background:transparent;border-color:transparent;color:#1d4f91}
.planner-client-cell.closed-day .client-count-input:disabled{color:#9fb0c3}
body.is-viewer .planner-assignment-control,body.is-viewer .assignment-toggle:disabled{cursor:default}
.date-events-content{padding:27px}
.date-event-form{display:grid;grid-template-columns:150px minmax(180px,1fr) 150px minmax(180px,1fr);gap:7px 10px;align-items:center;margin:0 0 18px}
.date-event-form .field-label{margin:0}
.date-event-form .name-input{height:38px;padding:7px 9px}
.date-event-form .dialog-actions{grid-column:1/-1;margin-top:6px}
.date-events-table-wrap{max-height:42vh;overflow:auto}
.date-events-table-wrap .manage-table{min-width:580px!important}
.date-events-table-wrap .manage-table td{height:42px}
.date-event-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap}
.date-event-edit{padding:6px 8px;font-size:10px}
.date-events-table-wrap .remove-button{opacity:1}
.planner-date.public-holiday{background:#fff0e9!important}
.planner-cell.public-holiday{background:#fff8f2}
.planner-date:has(.planner-date-events){height:84px}
.planner-date-events{display:flex;flex-direction:column;gap:1px;padding:0 1px 2px;overflow:hidden}
.planner-date-event{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:1px 2px;font:700 6px 'DM Sans',sans-serif;line-height:9px}
.planner-date-event.is-holiday{background:#ffe1d4;color:#a64627}
.planner-date-event.is-formation{background:#f7caca;color:#9d3333}
.stat-formation{background:#fff4f2;border-color:#f5dfdc}
.stat-formation .stat-icon{background:#f9dfdc;color:#a33b35;font:800 9px Manrope,sans-serif}
.stat-contracts{background:#ffedd5;border-color:#fbdcb4}.stat-contract-values{display:flex;flex-wrap:wrap;gap:4px 18px}.stat-contract-values span{font-size:12px;color:#5f6f6a}.stat-contract-values .stat-contract-fixe,.stat-contract-fixe strong{color:#d91f1f}.stat-contract-values .stat-contract-extra,.stat-contract-extra strong{color:#1d6fc4}.stat-contract-button{border:0;background:none;padding:0;color:inherit;font:inherit;cursor:pointer;border-radius:6px}.stat-contract-button:hover{text-decoration:underline}.stat-contract-button:focus-visible{outline:2px solid currentColor;outline-offset:3px}#contract-dialog{max-height:85vh;overflow:auto}#contract-title .contract-count-fixe{color:#d91f1f}#contract-title .contract-count-extra{color:#1d6fc4}
.planner-name-content{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:5px}
.planner-name-content>strong{font-size:12px;letter-spacing:.7px;color:#000}
.planner-month-nav{display:flex;justify-content:center;gap:8px;width:100%;margin-top:8px}
.planner-month-nav button{width:38px;height:30px;padding:0;border:1px solid #dce3e5;border-radius:5px;background:#fff;color:#334b57;font:700 26px 'DM Sans',sans-serif;line-height:25px;cursor:pointer}
.planner-month-nav button:hover{background:#eaf2f6;border-color:#b6c8d1;color:#245c76}
.month-title-row{display:flex;align-items:center;gap:14px}
.month-title-row h1{white-space:nowrap}
.month-title-nav{display:flex;align-items:center;gap:6px;flex:none}
#today-dialog{max-height:85vh;overflow:auto}
.today-count{color:#e00000}
.today-day-nav{display:flex;align-items:center;gap:6px;margin-bottom:12px;padding-right:28px}
.today-day-nav .eyebrow{margin:0 0 0 6px}
.agenda-heading-actions{display:flex;align-items:center;gap:14px;flex:none;margin-left:auto}
.agenda-heading{flex-wrap:wrap;gap:12px 16px}
.today-monitors{list-style:none;margin:14px 0 0;padding:0;border:1px solid var(--line);border-radius:8px;max-height:50vh;overflow:auto}
.today-monitors[hidden]{display:none}
.today-monitors li{min-height:42px;padding:6px 10px;font-size:12px;border-top:1px solid #f0f2f1}
.today-monitors li:first-child{border-top:0}
.today-monitors .initial{flex:none}
.today-absent-label{margin-left:auto;padding-left:10px;color:#c90000;font-size:10px;font-weight:700}
.brand strong{font-size:20px}
.brand small{font-size:11px}
.topbar{display:grid;grid-template-columns:1fr auto 1fr;height:auto;min-height:104px;align-items:center;gap:12px}
.topbar-logo{grid-column:1;justify-self:start;display:block;width:100%;max-width:180px;height:auto}
.topbar .brand{grid-column:2;gap:16px}
.topbar .logout-button{grid-column:3;justify-self:end}
.topbar .brand-mark{width:64px;height:64px;border-radius:18px;font-size:34px}
.topbar .brand strong{font-size:34px;line-height:1.1}
.topbar .brand small{font-size:16px;letter-spacing:2.6px;margin-top:3px}
@media(max-width:520px){.topbar .brand{gap:10px}.topbar .brand-mark{width:48px;height:48px;border-radius:14px;font-size:26px}.topbar .brand strong{font-size:24px}.topbar .brand small{font-size:11px;letter-spacing:1.8px}.topbar .logout-button{padding:9px 10px;font-size:11px}}
@media print{
  @page{size:A4 landscape;margin:8mm}
  *,*::before,*::after{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  html,body{width:auto;height:auto;min-height:0;overflow:visible!important;background:#fff!important}
  #auth-screen,.topbar,.welcome,.stats,.roster-card,.privacy-note,dialog,.toast{display:none!important}
  #app-shell{display:block!important;width:auto;max-width:none;margin:0;padding:0;zoom:1}
  .agenda-card{display:block!important;margin:0;border:0;border-radius:0;overflow:visible}
  .agenda-heading{padding:0 0 5px}
  .agenda-heading p,.availability-key,#show-today-button,.month-controls{display:none!important}
  .agenda-heading h2{font-size:12px;color:#111}
  #planning-view{display:block!important}
  #calendar-view{display:none!important}
  .planner-scroll{width:100%;height:auto;max-height:none;overflow:visible;border:0;border-radius:0}
  .planner-table{width:100%!important;min-width:0!important;table-layout:fixed;border-collapse:collapse}
  .planner-table col.planner-print-name-column{width:135px!important}
  .planner-table col.planner-print-day-column{width:auto!important}
  .planner-table col.planner-print-total-column{width:42px!important}
  .planner-table thead{display:table-header-group}
  .planner-table tr{break-inside:avoid;page-break-inside:avoid}
  .planner-table th,.planner-table td{position:static!important;min-width:0!important}
  .planner-name-header,.planner-name-cell{width:135px!important;min-width:135px!important;max-width:135px!important}
  .planner-date,.planner-cell{width:auto!important;min-width:0!important}
  .planner-present-header,.planner-present-cell,.planner-absent-header,.planner-absent-cell{width:42px!important;min-width:42px!important;max-width:42px!important;right:auto!important}
  .planner-name-header{font-size:8px!important;padding:3px!important}
  .planner-name-content{width:100%;gap:2px}
  .planner-name-content>strong{font-size:8px}
  .planner-month-nav{display:none!important}
  .planner-week-row th{height:17px;font-size:7px}
  .planner-week-header{padding:0 2px!important}
  .planner-date{height:60px!important}
  .planner-date-label{gap:0;padding:2px 0}
  .planner-date-label span{font-size:6px}
  .planner-date-label strong{width:auto;height:auto;border-radius:0;font-size:8px}
  .planner-assigned-count{padding:0 0 2px}
  .planner-assigned-count strong{font-size:7px}
  .planner-date-events{gap:0;padding:0}
  .planner-date-event{font-size:5px;line-height:7px;padding:0}
  .planner-cell{height:32px!important;padding:1px!important}
  .planner-assignment-control{min-height:0!important;height:100%!important}
  .assignment-toggle{display:none!important}
  .client-count-input{border:0!important;background:transparent!important;font-size:7px!important;height:auto!important;-moz-appearance:textfield}
  .client-count-input::-webkit-inner-spin-button,.client-count-input::-webkit-outer-spin-button{display:none}
  .planner-cell-label{font-size:6px!important}
  .planner-cell-extra{font-size:6px!important;min-height:9px!important;flex-basis:9px!important;line-height:9px!important}
  .planner-formation-aff-cell .planner-assignment-control{gap:1px;padding:0}
  .formation-aff-header{font-size:5px;line-height:8px;flex-basis:8px}
  .formation-language-select{height:12px;padding:0;border:0;appearance:none;-webkit-appearance:none;font-size:6px}
  .planner-total-header,.planner-total-cell{z-index:auto!important}
}
@media(max-width:720px){.date-events-content{padding:24px 18px}.date-event-form{grid-template-columns:1fr;gap:5px}.date-event-form .field-label:not(:first-of-type){margin-top:5px}.date-event-form .dialog-actions{grid-column:auto}.planner-date:has(.planner-date-events){height:80px}.planner-date-event{font-size:5px;padding:1px;line-height:8px}}

/* Rectangles du haut plus étroits : les 6 sur une ligne sur grand écran, 3 sur tablette, 2 sur téléphone. */
.stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.stat-card{padding:10px 12px;gap:10px;min-height:64px}
.stat-icon{width:30px;height:30px;border-radius:9px;font-size:15px;flex:none}
.stat-label{font-size:10px;line-height:1.25}
.stat-card strong{font-size:19px}
.stat-contract-values{gap:2px 10px}
.stat-contract-values span{font-size:11px}
.stat-day-nav{gap:3px}
.stat-day-nav .icon-button{width:24px;height:24px;border-radius:7px;font-size:17px;line-height:14px}
/* Flèches du rectangle « Présents » : en bas, près du bord droit. */
.stat-day-contracts .stat-day-nav{align-self:flex-end;margin:0 -6px -4px 0}
@media(max-width:1100px){
  .welcome{flex-direction:column;align-items:flex-start;gap:16px;padding:28px 0 20px}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .agenda-heading{flex-wrap:wrap}
}
@media(max-width:720px){
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .stat-card{min-height:58px;padding:9px 10px}
  .stat-icon{display:none}
  .stat-day-contracts{flex-wrap:wrap;align-items:flex-start}
  .stat-day-contracts .stat-day-nav{width:100%;justify-content:flex-end;margin:-2px -4px -3px 0}
  .welcome-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .welcome-actions button,.welcome-actions #show-absence-chart-button{width:100%;justify-content:center;text-align:center;padding:10px 8px;line-height:1.25}
  .agenda-heading{padding:14px 14px 12px;gap:10px}
  .agenda-heading-actions{margin-left:0}
  .topbar-logo{max-width:110px}
}
.empty-state[hidden]{display:none}
/* Fenêtre Moniteurs : dates de début et de fin, travail en extérieur. */
#monitors-dialog{width:min(1000px,calc(100% - 24px))}
#monitors-dialog .manage-table-wrap{overflow-x:auto}
#monitors-dialog .manage-table{min-width:820px!important}
#monitors-dialog .manage-table thead th:nth-child(3),#monitors-dialog .manage-table thead th:nth-child(4){width:140px}
.monitor-date{height:32px;padding:4px 6px;font-size:11px;min-width:126px}
.monitor-outside-header{text-align:center!important;width:90px}
.monitor-outside-cell{text-align:center}
.monitor-outside-toggle{width:18px;height:18px;accent-color:#287257;cursor:pointer}
.manage-monitor-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.manage-monitor-actions .manage-add-monitor{margin:0}

/* Fenêtre « Saisir des disponibilités ». */
#availability-dialog{width:min(520px,calc(100% - 24px));max-height:92vh;overflow:auto}
#availability-dialog [hidden]{display:none!important}
.availability-month-nav{display:flex;align-items:center;gap:8px;margin:14px 0 12px}
.availability-month-nav .name-input{flex:1;text-align:center;font-weight:700;text-transform:capitalize}
.availability-weekdays,.availability-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.availability-weekdays span{text-align:center;font-size:9px;font-weight:700;letter-spacing:.6px;color:#8b9792;padding-bottom:2px}
.availability-day{position:relative;display:grid;place-items:center;height:42px;border:1px solid #dfe8e2;border-radius:8px;background:#fff;cursor:pointer;font:700 14px Manrope,sans-serif;color:#2f4641;user-select:none}
.availability-day.is-weekend{background:#fff8ef}
.availability-day input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.availability-day:has(input:checked){background:#19dc29;border-color:#12b820;color:#fff}
.availability-day:has(input:focus-visible){outline:2px solid #216f9d;outline-offset:1px}
.availability-day.is-existing,.availability-day.is-existing:has(input:checked){background:#d9efdd;border-color:#b8dcbf;color:#3a7a48}
.availability-day.is-closed{background:#edf2f4;border-color:#e3e9ec;color:#b3bec4}
.availability-day.is-existing input,.availability-day.is-closed input{cursor:not-allowed}
.availability-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0 0;font-size:10px;color:#7d8b86}
.availability-legend span{display:inline-block;width:12px;height:12px;border-radius:3px;margin-left:6px}
.availability-legend span:first-child{margin-left:0}
.availability-key-existing{background:#d9efdd;border:1px solid #b8dcbf}
.availability-key-closed{background:#edf2f4;border:1px solid #e3e9ec}
.availability-summary{margin:8px 0 0;font-size:12px;font-weight:700;color:#245c4a}
.availability-done{margin:8px 0 0;padding:8px 10px;border-radius:8px;background:#e6f6e9;color:#22683a;font-size:12px;font-weight:600}
@media(max-width:400px){.availability-day{height:36px;font-size:12px}}

/* Menu burger en haut à gauche : il regroupe les actions de la page. */
.topbar-left{grid-column:1;justify-self:start;display:flex;align-items:center;gap:14px;min-width:0;width:100%}
.topbar-left .topbar-logo{flex:0 1 180px;min-width:0;width:100%}
.menu-wrap{position:relative;flex:none}
.burger-button{width:42px;height:42px;border:1px solid #e3eae5;border-radius:10px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;padding:0}
.burger-button span{display:block;width:20px;height:2px;border-radius:2px;background:var(--deep);transition:transform .15s,opacity .15s}
.burger-button:hover{background:#f4f8f5}
.burger-button:focus-visible{outline:2px solid #7cab93;outline-offset:2px}
.burger-button[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger-button[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger-button[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.burger-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:30;min-width:250px;padding:6px;background:#fff;border:1px solid #e3eae5;border-radius:12px;box-shadow:0 14px 40px #16392f26}
.burger-menu[hidden]{display:none}
.burger-menu button{display:block;width:100%;border:0;background:none;border-radius:8px;padding:11px 12px;text-align:left;font:600 13px 'DM Sans',sans-serif;color:#2f4641;cursor:pointer}
.burger-menu button:hover,.burger-menu button:focus-visible{background:#eef5f1;outline:none}
@media(max-width:720px){.topbar-left{gap:8px}.burger-button{width:38px;height:38px}.topbar-left .topbar-logo{flex-basis:110px}.burger-menu{min-width:230px}}
/* Sur ordinateur, le mois entier (jusqu'à 31 jours) tient dans la largeur de la page, sans défilement horizontal. */
@media screen and (min-width:1100px){
  .planner-table{table-layout:fixed;width:100%!important;min-width:0!important}
  /* Le tableau tient dans la largeur : on masque les quelques pixels de dépassement des colonnes figées. */
  .planner-scroll{overflow-x:hidden}
  .planner-table col.planner-print-name-column{width:150px}
  .planner-table col.planner-print-total-column{width:52px}
  /* Même largeur pour chaque jour, calculée par sizePlannerDays dans app.js. */
  .planner-table col.planner-print-day-column{width:var(--planner-day-width, auto)}
  .planner-name-header,.planner-name-cell{width:150px;min-width:150px;max-width:150px}
  .planner-name-cell{padding:5px 8px!important}
  .planner-monitor{gap:6px}
  .planner-monitor .initial{width:22px;height:22px;font-size:7px}
  .planner-monitor-details strong{max-width:104px}
  .planner-date,.planner-cell{width:auto;min-width:0}
  .planner-present-header,.planner-present-cell{right:52px;width:52px;min-width:52px;max-width:52px}
  .planner-absent-header,.planner-absent-cell{right:0;width:52px;min-width:52px;max-width:52px}
  .planner-week-row th.planner-total-header{font-size:8px;letter-spacing:0;padding:4px 2px!important}
  .planner-total-cell strong{min-width:20px}
  .planner-week-header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;padding:0 4px!important}
  .planner-date-label span{font-size:8px}
  .planner-date-label strong{width:24px;height:24px;font-size:13px}
  .planner-cell-label,.planner-cell-extra{font-size:7px;letter-spacing:-.2px;overflow:hidden;white-space:nowrap}
  .formation-aff-header{overflow:hidden;white-space:nowrap;font-size:6px}
  .formation-language-select{font-size:7px;padding:0}
  .client-count-input{font-size:11px;padding:0;-moz-appearance:textfield;appearance:textfield}
  .client-count-input::-webkit-inner-spin-button,.client-count-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
}
@media(max-width:400px){.topbar .brand strong{font-size:20px}.topbar .brand-mark{width:42px;height:42px;font-size:22px}}
