* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Inter',system-ui,sans-serif; background:#f4f7fc; }
.loading-overlay { position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(255,255,255,0.9); display:none; justify-content:center; align-items:center; z-index:9999; }
.loading-overlay.show { display:flex; }
.loader-spinner { background:white; padding:30px 40px; border-radius:16px; box-shadow:0 10px 40px rgba(0,0,0,0.1); text-align:center; }
.toast-container { position:fixed; top:10px; left:50%; transform:translateX(-50%); z-index:9999; width:90%; max-width:350px; }
.toast { font-size:.85rem; border-radius:12px; box-shadow:0 4px 15px rgba(0,0,0,0.2); }
.badge-status { padding:3px 12px; border-radius:40px; font-weight:600; font-size:.65rem; }
.badge-status.pendiente { background:#ffeed9; color:#b56f1a; }
.badge-status.en-progreso { background:#d9edff; color:#1a6b9e; }
.badge-status.finalizado { background:#d7f0df; color:#1a7a4a; }
.badge-tecnico { padding:2px 8px; border-radius:40px; font-size:.6rem; font-weight:600; margin:1px; display:inline-block; }
.badge-tecnico.asignado { background:#fff3cd; color:#856404; }
.badge-tecnico.en-progreso { background:#cce5ff; color:#004085; }
.badge-tecnico.pausado { background:#d6d8db; color:#383d41; }
.badge-tecnico.finalizado { background:#d4edda; color:#155724; }
.btn-primary-custom { background:#0b1a33; border:none; border-radius:40px; padding:6px 20px; font-weight:600; color:#fff; font-size:.85rem; transition:all .15s; }
.btn-primary-custom:hover { background:#1a3152; color:#fff; }
.btn-edit { background:#ffc107; border:none; border-radius:40px; padding:3px 12px; font-weight:600; color:#000; font-size:.7rem; }
.btn-delete { background:#dc3545; border:none; border-radius:40px; padding:3px 12px; font-weight:600; color:#fff; font-size:.7rem; }
.btn-time { border:none; border-radius:40px; padding:3px 10px; font-weight:600; font-size:.6rem; color:#fff; }
.btn-time.iniciar { background:#28a745; }
.btn-time.pausar { background:#ffc107; color:#000; }
.btn-time.finalizar { background:#dc3545; }
.table-custom thead th { background:#f4f8fe; color:#1f3a5f; font-weight:600; font-size:.65rem; text-transform:uppercase; letter-spacing:.3px; padding:8px 10px; border-bottom:2px solid #e2ecf5; }
.table-custom td { padding:8px 10px; vertical-align:middle; border-bottom:1px solid #eef3f9; font-size:.85rem; color:#1d334a; }
.table-custom tbody tr:hover { background:#f8fbfe; }
.form-control, .form-select { border-radius:8px; border:1px solid #dde6ef; padding:6px 12px; font-size:.85rem; background:#fafcfe; }
.form-control:focus, .form-select:focus { border-color:#6fc2f0; box-shadow:0 0 0 3px rgba(111,194,240,0.15); outline:none; }
.search-global { position:relative; }
.search-global .search-icon { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:#6b7f94; }
.search-global input { padding-left:35px; border-radius:40px; border:1px solid #dde6ef; padding:8px 16px 8px 35px; font-size:.85rem; width:100%; background:#fafcfe; }
.search-global input:focus { border-color:#6fc2f0; box-shadow:0 0 0 3px rgba(111,194,240,0.12); outline:none; }
.ui-autocomplete { max-height:200px; overflow-y:auto; border-radius:10px !important; border:1px solid #dde6ef !important; box-shadow:0 8px 30px rgba(0,0,0,0.1) !important; background:white !important; padding:5px 0 !important; z-index:9999 !important; }
.ui-autocomplete .ui-menu-item { padding:8px 16px !important; font-size:.85rem !important; border-bottom:1px solid #f0f4f8 !important; cursor:pointer !important; }
.ui-autocomplete .ui-menu-item.ui-state-focus { background:#eef3f9 !important; border:none !important; margin:0 !important; }
.sidebar { width:240px; background:linear-gradient(180deg,#0b1a33,#122b4a); color:#e6edf5; height:100vh; position:fixed; padding:20px 16px; overflow-y:auto; z-index:1000; }
.sidebar-brand { display:flex; align-items:center; gap:10px; font-weight:700; font-size:1.2rem; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,0.06); margin-bottom:20px; }
.sidebar-brand i { font-size:1.8rem; color:#6fc2f0; }
.sidebar-brand small { font-weight:400; font-size:.65rem; opacity:.6; display:block; }
.sidebar-nav { list-style:none; padding:0; }
.sidebar-nav li { margin-bottom:4px; }
.sidebar-nav a { display:flex; align-items:center; gap:12px; padding:8px 14px; border-radius:8px; color:#b6cbe0; text-decoration:none; font-weight:500; font-size:.85rem; transition:all .15s; cursor:pointer; }
.sidebar-nav a:hover { background:rgba(255,255,255,0.06); color:#fff; }
.sidebar-nav a.active { background:rgba(111,194,240,0.18); color:#fff; }
.sidebar-nav a i { font-size:1.1rem; width:20px; text-align:center; }
.sidebar-nav .badge-dot { margin-left:auto; background:#ef6b6b; color:#fff; font-size:.55rem; padding:2px 8px; border-radius:30px; }
.sidebar-footer { border-top:1px solid rgba(255,255,255,0.06); padding-top:16px; margin-top:auto; font-size:.75rem; opacity:.6; }
.main-content { margin-left:240px; padding:20px 24px; min-height:100vh; }
.topbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
.topbar-left h4 { font-weight:700; color:#0b1a33; font-size:1.3rem; }
.topbar-left p { color:#6b7f94; font-size:.85rem; }
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:20px; }
.stat-card { background:#fff; border-radius:12px; padding:14px 16px; border:1px solid #eef3f9; }
.stat-card .stat-label { font-size:.65rem; text-transform:uppercase; color:#7a8fa5; font-weight:600; }
.stat-card .stat-number { font-size:1.5rem; font-weight:700; color:#0b1a33; }
.card-custom { background:#fff; border-radius:12px; border:1px solid #eaf0f6; overflow:hidden; margin-bottom:20px; }
.card-header-custom { padding:12px 16px; background:#fafcfe; border-bottom:1px solid #eaf0f6; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.card-header-custom h5 { font-weight:700; font-size:.95rem; color:#0b1a33; margin:0; display:flex; align-items:center; gap:8px; }
.card-body-custom { padding:16px; }
.section-content { display:none; }
.section-content.active-section { display:block; }
select[multiple] { min-height:80px; }
select[multiple] option { padding:6px 10px; }
select[multiple] option:checked { background:#0b1a33; color:#fff; }
.modal-content { border-radius:12px; border:none; }
.sidebar-toggle { display:none; background:#0b1a33; border:none; color:#fff; font-size:1.2rem; padding:4px 12px; border-radius:8px; }
@media (max-width:768px) { 
    .sidebar{ transform:translateX(-100%); width:240px; position:fixed; } 
    .sidebar.open{ transform:translateX(0); } 
    .main-content{ margin-left:0; padding:12px; } 
    .sidebar-toggle{ display:inline-flex; } 
    .stats-grid{ grid-template-columns:repeat(2,1fr); } 
}