:root{--primary:#009945;--primary-dark:#007a36;--primary-light:#e6f5ed;--text-dark:#1f2937;--text-light:#ffffff;--border:#e5e7eb;--sb-width:254px;--sb-width-collapsed:80px}.navbar-user-name{max-width:220px;overflow:hidden;text-overflow:ellipsis}.navbar-green{background:linear-gradient(90deg,var(--primary),var(--primary-dark))!important;box-shadow:0 4px 12px rgba(0,0,0,.12)}.navbar-green .nav-link,.navbar-green h6{color:#fff!important;font-weight:600}.navbar-green .navbar-toggler{filter:brightness(0) invert(1)}.navbar-vertical{background:#fff;border-right:1px solid var(--border);overflow:visible!important}.navbar-vertical .nav-link{color:var(--text-dark);border-radius:8px;margin:4px 10px;transition:all .2s ease}.navbar-vertical .nav-link:hover{background:var(--primary-light);color:var(--primary)}.navbar-vertical .nav-link.active{background:var(--primary-light)!important;color:var(--primary)!important;border-left:4px solid var(--primary)!important;box-shadow:none!important}.navbar-vertical .nav-link.active i,.navbar-vertical .nav-link.active svg{color:var(--primary)!important}.navbar-vertical .nav-link.active:hover{background:#d7f0e3!important}main.main{overflow-x:auto!important}.content{width:calc(100% - var(--sb-width))!important;max-width:calc(100% - var(--sb-width))!important;margin-left:var(--sb-width)!important;margin-right:0!important;transition:margin-left .2s ease,width .2s ease;padding-left:clamp(16px,2vw,24px)!important;padding-right:clamp(16px,2vw,24px)!important}.navbar-top{left:0!important;width:100%!important;z-index:1020}.content .container-fluid{width:100%!important;max-width:100%!important;margin:0!important}.navbar-vertical-collapsed .content{width:calc(100% - var(--sb-width-collapsed))!important;max-width:calc(100% - var(--sb-width-collapsed))!important;margin-left:var(--sb-width-collapsed)!important;padding-left:1.75rem!important}.btn-login{background:var(--primary)!important;border:none!important;border-radius:12px;color:#fff!important;font-weight:600;box-shadow:0 4px 10px rgba(0,153,69,.25)}.btn-login:hover{background:var(--primary-dark)!important}.form-control:focus{border-color:var(--primary)!important;box-shadow:0 0 0 .2rem rgba(0,153,69,.25)!important}.upload-card .card-body.upload-box{padding:20px}.upload-inner{width:100%;border:2px dashed #d1d5db;border-radius:14px;background:#f9fafb;padding:45px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;transition:all .25s ease}.upload-inner:hover{border-color:var(--primary);background:#f3fdf6}.upload-inner.disabled{opacity:.6;pointer-events:none}.upload-icon-wrapper{width:60px;height:60px;border-radius:50%;background:#e5efe9;display:flex;align-items:center;justify-content:center;margin-bottom:16px}.upload-icon{font-size:22px;color:var(--primary)}.upload-text{font-size:14px;font-weight:700;color:#374151}.upload-info{font-size:12px;color:#6b7280;margin-top:6px}.upload-card .card-header{border-bottom:none!important}.upload-card .card-body{padding-top:16px!important;padding-bottom:20px!important}.upload-card{box-shadow:none!important}.table thead{background:var(--primary-light)}.table thead th{color:var(--primary-dark);font-weight:600;text-align:center}.table td,.table th{vertical-align:middle}.card-body,.table-responsive{overflow-x:auto}.navbar-vertical-collapsed .navbar-vertical{width:var(--sb-width-collapsed)!important;min-width:var(--sb-width-collapsed)!important;max-width:var(--sb-width-collapsed)!important}.navbar-vertical-collapsed .nav-link{display:flex!important;justify-content:center;align-items:center;padding:12px 0!important;position:relative}.navbar-vertical-collapsed .nav-link-text{display:none!important}.navbar-vertical-collapsed .nav-link-icon{display:flex!important;justify-content:center;width:100%}.navbar-vertical-collapsed .nav-link svg{width:20px;height:20px}.navbar-vertical-collapsed .nav-link:after{content:attr(data-label);position:absolute;left:70px;top:50%;transform:translateY(-50%);background:#111;color:#fff;padding:6px 10px;border-radius:6px;font-size:12px;white-space:nowrap;opacity:0;transition:.2s}.navbar-vertical-collapsed .nav-link:hover:after{opacity:1;left:75px}.sidebar-actions{display:flex;flex-direction:column;gap:6px;margin-top:20px;padding-left:14px;padding-right:14px}.navbar-vertical-label{font-size:11px;font-weight:600;color:#374151;letter-spacing:normal;margin:0;padding-left:14px}.sidebar-actions-text{font-size:13px;color:#4b5563;line-height:1.5;margin:0;padding-left:14px;padding-right:14px;text-transform:none!important;opacity:1!important}.navbar-vertical-collapsed .navbar-vertical-label,.navbar-vertical-collapsed .sidebar-actions-text{display:none!important}.blink{animation:blink 1s infinite}.navbar-title{font-size:18px;white-space:nowrap}.page-btn{min-width:34px;height:32px;border-radius:6px;font-size:13px;display:flex;align-items:center;justify-content:center;color:#374151;padding:0;transition:all .2s ease}.page-btn,.page-number{background:#fff;border:1px solid #e5e7eb}.page-number.active{background:#fff;border:1.5px solid var(--primary);color:#111;font-weight:600}.page-arrow{background:#f9fafb;border:1px solid #e5e7eb;color:#6b7280}.page-arrow:hover,.page-number:hover{border-color:var(--primary);color:var(--primary);background:#f6fbf8}.pagination-info{font-size:13px;color:#6b7280}.pagination-info span{font-weight:600;color:#374151}.separator{margin:0 8px;color:#d1d5db}.table-actions{display:flex;justify-content:center;align-items:center;gap:12px}.action-icon{font-size:14px;color:#6b7280;cursor:pointer;transition:all .2s ease;padding:6px;border-radius:6px}.action-icon.fa-pen:hover{color:var(--primary)}.action-icon.fa-trash:hover{color:#ef4444}.action-icon:hover{transform:scale(1.15);background:rgba(0,0,0,.05)}.action-btn{border:0;background:transparent;padding:0;margin:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.action-btn:focus{outline:none;box-shadow:none}.action-btn .action-icon{pointer-events:none}.avatar-selector{display:flex;flex-wrap:wrap;gap:8px;max-height:160px;overflow-y:auto;padding:6px;border:1px solid #e5e7eb;border-radius:8px}.avatar-option{width:40px;height:40px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .2s ease}.avatar-option:hover{transform:scale(1.1)}.avatar-option.active{border:2px solid var(--primary);box-shadow:0 0 0 3px rgba(0,153,69,.25);transform:scale(1.05)}.badge-status{font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;display:inline-block;letter-spacing:.2px}.badge-vencido{background:#fee2e2;color:#b91c1c}.badge-pendiente{background:#fef3c7;color:#92400e}.badge-pagado{background:#dcfce7;color:#166534}.card-selectable-sub>div{height:16px;display:flex;align-items:center}.card-selectable{position:relative;border-radius:10px;background:#fff;padding:4px;cursor:pointer;transition:all .2s ease;border:1px solid rgba(0,153,69,.25);box-shadow:0 1px 2px rgba(0,0,0,.04)}.card-selectable:hover{background:var(--primary-light);border-color:rgba(0,153,69,.45);transform:translateY(-1px)}.card-selectable.active{background:var(--primary-light);border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.card-selectable.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:4px;border-radius:4px;background:var(--primary)}.card-selectable-title{font-size:14px;font-weight:600;color:var(--text-dark)}.card-selectable.active .card-selectable-title{color:var(--primary)}.card-selectable-sub{font-size:11px;color:#6b7280;margin-top:2px}.dashboard-card{background:#fff;border-radius:16px;padding:18px 18px 16px;border:1px solid #e5e7eb;box-shadow:0 6px 18px rgba(0,0,0,.05);transition:all .25s ease;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.dashboard-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.08)}.dashboard-card small{font-size:12px;font-weight:600;letter-spacing:.3px;color:#6b7280}.dashboard-card h3{font-size:26px;font-weight:700;margin-top:6px;color:#111827;letter-spacing:-.5px}.dashboard-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:18px;position:absolute;right:14px;top:14px}.dashboard-card:after{content:"";position:absolute;bottom:0;left:0;height:3px;width:100%;background:linear-gradient(90deg,transparent,rgba(0,0,0,.05))}.top-item{margin-bottom:14px}.top-row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}.top-name{font-weight:600;color:#374151}.top-bar{height:6px;background:#f1f5f9;border-radius:999px;overflow:hidden}.top-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),#00c853);border-radius:999px}.card-border-red{border-left:4px solid #ef4444}.card-border-yellow{border-left:4px solid #f59e0b}.card-border-blue{border-left:4px solid #3b82f6}.text-danger.dashboard-icon{background:#fee2e2}.text-warning.dashboard-icon{background:#fef3c7}.text-primary.dashboard-icon{background:#dbeafe}.card-gradient{background:linear-gradient(135deg,#009945,#007a36);color:#fff;border:none}.card-gradient h3,.card-gradient small{color:#fff}.card-gradient .dashboard-icon{background:rgba(255,255,255,.2)}.dashboard-card .d-flex small{font-size:12px;color:#6b7280}.dashboard-card .d-flex b{font-size:14px;color:#111827}.skeleton{height:120px;border-radius:16px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 37%,#f3f4f6 63%);background-size:400% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (max-width:768px){.navbar-vertical{position:fixed!important;top:0!important;left:0!important;width:var(--sb-width)!important;min-width:var(--sb-width)!important;max-width:var(--sb-width)!important;height:100vh!important;z-index:1030!important;transform:translateX(-100%)!important;transition:transform .3s ease!important;display:block!important}.navbar-vertical.show{transform:translateX(0)!important}.content{width:100%!important;max-width:100%!important;margin-left:0!important;padding-left:16px!important;padding-right:16px!important}main.main{padding-left:0!important;overflow-x:hidden!important}.navbar-vertical-collapsed .content{width:100%!important;max-width:100%!important;margin-left:0!important;padding-left:16px!important}}@media (min-width:769px){.navbar-vertical{position:fixed!important;top:56px!important;left:0!important;height:calc(100vh - 56px)!important;width:var(--sb-width)!important;min-width:var(--sb-width)!important;max-width:var(--sb-width)!important;transform:none!important;transition:none!important;z-index:1010!important;display:block!important}.navbar-vertical.collapse,.navbar-vertical.collapsing{display:block!important;visibility:visible!important}.navbar-vertical.collapsing{height:calc(100vh - 56px)!important;transition:none!important}.content{width:calc(100% - var(--sb-width))!important;max-width:calc(100% - var(--sb-width))!important;margin-left:var(--sb-width)!important}.navbar-vertical-collapsed .navbar-vertical{width:var(--sb-width-collapsed)!important}.navbar-vertical-collapsed .content{width:calc(100% - var(--sb-width-collapsed))!important;margin-left:var(--sb-width-collapsed)!important}}.dropdown-profile,.dropdown-profile .text-body,.dropdown-profile .text-body-emphasis,.dropdown-profile h6{color:var(--text-dark)!important}.btn-confirm{background:var(--primary)!important;color:#fff!important;border:none!important;border-radius:10px;padding:8px 18px;font-weight:600}.btn-confirm:hover{background:var(--primary-dark)!important}.btn-light{background:#f3f4f6!important;color:#374151!important;border-radius:10px;border:none}.modal-content{border-radius:14px}.modal-header{border-bottom:1px solid #eee}.modal-footer{border-top:1px solid #eee}.link-forgot{color:var(--primary)!important;text-decoration:none;transition:all .2s ease}.link-forgot:hover{color:var(--primary-dark)!important;text-decoration:underline}.link-forgot:focus{outline:none}.link-forgot:active,.link-forgot:focus{color:var(--primary-dark)!important}.swal2-actions{gap:12px!important;margin-top:20px}.form-check-input:checked{background-color:var(--primary)!important}.form-check-input:checked,.form-check-input:focus,.form-check-input:hover{border-color:var(--primary)!important}.form-check-input:focus{box-shadow:0 0 0 .2rem rgba(0,153,69,.25)!important}@keyframes blink{0%{opacity:1}50%{opacity:.3}to{opacity:1}}