@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--primary:#8c2b3d;--primary-dark:#6a1e2b;--primary-light:#f4e8ea;--secondary:#d4c1a9;--bg-main:#f8fafc;--bg-card:#fff;--text-main:#1e293b;--text-muted:#64748b;--border:#e2e8f0;--status-pending:#f59e0b;--status-approved:#10b981;--status-rejected:#ef4444;--status-paid:#3b82f6;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--glass:#fffc;--glass-border:#ffffff4d;--sidebar-width:260px;--header-height:70px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Outfit,sans-serif}h1,h2,h3,h4,h5,h6{color:var(--text-main);font-weight:600}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;outline:none;font-family:inherit}.glass-card{background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);box-shadow:var(--shadow-md);border-radius:16px}.premium-card{background:var(--bg-card);box-shadow:var(--shadow-md);border:1px solid var(--border);border-radius:12px;transition:transform .2s,box-shadow .2s}.premium-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.flex-center{justify-content:center;align-items:center;display:flex}.badge{text-transform:capitalize;border-radius:99px;padding:4px 12px;font-size:.85rem;font-weight:500}.badge-pendiente{color:#92400e;background:#fef3c7}.badge-aprobado{color:#065f46;background:#d1fae5}.badge-rechazado{color:#991b1b;background:#fee2e2}.badge-pagado{color:#1e40af;background:#dbeafe}.auth-wrapper{background:linear-gradient(135deg, var(--primary-light) 0%, #f8fafc 50%, #f5f1e7 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;font-family:Outfit,sans-serif;display:flex}.auth-card{text-align:center;background:#fff;border-radius:20px;width:100%;max-width:460px;padding:40px;position:relative;box-shadow:0 10px 30px #0000000d}.back-link{color:#64748b;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;font-size:.85rem;font-weight:500;display:flex;position:absolute;top:25px;left:25px}.brand-logo{background:var(--primary-light);width:56px;height:56px;color:var(--primary);border-radius:14px;justify-content:center;align-items:center;margin:0 auto 20px;display:flex}.auth-header h1{color:#1e293b;margin-bottom:8px;font-size:1.8rem;font-weight:700}.auth-header p{color:#64748b;margin-bottom:30px;font-size:.95rem}.auth-form{text-align:left;flex-direction:column;gap:20px;display:flex}.form-group label{color:#334155;margin-bottom:8px;font-size:.85rem;font-weight:600;display:block}.input-with-icon{align-items:center;display:flex;position:relative}.input-with-icon .icon{color:#94a3b8;pointer-events:none;position:absolute;left:14px}.input-with-icon input,.input-with-icon select{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:12px 14px 12px 42px;font-family:inherit;font-size:.95rem;transition:all .2s}.input-with-icon select{appearance:none;cursor:pointer}.input-with-icon input:focus,.input-with-icon select:focus{border-color:var(--primary);box-shadow:0 0 0 4px #8c2b3d1a}.auth-error{color:#be123c;text-align:center;background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;padding:12px;font-size:.85rem}.status-alert{text-align:center;border-radius:8px;padding:12px;font-size:.85rem}.status-alert.error{color:#be123c;background:#fff1f2;border:1px solid #fecdd3}.status-alert.success{color:var(--primary);border:1px solid var(--border);background:#f8fafc}.btn-primary{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:100%;padding:14px;font-size:1rem;font-weight:600;transition:background .2s,opacity .2s;display:flex}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.auth-footer{color:#64748b;margin-top:25px;font-size:.9rem}.auth-footer span{color:var(--primary);cursor:pointer;font-weight:600}.input-group{flex-direction:column;gap:8px;display:flex}.input-group label{color:var(--text-muted);font-size:.9rem;font-weight:500}.input-group input,.input-group select,.input-group textarea{border:1px solid var(--border);background:#fff;border-radius:8px;outline:none;width:100%;padding:12px;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}.input-group input:focus,.input-group select:focus,.input-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #8c2b3d1a}.input-group .input-error{border-color:#ef4444}.input-group .input-error:focus{box-shadow:0 0 0 3px #ef44441a}.input-group .error-text{color:#ef4444;font-size:.8rem;font-weight:500}.file-upload{border:2px dashed var(--border);color:var(--text-muted);cursor:pointer;background:#f8fafc;border-radius:8px;align-items:center;gap:10px;padding:12px;transition:border-color .2s;display:flex;position:relative}.file-upload:hover{border-color:var(--primary)}.file-upload input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute}.animate-spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.4s ease-out fadeIn}.pagination{justify-content:center;align-items:center;gap:12px;padding:20px;display:flex}.pagination button{border-radius:8px;padding:10px 18px;font-size:.85rem;font-weight:600;transition:all .2s}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination .page-info{color:var(--text-muted);font-size:.85rem;font-weight:500}.wizard-stepper{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:center;align-items:center;gap:0;padding:24px 20px;display:flex}.wizard-step{color:var(--text-muted);cursor:default;border-radius:8px;align-items:center;gap:10px;padding:10px 16px;font-size:.85rem;font-weight:500;transition:all .3s;display:flex}.wizard-step.active{color:var(--primary-dark);background:var(--primary-light);font-weight:600}.wizard-step.completed{color:var(--primary)}.wizard-step-number{background:var(--border);width:28px;height:28px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;transition:all .3s;display:flex}.wizard-step.active .wizard-step-number,.wizard-step.completed .wizard-step-number{background:var(--primary);color:#fff}.wizard-connector{background:var(--border);width:40px;height:2px;transition:background .3s}.wizard-connector.active{background:var(--primary)}.responsive-table{border-collapse:collapse;text-align:left;width:100%}.responsive-table thead tr{color:var(--text-muted);text-transform:uppercase;background:#f8fafc;font-size:.85rem}.responsive-table th,.responsive-table td{padding:16px 24px}.responsive-table tbody tr{border-bottom:1px solid var(--border);font-size:.95rem;transition:background .15s}.responsive-table tbody tr:hover{background:#f8fafc}@media (width<=768px){:root{--sidebar-width:0px;--header-height:60px}.auth-card{box-shadow:none;padding:30px 20px}.auth-header h1{font-size:1.5rem}.wizard-stepper{gap:0;padding:16px 10px}.wizard-step{padding:8px 10px;font-size:.75rem}.wizard-step-label{display:none}.wizard-connector{width:20px}.responsive-table thead{display:none}.responsive-table tbody tr{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:16px;display:flex}.responsive-table tbody td{justify-content:space-between;align-items:center;padding:4px 0;font-size:.9rem;display:flex}.responsive-table tbody td:before{content:attr(data-label);color:var(--text-muted);text-transform:uppercase;font-size:.8rem;font-weight:600}.pagination{flex-wrap:wrap;gap:8px}.pagination button{padding:8px 14px;font-size:.8rem}}@media (width<=480px){.auth-wrapper{background:#fff}.auth-card{box-shadow:none;background:0 0}.back-link{top:15px;left:15px}}.spinner{animation:1s linear infinite spin}@media print{body,html,#root,main{height:auto!important;overflow:visible!important}aside,header{display:none!important}}
