[data-theme-variant=dim]{--bs-body-bg: #232830;--bs-body-bg-rgb: 35, 40, 48;--bs-body-color: #c9d1d9;--bs-body-color-rgb: 201, 209, 217;--bs-secondary-bg: #2c323c;--bs-secondary-bg-rgb: 44, 50, 60;--bs-tertiary-bg: #2a3038;--bs-tertiary-bg-rgb: 42, 48, 56;--bs-border-color: #3a414c;--bs-secondary-color: #9aa4b1;--bs-emphasis-color: #f0f3f6}[data-theme-variant=dim] body,[data-theme-variant=dim] .bg-body{background-color:#232830!important}[data-theme-variant=dim] .card,[data-theme-variant=dim] .kpi-card,[data-theme-variant=dim] .table-card,[data-theme-variant=dim] .modal-content,[data-theme-variant=dim] .offcanvas{background-color:#2a3038}[data-theme-variant=dim] .navbar.bg-body{background-color:#1e232a!important}[data-theme-variant=dim] .table{--bs-table-bg: transparent}body{background:var(--bs-body-bg);color:var(--bs-body-color)}a,button,.form-control,.form-select{transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease}.form-control:focus,.form-select:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .16rem rgba(var(--bs-primary-rgb),.18)}.login-page{min-height:100vh;background:linear-gradient(135deg,var(--bs-body-bg),var(--bs-tertiary-bg));display:flex;justify-content:center;align-items:center}.login-card{background:var(--bs-body-bg);color:var(--bs-body-color);width:100%;max-width:380px;padding:2rem;border-radius:14px;border:1px solid var(--bs-border-color)}.login-card .form-control{background:var(--bs-body-bg);color:var(--bs-body-color);border-color:var(--bs-border-color)}.login-card .input-group-text{background:var(--bs-secondary-bg);color:var(--bs-body-color);border-color:var(--bs-border-color)}.filter-bar{background:var(--bs-tertiary-bg);border:1px solid var(--bs-border-color);border-radius:8px;padding:.75rem 1rem}.filter-bar .input-group-text{background:var(--bs-secondary-bg);border-color:var(--bs-border-color);color:var(--bs-secondary-color);font-size:.8rem}.filter-bar .form-control,.filter-bar .form-select{border-color:var(--bs-border-color);font-size:.82rem}.table-card{border:1px solid var(--bs-border-color);border-radius:8px;overflow:hidden;background:var(--bs-body-bg)}.table-card .card-header{background:var(--bs-tertiary-bg);border-bottom:1px solid var(--bs-border-color);padding:.6rem 1rem}.badge-summary{background:var(--bs-primary);color:#fff;font-size:.75rem;font-weight:600;padding:.3rem .7rem;border-radius:20px}.table td,.table th{vertical-align:middle;white-space:nowrap;font-size:.84rem;padding:.5rem .75rem}.table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--bs-secondary-color);border-bottom:2px solid var(--bs-border-color);background:var(--bs-tertiary-bg)}.table-hover tbody tr:hover{background:var(--bs-secondary-bg)}.table-responsive{scrollbar-width:thin}#pageSize{min-width:90px}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable:hover{color:var(--bs-primary)}.badge-present{background:#12b76a;color:#fff;border-radius:999px;padding:.35rem .6rem;font-weight:600;display:inline-flex;align-items:center;gap:.35rem}.badge-retard{background:#f79009;color:#111;border-radius:999px;padding:.35rem .6rem;font-weight:700;display:inline-flex;align-items:center;gap:.35rem}.badge-absent{background:#ef4444;color:#fff;border-radius:999px;padding:.35rem .6rem;font-weight:700;display:inline-flex;align-items:center;gap:.35rem}.navbar-nav .nav-link{letter-spacing:.08em;font-size:.85rem;color:var(--bs-body-color);position:relative;transition:color .2s ease}.navbar-nav .nav-link:hover,.navbar-nav .nav-link.active{text-decoration:none}.navbar-nav .nav-link:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:currentColor;transition:width .25s ease}.navbar-nav .nav-link:hover:after,.navbar-nav .nav-link.active:after{width:100%}.dashboard{min-height:100vh}.kpi-card{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);padding:1rem;height:100%;border-radius:8px}.kpi-circle{width:90px;height:90px;border-radius:50%;border:6px solid var(--bs-border-color);display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin:auto}.kpi-number{font-size:2.5rem;color:var(--bs-primary)}.presence-card{display:flex;gap:.75rem;background:var(--bs-tertiary-bg);padding:.75rem;border-radius:8px;border:1px solid var(--bs-border-color)}.avatar{width:50px;height:55px;border-radius:6px;overflow:hidden;background:var(--bs-secondary-bg);flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.status.present,.status.arrival{color:var(--bs-success)}.status.departure{color:var(--bs-primary)}body,.navbar,.kpi-card,.presence-card,.sp-card,.filter-bar,.table-card,.login-card,.modal-content{transition:background-color .3s ease,color .3s ease,border-color .3s ease}[data-bs-theme=light] .login-page{background:linear-gradient(135deg,#f1f5f9,#e2e8f0)}[data-bs-theme=light] .login-card{box-shadow:0 4px 24px #00000014}[data-bs-theme=light] .kpi-card{box-shadow:0 1px 6px #0000000f}[data-bs-theme=light] .presence-card{box-shadow:0 1px 4px #0000000d}[data-bs-theme=light] .table-card{box-shadow:0 1px 6px #0000000f}[data-bs-theme=dark] .login-page{background:linear-gradient(135deg,#020617,#0f172a)}.chart-box{position:relative;height:140px}.chart-box canvas{width:100%!important;height:100%!important}.chart-box canvas{transition:height .2s ease}.status.arrivé{color:var(--bs-success)}.status.départ{color:var(--bs-primary)}#gaugeTrack{stroke:#d1d5db}[data-bs-theme=dark] #gaugeTrack{stroke:#3a3f47}#gaugeProgress{transition:stroke-dasharray .8s ease,stroke .3s ease}.kpi-trend{font-size:.8rem;font-weight:700;display:inline-flex;align-items:center;gap:.15rem}.kpi-trend i{font-size:1.1rem}.kpi-trend .trend-label{font-weight:400;color:var(--bs-secondary-color);font-size:.7rem;margin-left:.15rem}.trend-up{color:#22c55e}.trend-down{color:#ef4444}.trend-equal{color:var(--bs-secondary-color)}.sp-card{display:flex;gap:.6rem;padding:.6rem;border:1px solid var(--bs-border-color);border-radius:8px;margin-bottom:.4rem;background:var(--bs-tertiary-bg)}.sp-img{width:46px;height:50px;border-radius:6px;object-fit:cover;flex-shrink:0}.sp-section-title{font-size:.8rem;font-weight:700;padding:.4rem .2rem;display:flex;align-items:center;gap:.3rem}.progress-row:hover .progress-bar{filter:brightness(1.2)}.stat-number{font-size:1.65rem;font-weight:700;line-height:1.2}.stat-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--bs-secondary-color);margin-top:.15rem}.kpi-card canvas{max-width:100%}.kpi-card .table{font-size:.82rem}.kpi-card .table thead th{font-size:.72rem;padding:.4rem .5rem}.kpi-card .table tbody td{padding:.35rem .5rem}.pt-avatar{width:32px;height:36px;border-radius:5px;object-fit:cover;border:1px solid var(--bs-border-color)}@media (max-width: 575.98px){.navbar{padding:.4rem .5rem}.navbar-brand{font-size:.9rem}.navbar-nav{gap:0!important}.navbar-nav .nav-link{font-size:.8rem;padding:.5rem .75rem;letter-spacing:.04em}.navbar-nav .nav-link:after{display:none}main.container-fluid{padding-left:.5rem;padding-right:.5rem}.stat-number{font-size:1.2rem}.stat-label{font-size:.65rem}.kpi-card{padding:.6rem}.kpi-number{font-size:1.8rem}.kpi-circle{width:65px;height:65px;font-size:1.1rem;border-width:4px}.filter-bar{padding:.5rem .6rem}.table td,.table th{font-size:.75rem;padding:.35rem .4rem}.table thead th{font-size:.68rem}.badge-present,.badge-retard,.badge-absent{font-size:.7rem;padding:.25rem .45rem}.presence-card{padding:.5rem;gap:.5rem}.avatar{width:38px;height:42px}.sp-card{padding:.4rem;gap:.4rem}.sp-img{width:36px;height:40px}.login-card{max-width:calc(100% - 2rem);padding:1.5rem;margin:1rem}h5.mb-0{font-size:.95rem}.btn-group-sm>.btn{padding:.2rem .35rem;font-size:.7rem}.modal-dialog{margin:.5rem}.chart-box{height:110px}.pt-avatar{width:26px;height:28px}}@media (min-width: 576px) and (max-width: 991.98px){.navbar-nav{gap:1rem!important}.navbar-nav .nav-link{font-size:.8rem}.stat-number{font-size:1.4rem}.kpi-circle{width:75px;height:75px;font-size:1.2rem}.table td,.table th{font-size:.8rem;padding:.4rem .5rem}.chart-box{height:120px}}@media (hover: none){.sortable:hover{color:inherit}.table-hover tbody tr:hover{background:inherit}.btn{min-height:38px}}
