: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-period{display:flex;flex-direction:column;gap:.35rem;min-width:0}.filter-period-label{color:var(--app-muted);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.filter-period-options{display:flex;flex-wrap:wrap;gap:.4rem;padding:.35rem;border-radius:1.1rem;background:#fff;box-shadow:0 4px 12px #10241f0d}.filter-period-btn{border:0;border-radius:.85rem;min-height:2.45rem;padding:.35rem .9rem;background:transparent;color:#4b5563;font-weight:700;font-size:.92rem}.filter-period-btn.is-active{background:#e8f4f2;color:#0f3d3a}.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}.payment-summary-card.is-warn{background:#fff7ed}.payment-summary-card.is-warn strong{color:#b45309}.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}.status-created{background:#d7f3ee;color:#0f3d3a}.status-updated{background:#dbeafe;color:#1e3a8a}.status-deleted{background:#fee2e2;color:#991b1b}.status-login{background:#ecfccb;color:#3f6212}.status-logout{background:#e5e7eb;color:#4b5563}.status-cancelled{background:#f3e8ff;color:#6b21a8}.status-cancelado{background:#fee2e2;color:#991b1b}.contract-period{color:var(--app-muted);font-size:.92rem}.tour-company{color:var(--app-muted);font-size:.95rem;font-weight:600}.contract-meta{display:flex;flex-wrap:wrap;gap:.35rem 0;color:var(--app-muted);font-size:.86rem}.contract-meta span:not(:last-child):after{content:"·";margin:0 .55rem;opacity:.4}.contract-alert{margin:0;padding:.7rem .9rem;border-radius:.9rem;background:#dbeafe;color:#1e3a8a;font-size:.9rem;font-weight:600}.contract-foot{display:flex;flex-wrap:wrap;gap:.35rem 0;margin:0;color:var(--app-muted);font-size:.86rem}.contract-foot span:not(:last-child):after{content:"·";margin:0 .55rem;opacity:.4}.contract-money{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.contract-money>div{padding:.75rem .85rem;border-radius:.95rem;background:#f4f8f7}.contract-money small{display:block;margin-bottom:.15rem;color:var(--app-muted);font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.contract-money strong{font-size:1.05rem}.contract-money>div.is-due{background:#fff4e8}.contract-money>div.is-due strong{color:#9a3412}.contract-card .dropdown-menu,.tour-card .dropdown-menu{border:0;border-radius:1rem;padding:.45rem}.contract-card .dropdown-item,.tour-card .dropdown-item{border-radius:.7rem;padding:.65rem .85rem}.log-change{display:grid;grid-template-columns:minmax(6rem,.8fr) 1fr 1fr;gap:.5rem;padding:.55rem 0;border-top:1px solid #e5eeeb;font-size:.86rem}.log-change:first-child{border-top:0}.log-change dt{margin:0;color:#5b726c;font-weight:700}.log-change dd{margin:0;word-break:break-word}.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}.app-modal-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;padding:.3rem;border-radius:1rem;background:#eef5f3}.app-modal-tab{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:0;border-radius:.8rem;padding:.7rem .9rem;background:transparent;color:var(--app-muted);font-weight:700;font-size:.92rem}.app-modal-tab.is-active{background:#fff;color:#0f3d3a;box-shadow:0 1px 2px #0f3d3a14}.app-modal-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.4rem;padding:0 .35rem;border-radius:999px;background:#d7f3ee;color:#0f3d3a;font-size:.75rem}.app-modal-tab.is-active .app-modal-tab-count{background:#0f766e;color:#fff}.app-modal-tab-panel{display:grid;gap:inherit}.receipt-sheet{display:grid;gap:1.15rem;padding:1.15rem 1.2rem;border-radius:1.1rem;background:#f7faf9;border:1px solid #e4eeec}.receipt-sheet-head,.receipt-sheet-meta{display:flex;justify-content:space-between;gap:1rem}.receipt-sheet-head strong,.receipt-sheet-meta strong{display:block}.receipt-sheet-head small,.receipt-sheet-meta span,.receipt-sheet-meta small,.receipt-line-meta{display:block;color:var(--app-muted);font-size:.82rem}.receipt-section{display:grid;gap:.55rem;padding-top:.35rem;border-top:1px dashed #d7e5e2}.receipt-section-title{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#0f766e}.receipt-table{width:100%;border-collapse:collapse;font-size:.92rem}.receipt-table th,.receipt-table td{padding:.55rem .35rem;border-bottom:1px solid #e4eeec;vertical-align:top}.receipt-table thead th{font-size:.78rem;font-weight:600;color:var(--app-muted);text-transform:uppercase;letter-spacing:.03em}.receipt-table tfoot th,.receipt-table tfoot td{border-bottom:0;padding-top:.75rem}.receipt-badge{display:inline-block;padding:.15rem .45rem;border-radius:999px;font-size:.72rem;font-weight:700;white-space:nowrap}.receipt-badge.is-included{background:#e7f6f2;color:#0f766e}.receipt-badge.is-extra{background:#fff4e6;color:#b45309}.receipt-empty{color:var(--app-muted);font-size:.9rem}.receipt-pay-empty{display:grid;gap:.35rem}.receipt-balance-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.55rem .2rem 0;border-top:1px solid #e4eeec}@media(max-width:640px){.receipt-sheet-head,.receipt-sheet-meta{flex-direction:column}.receipt-sheet-head .text-end{text-align:left!important}}.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}.catalog-item-stack{align-items:stretch;flex-direction:column}.service-leg{padding:.9rem 1rem;border-radius:1rem;background:#f4f8f7}.svc-amount{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.svc-amount-field{flex:1 1 14rem;max-width:18rem}.svc-quota{padding:.35rem .7rem;border-radius:999px;background:#e7f6f2;color:#0f766e;font-size:.8rem;font-weight:600;white-space:nowrap}.svc-quota.is-extra{background:#fff4e6;color:#b45309}.svc-section-head{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--app-muted)}.svc-section-head small{font-weight:600}.svc-units{display:grid;gap:.6rem}.svc-unit{border:1px solid #e4eeec;border-radius:1rem;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.svc-unit.is-open{display:grid;gap:.85rem;padding:.9rem 1rem .75rem;border-color:#99d5c9;box-shadow:0 6px 18px #0f766e14}.svc-unit-summary{display:flex;align-items:center;gap:.75rem;width:100%;padding:.7rem .9rem;border:0;border-radius:inherit;background:transparent;text-align:left}.svc-unit-summary:hover{background:#f7faf9}.svc-unit-text{display:grid;flex:1;min-width:0}.svc-unit-text strong,.svc-unit-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.svc-unit-text small{color:var(--app-muted);font-size:.8rem}.svc-unit-edit{color:#0f766e;font-size:.82rem;font-weight:600}.svc-unit-index,.svc-leg-index{display:inline-grid;place-items:center;flex-shrink:0;border-radius:999px;font-weight:700}.svc-unit-index{width:1.7rem;height:1.7rem;background:#0f766e;color:#fff;font-size:.8rem}.svc-unit-head{display:flex;align-items:center;gap:.6rem}.svc-legs{display:grid;gap:.5rem}.svc-legs-title{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--app-muted)}.svc-leg{display:flex;align-items:flex-start;gap:.6rem;padding:.65rem .7rem;border-radius:.85rem;background:#f4f8f7}.svc-leg-index{width:1.4rem;height:1.4rem;margin-top:.45rem;background:#d7ece7;color:#0f766e;font-size:.72rem}.svc-leg-body{display:grid;flex:1;gap:.45rem;min-width:0}.svc-leg-route{display:flex;align-items:center;gap:.4rem}.svc-leg-arrow{color:var(--app-muted);font-weight:700}.svc-leg-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.svc-leg-times label{display:grid;gap:.15rem;margin:0}.svc-leg-times span{font-size:.74rem;font-weight:600;color:var(--app-muted)}.svc-leg-times em{font-style:normal;font-weight:400}.svc-leg-remove{margin-top:.55rem;font-size:.65rem}.svc-link{justify-self:start;padding:0;color:#0f766e;font-weight:600;text-decoration:none}.svc-link:hover{color:#0b5c56;text-decoration:underline}.svc-add-unit{width:100%;padding:.65rem;border:1.5px dashed #b9d9d2;border-radius:1rem;background:transparent;color:#0f766e;font-weight:600}.svc-add-unit:hover{background:#f4f8f7;border-color:#0f766e}@media(max-width:576px){.svc-amount-field{max-width:none}.svc-leg-route{flex-direction:column;align-items:stretch}.svc-leg-arrow{display:none}.svc-leg-times{grid-template-columns:1fr}}.service-unit-list{display:grid;gap:.75rem;width:100%}.service-unit-block{display:grid;gap:.45rem}.service-unit-title{margin:0;font-size:.88rem;color:var(--app-muted)}.service-unit-title strong{color:var(--bs-body-color)}.receipt-unit{display:grid;gap:.1rem;margin-top:.35rem;padding-left:.6rem;border-left:2px solid #d7e5e2}.receipt-unit-title{display:block;font-size:.84rem;font-weight:600}.service-leg-list{display:grid;gap:.55rem;width:100%}.service-leg-line{display:grid;gap:.15rem;padding:.65rem .75rem;border-radius:.85rem;background:#f4f8f7}.service-leg-line strong,.service-leg-line small{display:block}.service-leg-line small{color:var(--app-muted)}.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}}.report-doc{display:grid;gap:1.25rem;padding:1.35rem 1.4rem 1.5rem;border:1px solid #e4eeec;border-radius:1.35rem;background:#fff;box-shadow:0 12px 28px #0f3d3a0d}.report-doc-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding-bottom:1rem;border-bottom:1px solid #e4eeec}.report-doc-kicker{margin:0 0 .2rem;color:#0f766e;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.report-doc-title{margin:0;font-size:1.55rem;font-weight:700}.report-doc-period{margin:.25rem 0 0;color:var(--app-muted)}.report-doc-meta{text-align:right}.report-doc-meta span{display:block;color:var(--app-muted);font-size:.78rem}.report-doc-meta strong{display:block}.report-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.report-kpi{display:grid;gap:.15rem;padding:1rem 1.1rem;border-radius:1.1rem;background:#f7faf9}.report-kpi small{color:var(--app-muted);font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.report-kpi strong{font-size:1.45rem}.report-kpi span{color:var(--app-muted);font-size:.82rem}.report-kpi.is-income{background:#e7f6f2}.report-kpi.is-expense{background:#fff4e6}.report-kpi.is-net{background:#eef2ff}.report-kpi.is-net.is-negative{background:#fef2f2}.report-kpi.is-net.is-negative strong,.report-table .is-negative{color:#b91c1c}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.report-panel{display:grid;gap:.85rem;padding:1rem 1.1rem;border:1px solid #e4eeec;border-radius:1.1rem;background:#fff}.report-panel-wide{grid-column:1 / -1}.report-panel h3,.report-panel-head h3{margin:0;font-size:.95rem;font-weight:700}.report-panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.report-breakdown{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.report-breakdown-top{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.report-bar{height:.45rem;border-radius:999px;background:#eef4f3;overflow:hidden}.report-bar-fill{display:block;height:100%;border-radius:inherit}.report-bar-fill.is-income,.report-daily-bar.is-income{background:#0f766e}.report-bar-fill.is-expense,.report-daily-bar.is-expense{background:#d97706}.report-daily-chart{display:flex;align-items:flex-end;gap:.45rem;min-height:8.5rem;padding:.35rem .2rem 0;overflow-x:auto}.report-daily-col{display:grid;gap:.35rem;justify-items:center;min-width:2.4rem;flex:1 1 0}.report-daily-bars{display:flex;align-items:flex-end;gap:.18rem;height:7rem}.report-daily-bar{width:.55rem;border-radius:.35rem .35rem .15rem .15rem;min-height:.2rem}.report-daily-col small{color:var(--app-muted);font-size:.68rem}.report-table-wrap{overflow-x:auto}.report-table{width:100%;border-collapse:collapse;font-size:.92rem}.report-table th,.report-table td{padding:.65rem .35rem;border-bottom:1px solid #e4eeec;vertical-align:top}.report-table thead th{color:var(--app-muted);font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.report-table tfoot th{border-bottom:0;padding-top:.85rem}@media(max-width:900px){.report-kpis,.report-grid{grid-template-columns:1fr}.report-doc-head{flex-direction:column}.report-doc-meta{text-align:left}}@media print{.no-print,.app-sidebar,.app-topbar,.page-header .btn,nav,aside{display:none!important}.app-shell,.app-main,.app-content{display:block!important;width:100%!important;margin:0!important;padding:0!important;background:#fff!important;box-shadow:none!important}.report-doc{border:0;box-shadow:none;border-radius:0;padding:0}.report-panel,.report-kpi{break-inside:avoid}}
