*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#1e40af;--primary-light:#3b82f6;--bg:#f8fafc;--surface:#fff;--text:#1e293b;--text-secondary:#64748b;--border:#e2e8f0;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-md:0 4px 6px #00000012, 0 2px 4px #0000000f;--radius:8px;color:var(--text);background:var(--bg);font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}body{min-height:100vh}.login-page{background:linear-gradient(135deg,#f0f4f8 0%,#dbe4ef 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{text-align:center;background:#fff;border-radius:12px;width:100%;max-width:400px;padding:40px;animation:.5s ease-out fadeInUp;box-shadow:0 10px 40px #00000014}.login-logo{height:80px;margin-bottom:16px}.login-card h2{color:#1e293b;margin:0 0 4px;font-size:22px;font-weight:700}.login-subtitle{color:#64748b;margin:0 0 28px;font-size:14px}.login-field{text-align:left;margin-bottom:16px}.login-field label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.login-field input{color:#1e293b;box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;width:100%;padding:10px 14px;font-size:14px;transition:border-color .2s,box-shadow .2s}.login-field input:focus{background:#fff;border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f626}.login-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.login-btn{color:#fff;cursor:pointer;background:#1e40af;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-size:15px;font-weight:600;transition:background .2s;display:flex}.login-btn:hover{background:#3b82f6}.login-btn:disabled{opacity:.6;cursor:not-allowed}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.app{flex-direction:column;min-height:100vh;display:flex}.header{color:#1e293b;box-shadow:var(--shadow-md);background:#f1f5f9;padding:15px;animation:.5s ease-out fadeInDown}.header-content{align-items:center;gap:16px;display:flex}.header-logo{width:auto;height:72px}.subtitle{opacity:.85;border-left:2px solid #00000026;padding-left:16px;font-size:18px}.header-user{color:#64748b;align-items:center;gap:10px;margin-left:auto;font-size:14px;display:flex}.btn-logout{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.btn-logout:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.main{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:15px}.filters{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:24px;animation:.5s ease-out .2s both fadeInUp;display:flex}.filter-group{flex-direction:column;gap:4px;display:flex}.filter-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.filter-group input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:8px 12px;font-size:14px;transition:border-color .2s}.filter-group input:focus{border-color:var(--primary-light);outline:none;box-shadow:0 0 0 3px #3b82f626}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;align-items:center;gap:6px;height:38px;padding:8px 20px;font-size:14px;font-weight:600;transition:background .2s;display:flex}.btn-primary:hover{background:var(--primary-light)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:6px;height:38px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.btn-secondary:hover{background:#f1f5f9}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.export-group{gap:8px;margin-left:auto;display:flex}.btn-excel:hover{color:#16a34a;border-color:#16a34a}.btn-pdf:hover{color:#dc2626;border-color:#dc2626}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.summary{grid-template-columns:repeat(8,1fr);gap:12px;margin-bottom:24px;display:grid}.summary-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border-left:4px solid #0000;align-items:center;gap:10px;padding:14px;animation:.4s ease-out both scaleIn;display:flex}.summary-card:first-child{animation-delay:.3s}.summary-card:nth-child(2){animation-delay:.38s}.summary-card:nth-child(3){animation-delay:.46s}.summary-card:nth-child(4){animation-delay:.54s}.summary-card:nth-child(5){animation-delay:.62s}.summary-card:nth-child(6){animation-delay:.7s}.summary-card:nth-child(7){animation-delay:.78s}.summary-card:nth-child(8){animation-delay:.86s}.card-blue{border-left-color:#3b82f6}.card-blue .card-icon{color:#3b82f6}.card-purple{border-left-color:#8b5cf6}.card-purple .card-icon{color:#8b5cf6}.card-green{border-left-color:#10b981}.card-green .card-icon{color:#10b981}.card-orange{border-left-color:#f97316}.card-orange .card-icon{color:#f97316}.card-teal{border-left-color:#14b8a6}.card-teal .card-icon{color:#14b8a6}.card-yellow{border-left-color:#eab308}.card-yellow .card-icon{color:#eab308}.card-emerald{border-left-color:#059669}.card-emerald .card-icon{color:#059669}.card-red{border-left-color:#ef4444}.card-red .card-icon{color:#ef4444}.card-gray{border-left-color:#94a3b8}.card-value{color:var(--text);font-size:24px;font-weight:700;line-height:1}.card-label{color:var(--text-secondary);font-size:13px;font-weight:500}.card-info{flex-direction:column;gap:4px;display:flex}.search-bar{margin-bottom:16px;animation:.5s ease-out .9s both fadeIn;position:relative}.search-bar input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);padding:10px 12px 10px 40px;font-size:14px;transition:border-color .2s}.search-bar input:focus{border-color:var(--primary-light);outline:none;box-shadow:0 0 0 3px #3b82f626}.search-icon{color:var(--text-secondary);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.error-msg{color:#dc2626;border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;margin-bottom:16px;padding:12px 16px;font-size:14px}.table-container{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);animation:.6s ease-out 1s both fadeInUp;overflow:visible}table{border-collapse:collapse;width:100%}thead{border-bottom:2px solid var(--border);z-index:10;background:#f8fafc;position:sticky;top:0}.table-sentinel{height:0}th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#f8fafc;padding:12px 16px;font-size:12px;font-weight:700;transition:background .2s,color .2s}thead.stuck th{color:#fff;background:#1e40af}thead.stuck th .sort-idle{opacity:.5}th.sortable{cursor:pointer}th.sortable:hover{color:var(--primary)}.th-content{align-items:center;gap:4px;display:flex}.sort-idle{opacity:.3}td{border-bottom:1px solid var(--border);color:var(--text);padding:12px 16px;font-size:13px}tbody tr{animation:.3s ease-out both slideInLeft}tbody tr:first-child{animation-delay:1.05s}tbody tr:nth-child(2){animation-delay:1.1s}tbody tr:nth-child(3){animation-delay:1.15s}tbody tr:nth-child(4){animation-delay:1.2s}tbody tr:nth-child(5){animation-delay:1.25s}tbody tr:nth-child(6){animation-delay:1.3s}tbody tr:nth-child(7){animation-delay:1.35s}tbody tr:nth-child(8){animation-delay:1.4s}tbody tr:nth-child(9){animation-delay:1.45s}tbody tr:nth-child(10){animation-delay:1.5s}tbody tr:nth-child(n+11){animation-delay:1.55s}tbody tr:hover{background:#f8fafc}tbody tr:last-child td{border-bottom:none}.empty-state{text-align:center;color:var(--text-secondary);padding:48px 16px;font-size:15px}.badge{letter-spacing:.3px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-blue{color:#1d4ed8;background:#dbeafe}.badge-yellow{color:#b45309;background:#fef3c7}.badge-green{color:#047857;background:#d1fae5}.badge-red{color:#dc2626;background:#fee2e2}.badge-gray{color:#475569;background:#f1f5f9}.pagination-footer{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:16px 0;font-size:13px;display:flex}.pagination-info{color:var(--text-secondary)}.pagination-controls{gap:4px;display:flex}.pagination-btn{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.pagination-btn:hover:not(:disabled){border-color:var(--primary-light);color:var(--primary);background:#f1f5f9}.pagination-btn:disabled{opacity:.3;cursor:not-allowed}.mobile-cards{flex-direction:column;gap:12px;display:flex}.mobile-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);animation:.3s ease-out both fadeInUp;overflow:hidden}.mobile-card-header{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.mobile-card-solicitud{color:var(--text);font-size:14px;font-weight:700}.mobile-card-body{padding:12px 16px}.mobile-card-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;padding:6px 0;font-size:13px;display:flex}.mobile-card-row:last-child{border-bottom:none}.mobile-card-label{color:var(--text-secondary);flex-shrink:0;margin-right:12px;font-weight:600}.mobile-card-row>span:last-child{text-align:right;color:var(--text)}.mobile-only{display:none}.desktop-only{display:block}@media (width<=768px){.mobile-only{display:flex}.desktop-only{display:none}.header{padding:12px 15px}.header-logo{height:48px}.subtitle{padding-left:10px;font-size:14px}.header-user span{display:none}.main{padding:12px}.filters{flex-direction:column;align-items:stretch}.export-group{width:100%;margin-left:0}.btn-primary,.btn-secondary{justify-content:center;width:100%}.summary{grid-template-columns:repeat(2,1fr)}.summary-card{padding:10px}.card-value{font-size:20px}.pagination-footer{flex-direction:column;align-items:center;gap:12px}}
