:root {
    --aya-navy: #19324d;
    --aya-navy-2: #254d70;
    --aya-red: #a7313f;
    --aya-cream: #f5f2ec;
    --aya-ink: #172230;
    --aya-muted: #6c7b8a;
    --aya-border: #dfe5ea;
    --aya-workspace: #d4dae1;
    --aya-workspace-deep: #cbd2da;
    --aya-card-shadow: 0 .45rem 1.15rem rgba(25,50,77,.14);
}

body { color: var(--aya-ink); }
body.layout-fixed,
.app-wrapper,
.app-main,
.app-content,
.app-content-header {
    background: var(--aya-workspace) !important;
}
.app-content-header {
    border-bottom: 1px solid rgba(25,50,77,.06);
}
.app-header {
    background: #f7f9fb !important;
    border-bottom: 1px solid #bdc7d0;
}
.app-sidebar,
.app-sidebar[data-bs-theme="dark"] {
    --lte-sidebar-bg: #102338;
    --bs-body-bg: #102338;
    background-color: #102338 !important;
    background-image: linear-gradient(180deg, #172d43 0%, #102338 100%) !important;
    color: #f8fafc;
}
.app-sidebar .sidebar-brand,
.app-sidebar .sidebar-wrapper { background: transparent !important; }
.app-sidebar .sidebar-menu .nav-link { color: rgba(255,255,255,.82); }
.app-sidebar .sidebar-menu .nav-link:hover { color: #fff; background: rgba(255,255,255,.08); }
.app-sidebar .sidebar-menu .nav-link.active { color: #fff; }
.app-sidebar .nav-header { color: rgba(255,255,255,.52); }
.sidebar-brand { border-bottom: 1px solid rgba(255,255,255,.12); }
.brand-link { color: #fff; display: flex; align-items: center; gap: .8rem; }
.brand-mark { width: 2.15rem; height: 2.15rem; border-radius: .65rem; display: inline-grid; place-items: center; background: var(--aya-red); }
.sidebar-menu .nav-link { border-radius: .6rem; margin: .12rem .55rem; }
.sidebar-menu .nav-link.active { background: rgba(255,255,255,.14); box-shadow: inset 3px 0 0 #e56a76; }

/* Jerarquia visual: modulos principales y accesos secundarios. */
.sidebar-menu > .nav-item > .nav-link {
    min-height: 2.75rem;
    padding: .67rem .8rem;
    font-size: .96rem;
    font-weight: 700;
    letter-spacing: .01em;
}
.sidebar-menu > .nav-item > .nav-link .nav-icon {
    width: 1.35rem;
    font-size: 1.05rem;
}
.sidebar-menu > .nav-item > .nav-link .nav-arrow {
    font-size: .76rem;
    opacity: .72;
}
.sidebar-menu > .nav-item.menu-open > .nav-link {
    background: rgba(255,255,255,.12);
    box-shadow: inset 3px 0 0 #e56a76;
}
.sidebar-menu > .nav-item > .nav-treeview {
    margin: .18rem .7rem .55rem 1.2rem;
    padding: .12rem 0 .12rem .55rem;
    border-left: 2px solid rgba(229,106,118,.32);
}
.sidebar-menu .nav-treeview .nav-link {
    min-height: 2.15rem;
    margin: .08rem 0;
    padding: .43rem .58rem;
    border-radius: .45rem;
    color: rgba(255,255,255,.7);
    font-size: .84rem;
    font-weight: 500;
}
.sidebar-menu .nav-treeview .nav-link .nav-icon {
    width: 1.05rem;
    margin-right: .22rem;
    font-size: .78rem;
    opacity: .76;
}
.sidebar-menu .nav-treeview .nav-link:hover {
    color: #fff;
    background: rgba(255,255,255,.07);
}
.sidebar-menu .nav-treeview .nav-link.active {
    color: #fff;
    background: rgba(229,106,118,.2);
    box-shadow: inset 2px 0 0 #f08b95;
    font-weight: 700;
}
.sidebar-menu .nav-treeview .nav-link.active .nav-icon {
    color: #f6a6ad;
    opacity: 1;
}

/* Campos claramente separados en Nueva planilla. */
.trip-form-card .card-header {
    background: #f8fafc !important;
}
.trip-form-card .card-body {
    background: #eef2f5;
}
.trip-form-card .card-footer {
    background: #f8fafc !important;
    border-top: 1px solid #cbd4dc;
}
.trip-form-grid > [class*="col-"] {
    display: flex;
}
.trip-field-box {
    flex: 1 1 auto;
    min-width: 0;
    padding: .58rem .68rem;
    background: #fff;
    border: 1px solid #c9d3dc;
    border-left: 3px solid #557da1;
    border-radius: .62rem;
    box-shadow: 0 .1rem .28rem rgba(25,50,77,.06);
    transition: border-color .15s ease, box-shadow .15s ease;
}
.trip-field-box:focus-within {
    border-color: #557da1;
    border-left-color: var(--aya-red);
    box-shadow: 0 0 0 .16rem rgba(85,125,161,.13);
}
.trip-field-box .form-label {
    display: block;
    margin-bottom: .35rem;
    color: #263e55;
    font-weight: 700;
}
.trip-field-box .form-label .bi {
    color: var(--aya-red);
}
.trip-field-box .form-control,
.trip-field-box .form-select {
    background-color: #fbfcfd;
    border-color: #b8c4ce;
}
.trip-field-box > small,
.trip-field-box > .form-text {
    display: block;
    margin-top: .3rem;
    line-height: 1.25;
}
@media(max-width:767.98px){
    .trip-field-box { padding: .62rem .68rem; }
}
.app-content-header { padding-top: 1.6rem; }
.eyebrow { color: var(--aya-red); text-transform: uppercase; letter-spacing: .13em; font-size: .72rem; font-weight: 800; }
.btn-brand { --bs-btn-color:#fff; --bs-btn-bg:var(--aya-red); --bs-btn-border-color:var(--aya-red); --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#8f2633; --bs-btn-hover-border-color:#8f2633; }
.required::after { content: ' *'; color: var(--aya-red); }
.card { border-radius: .9rem; background:#fff; }
.card.shadow-sm { box-shadow:var(--aya-card-shadow)!important; }
.modal-content { background:#fff; border-color:#c8d0d8; box-shadow:0 1.25rem 3rem rgba(15,35,55,.26); }
.dropdown-menu { box-shadow:0 .6rem 1.4rem rgba(25,50,77,.18); }
.card-header { padding: 1.15rem 1.3rem; border-bottom-color: var(--aya-border); }
.table > thead th { background: #f4f7f9; color: #526170; border-bottom: 1px solid var(--aya-border); font-size: .72rem; text-transform: uppercase; letter-spacing: .045em; white-space: nowrap; }
.empty-state { color: var(--aya-muted); padding: 3rem !important; text-align: center; }
.metric-card { height: 100%; min-height: 118px; border-radius: .9rem; padding: 1.15rem; background: #fff; box-shadow: 0 .25rem .85rem rgba(25,50,77,.08); display: flex; align-items: center; gap: .9rem; border-left: 4px solid var(--metric-color); }
.metric-card span { color: var(--aya-muted); font-size: .78rem; display:block; margin-bottom:.28rem; }
.metric-card strong { font-size: 1.05rem; line-height: 1.15; display:block; }
.metric-icon { width: 2.75rem; height: 2.75rem; flex: 0 0 auto; border-radius: .75rem; display:grid; place-items:center; color:var(--metric-color); background: color-mix(in srgb, var(--metric-color) 12%, white); font-size:1.25rem; }
.accent-blue{--metric-color:#2563eb}.accent-cyan{--metric-color:#0891b2}.accent-green{--metric-color:#17845b}.accent-amber{--metric-color:#d97706}.accent-red{--metric-color:#a7313f}
.quick-card { background: linear-gradient(145deg, #fff 0%, #f6f8fa 100%); }
.quick-link { display:flex; align-items:center; gap:.9rem; color:inherit; text-decoration:none; padding:.85rem; border:1px solid var(--aya-border); border-radius:.75rem; background:#fff; transition:.18s ease; }
.quick-link:hover { transform:translateY(-1px); border-color:#b5c4d1; box-shadow:0 .35rem .8rem rgba(25,50,77,.08); }
.quick-link > i:first-child { font-size:1.35rem; color:var(--aya-red); }
.quick-link span { display:flex; flex-direction:column; }
.quick-link small { color:var(--aya-muted); }
.status-badge { display:inline-flex; padding:.3rem .55rem; border-radius:999px; font-size:.7rem; font-weight:800; letter-spacing:.03em; white-space:nowrap; }
.status-borrador{background:#e7edf3;color:#42576b}.status-en_ruta{background:#dbeafe;color:#1d4ed8}.status-cerrado{background:#dcfce7;color:#166534}.status-anulado{background:#fee2e2;color:#991b1b}
.payment-pendiente{color:#b45309}.payment-cobrado{color:#15803d}.payment-no_retirado{color:#7c3aed}.payment-anulado{color:#b91c1c;text-decoration:line-through}
.form-control:focus,.form-select:focus { border-color:#7895ad; box-shadow:0 0 0 .2rem rgba(25,50,77,.12); }
.login-page-custom { min-height:100vh; background:#f4f8fb; }
.login-shell { min-height:100vh; display:grid; grid-template-columns:minmax(320px,1.15fr) minmax(420px,.85fr); }
.login-brand-panel {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    display:grid;
    place-items:center;
    padding:4rem;
    color:#fff;
    background:
        radial-gradient(circle at 12% 14%,rgba(229,106,118,.42),transparent 29%),
        radial-gradient(circle at 86% 82%,rgba(56,130,188,.25),transparent 34%),
        linear-gradient(140deg,#1d4b6d 0%,#142f48 48%,#0b1d2e 100%);
}
.login-brand-panel::before {
    content:'';
    position:absolute;
    inset:0;
    z-index:-1;
    opacity:.08;
    background-image:linear-gradient(rgba(255,255,255,.55) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.55) 1px,transparent 1px);
    background-size:48px 48px;
    mask-image:linear-gradient(135deg,#000,transparent 72%);
}
.login-brand-panel::after {
    content:'';
    position:absolute;
    width:28rem;
    height:28rem;
    right:-13rem;
    top:-12rem;
    z-index:-1;
    border:1px solid rgba(255,255,255,.13);
    border-radius:50%;
    box-shadow:0 0 0 5rem rgba(255,255,255,.025),0 0 0 10rem rgba(255,255,255,.018);
}
.login-brand-content { position:relative;max-width:650px; }
.login-brand-content h1 { font-size:clamp(2.5rem,5vw,4.8rem);line-height:.98;letter-spacing:-.045em;margin:.9rem 0 1.5rem;text-shadow:0 .2rem .65rem rgba(0,0,0,.15); }
.login-logo { width:4.5rem;height:4.5rem;border-radius:1.2rem;background:var(--aya-red);display:grid;place-items:center;font-size:2rem;margin-bottom:2rem;box-shadow:0 1rem 3rem rgba(0,0,0,.25); }
.login-form-panel { display:grid;place-items:center;padding:2rem;background:radial-gradient(circle at 88% 12%,rgba(167,49,63,.1),transparent 26%),linear-gradient(145deg,#f8fbfd 0%,#eaf2f7 100%);border-left:1px solid rgba(25,50,77,.08); }
.login-card { width:min(100%,430px);background:rgba(255,255,255,.97);border:1px solid rgba(25,50,77,.1);border-radius:1.2rem;padding:clamp(2rem,5vw,3.25rem);box-shadow:0 1.5rem 4rem rgba(15,35,55,.2);backdrop-filter:blur(8px); }.summary-strip { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem; }
.summary-item { background:#fff;border:1px solid var(--aya-border);border-radius:.8rem;padding:1rem; }
.summary-item span { display:block;color:var(--aya-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em; }
.summary-item strong { display:block;margin-top:.25rem;font-size:1.1rem; }
.metric-card { box-shadow:var(--aya-card-shadow); }


.summary-item { box-shadow:0 .3rem .85rem rgba(25,50,77,.1); }
@media(max-width:991.98px){.login-shell{grid-template-columns:1fr}.login-brand-panel{display:none}.summary-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:575.98px){.summary-strip{grid-template-columns:1fr}.app-content-header{padding-top:1rem}.metric-card{min-height:100px}.login-form-panel{padding:1rem}.login-card{padding:1.6rem}}
@media print {.app-header,.app-sidebar,.app-footer,.d-print-none{display:none!important}.app-main{margin:0!important}.card{box-shadow:none!important}.app-content-header{padding:.5rem 0}.app-content{padding:0}}


/* Single cash account compact position. */
.cash-position-single .card-body {
    display: grid;
    grid-template-columns: minmax(190px,1fr) minmax(145px,.55fr) minmax(300px,1.15fr) minmax(230px,.9fr);
    align-items: center;
    gap: 1.15rem;
    padding: 1rem 1.15rem;
}
.cash-position-single .card-body > .fs-4 { margin: 0 !important; white-space: nowrap; }
.cash-position-single .card-body > .row { margin: 0; }
.cash-position-single .card-body > .row > *:first-child { padding-left: 0; }
.cash-position-single .card-body > .row > *:last-child { padding-right: 0; }
.cash-position-single .card-body > .small { margin-top: 0 !important; }
@media(max-width:1199.98px){
    .cash-position-single .card-body { grid-template-columns: 1fr 1fr; }
    .cash-position-single .card-body > .row { grid-column: 1/-1; }
}
@media(max-width:575.98px){
    .cash-position-single .card-body { grid-template-columns: 1fr; gap: .75rem; }
    .cash-position-single .card-body > .row { grid-column: auto; }
}
