:root{--azul-corp: #005288;--azul-oscuro: #1c3a58;--celeste-claro: #e9f5fd;--acento: #36b3e8;--gradiente-principal: linear-gradient(135deg, #0d5aa7 0%, #005288 100%);--gris-bg: #f4f7fa;--gris-borde: #e3e8ef;--gris-texto: #6b7280;--blanco: #fff;--verde-exito: #28a745;--rojo-error: #dc354f;--font-principal: "Be Vietnam Pro", sans-serif;--alerta-deuda: #dc3545;--alerta-advertencia: #ffc107;--alerta-ok: #28a745}*{box-sizing:border-box}html,body{min-height:100vh;margin:0;padding:0;font-family:var(--font-principal);color:var(--azul-oscuro);background-color:var(--gris-bg)!important;width:100vw;overflow-x:hidden}#login-wrapper{min-height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background:var(--gradiente-principal)}.login-card{background:#fff;border-radius:20px;box-shadow:0 6px 40px #1c3a581a;padding:40px;max-width:400px;width:92vw;display:flex;flex-direction:column;align-items:stretch;gap:20px;text-align:center}.login-card h2{color:var(--azul-corp);font-weight:800;margin:0;font-size:1.8em}.login-card p{margin:0;color:var(--gris-texto);font-size:1.1em}#login-wrapper input.form-control{text-align:center;padding:14px;font-size:1.1em;background:var(--gris-bg)}#main-wrapper{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;padding:2vh 2vw}.main-card{background:#fff;border-radius:24px;box-shadow:0 10px 40px #1c3a581f;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.header-superior{width:100%;min-height:65px;display:flex;align-items:center;justify-content:space-between;background:var(--azul-corp);color:#fff;border-radius:24px 24px 0 0;padding:0 34px;flex-shrink:0}.main-content{padding:20px 30px;flex-grow:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column}.header-logo-txt{font-weight:900;font-size:1.5em;color:#fff;display:flex;align-items:center;gap:10px}.version-badge{font-size:.4em;background:#fff3;padding:2px 8px;border-radius:4px;font-weight:400;vertical-align:middle}.user-info{display:flex;align-items:center;gap:15px}.user-info .material-icons{font-size:2.2em;color:#fff}.user-info-text{text-align:right}.user-info-text strong,.user-info-text span{font-weight:700;color:#fff;display:block;line-height:1.2}.portal-link{color:#fff;text-decoration:underline;font-size:.8em;cursor:pointer;opacity:.8;transition:opacity .2s}.portal-link:hover{opacity:1}.main-btn{padding:14px;border:none;background:linear-gradient(90deg,#005288,#36b3e8);color:var(--blanco);font-size:1.1em;font-weight:700;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;transition:all .2s}input.form-control,textarea.form-control{width:100%;padding:12px;font-size:1em;font-family:var(--font-principal);border-radius:9px;border:1.5px solid var(--gris-borde);background:#fff;transition:all .2s}input.form-control:focus,textarea.form-control:focus{border-color:var(--azul-corp);background:var(--blanco);outline:none}.alert-box{padding:15px;border-radius:12px;margin-top:15px;text-align:center}.alert-danger{background-color:#f8d7da;color:#721c24}.alert-success{background-color:#d4edda;color:#155724}.spinner{border:3px solid rgba(0,0,0,.3);border-radius:50%;border-top-color:var(--azul-corp);width:16px;height:16px;animation:spin 1s ease-in-out infinite}#btn-consultar .spinner{border-top-color:#fff}@keyframes spin{to{transform:rotate(360deg)}}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.panel-header h2{margin:0;font-size:1.8em}.actions-container{display:flex;gap:15px}.action-btn{background-color:var(--azul-oscuro);color:#fff;border:none;padding:10px 18px;border-radius:8px;cursor:pointer;font-weight:700;font-size:.9em;display:inline-flex;align-items:center;gap:8px;transition:all .2s}.action-btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0003}#filtro-edificio-reporte:hover,#filtro-edificio-reporte:focus{border-color:#0d5aa7;outline:none;box-shadow:0 0 0 3px #0d5aa71a}#filtro-persona-reporte:hover,#filtro-persona-reporte:focus{border-color:#0d5aa7;outline:none;box-shadow:0 0 0 3px #0d5aa71a}.table-responsive{border:1px solid var(--gris-borde);border-radius:16px;overflow-x:auto;margin-top:10px}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:10px;border-bottom:1px solid var(--gris-borde);text-align:center;font-size:.85em;white-space:normal;vertical-align:middle}.admin-table th{background-color:var(--celeste-claro);font-weight:800;position:sticky;top:0;z-index:1}.admin-table td.text-left{text-align:left}.admin-table tr:nth-child(2n){background-color:var(--gris-bg)}.admin-table .alerta-cell{display:flex;align-items:center;justify-content:flex-start;gap:8px;text-align:left;padding:8px 12px;border-radius:6px;font-weight:600;font-size:.85em}.admin-table .alerta-icon{font-size:1.4em;vertical-align:middle}.alerta-deuda{background-color:#ffebee;color:#c62828;border-left:4px solid #c62828}.alerta-saldo-bajo{background-color:#fff3e0;color:#e65100;border-left:4px solid #ff9800}.alerta-acumulacion-critica{background-color:#fff9c4;color:#f57f17;border-left:4px solid #fbc02d}.alerta-programar{background-color:#e1f5fe;color:#01579b;border-left:4px solid #0288d1}.alerta-salir{background-color:#e0f7fa;color:#006064;border-left:4px solid #00acc1}.alerta-ok{background-color:#f0f9f4;color:#2e7d32;border-left:4px solid #4caf50}.col-vencido{background-color:#e3f2fd!important;color:#1565c0;font-weight:700}.col-devengados{background-color:#f3e5f5!important;color:#6a1b9a;font-weight:700}.col-adelantadas{background-color:#ffebee!important;color:#c62828;font-weight:700}.col-total{background-color:#e8f5e9!important;color:#2e7d32;font-weight:900;font-size:1.05em}.cell-vencido{background-color:#e3f2fd30;font-weight:600}.cell-devengados{background-color:#f3e5f530;font-weight:600}.cell-adelantadas{background-color:#ffebee30}.cell-total{font-weight:900;font-size:1.1em}.saldo-total-positivo{background-color:#e8f5e9;color:#2e7d32}.saldo-total-bajo{background-color:#fff3e0;color:#e65100}.saldo-total-negativo{background-color:#ffebee;color:#c62828}.vacaciones-adelantadas{background-color:#fee!important;color:var(--alerta-deuda);font-weight:900;padding:8px;border-radius:4px}.employee-view-container{display:flex;flex-direction:column;height:100%;flex-grow:1;min-height:0}.employee-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-shrink:0}.employee-header h3{margin:0;font-size:1.5em}.btn-secondary{background:var(--blanco);color:var(--azul-oscuro);border:1px solid var(--gris-borde);padding:8px 16px;border-radius:8px;cursor:pointer;font-weight:700;display:inline-flex;align-items:center;gap:8px;transition:all .2s}.btn-secondary:hover{background-color:var(--gris-bg)}.stats-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:15px;margin-bottom:20px;position:relative;z-index:100}.stat-card{background:#fff;border-radius:16px;padding:18px;box-shadow:0 4px 12px #0000000d;display:flex;align-items:center;gap:15px;border:1px solid var(--gris-borde);transition:all .3s ease;position:relative}.stat-card:hover{transform:translateY(-5px);box-shadow:0 8px 20px #0000001a}.stat-card .badge-fifo{font-size:.6em;padding:2px 6px;border-radius:4px;font-weight:800;text-transform:uppercase;display:inline-block}.stat-card .tooltip-container{position:absolute;top:10px;right:12px;z-index:20}.badge-anterior{background:#e6f0f7;color:#005288}.badge-actual{background:#e9f7ef;color:#28a745}.tooltip-container{position:relative;display:inline-flex;align-items:center;gap:4px;cursor:help}.tooltip-text{visibility:hidden;width:220px;background-color:#1c3a58fa;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;text-align:left;border-radius:8px;padding:12px;position:absolute;z-index:99999;top:130%;left:50%;transform:translate(-50%);opacity:0;transition:all .2s ease-out;font-size:.8rem;font-weight:400;box-shadow:0 10px 30px #0000004d;pointer-events:none;line-height:1.4}.tooltip-text:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-6px;border-width:6px;border-style:solid;border-color:transparent transparent rgba(28,58,88,.98) transparent}.tooltip-container:hover .tooltip-text{visibility:visible;opacity:1;top:110%}.tt-header{border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:6px;margin-bottom:6px;font-weight:700;color:var(--acento)}.tt-row{display:flex;justify-content:space-between;margin-bottom:3px}.tt-label{color:#bdc3c7;font-size:.75rem}.tt-val{font-weight:600;color:#fff}.badge-adelanto{background:#fff3e6;color:#fd7e14}.stat-icon{font-size:32px;width:50px;height:50px;display:flex;align-items:center;justify-content:center;border-radius:12px;flex-shrink:0}.card-anterior .stat-icon{background:#e6f0f7;color:#005288}.card-actual .stat-icon{background:#e9f7ef;color:#28a745}.card-adelanto .stat-icon{background:#fff3e6;color:#fd7e14}.card-total .stat-icon{background:#f3effa;color:#6f42c1}.stat-info .label{display:block;font-size:.85em;color:var(--gris-texto);margin-bottom:2px;font-weight:600}.stat-info .value{font-size:1.8em;font-weight:800;color:var(--azul-oscuro);line-height:1}.info-fifo-banner{background:#f8f9fa;border:1px solid var(--gris-borde);border-radius:12px;padding:12px 20px;margin-bottom:20px;display:flex;align-items:center;gap:15px;color:var(--gris-texto);font-size:.9em}.info-fifo-banner i{color:var(--azul-corp)}.dashboard-grid{display:flex;flex-grow:1;min-height:0;gap:20px;padding-top:20px;align-items:stretch}.form-card,.history-card{background:var(--blanco);border-radius:16px;border:1px solid var(--gris-borde);display:flex;flex-direction:column;overflow:hidden;flex:1}.card-title{font-size:1.1em;font-weight:700;padding:15px 20px;display:flex;align-items:center;gap:10px;background-color:var(--gris-bg);border-bottom:1px solid var(--gris-borde);flex-shrink:0}.card-content{padding:20px;flex-grow:1;display:flex;flex-direction:column}.form-card .form-actions{margin-top:auto;padding-top:15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-group{display:flex;flex-direction:column;gap:5px}.field-label{font-weight:500;font-size:.9em}.history-card .table-container{flex-grow:1;min-height:0;overflow-y:auto}.historial-table{width:100%;border-collapse:collapse}.historial-table th,.historial-table td{padding:8px 4px;text-align:center;border-bottom:1px solid var(--gris-borde);font-size:.85em;white-space:nowrap}.historial-table thead th{background-color:#fff;position:sticky;top:0;z-index:1}.status-badge{padding:4px 10px;border-radius:20px;font-size:.8em;font-weight:700;color:var(--blanco);min-width:80px;display:inline-block;text-align:center}.status-aprobada{background-color:var(--verde-exito)}.status-rechazada{background-color:var(--rojo-error)}.status-anulada{background-color:var(--gris-texto)}.status-pendiente-nivel-1,.status-pendiente-nivel-2,.status-pendiente-nivel-3,.status-anulaci\f3n-pendiente{background-color:var(--acento)}.btn-anular{font-size:.8em;padding:4px 8px;background:var(--acento);color:#fff;border:none;border-radius:8px;cursor:pointer}.btn-ver-pdf{background-color:var(--azul-oscuro);color:#fff;border:none;padding:5px 10px;border-radius:8px;text-decoration:none;display:inline-flex;align-items:center;gap:4px}.filter-buttons{padding:20px 20px 15px;display:flex;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--gris-borde)}.filter-btn{background:var(--blanco);border:1px solid var(--gris-borde);color:var(--gris-texto);padding:6px 12px;border-radius:20px;cursor:pointer;font-weight:500}.filter-btn.active{background:var(--azul-corp);color:#fff;border-color:var(--azul-corp)}@media(max-width:1024px){.main-content{padding:15px}.header-superior{padding:0 20px}.header-logo-txt{font-size:1.4em}.user-info-text strong,.user-info-text span{font-size:.85em}.dashboard-grid{flex-direction:column;align-items:stretch;height:auto}.form-card,.history-card{flex:auto;height:auto}.stats-container{flex-direction:column;gap:15px}.stat-card{flex:auto;width:100%}}.modal-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;z-index:9999;align-items:center;justify-content:center}.modal-container{background:#fff;border-radius:16px;box-shadow:0 10px 50px #0000004d;width:90%;max-width:600px;max-height:90vh;overflow-y:auto}.modal-header{background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;padding:20px;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:1.4em;display:flex;align-items:center;gap:10px}.modal-close{background:#fff3;border:none;color:#fff;font-size:1.5em;cursor:pointer;border-radius:50%;width:35px;height:35px;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close:hover{background:#ffffff4d;transform:rotate(90deg)}.modal-body{padding:30px}.modal-form-group{margin-bottom:20px}.modal-form-group label{display:block;font-weight:700;color:var(--azul-oscuro);margin-bottom:8px;font-size:.95em}.modal-form-group input,.modal-form-group select{width:100%;padding:12px;border:2px solid var(--gris-borde);border-radius:8px;font-size:1em;font-family:var(--font-principal);transition:all .2s}.modal-form-group input:focus,.modal-form-group select:focus{border-color:#ff6b35;outline:none;box-shadow:0 0 0 3px #ff6b351a}.modal-info-box{background-color:var(--celeste-claro);border-left:4px solid var(--azul-corp);padding:15px;border-radius:8px;margin-bottom:20px}.modal-info-box .material-icons{vertical-align:middle;margin-right:5px}.modal-footer{padding:20px 30px;border-top:1px solid var(--gris-borde);display:flex;gap:10px;justify-content:flex-end}.modal-btn{padding:12px 24px;border:none;border-radius:8px;font-size:1em;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .2s}.modal-btn-primary{background:linear-gradient(90deg,#ff6b35,#f7931e);color:#fff}.modal-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ff6b354d}.modal-btn-secondary{background:#fff;color:var(--gris-texto);border:2px solid var(--gris-borde)}.modal-btn-secondary:hover{background-color:var(--gris-bg)}@media print{@page{size:A4 landscape;margin:20mm}body,#main-wrapper,.main-card,.main-content,#admin-view,.table-responsive{display:block!important;width:100%!important;height:auto!important;box-shadow:none!important;border:none!important;padding:0!important;margin:0!important;overflow:visible!important}.header-superior,.actions-container,#employee-view,.panel-header h2,.user-info{display:none!important}.admin-table{font-size:8pt}.admin-table th,.admin-table td{padding:3px}}
