html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-secondary:#3b82f6;--color-accent:#f97316;--color-bg:#f8fafc;--color-surface:#fff;--color-border:#e2e8f0;--color-text:#1e293b;--color-text-muted:#64748b;--color-success:#16a34a;--color-success-bg:#dcfce7;--color-danger:#dc2626;--color-danger-bg:#fee2e2;--color-warning:#d97706;--color-warning-bg:#fef3c7;--color-info-bg:#dbeafe;--color-info-text:#1e40af;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 12px #0f172a14;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.5}button,input,select,textarea{font-family:inherit;font-size:.95rem}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}.app-shell{min-height:100dvh;display:flex}.app-content{min-width:0;padding:var(--space-4) var(--space-5);flex:1}.app-content>header,.app-content>main{max-width:1100px;margin:0 auto}header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;flex-wrap:wrap;display:flex}.brand{align-items:center;gap:var(--space-2);color:var(--color-text);font-size:1.15rem;font-weight:700;display:flex}.app-shell-admin .brand-header{display:none}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);width:240px;padding:var(--space-4);flex-direction:column;flex-shrink:0;display:flex}.sidebar .brand{padding:0 var(--space-2);margin-bottom:var(--space-5)}.sidebar-nav{gap:var(--space-1);flex-direction:column;flex:1;display:flex}.sidebar-btn{align-items:center;gap:var(--space-3);color:var(--color-text-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);text-align:left;cursor:pointer;background:0 0;border:none;font-weight:500;transition:background-color .15s,color .15s;display:flex}.sidebar-btn:hover{background:var(--color-bg);color:var(--color-text)}.sidebar-btn.active{background:var(--color-primary);color:#fff}.sidebar-logout{margin-top:var(--space-4);justify-content:flex-start}.bottom-bar{display:none}.brand-icon{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.header-right{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.user-chip{color:var(--color-text-muted);font-size:.85rem;font-weight:500}.statut{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:999px;font-size:.8rem;font-weight:600;display:inline-flex}.statut.en-ligne{background:var(--color-success-bg);color:var(--color-success)}.statut.hors-ligne{background:var(--color-warning-bg);color:var(--color-warning)}.statut.synchronisation{background:var(--color-info-bg);color:var(--color-info-text)}.badge-pending{background:var(--color-warning-bg);color:var(--color-warning)}@media (width<=899px){.sidebar{display:none}.bottom-bar{z-index:100;background:var(--color-surface);border-top:1px solid var(--color-border);padding:2px var(--space-2);padding-bottom:max(2px, env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.bottom-bar-btn{min-width:64px;color:var(--color-text-muted);padding:var(--space-2) var(--space-1);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1 0 auto;align-items:center;gap:2px;font-size:.68rem;display:flex}.bottom-bar-btn.active{color:var(--color-primary)}.avec-bottom-bar{padding-bottom:64px}}.menu-overlay{z-index:200;background:#0f172a80;align-items:flex-end;display:flex;position:fixed;inset:0}.menu-tiroir{background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;padding:var(--space-2) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));max-height:70vh;overflow-y:auto}.menu-tiroir-header{padding:var(--space-3) var(--space-2);justify-content:space-between;align-items:center;font-weight:600;display:flex}.menu-tiroir-btn{align-items:center;gap:var(--space-3);width:100%;color:var(--color-text);padding:var(--space-3) var(--space-2);border-radius:var(--radius-md);text-align:left;cursor:pointer;background:0 0;border:none;font-weight:500;display:flex}.menu-tiroir-btn:hover,.menu-tiroir-btn.active{background:var(--color-bg)}.menu-tiroir-btn.active{color:var(--color-primary)}.menu-tiroir-deconnexion{color:var(--color-danger);border-top:1px solid var(--color-border);margin-top:var(--space-2);padding-top:var(--space-3)}.page-header{margin-bottom:var(--space-5)}.page-header h2{align-items:center;gap:var(--space-2);font-size:1.4rem;display:flex}.page-subtitle{color:var(--color-text-muted);margin:var(--space-1) 0 0;font-size:.92rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4);box-shadow:var(--shadow-sm)}.card-title{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);color:var(--color-text);font-size:1rem;display:flex}.form-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;display:grid}.field{gap:var(--space-1);flex-direction:column;display:flex}.field-full{grid-column:1/-1}.field-label{color:var(--color-text-muted);font-size:.8rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);min-height:42px;padding:.55rem .7rem;transition:border-color .15s,box-shadow .15s}.field textarea{min-height:unset;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb26}.field-checkbox{align-items:center;gap:var(--space-2);flex-direction:row;padding-bottom:.55rem}.field-checkbox input{width:18px;height:18px;min-height:unset}.field-submit{gap:var(--space-2);flex-direction:row;display:flex}.field-error{color:var(--color-danger);margin-top:var(--space-3);font-size:.85rem}.field-success{color:var(--color-success);margin-top:var(--space-3);font-size:.85rem}.field-success strong{font-family:var(--font-mono,monospace)}.banniere-avertissement{justify-content:space-between;align-items:center;gap:var(--space-3);background:var(--color-warning-bg);color:var(--color-warning);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.banniere-avertissement p{margin:0;font-size:.9rem}.stats-grille{gap:var(--space-4);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.stat-card{align-items:center;gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);display:flex}.stat-icon{border-radius:var(--radius-md);background:var(--color-info-bg);width:40px;height:40px;color:var(--color-info-text);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.stat-card-warning .stat-icon{background:var(--color-warning-bg);color:var(--color-warning)}.stat-valeur{margin:0;font-size:1.5rem;font-weight:700;line-height:1.1}.stat-label{color:var(--color-text-muted);margin:2px 0 0;font-size:.82rem}.raccourcis{gap:var(--space-2);flex-wrap:wrap;display:flex}.field-control{align-items:center;display:flex;position:relative}.field-icon{color:var(--color-text-muted);pointer-events:none;position:absolute;left:.7rem}.field-control input{width:100%;padding-left:2.4rem}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;border:none;min-height:42px;padding:.6rem 1rem;font-weight:600;transition:background-color .15s,color .15s,opacity .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-block{width:100%}.btn-ghost{color:var(--color-text);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover{background:var(--color-bg)}.btn-ghost.btn-danger{color:var(--color-danger)}.btn-ghost.btn-danger:hover{background:var(--color-danger-bg);border-color:var(--color-danger-bg)}.btn-ghost.btn-success{color:var(--color-success)}.btn-ghost.btn-success:hover{background:var(--color-success-bg);border-color:var(--color-success-bg)}.btn-icon{border:1px solid var(--color-border);color:var(--color-text-muted);background:0 0;min-width:36px;min-height:36px;padding:0}.btn-icon:hover{background:var(--color-bg);color:var(--color-text)}.btn-icon.btn-danger:hover{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-bg)}.liste{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.liste-item{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.ligne{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.actions{gap:var(--space-2);display:flex}.personne{align-items:center;gap:var(--space-3);display:flex}.avatar{background:var(--color-info-bg);width:36px;height:36px;color:var(--color-info-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.personne-nom{align-items:center;gap:var(--space-2);margin:0;font-weight:600;display:flex}.personne-email{color:var(--color-text-muted);margin:0;font-size:.85rem}.empty-state{color:var(--color-text-muted);margin:0;font-size:.9rem}.empty-state-card{background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center;color:var(--color-text-muted)}.badge{text-transform:uppercase;letter-spacing:.02em;border-radius:999px;align-items:center;padding:.15rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.badge-neutre{background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.badge-info{background:var(--color-info-bg);color:var(--color-info-text);text-transform:none}.badge-statut-en_attente{background:var(--color-warning-bg);color:var(--color-warning)}.badge-statut-acceptee{background:var(--color-success-bg);color:var(--color-success)}.badge-statut-refusee{background:var(--color-danger-bg);color:var(--color-danger)}.segmented{background:var(--color-bg);border-radius:var(--radius-md);margin-bottom:var(--space-4);padding:3px;display:inline-flex}.segmented-btn{border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:.5rem 1rem;font-weight:500;transition:background-color .15s,color .15s}.segmented-btn.active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.select-filtre{max-width:320px}.jours-indisponibles{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.jours-label{margin:0 0 var(--space-2);color:var(--color-text-muted);font-size:.8rem;font-weight:600}.jours-grille{gap:var(--space-2);flex-wrap:wrap;display:flex}.jour-pill{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);text-transform:capitalize;cursor:pointer;border-radius:999px;padding:.35rem .8rem;font-size:.82rem;transition:background-color .15s,color .15s,border-color .15s}.jour-pill:hover{border-color:var(--color-primary)}.jour-pill-off{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-bg)}.form-inline-ajout{gap:var(--space-2);margin-top:var(--space-3);display:flex}.form-inline-ajout input{border:1px solid var(--color-border);border-radius:var(--radius-sm);flex:1;padding:.45rem .6rem}.table-wrap{overflow-x:auto}table.planning{border-collapse:collapse;width:100%;min-width:560px}table.planning th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);font-size:.78rem}table.planning td{padding:var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}table.planning tr:last-child td{border-bottom:none}table.planning td.actions{gap:var(--space-2);display:flex}.capitalize{text-transform:capitalize}.tabular{font-variant-numeric:tabular-nums}.grille-edt{border-collapse:collapse;width:100%;min-width:640px}.grille-edt th,.grille-edt td{border:1px solid var(--color-border);padding:var(--space-2);vertical-align:top}.grille-edt th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);background:var(--color-bg);font-size:.78rem}.grille-edt th:first-child,.grille-edt td:first-child{white-space:nowrap;color:var(--color-text-muted);font-size:.82rem}.case-creneau{padding:0;display:table-cell}.case-matiere{font-size:.85rem;font-weight:600;display:block}.case-sous-label{color:var(--color-text-muted);font-size:.78rem;display:block}.case-vide{color:var(--color-border)}.case-passee{background:repeating-linear-gradient(45deg, var(--color-bg), var(--color-bg) 8px, #eef1f5 8px, #eef1f5 16px);opacity:.7}.ligne-pause td{background:var(--color-warning-bg);color:var(--color-warning);text-align:center;font-weight:600}.case-cliquable{padding:0}.case-btn{text-align:left;width:100%;height:100%;min-height:48px;padding:var(--space-2);cursor:pointer;background:0 0;border:none;transition:background-color .15s;display:block}.case-btn:hover{background:var(--color-info-bg)}.case-btn:has(.case-vide):hover .case-vide{color:var(--color-primary)}.modal-overlay{padding:var(--space-4);z-index:1000;background:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:420px;max-height:90vh;box-shadow:var(--shadow-md);overflow-y:auto}.modal-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-header h3{font-size:1.05rem}.modal-body{padding:var(--space-5)}.modal-contexte{color:var(--color-text-muted);margin:0 0 var(--space-4);font-size:.85rem}.field-verrouille{background:var(--color-bg);border-radius:var(--radius-sm);margin:0;padding:.55rem .7rem;font-weight:500}.btn-retour,.detail-creneau h3{margin-bottom:var(--space-4)}.detail-liste{gap:var(--space-4);margin:0 0 var(--space-4);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.detail-liste dt{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:600}.detail-liste dd{margin:var(--space-1) 0 0;font-size:1rem}.historique-row td{background:var(--color-bg)}.historique-liste{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.historique-item{align-items:center;gap:var(--space-3);color:var(--color-text-muted);padding:var(--space-1) 0;font-size:.85rem;display:flex}.historique-item.historique-actuel{color:var(--color-text);font-weight:500}.historique-date{margin-left:auto;font-size:.78rem}.demande{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.demande-info{flex:1;min-width:220px}.demande-message{margin:var(--space-1) 0;color:var(--color-text)}.demande-date{color:var(--color-text-muted);margin:0;font-size:.78rem}.planning-semaine{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.planning-jour h4{margin:0 0 var(--space-2);color:var(--color-text);font-size:.95rem}.creneau-liste{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.creneau-item{background:var(--color-bg);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);flex-direction:column;gap:2px;font-size:.88rem;display:flex}.creneau-item .tabular{color:var(--color-primary);font-weight:600}.login-screen{min-height:100dvh;padding:var(--space-4);background:linear-gradient(180deg, #eff6ff 0%, var(--color-bg) 45%);justify-content:center;align-items:center;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:380px;padding:var(--space-6) var(--space-5);box-shadow:var(--shadow-md)}.login-brand{align-items:center;gap:var(--space-2);color:var(--color-text-muted);margin-bottom:var(--space-5);font-size:.9rem;font-weight:700;display:flex}.login-brand-icon{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.login-card h1{margin-bottom:var(--space-1);font-size:1.4rem}.login-subtitle{color:var(--color-text-muted);margin:0 0 var(--space-5);font-size:.88rem}.login-card form{gap:var(--space-4);flex-direction:column;display:flex}.login-card .btn{margin-top:var(--space-2)}.logo-apercu{object-fit:contain;border:1px solid var(--color-border);border-radius:var(--radius-sm);max-width:160px;max-height:80px;padding:var(--space-2);background:var(--color-surface)}.grille-horaire-edit{gap:var(--space-2);margin-bottom:var(--space-3);flex-direction:column;display:flex}.grille-horaire-ligne{align-items:center;gap:var(--space-2);display:flex}.grille-horaire-ligne input[type=time]{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.45rem .6rem}.grille-horaire-ligne select{border:1px solid var(--color-border);border-radius:var(--radius-sm);flex:1;padding:.45rem .6rem}.imprimable{display:none}@page{size:landscape;margin:12mm}@media print{body *{visibility:hidden}.imprimable,.imprimable *{visibility:visible}.imprimable{width:100%;display:block;position:absolute;top:0;left:0}}.imprimable-entete{border-bottom:2px solid #000;align-items:center;gap:16px;margin-bottom:16px;padding-bottom:12px;display:flex}.imprimable-logo{object-fit:contain;max-width:90px;max-height:90px}.imprimable-entete h1{margin:0;font-size:1.3rem}.imprimable-entete-texte{color:#333;white-space:pre-line;margin:4px 0 0;font-size:.85rem}.imprimable .grille-edt{margin-top:12px}.imprimable .grille-edt th,.imprimable .grille-edt td{border:1px solid #000;padding:6px 8px;font-size:.8rem}.imprimable .ligne-pause td{font-weight:600;color:#000!important;background:#eee!important}.imprimable-signature{text-align:right;white-space:pre-line;margin-top:48px;font-size:.85rem}@media (width<=640px){.app{padding:var(--space-3)}.card{padding:var(--space-4)}.header-right{justify-content:space-between;width:100%}table.planning td.actions{flex-direction:row}}
