:root{
  color-scheme:light;
  --bg:#f4f7fb;--surface:#fff;--surface-2:#f8fafc;--surface-3:#edf3fa;
  --text:#0b2345;--muted:#66768c;--line:#dce4ee;--line-strong:#c8d3e1;
  --primary:#0b3b75;--primary-strong:#000091;--primary-soft:#eaf1ff;
  --green:#0a8a58;--green-soft:#e5f8ef;--red:#b42318;--red-soft:#fff0ef;
  --amber:#9a6700;--amber-soft:#fff5d6;--purple:#7435a5;
  --shadow:0 8px 28px rgba(9,30,66,.07);--shadow-lg:0 24px 70px rgba(7,29,65,.16);
  --radius:12px;--topbar:78px;--sidebar:252px;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#07111f;--surface:#0f1b2d;--surface-2:#142238;--surface-3:#1a2c46;
  --text:#f2f7ff;--muted:#a9b9ce;--line:#263a55;--line-strong:#3a5272;
  --primary:#66a8ff;--primary-strong:#8fc0ff;--primary-soft:#172f50;
  --green:#54d6a0;--green-soft:#10382c;--red:#ff8e86;--red-soft:#3d2026;
  --amber:#ffd06d;--amber-soft:#3b3018;--purple:#d09af4;
  --shadow:0 12px 36px rgba(0,0,0,.30);--shadow-lg:0 30px 85px rgba(0,0,0,.58);
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;font-size:14px;line-height:1.45;transition:background .2s,color .2s}
a{color:var(--primary-strong)}button,input,select,textarea{font:inherit}

.topbar{height:var(--topbar);position:sticky;top:0;z-index:1000;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px);border-top:3px solid var(--primary-strong);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;box-shadow:0 3px 18px rgba(8,31,65,.04)}
.brand{display:flex;gap:12px;align-items:center;min-width:0}.brand-logo{width:66px;height:52px;object-fit:contain}.brand strong{font-size:19px;letter-spacing:.01em;display:block;color:var(--text)}.brand span{display:block;margin-top:2px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:1.25px}
.userbox{display:flex;align-items:center;gap:10px}.user-name{font-weight:700;color:var(--text);margin-right:4px}.theme-toggle,.mobile-menu-toggle{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:9px;min-height:39px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;font-weight:700;cursor:pointer}.theme-toggle:hover,.mobile-menu-toggle:hover{border-color:var(--primary);background:var(--primary-soft)}.mobile-menu-toggle{display:none;font-size:20px;padding:0;width:40px}

.layout{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:calc(100vh - var(--topbar))}
.sidebar{position:sticky;top:var(--topbar);height:calc(100vh - var(--topbar));overflow:auto;background:var(--surface);border-right:1px solid var(--line);padding:18px 13px 28px;z-index:900;scrollbar-width:thin}
.side-logo{display:none}.side-label{font-size:9px;letter-spacing:1.35px;font-weight:800;color:var(--muted);margin:19px 13px 7px}.sidebar a{position:relative;display:flex;align-items:center;gap:11px;min-height:43px;padding:8px 11px;margin:3px 0;text-decoration:none;color:var(--muted);font-weight:650;border:1px solid transparent;border-radius:9px;transition:.15s}.sidebar a:hover{background:var(--surface-2);color:var(--text);border-color:var(--line)}.sidebar a.active{background:var(--primary-soft);color:var(--primary-strong);border-color:color-mix(in srgb,var(--primary) 24%,var(--line));font-weight:800}.sidebar a.active::before{content:"";position:absolute;left:-14px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--primary-strong)}
.nav-icon{width:26px;height:26px;flex:0 0 26px;display:grid;place-items:center;border-radius:7px;background:var(--surface-3);color:var(--primary);font-size:10px;font-weight:900}.sidebar a.active .nav-icon{background:var(--surface);color:var(--primary-strong);box-shadow:0 2px 8px rgba(8,31,65,.07)}.sidebar-backdrop{display:none;position:fixed;inset:var(--topbar) 0 0;width:auto!important;height:auto!important;margin:0!important;padding:0!important;border:0;background:rgba(4,13,27,.56);z-index:850}.content{grid-column:2;padding:28px clamp(20px,3vw,44px) 52px;max-width:1640px;width:100%;min-width:0;margin:0 auto}

.eyebrow{font-size:10px;letter-spacing:1.55px;font-weight:850;color:var(--primary);text-transform:uppercase}.title{font-size:clamp(28px,3vw,38px);line-height:1.12;margin:7px 0 5px;letter-spacing:-.025em;color:var(--text)}.subtitle{color:var(--muted);margin:0 0 25px;font-size:14px}.page-heading{margin-bottom:24px}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.card,.panel,.panelx,.weekbar,.dashboard-menu,.employee-card,.archive-card,.profile-hero,.document-card,.slip-panel,.action-card,.login-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.card,.panel,.panelx{border-radius:var(--radius)}.card{padding:19px;border-top:3px solid var(--primary-strong)}.card .label{font-size:10px;letter-spacing:1px;color:var(--muted);font-weight:800}.card .value{font-size:25px;font-weight:850;margin-top:9px;color:var(--text)}.panel{padding:21px;margin-top:17px}.panel h2{margin-top:0;font-size:18px;color:var(--text)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px}.field{margin-bottom:15px}.field label{display:block;font-size:12px;font-weight:750;margin-bottom:7px;color:var(--text)}.field input,.field select,.field textarea,input:not([type="checkbox"]):not([type="radio"]),select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--text);outline:none;transition:.15s}.field input:focus,.field select:focus,.field textarea:focus,input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}.field input[readonly],input[readonly]{background:var(--surface-2);color:var(--muted)}.field textarea{min-height:90px;resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:8px;background:linear-gradient(135deg,var(--primary-strong),var(--primary));color:#fff;padding:11px 17px;font-weight:800;text-decoration:none;cursor:pointer;box-shadow:0 5px 14px rgba(0,0,145,.13);transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(0,0,145,.18)}.btn-outline{background:var(--surface);color:var(--primary-strong);border-color:var(--primary);box-shadow:none}.btn-outline:hover{background:var(--primary-soft)}
.notice{padding:12px 14px;margin:14px 0;border:1px solid color-mix(in srgb,var(--primary) 25%,var(--line));border-left:4px solid var(--primary-strong);border-radius:8px;background:var(--primary-soft);color:var(--text)}.error{border-color:color-mix(in srgb,var(--red) 30%,var(--line));border-left-color:var(--red);background:var(--red-soft);color:var(--red)}.success{border-left-color:var(--green);background:var(--green-soft)}.warning{border-left-color:var(--amber);background:var(--amber-soft)}.muted{color:var(--muted);font-size:12px}.actions{display:flex;gap:8px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary-strong);font-size:11px;font-weight:800}.proofbox,.proof-box{padding:16px;border:1.5px dashed var(--line-strong);border-radius:10px;background:var(--surface-2)}

table{width:100%;border-collapse:separate;border-spacing:0;background:transparent;color:var(--text)}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);font-size:12px}th{background:var(--surface-2);font-size:10px;letter-spacing:.55px;color:var(--muted);font-weight:850;text-transform:uppercase}thead th:first-child{border-radius:8px 0 0 0}thead th:last-child{border-radius:0 8px 0 0}tbody tr{transition:background .12s}tbody tr:hover{background:color-mix(in srgb,var(--primary-soft) 45%,transparent)}.modern-table-wrap,.custom-table-wrap,.profile-salary-wrap{border:1px solid var(--line);border-radius:10px;overflow:auto}.modern-table-wrap table,.custom-table-wrap table,.profile-salary-wrap table{border:0}.money{font-variant-numeric:tabular-nums}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px 18px;margin:14px 0 20px}.check{display:flex;gap:10px;align-items:center;padding:11px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line)}.check input{width:18px;height:18px}

.login-page{min-height:calc(100vh - var(--topbar));display:grid;place-items:center;padding:42px 24px;background:radial-gradient(circle at 15% 15%,color-mix(in srgb,var(--primary) 13%,transparent),transparent 32%),radial-gradient(circle at 86% 80%,color-mix(in srgb,var(--purple) 10%,transparent),transparent 28%),var(--bg)}.login-shell{width:min(960px,100%);display:grid;grid-template-columns:1.05fr .95fr;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-lg)}.login-showcase{position:relative;overflow:hidden;padding:42px;background:linear-gradient(145deg,#072957,#0b4581);color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:500px}.login-showcase::after{content:"";position:absolute;width:330px;height:330px;border:70px solid rgba(255,255,255,.05);border-radius:50%;right:-145px;bottom:-150px}.login-showcase>img{position:relative;z-index:1;width:105px;height:72px;object-fit:contain;filter:drop-shadow(0 5px 12px rgba(0,0,0,.18))}.login-showcase h1{position:relative;z-index:1;margin:14px 0 12px;font-size:36px;line-height:1.12;letter-spacing:-.03em}.login-showcase p{position:relative;z-index:1;color:#dceafb;max-width:420px;margin:0;line-height:1.6}.login-pill{position:relative;z-index:1;display:inline-flex;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.12);font-size:9px;font-weight:850;letter-spacing:1.3px}.login-features{position:relative;z-index:1;display:flex;gap:9px;flex-wrap:wrap}.login-features span{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid rgba(255,255,255,.17);border-radius:8px;color:#eaf3ff;font-size:11px}.login-features i{font-style:normal;font-weight:900}.login-card{width:auto;border:0;border-radius:0;padding:48px 42px;display:flex;flex-direction:column;justify-content:center;box-shadow:none}.login-card h2{font-size:27px;line-height:1.2;margin:8px 0;color:var(--text)}.login-card>p{color:var(--muted);margin:0 0 25px}.login-card .field{margin-bottom:17px}.login-card input{min-height:45px}.login-submit{width:100%;justify-content:space-between;margin-top:3px;min-height:45px}.login-help{display:block;text-align:center;color:var(--muted);margin-top:20px}

html[data-theme="dark"] :is(.kpi,.staff-stats article,.dashboard-menu,.dashboard-menu>summary,.dashboard-menu-body,.employee-card,.employee-card summary,.employee-card .inside,.employee-kpis div,.panelx,.archive-card,.archive-body,.ak,.salary-row,.salary-kpis>div,.month-kpis>div,.quick-card,.action-card,.profile-hero,.document-card,.document-body,.slip-panel,.archived-slip,.register-panel,.modal-card,.staff-search,.history-toolbar,.history-row,.history-wrap,.history-panel,.former-panel,.direction-links a,.tax-brackets span.active){background-color:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important}
html[data-theme="dark"] :is(.dashboard-menu-body,.employee-card .inside,.tbl th,.daytable th,.modern-staff-table th,.history-table th,.profile-salary-table th,.salary-list,.document-placeholder,.modal-help,.empty-state,.proofbox,.proof-box){background:var(--surface-2)!important;color:var(--text)!important;border-color:var(--line)!important}
html[data-theme="dark"] :is(.title,h1,h2,h3,.panel-title h2,.panelx h2,.menu-heading strong,.employee-card .name,.employee-kpis strong,.staff-stats strong,.employee-identity,.profile-title,.slip-heading,.empty-state strong,.tbl .total th,.tbl .total td){color:var(--text)!important}
html[data-theme="dark"] :is(.subtitle,.muted,.panel-title p,.menu-heading small,.menu-side,.personal-toolbar p,.employee-card .grade,.employee-kpis small,.cell-sub,.staff-stats span,.staff-stats small,.direction-note,.history-target,.login-card p){color:var(--muted)!important}
html[data-theme="dark"] :is(table,td,th,tr,.tbl td,.tbl th,.daytable td,.daytable th){border-color:var(--line)!important}
html[data-theme="dark"] .tbl tr.green :is(th,td){background:#123326!important;color:#dff7ea!important}html[data-theme="dark"] .tbl tr.red :is(th,td){background:#3b2024!important;color:#ffb2ad!important}html[data-theme="dark"] .tbl tr.total :is(th,td){background:#182d49!important}.weekbar{border-radius:var(--radius)}html[data-theme="dark"] .action-icon{background:var(--surface-2);border-color:var(--line);color:var(--text)}html[data-theme="dark"] .modern-staff-table tbody tr:hover{background:var(--surface-2)}

/* Thème sombre V2 : profondeur, contraste et lisibilité */
html[data-theme="dark"] body{
  background:
    radial-gradient(circle at 82% -10%,rgba(45,113,200,.13),transparent 30%),
    radial-gradient(circle at 8% 100%,rgba(0,145,120,.06),transparent 26%),
    var(--bg);
}
html[data-theme="dark"] .topbar{
  background:rgba(10,21,37,.92);
  border-top-color:#368df0;
  border-bottom-color:#263c59;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
}
html[data-theme="dark"] .sidebar{
  background:linear-gradient(180deg,#0d192b 0%,#0a1525 100%);
  border-right-color:#263c59;
  box-shadow:10px 0 35px rgba(0,0,0,.12);
}
html[data-theme="dark"] .sidebar a:hover{background:#172945;border-color:#2f4a6c}
html[data-theme="dark"] .sidebar a.active{
  background:linear-gradient(90deg,#17365e,#152b49);
  color:#b8d8ff;
  border-color:#315782;
  box-shadow:inset 0 1px rgba(255,255,255,.035),0 6px 16px rgba(0,0,0,.12);
}
html[data-theme="dark"] .sidebar a.active .nav-icon{background:#21466f;color:#d7eaff;box-shadow:none}
html[data-theme="dark"] :is(.card,.panel,.panelx,.weekbar,.dashboard-menu,.employee-card,.archive-card,.profile-hero,.document-card,.slip-panel,.action-card,.login-card,.service-card,.service-hero,.service-kpi){
  box-shadow:0 12px 32px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.025);
}
html[data-theme="dark"] .card{border-top-color:#559ff5}
html[data-theme="dark"] :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  background:#0b1728;
  border-color:#344d6d;
  color:#f4f8ff;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.2);
}
html[data-theme="dark"] :is(input,textarea)::placeholder{color:#7489a4;opacity:1}
html[data-theme="dark"] :is(input,select,textarea):focus{
  border-color:#70adf5;
  box-shadow:0 0 0 3px rgba(82,157,244,.18),inset 0 1px 2px rgba(0,0,0,.2);
}
html[data-theme="dark"] :is(input[readonly],input:disabled,select:disabled,textarea:disabled){background:#152238;color:#92a5bd;opacity:1}
html[data-theme="dark"] th{background:#17263c;color:#b8c8dc;border-color:#2b415e}
html[data-theme="dark"] td{border-color:#233852}
html[data-theme="dark"] tbody tr:nth-child(even){background:rgba(20,34,56,.32)}
html[data-theme="dark"] tbody tr:hover{background:#192c47}
html[data-theme="dark"] :is(.modern-table-wrap,.custom-table-wrap,.profile-salary-wrap,.service-table-wrap){border-color:#2d4463;background:#0d192a}
html[data-theme="dark"] .btn{
  background:linear-gradient(135deg,#215fa8,#397fd0);
  border-color:#5598e5;
  box-shadow:0 7px 18px rgba(0,72,155,.26),inset 0 1px rgba(255,255,255,.14);
}
html[data-theme="dark"] .btn:hover{filter:brightness(1.12);box-shadow:0 10px 24px rgba(0,83,177,.34)}
html[data-theme="dark"] .btn-outline{background:#111e31;color:#a9ceff;border-color:#3d6899;box-shadow:none}
html[data-theme="dark"] .btn-outline:hover{background:#1a3455;color:#dbeaff}
html[data-theme="dark"] :is(.theme-toggle,.mobile-menu-toggle){background:#14233a;border-color:#304966}
html[data-theme="dark"] :is(.theme-toggle,.mobile-menu-toggle):hover{background:#1b3558;border-color:#5286bd}
html[data-theme="dark"] .notice{box-shadow:inset 0 1px rgba(255,255,255,.035)}
html[data-theme="dark"] .proofbox,html[data-theme="dark"] .proof-box{background:#0b1728!important;border-color:#3a5575!important}
html[data-theme="dark"] ::selection{background:#347ec9;color:#fff}
html[data-theme="dark"] *{scrollbar-color:#345274 #0b1728}

@media(max-width:1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-grid{grid-template-columns:1fr}}
@media(max-width:900px){:root{--topbar:68px}.topbar{padding:0 14px}.mobile-menu-toggle{display:inline-flex}.brand-logo{width:54px;height:43px}.brand strong{font-size:16px}.brand span{font-size:7px}.user-name{display:none}.theme-toggle #themeText{display:none}.theme-toggle{width:39px;padding:0}.userbox .btn{padding:9px 11px}.layout{grid-template-columns:1fr}.sidebar{display:block;position:fixed;left:0;top:var(--topbar);width:min(292px,86vw);height:calc(100vh - var(--topbar));transform:translateX(-105%);transition:transform .22s ease;box-shadow:var(--shadow-lg)}body.nav-open .sidebar{transform:translateX(0)}body.nav-open .sidebar-backdrop{display:block}.content{grid-column:1;padding:23px 16px 42px}.grid2{grid-template-columns:1fr}.login-page{padding:25px 16px}.login-shell{grid-template-columns:1fr;max-width:540px}.login-showcase{display:none}.login-card{padding:38px 28px;border-radius:16px}.modern-table-wrap,.custom-table-wrap{max-width:calc(100vw - 32px)}}
@media(max-width:620px){.brand span{display:none}.brand-logo{width:48px}.userbox{gap:6px}.userbox .btn{font-size:0}.userbox .btn::after{content:"Quitter";font-size:12px}.title{font-size:28px}.cards{grid-template-columns:1fr}.panel{padding:16px}.permission-grid{grid-template-columns:1fr}.login-card{padding:32px 22px}.login-card h2{font-size:24px}th,td{padding:9px 10px}}
@media print{.topbar,.sidebar,.sidebar-backdrop,.theme-toggle{display:none!important}.layout{display:block}.content{max-width:none;padding:0}.panel,.card,.panelx{box-shadow:none}}
