body{background-color:#f4f4f4;font-family:Arial,sans-serif}.App{text-align:center}.login-container{align-items:center;background:linear-gradient(135deg,#1e3c72,#2a5298);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-box{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:40px;width:100%}.login-header{margin-bottom:20px;text-align:center}.login-logo{background:linear-gradient(135deg,#1e3c72,#2a5298);border-radius:12px;height:auto;margin-bottom:15px;max-width:100px;padding:12px 20px}.login-header h1{color:#1e3c72;font-size:28px;margin:0}.login-header p{color:#666;margin:10px 0 0}.login-form .form-group{margin-bottom:20px}.login-form .form-group label{color:#333;display:block;font-weight:600;margin-bottom:8px}.login-form .form-group input{border:2px solid #e0e0e0;border-radius:10px;box-sizing:border-box;font-size:16px;padding:14px 16px;transition:all .3s;width:100%}.login-form .form-group input:focus{border-color:#1e3c72;box-shadow:0 0 0 3px #1e3c721a;outline:none}.login-form .form-group input::placeholder{color:#aaa}.error-message{background:#ffe0e0;color:#c00;font-size:14px;margin-bottom:20px;padding:12px;text-align:center}.btn-login{background:linear-gradient(135deg,#1e3c72,#2a5298);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:18px;font-weight:600;margin-top:10px;padding:16px;transition:all .3s;width:100%}.btn-login:hover:not(:disabled){box-shadow:0 6px 20px #1e3c7266;transform:translateY(-2px)}.btn-login:disabled{cursor:not-allowed;opacity:.6}.login-help{border-top:1px solid #eee;color:#888;font-size:13px;margin-top:30px;padding-top:20px;text-align:center}.login-help p{margin:0 0 10px}.login-help ul{list-style:none;margin:0;padding:0}.login-help li{color:#666;font-family:monospace;font-size:12px;margin:8px 0}.login-help li strong{color:#1e3c72}.acompte-modal-overlay{align-items:center;background:#0000004d;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.acompte-modal{background:#fff;border-radius:8px;box-shadow:0 2px 16px #00000026;max-width:90vw;min-width:320px;padding:32px 24px 24px;position:relative}.acompte-modal h2{color:#f5c542;margin-bottom:16px;margin-top:0}.acompte-status{color:#4caf50;font-weight:700;margin-top:12px}.acompte-modal input[type=number]{border:1px solid #ccc;border-radius:4px;font-size:1rem;padding:8px}.acompte-modal .btn-close-form{background:#eee;border:none;border-radius:4px;color:#222;cursor:pointer;padding:8px 16px}.calendar-day.night-shift-end{box-shadow:0 0 0 4px #75757599!important;z-index:2}.calendar-day.night-shift-end,.calendar-day.night-shift-end.has-absence,.calendar-day.night-shift-end.today,.calendar-day.night-shift-end.weekend{background:#bdbdbd!important;border:4px solid #222!important;color:#222!important}.employee-dashboard{grid-gap:25px;display:grid;gap:25px}.clock-section{background:linear-gradient(135deg,#1e3c72,#2a5298);border-radius:20px;box-shadow:0 10px 40px #1e3c724d;color:#fff;padding:40px;text-align:center}.current-date{font-size:18px;opacity:.9;text-transform:capitalize}.current-time{font-family:Courier New,monospace;font-size:72px;font-weight:700;margin:15px 0;text-shadow:0 4px 20px #0000004d}.status-badge{margin-top:15px}.status-absent,.status-none,.status-pause,.status-present{border-radius:25px;display:inline-block;font-size:16px;font-weight:600;padding:10px 25px}.status-present{background:#00c85333;border:2px solid #00c853}.status-absent{background:#ff980033;border:2px solid #ff9800}.status-pause{background:#ffc10733;border:2px solid #ffc107}.status-none{background:#fff3;border:2px solid #ffffff80}.pointage-section{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;padding:30px}.pointage-section h2{color:#333;margin:0 0 25px;text-align:center}.pointage-buttons{display:flex;gap:20px;justify-content:center;margin-bottom:25px}.btn-pointage{align-items:center;border:none;border-radius:16px;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:10px;max-width:200px;padding:30px 20px;transition:all .3s}.btn-pointage:disabled{cursor:not-allowed;opacity:.4;transform:none!important}.btn-entree{background:linear-gradient(135deg,#00c853,#00e676);color:#fff}.btn-entree:hover:not(:disabled){box-shadow:0 10px 30px #00c85366;transform:scale(1.05)}.btn-sortie{background:linear-gradient(135deg,#ff5252,#ff1744);color:#fff}.btn-sortie:hover:not(:disabled){box-shadow:0 10px 30px #ff525266;transform:scale(1.05)}.pause-buttons{border-top:1px dashed #e0e0e0;margin-top:15px;padding-top:15px}.btn-pause-debut{background:linear-gradient(135deg,#ff9800,#ffc107);color:#fff}.btn-pause-debut:hover:not(:disabled){box-shadow:0 10px 30px #ff980066;transform:scale(1.05)}.btn-pause-fin{background:linear-gradient(135deg,#2196f3,#03a9f4);color:#fff}.btn-pause-fin:hover:not(:disabled){box-shadow:0 10px 30px #2196f366;transform:scale(1.05)}.btn-icon{font-size:36px}.btn-text{font-size:18px;font-weight:600}.today-summary{background:#f8f9fa;border-radius:12px;display:flex;gap:30px;justify-content:center;padding:20px;text-align:center}.summary-item{flex:1 1}.summary-label{display:block;font-size:14px;margin-bottom:5px}.summary-value{font-size:28px}.summary-value.pause-value{color:#ff9800}.summary-value.week-value{color:#2196f3}.week-summary{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:12px;margin-top:15px;padding:20px}.week-summary h3{color:#1565c0;font-size:16px;margin:0 0 15px}.week-summary .summary-row{display:flex;gap:30px;justify-content:center}.week-summary .summary-item{text-align:center}.week-summary .summary-value{font-size:24px}.history-section,.week-section{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;padding:25px}.history-section h2,.week-section h2{color:#333;margin:0 0 20px}.no-pointages{color:#888;padding:20px}.history-list,.pointage-list{list-style:none;margin:0;padding:0}.pointage-item{align-items:center;background:#f8f9fa;border-radius:10px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:10px;padding:15px}.pointage-item.entree{border-left:4px solid #00c853}.pointage-item.sortie{border-left:4px solid #ff5252}.pointage-time{color:#1e3c72;font-weight:600}.validation-badge{font-size:11px;padding:3px 8px}.validation-badge.en_attente{background:#fff3e0;color:#e65100}.validation-badge.valide{background:#e8f5e9;color:#2e7d32}.validation-badge.refuse{background:#ffebee;color:#c62828}.source-badge{background:#e3f2fd;border-radius:10px;color:#1565c0;font-size:10px;padding:2px 6px}.history-item{background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:8px;padding:12px 15px}.history-date{color:#666}.history-type{border-radius:12px;font-size:12px;font-weight:600;padding:3px 10px}.history-type.entree{background:#e8f5e9;color:#2e7d32}.history-type.sortie{background:#ffebee;color:#c62828}.history-time{color:#1e3c72;font-weight:500}.emp-nav{display:flex;gap:10px;margin-bottom:20px}.emp-nav-btn{background:#f0f2f5;border:none;border-radius:12px;color:#666;cursor:pointer;flex:1 1;font-size:16px;font-weight:600;padding:15px 20px;transition:all .3s}.emp-nav-btn.active{background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff}.emp-nav-btn:hover:not(.active){background:#e0e4e8}.balance-section{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;padding:25px}.balance-section h2{color:#333;margin:0 0 20px}.balance-cards{display:flex;gap:20px}.balance-card{align-items:flex-start;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #e0e4e8;border-radius:16px;display:flex;flex:1 1;flex-direction:column;gap:10px;padding:20px}.balance-card.cp-card{border-left:4px solid #4caf50}.balance-card.rtt-card{border-left:4px solid #2196f3}.balance-icon{font-size:36px}.balance-info{display:flex;flex-direction:column}.balance-value{color:#1e3c72;font-size:32px;font-weight:700}.balance-label{color:#666;font-size:14px}.balance-details{background:#00000008;border-radius:8px;color:#888;font-size:11px;padding:6px 10px;width:100%}.absence-request-section{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;padding:25px}.section-header{margin-bottom:20px}.section-header h2{color:#333}.btn-toggle-form{background:#1e3c72;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s}.btn-toggle-form:hover{background:#2a5298;transform:scale(1.02)}.absence-form{background:#f8f9fa;border-radius:16px;padding:25px}.form-row{margin-bottom:15px}.form-group input,.form-group select,.form-group textarea{border:2px solid #e0e4e8;font-size:14px;transition:all .3s}.form-group textarea{min-height:80px;resize:vertical}.btn-submit-absence{background:linear-gradient(135deg,#00c853,#00e676);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:15px;transition:all .3s;width:100%}.btn-submit-absence:hover{box-shadow:0 5px 20px #00c8534d;transform:scale(1.02)}.absences-list-section{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;padding:25px}.absences-list-section h2{color:#333;margin:0 0 20px}.no-absences{padding:30px}.absences-list{list-style:none;margin:0;padding:0}.absence-item{background:#f8f9fa;border-left:4px solid #ccc;border-radius:12px;margin-bottom:15px;padding:20px}.absence-item.status-en_attente{border-left-color:#ff9800}.absence-item.status-approuve{border-left-color:#00c853}.absence-item.status-refuse{border-left-color:#ff5252}.absence-main{align-items:center;display:flex;gap:15px;margin-bottom:10px}.absence-dates{color:#333;font-weight:600}.absence-details{align-items:center;display:flex;justify-content:space-between}.absence-motif{font-size:14px}.absence-refus{background:#ffebee;border-radius:8px;color:#c62828;font-size:14px;margin-top:10px;padding:10px 15px}.badge-pending{background:#fff3e0;color:#e65100}.badge-approved,.badge-pending{border-radius:20px;font-size:13px;font-weight:600;padding:5px 12px}.badge-approved{background:#e8f5e9;color:#2e7d32}.badge-rejected{background:#ffebee;border-radius:20px;color:#c62828;font-size:13px;font-weight:600;padding:5px 12px}.year-stats{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px;color:#fff;margin-top:20px;padding:20px}.year-stats h3{font-size:16px;margin:0 0 15px;opacity:.9}.stat-item{text-align:center}.stat-number{display:block;font-size:28px}.stat-item .stat-label{font-size:11px;opacity:.8;text-transform:uppercase}.upcoming-absences{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;padding:25px}.upcoming-absences h2{color:#333;margin:0 0 20px}.upcoming-list{display:flex;flex-direction:column;gap:12px}.upcoming-item{align-items:center;background:#f8f9fa;border-left:4px solid #2196f3;border-radius:12px;display:flex;gap:15px;padding:15px}.upcoming-item.status-en_attente{border-left-color:#ff9800}.upcoming-icon{font-size:24px}.upcoming-info{flex:1 1}.upcoming-type{color:#333;display:block;font-weight:600}.upcoming-dates{color:#666;font-size:13px}.upcoming-status{font-size:20px}.quick-absence-section{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;padding:25px}.quick-absence-section h2{color:#333;margin:0 0 5px}.quick-subtitle{color:#666;font-size:14px;margin:0 0 20px}.quick-buttons{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.quick-btn{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:18px 12px;position:relative;transition:all .2s}.quick-btn:hover{background:color-mix(in srgb,#2196f3 10%,#fff);background:color-mix(in srgb,var(--btn-color,#2196f3) 10%,#fff);transform:translateY(-2px)}.quick-btn.selected,.quick-btn:hover{border-color:#2196f3;border-color:var(--btn-color,#2196f3)}.quick-btn.selected{background:color-mix(in srgb,#2196f3 15%,#fff);background:color-mix(in srgb,var(--btn-color,#2196f3) 15%,#fff);box-shadow:0 4px 15px color-mix(in srgb,#2196f3 30%,#0000);box-shadow:0 4px 15px color-mix(in srgb,var(--btn-color,#2196f3) 30%,#0000)}.quick-icon{font-size:28px}.quick-label{color:#333;font-size:12px;font-weight:600;text-align:center}.deductible-tag{background:#ff9800;border-radius:10px;color:#fff;font-size:9px;font-weight:600;padding:3px 6px;position:absolute;right:-8px;top:-8px}.absence-form-section{background:#fff;border:2px solid #2196f3;border-radius:20px;box-shadow:0 4px 20px #00000014;padding:25px}.form-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.form-header h2{color:#1e3c72;font-size:18px;margin:0}.btn-close-form{background:#f5f5f5;border:none;border-radius:50%;cursor:pointer;font-size:16px;height:32px;transition:all .2s;width:32px}.btn-close-form:hover{background:#e0e0e0}.deductible-warning{background:#fff3e0;border:1px solid #ffb74d;border-radius:10px;color:#e65100;font-size:14px;margin-bottom:15px;padding:12px 15px}.no-absences{color:#888;padding:40px 20px;text-align:center}.no-absences-icon{display:block;font-size:48px;margin-bottom:15px}.no-absences p{margin:5px 0}.no-absences-hint{color:#aaa;font-size:13px}.type-teletravail{background:#f3e5f5;color:#7b1fa2}.type-formation{background:#fff3e0;color:#e65100}.type-evenement_familial{background:#fce4ec;color:#c2185b}.type-demenagement{background:#efebe9;color:#5d4037}.type-enfant_malade{background:#e0f7fa;color:#00838f}.type-rendez_vous_medical{background:#eceff1;color:#546e7a}.calendar-section{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;padding:25px}.calendar-header{margin-bottom:20px}.calendar-header h2{color:#333;margin:0}.calendar-nav button{background:#f5f5f5;border:none;border-radius:50%;font-size:14px}.calendar-nav button:hover{background:#e0e0e0}.calendar-month{color:#1e3c72;font-size:16px;font-weight:600;min-width:150px;text-align:center;text-transform:capitalize}.calendar-weekdays{grid-gap:5px;gap:5px;margin-bottom:10px}.weekday{color:#666;font-size:12px;font-weight:600;padding:10px 0;text-align:center}.calendar-days{grid-gap:3px;gap:3px}.calendar-day{align-items:center;background:#fafafa;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;max-height:60px;min-height:45px;transition:all .2s}.calendar-day:hover{background:#e3f2fd}.calendar-day.clickable:hover{background:#bbdefb;box-shadow:0 2px 8px #00000026;transform:scale(1.05)}.calendar-day.other-month{opacity:.3}.calendar-day.other-month.clickable{cursor:default}.calendar-day.today{background:#1e3c72;color:#fff}.calendar-day.today .day-number{font-weight:700}.calendar-day.has-absence{background:linear-gradient(135deg,#e8f5e9,#c8e6c9)}.calendar-day.has-absence.status-en_attente{background:linear-gradient(135deg,#fff3e0,#ffe0b2)}.day-number{font-size:13px;font-weight:500}.day-absence-icon{bottom:4px;font-size:12px;position:absolute}.calendar-legend{border-top:1px solid #eee;display:flex;gap:25px;justify-content:center;margin-top:20px;padding-top:15px}.legend-dot.approved{background:#4caf50}.legend-dot.pending{background:#ff9800}.legend-dot.today-dot{background:#1e3c72}.recurrence-info{background:#e3f2fd;border:1px solid #90caf9;border-radius:10px;color:#1565c0;font-size:14px;margin-bottom:15px;padding:12px 15px}.file-upload{position:relative}.file-upload input[type=file]{cursor:pointer;height:100%;opacity:0;position:absolute;width:100%}.file-upload-label{align-items:center;background:#fafafa;border:2px dashed #ccc;border-radius:10px;cursor:pointer;display:flex;justify-content:center;padding:20px;transition:all .2s}.file-upload-label:hover{background:#e3f2fd;border-color:#2196f3}.file-selected{color:#4caf50;font-weight:600}.file-hint{color:#999;display:block;font-size:12px;margin-top:8px}.absence-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.absence-file,.absence-notified,.absence-recurrence{border-radius:15px;font-size:11px;font-weight:600;padding:4px 10px}.absence-recurrence{background:#e3f2fd;color:#1565c0}.absence-file{background:#f3e5f5;color:#7b1fa2}.absence-notified{background:#e8f5e9;color:#2e7d32}.absence-detail-overlay{align-items:center;animation:fadeIn .2s ease;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.absence-detail-popup{animation:slideUp .3s ease;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:450px;width:90%}.absence-detail-popup .popup-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:20px 25px}.absence-detail-popup .popup-header h3{color:#333;font-size:1.2rem;margin:0}.btn-close-popup{align-items:center;background:#f5f5f5;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;transition:all .2s;width:32px}.btn-close-popup:hover{background:#e0e0e0;color:#333}.absence-detail-popup .popup-content{padding:25px}.detail-row{align-items:flex-start;border-bottom:1px solid #f5f5f5;justify-content:space-between;padding:12px 0}.detail-row:last-child{border-bottom:none}.detail-label{color:#666;font-size:14px;font-weight:600}.detail-value{color:#333;font-size:14px;max-width:60%;text-align:right}.detail-value.motif{color:#555;font-style:italic}.detail-row.refus{background:#fff5f5;border-bottom:none;margin:0 -25px;padding:12px 25px}.detail-row.refus .detail-label,.detail-row.refus .detail-value{color:#c62828}.absence-detail-popup .popup-footer{display:flex;justify-content:flex-end;padding:15px 25px 25px}.absence-detail-popup .btn-close{background:#1e3c72;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 25px;transition:all .2s}.absence-detail-popup .btn-close:hover{background:#2a5298}@media (max-width:1024px){.emp-dashboard-container{padding:15px}.balance-cards{flex-wrap:wrap}.balance-card{flex-basis:calc(50% - 10px);flex-grow:1;flex-shrink:1;min-width:200px}}@media (max-width:768px){.emp-dashboard-container{padding:10px}.emp-nav{flex-wrap:wrap}.emp-nav-btn{flex-basis:calc(50% - 5px);flex-grow:1;flex-shrink:1;font-size:14px;min-width:120px;padding:12px 15px}.clock-section{border-radius:16px;padding:25px 15px}.current-time{font-size:48px}.current-date{font-size:14px}.pointage-section{padding:20px 15px}.pointage-buttons{align-items:center;flex-direction:column}.btn-pointage{max-width:100%;padding:20px;width:100%}.pause-buttons .pointage-buttons{flex-direction:row}.pause-buttons .btn-pointage{padding:15px}.balance-section{padding:20px 15px}.balance-cards{flex-direction:column;gap:15px}.balance-card{flex:1 1 100%}.balance-value{font-size:24px}.balance-icon{font-size:28px}.history-section{padding:20px 15px}.pointage-item{align-items:flex-start;flex-direction:column;gap:8px}.stats-grid{gap:12px;grid-template-columns:repeat(2,1fr)}.stat-card{padding:15px}.stat-value{font-size:24px}.quick-buttons{gap:12px;grid-template-columns:repeat(2,1fr)}.calendar-header{flex-direction:column;gap:15px}.calendar-day{font-size:12px;padding:8px 4px}.calendar-legend{flex-wrap:wrap;gap:15px}.absence-request-section{padding:20px 15px}.section-header{align-items:flex-start;flex-direction:column;gap:10px}.btn-toggle-form{width:100%}.absence-form .form-row{flex-direction:column;gap:15px}.absence-form .form-row>div{flex:1 1 100%}}@media (max-width:480px){.emp-dashboard-container{padding:8px}.emp-nav{gap:6px}.emp-nav-btn{border-radius:10px;flex-basis:calc(50% - 3px);flex-grow:1;flex-shrink:1;font-size:12px;padding:10px 8px}.clock-section{border-radius:12px;padding:20px 12px}.current-time{font-size:36px;margin:10px 0}.current-date{font-size:13px}.status-badge{margin-top:10px}.status-absent,.status-none,.status-pause,.status-present{font-size:14px;padding:8px 16px}.btn-pointage{border-radius:12px;padding:15px}.btn-pointage span:first-child{font-size:24px}.btn-pointage span:last-child{font-size:14px}.pause-buttons .pointage-buttons{flex-direction:column}.balance-value{font-size:20px}.balance-icon{font-size:24px}.balance-label{font-size:12px}.history-item{align-items:flex-start;flex-direction:column;gap:5px}.stats-grid{gap:8px;grid-template-columns:1fr 1fr}.stat-card{padding:12px 10px}.stat-value{font-size:20px}.stat-label{font-size:11px}.quick-buttons{gap:8px}.quick-btn{font-size:12px;padding:15px 10px}.calendar-grid{gap:3px}.calendar-day{font-size:10px;min-height:50px;padding:6px 2px}.calendar-day .day-number{font-size:12px}.calendar-month-nav button{font-size:13px;padding:6px 12px}.calendar-month-nav span{font-size:14px}.absence-request-section h2{font-size:18px}.absence-form label{font-size:13px}.absence-form input,.absence-form select,.absence-form textarea{font-size:14px;padding:10px}.absence-history-item{align-items:flex-start;flex-direction:column;gap:10px}.absence-dates{flex-direction:column;gap:5px}}.demandes-subtabs{background:#f8f9fa;border-radius:12px;display:flex;gap:10px;margin-bottom:25px;padding:5px;width:-webkit-fit-content;width:fit-content}.subtab-btn{background:#0000;border:none;border-radius:8px;color:#666;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .2s}.subtab-btn:hover{background:#e9ecef;color:#333}.subtab-btn.active{background:#fff;box-shadow:0 2px 8px #00000014;color:#3498db}.demande-section{animation:fadeIn .3s ease}.demande-section h2{color:#333;font-size:1.5rem;margin-bottom:5px}.section-subtitle{color:#666;font-size:14px;margin-bottom:20px}.demande-form-card{background:#fff;border-radius:16px;box-shadow:0 2px 12px #0000000f;margin-bottom:25px;padding:25px}.demande-form-card .form-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.demande-form-card .form-header h3{color:#333;font-size:1.1rem;margin:0}.demande-form-card .form-group{margin-bottom:18px}.demande-form-card .form-group label{color:#444;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.demande-form-card input,.demande-form-card select,.demande-form-card textarea{border:2px solid #e9ecef;border-radius:10px;box-sizing:border-box;font-size:14px;padding:12px 14px;transition:border-color .2s;width:100%}.demande-form-card input:focus,.demande-form-card select:focus,.demande-form-card textarea:focus{border-color:#3498db;outline:none}.demande-form-card .form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr}.btn-submit-demande{background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;margin-top:10px;padding:14px;transition:all .2s;width:100%}.btn-submit-demande:hover{box-shadow:0 4px 15px #3498db59;transform:translateY(-2px)}.demande-status{border-radius:8px;font-weight:600;margin-top:15px;padding:12px;text-align:center}.demande-status.success{background:#d4edda;color:#155724}.demande-status.error{background:#f8d7da;color:#721c24}.btn-add-note{background:linear-gradient(135deg,#27ae60,#219a52);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;margin-bottom:25px;padding:14px 28px;transition:all .2s}.btn-add-note:hover{box-shadow:0 4px 15px #27ae6059;transform:translateY(-2px)}.notes-frais-history{margin-top:30px}.notes-frais-history h3{color:#333;font-size:1.2rem;margin-bottom:15px}.no-data{background:#f8f9fa;border-radius:12px;padding:40px;text-align:center}.no-data-icon{display:block;font-size:3rem;margin-bottom:10px}.no-data p{color:#666;margin:0}.notes-frais-list{list-style:none;margin:0;padding:0}.note-frais-item{background:#fff;border-left:4px solid #ccc;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:12px;padding:18px;transition:transform .2s,box-shadow .2s}.note-frais-item:hover{box-shadow:0 4px 12px #00000014;transform:translateX(5px)}.note-frais-item.status-en_attente{border-left-color:#f39c12}.note-frais-item.status-approuve{border-left-color:#27ae60}.note-frais-item.status-refuse{border-left-color:#e74c3c}.note-main{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.note-type{color:#333;font-size:15px;font-weight:600}.note-montant{color:#2c3e50;font-size:18px;font-weight:700}.note-details{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.note-date{color:#666;font-size:13px}.note-description{color:#555;font-size:14px;font-style:italic}.note-status .status-badge{border-radius:20px;display:inline-block;font-size:12px;font-weight:600;padding:6px 12px}.note-status .status-badge.pending{background:#fff3cd;color:#856404}.note-status .status-badge.approved{background:#d4edda;color:#155724}.note-status .status-badge.refused{background:#f8d7da;color:#721c24}@media (max-width:768px){.demandes-subtabs{width:100%}.subtab-btn{flex:1 1;font-size:13px;padding:10px 15px;text-align:center}.demande-form-card .form-row{grid-template-columns:1fr}.demande-form-card{padding:15px}.demande-section h2{font-size:1.2rem}.demande-form-card .form-header{align-items:flex-start;flex-direction:column;gap:10px}.acompte-history-list,.notes-history-list{max-height:none}.acompte-history-item,.note-history-item{align-items:flex-start;flex-direction:column;gap:12px}.acompte-info,.note-info{width:100%}.acompte-amount{font-size:1.3rem}}@media (max-width:480px){.demandes-subtabs{gap:6px;padding:4px}.subtab-btn{font-size:12px;padding:8px 10px}.demande-form-card{border-radius:12px;padding:12px}.demande-form-card input,.demande-form-card select,.demande-form-card textarea{font-size:14px;padding:10px}.submit-btn{padding:12px;width:100%}.note-meta{flex-direction:column;gap:5px}.note-amount,.note-category{font-size:.95rem}}.planning-employee-section{padding:20px}.planning-header-emp{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:25px}.planning-header-emp h2{color:#2c3e50;font-size:1.5rem;margin:0}.planning-nav{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.planning-nav .nav-btn{background:#fff;border:1px solid #ddd;border-radius:8px;cursor:pointer;font-weight:500;padding:8px 16px;transition:all .2s}.planning-nav .nav-btn:hover{background:#f0f0f0;border-color:#3498db}.planning-nav .nav-btn.today{background:#3498db;border-color:#3498db;color:#fff}.week-label{color:#2c3e50;font-weight:600;min-width:200px;padding:0 10px;text-align:center}.loading-planning{color:#666;font-size:1.1rem;padding:40px;text-align:center}.planning-week-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(7,1fr);margin-bottom:25px}.planning-day-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden;transition:all .2s}.planning-day-card:hover{box-shadow:0 4px 15px #0000001f;transform:translateY(-2px)}.planning-day-card.today{border:2px solid #3498db;box-shadow:0 4px 15px #3498db4d}.planning-day-card.weekend{background:#fafafa}.day-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px;text-align:center}.planning-day-card.today .day-header{background:linear-gradient(135deg,#3498db,#2980b9)}.planning-day-card.weekend .day-header{background:linear-gradient(135deg,#95a5a6,#7f8c8d)}.day-name{display:block;font-size:.9rem;font-weight:600;margin-bottom:2px}.day-date{display:block;font-size:.8rem;opacity:.9}.day-content{align-items:center;display:flex;justify-content:center;min-height:80px;padding:15px}.shift-info{border-left:4px solid #3498db;padding-left:12px;width:100%}.shift-name{font-size:1.1rem;margin-bottom:4px}.shift-hours{color:#333;font-size:.95rem;font-weight:500}.shift-pause{color:#888;font-size:.8rem;margin-top:4px}.no-shift{color:#aaa;font-size:.95rem;font-style:italic}.planning-legend{background:#f8f9fa;border-radius:12px;padding:20px}.planning-legend h4{color:#2c3e50;font-size:1rem;margin:0 0 15px}.legend-items{display:flex;flex-wrap:wrap;gap:15px}.legend-color{border-radius:4px;height:16px;width:16px}.legend-label{color:#555;font-size:.9rem}@media (max-width:900px){.planning-week-grid{grid-template-columns:repeat(4,1fr)}.planning-employee-section{padding:15px}}@media (max-width:600px){.planning-week-grid{grid-template-columns:repeat(2,1fr)}.planning-header-emp{align-items:flex-start;flex-direction:column}.planning-header-emp h2{font-size:1.2rem}.planning-nav{justify-content:center;width:100%}.planning-nav .nav-btn{font-size:13px;padding:6px 12px}.week-label{font-size:13px;text-align:center;width:100%}.planning-day-card{padding:12px}.day-name{font-size:.85rem}.day-date{font-size:.75rem}.shift-name{font-size:.9rem}.shift-time{font-size:.85rem}.planning-legend{padding:15px}.legend-items{gap:10px}.legend-label{font-size:.8rem}}@media (max-width:400px){.planning-week-grid{gap:8px;grid-template-columns:1fr 1fr}.planning-day-card,.planning-employee-section{padding:10px}}.actualites-employee-section{padding:20px}.section-header-emp{margin-bottom:25px}.section-header-emp h2{color:#1e3c72;font-size:1.4rem;margin:0}.actualites-list-emp{display:flex;flex-direction:column;gap:20px}.actualite-card-emp{background:#fff;border-left:5px solid #3498db;border-radius:12px;box-shadow:0 2px 10px #00000014;padding:20px;transition:all .2s}.actualite-card-emp:hover{box-shadow:0 4px 15px #0000001f}.actualite-card-emp.priority-high{background:linear-gradient(90deg,#fff5f5,#fff);border-left-color:#e74c3c}.actualite-card-emp.priority-normal{border-left-color:#3498db}.actualite-card-emp.priority-low{border-left-color:#95a5a6}.actualite-header-emp{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:15px}.category-badge-emp{border-radius:15px;font-size:.8rem;font-weight:600;padding:5px 12px}.category-badge-emp.info{background:#e3f2fd;color:#1976d2}.category-badge-emp.urgent{background:#ffebee;color:#c62828}.category-badge-emp.event{background:#fff3e0;color:#ef6c00}.category-badge-emp.rh{background:#f3e5f5;color:#7b1fa2}.actualite-date-emp{color:#7f8c8d;font-size:.85rem}.actualite-title-emp{color:#2c3e50;font-size:1.2rem;margin:0 0 12px}.actualite-content-emp{color:#555;font-size:.95rem;line-height:1.6;margin:0 0 15px;white-space:pre-line}.actualite-expires-emp{background:#fff8e1;border-radius:8px;color:#e67e22;display:inline-block;font-size:.85rem;padding:8px 12px}.empty-state-emp{background:#f8f9fa;border-radius:12px;padding:60px 20px;text-align:center}.empty-state-emp .empty-icon{font-size:4rem;margin-bottom:15px}.empty-state-emp p{color:#7f8c8d;font-size:1.1rem;margin:0}.emp-nav-btn .badge-count{background:#e74c3c;border-radius:10px;color:#fff;font-size:.7rem;margin-left:5px;padding:2px 6px}.icon-inline{height:1.25em;margin-right:.25em;width:1.25em}.icon-btn,.icon-inline{display:inline-block;vertical-align:middle}.icon-btn{height:1em;width:1em}.icon-inline.spin,.spin{animation:spin 1s linear infinite}.stats-grid.stats-grid-3{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(3,1fr);margin-bottom:30px}.glass-card{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:linear-gradient(135deg,#1e3c72d9,#2a5298bf);border:1px solid #ffffff2e;border-radius:20px;box-shadow:0 8px 32px #0a0e2766,inset 0 1px 0 #ffffff1a,inset 0 -1px 0 #0000001a;overflow:hidden;position:relative}.glass-card:before{background:linear-gradient(180deg,#ffffff14,#0000);border-radius:20px 20px 0 0;content:"";height:50%;left:0;pointer-events:none;position:absolute;right:0;top:0}.stat-card.glass-card{align-items:center;color:#fff;display:flex;gap:16px;min-height:100px;padding:24px 20px;transition:all .3s ease}.stat-card.glass-card:hover{box-shadow:0 16px 48px #0a0e2780,inset 0 1px 0 #ffffff26,0 0 0 1px #ffffff1a;transform:translateY(-4px)}.stat-card.glass-card.present{background:linear-gradient(135deg,#00c853e6,#00b464d9);border-color:#00ff784d}.stat-card.glass-card.absent{background:linear-gradient(135deg,#dc3545e6,#c82333d9);border-color:#ff64644d}.stat-card.glass-card.employees{background:linear-gradient(135deg,#1e3c72f2,#2a5298e6);border-color:#6496ff4d}.stat-card.glass-card .stat-icon{color:#fffffff2;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));font-size:40px;opacity:1;position:relative}.stat-card.glass-card .stat-icon .icon-inline{color:#fffffff2;height:48px;width:48px}.stat-card.glass-card .stat-info{display:flex;flex-direction:column;gap:4px}.stat-card.glass-card .stat-number{color:#fff;font-size:36px;font-weight:700;text-shadow:0 2px 8px #0000004d}.stat-card.glass-card .stat-label{color:#fff;font-size:14px;font-weight:600;letter-spacing:1px;text-shadow:0 1px 3px #0003;text-transform:uppercase}.acompte-table{border-collapse:collapse;margin-top:1.5em;width:100%}.acompte-table td,.acompte-table th{border:1px solid #ddd;padding:8px 12px;text-align:left}.acompte-table th{background:#f5c542;color:#222}.acompte-table tr:nth-child(2n){background:#f9f9f9}.acompte-actions{display:flex;gap:8px}.btn-approve{background:#28a745;border-radius:4px;font-size:13px;padding:6px 12px;transition:background .2s}.btn-approve:hover{background:#218838}.btn-reject{background:#dc3545;border-radius:4px;font-size:13px;padding:6px 12px;transition:background .2s}.btn-reject:hover{background:#c82333}.processed-info{color:#666;font-size:12px;font-style:italic}.absence-info-in-detail{display:flex;flex-direction:column;gap:6px;margin-top:8px}.absence-badge-in-detail{align-items:center;background:#f9f9f9;border-left:4px solid #bbb;border-radius:6px;display:flex;font-size:14px;gap:8px;padding:4px 10px}.absence-icon{font-size:18px;margin-right:2px}.absence-label{font-weight:600}.absence-status{font-size:13px;margin-left:6px;margin-right:6px}.absence-period{color:#888;font-size:12px;margin-right:6px}.absence-motif{color:#666;font-size:12px;font-style:italic}.admin-dashboard{background:#fff;border-radius:16px;box-shadow:0 1px 3px #00000014;box-sizing:border-box;color:#1a2b4a;max-width:100%;padding:24px;width:100%}.overview-section{width:100%}.admin-nav{border-bottom:1px solid #e8ecf1;display:flex;gap:10px;margin-bottom:25px;padding-bottom:20px}.nav-tab{background:#f5f7fa;border:1px solid #e8ecf1;border-radius:12px;color:#6b7c93;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s}.nav-tab:hover{background:#e0e8f0}.nav-tab.active{background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff}.stats-grid{grid-gap:15px;gap:15px;margin-bottom:20px;width:100%}.stat-card{border-radius:10px;color:#fff;gap:8px;min-height:50px;overflow:hidden;padding:10px 12px;position:relative}.stat-card.green{background:linear-gradient(135deg,#00c853,#00e676)}.stat-card.red{background:linear-gradient(135deg,#ff5252,#ff1744)}.stat-card.blue{background:linear-gradient(135deg,#1e3c72,#2a5298)}.stat-card.purple{background:linear-gradient(135deg,#7b1fa2,#9c27b0)}.stat-card.teal{background:linear-gradient(135deg,#00897b,#26a69a)}.stat-card.indigo{background:linear-gradient(135deg,#3949ab,#5c6bc0)}.stat-card.amber{background:linear-gradient(135deg,#ff8f00,#ffc107)}.stat-card.cyan{background:linear-gradient(135deg,#00838f,#00bcd4)}.stat-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));font-size:26px;opacity:.6;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.stat-info{display:flex;flex-direction:column}.stat-number{font-size:20px;font-weight:700}.stat-label{font-size:10px;letter-spacing:.5px;opacity:.9;text-transform:uppercase}.presence-lists{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr);width:100%}.presence-card{background:#f8fafc;border:1px solid #e8ecf1;border-radius:16px;box-shadow:0 1px 3px #0000000d;padding:20px}.presence-card h3{color:#1a2b4a;font-weight:600;margin:0 0 15px}.empty-list{color:#6b7c93;padding:20px;text-align:center}.employee-list{display:block!important;list-style:none;margin:0;max-height:200px!important;overflow-x:hidden!important;overflow-y:scroll!important;padding:0}.employee-list::-webkit-scrollbar{width:6px}.employee-list::-webkit-scrollbar-track{background:#f0f0f0;border-radius:3px}.employee-list::-webkit-scrollbar-thumb{background:silver;border-radius:3px}.employee-list::-webkit-scrollbar-thumb:hover{background:#a0a0a0}.employee-item{background:#fff;border:1px solid #e8ecf1;border-radius:10px;padding:12px 15px;transition:all .2s ease}.employee-item:hover{background:#f5f7fa}.employee-item.present{border-left:4px solid #00c853}.employee-item.absent{border-left:4px solid #ff5252}.employee-item.night-working{background:#faf5fc;border-left:4px solid #9c27b0}.employee-item.night-completed{background:#f5faf6;border-left:4px solid #4caf50}.employee-item.night-missing{background:#fffaf5;border-left:4px solid #ff9800}.emp-name{color:#1a2b4a}.emp-dept,.emp-time{color:#6b7c93}.emp-time{font-weight:500}.night-shift-section{background:linear-gradient(135deg,#1a237e,#283593);border-radius:16px;box-sizing:border-box;margin-top:20px;padding:20px;width:100%}.night-shift-section h3{color:#fff;font-size:1.1rem;margin:0 0 15px}.night-shift-lists{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));width:100%}.night-card{background:#fffffff2;border-radius:12px;padding:15px}.night-card .employee-list{max-height:200px;overflow-y:auto}.night-card h4{color:#333;font-size:.95rem;margin:0 0 12px}.night-card.working{border-top:3px solid #9c27b0}.night-card.upcoming{border-top:3px solid #2196f3}.night-card.completed{border-top:3px solid #4caf50}.night-card.missing{border-top:3px solid #ff9800}.emp-name{color:#333;font-weight:600}.emp-dept{color:#888;font-size:13px}.emp-time{color:#666;display:block;font-size:12px;margin-top:2px}.employee-item.night-working{background:#9c27b014;border-left:3px solid #9c27b0}.employee-item.night-upcoming{background:#2196f314;border-left:3px solid #2196f3}.employee-item.night-completed{background:#4caf5014;border-left:3px solid #4caf50}.employee-item.night-missing{background:#ff980014;border-left:3px solid #ff9800}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:25px}.section-header h2{margin:0}.btn-add-employee{background:linear-gradient(135deg,#00c853,#00e676);border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .3s}.btn-add-employee:hover{box-shadow:0 5px 20px #00c85366;transform:translateY(-2px)}.add-employee-form{grid-gap:15px;background:#f8f9fa;border-radius:16px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:25px;padding:25px}.add-employee-form input{border:2px solid #e0e0e0;border-radius:10px;font-size:14px;padding:12px 16px;transition:border-color .3s}.add-employee-form input:focus{border-color:#1e3c72;outline:none}.btn-save{background:#1e3c72;padding:12px 24px}.employees-table,.history-table{border-collapse:collapse;width:100%}.employees-table td,.employees-table th,.history-table td,.history-table th{border-bottom:1px solid #f0f0f0;padding:15px;text-align:left}.employees-table th,.history-table th{background:#f8f9fa;color:#666;font-size:13px;font-weight:600;text-transform:uppercase}.employees-table code{background:#e8f5e9;border-radius:4px;color:#2e7d32;padding:3px 8px}.btn-delete{background:none;border:none;cursor:pointer;font-size:18px;opacity:.6;transition:opacity .2s}.btn-delete:hover{opacity:1}.badge{border-radius:15px;display:inline-block;font-size:12px;font-weight:600;padding:5px 12px}.badge.entree{background:#e8f5e9;color:#2e7d32}.badge.sortie{background:#ffebee;color:#c62828}.employees-section h2,.history-section h2{color:#333;margin:0 0 20px}.badge-count{align-items:center;background:#ff9800;border-radius:10px;color:#fff;display:inline-flex;font-size:11px;font-weight:700;height:20px;justify-content:center;margin-left:8px;min-width:20px;padding:0 6px}.badge-count.red{background:#ff5252}.stat-card.orange{background:linear-gradient(135deg,#ff9800,#ffb74d)}.search-bar{margin-bottom:20px}.search-bar input{border:2px solid #e0e4e8;border-radius:12px;font-size:15px;padding:14px 20px;transition:all .3s;width:100%}.search-bar input:focus{border-color:#1e3c72;box-shadow:0 0 0 4px #1e3c721a;outline:none}.header-actions{display:flex;gap:10px}.btn-import,.btn-manual{border:none;border-radius:10px;cursor:pointer;font-weight:600;padding:12px 20px;transition:all .3s}.btn-import{background:linear-gradient(135deg,#2196f3,#42a5f5)}.btn-manual{background:linear-gradient(135deg,#9c27b0,#ab47bc);color:#fff}.btn-import:hover,.btn-manual:hover{box-shadow:0 5px 15px #0003;transform:translateY(-2px)}.import-status{border-radius:12px;font-weight:500;margin-bottom:20px;padding:15px 20px}.import-status.loading{background:#fff3e0;color:#e65100}.import-status.success{background:#e8f5e9;color:#2e7d32}.import-status.error{background:#ffebee;color:#c62828}.import-help{margin-bottom:20px}.import-help details{background:#f8f9fa;border-radius:12px;padding:15px 20px}.import-help summary{color:#1e3c72;cursor:pointer;font-weight:600}.import-help p{color:#666;margin:10px 0 5px}.import-help code{background:#e8f5e9;border-radius:8px;color:#2e7d32;display:block;font-size:13px;margin:5px 0;padding:10px 15px}.manual-pointage-form{background:#f8f9fa;border-radius:16px;margin-bottom:25px;padding:25px}.manual-pointage-form h3{color:#333;margin:0 0 20px}.form-row{grid-gap:15px;gap:15px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:20px}.form-group label{font-size:14px}.form-group input,.form-group select{border:2px solid #e0e4e8;font-size:14px;padding:12px 15px;transition:all .3s}.form-group input:focus,.form-group select:focus{border-color:#1e3c72}.anomalies-section .section-header{align-items:center;display:flex;justify-content:space-between}.anomaly-count{color:#888;font-size:14px}.no-anomalies{background:#f8f9fa;border-radius:16px;padding:60px 20px;text-align:center}.no-anomalies .success-icon{font-size:64px;margin-bottom:20px}.no-anomalies h3{color:#2e7d32;margin:0 0 10px}.no-anomalies p{color:#666;margin:0}.anomalies-list{grid-gap:15px;display:grid;gap:15px}.anomaly-card{background:#fff;border-left:4px solid #ff9800;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:12px 16px}.anomaly-card.missing_entry,.anomaly-card.missing_exit{border-left-color:#ff5252}.anomaly-card.double_entry,.anomaly-card.double_exit{border-left-color:#ff9800}.anomaly-card.long_day{border-left-color:#9c27b0}.anomaly-card.late{border-left-color:#2196f3}.anomaly-card.early_exit{border-left-color:#03a9f4}.anomaly-card.shift_change{background:linear-gradient(135deg,#fff,#eceff1);border-left-color:#607d8b}.anomaly-card.wrong_type{background:linear-gradient(135deg,#fff,#fce4ec);border-left-color:#e91e63}.anomaly-card.wrong_type_night{background:linear-gradient(135deg,#fff,#ede7f6);border-left-color:#673ab7}.anomaly-card.auto-correctable{box-shadow:0 4px 15px #00c85326}.anomalies-header-actions{align-items:center;display:flex;gap:20px}.btn-auto-correct-all{background:linear-gradient(135deg,#2196f3,#1976d2);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s}.btn-auto-correct-all:hover{box-shadow:0 5px 20px #2196f34d;transform:translateY(-2px)}.anomaly-legend{background:#f8f9fa;border-radius:10px;display:flex;gap:25px;margin-bottom:20px;padding:15px 20px}.legend-item{font-size:13px;gap:8px}.legend-dot{height:12px;width:12px}.legend-item.critical .legend-dot{background:#ff5252}.legend-item.warning .legend-dot{background:#ff9800}.legend-item.info .legend-dot{background:#2196f3}.anomaly-shift{color:#888;font-size:13px;margin:5px 0 0}.anomaly-suggestion.auto{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:1px solid #a5d6a7}.anomaly-suggestion.auto.additional{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:1px solid #90caf9;margin-top:8px}.anomaly-suggestion.auto.additional .suggestion-text{color:#1565c0}.anomaly-suggestion.auto .suggestion-text{color:#2e7d32}.anomaly-suggestion.manual{background:#fff8e1;border:1px solid #ffe082}.anomaly-suggestion.manual .suggestion-text{color:#f57c00}.auto-badge{background:#4caf50;border-radius:10px;color:#fff;font-size:10px;font-weight:700;padding:3px 8px;text-transform:uppercase}.btn-apply-correction.auto{background:linear-gradient(135deg,#2196f3,#1976d2)}.btn-apply-correction.auto:hover{box-shadow:0 5px 15px #2196f34d}.btn-apply-correction.shift-change{background:linear-gradient(135deg,#4caf50,#2e7d32)}.btn-apply-correction.shift-change:hover{box-shadow:0 5px 15px #4caf504d}.btn-apply-correction.manual{background:linear-gradient(135deg,#ff9800,#f57c00)}.btn-apply-correction.manual:hover{box-shadow:0 5px 15px #ff98004d}.shift-changes-alert{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:2px solid #2196f3;border-radius:16px;margin-bottom:25px;padding:20px}.shift-changes-alert h3{color:#1565c0;font-size:1.2rem;margin:0 0 10px}.shift-changes-description{color:#1976d2;font-size:.9rem;margin-bottom:15px}.shift-changes-list{display:flex;flex-direction:column;gap:12px}.shift-change-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:15px}.shift-change-info{display:flex;justify-content:space-between;margin-bottom:10px}.shift-change-info .employee-name{color:#1e3c72;font-weight:600}.shift-change-info .change-date{color:#666;font-size:.9rem}.shift-change-details{background:#f5f5f5;border-radius:8px;display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding:10px}.shift-change-details .worked-hours{color:#2196f3;font-weight:500}.shift-change-details .shift-comparison{align-items:center;display:flex;font-size:.9rem;gap:10px}.shift-change-details .original-shift{color:#f44336;text-decoration:line-through}.shift-change-details .arrow{color:#666}.shift-change-details .worked-shift{color:#4caf50;font-weight:600}.shift-change-actions{display:flex;gap:10px}.btn-validate-shift-change{background:linear-gradient(135deg,#4caf50,#2e7d32);border:none;border-radius:8px;color:#fff;cursor:pointer;flex:1 1;font-weight:600;padding:10px 15px;transition:all .3s}.btn-validate-shift-change:hover{box-shadow:0 4px 12px #4caf504d;transform:translateY(-1px)}.btn-ignore-shift-change{background:#f5f5f5;border:1px solid #ddd;border-radius:8px;color:#666;cursor:pointer;padding:10px 15px;transition:all .3s}.btn-ignore-shift-change:hover{background:#eee}.anomaly-header{display:flex;justify-content:space-between;margin-bottom:6px}.anomaly-type{color:#333;font-weight:700}.anomaly-date{color:#888;font-size:14px}.anomaly-body{margin-bottom:8px}.anomaly-employee{color:#1e3c72;font-weight:600;margin:0 0 5px}.anomaly-message{color:#666;margin:0}.anomaly-suggestion{align-items:center;background:#e3f2fd;border-radius:8px;display:flex;font-size:13px;gap:8px;margin-bottom:8px;padding:8px 12px}.suggestion-icon{font-size:20px}.suggestion-text{color:#1565c0;font-weight:500}.anomaly-actions{display:flex;gap:10px}.btn-apply-correction{background:linear-gradient(135deg,#00c853,#00e676);border:none;border-radius:6px;color:#fff}.btn-apply-correction,.btn-ignore{cursor:pointer;font-size:12px;font-weight:600;padding:6px 14px;transition:all .3s}.btn-ignore{background:#fff;border:1px solid #e0e4e8;border-radius:6px;color:#666}.btn-apply-correction:hover{box-shadow:0 5px 15px #00c8534d;transform:translateY(-2px)}.btn-ignore:hover{border-color:#ff5252;color:#ff5252}.anomaly-actions .btn-delete{align-items:center;background:#fff;border:1px solid #ef5350;border-radius:6px;color:#ef5350;cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:5px;opacity:1;padding:6px 14px;transition:all .3s}.anomaly-actions .btn-delete:hover{background:#ef5350;box-shadow:0 5px 15px #ef53504d;color:#fff;transform:translateY(-2px)}.pending-absences{background:#fff8e1;border:2px solid #ffcc80;border-radius:16px;margin-bottom:25px;padding:20px}.pending-absences h3{color:#e65100;margin:0 0 15px}.pending-list{grid-gap:15px;display:grid;gap:15px}.pending-card{background:#fff;border-radius:12px;justify-content:space-between;padding:20px}.pending-card,.pending-info{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.pending-employee{color:#333;font-weight:700}.pending-dates{color:#666}.pending-motif{color:#888;font-size:14px}.pending-actions{display:flex;gap:10px}.btn-approve{background:linear-gradient(135deg,#00c853,#00e676)}.btn-approve,.btn-reject{border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s}.btn-reject{background:linear-gradient(135deg,#ff5252,#ff1744)}.btn-approve:hover,.btn-reject:hover{box-shadow:0 5px 15px #0003;transform:translateY(-2px)}.type-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:13px;font-weight:600;gap:5px;padding:5px 12px}.type-conge{background:#e3f2fd;color:#1565c0}.type-rtt{background:#f3e5f5;color:#7b1fa2}.type-maladie{background:#ffebee;color:#c62828}.type-sans_solde{background:#fff3e0;color:#e65100}.type-autre{background:#f5f5f5;color:#616161}.status-pending{background:#fff3e0;color:#e65100}.status-approved,.status-pending{border-radius:20px;font-size:13px;font-weight:600;padding:5px 12px}.status-approved{background:#e8f5e9;color:#2e7d32}.status-rejected{background:#ffebee;border-radius:20px;color:#c62828;font-size:13px;font-weight:600;padding:5px 12px}.absences-table{border-collapse:collapse;width:100%}.absences-table td,.absences-table th{border-bottom:1px solid #f0f0f0;padding:15px;text-align:left}.absences-table th{background:#f8f9fa;color:#666;font-size:13px;font-weight:600;text-transform:uppercase}.badgeuse-section{background:#f8f9fa;border:2px solid #e0e4e8;border-radius:16px;margin-bottom:25px;padding:25px}.badgeuse-section h3{color:#333;margin:0 0 20px}.badgeuse-content{align-items:center;display:flex;flex-wrap:wrap;gap:20px}.badgeuse-status{align-items:center;display:flex;gap:10px}.status-indicator{animation:pulse 2s infinite;border-radius:50%;height:16px;width:16px}.status-indicator.connected{background:#00c853}.status-indicator.disconnected{animation:none;background:#ff5252}.status-indicator.connecting,.status-indicator.syncing{background:#ff9800}.status-text{color:#333;font-weight:600}.badgeuse-config{align-items:center;display:flex;gap:10px}.badgeuse-config label{color:#666;font-weight:600}.badgeuse-config input{border:2px solid #e0e4e8;border-radius:8px;font-family:monospace;padding:10px 15px;width:160px}.badgeuse-config input:focus{border-color:#1e3c72;outline:none}.badgeuse-actions{display:flex;gap:10px}.btn-connect{background:linear-gradient(135deg,#00c853,#00e676)}.btn-connect,.btn-sync{border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s}.btn-sync{background:linear-gradient(135deg,#2196f3,#42a5f5)}.btn-disconnect{background:linear-gradient(135deg,#ff5252,#ff1744);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s}.btn-connect:hover,.btn-disconnect:hover,.btn-sync:hover{box-shadow:0 5px 15px #0003;transform:translateY(-2px)}.last-sync{color:#888;font-size:13px;font-style:italic}.rapports-section{padding:10px 0}.rapports-section h2{color:#333;margin:0 0 25px}.rapports-layout{grid-gap:25px;align-items:start;display:grid;gap:25px;grid-template-columns:350px 1fr}.rapports-left{position:-webkit-sticky;position:sticky;top:20px}.rapports-right{min-width:0}.pdf-export-form{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #e0e4e8;border-radius:16px;margin-bottom:25px;padding:30px}.pdf-export-form.compact{margin-bottom:0;padding:20px}.pdf-export-form.compact h3{font-size:1rem;margin-bottom:15px}.pdf-export-form h3{color:#1e3c72;margin:0 0 25px}.pdf-preview-compact{background:#ffffffb3;border-radius:8px;margin-top:15px;padding:10px;text-align:center}.pdf-preview-compact small{color:#666;font-size:.8rem}.btn-export-pdf{background:linear-gradient(135deg,#c62828,#e53935);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;margin-top:15px;padding:18px 30px;transition:all .3s;width:100%}.btn-export-pdf:hover{box-shadow:0 8px 25px #c6282866;transform:translateY(-3px)}.stats-panel{background:#fff;border:2px solid #e0e4e8;border-radius:16px;padding:25px}.stats-panel h3{color:#1e3c72;font-size:1.2rem;margin:0 0 20px}.stats-panel .stats-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(2,1fr);margin-bottom:25px}.stats-panel .stat-card{background:linear-gradient(135deg,#f8f9fa,#fff);border:1px solid #e0e4e8;border-radius:12px;overflow:hidden;padding:20px;position:relative}.stat-card .stat-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.15));font-size:2.5rem;opacity:.85;position:absolute;right:20px;top:50%;transform:translateY(-50%)}.stat-card .stat-value{color:#1e3c72;font-size:2rem;font-weight:700;line-height:1}.stat-card .stat-label{color:#666;font-size:.9rem;margin-top:5px}.stat-card .stat-detail{color:#999;font-size:.75rem;margin-top:3px}.stat-bar{background:#e0e4e8;border-radius:3px;height:6px;margin-top:12px;overflow:hidden}.stat-bar-fill{border-radius:3px;height:100%;transition:width .5s ease}.stat-bar-fill.presence{background:linear-gradient(90deg,#27ae60,#2ecc71)}.stat-bar-fill.absence{background:linear-gradient(90deg,#e74c3c,#f39c12)}.stat-card.presence{border-left:4px solid #27ae60}.stat-card.absence{border-left:4px solid #e74c3c}.stat-card.employees{border-left:4px solid #3498db}.stat-card.pointages{border-left:4px solid #9b59b6}.presence-chart{background:#f8f9fa;border-radius:12px;padding:20px}.presence-chart h4{color:#333;font-size:.95rem;margin:0 0 15px}.employee-bars{display:flex;flex-direction:column;gap:10px}.employee-bar-row{align-items:center;display:flex;gap:10px}.employee-bar-row .emp-name{color:#555;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:80px}.emp-bar-container{background:#e0e4e8;border-radius:10px;flex:1 1;height:20px;overflow:hidden}.emp-bar{border-radius:10px;height:100%;transition:width .5s ease}.employee-bar-row .emp-pct{color:#1e3c72;font-size:.85rem;font-weight:600;text-align:right;width:40px}.more-employees{color:#999;font-size:.8rem;padding-top:5px;text-align:center}@media (max-width:900px){.rapports-layout{grid-template-columns:1fr}.rapports-left{position:static}.stats-grid{grid-template-columns:repeat(2,1fr)}.presence-lists{grid-template-columns:1fr}}@media (max-width:600px){.stats-grid{grid-template-columns:1fr}}.pdf-preview{background:#fff;border:2px dashed #e0e4e8;border-radius:16px;padding:25px}.pdf-preview h4{color:#333;margin:0 0 15px}.pdf-preview p{color:#666;margin:0 0 10px}.pdf-preview ul{list-style:none;margin:0;padding:0}.pdf-preview li{border-bottom:1px solid #f0f0f0;color:#555;padding:8px 0}.pdf-preview li:last-child{border-bottom:none}.employees-section.with-sidebar{display:block;position:relative}.employees-main{flex:1 1;min-width:0}.employee-modal-overlay{align-items:flex-start;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:40px 20px;position:fixed;right:0;top:0;z-index:1000}.employee-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:calc(100vh - 80px);max-width:650px;overflow:hidden;width:90%}.employee-modal .sidebar-header{align-items:center;background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;display:flex;flex-shrink:0;justify-content:space-between;padding:20px 25px}.employee-modal .sidebar-header h3{align-items:center;display:flex;font-size:1.2rem;gap:10px;margin:0}.employee-modal .sidebar-form{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.employee-modal .form-tabs{flex-shrink:0}.employee-modal .form-tab-content{flex:1 1;overflow-y:auto;padding:20px}.employee-modal .form-tab-content.active{display:block}.employee-modal .sidebar-actions{background:#f8f9fa;border-top:1px solid #e0e4e8;display:flex;flex-shrink:0;gap:10px;padding:12px 20px}.employee-modal .sidebar-actions .btn-save{flex:1 1;font-size:.9rem;padding:10px 16px}.employee-modal .sidebar-actions .btn-cancel{font-size:.9rem;padding:10px 16px}@media (max-width:768px){.employee-modal-overlay{padding:20px 10px}.employee-modal{max-height:calc(100vh - 40px);width:100%}}.employee-sidebar{display:none}.btn-close-sidebar{align-items:center;border-radius:50%;display:flex;height:35px;justify-content:center;width:35px}.btn-close-sidebar:hover{transform:scale(1.1)}.form-tabs{background:#f5f7fa;border-bottom:2px solid #e0e4e8;display:flex;padding:0}.form-tab{align-items:center;background:#0000;border:none;color:#666;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:.8rem;font-weight:600;gap:4px;min-width:70px;padding:10px 8px;transition:all .2s;white-space:nowrap}.form-tab:hover{background:#e8ecf0;color:#1e3c72}.form-tab.active{background:#fff;border-bottom:3px solid #1e3c72;color:#1e3c72;margin-bottom:-2px}.form-tab-icon{color:inherit;height:18px;width:18px}.form-tab-content{display:none}.form-tab-content.active{display:block}.form-grid{grid-gap:12px;gap:12px;grid-template-columns:1fr 1fr}.form-grid .form-group.full-width{grid-column:span 2}.form-card{background:#f8f9fa;border-radius:10px;margin-bottom:15px;padding:15px}.form-card-header{align-items:center;color:#1e3c72;display:flex;font-size:.9rem;font-weight:600;gap:8px;margin-bottom:12px}.sidebar-header{align-items:center;background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;display:flex;justify-content:space-between;padding:20px}.sidebar-header h3{font-size:1.1rem;margin:0}.btn-close-sidebar{background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.2rem;height:32px;transition:all .2s;width:32px}.btn-close-sidebar:hover{background:#ffffff4d}.sidebar-form{flex:1 1;overflow-y:auto;padding:20px}.form-section{border-bottom:1px solid #e0e4e8;margin-bottom:25px;padding-bottom:20px}.form-section:last-of-type{border-bottom:none}.form-section h4{color:#1e3c72;font-size:.95rem;margin:0 0 15px}.sidebar-form .form-group{margin-bottom:15px}.sidebar-form .form-group label{color:#333;display:block;font-size:.85rem;font-weight:600;margin-bottom:6px}.sidebar-form .form-group input,.sidebar-form .form-group select{border:2px solid #e0e4e8;border-radius:8px;font-size:.95rem;padding:10px 12px;transition:all .2s;width:100%}.sidebar-form .form-group input:focus,.sidebar-form .form-group select:focus{border-color:#1e3c72;box-shadow:0 0 0 3px #1e3c721a;outline:none}.sidebar-form .form-row{display:flex;gap:12px}.sidebar-form .form-row .form-group{flex:1 1}.badge-input{font-family:Courier New,monospace;font-weight:700;letter-spacing:1px;text-transform:uppercase}.shift-preview{background:#f8f9fa;border-radius:10px;margin-top:10px;overflow:hidden}.shift-preview-header{color:#fff;font-weight:600;padding:12px 15px}.shift-preview-body{padding:12px 15px}.shift-preview-body p{color:#555;font-size:.9rem;margin:0 0 5px}.sidebar-actions{background:#f8f9fa;border-top:2px solid #e0e4e8;padding:20px}.sidebar-actions .btn-save{background:linear-gradient(135deg,#00c853,#00e676);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;margin-bottom:10px;padding:14px;transition:all .2s;width:100%}.sidebar-actions .btn-save:hover{box-shadow:0 4px 15px #00c85366;transform:translateY(-2px)}.sidebar-actions .btn-cancel{background:#e0e4e8;border:none;border-radius:10px;color:#666;cursor:pointer;font-weight:600;padding:12px;transition:all .2s;width:100%}.sidebar-actions .btn-cancel:hover{background:#d0d4d8}.employees-table tr.selected{background:#1e3c7214}.badge-code{background:#f0f4f8;border-radius:6px;color:#1e3c72;font-family:Courier New,monospace;font-weight:600;padding:4px 10px}.employee-name-cell strong{color:#333}.shift-tag,.team-tag{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:600;padding:4px 10px}.btn-edit{background:#f0f4f8;border:none;border-radius:6px;cursor:pointer;font-size:1rem;margin-right:5px;padding:8px 12px;transition:all .2s}.btn-edit:hover{background:#e0e4e8}.btn-documents{background:#e3f2fd;border:none;border-radius:6px;color:#1565c0;cursor:pointer;font-size:1rem;margin-right:5px;padding:8px 12px;transition:all .2s}.btn-documents:hover{background:#bbdefb;color:#0d47a1}.actions-cell{white-space:nowrap}.documents-modal{animation:slideUp .3s ease;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:800px;overflow:hidden;width:90%}.documents-modal .modal-header{align-items:center;background:linear-gradient(135deg,#1e3c72,#2a5298);border-bottom:1px solid #eee;color:#fff;display:flex;justify-content:space-between;padding:20px 25px}.documents-modal .modal-header h3{align-items:center;display:flex;font-size:1.2rem;gap:10px;margin:0}.documents-modal .modal-header .icon-inline{height:24px;width:24px}.documents-modal .btn-close-modal{background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:20px;height:32px;transition:all .2s;width:32px}.documents-modal .btn-close-modal:hover{background:#ffffff4d}.documents-modal .modal-body{flex:1 1;overflow-y:auto;padding:25px}.document-upload-section{background:#f8f9fa;border-radius:12px;margin-bottom:25px;padding:20px}.document-upload-section h4{color:#333;font-size:1rem;margin:0 0 15px}.upload-form{display:flex;flex-direction:column;gap:15px}.upload-form .form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 2fr}.upload-form .form-group{display:flex;flex-direction:column;gap:6px}.upload-form .form-group label{color:#555;font-size:13px;font-weight:600}.upload-form select{border:2px solid #e0e0e0;border-radius:8px;font-size:14px;padding:10px 12px;transition:border-color .2s}.upload-form select:focus{border-color:#1e3c72;outline:none}.file-input-wrapper{position:relative}.file-input-wrapper input[type=file]{left:-9999px;position:absolute}.file-input-label{align-items:center;background:#fff;border:2px dashed #ccc;border-radius:8px;cursor:pointer;display:flex;min-height:42px;padding:10px 15px;transition:all .2s}.file-input-label:hover{background:#f0f4f8;border-color:#1e3c72}.file-input-label .file-selected{color:#2e7d32;font-weight:500}.btn-upload{align-self:flex-start;background:linear-gradient(135deg,#1e3c72,#2a5298);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:12px 25px;transition:all .2s}.btn-upload:hover:not(:disabled){box-shadow:0 4px 15px #1e3c7266;transform:translateY(-2px)}.btn-upload:disabled{cursor:not-allowed;opacity:.5}.upload-hint{color:#888;font-size:12px;margin:10px 0 0}.documents-list-section{margin-top:10px}.documents-list-section h4{color:#333;font-size:1rem;margin:0 0 15px}.no-documents{color:#999;padding:40px 20px;text-align:center}.no-documents p{margin:15px 0 0}.documents-grid{display:flex;flex-direction:column;gap:10px}.document-card{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:10px;display:flex;gap:15px;padding:15px;transition:all .2s}.document-card:hover{border-color:#1e3c72;box-shadow:0 4px 12px #00000014}.document-icon{align-items:center;background:#f0f4f8;border-radius:8px;display:flex;flex-shrink:0;height:50px;justify-content:center;overflow:hidden;width:50px}.document-icon .doc-icon{color:#1e3c72;height:28px;width:28px}.document-thumbnail{height:100%;object-fit:cover;width:100%}.document-info{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.document-type-badge{background:#e3f2fd;border-radius:12px;color:#1565c0;display:inline-block;font-size:11px;font-weight:600;padding:3px 10px;width:-webkit-fit-content;width:fit-content}.document-name{color:#333;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-meta{color:#888;font-size:12px}.document-actions{display:flex;gap:5px}.btn-delete-doc,.btn-view-doc{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s;width:36px}.btn-view-doc{background:#e3f2fd;color:#1565c0}.btn-view-doc:hover{background:#bbdefb}.btn-delete-doc{background:#ffebee;color:#c62828}.btn-delete-doc:hover{background:#ffcdd2}.btn-delete-doc .icon-btn,.btn-view-doc .icon-btn{height:18px;width:18px}.documents-modal .modal-footer{border-top:1px solid #eee;display:flex;justify-content:flex-end;padding:15px 25px}.documents-modal .btn-close{background:#f0f0f0;border:none;border-radius:8px;cursor:pointer;font-weight:600;padding:10px 25px;transition:all .2s}.documents-modal .btn-close:hover{background:#e0e0e0}@media (max-width:768px){.documents-modal{max-height:95vh;width:95%}.upload-form .form-row{grid-template-columns:1fr}.document-card{flex-wrap:wrap}.document-info{width:calc(100% - 65px)}.document-actions{border-top:1px solid #eee;justify-content:flex-end;margin-top:10px;padding-top:10px;width:100%}}.absences-section-new{padding:10px 0}.absent-today-section{background:linear-gradient(135deg,#fff5f5,#ffebee);border:2px solid #ffcdd2;border-radius:15px;margin-bottom:25px;padding:20px}.absent-today-section h3{color:#c62828;margin:0 0 10px}.absent-hint{color:#666;font-size:.9rem;margin:0 0 15px}.absent-today-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.absent-today-card{align-items:center;background:#fff;border-radius:10px;box-shadow:0 2px 8px #00000014;display:flex;gap:12px;padding:15px}.absent-avatar{align-items:center;background:linear-gradient(135deg,#ef5350,#f44336);border-radius:50%;color:#fff;display:flex;font-size:1.2rem;font-weight:700;height:45px;justify-content:center;width:45px}.absent-info{display:flex;flex:1 1;flex-direction:column}.absent-name{color:#333;font-weight:600}.absent-dept{color:#666;font-size:.85rem}.btn-declare-absence{background:linear-gradient(135deg,#ff9800,#ffa726);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 15px;transition:all .2s}.btn-declare-absence:hover{box-shadow:0 4px 12px #ff980066;transform:translateY(-2px)}.absence-stat-card.today-absent{background:linear-gradient(135deg,#ffebee,#ffcdd2);border:2px solid #ef5350}.absence-stat-card.today-absent .stat-value{color:#c62828}.absence-stats-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:30px}.absence-stat-card{align-items:center;background:#fff;border-left:4px solid;border-radius:12px;box-shadow:0 2px 10px #00000014;display:flex;gap:15px;padding:20px}.absence-stat-card.pending{border-left-color:#ff9800}.absence-stat-card.approved{border-left-color:#4caf50}.absence-stat-card.rejected{border-left-color:#f44336}.absence-stat-card.total{border-left-color:#2196f3}.absence-stat-card .stat-icon{align-items:center;background:#0000001a;border-radius:50%;display:flex;font-size:1.5rem;font-weight:700;height:40px;justify-content:center;width:40px}.absence-stat-card.today-absent .stat-icon{background:#ffcdd2;color:#c62828}.absence-stat-card .stat-content{display:flex;flex-direction:column}.absence-stat-card .stat-value{color:#333;font-size:1.8rem;font-weight:700}.absence-stat-card .stat-label{color:#666;font-size:.85rem}.pending-absences-section{background:linear-gradient(135deg,#fff8e1,#ffecb3);border:2px solid #ffca28;border-radius:16px;margin-bottom:30px;padding:25px}.pending-absences-section h3{color:#e65100;margin:0 0 20px}.pending-cards-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.pending-absence-card{background:#fff;border-left:5px solid;border-radius:12px;box-shadow:0 2px 10px #0000001a;padding:20px}.pending-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.pending-type-badge{border-radius:20px;color:#fff;font-size:.85rem;font-weight:600;padding:6px 12px}.pending-days{background:#f0f0f0;border-radius:15px;color:#333;font-weight:700;padding:5px 12px}.pending-card-body p{color:#555;margin:8px 0}.pending-employee-name{color:#333!important;font-size:1.1rem;font-weight:600}.pending-motif{color:#777!important;font-style:italic}.pending-file{color:#2196f3!important}.pending-card-actions{border-top:1px solid #eee;display:flex;gap:10px;margin-top:15px;padding-top:15px}.btn-approve-new,.btn-reject-new{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-weight:600;padding:12px;transition:all .2s}.btn-approve-new{background:linear-gradient(135deg,#4caf50,#66bb6a);color:#fff}.btn-approve-new:hover{box-shadow:0 4px 12px #4caf5066;transform:translateY(-2px)}.btn-reject-new{background:linear-gradient(135deg,#f44336,#e57373);color:#fff}.btn-reject-new:hover{box-shadow:0 4px 12px #f4433666;transform:translateY(-2px)}.absence-calendar-section{background:#fff;border-radius:16px;box-shadow:0 2px 10px #00000014;margin-bottom:30px;padding:25px}.calendar-header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:15px}.calendar-header h3{color:#333;margin:0}.calendar-actions{flex:1 1}.btn-add-absence{background:linear-gradient(135deg,#4caf50,#66bb6a);border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;padding:12px 20px;transition:all .2s}.btn-add-absence:hover{box-shadow:0 4px 15px #4caf5066;transform:translateY(-2px)}.calendar-hint{background:#f0f4f8;border-radius:8px;color:#666;font-size:.9rem;margin:0 0 15px;padding:10px;text-align:center}.calendar-nav{align-items:center;display:flex;gap:15px}.calendar-nav button{background:#fff;border:2px solid #1e3c72;border-radius:8px;color:#1e3c72;cursor:pointer;font-size:1rem;height:36px;transition:all .2s;width:36px}.calendar-nav button:hover{background:#1e3c72;color:#fff}.current-month{color:#333;font-size:1.1rem;font-weight:600;min-width:180px;text-align:center;text-transform:capitalize}.absence-calendar{border:1px solid #e0e0e0;border-radius:12px;overflow:hidden}.calendar-weekdays{background:linear-gradient(135deg,#1e3c72,#2a5298);display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays .weekday{color:#fff;font-size:.85rem;font-weight:600;padding:12px;text-align:center}.calendar-days{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr)}.calendar-day{background:#fff;border:1px solid #f0f0f0;max-height:65px;min-height:50px;padding:5px;position:relative}.calendar-day.clickable{cursor:pointer;transition:all .2s}.calendar-day.clickable:hover{background:#e3f2fd;border-color:#2196f3;box-shadow:0 2px 10px #2196f333;transform:scale(1.02);z-index:1}.calendar-day.other-month{background:#fafafa;cursor:default;opacity:.5}.calendar-day.other-month:hover{box-shadow:none;transform:none}.calendar-day.today{background:#e3f2fd;border-color:#2196f3}.calendar-day.weekend{background:#f5f5f5}.day-number{color:#333;font-size:.9rem}.day-absences{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.absence-dot{align-items:center;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.7rem;height:22px;justify-content:center;width:22px}.more-absences{background:#f0f0f0;border-radius:10px;color:#666;font-size:.7rem;padding:2px 6px}.absence-legend{border-top:1px solid #e0e0e0;display:flex;flex-wrap:wrap;gap:15px;margin-top:20px;padding-top:20px}.legend-item{color:#555}.legend-dot{align-items:center;border-radius:50%;display:flex;font-size:.75rem;height:24px;justify-content:center;width:24px}.absence-list-section{background:#fff;border-radius:16px;box-shadow:0 2px 10px #00000014;padding:25px}.absence-filters{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px}.filter-group{align-items:center;gap:8px}.filter-group label{color:#555;font-size:.9rem}.filter-group select{border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:.9rem;padding:10px 15px}.filter-group select:focus{border-color:#1e3c72;outline:none}.filter-search{flex:1 1;min-width:200px}.filter-search input{width:100%}.absences-table-new{border-collapse:collapse;margin-top:15px;width:100%}.absences-table-new td,.absences-table-new th{border-bottom:1px solid #e0e0e0;padding:12px 15px;text-align:left}.absences-table-new th{background:#f8f9fa;color:#333;font-weight:600}.absences-table-new tr:hover{background:#f8f9fa}.absences-table-new tr.status-refuse{opacity:.6}.type-tag{border-radius:20px;display:inline-block;font-size:.85rem;font-weight:600}.status-badge,.type-tag{padding:5px 12px}.status-badge.approved{background:#e8f5e9;color:#2e7d32}.status-badge.rejected{background:#ffebee;color:#c62828}.status-badge.pending{background:#fff3e0;color:#e65100}.btn-sm{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;margin-right:5px;padding:6px 10px;transition:all .2s}.btn-sm.approve{background:#e8f5e9}.btn-sm.approve:hover{background:#c8e6c9}.btn-sm.reject{background:#ffebee}.btn-sm.reject:hover{background:#ffcdd2}.motif-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.duration-cell{text-align:center}@media (max-width:768px){.absence-stats-grid{grid-template-columns:repeat(2,1fr)}.pending-cards-grid{grid-template-columns:1fr}.absence-filters{flex-direction:column}.calendar-day{min-height:60px;padding:4px}.absence-dot{font-size:.6rem;height:18px;width:18px}}.modal-overlay{background:#0009}.absence-modal{animation:slideUp .3s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:700px;overflow-y:auto;width:90%}.modal-header{background:linear-gradient(135deg,#1e3c72,#2a5298);border-radius:20px 20px 0 0;color:#fff;padding:25px 30px}.modal-header h3{font-size:1.3rem;margin:0}.btn-close-modal{background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1.3rem;height:36px;transition:all .2s;width:36px}.btn-close-modal:hover{background:#ffffff4d;transform:rotate(90deg)}.absence-form{padding:30px}.absence-form .form-group{margin-bottom:20px}.absence-form .form-group label{color:#333;display:block;font-weight:600;margin-bottom:8px}.absence-form .form-group input,.absence-form .form-group select,.absence-form .form-group textarea{border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;padding:12px 15px;transition:all .2s;width:100%}.absence-form .form-group input:focus,.absence-form .form-group select:focus,.absence-form .form-group textarea:focus{border-color:#1e3c72;box-shadow:0 0 0 3px #1e3c721a;outline:none}.absence-form .form-row{display:flex;gap:15px}.absence-form .form-row .form-group{flex:1 1}.absence-type-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.absence-type-btn{align-items:center;background:#fff;border:2px solid;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;font-size:.85rem;font-weight:600;gap:5px;padding:12px 10px;transition:all .2s}.absence-type-btn:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.absence-type-btn.selected{box-shadow:0 4px 15px #0003;transform:scale(1.05)}.absence-duration-preview{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:10px;color:#1565c0;font-size:1.1rem;margin-bottom:20px;padding:15px 20px;text-align:center}.status-buttons{display:flex;gap:15px}.status-btn{background:#fff;border:2px solid #e0e0e0;border-radius:10px;cursor:pointer;flex:1 1;font-weight:600;padding:15px;transition:all .2s}.status-btn:hover{border-color:#999}.status-btn.selected.approved{background:#e8f5e9;border-color:#4caf50;color:#2e7d32}.status-btn.selected.pending{background:#fff3e0;border-color:#ff9800;color:#e65100}.modal-actions{border-top:2px solid #e0e0e0;margin-top:25px;padding-top:25px}.btn-create-absence{background:linear-gradient(135deg,#4caf50,#66bb6a);border:none;border-radius:10px;color:#fff;cursor:pointer;flex:2 1;font-size:1rem;font-weight:700;padding:15px 25px;transition:all .2s}.btn-create-absence:hover{box-shadow:0 4px 15px #4caf5066;transform:translateY(-2px)}.modal-actions .btn-cancel{background:#e0e0e0;border:none;border-radius:10px;color:#666;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:15px 25px;transition:all .2s}.modal-actions .btn-cancel:hover{background:#d0d0d0}@media (max-width:600px){.absence-type-grid{grid-template-columns:repeat(2,1fr)}.absence-form .form-row{flex-direction:column;gap:0}.modal-actions,.status-buttons{flex-direction:column}}.pointages-section .section-header{flex-wrap:wrap;justify-content:space-between;margin-bottom:25px}.pointages-section .header-actions,.pointages-section .section-header{align-items:center;display:flex;gap:15px}.pointages-section .date-filter{border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;padding:10px 15px}.pointages-layout{grid-gap:25px;display:grid;gap:25px;grid-template-columns:1fr;min-height:600px}.pointages-layout.with-detail{grid-template-columns:1fr 1fr}.pointages-layout.full-width .employees-grid-panel{max-width:100%}.pointages-layout.full-width .employees-cards-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));max-height:550px}.employees-grid-panel{background:#f8f9fa;border-radius:15px;padding:20px}.employees-grid-panel .panel-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.employees-grid-panel .panel-header h3{color:#333;margin:0}.search-input-small{border:2px solid #e0e0e0;border-radius:8px;font-size:.9rem;padding:8px 15px;width:180px}.employees-cards-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));max-height:450px;overflow-y:auto;padding-right:5px}.employee-pointage-card{align-items:center;background:#fff;border:2px solid #0000;border-radius:12px;cursor:pointer;display:flex;gap:12px;padding:15px;position:relative;transition:all .2s}.employee-pointage-card:hover{box-shadow:0 4px 15px #0000001a;transform:translateY(-2px)}.employee-pointage-card.selected{background:#e3f2fd;border-color:#1e3c72}.employee-pointage-card.absent{border-left:4px solid #f44336}.employee-pointage-card.present{border-left:4px solid #4caf50}.employee-pointage-card.pause{border-left:4px solid #ff9800}.employee-pointage-card.completed{border-left:4px solid #2196f3}.emp-card-avatar{align-items:center;background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;display:flex;font-size:1.1rem;font-weight:700;height:40px;justify-content:center;width:40px}.emp-card-info{display:flex;flex:1 1;flex-direction:column;min-width:0}.emp-card-name{color:#333;font-size:.95rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emp-card-dept{color:#666;font-size:.8rem}.emp-card-shift-info{align-items:center;display:flex;gap:8px;margin-top:4px}.emp-team-badge{background:#e3f2fd;border-radius:4px;color:#1976d2;font-size:.7rem;font-weight:500;padding:2px 6px}.emp-shift-hours{font-size:.7rem;font-weight:600}.emp-card-avatar{border:3px solid #0000;border-radius:50%}.emp-card-status{position:absolute;right:10px;top:10px}.status-dot{border-radius:50%;display:inline-block;height:10px;width:10px}.status-dot.red{background:#f44336}.status-dot.green{background:#4caf50}.status-dot.orange{background:#ff9800}.status-dot.blue{background:#2196f3}.emp-card-pointages-count{bottom:8px;color:#999;font-size:.75rem;position:absolute;right:10px}.status-legend{border-top:1px solid #e0e0e0;display:flex;flex-wrap:wrap;gap:20px;margin-top:20px;padding-top:15px}.legend-item{align-items:center;color:#666;display:flex;font-size:.85rem;gap:6px}.employee-pointages-detail{background:#fff;border-radius:15px;box-shadow:0 4px 20px #00000014;padding:25px}.detail-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:25px;padding-bottom:20px}.detail-employee-info{align-items:center;display:flex;gap:15px}.detail-avatar{align-items:center;background:linear-gradient(135deg,#1e3c72,#2a5298);border-radius:50%;color:#fff;display:flex;font-size:1.5rem;font-weight:700;height:60px;justify-content:center;width:60px}.detail-employee-info h3{color:#333;margin:0 0 5px}.detail-dept{color:#666;font-size:.9rem}.detail-actions{align-items:center;display:flex;gap:10px}.btn-quick-badge{align-items:center;background:linear-gradient(135deg,#4caf50,#45a049);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:600;gap:6px;padding:8px 16px;transition:all .2s}.btn-quick-badge:hover{box-shadow:0 4px 12px #4caf504d;transform:translateY(-2px)}.btn-manual-badge{align-items:center;background:linear-gradient(135deg,#2196f3,#1976d2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:600;gap:6px;padding:8px 16px;transition:all .2s}.btn-manual-badge:hover{box-shadow:0 4px 12px #2196f34d;transform:translateY(-2px)}.btn-close-detail{background:#f0f0f0;border:none;border-radius:50%;cursor:pointer;font-size:1.2rem;height:36px;transition:all .2s;width:36px}.btn-close-detail:hover{background:#e0e0e0}.pointages-timeline h4{color:#333;margin:0 0 20px}.no-pointages{background:#f8f9fa;border-radius:10px;color:#999;padding:30px;text-align:center}.timeline-container{margin-bottom:25px;padding-left:30px;position:relative}.timeline-container:before{background:#e0e0e0;border-radius:3px;bottom:0;content:"";left:8px;position:absolute;top:0;width:3px}.timeline-item{align-items:center;display:flex;gap:15px;padding:10px 0;position:relative}.timeline-item:hover .btn-delete-pointage,.timeline-item:hover .btn-edit-pointage{opacity:1}.timeline-actions{display:flex;gap:5px}.btn-edit-pointage,.btn-photo-pointage{background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:14px;opacity:1;padding:6px 10px;transition:all .2s}.btn-photo-pointage:hover{background:#e3f2fd;border-color:#2196f3}.btn-edit-pointage:hover{background:#fff3e0;border-color:#ff9800}.btn-delete-pointage{background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:14px;opacity:1;padding:6px 10px;transition:all .2s}.btn-delete-pointage:hover{background:#ffebee;border-color:#f44336;color:#f44336}.night-shift-info{align-items:center;background:linear-gradient(135deg,#4a148c,#7b1fa2);border-radius:10px;color:#fff;display:flex;font-size:14px;gap:10px;margin-bottom:15px;padding:12px 16px}.night-shift-info .night-icon{font-size:1.3rem}.timeline-dot{border:3px solid #fff;border-radius:50%;box-shadow:0 2px 5px #0003;height:18px;left:-26px;position:absolute;width:18px}.timeline-item.entree .timeline-dot{background:#4caf50}.timeline-item.sortie .timeline-dot{background:#f44336}.timeline-item.debut_pause .timeline-dot{background:#ff9800}.timeline-item.fin_pause .timeline-dot{background:#2196f3}.timeline-content{background:#f8f9fa;border-radius:10px;display:flex;flex:1 1;flex-direction:column;gap:5px;padding:12px 20px}.timeline-main{align-items:center;display:flex;gap:15px}.timeline-time{color:#1e3c72;font-size:1.1rem;font-weight:700}.timeline-type{color:#666}.validation-info{align-items:center;display:flex;font-size:.8rem;gap:12px;margin-top:4px}.validation-badge{align-items:center;background:#e8f5e9;border-radius:12px;color:#2e7d32;display:inline-flex;font-weight:500;gap:4px;padding:3px 10px}.validation-badge .icon-inline{height:14px;width:14px}.location-info{background:#f5f5f5;border-radius:8px;color:#666;font-size:.75rem;padding:2px 8px}.terminal-location-badge{background:#e3f2fd;color:#1565c0}.source-badge,.terminal-location-badge{align-items:center;border-radius:12px;display:inline-flex;font-size:.8rem;font-weight:500;gap:4px;padding:3px 10px}.source-badge.code_pointage{background:#fff3e0;color:#e65100}.source-badge.qr_code{background:#f3e5f5;color:#7b1fa2}.timeline-item.validated .timeline-content{background:linear-gradient(135deg,#e8f5e9,#f1f8e9);border-left:3px solid #4caf50}.pointage-summary{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:12px;display:flex;gap:20px;margin-bottom:25px;padding:20px}.summary-item{display:flex;flex-direction:column;gap:5px}.summary-label{color:#666;font-size:.85rem}.summary-value{color:#1e3c72;font-size:1.3rem;font-weight:700}.summary-value.pause{color:#ff9800}.summary-item.overtime{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border-left:4px solid #ff9800;border-radius:8px;padding:8px 12px}.summary-value.overtime-value{color:#e65100;font-weight:700}.week-history h4{color:#333;margin:0 0 15px}.week-nav-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.week-nav-header h4{font-size:1rem;margin:0}.btn-week-nav{background:#f0f0f0;border:none;border-radius:8px;color:#666;cursor:pointer;font-size:.85rem;padding:8px 12px;transition:all .2s}.btn-week-nav:hover{background:#1e3c72;color:#fff}.week-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(7,1fr)}.week-day{background:#f8f9fa;border:2px solid #0000;border-radius:10px;cursor:pointer;padding:12px 8px;position:relative;text-align:center;transition:all .2s}.week-day:hover{background:#e3f2fd}.week-day.worked{background:#e8f5e9}.week-day.today{border-color:#1e3c72}.week-day.selected{background:#1e3c72;color:#fff}.week-day.selected .week-day-name,.week-day.selected .week-day-num{color:#fff}.week-day-name{color:#666;display:block;font-size:.75rem;margin-bottom:5px}.week-day-num{color:#333;display:block;font-size:1.1rem;font-weight:700}.week-day-dot{background:#4caf50;border-radius:50%;bottom:5px;height:6px;left:50%;position:absolute;transform:translateX(-50%);width:6px}.week-total-hours{border-top:1px dashed #e0e0e0;margin-top:15px;padding-top:15px}.week-total-display{align-items:center;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:1px solid #a5d6a7;border-radius:10px;display:flex;justify-content:space-between;padding:12px 16px}.week-total-label{color:#2e7d32;font-size:.9rem;font-weight:600}.week-total-value{background:#fff;border-radius:20px;box-shadow:0 2px 4px #0000001a;color:#1b5e20;font-size:1.2rem;font-weight:700;padding:4px 12px}.month-calendar-mini{border-top:1px solid #e0e0e0;margin-top:20px;padding-top:20px}.month-nav-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.month-title{color:#333;font-weight:600;text-transform:capitalize}.btn-month-nav{background:#f0f0f0;border:none;border-radius:50%;color:#666;cursor:pointer;font-size:.8rem;height:28px;transition:all .2s;width:28px}.btn-month-nav:hover{background:#1e3c72;color:#fff}.month-grid-mini{grid-gap:3px;display:grid;gap:3px;grid-template-columns:repeat(7,1fr)}.month-day-header{color:#999;font-size:.7rem;font-weight:600;padding:4px 0;text-align:center}.month-day{color:#666;cursor:pointer;font-size:.75rem;padding:6px 4px;text-align:center}.month-day:hover{background:#e3f2fd}.month-day.empty{cursor:default}.month-day.worked{background:#e8f5e9;color:#2e7d32;font-weight:600}.month-day.today{border:2px solid #1e3c72}.month-day.selected{background:#1e3c72;color:#fff}.no-employee-selected{align-items:center;color:#999;display:flex;flex-direction:column;height:400px;justify-content:center;text-align:center}.no-employee-selected .no-selection-icon{font-size:4rem;margin-bottom:15px}@media (max-width:1024px){.pointages-layout{grid-template-columns:1fr}.employees-cards-grid{max-height:300px}}@media (max-width:600px){.pointages-section .header-actions{flex-direction:column;width:100%}.pointages-section .date-filter{width:100%}.employees-cards-grid{grid-template-columns:1fr}.week-grid{grid-template-columns:repeat(4,1fr)}.pointage-summary{flex-direction:column}}.btn-import-badge{background:linear-gradient(135deg,#00bcd4,#0097a7);border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s}.btn-import-badge:hover{box-shadow:0 5px 15px #00bcd44d;transform:translateY(-2px)}.import-modal{animation:slideUp .3s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:800px;overflow-y:auto;width:95%}.import-modal .modal-header{background:linear-gradient(135deg,#00bcd4,#0097a7)}.import-modal .close-btn{background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1.3rem;height:36px;width:36px}.import-info{background:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:20px 30px}.import-info h4{color:#1e3c72;margin:0 0 10px}.import-info p{color:#666;margin:5px 0}.import-info code{background:#e3f2fd;border-radius:5px;color:#1565c0;font-family:monospace;padding:4px 8px}.import-example{background:#263238;border-radius:10px;margin-top:15px;padding:15px}.import-example strong{color:#81d4fa;font-size:12px}.import-example pre{color:#a5d6a7;font-family:Courier New,monospace;font-size:13px;line-height:1.5;margin:10px 0 0}.import-note{background:#fff8e1;border-left:4px solid #ffc107;border-radius:8px;font-size:13px;margin-top:15px;padding:12px}.import-form{padding:20px 30px}.import-form label{color:#333;display:block;font-weight:600;margin-bottom:8px}.import-form textarea{border:2px solid #e0e0e0;border-radius:10px;font-family:Courier New,monospace;font-size:13px;padding:15px;resize:vertical;transition:border-color .3s;width:100%}.import-form textarea:focus{border-color:#00bcd4;outline:none}.import-results{border-radius:10px;margin:0 30px 20px;padding:15px}.import-results.success{background:#e8f5e9;border:1px solid #a5d6a7}.import-results.error{background:#ffebee;border:1px solid #ef9a9a}.import-results p{margin:0 0 10px}.import-results details{margin-top:10px}.import-results summary{color:#666;cursor:pointer;font-weight:600}.import-results ul{font-size:13px;margin:10px 0 0 20px}.import-anomalies{border-top:1px solid #c8e6c9;margin-top:15px;padding-top:15px}.import-anomalies h4{color:#f57c00;margin:0 0 10px}.anomaly-item{background:#fff8e1;border-radius:6px;font-size:13px;margin-bottom:8px;padding:8px 12px}.anomaly-item .suggestion{color:#2196f3;font-style:italic}.btn-go-anomalies{background:#ff9800;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;margin-top:10px;padding:8px 16px}.modal-actions{background:#f8f9fa;border-top:1px solid #e0e0e0;gap:15px;padding:20px 30px}.btn-import{background:linear-gradient(135deg,#00bcd4,#0097a7);border:none;border-radius:10px;color:#fff;cursor:pointer;flex:1 1;font-size:15px;font-weight:700;padding:14px 24px;transition:all .3s}.btn-import:disabled{background:#bdbdbd;cursor:not-allowed}.btn-import:not(:disabled):hover{box-shadow:0 5px 20px #00bcd44d;transform:translateY(-2px)}.btn-cancel{background:#fff;border:2px solid #e0e0e0;border-radius:10px;color:#666;font-weight:600;padding:14px 24px;transition:all .3s}.btn-cancel:hover{border-color:#ff5252;color:#ff5252}.import-test{background:#e3f2fd;border-radius:0 0 20px 20px;padding:20px 30px}.import-test h4{color:#1565c0;margin:0 0 8px}.import-test p{color:#666;font-size:13px;margin:0 0 15px}.test-badges{display:flex;flex-wrap:wrap;gap:10px}.btn-test-badge{background:#fff;border:none;border-radius:8px;box-shadow:0 2px 8px #0000001a;color:#1565c0;cursor:pointer;font-size:13px;font-weight:600;padding:10px 16px;transition:all .3s}.btn-test-badge:hover{background:#1565c0;box-shadow:0 4px 15px #00000026;color:#fff;transform:translateY(-2px)}.edit-pointage-modal{animation:slideUp .3s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:95%}.edit-pointage-modal .modal-header{align-items:center;background:linear-gradient(135deg,#ff9800,#f57c00);border-radius:20px 20px 0 0;display:flex;justify-content:space-between;padding:20px 25px}.edit-pointage-modal .modal-header h3{color:#fff;font-size:1.3rem;margin:0}.edit-pointage-modal .close-btn{background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1.3rem;height:36px;transition:all .3s;width:36px}.edit-pointage-modal .close-btn:hover{background:#ffffff4d}.edit-pointage-info{background:#fff8e1;border-bottom:1px solid #ffe082;padding:20px 25px}.pointage-photo-container{border-top:1px dashed #ffe082;margin-top:15px;padding-top:15px}.pointage-photo-container p{color:#666;margin:0 0 10px}.pointage-photo{border:2px solid #ddd;border-radius:8px;box-shadow:0 2px 8px #0000001a;max-width:200px}.photo-modal{max-width:500px;text-align:center}.photo-modal-content{align-items:center;display:flex;justify-content:center;min-height:200px;padding:30px}.pointage-photo-large{border:3px solid #ddd;border-radius:12px;box-shadow:0 4px 20px #0003;max-height:400px;max-width:100%}.no-photo{color:#999;font-size:1.1rem;padding:40px}.edit-pointage-info p{color:#5d4037;margin:8px 0}.edit-pointage-form{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;padding:25px}.edit-pointage-form .form-group label{color:#333;display:block;font-weight:600;margin-bottom:8px}.edit-pointage-form input,.edit-pointage-form select{border:2px solid #e0e0e0;border-radius:10px;font-size:16px;padding:12px;transition:border-color .3s;width:100%}.edit-pointage-form input:focus,.edit-pointage-form select:focus{border-color:#ff9800;outline:none}.edit-pointage-preview{align-items:center;background:#f5f5f5;display:flex;flex-wrap:wrap;gap:15px;padding:15px 25px}.preview-label{color:#666;font-weight:600}.preview-old{background:#ffebee;border-radius:20px;color:#c62828;font-size:14px;padding:5px 12px;text-decoration:line-through}.preview-arrow{color:#999;font-size:1.2rem}.preview-new{background:#e8f5e9;border-radius:20px;color:#2e7d32;font-size:14px;font-weight:600;padding:5px 12px}.edit-pointage-modal .modal-actions{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;padding:20px 25px}.edit-pointage-modal .btn-save{background:linear-gradient(135deg,#4caf50,#43a047);border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .3s}.edit-pointage-modal .btn-save:hover{box-shadow:0 5px 15px #4caf5066;transform:translateY(-2px)}.edit-pointage-modal .btn-delete{background:linear-gradient(135deg,#f44336,#d32f2f);border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .3s}.edit-pointage-modal .btn-delete:hover{box-shadow:0 5px 15px #f4433666;transform:translateY(-2px)}.edit-pointage-modal .btn-cancel{background:#e0e0e0;border:none;border-radius:10px;color:#666;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .3s}.edit-pointage-modal .btn-cancel:hover{background:#bdbdbd}.system-access-group{align-items:center;background:#f5f5f5;border-radius:8px;display:flex;justify-content:space-between;margin-top:15px;padding:12px 15px}.system-access-group.active{background:#e8f5e9}.toggle-label{align-items:center;color:#333;cursor:pointer;display:flex;font-size:14px;gap:10px}.toggle-label input[type=checkbox]{display:none}.toggle-switch{background:#ccc;border-radius:12px;height:24px;position:relative;transition:background .3s;width:44px}.toggle-switch:before{background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;content:"";height:20px;left:2px;position:absolute;top:2px;transition:transform .3s;width:20px}.toggle-label input[type=checkbox]:checked+.toggle-switch{background:#4caf50}.toggle-label input[type=checkbox]:checked+.toggle-switch:before{transform:translateX(20px)}.form-help{display:none}.absences-section,.admin-dashboard,.anomalies-section,.demandes-section,.employees-section,.overview-section,.planning-section,.pointages-section,.rapports-section,.settings-section{box-sizing:border-box;max-width:none!important;width:100%!important}.admin-dashboard .absences-table,.admin-dashboard .data-table,.admin-dashboard .employees-grid,.admin-dashboard .pointages-table,.admin-dashboard .stats-grid,.admin-dashboard table{max-width:none!important;width:100%!important}.admin-dashboard .card,.admin-dashboard .panel,.admin-dashboard .section-content,.admin-dashboard section,.admin-dashboard>div{max-width:none;width:100%}.actualites-section{padding:20px}.actualites-section .section-header{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:25px}.actualites-section .section-header h2{align-items:center;color:#1e3c72;display:flex;font-size:1.5rem;gap:10px;margin:0}.actualites-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.actualite-card{background:#fff;border-left:4px solid #3498db;border-radius:12px;box-shadow:0 2px 10px #00000014;padding:20px;transition:all .2s}.actualite-card:hover{box-shadow:0 4px 15px #0000001f;transform:translateY(-2px)}.actualite-card.priority-high{background:linear-gradient(90deg,#fff5f5,#fff);border-left-color:#e74c3c}.actualite-card.priority-normal{border-left-color:#3498db}.actualite-card.priority-low{border-left-color:#95a5a6}.actualite-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.category-badge{border-radius:12px;font-size:.75rem;font-weight:600;padding:4px 10px}.category-badge.info{background:#e3f2fd;color:#1976d2}.category-badge.urgent{background:#ffebee;color:#c62828}.category-badge.event{background:#fff3e0;color:#ef6c00}.category-badge.rh{background:#f3e5f5;color:#7b1fa2}.actualite-date{color:#7f8c8d;font-size:.8rem}.actualite-title{color:#2c3e50;font-size:1.1rem;margin:0 0 10px}.actualite-content{color:#555;font-size:.9rem;line-height:1.5;margin:0 0 15px}.actualite-expires{background:#fff8e1;border-radius:6px;color:#e67e22;display:inline-block;font-size:.8rem;margin-bottom:15px;padding:5px 10px}.actualite-actions{border-top:1px solid #eee;display:flex;gap:10px;padding-top:15px}.actualite-actions .btn-delete,.actualite-actions .btn-edit{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:.85rem;gap:5px;padding:6px 12px}.actualite-actions .btn-edit{background:#e3f2fd;color:#1976d2}.actualite-actions .btn-delete{background:#ffebee;color:#c62828}.actualite-modal{max-width:600px}.actualite-modal textarea{border:1px solid #ddd;border-radius:8px;font-family:inherit;padding:12px;resize:vertical;width:100%}.actualite-modal .form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr}.empty-state{background:#f8f9fa;border-radius:12px;color:#7f8c8d;padding:60px 20px}.empty-state p{margin:10px 0}.loading-state{color:#7f8c8d;padding:40px;text-align:center}.superadmin-dashboard{background:#f8fafc;color:#1e293b;min-height:100vh;padding:0}.superadmin-header{align-items:center;background:linear-gradient(135deg,#1a365d,#2d3748);border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;padding:16px 32px}.header-left{gap:15px}.header-left,.logo-sa{align-items:center;display:flex}.logo-sa{gap:12px}.logo-icon{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:12px;color:#fff;display:flex;font-size:1.1rem;font-weight:800;height:48px;justify-content:center;letter-spacing:-1px;width:48px}.logo-sa h1{color:#fff;font-size:1.4rem;font-weight:700;margin:0}.logo-sa p{color:#fff9;font-size:.8rem;margin:0}.header-right{align-items:center;display:flex;gap:20px}.user-email{color:#fffc;font-size:.85rem}.btn-logout{align-items:center;background:#ef444433;border:1px solid #ef444466;border-radius:8px;color:#fca5a5;cursor:pointer;display:flex;font-size:.85rem;gap:6px;padding:8px 16px;transition:all .2s}.btn-logout:hover{background:#ef44444d;border-color:#ef444499}.btn-password{align-items:center;background:#3b82f633;border:1px solid #3b82f666;border-radius:8px;color:#93c5fd;cursor:pointer;display:flex;font-size:.85rem;gap:6px;padding:8px 16px;transition:all .2s}.btn-password:hover{background:#3b82f64d;border-color:#3b82f699}.password-modal .form-group.full-width{grid-column:1/-1}.message{align-items:center;animation:slideIn .3s ease;border-radius:10px;display:flex;font-weight:500;gap:10px;margin:16px 32px;padding:14px 24px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.message.success{background:#dcfce7;border:1px solid #86efac;color:#166534}.message.error{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(4,1fr);padding:24px 32px}.stat-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 1px 3px #0000000d;display:flex;gap:16px;padding:24px;transition:all .2s}.stat-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.stat-card.highlight{background:linear-gradient(135deg,#eff6ff,#f0f9ff);border-color:#93c5fd}.stat-icon-wrapper{align-items:center;border-radius:14px;display:flex;height:52px;justify-content:center;width:52px}.stat-icon-wrapper.blue{background:#dbeafe;color:#2563eb}.stat-icon-wrapper.green{background:#dcfce7;color:#16a34a}.stat-icon-wrapper.purple{background:#f3e8ff;color:#9333ea}.stat-icon-wrapper.gold{background:#fef3c7;color:#d97706}.stat-icon{height:26px;width:26px}.stat-content{display:flex;flex-direction:column}.stat-value{color:#1e293b;font-size:1.75rem;font-weight:700}.stat-label{color:#64748b;font-size:.85rem}.pricing-info-bar{align-items:center;background:#eff6ff;border-bottom:1px solid #bfdbfe;border-top:1px solid #bfdbfe;display:flex;gap:40px;justify-content:center;padding:14px 32px}.pricing-item{align-items:center;color:#475569;display:flex;font-size:.9rem;gap:8px}.pricing-item strong{color:#2563eb}.actions-bar{align-items:center;display:flex;justify-content:space-between;padding:20px 32px}.actions-bar h2{color:#1e293b;font-size:1.3rem;font-weight:600;margin:0}.btn-primary{align-items:center;border-radius:10px;box-shadow:0 4px 15px #3b82f64d;display:flex;font-size:.95rem;font-weight:600;gap:8px;padding:12px 24px}.btn-primary:hover{box-shadow:0 6px 20px #3b82f666;transform:translateY(-2px)}.btn-secondary{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;color:#475569;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s}.btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1}.icon-sm{height:20px;width:20px}.icon-xs{height:16px;width:16px}.companies-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));padding:0 32px 32px}.company-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 1px 3px #0000000d;padding:24px;transition:all .2s}.company-card:hover{border-color:#93c5fd;box-shadow:0 8px 25px #0000001a;transform:translateY(-2px)}.company-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:16px}.company-info h3{color:#1e293b;font-size:1.15rem;font-weight:600;margin:0 0 4px}.company-code{background:#dbeafe;border-radius:4px;color:#2563eb;font-size:.75rem;padding:2px 8px}.status{border-radius:20px;font-size:.75rem;font-weight:600;padding:4px 10px}.status-active{background:#dcfce7;color:#166534}.status-inactive{background:#fee2e2;color:#991b1b}.company-details{border-bottom:1px solid #e2e8f0;display:flex;flex-direction:column;gap:8px;margin-bottom:16px;padding-bottom:16px}.detail-row{align-items:center;color:#64748b;display:flex;font-size:.9rem;gap:8px}.detail-row svg,.email-small{color:#94a3b8}.email-small{font-size:.85rem}.company-pricing{margin-bottom:16px}.price-breakdown{color:#94a3b8;font-size:.85rem;margin-bottom:4px}.price-total{color:#16a34a;font-size:1.4rem;font-weight:700}.company-actions{display:flex;gap:8px}.btn-action{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;cursor:pointer;display:flex;font-size:.8rem;gap:6px;justify-content:center;padding:8px 12px;transition:all .2s}.btn-action:hover{background:#f1f5f9}.btn-add-users{background:#dcfce7;border-color:#86efac;color:#166534}.btn-add-users:hover{background:#bbf7d0}.btn-contract{background:#f3e8ff;border-color:#d8b4fe;color:#7c3aed}.btn-contract:hover{background:#e9d5ff}.btn-edit{background:#dbeafe;border-color:#93c5fd;color:#2563eb}.btn-edit:hover{background:#bfdbfe}.btn-delete{border-color:#fca5a5;color:#dc2626}.empty-state{align-items:center;display:flex;flex-direction:column;grid-column:1/-1;justify-content:center;padding:60px;text-align:center}.empty-icon{color:#cbd5e1;height:64px;margin-bottom:16px;width:64px}.empty-state h3{color:#64748b;font-size:1.2rem;margin:0 0 8px}.empty-state p{color:#94a3b8;margin:0 0 24px}.loading{color:#64748b;font-size:1rem;padding:60px;text-align:center}.modal-overlay{padding:20px}.modal{border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 25px 50px #00000026;overflow:hidden;width:100%}.modal.modal-large{max-width:700px}.modal.modal-contract{max-width:650px}.modal-header{background:#f8fafc;padding:20px 24px}.modal-header h2{font-size:1.2rem;font-weight:600;gap:10px}.modal-close,.modal-header h2{align-items:center;display:flex}.modal-close{background:#f1f5f9;border-radius:8px;font-size:1.4rem;height:32px;justify-content:center;transition:all .2s;width:32px}.modal-close:hover{background:#fee2e2;color:#dc2626}.modal-body{background:#fff;max-height:calc(90vh - 180px);overflow-y:auto;padding:24px}.modal-footer{background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.form-section{margin-bottom:28px}.form-section h3{align-items:center;border-bottom:1px solid #bfdbfe;color:#2563eb;display:flex;font-size:1rem;font-weight:600;gap:10px;margin:0 0 16px;padding-bottom:8px}.form-section h3 svg{color:#2563eb}.form-row{grid-gap:16px;display:grid;grid-template-columns:1fr 1fr}.form-row:last-child{margin-bottom:0}.form-group{gap:6px}.form-group.flex-2{grid-column:span 2}.form-group label{font-weight:500}.form-group input,.form-group select{border:1px solid #e2e8f0;border-radius:10px;color:#1e293b;transition:all .2s}.form-group input:focus,.form-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input::placeholder{color:#94a3b8}.form-group input:disabled{background:#e2e8f0;cursor:not-allowed;opacity:.6}.form-group small{color:#94a3b8;font-size:.75rem}.pricing-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:16px;padding:16px}.pricing-line{color:#64748b;font-size:.9rem;padding:8px 0}.pricing-line,.pricing-total{display:flex;justify-content:space-between}.pricing-total{border-top:1px solid #e2e8f0;color:#16a34a;font-size:1.1rem;font-weight:700;margin-top:8px;padding:12px 0 0}.contract-preview{background:#f8fafc;border-radius:12px;padding:24px}.contract-preview h3{color:#1e293b;font-size:1.1rem;font-weight:600;margin:0 0 20px;text-align:center}.contract-details{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:24px}.contract-party{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:16px}.contract-party h4{color:#2563eb;font-size:.85rem;letter-spacing:.5px;margin:0 0 10px;text-transform:uppercase}.contract-party p{color:#475569;font-size:.9rem;margin:4px 0}.contract-pricing-table{border-collapse:collapse;margin-bottom:16px;width:100%}.contract-pricing-table td,.contract-pricing-table th{border:1px solid #e2e8f0;font-size:.9rem;padding:12px;text-align:left}.contract-pricing-table th{background:#dbeafe;color:#1e40af;font-weight:600}.contract-pricing-table td{color:#475569}.contract-pricing-table tfoot td{background:#dcfce7;color:#166534}.contract-note{color:#64748b;font-size:.85rem;font-style:italic;text-align:center}@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.superadmin-header{flex-direction:column;gap:16px;padding:16px}.stats-grid{grid-template-columns:1fr;padding:16px}.pricing-info-bar{gap:12px}.actions-bar,.pricing-info-bar{flex-direction:column;padding:16px}.actions-bar{gap:16px}.companies-grid{padding:0 16px 16px}.companies-grid,.form-row{grid-template-columns:1fr}.form-group.flex-2{grid-column:span 1}.contract-details{grid-template-columns:1fr}.modal{margin:10px}.company-actions{flex-wrap:wrap}}.planning-container{background:linear-gradient(180deg,#f8fafc,#f1f5f9);margin:0 auto;max-width:100%;min-height:100vh;padding:24px 32px}.planning-header{align-items:center;border-bottom:none;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:0}.planning-header h1{color:#1e293b;font-size:1.75rem;font-weight:700;margin:0}.planning-actions{display:flex;gap:12px}.planning-tabs{background:#fff;border-radius:14px;box-shadow:0 1px 3px #0000000d;gap:4px;margin-bottom:24px;padding:6px;width:-webkit-fit-content;width:fit-content}.planning-tabs,.tab-btn{border:none;display:flex}.tab-btn{align-items:center;background:#0000;border-radius:10px;color:#64748b;cursor:pointer;font-size:.95rem;font-weight:600;gap:8px;margin-bottom:0;padding:12px 24px;transition:all .2s ease}.tab-btn:hover{background:#f1f5f9;color:#475569}.tab-btn.active{background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 2px 8px #6366f14d;color:#fff}.planning-actions button{border:none;border-radius:12px;cursor:pointer;font-size:.9rem;font-weight:600;padding:12px 20px;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.btn-primary:hover{box-shadow:0 4px 12px #6366f159}.btn-secondary{background:linear-gradient(135deg,#8b5cf6,#a855f7);color:#fff}.btn-secondary:hover{box-shadow:0 4px 12px #8b5cf659;transform:translateY(-1px)}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-success:hover{box-shadow:0 4px 12px #10b98159;transform:translateY(-1px)}.planning-loading{align-items:center;color:#94a3b8;display:flex;font-size:1.25rem;font-weight:500;height:400px;justify-content:center}.shifts-section{background:#fff;border-radius:20px;box-shadow:0 1px 3px #0000000d;margin-bottom:28px;padding:24px}.shifts-section h2{color:#1e293b;font-size:1.25rem;font-weight:600;margin-bottom:20px;margin-top:0}.shifts-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.shift-card{background:#fff;border:none;border-radius:16px;box-shadow:0 2px 8px #0000000f;overflow:hidden;position:relative;transition:all .25s ease}.shift-card:before{border-radius:16px 0 0 16px;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.shift-card:hover{box-shadow:0 8px 24px #0000001a;transform:translateY(-3px)}.shift-header{align-items:center;color:#fff;display:flex;gap:10px;padding:14px 18px}.shift-name{font-size:1rem;font-weight:700}.shift-code{background:#fff3;border-radius:6px;font-size:.8rem;opacity:.9;padding:2px 8px}.night-badge{font-size:1.1rem;margin-left:auto}.shift-times{color:#475569;display:flex;flex-direction:column;font-size:.9rem;gap:6px;padding:14px 18px}.pause-info{color:#94a3b8;font-size:.8rem}.shift-tolerance{background:#f8fafc;color:#94a3b8;font-size:.75rem;padding:10px 18px}.shift-actions{background:#f8fafc;display:flex;gap:8px;justify-content:flex-end;padding:12px 18px}.btn-delete,.btn-edit{border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 14px;transition:all .2s ease}.btn-edit{background:#e2e8f0;color:#475569}.btn-edit:hover{background:#cbd5e1}.btn-delete{background:#fee2e2;color:#ef4444}.btn-delete:hover{background:#fecaca}.teams-section{background:#fff;border-radius:20px;box-shadow:0 1px 3px #0000000d;margin-bottom:28px;padding:24px}.teams-section h2{color:#1e293b;font-size:1.25rem;font-weight:600;margin-bottom:20px;margin-top:0}.teams-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.team-btn{align-items:center;background:#fff;border:2px solid;border-radius:12px;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease}.team-btn:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.team-btn.active{box-shadow:0 4px 12px #00000026;transform:scale(1.02)}.team-shift-badge{background:#00000014;border-radius:8px;font-size:.7rem;padding:3px 8px}.teams-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.team-card{background:#f8fafc;border-left:4px solid;border-radius:12px;padding:18px;transition:all .2s ease}.team-card:hover{background:#f1f5f9;transform:translateX(2px)}.team-card h3{color:#1e293b;font-size:1rem;margin:0 0 10px}.team-card p{color:#64748b;font-size:.9rem;margin:5px 0}.team-actions{display:flex;gap:8px;margin-top:12px}.week-navigation{align-items:center;background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000d;display:flex;gap:16px;justify-content:center;margin-bottom:24px;padding:16px 24px}.week-navigation h3{color:#1e293b;font-size:1.1rem;font-weight:600;margin:0;min-width:280px;text-align:center}.nav-btn{background:#f1f5f9;border:none;border-radius:10px;color:#475569;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .2s ease}.nav-btn:hover{background:#e2e8f0;color:#1e293b}.nav-btn.today{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.nav-btn.today:hover{background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 4px 12px #6366f14d}.planning-table-container{background:linear-gradient(145deg,#f8fafc,#f1f5f9);border-radius:20px;box-shadow:0 4px 6px -1px #0000000d,0 10px 15px -3px #00000014;overflow-x:auto;padding:24px}.planning-table{border-collapse:initial;border-spacing:0 8px;min-width:900px;width:100%}.planning-table th{background:#0000;border:none;color:#64748b;font-size:.85rem;font-weight:600;letter-spacing:.5px;padding:16px 12px;text-align:center;text-transform:uppercase}.planning-table th.weekend{background:#0000;color:#94a3b8}.planning-table th:first-child,.planning-table th:nth-child(2){padding-left:20px;text-align:left}.planning-table tbody tr{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000a;transition:all .2s ease}.planning-table tbody tr:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.planning-table td{background:#0000;border:none;padding:12px 8px}.planning-table tbody tr td:first-child{border-radius:16px 0 0 16px;padding-left:20px}.planning-table tbody tr td:last-child{border-radius:0 16px 16px 0}.employee-col{max-width:120px;min-width:100px;text-align:left!important}.badge-col{min-width:140px}.employee-cell{text-align:left!important;vertical-align:middle}.employee-info{display:flex;flex-direction:column;gap:2px}.employee-name{color:#475569;font-size:.9rem;font-weight:600}.employee-team{color:#94a3b8;font-size:.75rem}.badge-cell{vertical-align:middle}.employee-name-cell{gap:4px}.employee-name-cell strong{font-weight:600}.planning-cell{padding:6px 4px!important;position:relative;vertical-align:middle}.planning-cell.weekend{background:#f1f5f980}.shift-slot{align-items:center;display:flex;flex-direction:column;gap:2px}.shift-slot.slot-1{margin-bottom:4px}.shift-slot.slot-2{border-top:1px dashed #e2e8f0;padding-top:4px}.toggle-restauration{align-items:center;background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;color:#64748b;cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:8px;padding:8px 14px;transition:all .2s ease}.toggle-restauration:hover{background:#fffbeb;border-color:#f59e0b}.toggle-restauration input[type=checkbox]{accent-color:#f59e0b;cursor:pointer;height:18px;width:18px}.toggle-restauration input[type=checkbox]:checked+.toggle-label{color:#d97706;font-weight:600}.toggle-label{white-space:nowrap}.shift-select-secondary{background:linear-gradient(145deg,#fefce8,#fef9c3)!important;border-color:#fcd34d!important;font-size:.8rem!important;padding:6px 8px!important}.shift-select{appearance:none;-webkit-appearance:none;background:linear-gradient(145deg,#f8fafc,#f1f5f9);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m19 9-7 7-7-7'/%3E%3C/svg%3E");background-position:right 6px center;background-repeat:no-repeat;background-size:14px;border:2px solid #0000;border-radius:10px;color:#475569;cursor:pointer;font-size:.8rem;font-weight:700;padding:8px 24px 8px 10px;text-align:center;text-align-last:center;transition:all .2s ease;width:100%}.shift-select-secondary{background:#f8fafc;border:1px dashed #cbd5e1;font-size:.75rem;opacity:.7;padding:6px 8px}.shift-select-secondary:hover{border-style:solid;opacity:1}.shift-select:hover{background:linear-gradient(145deg,#fff,#f8fafc);box-shadow:0 2px 8px #00000014}.shift-select:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f126;outline:none}.shift-time{display:block;font-size:.65rem;font-weight:500;margin-top:2px;opacity:.85;text-align:center}.inline-hours-counter{gap:8px;margin-top:6px}.hours-value-inline{background:#10b9811a;border-radius:6px;color:#10b981;font-weight:700;min-width:42px;padding:2px 6px;text-align:center}.hours-value-inline.overtime{background:#f59e0b1a;color:#f59e0b}.hours-value-inline.exceeded{background:#ef44441a;color:#ef4444}.hours-bar-inline{background:#e2e8f0;border-radius:3px;height:6px}.hours-progress-inline{border-radius:3px}.modal-overlay{animation:fadeIn .2s ease;background:#0f172a99}.modal{animation:slideUp .3s ease;background:#fff;border-radius:24px;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #0000000d;max-height:90vh;max-width:600px;overflow-y:auto;padding:32px;width:90%}.modal h2{border-bottom:2px solid #f1f5f9;color:#1e293b;font-size:1.35rem;font-weight:700;margin-bottom:24px;margin-top:0;padding-bottom:16px}.form-row{gap:16px;margin-bottom:16px}.form-group{flex:1 1}.form-group.checkbox,.form-group.checkbox label{align-items:center;display:flex}.form-group.checkbox label{cursor:pointer;gap:10px}.form-group.checkbox input[type=checkbox]{accent-color:#6366f1;cursor:pointer;height:20px;width:20px}.form-group label{color:#475569;display:block;font-size:.85rem;margin-bottom:8px}.form-group input,.form-group select{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;font-size:.95rem;padding:12px 14px;transition:all .2s ease;width:100%}.form-group input:hover,.form-group select:hover{background:#fff;border-color:#cbd5e1}.form-group input:focus,.form-group select:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.form-group input[type=color]{cursor:pointer;height:48px;padding:6px}.form-group input[type=time]{cursor:pointer}.modal-actions{border-top:2px solid #f1f5f9;margin-top:28px;padding-top:20px}.modal-actions button{border:none;border-radius:12px;cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 28px;transition:all .2s ease}.btn-cancel:hover{color:#475569}.pause-row{align-items:flex-end}.no-pause-btn{background:#fff;border:2px solid #e74c3c;border-radius:8px;color:#e74c3c;cursor:pointer;font-size:.85rem;font-weight:600;height:42px;margin-bottom:0;padding:10px 16px;transition:all .2s;white-space:nowrap}.no-pause-btn:hover{background:#fdf2f2}.no-pause-btn.active{background:#e74c3c;color:#fff}.no-pause-btn.active:hover{background:#c0392b}.disabled-input{background-color:#f5f5f5!important;color:#999!important;cursor:not-allowed!important;opacity:.6}.planning-toolbar{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000d;flex-wrap:wrap;justify-content:space-between;margin-bottom:24px;padding:16px 24px}.planning-toolbar,.toolbar-left,.toolbar-right{align-items:center;display:flex;gap:16px}.toolbar-center{align-items:center;display:flex;gap:12px}.toolbar-center h3{color:#1e293b;font-size:1.1rem;font-weight:600;margin:0;min-width:280px;text-align:center}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{color:#94a3b8;font-size:.7rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.department-select,.employee-select{background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;color:#475569;cursor:pointer;font-size:.9rem;font-weight:500;min-width:180px;padding:10px 14px;transition:all .2s ease}.department-select:hover,.employee-select:hover{background:#fff;border-color:#cbd5e1}.department-select:focus,.employee-select:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.btn-info{background:linear-gradient(135deg,#0ea5e9,#06b6d4);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 18px;transition:all .2s ease}.btn-info:hover{box-shadow:0 4px 12px #0ea5e94d;transform:translateY(-1px)}.employee-dept{color:#8b5cf6;display:block;font-size:.7rem;font-weight:500}.employee-name-cell{display:flex;flex-direction:column;gap:2px}.employee-name-cell strong{color:#1e293b;font-size:.95rem}.employee-name-cell .badge-id{color:#94a3b8;font-family:monospace;font-size:.75rem}.inline-hours-counter{align-items:center;display:flex;gap:6px;margin-top:4px}.hours-value-inline{color:#27ae60;font-size:.8rem;font-weight:600;min-width:40px}.hours-value-inline.overtime{color:#f39c12}.hours-value-inline.exceeded{color:#e74c3c}.hours-bar-inline{background:#ecf0f1;border-radius:2px;flex:1 1;height:4px;max-width:80px;min-width:50px;overflow:hidden}.hours-progress-inline{border-radius:2px;height:100%;transition:width .3s ease}.modal-duplicate{max-width:500px}.duplicate-info{background:#e3f2fd;border-radius:8px;margin-bottom:20px;padding:12px 16px}.duplicate-info p{color:#1565c0;margin:4px 0}.modal-template{max-width:600px}.template-save-section{background:#e8f5e9;border-radius:10px;margin-bottom:24px;padding:16px}.template-save-section h4{color:#2e7d32;margin:0 0 12px}.template-save-section .form-row{align-items:center;display:flex;gap:10px}.template-hint{color:#666;font-size:.85rem;margin:8px 0 0}.template-list-section{margin-bottom:20px}.template-list-section h4{color:#2c3e50;margin:0 0 12px}.template-list{list-style:none;margin:0;padding:0}.template-item{align-items:center;border:1px solid #dfe6e9;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:8px;padding:12px 16px}.template-item:hover{background:#f8f9fa;border-color:#3498db}.template-info{display:flex;flex-direction:column;gap:4px}.template-info strong{color:#2c3e50}.template-info span{color:#6c757d;font-size:.8rem}.template-actions{display:flex;gap:8px}.btn-small{font-size:.85rem;padding:6px 12px}.no-templates{color:#6c757d;font-style:italic;padding:20px;text-align:center}@media (max-width:768px){.planning-header{flex-direction:column;gap:15px}.planning-actions{flex-wrap:wrap;justify-content:center}.week-navigation{gap:10px}.planning-toolbar,.week-navigation{flex-direction:column}.toolbar-center h3{min-width:auto}.form-row{flex-direction:column;gap:10px}.shifts-grid{grid-template-columns:1fr}}.alerts-section{background:#fff;border-left:4px solid #e74c3c;border-radius:12px;box-shadow:0 2px 10px #00000014;margin-top:30px;overflow:hidden}.alerts-header{align-items:center;background:linear-gradient(135deg,#fff5f5,#fff);cursor:pointer;display:flex;justify-content:space-between;padding:16px 20px;transition:background .2s}.alerts-header:hover{background:linear-gradient(135deg,#ffebeb,#fff)}.alerts-header h3{align-items:center;color:#c0392b;display:flex;font-size:1.1rem;margin:0}.btn-toggle{background:none;border:none;color:#7f8c8d;cursor:pointer;padding:8px}.alerts-list{padding:0 20px 20px}.alert-item{align-items:center;border-radius:8px;display:flex;gap:12px;margin-bottom:8px;padding:12px 16px}.alert-item.alert-warning{background:#fff8e1;border-left:3px solid #f39c12}.alert-item.alert-error{background:#ffebee;border-left:3px solid #e74c3c}.alert-icon{font-size:1.2rem}.alert-warning .alert-icon{color:#f39c12}.alert-error .alert-icon{color:#e74c3c}.alert-message{color:#34495e;flex:1 1;font-size:.9rem}.hours-counter-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #00000014;margin-top:30px;padding:20px}.hours-counter-section h3{align-items:center;color:#2c3e50;display:flex;margin:0 0 20px}.hours-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.hours-card{background:#f8f9fa;border-radius:10px;display:flex;flex-direction:column;gap:8px;padding:15px}.hours-card.overtime{background:#fff8e1;border:1px solid #f39c12}.hours-card.exceeded{background:#ffebee;border:1px solid #e74c3c}.hours-card.more{align-items:center;color:#7f8c8d;font-style:italic;justify-content:center}.hours-name{color:#2c3e50;font-size:.9rem;font-weight:600}.hours-value{color:#27ae60;font-size:1.4rem;font-weight:700}.hours-card.overtime .hours-value{color:#f39c12}.hours-card.exceeded .hours-value{color:#e74c3c}.hours-bar{background:#e0e0e0;border-radius:3px;height:6px;overflow:hidden;width:100%}.hours-progress{border-radius:3px;height:100%;transition:width .3s}.quick-actions-section{background:#fff;border-radius:12px;box-shadow:0 2px 10px #00000014;margin-top:30px;padding:20px}.quick-actions-section h3{align-items:center;color:#2c3e50;display:flex;margin:0 0 20px}.quick-actions-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.quick-action-btn{align-items:center;background:linear-gradient(135deg,#f8f9fa,#fff);border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:10px;padding:20px;transition:all .2s}.quick-action-btn:hover{border-color:#3498db;box-shadow:0 8px 20px #3498db33;transform:translateY(-3px)}.quick-action-btn i{color:#3498db;font-size:2rem}.quick-action-btn span{color:#2c3e50;font-size:1rem;font-weight:600}.quick-action-btn small{color:#7f8c8d;font-size:.8rem;text-align:center}.quick-action-btn:nth-child(2) i{color:#9b59b6}.quick-action-btn:nth-child(2):hover{border-color:#9b59b6;box-shadow:0 8px 20px #9b59b633}.quick-action-btn:nth-child(3) i{color:#e67e22}.quick-action-btn:nth-child(3):hover{border-color:#e67e22;box-shadow:0 8px 20px #e67e2233}.quick-action-btn:nth-child(4) i{color:#27ae60}.quick-action-btn:nth-child(4):hover{border-color:#27ae60;box-shadow:0 8px 20px #27ae6033}.modal-quick-action{max-width:500px}.modal-description{background:#f8f9fa;border-radius:8px;color:#7f8c8d;font-size:.9rem;margin-bottom:20px;padding:12px 16px}.replacement-info{align-items:center;background:#e3f2fd;border-radius:8px;color:#1565c0;display:flex;font-size:.85rem;gap:10px;margin:15px 0;padding:12px 16px}.replacement-info i{color:#1976d2}.planning-cell.on-leave{background:repeating-linear-gradient(45deg,#ffebee,#ffebee 5px,#fff 0,#fff 10px)}.planning-cell .leave-indicator{color:#e74c3c;font-size:.8rem;position:absolute;right:2px;top:2px}.planning-cell .rest-warning{bottom:2px;color:#f39c12;font-size:.8rem;position:absolute;right:2px}@media (max-width:768px){.hours-grid,.quick-actions-grid{grid-template-columns:repeat(2,1fr)}.quick-action-btn{padding:15px 10px}.quick-action-btn i{font-size:1.5rem}.quick-action-btn span{font-size:.9rem}}.view-toggle{background:#f0f0f0;border-radius:8px;display:flex;margin-right:15px;padding:4px}.view-btn{background:#0000;border:none;border-radius:6px;color:#666;cursor:pointer;font-weight:600;padding:8px 16px;transition:all .2s}.view-btn:hover{color:#3498db}.view-btn.active{background:#fff;box-shadow:0 2px 4px #0000001a;color:#3498db}.month-view-container{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));padding:10px 0}.employee-month-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.employee-month-header{align-items:center;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;display:flex;justify-content:space-between;padding:12px 16px}.employee-month-header strong{font-size:1rem}.employee-team{background:#fff3;border-radius:4px;font-size:.85rem;opacity:.9;padding:3px 8px}.month-calendar{padding:10px}.month-header-row{border-bottom:1px solid #eee;color:#666;display:grid;font-size:.75rem;font-weight:600;grid-template-columns:repeat(7,1fr);margin-bottom:5px;padding-bottom:5px;text-align:center}.month-header-row span.weekend{color:#e74c3c}.month-week-row{grid-gap:3px;display:grid;gap:3px;grid-template-columns:repeat(7,1fr);margin-bottom:3px}.month-day{align-items:center;border:1px solid #eee;border-radius:6px;display:flex;flex-direction:column;min-height:50px;padding:4px;position:relative;transition:all .2s}.month-day:hover{border-color:#3498db;box-shadow:0 2px 6px #3498db33}.month-day.empty{background:#fafafa;border-color:#0000}.month-day.weekend{background:#fef9f9}.month-day.on-leave{background:repeating-linear-gradient(45deg,#ffebee,#ffebee 3px,#fff 0,#fff 6px)}.day-number{color:#888;font-size:.7rem;font-weight:600;margin-bottom:2px}.month-shift-select{background:#fff;border:2px solid #ddd;border-radius:4px;cursor:pointer;font-size:.75rem;font-weight:600;padding:4px 2px;text-align:center;width:100%}.month-shift-select:focus{border-color:#3498db;outline:none}.leave-badge{align-items:center;background:#e74c3c;border-radius:50%;color:#fff;display:flex;font-size:.6rem;font-weight:700;height:14px;justify-content:center;position:absolute;right:2px;top:2px;width:14px}@media (max-width:768px){.month-view-container{grid-template-columns:1fr}.view-toggle{margin-bottom:10px}}.modal-generate{max-width:700px;width:95%}.modal-subtitle{color:#666;font-size:.95rem;margin-bottom:20px}.generate-config-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr);margin-bottom:25px}.config-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;padding:15px}.config-section h4{border-bottom:2px solid #3498db;color:#2c3e50;font-size:.95rem;margin:0 0 12px;padding-bottom:8px}.config-section .form-group{margin-bottom:10px}.config-section .form-group:last-child{margin-bottom:0}.config-section label{color:#555;display:block;font-size:.85rem;margin-bottom:4px}.config-section input[type=number],.config-section select{border:1px solid #ddd;border-radius:6px;font-size:.9rem;padding:8px 10px;width:100%}.config-section input:focus,.config-section select:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db1a;outline:none}.form-row{align-items:flex-end;display:flex;gap:10px}.form-row .form-group{flex:1 1}.form-row span{color:#666;padding-bottom:8px}.checkbox-group label{align-items:center;cursor:pointer;display:flex;font-size:.9rem;gap:8px}.checkbox-group input[type=checkbox]{accent-color:#3498db;cursor:pointer;height:18px;width:18px}@media (max-width:768px){.generate-config-grid{grid-template-columns:1fr}}.day-view-container{background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000f;padding:20px}.day-table{border-collapse:collapse;width:100%}.day-table th{background:#f8fafc;border-bottom:2px solid #e2e8f0;color:#475569;font-size:.9rem;font-weight:600;padding:16px;text-align:left}.day-table td{border-bottom:1px solid #f1f5f9;padding:16px;vertical-align:middle}.day-table tr:hover{background:#f8fafc}.day-table tr.on-leave{background:#fef3c7}.day-table .shift-display{border-radius:8px;display:inline-flex;flex-direction:column;gap:4px;padding:8px 14px}.day-table .shift-display strong{color:#1e293b;font-size:.95rem}.day-table .shift-display .shift-time{color:#64748b;font-size:.8rem}.day-table .repos-badge{background:#f1f5f9;color:#64748b}.day-table .absence-badge,.day-table .repos-badge{border-radius:6px;display:inline-block;font-size:.85rem;font-weight:500;padding:6px 14px}.day-table .absence-badge{background:#fef3c7;color:#92400e}.day-table .no-shift{color:#94a3b8;font-style:italic}.status-badge{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:600;padding:6px 12px}.status-badge.working{background:#dcfce7;color:#166534}.status-badge.absent{background:#fee2e2;color:#991b1b}.status-badge.weekend{background:#e0e7ff;color:#3730a3}.status-badge.off{background:#f1f5f9;color:#64748b}.settings-page{margin:0 auto;max-width:1400px;padding:20px}.settings-header{align-items:center;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.settings-header h2{color:#1e3c72;font-size:1.8rem;margin:0}.settings-actions{align-items:center;display:flex;gap:15px}.save-status{border-radius:20px;font-size:.9rem;font-weight:600;padding:8px 15px}.save-status.saving{background:#fff3e0;color:#ff9800}.save-status.saved{background:#e8f5e9;color:#4caf50}.save-status.error{background:#ffebee;color:#f44336}.btn-save{background:linear-gradient(135deg,#4caf50,#66bb6a);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 25px;transition:all .2s}.btn-save:hover{box-shadow:0 4px 15px #4caf5066;transform:translateY(-2px)}.settings-layout{display:flex;gap:30px;min-height:600px}.settings-sidebar{background:#fff;border-radius:15px;box-shadow:0 4px 20px #00000014;height:-webkit-fit-content;height:fit-content;overflow:hidden;padding:15px 10px;position:-webkit-sticky;position:sticky;top:20px;transition:width .3s ease;width:70px}.settings-sidebar:hover{width:250px}.sidebar-item{align-items:center;background:#0000;border:none;border-radius:10px;color:#666;cursor:pointer;display:flex;font-size:1rem;gap:12px;margin-bottom:5px;overflow:hidden;padding:15px;text-align:left;transition:all .2s;white-space:nowrap;width:100%}.sidebar-icon{flex-shrink:0;font-size:1.4rem;min-width:24px}.sidebar-label{opacity:0;transition:opacity .2s ease}.settings-sidebar:hover .sidebar-label{opacity:1}.sidebar-item:hover{background:#f5f5f5;color:#333}.sidebar-item.active{background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;font-weight:600}.settings-content{background:#fff;border-radius:15px;box-shadow:0 4px 20px #00000014;flex:1 1;padding:30px}.settings-section h3{border-bottom:2px solid #e0e0e0;color:#1e3c72;font-size:1.4rem;margin:0 0 25px;padding-bottom:15px}.section-description{color:#666;margin-bottom:20px}.form-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}.form-group{display:flex;flex-direction:column;gap:8px}.form-group.full-width{grid-column:span 2}.form-group label{color:#333;font-size:.9rem;font-weight:600}.form-group input,.form-group select,.form-group textarea{border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;padding:12px 15px;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#1e3c72;box-shadow:0 0 0 3px #1e3c721a;outline:none}.users-layout{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr}.user-edit h4,.users-list h4{color:#333;margin:0 0 15px}.users-info{color:#888;font-size:12px;font-style:italic;margin:-10px 0 15px}.user-cards{display:flex;flex-direction:column;gap:10px;max-height:500px;overflow-y:auto}.user-card{align-items:center;background:#f8f9fa;border:2px solid #0000;border-radius:10px;cursor:pointer;display:flex;gap:15px;padding:15px;transition:all .2s}.user-card:hover{background:#e3f2fd}.user-card.selected{background:#e3f2fd;border-color:#1e3c72}.user-avatar{background:#fff;font-size:2rem;height:50px;width:50px}.user-info{flex:1 1}.user-name{color:#333}.user-role{color:#666;font-size:.85rem}.user-fonction{color:#999;font-size:.8rem;font-style:italic}.user-dept{background:#e3f2fd;border-radius:15px;color:#1e3c72;font-size:.85rem;padding:4px 10px}.role-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr);margin-top:10px}.role-btn{align-items:center;background:#fff;border:2px solid;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:5px;padding:15px;transition:all .2s}.role-btn:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.role-btn.selected{transform:scale(1.02)}.role-icon{font-size:1.5rem}.role-label{font-size:.85rem;font-weight:600}.role-description{background:#f8f9fa;border-radius:10px;margin-top:20px;padding:15px}.role-description h5{color:#333;margin:0 0 10px}.role-description ul{margin:0;padding-left:20px}.role-description li{color:#666;margin-bottom:5px}.btn-update-role{background:linear-gradient(135deg,#1e3c72,#2a5298);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:20px;padding:15px;transition:all .2s;width:100%}.btn-update-role:hover{box-shadow:0 4px 15px #1e3c7266;transform:translateY(-2px)}.no-selection{align-items:center;color:#999;display:flex;flex-direction:column;height:300px;justify-content:center;text-align:center}.no-selection-icon{font-size:3rem;margin-bottom:15px}.add-item-form,.add-site-form{display:flex;gap:10px;margin-bottom:25px}.add-item-form input,.add-site-form input{border:2px solid #e0e0e0;border-radius:10px;flex:1 1;font-size:1rem;padding:12px 15px}.add-item-form button,.add-site-form button{background:linear-gradient(135deg,#1e3c72,#2a5298);border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:600;padding:12px 20px;transition:all .2s}.add-item-form button:hover,.add-site-form button:hover{transform:translateY(-2px)}.items-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.item-card{align-items:center;background:#f8f9fa;border-radius:10px;display:flex;gap:12px;padding:15px 20px;transition:all .2s}.item-card:hover{background:#e3f2fd}.item-icon{font-size:1.5rem}.item-name{color:#333;flex:1 1;font-weight:600}.item-count{background:#fff;border-radius:10px;color:#666;font-size:.85rem;padding:4px 10px}.btn-remove{background:#0000;border:none;cursor:pointer;opacity:.5;padding:8px;transition:all .2s}.btn-remove:hover{opacity:1;transform:scale(1.1)}.sites-list{display:flex;flex-direction:column;gap:15px}.site-card{align-items:center;background:#f8f9fa;border:2px solid #0000;border-radius:10px;display:flex;justify-content:space-between;padding:20px;transition:all .2s}.site-card.main{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-color:#1e3c72}.site-info{align-items:center;display:flex;gap:15px}.site-icon{font-size:2rem}.site-details{display:flex;flex-direction:column}.site-name{align-items:center;color:#333;display:flex;font-weight:600;gap:10px}.badge-main{background:#1e3c72;border-radius:10px;color:#fff;font-size:.75rem;font-weight:500;padding:3px 8px}.site-address{color:#666;font-size:.9rem}.fonctions-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:25px}.btn-add-fonction{align-items:center;background:linear-gradient(135deg,#27ae60,#2ecc71);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-weight:600;margin-bottom:20px;padding:10px 20px;transition:all .2s}.btn-add-fonction:hover{box-shadow:0 4px 12px #27ae6066;transform:translateY(-2px)}.fonction-card{align-items:center;background:#f8f9fa;border-radius:10px;display:flex;gap:10px;padding:12px 15px;position:relative;transition:all .2s}.fonction-card:hover{background:#e9ecef}.fonction-card:hover .btn-delete-fonction{opacity:1}.btn-delete-fonction{align-items:center;background:#e74c3c;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:16px;height:24px;justify-content:center;line-height:1;opacity:0;position:absolute;right:8px;top:50%;transform:translateY(-50%);transition:all .2s;width:24px}.btn-delete-fonction:hover{background:#c0392b;transform:translateY(-50%) scale(1.1)}.fonction-icon{font-size:1.2rem}.fonction-name{color:#333;flex:1 1;font-size:.95rem}.modal-content.small{max-width:400px}.info-box{align-items:flex-start;background:#e3f2fd;border-radius:10px;color:#1565c0;display:flex;gap:12px;padding:15px 20px}.info-icon{font-size:1.2rem}.info-box p{font-size:.95rem;margin:0}.system-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-bottom:30px}.system-card{background:#f8f9fa;gap:20px;padding:20px}.system-card,.system-icon{align-items:center;border-radius:15px;display:flex}.system-icon{background:#fff;box-shadow:0 2px 10px #0000000d;font-size:2.5rem;height:60px;justify-content:center;width:60px}.system-info{flex:1 1}.system-info h4{color:#333;font-size:1rem;margin:0 0 10px}.system-info input[type=number],.system-info select{border:2px solid #e0e0e0;border-radius:8px;font-size:.95rem;padding:10px;width:100%}.system-info .unit{color:#666;font-size:.85rem;margin-left:8px}.switch{display:inline-block;height:28px;position:relative;width:50px}.switch input{height:0;opacity:0;width:0}.slider{background-color:#ccc;border-radius:28px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.3s}.slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:22px;left:3px;width:22px}input:checked+.slider{background:linear-gradient(135deg,#4caf50,#66bb6a)}input:checked+.slider:before{transform:translateX(22px)}.danger-zone{background:#fff5f5;border:2px solid #ffcdd2;border-radius:15px;padding:25px}.danger-zone h4{color:#c62828;margin:0 0 15px}.danger-actions{display:flex;flex-wrap:wrap;gap:15px}.btn-danger{background:#fff;border:2px solid #ef5350;border-radius:10px;color:#c62828;cursor:pointer;font-weight:600;padding:12px 20px;transition:all .2s}.btn-danger:hover{background:#ef5350;color:#fff}@media (max-width:1024px){.settings-layout{flex-direction:column}.settings-sidebar{display:flex;flex-wrap:wrap;gap:10px;padding:15px;position:static;width:100%}.settings-sidebar:hover{width:100%}.sidebar-item{flex:1 1;justify-content:center;min-width:50px;padding:12px;text-align:center;width:auto}.sidebar-label{display:none}.form-grid,.users-layout{grid-template-columns:1fr}.form-group.full-width{grid-column:span 1}}@media (max-width:600px){.settings-header{align-items:flex-start;flex-direction:column;gap:15px}.role-grid{grid-template-columns:1fr}.add-item-form,.add-site-form,.danger-actions{flex-direction:column}}.tablet-scanner{background:linear-gradient(135deg,#1e3a5f,#2d5a87);bottom:0;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;left:0;overflow:hidden;position:fixed;right:0;top:0;transition:background .3s ease}.tablet-scanner.scan-success{background:linear-gradient(135deg,#0a5a2a,#1a7a3a)}.tablet-scanner.scan-error{background:linear-gradient(135deg,#5a0a0a,#7a1a1a)}.nfc-indicator{align-items:center;background:#ffffff26;border-radius:16px;display:flex;gap:15px;justify-content:center;margin-bottom:20px;padding:15px 25px;transition:all .3s ease}.nfc-indicator.active{animation:nfc-pulse 2s infinite;background:#4caf5040}@keyframes nfc-pulse{0%,to{box-shadow:0 0 0 0 #4caf5066}50%{box-shadow:0 0 20px 10px #4caf5033}}.nfc-icon{animation:nfc-wave 1.5s infinite;font-size:2.5rem}@keyframes nfc-wave{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.nfc-status{display:flex;flex-direction:column;gap:4px}.nfc-badge{border-radius:20px;display:inline-block;font-size:1.1rem;font-weight:600;padding:4px 12px}.nfc-badge.active{background:#4caf50;color:#fff}.nfc-badge.inactive{background:#ffffff4d;color:#fff}.nfc-hint{color:#fffc;font-size:.9rem}.nfc-error{color:#ff8a80;font-size:.85rem}.tablet-config{align-items:center;background:linear-gradient(135deg,#1e3a5f,#2d5a87);display:flex;justify-content:center}.config-container{background:#fff;border-radius:24px;box-shadow:0 20px 60px #0000004d;max-width:500px;padding:48px;text-align:center;width:90%}.config-logo{margin-bottom:24px}.config-logo img{max-height:80px}.config-container h1{color:#1e3a5f;font-size:1.8rem;font-weight:600;margin:0 0 16px}.config-container>p{color:#666;margin:0 0 32px}.config-form{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.config-input{border:2px solid #ddd;border-radius:12px;font-size:1.1rem;outline:none;padding:16px 20px;transition:border-color .3s}.config-input:focus{border-color:#1e3a5f}.btn-configure{background:linear-gradient(135deg,#1e3a5f,#2d5a87);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1.2rem;font-weight:600;padding:16px 32px;transition:transform .2s,box-shadow .2s}.btn-configure:hover{box-shadow:0 8px 25px #1e3a5f66;transform:translateY(-2px)}.config-error{background:#fff0f0;border:1px solid #fcc;border-radius:8px;color:#c00;margin-bottom:24px;padding:12px 20px}.config-help{background:#f0f4f8;border-radius:12px;margin-top:24px;padding:20px;text-align:left}.config-help h3{color:#1e3a5f;font-size:1rem;margin:0 0 12px}.config-help ol{color:#555;margin:0;padding-left:20px}.config-help li{margin-bottom:8px}.scanner-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;display:flex;justify-content:space-between;padding:16px 24px}.header-logo img{height:50px}.header-time{text-align:center}.current-time-display .time{color:#fff;font-size:2rem;font-weight:700}.current-time-display .date{color:#fffc;font-size:1rem;text-transform:capitalize}.btn-settings{background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;padding:10px 20px;transition:background .2s}.btn-settings:hover{background:#ffffff4d}.mode-selector{display:flex;gap:12px;justify-content:center;padding:16px}.mode-btn{background:#ffffff1a;border:2px solid #fff3;border-radius:50px;color:#ffffffb3;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 32px;transition:all .3s}.mode-btn:hover{background:#fff3;color:#fff}.mode-btn.active{background:#fff;border-color:#fff;color:#1e3a5f}.scanner-main{align-items:center;display:flex;flex:1 1;justify-content:center;padding:24px;position:relative}.scan-waiting{color:#fff;text-align:center}.qr-reader-container{background:#000;border-radius:16px;margin:0 auto 24px;max-width:90vw;overflow:hidden;width:350px!important}#qr-reader{border:none!important}#qr-reader video{border-radius:12px}#qr-reader__scan_region{background:#0000!important}#qr-reader__dashboard{display:none!important}.scan-instruction{color:#ffffffe6;font-size:1.2rem;margin-top:16px}.nfc-icon{animation:pulse 2s infinite;color:#fffc}@keyframes pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.scan-waiting h2{font-size:2rem;font-weight:600;margin:24px 0 12px}.scan-result-overlay{align-items:center;animation:fadeIn .3s ease;background:#000000d9;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:100}.scan-result{animation:fadeIn .3s ease;border-radius:24px;min-width:400px;padding:48px;text-align:center}.scan-result.success{background:#4caf5033;border:3px solid #4caf50}.scan-result.error{background:#f4433633;border:3px solid #f44336}.result-icon{align-items:center;border-radius:50%;display:flex;font-size:48px;height:100px;justify-content:center;margin:0 auto 24px;width:100px}.success-icon{background:#4caf50;color:#fff}.error-icon{background:#f44336;color:#fff}.scan-result h2{color:#fff;font-size:2rem;margin:0 0 16px}.result-type{color:#ffffffe6;font-size:1.5rem;font-weight:600;margin-bottom:12px}.result-time{color:#ffffffb3;font-size:1.2rem}.result-message{color:#fffc;font-size:1rem;margin-top:12px}.scanner-config-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:100}.scanner-config-panel{background:#fff;border-radius:20px;min-width:300px;padding:32px;text-align:center}.scanner-config-panel h3{color:#333;margin:0 0 16px}.scanner-config-panel p{color:#666;margin-bottom:24px}.config-actions{display:flex;gap:12px;justify-content:center}.btn-close{background:#1e3a5f}.btn-close,.btn-reset{border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;padding:12px 24px}.btn-reset{background:#f44336}.scanner-error-toast{align-items:center;background:#f44336;border-radius:12px;bottom:24px;box-shadow:0 4px 20px #0000004d;color:#fff;display:flex;gap:16px;left:50%;padding:16px 24px;position:fixed;transform:translateX(-50%);z-index:200}.scanner-error-toast button{background:#0000;border:none;color:#fff;cursor:pointer;font-size:1.5rem;line-height:1;padding:0}.code-entry-container{align-items:center;display:flex;flex-direction:column;gap:30px;padding:20px}.code-display{text-align:center}.code-digits{display:flex;gap:8px;justify-content:center;margin-bottom:10px}.code-digit{background:#ffffff26;border:2px solid #ffffff4d;border-radius:8px;color:#fff;font-size:1.6rem;transition:all .2s}.code-digit.filled{background:#ffffff40;border-color:#4caf50;box-shadow:0 0 10px #4caf5066}.code-instruction{color:#fffc;font-size:.95rem;margin:0}.keypad{flex-direction:column;max-width:260px}.keypad,.keypad-row{display:flex;gap:8px}.keypad-row{justify-content:center}.keypad-btn{background:#fffffff2;border-radius:10px;box-shadow:0 3px 10px #0003;font-weight:600;height:55px;transition:all .15s}.keypad-btn:hover{box-shadow:0 5px 15px #0000004d;transform:translateY(-2px)}.keypad-btn:active{box-shadow:0 2px 8px #0003;transform:translateY(1px)}.keypad-clear{background:#ff9800;color:#fff}.keypad-back{background:#f44336;color:#fff}.keypad-submit{background:#9e9e9e}.keypad-submit.active{animation:pulse-green 1.5s infinite;background:#4caf50}.keypad-submit:disabled{opacity:.7}@keyframes pulse-green{0%,to{box-shadow:0 3px 10px #4caf5066}50%{box-shadow:0 3px 20px #4caf50b3}}.scanner-dual-mode{align-items:stretch;flex:1 1;flex-direction:row;gap:30px;min-height:0}.scanner-dual-mode,.scanner-qr-section{display:flex;justify-content:center;padding:20px}.scanner-qr-section{align-items:center;background:#0003;border-radius:20px;flex:1 1;flex-direction:column;max-width:500px}.scanner-qr-section .qr-reader-container{border-radius:16px;max-width:400px!important;min-height:350px!important;overflow:hidden;width:100%!important}.scanner-qr-section .qr-reader-container video{border-radius:16px}.photo-camera-section{align-items:center;display:flex;flex-direction:column;margin-bottom:15px}.photo-camera-preview{background:#0000004d;border:2px solid #ffffff4d;border-radius:12px;height:120px;object-fit:cover;width:160px}.camera-label{color:#ffffffb3;font-size:.85rem;margin-top:5px}.scanner-keypad-section{align-items:center;background:#ffffff1a;border-radius:20px;display:flex;flex-direction:column;min-width:280px;padding:25px}.scanner-keypad-section h3{color:#fff;font-size:1.3rem;font-weight:600;margin:0 0 15px}.code-display{display:flex;gap:8px;margin-bottom:20px}.code-digit{align-items:center;background:#fff3;border-radius:10px;color:#fff6;display:flex;font-size:1.5rem;font-weight:700;height:50px;justify-content:center;width:40px}.code-digit.filled{background:#fff;color:#1e3a5f}.keypad-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);margin-bottom:15px}.keypad-btn{background:#ffffffe6;border:none;border-radius:12px;color:#1e3a5f;cursor:pointer;font-size:1.5rem;font-weight:700;height:60px;transition:all .15s ease;width:70px}.keypad-btn:hover{background:#fff;transform:scale(1.05)}.keypad-btn:active{transform:scale(.95)}.keypad-btn.clear{background:#ff6b6b;color:#fff}.keypad-btn.backspace{background:#ffc107;color:#333}.keypad-submit{background:#4caf50;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1.2rem;font-weight:700;padding:15px;transition:all .2s ease;width:100%}.keypad-submit:disabled{background:#ffffff4d;cursor:not-allowed}.keypad-submit:not(:disabled):hover{background:#45a049;transform:translateY(-2px)}.scanner-keypad-only{align-items:center;background:#ffffff1a;border-radius:24px;display:flex;flex-direction:column;margin:0 auto;max-width:400px;padding:30px 50px}.scanner-keypad-only h2{color:#fff;font-size:1.8rem;font-weight:700;margin:0 0 10px}.scanner-keypad-only .keypad-instruction{color:#ffffffb3;font-size:1.1rem;margin:0 0 20px}.scanner-keypad-only .code-display.large{gap:12px;margin-bottom:25px}.scanner-keypad-only .code-display.large .code-digit{border-radius:12px;font-size:1.8rem;height:60px;width:50px}.scanner-keypad-only .keypad-grid.large{gap:12px;margin-bottom:20px}.scanner-keypad-only .keypad-grid.large .keypad-btn{border-radius:14px;font-size:1.8rem;height:70px;width:85px}.scanner-keypad-only .keypad-submit.large{border-radius:14px;font-size:1.4rem;padding:18px 40px}.scanner-separator{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:0 20px}.scanner-separator span{background:#fff3;border-radius:50%;color:#fff;font-size:1.1rem;font-weight:700;padding:15px 20px}.scanner-code-section{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:15px;max-width:350px}.photo-notice{color:#fff9;font-size:.8rem;margin:5px 0 0;text-align:center}@media (max-width:768px){.config-container{padding:32px 24px}.config-container h1{font-size:1.5rem}.qr-reader-container{width:280px!important}.scan-result{min-width:auto;width:90%}.current-time-display .time{font-size:1.5rem}.current-time-display .date{font-size:.85rem}.scanner-dual-mode{flex-direction:column;gap:15px;padding:10px}.scanner-qr-section{max-width:100%;padding:10px}.scanner-qr-section .qr-reader-container{max-width:300px!important;min-height:280px!important}.scanner-keypad-section{min-width:260px;padding:15px}.keypad-btn{font-size:1.3rem;height:50px;width:60px}}@media (min-width:768px) and (max-width:1024px){.qr-reader-container{width:400px!important}.scan-result{min-width:450px}.scanner-dual-mode{gap:25px}}@media (min-width:1200px){.scanner-qr-section .qr-reader-container{max-width:450px!important;min-height:400px!important}.scanner-keypad-section{min-width:320px;padding:30px}.keypad-btn{font-size:1.8rem;height:70px;width:80px}}.affiliation-modal-overlay{align-items:center;animation:fadeIn .2s ease;background:#000000d9;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.affiliation-modal{animation:slideUp .3s ease;background:#fff;border-radius:20px;display:flex;flex-direction:column;max-height:80vh;max-width:500px;overflow:hidden;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.affiliation-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:25px;text-align:center}.affiliation-header h2{font-size:1.5rem;margin:0 0 10px}.affiliation-header p{font-size:1rem;margin:0;opacity:.9}.pending-nfc-id{background:#fff3;border-radius:10px;font-size:.9rem;margin-top:15px;padding:10px 15px}.pending-nfc-id code{background:#0003;border-radius:4px;font-family:Courier New,monospace;letter-spacing:1px;margin-left:5px;padding:3px 8px}.affiliation-search{border-bottom:1px solid #eee;padding:15px 20px}.affiliation-search-input{border:2px solid #e0e0e0;border-radius:12px;font-size:1.1rem;outline:none;padding:15px 20px;transition:border-color .2s;width:100%}.affiliation-search-input:focus{border-color:#667eea}.affiliation-employees-list{flex:1 1;max-height:350px;overflow-y:auto;padding:10px}.no-employees{color:#999;font-size:1.1rem;padding:40px;text-align:center}.employee-item{align-items:center;background:#f8f9fa;border:2px solid #0000;border-radius:12px;cursor:pointer;display:flex;font-size:1.1rem;justify-content:space-between;margin-bottom:8px;padding:18px 20px;text-align:left;transition:all .2s;width:100%}.employee-item:hover{background:#e8f4fd;border-color:#667eea;transform:translateX(5px)}.employee-item:active{transform:scale(.98)}.employee-item.has-nfc{background:#fff8e1}.employee-item.has-nfc:hover{background:#fff3c4;border-color:#ffa000}.employee-name{color:#333;font-weight:500}.nfc-badge-small{background:#ff9800;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;padding:4px 10px}.affiliation-actions{border-top:1px solid #eee;padding:20px;text-align:center}.btn-cancel-affiliation{background:#f5f5f5;border:2px solid #ddd;border-radius:12px;color:#666;cursor:pointer;font-size:1.1rem;padding:15px 40px;transition:all .2s}.btn-cancel-affiliation:hover{background:#e0e0e0;border-color:#bbb}.affiliation-loading{align-items:center;background:#fffffff2;bottom:0;color:#667eea;display:flex;flex-direction:column;font-size:1.2rem;gap:20px;justify-content:center;left:0;position:absolute;right:0;top:0}.affiliation-loading .spinner{animation:spin 1s linear infinite;border:4px solid #e0e0e0;border-radius:50%;border-top-color:#667eea;height:50px;width:50px}@media (max-width:600px){.affiliation-modal{border-radius:15px;max-height:90vh;width:95%}.affiliation-header{padding:20px}.affiliation-header h2{font-size:1.3rem}.employee-item{font-size:1rem;padding:15px}}.main-nav .nav-item.has-anomalies{animation:none!important;background:linear-gradient(135deg,red,#ee5a24)!important;border:2px solid red!important;box-shadow:0 0 12px 2px #f00c!important;color:#fff!important;position:relative;z-index:10!important}*{box-sizing:border-box}body{background:#f5f7fa;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0;min-height:100vh}.App,.app-sidebar{display:flex;min-height:100vh}.app-sidebar{background:linear-gradient(180deg,#0d1530,#1a2345);box-shadow:4px 0 20px #00000026;flex-direction:column;left:0;padding:0;position:fixed;top:0;width:240px;z-index:100}.sidebar-logo{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;justify-content:center;overflow:hidden;padding:0;position:relative}.sidebar-logo img{cursor:pointer;filter:drop-shadow(0 2px 8px rgba(30,60,114,.3));height:180px;object-fit:contain;transition:all .3s ease;width:230px}.sidebar-logo img:hover{filter:drop-shadow(0 4px 20px rgba(74,144,226,.6)) brightness(1.1);transform:scale(1.03)}.sidebar-logo:after{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;pointer-events:none;position:absolute;top:0;transition:left .5s ease;width:50%}.sidebar-logo:hover:after{left:100%}.sidebar-nav{flex:1 1;overflow-y:auto;padding:20px 0}.sidebar-section-title{color:#fff6;font-size:11px;font-weight:600;letter-spacing:1px;margin:0;padding:15px 20px 8px;text-transform:uppercase}.sidebar-nav-btn{align-items:center;background:#0000;border:none;color:#ffffffb3;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:12px;padding:12px 20px;position:relative;text-align:left;transition:all .2s ease;width:100%}.sidebar-nav-btn:hover{background:#ffffff14;color:#fff}.sidebar-nav-btn.active{background:linear-gradient(90deg,#4a90e24d,#0000);border-left:3px solid #4a90e2;color:#4a90e2}.sidebar-nav-btn.active:before{background:#4a90e2;bottom:0;content:"";left:0;position:absolute;top:0;width:3px}.sidebar-nav-btn .nav-icon{flex-shrink:0;height:20px;width:20px}.sidebar-nav-btn .badge-count{background:#ff4757;border-radius:10px;color:#fff;font-size:11px;font-weight:700;margin-left:auto;min-width:20px;padding:2px 8px;text-align:center}.sidebar-nav-btn .badge-count.badge-pending{background:#ff9500}.sidebar-nav-btn.has-pending{color:#ff9500}.sidebar-nav-btn.has-anomalies{color:#ff6b6b}.app-content{background:#f5f7fa;flex:1 1;margin-left:240px;min-height:100vh}.app-content.no-sidebar{margin-left:0}.app-header{align-items:center;background:#fff;border-bottom:1px solid #e8ecf1;display:flex;justify-content:flex-end;padding:15px 30px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.user-menu{position:relative}.user-menu-trigger{align-items:center;background:#f5f7fa;border:1px solid #e8ecf1;border-radius:10px;cursor:pointer;display:flex;gap:10px;padding:8px 16px;transition:all .2s ease}.user-menu-trigger:hover{background:#eef1f6;border-color:#d0d7e2}.user-avatar{align-items:center;background:linear-gradient(135deg,#1e3c72,#2a5298);border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:600;height:36px;justify-content:center;width:36px}.user-info{align-items:flex-start;display:flex;flex-direction:column}.user-name{color:#1a2b4a;font-size:14px;font-weight:600}.user-role{color:#6b7c93;font-size:12px}.user-menu-arrow{color:#6b7c93;height:16px;transition:transform .2s ease;width:16px}.user-menu.open .user-menu-arrow{transform:rotate(180deg)}.user-dropdown{background:#fff;border:1px solid #e8ecf1;border-radius:12px;box-shadow:0 10px 40px #0000001f;min-width:200px;opacity:0;position:absolute;right:0;top:calc(100% + 8px);transform:translateY(-10px);transition:all .2s ease;visibility:hidden;z-index:1000}.user-menu.open .user-dropdown{opacity:1;transform:translateY(0);visibility:visible}.user-dropdown-item{align-items:center;background:none;border:none;color:#1a2b4a;cursor:pointer;display:flex;font-size:14px;gap:10px;padding:12px 16px;text-align:left;transition:background .2s ease;width:100%}.user-dropdown-item:first-child{border-radius:12px 12px 0 0}.user-dropdown-item:last-child{border-radius:0 0 12px 12px}.user-dropdown-item:hover{background:#f5f7fa}.user-dropdown-item.logout{border-top:1px solid #e8ecf1;color:#dc3545}.user-dropdown-item .dropdown-icon{height:18px;width:18px}.app-main{background:#f5f7fa;min-height:calc(100vh - 70px);padding:30px}.app-footer{color:#6b7c93;font-size:13px;padding:25px 0;text-align:center}.loading-screen{align-items:center;background:#f5f7fa;display:flex;flex-direction:column;justify-content:center;min-height:100vh}.spinner{animation:spin 1s linear infinite;border:4px solid #e8ecf1;border-radius:50%;border-top-color:#1e3c72;height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.loading-screen p{color:#1a2b4a;font-size:16px;margin-top:20px}.error-banner{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#dc2626;display:flex;justify-content:space-between;margin:0 30px 20px;padding:15px 20px}.error-banner button{background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px;transition:all .2s ease}.error-banner button:hover{background:#b91c1c}.mobile-menu-btn{background:linear-gradient(135deg,#0d1530,#1a2345);border:none;border-radius:12px;box-shadow:0 4px 15px #0000004d;color:#fff;cursor:pointer;display:none;font-size:20px;height:45px;left:15px;position:fixed;top:15px;transition:all .3s ease;width:45px;z-index:1100}.mobile-menu-btn:hover{box-shadow:0 6px 20px #0006;transform:scale(1.05)}.mobile-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:999}@media (max-width:1024px){.app-sidebar{width:70px}.app-sidebar .sidebar-nav-btn span{display:none}.app-sidebar .sidebar-logo img{height:35px}.app-content{margin-left:70px}.sidebar-section-title{display:none}}@media (max-width:768px){.mobile-menu-btn{align-items:center;display:flex;justify-content:center}.app-sidebar{bottom:0;display:flex;flex-direction:column;left:-280px;position:fixed;top:0;transition:left .3s ease;width:260px;z-index:1000}.app-sidebar.mobile-open{box-shadow:5px 0 30px #0000004d;left:0}.app-sidebar.mobile-open .sidebar-nav-btn span{display:inline}.app-sidebar.mobile-open .sidebar-section-title{display:block}.app-sidebar.mobile-open .sidebar-logo img{height:80px}.app-content{margin-left:0}.app-header{padding-left:70px}.app-main{padding:15px}.user-menu{margin-right:10px}.user-dropdown{min-width:180px;right:-10px}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalSlideIn .3s ease;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0003;max-height:90vh;max-width:500px;overflow-y:auto;padding:24px;width:90%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.modal-header h2{color:#1e293b;font-size:1.3rem;margin:0}.modal-close{background:none;border:none;color:#64748b;cursor:pointer;font-size:1.8rem;line-height:1;padding:0}.modal-close:hover{color:#1e293b}.modal-content .form-group{margin-bottom:16px}.modal-content .form-group label{color:#374151;display:block;font-size:.9rem;font-weight:500;margin-bottom:6px}.modal-content .form-group input{border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;padding:12px 14px;transition:border-color .2s,box-shadow .2s;width:100%}.modal-content .form-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.modal-actions{border-top:1px solid #e2e8f0;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:16px}.btn-cancel{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s}.btn-cancel:hover{background:#e2e8f0}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:10px 20px;transition:all .2s}.btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px)}.error-message{background:#fef2f2;color:#dc2626}.error-message,.success-message{border-radius:8px;font-size:.9rem;margin:10px 0;padding:12px 16px}.success-message{background:#dcfce7;color:#16a34a}.password-modal{max-width:400px}