:root{--c-bg:#0b0a0a;--c-bg-soft:#171213;--c-accent:#a1171c;--c-accent-hover:#c21f26;--c-text:#f5eeee;--c-text-muted:rgba(245,238,238,0.65);--c-border:rgba(255,255,255,0.16);--c-border-soft:rgba(255,255,255,0.08);--c-cream:#faebeb;--c-cream-text:#2b1213;--font-display:"Bebas Neue Cyrillic","Bebas Neue",sans-serif;--font-label:"Rajdhani",sans-serif;--font-body:"Montserrat",sans-serif}.interne{font-family:var(--font-body);background:var(--c-bg);color:var(--c-text);min-height:100vh}body,html{background:#0b0a0a}.card{border:1px solid var(--c-border-soft);border-radius:14px}.card,.topbar{background:var(--c-bg-soft);box-sizing:border-box}.topbar{position:relative;display:grid;grid-template-columns:1fr clamp(220px,29.75vh,305px) 1fr;align-items:stretch;grid-gap:12px;gap:12px;min-height:clamp(64px,9vh,96px);border-bottom:1px solid var(--c-border-soft);padding:0 40px 0 0}.topbar-menu{grid-column:3;justify-content:flex-end;flex-wrap:wrap;gap:clamp(10px,1.4vw,18px);min-width:0;padding:10px 0}.topbar-menu,.topbar-menu-btn{display:flex;align-items:center}.topbar-menu-btn{grid-column:1;justify-self:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;padding:0 clamp(28px,4vw,56px) 0 clamp(20px,3vw,36px);background:var(--c-cream);color:var(--c-cream-text);-webkit-clip-path:polygon(0 0,100% 0,78% 100%,0 100%);clip-path:polygon(0 0,100% 0,78% 100%,0 100%);font-family:var(--font-label);font-weight:600;font-size:clamp(.95rem,1.1vw,1.1rem);letter-spacing:.04em}.topbar-menu-btn:hover{background:#ffffff}.topbar-menu-btn__icon{display:inline-flex;flex-direction:column;gap:4px;margin-right:12px}.topbar-menu-btn__icon span{width:18px;height:2px;background:var(--c-cream-text);display:block}.topbar-menu-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:49;border:none;padding:0;cursor:pointer;animation:topbar-fade-in .2s ease}@keyframes topbar-fade-in{0%{opacity:0}to{opacity:1}}.topbar-menu-overlay{position:fixed;top:0;left:0;bottom:0;width:min(340px,82vw);background:rgba(9,8,8,.98);border-right:1px solid rgba(255,255,255,.08);box-shadow:12px 0 36px rgba(0,0,0,.5);z-index:50;display:flex;flex-direction:column;animation:topbar-slide-in .22s ease}@keyframes topbar-slide-in{0%{transform:translateX(-100%)}to{transform:translateX(0)}}.topbar-menu-overlay__top{display:flex;justify-content:flex-end;padding:clamp(16px,2.5vh,26px) clamp(18px,3vw,28px) 0}.topbar-menu-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:var(--c-text);font-family:var(--font-label);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.topbar-menu-close:hover{color:var(--c-accent-hover)}.topbar-menu-list{flex:1 1;display:flex;flex-direction:column;justify-content:center;gap:clamp(8px,1.8vh,16px);padding:0 clamp(24px,5vw,40px);list-style:none;margin:0}.topbar-menu-list a{font-family:var(--font-label);font-weight:600;font-size:clamp(1.05rem,2vw,1.35rem);letter-spacing:.06em;text-transform:uppercase;color:var(--c-text);transition:color .2s ease,padding-left .2s ease;display:inline-block}.topbar-menu-list a:focus-visible,.topbar-menu-list a:hover{color:var(--c-accent-hover);padding-left:8px}.topbar-menu-list li:last-child{margin-top:clamp(10px,2vh,20px);padding-top:clamp(10px,2vh,20px);border-top:1px solid var(--c-border-soft)}.topbar-menu-separator{list-style:none;height:0;padding:0;margin:0;border-top:1px solid var(--c-border-soft)}.topbar-menu-list a.topbar-menu-link-public{color:var(--c-text-muted)}.topbar-menu-list a.topbar-menu-link-public:focus-visible,.topbar-menu-list a.topbar-menu-link-public:hover{color:var(--c-accent-hover)}.topbar-menu-logout{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0;cursor:pointer;font-family:var(--font-label);font-weight:600;font-size:clamp(1.05rem,2vw,1.35rem);letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-muted);transition:color .2s ease,padding-left .2s ease;display:inline-block}.topbar-menu-logout:focus-visible,.topbar-menu-logout:hover{color:var(--c-accent-hover);padding-left:8px}.topbar-divider{width:1px;height:24px;background:var(--c-border);flex-shrink:0}.topbar-avatar{width:38px;height:38px;border-radius:50%;background:var(--c-accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);color:#ffffff;font-size:16px}.topbar-name{font-family:var(--font-body);font-weight:600;font-size:14px;color:#ffffff}.topbar-role{font-family:var(--font-label);font-weight:700;font-size:11px;letter-spacing:1px;color:var(--c-accent-hover)}.topbar-menu-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0;cursor:pointer;font-family:var(--font-label);font-weight:600;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--c-text-muted);text-decoration:underline;text-underline-offset:4px;transition:color .2s ease}.topbar-menu-link:hover{color:var(--c-accent-hover)}.page-body{padding:40px 40px 36px;display:flex;flex-direction:column;gap:24px}.h1-page{font-size:30px}.h1-page,.h2-card{margin:0;font-family:var(--font-display);font-weight:400;color:var(--c-text);letter-spacing:.5px}.h2-card{font-size:22px}.eyebrow{font-family:var(--font-label);font-weight:700;font-size:12px;letter-spacing:1px;color:rgba(245,238,238,.5);text-transform:uppercase}.stat-value{font-family:var(--font-display);font-size:40px;color:var(--c-text);margin-top:6px}.btn-primary{background:var(--c-accent);color:#ffffff;border:none;border-radius:8px;font-family:var(--font-label);font-weight:700;font-size:14px;letter-spacing:.5px;padding:12px 20px;cursor:pointer;transition:background .15s ease}.btn-primary:hover{background:var(--c-accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--c-accent-hover);border:1.5px solid var(--c-accent-hover);border-radius:8px;font-family:var(--font-label);font-weight:700;font-size:13px;letter-spacing:.5px;padding:9px 16px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;transition:background .15s ease,color .15s ease}.btn-ghost:hover{background:rgba(194,31,38,.16)}.icon-btn{width:34px;height:34px;border-radius:7px;border:1.5px solid var(--c-border);background:var(--c-bg-soft);color:var(--c-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.icon-btn:hover{border-color:var(--c-accent-hover);color:var(--c-accent-hover)}.week-nav-btn{width:30px;height:30px;border-radius:7px;border:1.5px solid var(--c-border);background:var(--c-bg-soft);color:var(--c-text);font-family:var(--font-body);font-size:15px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.badge-fill{background:var(--c-accent);color:#ffffff;border-radius:20px}.badge-fill,.badge-outline{font-family:var(--font-label);font-weight:700;font-size:12px;letter-spacing:.5px;padding:4px 12px;display:inline-block}.badge-outline{background:transparent;color:var(--c-text-muted);border:1.5px solid rgba(255,255,255,.2);border-radius:20px}.field-label{font-family:var(--font-label);font-weight:700;font-size:14px;letter-spacing:.5px;color:var(--c-text)}.field-input,.field-textarea{border-radius:8px;border:1.5px solid var(--c-border);background:var(--c-bg);padding:0 16px;font-family:var(--font-body);font-size:15px;color:var(--c-text);box-sizing:border-box}.field-input{height:50px}.field-input:focus,.field-textarea:focus{outline:2px solid var(--c-accent-hover);outline-offset:2px}.field-file-picker{position:relative}.field-file-input-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.field-file-label{display:flex;align-items:center;padding:0 12px;cursor:pointer}.field-file-label--disabled{cursor:not-allowed;opacity:.6}.field-file-button{font-family:var(--font-label);font-weight:700;font-size:12.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--c-text);background:rgba(255,255,255,.08);border:1px solid var(--c-border);border-radius:6px;padding:8px 14px;margin-right:12px;transition:background .2s ease;flex-shrink:0}.field-file-label:hover .field-file-button{background:rgba(255,255,255,.14)}.field-file-name{color:var(--c-text);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-file-name--empty{color:var(--c-text-muted)}.field-textarea{padding:10px 12px;resize:vertical;font-size:13.5px}.slot{border-radius:6px;height:30px;box-sizing:border-box;cursor:pointer;border:none;padding:0}.slot-on{background:var(--c-accent)}.slot-off{border:1.5px solid rgba(255,255,255,.14);background:var(--c-bg)}.day-group{border-left:2px solid var(--c-border);padding:10px 18px!important;text-align:center}.hcell-row,.hour-label-row{display:flex;gap:6px;justify-content:center}.hour-label{font-family:var(--font-body);font-size:11.5px;font-weight:600;color:var(--c-text-muted);width:30px;flex-shrink:0;text-align:center}.hcell-block{width:30px;height:30px;flex-shrink:0;border-radius:7px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:13px;color:#ffffff}.hcell-hour{display:flex;gap:2px}.hcell-block-half{width:14px!important;font-size:10px!important;border-radius:4px!important}.hcell-block-on{background:var(--c-accent)}.hcell-block-off{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}.hcell-total-block{width:30px;height:30px;flex-shrink:0;border-radius:7px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-family:var(--font-label);font-weight:700;font-size:12.5px;color:var(--c-text);background:rgba(255,255,255,.05);border:1.5px solid transparent}.hcell-total-alert{background:rgba(194,31,38,.16);border-color:var(--c-accent-hover);color:var(--c-accent-hover)}.total-row-label{font-family:var(--font-label);font-weight:700;font-size:13.5px;letter-spacing:.5px;color:rgba(245,238,238,.55);text-transform:uppercase;padding:16px 0}.recap-nom-titulaire{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}.row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid var(--c-border-soft);border-radius:10px}.tab{font-family:var(--font-label);font-weight:700;font-size:14px;letter-spacing:.5px;padding:9px 18px;border-radius:8px;text-decoration:none}.tab-on{background:var(--c-accent);color:#ffffff}.tab-off{background:transparent;color:var(--c-text-muted);border:1.5px solid rgba(255,255,255,.14)}