/* GEPRO v446 — planning et formulaires seulement ; menu latéral inchangé. */
#page-planning.planning-enhanced { min-width:0; }
#page-planning .planning-top { gap:16px; flex-wrap:wrap; }
#page-planning .week-nav { flex-wrap:wrap; gap:7px; }
#page-planning .week-nav :is(.btn-sm,.btn-icon) { background:#f1f6fa; color:#015a9a; border:1px solid #c9d8e3; }
#page-planning .week-nav :is(.btn-sm,.btn-icon):hover { background:#e2edf5; color:#014271; border-color:#9db5c7; }
#page-planning .week-nav :is(.btn-sm,.btn-icon).active { background:#015a9a; color:#fff; border-color:#015a9a; }
#page-planning .week-label { min-width:0; text-transform:capitalize; }
#page-planning .planning-layout { min-width:0; gap:20px; }
#page-planning .planning-grid-wrapper { min-width:0; background:var(--bg-white,#fff); }
#page-planning .planning-grid { min-width:730px; }
#page-planning .planning-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:4px 0 16px; }
#page-planning .planning-view-switch { display:inline-flex; padding:4px; gap:3px; border-radius:11px; background:var(--bg-main,#f0f3f6); border:1px solid var(--border,#e1e7ec); }
#page-planning .planning-view-switch button { border:0; border-radius:7px; padding:8px 15px; background:transparent; color:var(--text-medium,#586775); font:inherit; font-size:13px; font-weight:600; cursor:pointer; min-height:36px; }
#page-planning .planning-view-switch button[aria-pressed=true] { color:var(--primary,#546121); background:var(--bg-white,#fff); box-shadow:0 1px 4px #23332016; }
#page-planning .planning-view-switch button[aria-pressed=true] { color:#015a9a; background:#fff; }
#page-planning .planning-view-hint { flex:1; color:var(--text-light,#697684); font-size:12px; margin:0; }
#page-planning .planning-day-picker { display:flex; gap:6px; padding:12px; border-bottom:1px solid var(--border,#e1e7ec); }
#page-planning .planning-day-button { flex:1; min-width:0; padding:10px 5px; border:1px solid var(--border,#e1e7ec); border-radius:9px; font:inherit; font-size:12px; background:var(--bg-white,#fff); color:var(--text-medium,#586775); cursor:pointer; }
#page-planning .planning-day-button[aria-pressed=true] { border-color:var(--primary,#546121); color:var(--primary,#546121); background:var(--bg-main,#f3f6eb); font-weight:700; }
#page-planning .planning-day-button[aria-pressed=true] { border-color:#015a9a; color:#015a9a; background:#f1f6fa; }
#page-planning :is(.week-nav button,.planning-view-switch button,.planning-day-button):focus-visible { outline:3px solid #015a9a!important; outline-offset:3px; }
body.dark-mode #page-planning .week-nav :is(.btn-sm,.btn-icon) { background:#263542; color:#e8f0f6; border-color:#516777; }
body.dark-mode #page-planning .week-nav :is(.btn-sm,.btn-icon):hover { background:#334a5d; color:#fff; border-color:#80ccef; }
body.dark-mode #page-planning .week-nav :is(.btn-sm,.btn-icon).active { background:#304f67; color:#fff; border-color:#80ccef; }
body.dark-mode #page-planning .planning-view-switch button { color:#c5d2dc; }
body.dark-mode #page-planning .planning-view-switch button[aria-pressed=true] { color:#e8f0f6; background:#30495d; box-shadow:inset 0 0 0 1px #637d90; }
body.dark-mode #page-planning .planning-day-button[aria-pressed=true] { border-color:#80ccef; color:#e8f0f6; background:#30495d; }
body.dark-mode #page-planning :is(.week-nav button,.planning-view-switch button,.planning-day-button):focus-visible { outline-color:#80ccef!important; }
#page-planning [hidden] { display:none!important; }
#page-planning[data-planning-view=day] .planning-grid { min-width:0; }
#page-planning[data-planning-view=day] .grid-header,
#page-planning[data-planning-view=day] .grid-body { grid-template-columns:54px minmax(0,1fr); }
#page-planning .grid-header-cell { min-width:0; }
#page-planning .grid-header-cell { letter-spacing:0; text-transform:none; }
#page-planning .grid-header-cell.today { background:rgba(255,255,255,.14); color:#fff; box-shadow:inset 0 -3px 0 #ffffff70; }
#page-planning .grid-header-cell.today::after { display:none; }
#page-planning .res-block { overflow:hidden; }
#page-planning .res-block:focus-visible { outline:3px solid var(--primary,#546121); outline-offset:2px; z-index:5; }
#page-planning .planning-long-row { display:grid; grid-template-columns:60px repeat(5,minmax(0,1fr)); border-bottom:1px solid var(--border,#e1e7ec); background:var(--bg-main,#f4f6f8); }
#page-planning .planning-long-label { padding:13px 5px; color:var(--text-medium,#586775); font-size:10px; line-height:1.5; font-weight:600; text-align:center; }
#page-planning .planning-long-day { min-width:0; padding:7px; border-left:1px solid var(--border,#e1e7ec); }
#page-planning .planning-long-count { display:block; color:var(--text-medium,#586775); font-size:10px; margin:1px 0 6px; }
#page-planning .planning-long-list { display:grid; align-content:start; gap:6px; max-height:250px; overflow-y:auto; scrollbar-width:thin; scrollbar-gutter:stable; }
#page-planning .planning-long-card { display:flex; flex-direction:column; gap:5px; width:100%; min-width:0; padding:9px 10px; border:1px solid var(--border,#e1e7ec); border-left:3px solid var(--meeting-color,#82bc00); border-radius:8px; background:var(--bg-white,#fff); color:var(--text-dark,#26343c); text-align:left; font:inherit; box-shadow:0 1px 2px #17232e06; }
#page-planning button.planning-long-card { cursor:pointer; }
#page-planning button.planning-long-card:hover { border-top-color:var(--text-light,#697684); border-right-color:var(--text-light,#697684); border-bottom-color:var(--text-light,#697684); box-shadow:0 3px 10px #17232e0d; }
#page-planning .planning-long-card:focus-visible,#page-planning .planning-long-list:focus-visible { outline:3px solid var(--primary,#546121); outline-offset:-2px; }
#page-planning .planning-long-hours { color:var(--text-medium,#586775); font-size:11px; line-height:1.4; font-weight:600; font-variant-numeric:tabular-nums; }
#page-planning .planning-long-title { font-size:12px; font-weight:650; line-height:1.4; overflow-wrap:anywhere; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
#page-planning .planning-long-room { font-size:10px; color:var(--text-medium,#586775); line-height:1.4; overflow-wrap:anywhere; }
#page-planning[data-planning-view=day] .planning-long-row { grid-template-columns:54px minmax(0,1fr); }
#page-planning[data-planning-view=day] .planning-long-list { grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); }
#page-planning .res-block.planning-long-track { padding:0; border:0; border-left:3px solid var(--meeting-color,#82bc00); border-radius:3px; background:transparent!important; box-shadow:none; opacity:.75; }
#page-planning .res-block.planning-long-track::before,#page-planning .res-block.planning-long-track::after { content:''; position:absolute; left:0; width:5px; height:2px; background:var(--meeting-color,#82bc00); }
#page-planning .res-block.planning-long-track::before { top:0; }
#page-planning .res-block.planning-long-track::after { bottom:0; }
#page-planning .res-block.planning-long-track > * { visibility:hidden; }
#page-planning .res-block.planning-long-track:hover,#page-planning .res-block.planning-long-track:focus-visible { opacity:1; transform:none; background:var(--bg-main,#f4f6f8)!important; }
#page-planning .res-block.planning-short-block { background:var(--bg-white,#fff)!important; color:var(--text-dark,#26343c); border:1px solid var(--border,#e1e7ec); border-left:3px solid var(--meeting-color,#82bc00); box-shadow:0 1px 3px #17232e0a; }
#page-planning .res-block.planning-short-block:hover { transform:none; box-shadow:0 3px 10px #17232e20; }
#page-planning .planning-short-block .res-room { opacity:1; color:var(--text-medium,#586775); font-size:9px; letter-spacing:.1px; }
#page-planning .planning-short-block .res-title { font-size:11px; }
#page-planning .planning-short-block .res-president { color:var(--text-medium,#586775); opacity:1; }
.res-drag-ghost { min-width:180px; max-width:min(300px,calc(100vw - 24px)); }
#page-planning .planning-agenda { padding:4px 20px 20px; }
#page-planning .planning-agenda-day + .planning-agenda-day { border-top:1px solid var(--border,#e1e7ec); margin-top:20px; }
#page-planning .planning-agenda-day h3 { font-size:14px; margin:20px 0 12px; text-transform:capitalize; color:var(--text-dark,#26343c); }
#page-planning .planning-agenda-empty { margin:0 0 16px; font-size:13px; color:var(--text-light,#697684); }
#page-planning .planning-agenda-meeting { display:flex; width:100%; min-width:0; text-align:left; gap:14px; padding:14px; margin-bottom:8px; background:var(--bg-white,#fff); border:1px solid var(--border,#e1e7ec); border-left:4px solid var(--meeting-color,#82bc00); border-radius:9px; font:inherit; color:var(--text-dark,#26343c); }
#page-planning button.planning-agenda-meeting { cursor:pointer; }
#page-planning button.planning-agenda-meeting:hover { background:var(--bg-main,#f6f8f2); }
#page-planning .planning-agenda-time { font-size:13px; font-weight:700; white-space:nowrap; padding-top:1px; }
#page-planning .planning-agenda-content { display:flex; flex:1; flex-direction:column; gap:5px; min-width:0; overflow-wrap:anywhere; font-size:13px; }
#page-planning .planning-agenda-content > span { color:var(--text-medium,#586775); font-size:12px; }
#page-planning .planning-agenda-arrow { color:var(--text-light,#697684); }
#page-planning .reservation-form-panel { width:340px; padding:20px; }
#reservationForm .planning-form-section,
#demandeForm .planning-form-section { min-width:0; margin:0 0 20px; padding:15px 0 0; border:0; border-top:1px solid var(--border,#e1e7ec); }
#reservationForm .planning-form-section legend,
#demandeForm .planning-form-section legend { font-size:12px; color:var(--primary,#546121); font-weight:700; letter-spacing:.025em; padding-right:10px; }
#reservationForm .planning-field-grid,
#demandeForm .planning-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 12px; }
#reservationForm .planning-field-grid .form-group,
#demandeForm .planning-field-grid .form-group { min-width:0; margin:0; }
#reservationForm .planning-field-wide,
#demandeForm .planning-field-wide { grid-column:1/-1; }
#reservationForm .form-control,
#demandeForm .form-control { width:100%; min-width:0; }
#reservationForm .planning-form-summary,
#demandeForm .planning-form-summary { border:1px solid var(--border,#e1e7ec); background:var(--bg-main,#f7f9f3); border-radius:10px; padding:14px; margin:16px 0; font-size:12px; overflow-wrap:anywhere; }
.planning-form-summary strong { color:var(--text-dark,#26343c); }
.planning-form-summary p { color:var(--text-medium,#586775); line-height:1.55; margin:7px 0 0; }
#page-planning .planning-form-close { display:none; }
#page-planning .planning-form-backdrop { position:fixed; inset:0; z-index:1198; background:#17232e80; backdrop-filter:blur(3px); }
.planning-review-dialog { width:min(620px,calc(100vw - 32px)); max-height:calc(100dvh - 40px); padding:0; border:1px solid var(--border,#e1e7ec); border-radius:18px; margin:auto; background:var(--bg-white,#fff); color:var(--text-dark,#26343c); box-shadow:0 28px 100px #16202a40; overflow:auto; }
.planning-review-dialog::backdrop { background:#17232e80; backdrop-filter:blur(3px); }
.planning-review-heading { padding:25px 25px 0; }
.planning-review-kicker { color:var(--primary,#546121); font-size:11px; letter-spacing:.05em; text-transform:uppercase; font-weight:700; }
.planning-review-heading h2 { font-size:23px; margin:8px 0; }
.planning-review-heading p { color:var(--text-medium,#586775); font-size:13px; margin:0; }
.planning-review-details { padding:10px 25px; margin:15px 0; }
.planning-review-details > div { display:grid; grid-template-columns:105px minmax(0,1fr); gap:15px; padding:12px 0; border-bottom:1px solid var(--border,#e1e7ec); font-size:13px; line-height:1.6; }
.planning-review-details dt { color:var(--text-light,#697684); }
.planning-review-details dd { margin:0; overflow-wrap:anywhere; font-weight:600; }
.planning-review-note,.planning-review-warning { margin:0 25px 18px; padding:12px; border-radius:8px; font-size:12px; line-height:1.6; background:var(--bg-main,#f5f8ef); }
.planning-review-warning { background:#fff2d9; color:#80561a; }
.planning-review-actions { position:sticky; bottom:0; display:flex; justify-content:flex-end; gap:10px; padding:18px 25px; background:var(--bg-white,#fff); border-top:1px solid var(--border,#e1e7ec); }
.planning-review-actions button { min-height:40px; }
@media (max-width:1499px) {
    #page-planning .planning-layout { display:block; }
    #page-planning .reservation-form-panel { display:none; }
    #page-planning .reservation-form-panel.planning-form-open { display:block; position:fixed; z-index:1199; inset:16px 16px 16px auto; width:min(500px,calc(100vw - 32px)); max-height:none; overflow-y:auto; overscroll-behavior:contain; border-radius:16px; box-shadow:0 24px 80px #18263240; }
    #page-planning .planning-form-close { display:block; margin-left:auto; padding:8px 12px; border:1px solid var(--border,#e1e7ec); border-radius:7px; color:var(--text-medium,#586775); background:var(--bg-white,#fff); cursor:pointer; }
    #page-planning .form-title-row { flex-wrap:wrap; gap:10px; }
    #page-planning #formActions { position:sticky; bottom:-20px; padding:12px 0; background:var(--bg-white,#fff); z-index:2; flex-wrap:wrap; }
}
@media (max-width:760px) {
    #page-planning .planning-toolbar { gap:10px; }
    #page-planning .planning-toolbar > .planning-view-hint { order:3; flex-basis:100%; }
    #page-planning .planning-toolbar > .btn-primary { margin-left:auto; }
    #page-planning .planning-view-switch button { padding:8px 10px; }
    #page-planning .planning-top .week-nav { width:100%; }
    #page-planning .week-label { font-size:13px; }
    #page-planning .planning-day-picker { padding:8px; gap:4px; }
    #page-planning .planning-day-button { font-size:11px; padding:9px 3px; }
    #page-planning .planning-agenda { padding:0 12px 12px; }
    #page-planning .planning-agenda-meeting { padding:12px 10px; gap:10px; }
    #page-planning .reservation-form-panel.planning-form-open { inset:8px; width:auto; padding:20px 16px; }
    #page-planning .reservation-form-panel input,
    #page-planning .reservation-form-panel select,
    #demandeForm input,#demandeForm select,#demandeForm textarea { font-size:16px; }
    .planning-review-heading { padding:20px 18px 0; }
    .planning-review-heading h2 { font-size:21px; }
    .planning-review-details { padding:6px 18px; }
    .planning-review-details > div { grid-template-columns:80px minmax(0,1fr); gap:10px; }
    .planning-review-note,.planning-review-warning { margin-left:18px; margin-right:18px; }
    .planning-review-actions { flex-direction:column-reverse; padding:15px 18px; }
}
@media (max-width:420px) {
    #page-planning .planning-toolbar > .btn-primary { width:100%; margin-left:0; }
    #reservationForm .planning-field-grid,#demandeForm .planning-field-grid { grid-template-columns:minmax(0,1fr); }
}
body.tv-mode #page-planning .planning-toolbar,
body.tv-mode #page-planning .planning-day-picker,
body.tv-mode #page-planning .reservation-form-panel { display:none!important; }
body.tv-mode #page-planning .planning-long-list { max-height:none; overflow:visible; }
body.tv-mode #page-planning .planning-long-hours,body.tv-mode #page-planning .planning-long-room { font-size:12px; }
body.tv-mode #page-planning .planning-long-title { font-size:14px; }
@media print {
    #page-planning .planning-toolbar,#page-planning .planning-day-picker,
    #page-planning .planning-form-backdrop,.planning-review-dialog { display:none!important; }
    #page-planning .planning-grid { min-width:0; }
    #page-planning .planning-long-list { max-height:none; overflow:visible; }
    #page-planning .planning-long-card { break-inside:avoid; box-shadow:none; }
    #page-planning .planning-long-title { display:block; overflow:visible; }
    #page-planning .planning-long-card,#page-planning .planning-long-track { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}

#page-planning .planning-form-open { animation:none; }

#page-demandes .demande-form-wrapper { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); }
#page-demandes .demande-form-card,#page-demandes .demande-history-card { min-width:0; }
@media (max-width:1199px) {
    #page-demandes .demande-form-wrapper { grid-template-columns:minmax(0,1fr); }
}
