:root{--bs-primary: #0f766e;--bs-primary-rgb: 15, 118, 110;--bs-link-color: #0f766e;--bs-link-hover-color: #115e59;--app-sidebar-width: 280px;--app-bg: #e8f0ee;--app-ink: #10241f;--app-muted: #5b726c;--font-sans: "Instrument Sans", ui-sans-serif, system-ui, sans-serif}html,body,#app{height:100%;min-height:100%}body{background:var(--app-bg);color:var(--app-ink);font-family:var(--font-sans)}.app-shell{height:100vh;height:100dvh;min-height:100vh;display:flex;overflow:hidden;background:var(--app-bg)}.app-sidebar{--bs-offcanvas-width: min(100%, 300px);--bs-offcanvas-bg: #0b2e2b;--bs-offcanvas-color: #ecf7f6;flex:0 0 var(--app-sidebar-width);width:var(--app-sidebar-width);max-width:var(--app-sidebar-width);height:100%;display:flex!important;flex-direction:column;background:radial-gradient(circle at 18% 0%,rgba(45,212,191,.22),transparent 38%),radial-gradient(circle at 100% 100%,rgba(15,118,110,.35),transparent 42%),#0b2e2b!important;color:#ecf7f6}.app-sidebar .offcanvas-body{background:transparent;color:#ecf7f6}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1.15rem 1.1rem .85rem;flex-shrink:0}.brand{display:flex;align-items:center;gap:.75rem;color:#fff;text-decoration:none}.brand-mark{display:inline-flex;width:2.5rem;height:2.5rem;align-items:center;justify-content:center;border-radius:.85rem;background:#0f766e;color:#fff;font-size:1.1rem}.brand strong{display:block;font-size:1.05rem;line-height:1.1}.brand small{display:block;color:#ffffff8c;font-size:.75rem}.app-sidebar .sidebar-body,.app-sidebar .offcanvas-body{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;flex-grow:1!important;min-height:0!important;overflow:hidden!important;padding:.35rem .9rem 1rem!important}.sidebar-nav{display:flex;flex-direction:column;gap:.15rem;flex:1 1 auto;min-height:0;overflow-y:auto;padding-bottom:.75rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:999px}.nav-section{margin:1rem .75rem .4rem;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#ffffff6b}.app-sidebar .nav-link{display:flex;align-items:center;gap:.8rem;color:#ffffffc7;border-radius:.95rem;padding:.72rem .9rem;font-weight:600;text-decoration:none;border:1px solid transparent}.app-sidebar .nav-link .bi{font-size:1.15rem;width:1.25rem;text-align:center}.app-sidebar .nav-link:hover{background:#ffffff14;color:#fff}.app-sidebar .nav-link.active{background:#0f766ef2;color:#fff;box-shadow:0 8px 20px #0000002e}.app-sidebar .nav-link.is-soon{opacity:.48}.app-sidebar .nav-link em{margin-left:auto;font-style:normal;font-size:.68rem;background:#ffffff1f;border-radius:999px;padding:.15rem .5rem}.sidebar-user{display:flex;align-items:center;gap:.7rem;margin-top:auto;flex-shrink:0;padding:.75rem;border-radius:1.1rem;background:#ffffff14}.user-avatar{width:2.35rem;height:2.35rem;border-radius:.8rem;display:inline-flex;align-items:center;justify-content:center;background:#14b8a6;color:#042f2e;font-size:.8rem;font-weight:700;flex-shrink:0}.user-card .user-avatar{width:2.7rem;height:2.7rem;background:#d7f3ee;color:#0f3d3a}.user-avatar.sm{width:2rem;height:2rem;font-size:.7rem}.user-meta{min-width:0;flex:1}.user-meta strong,.user-meta small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta strong{font-size:.88rem}.user-meta small{color:#ffffff8c}.user-logout{width:2.2rem;height:2.2rem;border:0;border-radius:.7rem;background:transparent;color:#fffc;cursor:pointer}.user-logout:hover{background:#ffffff1f;color:#fff}.app-main{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.app-topbar{position:sticky;top:0;z-index:20;flex-shrink:0;min-height:76px;display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;background:#e8f0eedb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(15,61,58,.06)}.topbar-copy{flex:1;min-width:0}.topbar-kicker{display:block;font-size:.78rem;color:var(--app-muted);line-height:1.2}.topbar-copy strong{display:block;font-size:1.05rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-toggle{width:2.7rem;height:2.7rem;border:0;border-radius:.9rem;background:#fff;color:#0f3d3a;box-shadow:0 6px 16px #10241f14;font-size:1.4rem;cursor:pointer}.topbar-user{align-items:center;gap:.55rem;padding:.3rem .7rem .3rem .3rem;border-radius:999px;background:#fff;box-shadow:0 6px 16px #10241f0f;font-size:.9rem;font-weight:600}.app-content{flex:1 1 auto;min-height:0;width:100%;overflow-y:auto;padding:.5rem 1rem 1.75rem}.content-wrap{width:100%;max-width:none}.page-intro{margin-bottom:1.4rem}.page-intro.has-actions{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem}.page-kicker{margin:0;color:var(--app-muted);font-size:.88rem;font-weight:600}.page-heading{margin:.15rem 0 0;font-size:clamp(1.45rem,2vw,1.85rem);font-weight:700;letter-spacing:-.03em}.page-lead{margin:.45rem 0 0;max-width:42rem;color:var(--app-muted)}.page-actions{display:flex;flex-wrap:wrap;gap:.6rem}.welcome-banner{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.4rem;padding:1.35rem 1.4rem;border-radius:1.5rem;background:radial-gradient(circle at 90% 20%,rgba(45,212,191,.22),transparent 34%),#0b2e2b;color:#ecf7f6;box-shadow:0 18px 40px #0b2e2b2e}.welcome-banner .page-kicker{color:#ffffff9e}.welcome-banner .page-heading{color:#fff}.welcome-banner .page-lead{color:#ffffffad}.section-label{margin:1.7rem 0 .9rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:#6b7f79;font-weight:700}@media(max-width:991.98px){.app-sidebar.offcanvas-lg{flex:none;position:fixed;top:0;bottom:0;z-index:1050;height:100%!important;height:100dvh!important;background:radial-gradient(circle at 18% 0%,rgba(45,212,191,.22),transparent 38%),radial-gradient(circle at 100% 100%,rgba(15,118,110,.35),transparent 42%),#0b2e2b!important}}@media(min-width:992px){.app-sidebar.offcanvas-lg{position:relative!important;align-self:stretch;height:100%!important;width:var(--app-sidebar-width)!important;max-width:var(--app-sidebar-width);background:radial-gradient(circle at 18% 0%,rgba(45,212,191,.22),transparent 38%),radial-gradient(circle at 100% 100%,rgba(15,118,110,.35),transparent 42%),#0b2e2b!important;visibility:visible!important;transform:none!important;border:0!important}.app-sidebar.offcanvas-lg .offcanvas-body{display:flex!important;flex-direction:column!important;flex-grow:1!important;overflow:hidden!important;padding:.35rem .9rem 1rem!important}.app-topbar,.app-content{padding-left:1.75rem;padding-right:1.75rem}.app-content{padding-top:.75rem;padding-bottom:2.5rem}.welcome-banner{padding:1.7rem 1.85rem}}.shortcut-card{min-height:9.5rem;border:0;border-radius:1.5rem;padding:1.25rem;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;color:inherit;box-shadow:0 12px 28px #0f3d3a14;height:100%;transition:transform .15s ease,box-shadow .15s ease}.shortcut-icon{width:2.7rem;height:2.7rem;border-radius:.9rem;display:inline-flex;align-items:center;justify-content:center;background:#ffffff94;font-size:1.3rem}a.shortcut-card:hover,a.shortcut-card:focus{color:inherit;transform:translateY(-3px);box-shadow:0 18px 36px #0f3d3a24}.shortcut-card h2{font-size:1.15rem;margin:0}.shortcut-card p{margin:.25rem 0 0;font-size:.9rem;opacity:.78}.shortcut-card-lg{min-height:10rem}.shortcut-card.is-soon{opacity:.78;box-shadow:none;border:1px dashed rgba(15,61,58,.18)}.soon-chip{font-size:.7rem;font-weight:700;background:#ffffffb8;border-radius:999px;padding:.2rem .55rem}.info-card{border:0;border-radius:1.35rem;background:#fff;box-shadow:0 10px 24px #0f3d3a0f;height:100%}.info-card .card-body{display:flex;align-items:flex-start;gap:.9rem;padding:1.15rem 1.2rem}.info-icon,.step-index{width:2.5rem;height:2.5rem;border-radius:.85rem;display:inline-flex;align-items:center;justify-content:center;background:#d7f3ee;color:#0f766e;font-weight:700;flex-shrink:0}.info-kicker,.info-hint{margin:0;color:var(--app-muted);font-size:.8rem}.info-value{margin:.15rem 0 0;font-weight:700}.empty-panel{border:0;border-radius:1.5rem;background:#fff;box-shadow:0 10px 24px #0f3d3a0f}.empty-state{text-align:center;padding:3rem 1.5rem}.empty-icon{width:4.25rem;height:4.25rem;border-radius:1.35rem;display:inline-flex;align-items:center;justify-content:center;background:#d7f3ee;color:#0f766e;font-size:1.7rem}.empty-state h2{margin:1rem 0 .35rem;font-size:1.2rem}.empty-state p{margin:0;color:var(--app-muted);max-width:28rem;margin-inline:auto}.filter-chip{border:0;border-radius:999px;padding:.5rem 1rem;background:#fff;color:#3d5550;font-weight:600;box-shadow:0 4px 12px #10241f0d;cursor:pointer}.filter-chip.is-active{background:#0f766e;color:#fff}.filter-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr));gap:.85rem;margin-bottom:1.5rem;align-items:end}.filter-bar.is-single{grid-template-columns:minmax(14rem,18rem)}.filter-date .form-label{margin-bottom:.35rem}.filter-date .form-control{min-height:3.15rem;border:0;border-radius:1.1rem;box-shadow:0 4px 12px #10241f0d;background:#fff}.filter-select{position:relative}.filter-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:3.15rem;padding:.45rem 1rem;border:0;border-radius:1.1rem;background:#fff;color:#10241f;text-align:left;box-shadow:0 4px 12px #10241f0d;cursor:pointer}.filter-select.has-value .filter-select-trigger,.filter-select.is-open .filter-select-trigger{box-shadow:0 0 0 2px #0f766e inset,0 4px 12px #10241f0d}.filter-select-trigger small{display:block;color:var(--app-muted);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.filter-select-trigger strong{display:block;font-size:.95rem;font-weight:700;line-height:1.2}.filter-select-trigger i{color:#0f766e;font-size:.9rem}.filter-select-menu{position:absolute;z-index:30;top:calc(100% + .4rem);left:0;right:0;min-width:100%;max-height:18rem;overflow:auto;padding:.45rem;border-radius:1.1rem;background:#fff;box-shadow:0 16px 36px #0f3d3a29}.filter-select-option{display:flex;align-items:center;gap:.7rem;margin:0;padding:.65rem .75rem;border-radius:.8rem;font-weight:600;color:#10241f;cursor:pointer}.filter-select-option:hover{background:#e8f4f2}.filter-select-option input{width:1.05rem;height:1.05rem;margin:0;accent-color:#0f766e;flex-shrink:0}.payment-summary{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.payment-summary-card{background:#fff;border-radius:1.25rem;padding:1.1rem 1.25rem;box-shadow:0 10px 24px #0f3d3a0f}.payment-summary-card small{display:block;color:var(--app-muted);font-size:.82rem;margin-bottom:.2rem}.payment-summary-card strong{font-size:1.35rem}.tile-clientes{background:#d7f3ee;color:#0f3d3a}.tile-usuarios{background:#e8e7fb;color:#312e81}.tile-vehiculos{background:#ffe8cc;color:#9a3412}.tile-contratos{background:#dbeafe;color:#1e3a8a}.tile-kilometraje{background:#fce7f3;color:#9d174d}.tile-reportes{background:#ecfccb;color:#3f6212}.btn-primary{--bs-btn-bg: #0f766e;--bs-btn-border-color: #0f766e;--bs-btn-hover-bg: #115e59;--bs-btn-hover-border-color: #115e59;--bs-btn-active-bg: #134e4a;--bs-btn-active-border-color: #134e4a}.form-control-lg,.form-select-lg,.btn-lg{min-height:3.15rem}.customer-card,.user-card{border:0;border-radius:1.25rem;box-shadow:0 10px 24px #0f3d3a0f;background:#fff}.customer-card .badge,.user-card .badge{background:#e8f4f2;color:#0f3d3a}.vehicle-plate{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.08em;color:#0f766e}.status-pill{align-self:flex-start;border-radius:999px;padding:.25rem .7rem;font-size:.75rem;font-weight:700;white-space:nowrap}.status-disponible{background:#d7f3ee;color:#0f3d3a}.status-en_servicio{background:#dbeafe;color:#1e3a8a}.status-mantenimiento{background:#ffe8cc;color:#9a3412}.status-inactivo{background:#e5e7eb;color:#4b5563}.status-en_curso{background:#dbeafe;color:#1e3a8a}.status-pendiente_pago{background:#ffe8cc;color:#9a3412}.status-pagado{background:#d7f3ee;color:#0f3d3a}.status-reservado{background:#ffe8cc;color:#9a3412}.status-confirmado{background:#dbeafe;color:#1e3a8a}.status-pendiente_saldo{background:#fce7f3;color:#9d174d}.status-cerrado{background:#d7f3ee;color:#0f3d3a}.status-paseo{background:#dbeafe;color:#1e3a8a}.status-contrato{background:#e8e7fb;color:#312e81}.status-negocio,.status-programado{background:#ffe8cc;color:#9a3412}.status-realizado{background:#d7f3ee;color:#0f3d3a}.status-boleta{background:#dbeafe;color:#1e3a8a}.status-factura{background:#e8e7fb;color:#312e81}.status-ninguno{background:#e5e7eb;color:#4b5563}.status-chofer{background:#e8e7fb;color:#312e81}.status-combustible{background:#fce7f3;color:#9d174d}.status-soat{background:#d7f3ee;color:#0f3d3a}.status-repuestos{background:#ffe8cc;color:#9a3412}.status-otro{background:#e5e7eb;color:#4b5563}.status-vigente{background:#d7f3ee;color:#0f3d3a}.status-por_vencer{background:#ffe8cc;color:#9a3412}.status-vencido{background:#fee2e2;color:#991b1b}.status-sin_fecha,.status-sin_docs{background:#e5e7eb;color:#4b5563}.status-pendiente{background:#ffe8cc;color:#9a3412}.status-pagada{background:#d7f3ee;color:#0f3d3a}.status-multa{background:#fee2e2;color:#991b1b}.app-modal{position:fixed;inset:0;z-index:1080;display:flex;align-items:center;justify-content:center;padding:1.25rem;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#0f3d3a73}.app-modal .modal-dialog{width:min(100%,560px);max-width:560px;margin:auto}.app-modal .modal-dialog.is-wide{width:min(100%,720px);max-width:720px}.permission-groups{display:grid;gap:.85rem}.permission-group{border:1px solid #e4eeec;border-radius:1rem;padding:.85rem 1rem;background:#f7faf9}.permission-group-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.45rem}.permission-group-head .btn-link{color:#0f766e;text-decoration:none;font-weight:600}.permission-item{display:flex;align-items:flex-start;gap:.55rem;margin:0;padding:.2rem 0;font-size:.95rem;color:#334155}.permission-item input{margin-top:.28rem}.app-modal .modal-content{background:#fff;border:0;overflow:hidden;box-shadow:0 24px 60px #00000047}.app-modal-form{display:flex;flex-direction:column;max-height:calc(100dvh - 2.5rem);min-height:0;background:#fff}.app-modal-form .modal-header{flex-shrink:0;background:#fff;padding:1.35rem 1.5rem 1rem;border-bottom:0}.app-modal-form .modal-title{font-size:1.2rem;font-weight:700}.app-modal-form .modal-body{display:grid;gap:1.15rem;flex:1 1 auto;min-height:0;padding:.15rem 1.5rem 1.35rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.app-modal-form .form-label{margin-bottom:.4rem;font-weight:600}.app-modal-form .form-control-lg,.app-modal-form .form-select-lg{min-height:2.85rem;padding:.65rem .9rem;font-size:1rem}.app-modal-form .modal-footer{display:flex;flex-shrink:0;justify-content:flex-end;gap:.75rem;margin:0;padding:1rem 1.5rem 1.25rem;background:#f7faf9;border-top:1px solid #e4eeec}.app-modal-form .modal-footer .btn{min-width:7.5rem;min-height:2.7rem;padding:.55rem 1.15rem}.app-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}.app-modal-grid>*{min-width:0}.catalog-panel{background:#fff;border-radius:1.35rem;padding:1.25rem;box-shadow:0 10px 24px #0f3d3a0f;height:100%}.catalog-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.15rem}.catalog-panel-head h2{margin:0;font-size:1.1rem}.catalog-panel-head p{margin:.2rem 0 0;color:var(--app-muted);font-size:.9rem}.catalog-item{display:flex;align-items:center;justify-content:space-between;gap:.85rem;padding:.9rem 1rem;border-radius:1rem;background:#f7faf9}.catalog-item strong,.catalog-item small{display:block}.catalog-item small{margin-top:.15rem;color:var(--app-muted);font-size:.8rem}.catalog-item-actions{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;gap:.4rem}.rental-detail-list{display:grid;gap:0;margin:0}.rental-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.7rem 0;border-bottom:1px solid #e7eeec}.rental-detail-row dt{margin:0;color:var(--app-muted);font-size:.86rem}.rental-detail-row dd{margin:0;text-align:right;font-weight:600}@media(max-width:420px){.app-modal-grid{grid-template-columns:1fr}.app-modal-form .modal-footer{flex-direction:column-reverse}.app-modal-form .modal-footer .btn{width:100%}}.login-screen{min-height:100%;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:radial-gradient(circle at 18% 20%,rgba(45,212,191,.28),transparent 32%),radial-gradient(circle at 82% 78%,rgba(15,118,110,.45),transparent 36%),#0b2e2b}.login-card{width:100%;max-width:420px;background:#fff;border-radius:1.5rem;padding:2rem 1.5rem 1.75rem;box-shadow:0 24px 60px #00000047}.login-brand{text-align:center;margin-bottom:1.75rem}.login-mark{display:inline-flex;width:3.5rem;height:3.5rem;align-items:center;justify-content:center;border-radius:1rem;background:#0f766e;color:#fff;font-size:1.5rem;margin-bottom:.85rem}.login-brand h1{margin:0;font-size:1.25rem;font-weight:700;color:#0f3d3a}.login-form{display:grid;gap:1rem}.login-form label{display:block;margin-bottom:.4rem;font-size:.9rem;font-weight:600;color:#334155}.login-form input{width:100%;min-height:3.15rem;border:1px solid #d7e3e1;border-radius:.9rem;padding:.75rem 1rem;font-size:1rem;outline:none}.login-form input:focus{border-color:#0f766e;box-shadow:0 0 0 4px #0f766e26}.login-form p,.login-error{margin:.35rem 0 0;color:#dc2626;font-size:.875rem}.login-form button{width:100%;min-height:3.15rem;border:0;border-radius:.9rem;background:#0f766e;color:#fff;font-size:1rem;font-weight:700;margin-top:.35rem}.login-form button:disabled{opacity:.65}@media(min-width:576px){.login-card{padding:2.5rem}}
