*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;background-color:#e8ecf2;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:17px}.app-container{flex-direction:column;min-height:100vh;display:flex}.main-layout{flex:1;min-height:0;display:flex}.page-content{flex:1;padding:28px;overflow-y:auto}.sidebar{background:linear-gradient(#1a3a5c 0%,#122840 100%);flex-direction:column;width:240px;min-width:240px;min-height:100vh;display:flex;box-shadow:2px 0 8px #0000002e}.sidebar-logo{background:#0000001f;border-bottom:1px solid #ffffff1f;padding:22px 18px 18px}.sidebar-nav{flex:1;padding:14px 0}.sidebar-section{color:#5a80a8;text-transform:uppercase;letter-spacing:1.2px;padding:10px 18px 5px;font-size:11px;font-weight:700}.sidebar-icon{text-align:center;opacity:.8;flex-shrink:0;width:20px;font-size:15px}.sidebar-item{color:#b8d0e8;cursor:pointer;text-align:left;background:0 0;border:none;border-left:3px solid #0000;align-items:center;gap:11px;width:100%;padding:12px 18px;font-size:15px;transition:background .15s,color .15s;display:flex}.sidebar-item:hover{color:#fff;background-color:#ffffff17}.sidebar-item.active{color:#fff;background-color:#5b9bd533;border-left-color:#5b9bd5;font-weight:700}.sidebar-item.active .sidebar-icon{opacity:1}.sidebar-footer{background:#0000001a;border-top:1px solid #ffffff1f;padding:16px}.sidebar-logout{text-align:center;border-radius:3px;width:100%;color:#b8d0e8!important;background:0 0!important;border:1px solid #ffffff40!important;padding:8px!important;font-size:14px!important}.sidebar-logout:hover{color:#fff!important;background:#ffffff1a!important;border-color:#fff6!important}.modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:flex-start;padding-top:40px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-box{background:#fff;border:1px solid #d0d8e4;border-radius:4px;width:100%;max-width:860px;margin-bottom:40px;padding:28px 32px;box-shadow:0 8px 32px #0000002e}.modal-header{border-bottom:2px solid #1a3a5c;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;display:flex}.modal-header h3{color:#1a3a5c;text-transform:uppercase;letter-spacing:.6px;font-size:15px;font-weight:700}.modal-close{color:#888;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.modal-close:hover{color:#c0392b}.navbar{color:#fff;background-color:#1a3a5c;justify-content:space-between;align-items:center;height:60px;padding:0 28px;display:flex;box-shadow:0 2px 6px #00000040}.navbar-title{letter-spacing:.5px;font-size:18px;font-weight:700}.navbar-user{align-items:center;gap:14px;font-size:15px;display:flex}.navbar-rol{color:#a0bcd8;background:#ffffff1a;border-radius:10px;padding:3px 12px;font-size:13px}.navbar-user button{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff6;border-radius:3px;padding:6px 16px;font-size:14px;transition:background .15s}.navbar-user button:hover{background-color:#ffffff26}.panel{background-color:#fff;border:1px solid #d8dee6;border-radius:4px;margin-bottom:24px;padding:24px 28px;box-shadow:0 1px 4px #0000000f}.panel-title{color:#1a3a5c;text-transform:uppercase;letter-spacing:.8px;border-bottom:2px solid #1a3a5c;margin-bottom:20px;padding-bottom:10px;font-size:16px;font-weight:700}.form-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px 28px;display:grid}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:#555;text-transform:uppercase;letter-spacing:.4px;font-size:13px;font-weight:600}.form-group input,.form-group select,.form-group textarea{color:#1a1a1a;background:#fff;border:1px solid #c5cdd8;border-radius:3px;outline:none;height:42px;padding:10px 12px;font-family:inherit;font-size:15px;transition:border-color .15s}.form-group textarea{resize:vertical;height:auto}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#1a3a5c;box-shadow:0 0 0 2px #1a3a5c1a}.form-group input[readonly],.form-group input:disabled{color:#444;background-color:#f5f7fa;border-color:#dde2e8}.form-row{flex-wrap:wrap;gap:24px;display:flex}.form-row .form-group{flex:1;min-width:110px}.btn{cursor:pointer;color:#333;white-space:nowrap;background-color:#f4f6f9;border:1px solid #c0c8d4;border-radius:3px;padding:10px 24px;font-family:inherit;font-size:15px;transition:background .15s,border-color .15s}.btn:hover{background-color:#e6eaf0;border-color:#aab4c0}.btn-primary{color:#fff;background-color:#1a3a5c;border-color:#1a3a5c}.btn-primary:hover{background-color:#142e4a;border-color:#142e4a}.btn-success{color:#fff;background-color:#2a6e3f;border-color:#2a6e3f}.btn-success:hover{background-color:#215832}.btn-danger{color:#fff;background-color:#c0392b;border-color:#c0392b}.btn-danger:hover{background-color:#a93226}.btn-sm{padding:7px 16px;font-size:14px}.btn-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.table-container{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:15px}table th{color:#1a3a5c;text-align:left;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;background-color:#edf2f7;border-bottom:2px solid #c0cedd;padding:14px 16px;font-size:14px;font-weight:700}table td{color:#1a1a1a;border-bottom:1px solid #e4e9ef;padding:13px 16px;font-size:16px}table tbody tr:hover{cursor:pointer;background-color:#eef4ff}table tfoot tr{background-color:#f5f7fa}.text-right{text-align:right}.text-center{text-align:center}.badge{white-space:nowrap;border-radius:10px;padding:5px 14px;font-size:14px;font-weight:600;display:inline-block}.badge-pendiente{color:#7d3c00;background-color:#fff3e0;border:1px solid #f5a623}.badge-pagado{color:#1a5e2e;background-color:#e6f7ed;border:1px solid #4caf7d}.dashboard-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.dashboard-filters{flex-wrap:wrap;flex:1;align-items:center;gap:10px;display:flex}.search-input{border:1px solid #c5cdd8;border-radius:3px;outline:none;flex:1;min-width:240px;height:44px;padding:10px 14px;font-family:inherit;font-size:15px;transition:border-color .15s}.search-input:focus{border-color:#1a3a5c;box-shadow:0 0 0 2px #1a3a5c1a}.filter-select{color:#1a1a1a;cursor:pointer;background:#fff;border:1px solid #c5cdd8;border-radius:3px;outline:none;min-width:160px;height:44px;padding:0 12px;font-family:inherit;font-size:15px;transition:border-color .15s}.filter-select:focus{border-color:#1a3a5c;box-shadow:0 0 0 2px #1a3a5c1a}.search-bar{align-items:center;gap:10px;margin-bottom:16px;display:flex}.search-bar input{border:1px solid #c5cdd8;border-radius:3px;outline:none;width:380px;height:44px;padding:10px 14px;font-family:inherit;font-size:15px;transition:border-color .15s}.search-bar input:focus{border-color:#1a3a5c;box-shadow:0 0 0 2px #1a3a5c1a}.login-wrapper{background-color:#eef1f5;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{background:#fff;border:1px solid #d0d8e4;border-radius:6px;width:440px;padding:44px 52px;box-shadow:0 4px 16px #0000001a}.login-header{text-align:center;border-bottom:2px solid #1a3a5c;margin-bottom:32px;padding-bottom:24px}.login-header h1{color:#1a3a5c;letter-spacing:.5px;font-size:22px;font-weight:800}.login-header .subtitulo{color:#555;margin-top:6px;font-size:15px}.login-header .direccion{color:#999;margin-top:4px;font-size:13px}.login-box .form-group{margin-bottom:18px}.login-box .form-group label{font-size:14px}.login-box .form-group input{width:100%;height:46px;font-size:16px}.login-box .btn{width:100%;margin-top:6px;padding:12px;font-size:16px;font-weight:600}.login-error{color:#c0392b;background:#fdf0ee;border:1px solid #e8c4bf;border-radius:3px;margin-top:-10px;margin-bottom:14px;padding:8px 12px;font-size:14px}.login-hint{color:#bbb;text-align:center;border-top:1px solid #eee;margin-top:20px;padding-top:14px;font-size:13px}.recibo-wrapper{background:#fff;border:2px solid #1a3a5c;border-radius:4px;max-width:660px;padding:28px 32px;font-size:15px;box-shadow:0 2px 8px #00000014}.recibo-header{border-bottom:2px solid #1a3a5c;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:16px;display:flex}.recibo-empresa h2{color:#1a3a5c;font-size:20px;font-weight:800}.recibo-empresa p{color:#666;margin-top:3px;font-size:13px}.recibo-tipo{color:#fff;background-color:#1a3a5c;border-radius:2px;padding:6px 16px;font-size:14px;font-weight:700}.recibo-numero{color:#c00;text-align:right;letter-spacing:1px;margin-top:8px;font-size:26px;font-weight:800}.recibo-field{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:12px;display:flex}.recibo-field label{white-space:nowrap;font-size:15px;font-weight:600}.recibo-field .line{border-bottom:1px solid #555;flex:1;min-width:100px;padding-bottom:2px;font-size:15px}.recibo-monto-box{background:#fafafa;border:1px solid #aaa;border-radius:3px;min-height:58px;margin:14px 0;padding:12px 14px}.recibo-monto-box label{color:#888;text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px;font-size:12px;display:block}.recibo-pago-opciones{align-items:center;gap:20px;margin:12px 0;display:flex}.recibo-firmas{justify-content:space-between;margin-top:44px;padding-top:10px;display:flex}.recibo-firma-box{text-align:center;width:44%}.recibo-firma-box .linea-firma{border-top:1px solid #333;margin-bottom:8px}.recibo-firma-box p{color:#555;font-size:13px}.confirm-dialog{text-align:center;background:#fff;border:1px solid #d0d8e4;border-radius:6px;width:400px;max-width:92vw;margin-top:80px;padding:36px 40px 28px;box-shadow:0 12px 40px #00000038}.confirm-icono{border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;margin:0 auto 18px;font-size:26px;font-weight:900;line-height:1;display:flex}.confirm-icono-peligro{color:#c0392b;background:#fdecea;border:2px solid #e74c3c}.confirm-icono-aviso{color:#b07800;background:#fff8e1;border:2px solid #f5a623}.confirm-titulo{color:#1a1a1a;margin-bottom:10px;font-size:17px;font-weight:700}.confirm-detalle{color:#555;white-space:pre-line;text-align:left;background:#f8fafc;border:1px solid #e4e9ef;border-radius:4px;margin-bottom:26px;padding:10px 14px;font-size:14px;line-height:1.65}.confirm-acciones{justify-content:center;gap:10px;display:flex}.panel-inner{background:#f8fafc;border:1px solid #d0dae6;border-radius:4px;margin-bottom:20px;padding:20px 24px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.saldo-pendiente{color:#c0392b;font-weight:700}.saldo-pagado{color:#1a5e2e;font-weight:700}.saldo-credito{color:#1a5c8a;font-weight:700}.badge-credito{color:#1a5c8a;background-color:#e8f0f7;border:1px solid #7aafd4}@media print{@page{size:A4 portrait;margin:0}body *{visibility:hidden!important}#recibo-imprimible,#recibo-imprimible *{visibility:visible!important}#recibo-imprimible{border:none!important;width:210mm!important;height:148mm!important;margin:0!important;padding:0!important;position:fixed!important;top:0!important;left:0!important}}
