.app{min-height:100vh}.input-group{display:flex;flex-direction:column;gap:6px}.input-label{color:#2d3748;font-size:.9rem;font-weight:600}.input-wrap{position:relative}.input-field{background:#ebf4f5;border:1px solid #e2e8f0;border-radius:8px;color:#2d3748;font-family:inherit;font-size:.95rem;padding:10px 14px;transition:border-color .2s,box-shadow .2s;width:100%}.input-field::placeholder{color:#718096}.input-field:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.input-field--error{border-color:#e74c3c}.input-field--with-icon{padding-right:44px}.input-icon-btn{background:none;border:none;color:#64748b;cursor:pointer;font-size:.9rem;padding:4px;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.input-icon-btn:hover{color:#334155}.input-error-msg{color:#e74c3c;font-size:.85rem}.login-page{align-items:center;background:#1a202c;color:#2d3748;display:flex;flex-direction:column;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:center;min-height:100vh;padding:40px 20px}.logo-block{margin-bottom:32px;text-align:center}.logo-block img{display:block;height:auto;margin:0 auto 12px;width:130px}.system-title{color:#a0aec0;font-size:.95rem;font-weight:500}.login-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000040;max-width:420px;padding:32px;width:100%}.login-card h1{color:#1a202c;font-size:1.5rem;font-weight:700;margin-bottom:24px}.login-form-group{margin-bottom:20px}.login-submit{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:1rem;font-weight:600;margin-bottom:24px;margin-top:8px;padding:14px;transition:background .2s;width:100%}.login-submit:hover{background:#2563eb}.login-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.9rem;margin-bottom:16px;padding:12px}.help-text{color:#4a5568;font-size:.9rem;margin-bottom:4px}.help-link{color:#3b82f6;display:inline-block;font-size:.9rem;margin-bottom:20px;text-decoration:none}.help-link:hover{text-decoration:underline}.info-box{align-items:flex-start;background:#dbeafe;border:1px solid #93c5fd;border-radius:8px;display:flex;gap:12px;margin-bottom:16px;padding:14px 16px}.info-box-icon{align-items:center;background:#3b82f6;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.75rem;font-weight:700;height:24px;justify-content:center;width:24px}.info-box-content strong{color:#1e3a5f;display:block;font-size:.9rem;margin-bottom:4px}.info-box-content span{color:#1e40af;font-size:.85rem;line-height:1.4}.login-footer{border-top:1px solid #ffffff14;color:#718096;font-size:.85rem;margin-top:40px;padding:20px;text-align:center}.login-footer a{color:#a0aec0;text-decoration:none}.login-footer a:hover{text-decoration:underline}.login-footer .footer-links{margin-top:8px}.login-footer .footer-links span{color:#4a5568;margin:0 8px}.login-footer .footer-made-with{align-items:center;display:flex;gap:4px;justify-content:center;margin-top:12px}.df-container{display:flex;flex-direction:column;gap:20px}.df-filters-card{background:#fff;border-radius:10px;box-shadow:0 2px 10px #00000014;padding:18px 20px}.df-filters-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px}.df-filter-group{display:flex;flex-direction:column;gap:6px}.df-filter-group label{color:#5a6c7d;font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.df-preset-btns{display:flex;gap:6px}.df-preset-btn{background:#fff;border:1px solid #d0d5dd;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;padding:7px 14px;transition:all .2s}.df-preset-btn:hover{border-color:#3498db;color:#3498db}.df-preset-btn.active{background:#3498db;border-color:#3498db;color:#fff;font-weight:600}.df-input{background:#fff;border:1px solid #d0d5dd;border-radius:6px;color:#374151;font-size:.9rem;min-width:160px;outline:none;padding:8px 12px;transition:border-color .2s}.df-input:focus{border-color:#3498db}.df-filter-action{justify-content:flex-end}.df-apply-btn{align-items:center;background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:6px;padding:8px 20px;transition:background .2s}.df-apply-btn:hover:not(:disabled){background:#2980b9}.df-apply-btn:disabled{cursor:not-allowed;opacity:.65}.df-error{align-items:center;background:#fff5f5;border:1px solid #fed7d7;border-radius:8px;color:#c53030;display:flex;font-size:.95rem;gap:10px;padding:14px 18px}.df-loading-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.df-kpi-skeleton{animation:df-shimmer 1.4s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;border-radius:10px;height:110px}@keyframes df-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.df-kpi-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.df-kpi-card{align-items:center;background:#fff;border-radius:10px;box-shadow:0 2px 10px #00000014;display:flex;justify-content:space-between;padding:22px 20px;transition:transform .2s,box-shadow .2s}.df-kpi-card:hover{box-shadow:0 6px 18px #0000001f;transform:translateY(-4px)}.df-kpi-info h3{color:#7f8c8d;font-size:.85rem;font-weight:500;margin-bottom:8px}.df-kpi-value{color:#2c3e50;font-size:1.9rem;font-weight:700;line-height:1;margin-bottom:6px}.df-kpi-info small{color:#95a5a6;font-size:.8rem}.df-kpi-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:1.6rem;height:56px;justify-content:center;width:56px}.df-kpi-card.blue .df-kpi-icon{background:#e3f2fd;color:#2196f3}.df-kpi-card.green .df-kpi-icon{background:#e8f5e9;color:#4caf50}.df-kpi-card.orange .df-kpi-icon{background:#fff3e0;color:#ff9800}.df-kpi-card.purple .df-kpi-icon{background:#f3e5f5;color:#9c27b0}.df-charts-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}.df-chart-card{background:#fff;border-radius:12px;box-shadow:0 2px 14px #00000014;padding:22px 24px 24px}.df-chart-header{align-items:center;border-bottom:1px solid #f0f2f5;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:14px}.df-chart-header h3{align-items:center;color:#2c3e50;display:flex;font-size:.95rem;font-weight:700;gap:10px;margin:0}.df-chart-title-icon{align-items:center;border-radius:8px;color:#fff;display:flex;flex-shrink:0;font-size:.8rem;height:32px;justify-content:center;width:32px}.df-chart-title-icon.blue{background:linear-gradient(135deg,#3498db,#2980b9)}.df-chart-title-icon.green{background:linear-gradient(135deg,#2ecc71,#27ae60)}.df-chart-wrapper{height:320px;position:relative;width:100%}.df-chart-wrapper canvas{max-height:320px}.df-no-data{color:#aaa;font-size:.95rem;padding:60px 0;text-align:center}.df-summary-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.df-table-card{background:#fff;border-radius:10px;box-shadow:0 2px 10px #00000014;overflow:hidden;padding:20px}.df-pivot-card{grid-column:1/-1}.df-table-header{flex-wrap:wrap;justify-content:space-between;margin-bottom:16px}.df-table-header,.df-table-header h3{align-items:center;display:flex;gap:8px}.df-table-header h3{color:#2c3e50;font-size:1.05rem;font-weight:600;margin:0}.df-table-header h3 i{color:#3498db}.df-table-subtitle{color:#7f8c8d;font-size:.82rem}.df-table-scroll{overflow-x:auto}.df-table{border-collapse:collapse;font-size:.9rem;width:100%}.df-table th{background:#f8f9fa;border-bottom:2px solid #dee2e6;color:#555;font-weight:600;padding:10px 12px;text-align:left;white-space:nowrap}.df-table td{border-bottom:1px solid #f0f0f0;color:#374151;padding:10px 12px}.df-table tr:last-child td{border-bottom:none}.df-table tr:hover td{background:#f8f9fa}.df-time-badge{background:#dbeafe;border-radius:4px;color:#1d4ed8;display:inline-block;font-size:.85rem;font-weight:600;padding:3px 10px}.df-time-badge.green{background:#dcfce7;color:#166534}.df-pivot-table{min-width:600px}.df-pivot-table .df-team-col{background:#fff;left:0;min-width:160px;position:sticky;z-index:1}.df-pivot-table th.df-team-col,.df-pivot-table tr:hover .df-team-col{background:#f8f9fa}.df-team-name{color:#2c3e50;font-weight:600}.df-cell-value{color:#1d4ed8;font-weight:500;text-align:center}.df-cell-empty{color:#d0d5dd;text-align:center}.df-search-box{display:flex;gap:8px}.df-search-box input{border:1px solid #d0d5dd;border-radius:6px;color:#374151;font-family:inherit;font-size:.88rem;min-width:200px;outline:none;padding:7px 14px;transition:border-color .2s}.df-search-box input:focus{border-color:#3498db}.df-btn-filter{background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.88rem;padding:7px 14px;transition:background .2s}.df-btn-filter:hover{background:#2980b9}.df-overtime-badge{border-radius:12px;display:inline-block;font-size:.82rem;font-weight:600;padding:3px 10px}.df-overtime-badge.none{background:#d4edda;color:#155724}.df-overtime-badge.low{background:#fff3cd;color:#856404}.df-overtime-badge.high{background:#f8d7da;color:#721c24}.df-idling-time{color:#e67e22;font-size:.88rem;font-weight:600}.df-driving-time{color:#3498db;font-size:.88rem;font-weight:600}.df-cell-icon{color:#3498db;margin-right:6px}.df-cell-poi-icon{color:#e74c3c;margin-right:6px}.df-action-btn{background:none;border:1px solid #d0d5dd;border-radius:4px;color:#3498db;cursor:pointer;font-size:.82rem;margin-right:4px;padding:5px 8px;transition:all .2s}.df-action-btn:hover{background:#3498db;border-color:#3498db;color:#fff}.df-pagination{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:18px}.df-pagination button{background:#fff;border:1px solid #d0d5dd;border-radius:6px;color:#2c3e50;cursor:pointer;font-family:inherit;font-size:.88rem;padding:7px 13px;transition:all .2s}.df-pagination button.active,.df-pagination button:hover{background:#3498db;border-color:#3498db;color:#fff}.df-pagination button:disabled{cursor:not-allowed;opacity:.5}.df-report-filters{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}.df-report-filter-group{display:flex;flex-direction:column;gap:4px}.df-report-filter-group label{color:#5a6c7d;font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.df-report-cat-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.df-report-cat-btn{background:#fff;border:1px solid #d0d5dd;border-radius:20px;color:#374151;cursor:pointer;font-size:.85rem;font-weight:500;padding:6px 16px;transition:all .2s}.df-report-cat-btn:hover{border-color:#3498db;color:#3498db}.df-report-cat-btn.active{color:#fff;font-weight:600}.df-report-matrix{min-width:900px}.df-report-team-cell{min-width:100px}.df-report-team-cell,.df-report-total-col{color:#2c3e50;font-weight:700;white-space:nowrap}.df-report-total-col{background:#f8f9fa}.df-report-total-row td{background:#f0f4f8;border-top:2px solid #dee2e6;color:#2c3e50;font-weight:700}.df-badge-late{background:#fef2f2;color:#dc2626}.df-badge-early,.df-badge-late{border-radius:12px;display:inline-block;font-size:.85rem;font-weight:700;min-width:36px;padding:3px 12px;text-align:center}.df-badge-early{background:#fffbeb;color:#d97706}@media (max-width:900px){.df-charts-grid,.df-summary-grid{grid-template-columns:1fr}}@media (max-width:600px){.df-filters-row{align-items:stretch;flex-direction:column}.df-preset-btns{flex-wrap:wrap}.df-kpi-grid{grid-template-columns:1fr 1fr}}.loader{align-items:center;display:flex;justify-content:center;padding:20px}.loader__spinner{animation:spin .8s linear infinite;border:3px solid #e8e8e8;border-radius:50%;border-top-color:#3498db;height:36px;width:36px}.loader__spinner--sm{border-width:2px;height:20px;width:20px}.loader__spinner--lg{border-width:4px;height:56px;width:56px}@keyframes spin{to{transform:rotate(1turn)}}.sync-overlay{background:#ffffffe6;inset:0;justify-content:center;position:fixed;z-index:9999}.sync-complete,.sync-loading,.sync-overlay{align-items:center;display:flex;flex-direction:column;gap:20px}.sync-text{color:#2c3e50;font-size:1.1rem;font-weight:600}.sync-check-wrap{align-items:center;animation:pop .45s ease-out;background:linear-gradient(135deg,#27ae60,#2ecc71);border-radius:50%;box-shadow:0 4px 20px #27ae6066;color:#fff;display:flex;font-size:28px;height:64px;justify-content:center;width:64px}@keyframes pop{0%{opacity:0;transform:scale(0)}55%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.vehicles-page-title{color:#2c3e50;font-size:1.8rem;font-weight:700}.vf-bar{background:#fff;border-left:4px solid #3498db;border-radius:12px;box-shadow:0 2px 12px #00000012;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:14px 20px}.vf-bar,.vf-field{align-items:center;display:flex}.vf-field{position:relative}.vf-icon{color:#3498db;font-size:.85rem;left:10px;pointer-events:none;position:absolute}.vf-input,.vf-select{background:#f8fbff;border:1px solid #d6eaf8;border-radius:8px;color:#2c3e50;font-family:inherit;font-size:.88rem;outline:none;padding:8px 12px 8px 32px;transition:border-color .2s,box-shadow .2s}.vf-input{width:220px}.vf-select{cursor:pointer;width:160px}.vf-input:focus,.vf-select:focus{background:#fff;border-color:#3498db;box-shadow:0 0 0 3px #3498db1f}.vf-reset{align-items:center;background:#f0f0f0;border:none;border-radius:6px;color:#555;cursor:pointer;display:flex;font-family:inherit;font-size:.85rem;gap:6px;padding:8px 14px;transition:background .2s}.vf-reset:hover{background:#e0e0e0}.vf-count{background:#e3f2fd;border-radius:20px;color:#1d6fa5;font-size:.78rem;font-weight:700;padding:3px 10px}.vf-add-team-btn{align-items:center;background:linear-gradient(135deg,#3498db,#5dade2);border:none;border-radius:8px;box-shadow:0 4px 12px #3498db59;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:.88rem;font-weight:600;gap:7px;margin-left:auto;padding:9px 18px;transition:filter .2s,box-shadow .2s;white-space:nowrap}.vf-add-team-btn:hover{box-shadow:0 6px 18px #3498db73;filter:brightness(1.08)}.team-cards-list{display:flex;flex-direction:column;gap:12px}.team-card{border-radius:12px;box-shadow:0 2px 12px #3498db24;overflow:hidden;transition:box-shadow .22s,transform .22s}.team-card:hover{box-shadow:0 6px 22px #3498db38;transform:translateY(-1px)}.team-card-header{align-items:center;background:linear-gradient(135deg,#3498db,#5dade2);cursor:pointer;display:flex;justify-content:space-between;padding:16px 22px;transition:filter .2s;-webkit-user-select:none;user-select:none}.team-card-header:hover{filter:brightness(1.06)}.team-card-left{align-items:center;display:flex;gap:12px}.team-card-icon{color:#ffffffd9;font-size:1.1rem}.team-card-hours{align-items:center;background:#00000024;border-radius:10px;color:#ffffffe6;display:flex;font-size:.76rem;gap:4px;padding:2px 9px}.team-card-name{color:#fff;font-size:1rem;font-weight:700;letter-spacing:.04em;text-shadow:0 1px 3px #00000026}.team-card-badge{background:#ffffff38;border:1px solid #ffffff6b;border-radius:20px;color:#fff;font-size:.75rem;font-weight:600;padding:3px 10px}.team-card-chevron{color:#ffffffe6;font-size:.9rem;transition:transform .25s ease}.team-card-chevron.open{transform:rotate(90deg)}.team-card-body{background:#f6fbff;border-top:2px solid #d6eaf8}.vehicles-table{border-collapse:collapse;font-size:.9rem;width:100%}.vehicles-table thead tr{background:#eaf4fb;border-bottom:2px solid #d6eaf8}.vehicles-table th{color:#1d6fa5;font-size:.78rem;font-weight:700;letter-spacing:.05em;padding:10px 20px;text-align:left;text-transform:uppercase;white-space:nowrap}.vehicles-table tbody tr{border-bottom:1px solid #e8f4fb;transition:background .15s}.vehicles-table tbody tr:last-child{border-bottom:none}.vehicles-table tbody tr:hover{background:#e8f4fb}.vehicles-table td{color:#4a5568;padding:11px 20px;white-space:nowrap}.vt-index{color:#bdc3c7;font-size:.82rem;width:40px}.vt-reg{color:#2c3e50;font-weight:600}.vt-reg i{color:#5dade2;margin-right:8px}.vt-actions{text-align:right;width:50px}.vt-remove-btn{align-items:center;background:#fff0f0;border:none;border-radius:6px;color:#e53e3e;cursor:pointer;display:inline-flex;font-size:.78rem;height:28px;justify-content:center;transition:background .2s,transform .15s;width:28px}.vt-remove-btn:hover:not(:disabled){background:#fed7d7;transform:scale(1.12)}.vt-remove-btn:disabled{cursor:not-allowed;opacity:.5}.vehicles-state-box{align-items:center;border-radius:12px;display:flex;font-size:1rem;font-weight:500;gap:12px;justify-content:center;padding:48px 24px}.vehicles-error{background:#fff5f5;border:1px solid #fbd0d0;color:#c0392b}.vehicles-error i{font-size:1.4rem}.vehicles-empty{background:#f0f8ff;border:1px dashed #b3d7ef;color:#5d9ec7}.vehicles-empty i{color:#85c1e9;font-size:1.4rem}.team-card-actions{align-items:center;display:flex;gap:14px}.team-card-add-btn{align-items:center;background:#fff3;border:1px solid #ffffff85;border-radius:20px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:.8rem;font-weight:600;gap:6px;padding:6px 14px;transition:background .2s,transform .15s;white-space:nowrap}.team-card-add-btn:hover{background:#ffffff59;transform:scale(1.04)}.vehicles-toast{animation:toast-in .3s ease;background:linear-gradient(135deg,#2ecc71,#27ae60);border-radius:10px;bottom:32px;box-shadow:0 6px 24px #2ecc7166;color:#fff;font-size:.9rem;font-weight:600;gap:10px;padding:12px 22px;right:32px;z-index:99999}.avt-backdrop,.vehicles-toast{align-items:center;display:flex;position:fixed}.avt-backdrop{background:#00000073;inset:0;justify-content:center;padding:20px;z-index:10000}.avt-modal{background:#fff;border-radius:14px;box-shadow:0 24px 64px #0003;max-width:460px;overflow:hidden;width:100%}.avt-header{background:linear-gradient(135deg,#3498db,#5dade2);justify-content:space-between;padding:20px 24px}.avt-header,.avt-header-left{align-items:center;display:flex}.avt-header-left{gap:14px}.avt-header-icon{color:#ffffffd9;font-size:1.5rem}.avt-title{color:#fff;font-size:1rem;font-weight:700;margin:0 0 2px}.avt-subtitle{color:#ffffffbf;font-size:.82rem;margin:0}.avt-close{align-items:center;background:#ffffff2e;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.9rem;height:32px;justify-content:center;transition:background .2s;width:32px}.avt-close:hover{background:#ffffff52}.avt-body{display:flex;flex-direction:column;gap:18px;padding:24px}.avt-error{align-items:center;background:#fff5f5;border:1px solid #fbd0d0;border-radius:6px;color:#c0392b;display:flex;font-size:.88rem;gap:8px;padding:10px 14px}.avt-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.avt-field{display:flex;flex-direction:column;gap:6px}.avt-label{color:#2c3e50;font-size:.85rem;font-weight:600}.avt-required{color:#e74c3c}.avt-input,.avt-select{border:1px solid #d6eaf8;border-radius:8px;color:#2c3e50;font-family:inherit;font-size:.9rem;outline:none;padding:10px 14px;transition:border-color .2s,box-shadow .2s}.avt-input--readonly{background:#f8f9fa;color:#7f8c8d;cursor:default}.avt-input:focus,.avt-select:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1f}.avt-select{cursor:pointer}.avt-footer{display:flex;gap:10px;justify-content:flex-end;padding-top:4px}.avt-btn-cancel{background:#fff;border:1px solid #ddd;border-radius:8px;color:#555;cursor:pointer;font-family:inherit;font-size:.9rem;padding:9px 20px;transition:background .2s}.avt-btn-cancel:hover:not(:disabled){background:#f8f9fa}.avt-btn-save{align-items:center;background:linear-gradient(135deg,#3498db,#5dade2);border:none;border-radius:8px;box-shadow:0 4px 12px #3498db4d;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:.9rem;font-weight:600;gap:7px;padding:9px 22px;transition:filter .2s}.avt-btn-save:hover:not(:disabled){filter:brightness(1.1)}.avt-btn-cancel:disabled,.avt-btn-save:disabled{cursor:not-allowed;opacity:.6}.vt-no-results{color:#95a5a6;font-size:.9rem;padding:28px!important;text-align:center}.param-page-title{color:#2c3e50;font-size:1.8rem;font-weight:700}.param-toast{align-items:center;animation:toast-in .3s ease;background:#2ecc71;border-radius:8px;bottom:32px;box-shadow:0 6px 20px #2ecc7159;color:#fff;display:flex;font-size:.9rem;font-weight:600;gap:10px;padding:12px 22px;position:fixed;right:32px;z-index:99999}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.param-section{background:#fff;border-radius:14px;box-shadow:0 4px 16px #00000014;overflow:hidden}.param-section-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:20px 24px}.param-section-title{align-items:center;color:#2c3e50;display:flex;font-size:1rem;font-weight:700;gap:10px}.param-section-title i{color:#3498db;font-size:1rem}.param-count{background:#e3f2fd;border-radius:20px;color:#1d6fa5;font-size:.78rem;font-weight:700;padding:2px 9px}.param-add-btn{align-items:center;background:linear-gradient(135deg,#3498db,#5dade2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:.88rem;font-weight:600;gap:7px;padding:9px 18px;transition:filter .2s}.param-add-btn:hover{filter:brightness(1.1)}.param-table-wrap{overflow-x:auto}.param-table{border-collapse:collapse;font-size:.9rem;width:100%}.param-table thead tr{background:#f8f9fa;border-bottom:2px solid #e8e8e8}.param-table th{color:#2c3e50;font-weight:600;padding:12px 20px;text-align:left;white-space:nowrap}.param-table tbody tr{border-bottom:1px solid #f0f0f0;transition:background .15s}.param-table tbody tr:last-child{border-bottom:none}.param-table tbody tr:hover{background:#f0f8ff}.param-table td{color:#4a5568;padding:12px 20px;vertical-align:middle}.param-td-index{color:#bdc3c7;font-size:.82rem;width:40px}.param-td-name{color:#2c3e50;font-weight:600}.param-td-location{color:#7f8c8d}.param-badge{border-radius:20px;display:inline-block;font-size:.78rem;font-weight:600;padding:3px 10px}.param-badge--active{background:#e8f8f0;color:#1e8449}.param-badge--inactive{background:#fdf2f2;color:#c0392b}.param-td-actions{align-items:center;display:flex;gap:8px}.param-action-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:.85rem;height:32px;justify-content:center;transition:filter .2s;width:32px}.param-action-btn--edit{background:#e3f2fd;color:#2980b9}.param-action-btn--delete{background:#fff5f5;color:#e53e3e}.param-action-btn:hover{filter:brightness(.92)}.param-empty{align-items:center;color:#95a5a6;display:flex;font-size:.95rem;gap:12px;justify-content:center;padding:48px 24px}.param-empty i{color:#bdc3c7;font-size:1.4rem}.pm-backdrop{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10000}.pm-modal{background:#fff;border-radius:14px;box-shadow:0 24px 64px #0003;max-width:480px;overflow:hidden;width:100%}.pm-modal--sm{max-width:400px}.pm-header{align-items:center;background:linear-gradient(135deg,#3498db,#5dade2);display:flex;justify-content:space-between;padding:20px 24px}.pm-header--danger{background:linear-gradient(135deg,#e53e3e,#c53030)}.pm-header-left{align-items:center;display:flex;gap:14px}.pm-header-icon{color:#ffffffd9;font-size:1.4rem}.pm-title{color:#fff;font-size:1rem;font-weight:700;margin:0 0 2px}.pm-subtitle{color:#ffffffbf;font-size:.82rem;margin:0}.pm-close{align-items:center;background:#ffffff2e;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.9rem;height:32px;justify-content:center;transition:background .2s;width:32px}.pm-close:hover{background:#ffffff52}.pm-body{display:flex;flex-direction:column;gap:16px;padding:24px}.pm-error{align-items:center;background:#fff5f5;border:1px solid #fbd0d0;border-radius:6px;color:#c0392b;display:flex;font-size:.88rem;gap:8px;padding:10px 14px}.pm-field{display:flex;flex-direction:column;gap:6px}.pm-label{color:#2c3e50;font-size:.85rem;font-weight:600}.pm-required{color:#e74c3c}.pm-input,.pm-select{border:1px solid #ddd;border-radius:8px;color:#2c3e50;font-family:inherit;font-size:.9rem;outline:none;padding:10px 14px;transition:border-color .2s}.pm-input:focus,.pm-select:focus{border-color:#3498db}.pm-select{cursor:pointer}.pm-confirm-text{color:#4a5568;font-size:.95rem;line-height:1.5;margin:0}.pm-footer{display:flex;gap:10px;justify-content:flex-end;padding-top:4px}.pm-btn-cancel{background:#fff;border:1px solid #ddd;border-radius:8px;color:#555;cursor:pointer;font-family:inherit;font-size:.9rem;padding:9px 20px;transition:background .2s}.pm-btn-cancel:hover:not(:disabled){background:#f8f9fa}.pm-btn-save{align-items:center;background:linear-gradient(135deg,#3498db,#5dade2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:.9rem;font-weight:600;gap:7px;padding:9px 22px;transition:filter .2s}.pm-btn-save:hover:not(:disabled){filter:brightness(1.1)}.pm-btn-delete{align-items:center;background:linear-gradient(135deg,#e53e3e,#c53030);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:.9rem;font-weight:600;gap:7px;padding:9px 22px;transition:filter .2s}.pm-btn-delete:hover:not(:disabled){filter:brightness(1.1)}.pm-btn-cancel:disabled,.pm-btn-delete:disabled,.pm-btn-save:disabled{cursor:not-allowed;opacity:.6}.sidebar{background:#2c3e50;color:#fff;height:100vh;left:0;overflow-x:hidden;overflow-y:auto;padding:20px 0;position:fixed;top:0;transition:width .3s;width:250px;z-index:1000}.sidebar.collapsed{width:70px}.sidebar-header{align-items:center;border-bottom:1px solid #34495e;display:flex;justify-content:space-between;padding:18px 20px}.sidebar-logo{display:block;max-height:48px;padding-left:10px;width:auto}.sidebar.collapsed .menu-text,.sidebar.collapsed .sidebar-logo{display:none}.toggle-btn{background:none;border:none;color:#fff;cursor:pointer;flex-shrink:0;font-size:1.2rem}.sidebar-menu{list-style:none;padding:20px 0}.sidebar-menu li{align-items:center;color:#ecf0f1;cursor:pointer;display:flex;gap:15px;padding:15px 20px;text-decoration:none;transition:background .2s}.sidebar-menu li:hover{background:#34495e}.sidebar-menu li.active{background:#3498db;border-left:4px solid #2980b9}.sidebar-menu i{font-size:1.2rem;min-width:20px;text-align:center}.menu-text{font-size:.95rem;white-space:nowrap}.main-content{display:flex;flex-direction:column;margin-left:250px;min-height:100vh;padding:20px;transition:margin-left .3s}.main-content.expanded{margin-left:70px}.page-header{align-items:center;background:#fff;border-radius:12px;border-top:3px solid #3498db;box-shadow:0 2px 16px #00000012;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:20px;padding:18px 24px}.page-header h1{color:#2c3e50;font-size:1.8rem}.dept-filter{align-items:center;background:#f4f7fb;border:1px solid #e0e7ef;border-radius:10px;display:flex;gap:10px;padding:6px 12px 6px 8px;transition:border-color .2s,box-shadow .2s}.dept-filter:focus-within{background:#fff;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.dept-filter-icon-wrap{align-items:center;background:#3498db;border-radius:7px;color:#fff;display:flex;flex-shrink:0;font-size:.75rem;height:30px;justify-content:center;width:30px}.dept-filter-body{display:flex;flex-direction:column;gap:1px}.dept-filter-label{color:#95a5a6;font-size:.68rem;font-weight:600;letter-spacing:.05em;line-height:1;text-transform:uppercase}.dept-filter-select{background:#0000;border:none;border-radius:0;color:#2c3e50;cursor:pointer;font-family:inherit;font-size:.88rem;font-weight:600;min-width:150px;outline:none;padding:0}.header-user-trigger{position:relative}.user-info{align-items:center;cursor:pointer;display:flex;gap:16px;-webkit-user-select:none;user-select:none}.header-datetime{font-feature-settings:"tnum";color:#5a6c7d;font-size:.95rem;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:.02em}.header-datetime .date-part{color:#2c3e50;font-weight:600}.header-datetime .time-part{color:#3498db;font-weight:600}.user-avatar{align-items:center;background:linear-gradient(135deg,#3498db,#2980b9);border-radius:50%;box-shadow:0 2px 8px #3498db59;color:#fff;display:flex;flex-shrink:0;font-size:.9rem;font-weight:700;height:42px;justify-content:center;width:42px}.header-username{color:#2c3e50;font-size:.95rem;font-weight:600}.user-dropdown{background:#fff;border:1px solid #0000000f;border-radius:8px;box-shadow:0 4px 20px #0000001f;min-width:180px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);z-index:1000}.user-dropdown-error{background:#fff5f5;border-bottom:1px solid #fde8e8;color:#e74c3c;font-size:.82rem;padding:8px 16px}.user-dropdown-item{align-items:center;background:none;border:none;color:#2c3e50;cursor:pointer;display:flex;font-family:inherit;font-size:.95rem;gap:10px;padding:12px 16px;text-align:left;transition:background .2s;width:100%}.user-dropdown-item:hover{background:#f5f6f8}.user-dropdown-item i{color:#3498db;width:20px}.user-dropdown-item.logout i{color:#e74c3c}.session-warning-backdrop{align-items:center;background:#0000008c;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10001}.session-warning-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000040;max-width:380px;padding:36px 32px;text-align:center;width:100%}.session-warning-icon{color:#f39c12;font-size:2.4rem;margin-bottom:16px}.session-warning-card h3{color:#2c3e50;font-size:1.25rem;font-weight:700;margin-bottom:8px}.session-warning-card p{color:#7f8c8d;font-size:.95rem;line-height:1.5;margin-bottom:16px}.session-countdown{font-feature-settings:"tnum";color:#e74c3c;font-size:2.8rem;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.05em;margin-bottom:28px}.logout-modal-backdrop{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:10000}.logout-modal-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;max-width:380px;padding:28px 32px;text-align:center;width:100%}.logout-icon{align-items:center;background:#e74c3c1f;border-radius:50%;color:#e74c3c;display:flex;font-size:1.4rem;height:52px;justify-content:center;margin:0 auto 20px;width:52px}.logout-modal-card h3{color:#2c3e50;font-size:1.2rem;font-weight:600;margin-bottom:10px}.logout-modal-card p{color:#7f8c8d;font-size:.95rem;line-height:1.5;margin-bottom:24px}.logout-modal-actions{display:flex;gap:12px;justify-content:center}.logout-modal-actions button{border:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:600;padding:12px 24px;transition:all .2s}.btn-logout-cancel{background:#ecf0f1;color:#2c3e50}.btn-logout-cancel:hover{background:#bdc3c7}.btn-logout-confirm{background:#e74c3c;color:#fff}.btn-logout-confirm:hover{background:#c0392b}.app-footer{align-items:center;border-top:1px solid #e8e8e8;color:#718096;display:flex;flex-direction:column;font-size:.78rem;gap:4px;justify-content:center;line-height:1;margin-top:auto;padding:10px 24px}.app-footer>div{line-height:1;margin-top:10px;padding:0}.footer-made-with{align-items:center;display:flex;gap:4px;line-height:1}.footer-heart{animation:heartbeat 1.4s ease infinite;color:#e74c3c;font-size:.72rem}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.25)}28%{transform:scale(1)}42%{transform:scale(1.18)}56%{transform:scale(1)}}.footer-virmatics-link{color:#3498db;font-weight:700;text-decoration:none;transition:color .2s}.footer-virmatics-link:hover{color:#2980b9;text-decoration:underline}@media (max-width:768px){.main-content{margin-left:70px}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fa;color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}code{font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,Consolas,DejaVu Sans Mono,monospace}
/*# sourceMappingURL=main.febe5efa.css.map*/