:root{--blue:#1657C5;--blue-dark:#0D3E8F;--blue-light:#E8F0FE;--navy:#0A1628;--navy-2:#112240;--surface:#F6F8FF;--surface-2:#ECEFFE;--white:#FFFFFF;--text:#0D1B2A;--text-2:#4A5568;--text-3:#8898AA;--border:#DDE3F0;--border-2:#C8D3E8;--green:#00B87A;--red:#E53E3E;--amber:#F6AD2B;--purple:#7C3AED;--teal:#0D9488;--shadow-sm:0 1px 4px rgba(10,22,40,.06);--shadow:0 4px 16px rgba(10,22,40,.1);--shadow-lg:0 12px 40px rgba(10,22,40,.16);--r:14px;--r-sm:8px;--r-lg:20px;--r-xl:28px;--sidebar:240px;--transition:.18s cubic-bezier(.4,0,.2,1)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:DM Sans,sans-serif;background:var(--surface);color:var(--text);-webkit-font-smoothing:antialiased}.upd-fondo{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0a16288c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:updEntra .18s ease-out}.upd-caja{background:#fff;border-radius:16px;padding:30px 34px 24px;max-width:400px;width:calc(100% - 40px);text-align:center;box-shadow:0 18px 50px #0a162852;animation:updSube .22s cubic-bezier(.2,.9,.3,1)}.upd-ico{font-size:44px;color:#1657c5;display:block;margin-bottom:10px}.upd-caja h3{margin:0 0 8px;font-size:1.18rem;color:#0a1628;font-family:Sora,sans-serif}.upd-caja p{margin:0 0 20px;font-size:.9rem;color:#64748b;line-height:1.55}.upd-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;background:#1657c5;color:#fff;border:0;border-radius:10px;padding:13px 20px;font-size:.95rem;font-weight:700;cursor:pointer;transition:background .12s}.upd-btn:hover{background:#1149a8}.upd-btn .material-symbols-rounded{font-size:20px}.upd-luego{background:none;border:0;color:#94a3b8;font-size:.84rem;cursor:pointer;margin-top:12px;padding:4px}.upd-luego:hover{color:#64748b;text-decoration:underline}@keyframes updEntra{0%{opacity:0}to{opacity:1}}@keyframes updSube{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}.imp-banner{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;align-items:center;justify-content:center;gap:12px;background:#b45309;color:#fff;padding:10px 16px;font-size:.88rem;font-weight:600;box-shadow:0 2px 10px #0003}.imp-banner .material-symbols-rounded{font-size:20px}.imp-banner button{background:#fff;color:#b45309;border:none;border-radius:8px;padding:6px 16px;font-weight:700;cursor:pointer;font-size:.84rem}.imp-banner button:hover{background:#fff7ed}.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);height:100vh}@media(max-width:1100px){.app-shell{grid-template-columns:60px 1fr}.app-shell .sidebar-header{justify-content:center;padding:20px 0}.app-shell .sidebar-header img,.app-shell .sidebar-user-info{display:none}.app-shell .sidebar-user{justify-content:center;padding:12px 0;margin:8px 6px}.app-shell .nav-section-label{display:none}.app-shell .nav-item{justify-content:center;padding:10px 0}.app-shell .nav-item span:not(.material-symbols-rounded){display:none}.app-shell .nav-logout{justify-content:center}.app-shell .nav-logout span:not(.material-symbols-rounded){display:none}.app-shell.expandida{grid-template-columns:var(--sidebar) 1fr}.app-shell.expandida .sidebar-header{justify-content:space-between;padding:20px 16px}.app-shell.expandida .sidebar-header img,.app-shell.expandida .sidebar-user-info{display:block}.app-shell.expandida .sidebar-user{justify-content:flex-start;padding:16px;margin:8px}.app-shell.expandida .nav-section-label{display:block}.app-shell.expandida .nav-item{justify-content:flex-start;padding:10px 12px}.app-shell.expandida .nav-item span:not(.material-symbols-rounded){display:inline}.app-shell.expandida .nav-logout{justify-content:flex-start}.app-shell.expandida .nav-logout span:not(.material-symbols-rounded){display:inline}}@media(max-width:768px){.topbar{display:flex!important}}.sidebar{background:var(--navy);display:flex;flex-direction:column;height:100vh;position:relative;overflow:hidden}.sidebar:before{content:"";position:absolute;top:-60px;right:-60px;width:200px;height:200px;background:radial-gradient(circle,rgba(22,87,197,.3),transparent 70%);pointer-events:none}.sidebar-header{padding:20px 16px;border-bottom:1px solid rgba(255,255,255,.07);display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-header img{height:34px;filter:brightness(0) invert(1);min-width:0}.sidebar-toggle{background:#ffffff1a;border:0;color:#fff;width:30px;height:30px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.sidebar-toggle:hover{background:#ffffff3d}.sidebar-toggle .material-symbols-rounded{font-size:20px}.app-shell{transition:grid-template-columns .18s ease}.app-shell.collapsed{grid-template-columns:60px 1fr}.app-shell.collapsed .sidebar-header{justify-content:center;padding:20px 0}.app-shell.collapsed .sidebar-header img,.app-shell.collapsed .sidebar-user-info{display:none}.app-shell.collapsed .sidebar-user{justify-content:center;padding:12px 0;margin:8px 6px}.app-shell.collapsed .nav-section-label{display:none}.app-shell.collapsed .nav-item{justify-content:center;padding:10px 0}.app-shell.collapsed .nav-item span:not(.material-symbols-rounded){display:none}.app-shell.collapsed .nav-logout{justify-content:center}.app-shell.collapsed .nav-logout span:not(.material-symbols-rounded){display:none}.app-shell.collapsed .sidebar{position:fixed;top:0;left:0;bottom:0;width:60px;z-index:60;overflow:hidden;transition:width .16s ease;box-shadow:2px 0 12px #00000024}.app-shell.collapsed .main-content{grid-column:2}.app-shell.collapsed .sidebar:hover{width:var(--sidebar);box-shadow:10px 0 34px #00000059}.app-shell.collapsed .sidebar:hover .sidebar-header{justify-content:space-between;padding:20px 16px}.app-shell.collapsed .sidebar:hover .sidebar-header img{display:block}.app-shell.collapsed .sidebar:hover .sidebar-user{justify-content:flex-start;padding:16px;margin:8px}.app-shell.collapsed .sidebar:hover .sidebar-user-info,.app-shell.collapsed .sidebar:hover .nav-section-label{display:block}.app-shell.collapsed .sidebar:hover .nav-item{justify-content:flex-start;padding:10px 12px}.app-shell.collapsed .sidebar:hover .nav-item span:not(.material-symbols-rounded){display:inline}.app-shell.collapsed .sidebar:hover .nav-logout{justify-content:flex-start}.app-shell.collapsed .sidebar:hover .nav-logout span:not(.material-symbols-rounded){display:inline}.sidebar-user{padding:16px;margin:8px;background:#ffffff0f;border-radius:var(--r);display:flex;align-items:center;gap:12px;border:1px solid rgba(255,255,255,.07)}.sidebar-avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:700;color:#fff;flex-shrink:0}.role-admin{background:#1657c5}.role-gerencia{background:#7c3aed}.role-jefe{background:#0d9488}.role-aprobador{background:#d97706}.role-empleado{background:#4a5568}.sidebar-user-info p{font-size:.85rem;font-weight:600;color:#fff;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.sidebar-user-info span{font-size:.72rem;color:#ffffff73;text-transform:uppercase;letter-spacing:.05em}.sidebar-nav{flex:1;padding:12px 10px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent}.sidebar-nav::-webkit-scrollbar{width:7px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff47;border-radius:4px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#ffffff73}.nav-section-label{font-size:.65rem;font-weight:700;color:#ffffff4d;text-transform:uppercase;letter-spacing:.1em;padding:12px 10px 6px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-sm);cursor:pointer;transition:background var(--transition),color var(--transition);color:#ffffff8c;font-size:.88rem;font-weight:500;margin-bottom:2px;-webkit-user-select:none;user-select:none;text-decoration:none}.nav-item:hover{background:#ffffff12;color:#fff}.nav-item.active{background:var(--blue);color:#fff;box-shadow:0 4px 12px #1657c566}.nav-item .material-symbols-rounded{font-size:20px;flex-shrink:0}.sidebar-footer{padding:12px;border-top:1px solid rgba(255,255,255,.07)}.nav-logout{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);cursor:pointer;color:#ffffff73;font-size:.88rem;font-weight:500;transition:all var(--transition)}.nav-logout:hover{background:#e53e3e26;color:#fc8181}.nav-logout .material-symbols-rounded{font-size:20px}.main-content{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--surface);min-width:0}.topbar{display:none;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--white);border-bottom:1px solid var(--border)}.topbar img{height:32px}.page-area{flex:1;overflow-y:auto;padding:28px 32px}@media(max-width:900px){.page-area{padding:20px 16px}}.page-header{margin-bottom:28px}.page-header h2{font-family:Sora,sans-serif;font-size:1.5rem;font-weight:700;color:var(--navy);letter-spacing:-.02em}.page-header p{font-size:.88rem;color:var(--text-2);margin-top:4px}.card{background:var(--white);border-radius:var(--r-lg);border:1px solid var(--border);padding:24px;box-shadow:var(--shadow-sm)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.card-title{font-family:Sora,sans-serif;font-size:1rem;font-weight:700;color:var(--navy)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:28px}.stat-card{background:var(--white);border-radius:var(--r-lg);border:1px solid var(--border);padding:20px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:16px}.stat-icon{width:48px;height:48px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon.blue{background:var(--blue-light);color:var(--blue)}.stat-icon.green{background:#e6fffa;color:#00a86b}.stat-icon.amber{background:#fffbeb;color:#d97706}.stat-icon.purple{background:#f5f3ff;color:var(--purple)}.stat-icon .material-symbols-rounded{font-size:24px}.stat-info p{font-size:.78rem;color:var(--text-3);font-weight:500}.stat-info strong{font-family:Sora,sans-serif;font-size:1.6rem;font-weight:700;color:var(--navy);display:block;line-height:1.2}.table-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--border);background:var(--white)}table{width:100%;border-collapse:collapse;font-size:.875rem}thead th{background:var(--surface);padding:11px 10px;text-align:left;font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);border-bottom:1px solid var(--border)}tbody td{padding:11px 10px;border-bottom:1px solid var(--surface);color:var(--text);overflow-wrap:anywhere}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 20px;border-radius:var(--r-sm);font-size:.875rem;font-weight:600;font-family:DM Sans,sans-serif;cursor:pointer;transition:all var(--transition);border:none;text-decoration:none;white-space:nowrap}.btn .material-symbols-rounded{font-size:17px}.btn-blue{background:var(--blue);color:#fff;box-shadow:0 2px 8px #1657c540}.btn-blue:hover{background:var(--blue-dark)}.btn-ghost{background:transparent;color:var(--text-2);border:1.5px solid var(--border-2)}.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}.btn-green{background:var(--green);color:#fff;box-shadow:0 2px 8px #00b87a40}.btn-green:hover{background:#009964}.btn-amber{background:var(--amber);color:#553000;box-shadow:0 2px 8px #f6ad2b40}.btn-amber:hover{background:#e09612}.btn-sm{padding:7px 14px;font-size:.8rem}.btn-sm .material-symbols-rounded{font-size:15px}.form-field input,.search-input{padding:11px 14px;border:1.5px solid var(--border);border-radius:var(--r-sm);font-size:.9rem;font-family:DM Sans,sans-serif;color:var(--text);background:var(--surface);transition:border var(--transition);outline:none}.search-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1657c51a;background:var(--white)}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:20px;font-size:.72rem;font-weight:700;white-space:nowrap}.badge-active{background:#ecfdf5;color:#065f46}.badge-gray{background:#f1f5f9;color:#64748b}@media print{html,body{height:auto!important;overflow:visible!important;background:#fff!important}.app-shell{display:block!important;height:auto!important}.sidebar{display:none!important}.main-content{display:block!important;height:auto!important;overflow:visible!important}.page-area{overflow:visible!important;height:auto!important;padding:0!important}}@media print{body.solo-documento *{visibility:hidden!important}body.solo-documento .papel,body.solo-documento .papel *{visibility:visible!important}body.solo-documento .papel{position:absolute!important;left:0!important;top:0!important;width:100%!important;margin:0!important;padding:0!important}}
