/* iVTEMA: shared components. Navigation structure and business actions stay native. */
html[data-ivtema] {
    color-scheme:light; --bs-body-bg:var(--ivt-bg); --bs-body-color:var(--ivt-text);
    --bs-body-bg-rgb:var(--ivt-body-rgb); --bs-body-color-rgb:var(--ivt-text-rgb);
    --bs-primary:var(--ivt-primary); --bs-primary-rgb:var(--ivt-primary-rgb);
    --bs-link-color:var(--ivt-link); --bs-link-hover-color:var(--ivt-accent);
    --bs-border-color:var(--ivt-border); --bs-secondary-color:var(--ivt-muted);
    --bs-tertiary-bg:var(--ivt-panel); --bs-secondary-bg:var(--ivt-hover);
    --bs-emphasis-color:var(--ivt-text); --bs-heading-color:var(--ivt-text);
}
html[data-ivtema="dark"] {color-scheme:dark;}
html[data-ivtema] body {background:var(--ivt-bg)!important;color:var(--ivt-text)!important;line-height:1.5;}
html[data-ivtema] body :is(.card,.modal-content,.dropdown-menu,.list-group-item,.accordion-item,.popover,.offcanvas) {background-color:var(--ivt-panel);color:var(--ivt-text);border-color:var(--ivt-border);}
html[data-ivtema] body :is(.card,.modal-content) {border-radius:18px;}
html[data-ivtema] body :is(.card-header,.card-footer,.modal-header,.modal-footer,.accordion-button) {background-color:var(--ivt-hover);color:var(--ivt-text);border-color:var(--ivt-border);}
html[data-ivtema] body :is(.card-header:first-child) {border-radius:17px 17px 0 0;}
html[data-ivtema] body :is(.bg-white,.bg-light,.bg-body,.bg-body-tertiary) {background-color:var(--ivt-panel)!important;color:var(--ivt-text);}
html[data-ivtema] body :is(.text-muted,.text-secondary,.text-body-secondary) {color:var(--ivt-muted)!important;}
html[data-ivtema] body :is(.text-dark,.text-body,.text-black) {color:var(--ivt-text)!important;}
html[data-ivtema] body .text-primary {color:var(--ivt-link)!important;}
html[data-ivtema] body a:not(.btn):not(.badge):not(.nav-link):not(.dropdown-item):not(.navbar-brand) {color:var(--ivt-link);text-underline-offset:3px;}
html[data-ivtema] body :is(.btn,.form-control,.form-select,.input-group-text) {border-radius:10px;}
html[data-ivtema] body .btn {font-weight:600;min-height:40px;}
html[data-ivtema] body :is(.btn-primary,.btn-outline-primary) {
    --bs-btn-color:var(--ivt-on-secondary);--bs-btn-bg:var(--ivt-secondary);--bs-btn-border-color:var(--ivt-secondary);
    --bs-btn-hover-color:var(--ivt-on-secondary);--bs-btn-hover-bg:var(--ivt-secondary);--bs-btn-hover-border-color:var(--ivt-secondary);
    --bs-btn-active-color:var(--ivt-on-secondary);--bs-btn-active-bg:var(--ivt-secondary);--bs-btn-active-border-color:var(--ivt-secondary);
    --bs-btn-disabled-color:var(--ivt-on-secondary);--bs-btn-disabled-bg:var(--ivt-secondary);--bs-btn-disabled-border-color:var(--ivt-secondary);
    background:var(--ivt-secondary);color:var(--ivt-on-secondary);border-color:var(--ivt-secondary);
}
html[data-ivtema] body .btn-primary:hover {filter:brightness(.94);}
html[data-ivtema] body :is(.btn-outline-secondary,.btn-light,.btn-white) {background:var(--ivt-panel);color:var(--ivt-text);border-color:var(--ivt-border);}
html[data-ivtema] body :is(.btn-outline-secondary,.btn-light,.btn-white):hover {background:var(--ivt-hover);color:var(--ivt-text);}
html[data-ivtema] body :is(.form-control,.form-select,.input-group-text) {background-color:var(--ivt-input)!important;color:var(--ivt-text)!important;border-color:var(--ivt-border);}
html[data-ivtema] body :is(.form-control,.form-select)::placeholder {color:var(--ivt-muted);opacity:1;}
html[data-ivtema] body :is(.form-control,.form-select):disabled {opacity:.75;}
html[data-ivtema] body :is(.form-control,.form-select):focus {border-color:var(--ivt-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--ivt-focus) 28%,transparent);}
html[data-ivtema] body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {outline:3px solid var(--ivt-focus);outline-offset:3px;}
html[data-ivtema] body .table {
    --bs-table-bg:var(--ivt-panel);--bs-table-color:var(--ivt-text);--bs-table-border-color:var(--ivt-border);
    --bs-table-hover-bg:var(--ivt-hover);--bs-table-hover-color:var(--ivt-text);
    --bs-table-striped-bg:var(--ivt-hover);--bs-table-striped-color:var(--ivt-text);
    --bs-table-active-bg:var(--ivt-hover);--bs-table-active-color:var(--ivt-text);
}
html[data-ivtema] body .table>thead>tr>th {color:var(--ivt-muted);font-size:.85rem;}
html[data-ivtema] body .table>:not(caption)>*>* {border-color:var(--ivt-border);vertical-align:middle;}
html[data-ivtema] body .table:not(.table-sm)>:not(caption)>*>* {padding:12px;}
html[data-ivtema] body :is(.nav-tabs,.nav-pills) {gap:4px;}
html[data-ivtema] body :is(.nav-tabs,.nav-pills) .nav-link {color:var(--ivt-muted);border-radius:10px;}
html[data-ivtema] body :is(.nav-tabs,.nav-pills) .nav-link.active {background:var(--ivt-primary);color:var(--ivt-on-primary);border-color:var(--ivt-primary);}
html[data-ivtema] body :is(.page-link,.dropdown-item) {color:var(--ivt-text);background:var(--ivt-panel);border-color:var(--ivt-border);}
html[data-ivtema] body :is(.dropdown-item:hover,.dropdown-item:focus,.page-link:hover) {background:var(--ivt-hover);color:var(--ivt-text);}
html[data-ivtema] body :is(.active>.page-link,.dropdown-item.active,.list-group-item.active) {background:var(--ivt-primary);color:var(--ivt-on-primary);border-color:var(--ivt-primary);}
html[data-ivtema] body .navbar.bg-primary {background:var(--ivt-primary)!important;--bs-navbar-color:var(--ivt-on-primary);--bs-navbar-hover-color:var(--ivt-on-primary);--bs-navbar-active-color:var(--ivt-on-primary);--bs-navbar-brand-color:var(--ivt-on-primary);--bs-navbar-brand-hover-color:var(--ivt-on-primary);}
html[data-ivtema] body .navbar :is(.nav-link,.navbar-brand) {color:var(--ivt-on-primary)!important;}
html[data-ivtema] body .navbar .nav-link {border-radius:8px;min-height:44px;display:flex;align-items:center;}
html[data-ivtema] body .navbar .nav-link:hover {background:color-mix(in srgb,var(--ivt-on-primary) 12%,transparent);}
/* Preserve the semantic colours of danger/warning/success and their messages. */
html[data-ivtema] body .alert a {color:inherit!important;}
.ivtema-settings {max-width:1480px;}
.ivtema-heading {display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.ivtema-heading h1 {font-size:clamp(1.65rem,3vw,2.4rem);font-weight:750;}
.ivtema-brand {font-size:.55em;color:var(--ivt-muted);font-weight:500;white-space:nowrap;}
.ivtema-eyebrow {color:var(--ivt-accent);font-size:.72rem;letter-spacing:.12em;font-weight:750;}
.ivtema-chip {display:inline-block;padding:7px 12px;border:1px solid var(--ivt-border);border-radius:999px;font-size:.78rem;color:var(--ivt-muted);}
.ivtema-layout {display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px;align-items:start;}
.ivtema-layout .card-body {padding:28px;}
.ivtema-presets,.ivtema-actions {display:flex;gap:10px;flex-wrap:wrap;}
.ivtema-presets .btn {font-size:.85rem;}
.ivtema-colors {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;}
.ivtema-color-control {display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
html[data-ivtema] .ivtema-color-control .form-control-color {width:64px;height:48px;padding:5px;cursor:pointer;}
.ivtema-color-control output {font: .9rem ui-monospace,monospace;color:var(--ivt-muted);}
.ivtema-backgrounds {border-top:1px solid var(--ivt-border);padding-top:16px;}
.ivtema-backgrounds summary {cursor:pointer;min-height:44px;}
.ivtema-preview-title {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.ivtema-sample-header {background:var(--ivt-primary);color:var(--ivt-on-primary);padding:15px;border-radius:12px;display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;font-weight:700;}
.ivtema-sample-header span {font-weight:400;font-size:.8rem;}
.ivtema-sample-balance {display:flex;flex-direction:column;gap:4px;padding:24px 0;}
.ivtema-sample-balance strong {font-size:2.3rem;line-height:1.2;color:var(--ivt-accent);}
.ivtema-sample-balance small {color:var(--ivt-muted);}
/* Each table scrolls independently. Never mask page overflow with overflow-x:hidden. */
html[data-ivtema] body :is(.table-responsive,.ivtema-table-scroll) {max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;}
html[data-ivtema] body :is(main,.card,.card-body,.tab-content,.tab-pane,.container-fluid,.row>*,fieldset,.input-group) {min-width:0;}
html[data-ivtema] body :is(.form-control,.form-select,textarea,img,canvas) {max-width:100%;}
html[data-ivtema] body .dropdown-menu {max-width:calc(100vw - 16px);}
html[data-ivtema] body .dropdown-item {white-space:normal;overflow-wrap:anywhere;}
@media(max-width:991.98px) {
    .ivtema-layout {grid-template-columns:minmax(0,1fr);}
    html[data-ivtema] body .modal-dialog {max-width:calc(100vw - 16px);margin:8px auto;}
    html[data-ivtema] body .nav-tabs {flex-wrap:wrap;}
}
@media(max-width:575.98px) {
    .ivtema-settings {padding:16px 10px!important;}
    .ivtema-layout {gap:16px;}
    .ivtema-layout .card-body {padding:18px;}
    .ivtema-colors {grid-template-columns:minmax(0,1fr);gap:18px;}
    .ivtema-actions>*,.ivtema-presets>* {flex:1 1 100%;}
    html[data-ivtema] body .btn {min-height:44px;white-space:normal;overflow-wrap:anywhere;}
    html[data-ivtema] body :is(.form-control,.form-select) {min-height:44px;font-size:16px;}
    html[data-ivtema] body .input-group {flex-wrap:wrap;}
    html[data-ivtema] body .input-group>.form-control {min-width:60px;}
    html[data-ivtema] body :is(.nav-tabs,.nav-pills) .nav-link {padding:10px;white-space:normal;}
    html[data-ivtema] body .modal-content {overflow-wrap:anywhere;}
}
@media(prefers-reduced-motion:reduce) {html[data-ivtema] body * {scroll-behavior:auto!important;}}
/* ConciliacionMesa has its own late inline stylesheet with fixed white surfaces.
   Keep its workflow and semantic row states; bind its surfaces to the active theme. */
@media screen {
html[data-ivtema] body #qpiMesa {--ge-1:var(--ivt-primary);--ge-2:var(--ivt-accent);--ge-a25:color-mix(in srgb,var(--ivt-secondary) 18%,var(--ivt-panel));}
html[data-ivtema] body #qpiMesa :is(.mc-head,.mc-bar,.autocomp-list,.mc-aspop) {background:var(--ivt-panel)!important;color:var(--ivt-text);border-color:var(--ivt-border);}
html[data-ivtema] body #qpiMesa :is(.kpi,.mc-desc) {background:var(--ivt-hover)!important;color:var(--ivt-text);}
html[data-ivtema] body #qpiMesa :is(.kpi .lbl,.mc-aspop .c,.mc-aspop .f,.mc-aspop th) {color:var(--ivt-muted);}
html[data-ivtema] body #qpiMesa table.mc-t thead th {background:var(--ivt-panel)!important;color:var(--ivt-muted);border-color:var(--ivt-border);}
html[data-ivtema] body #qpiMesa :is(.card,table.mc-t td,.mc-aspop td) {border-color:var(--ivt-border);}
html[data-ivtema] body #qpiMesa :is(.btn-qpi-teal,.btn-qpi-teal:hover) {background:var(--ivt-secondary);border-color:var(--ivt-secondary);color:var(--ivt-on-secondary);}
html[data-ivtema] body #qpiMesa :is(.btn-qpi-teal:disabled,.btn-qpi-teal.disabled) {background:var(--ivt-hover);border-color:var(--ivt-border);color:var(--ivt-muted);opacity:.7;}
html[data-ivtema] body #qpiMesa .mov-in {color:var(--ivt-accent);}
html[data-ivtema="dark"] body #qpiMesa .mov-out {color:#ff9a9a;}
html[data-ivtema="dark"] body #qpiMesa .btn-outline-success {--bs-btn-color:#8de8b8;--bs-btn-border-color:#469b71;}
html[data-ivtema] body #qpiMesa tr.st-pend>td {background-color:var(--ivt-panel)!important;color:var(--ivt-text);}
html[data-ivtema] body #qpiMesa tr.st-no>td {background-color:color-mix(in srgb,#dc3545 16%,var(--ivt-panel))!important;color:var(--ivt-text);}
html[data-ivtema] body #qpiMesa tr.st-aprox>td {background-color:color-mix(in srgb,#e2a820 16%,var(--ivt-panel))!important;color:var(--ivt-text);}
html[data-ivtema] body #qpiMesa tr.st-asiento>td {background-color:color-mix(in srgb,#4f83cc 16%,var(--ivt-panel))!important;color:var(--ivt-text);}
html[data-ivtema] body #qpiMesa :is(tr.st-exact,tr.mc-match)>td {background-color:var(--ge-a25)!important;color:var(--ivt-text);}
html[data-ivtema] body #qpiMesa tr.mc-row:hover>td {background-color:var(--ivt-hover)!important;}
html[data-ivtema] body #qpiMesa tr.mc-sel>td {background-color:var(--ge-a25)!important;color:var(--ivt-text);}
html[data-ivtema] body #qpiMesa .autocomp-list .it:hover {background:var(--ivt-hover);}
html[data-ivtema] body #qpiMesa :is(.mc-panel,.mc-scroll,.mc-head>div,.mc-bar>div) {min-width:0;max-width:100%;}
html[data-ivtema] body #qpiMesa .mc-panel .border-bottom.d-flex {flex-wrap:wrap;}
html[data-ivtema] body #qpiMesa .mc-head .d-flex {min-width:0;flex-wrap:wrap;}
html[data-ivtema] body #qpiMesa .mc-head .form-control {max-width:100%;}
html[data-ivtema] body #qpiMesa .mc-bar {overflow-wrap:anywhere;}
html[data-ivtema] body .qpi-dialog .modal-header {background:var(--ivt-primary);color:var(--ivt-on-primary);}
html[data-ivtema] body .qpi-dialog .modal-title {color:var(--ivt-on-primary);}
html[data-ivtema] body .qpi-dialog .btn-qpi-ok {background:var(--ivt-secondary);border-color:var(--ivt-secondary);color:var(--ivt-on-secondary);}
}
@media print {
    html[data-ivtema] body {background:white!important;color:black!important;}
    html[data-ivtema] body :is(.card,.table,.table th,.table td,.bg-white,.bg-light) {background:white!important;color:black!important;--bs-table-bg:white;--bs-table-color:black;}
    .ivtema-table-scroll {overflow:visible!important;}
}
