:root {
    --jlt-bg: #0b1220;
    --jlt-surface: #0f1b2d;
    --jlt-card: #111f35;
    --jlt-border: rgba(255, 255, 255, .08);
    --jlt-text: rgba(255, 255, 255, .92);
    --jlt-muted: rgba(255, 255, 255, .62);
    --jlt-accent: #4f8cff;
    --jlt-accent-2: #22c55e;
    --jlt-success: #22c55e;
    --jlt-success-text: #bbf7d0;
    --jlt-warn: #f59e0b;
    --jlt-warn-text: #fcd34d;
    --jlt-danger: #ef4444;
    --jlt-danger-text: #fecdd3;
    --jlt-sidebar-collapsed: 76px;
    --jlt-sidebar-expanded: 288px;
}

html, body {
    height: 100%;
}

body {
    background: radial-gradient(1200px 600px at 10% 0%, rgba(79, 140, 255, .12), transparent 40%),
    radial-gradient(900px 500px at 80% 20%, rgba(34, 197, 94, .10), transparent 45%),
    var(--jlt-bg);
    color: var(--jlt-text);
}

a {
    color: inherit;
}

.jlt-app {
    min-height: 100vh;
    display: block;
}

.jlt-shell-side {
    position: fixed;
    inset: 0 auto 0 0;
    width: var(--jlt-sidebar-collapsed);
    z-index: 1100;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px 8px;
    background: linear-gradient(180deg, rgba(15, 27, 45, .99), rgba(8, 16, 30, .98));
    border-right: 1px solid var(--jlt-border);
    backdrop-filter: blur(4px);
    overflow-x: hidden;
    overflow-y: auto;
    transition: width .18s ease;
}

.jlt-shell-side:hover,
.jlt-shell-side:focus-within,
.jlt-shell-side.is-sidebar-pinned {
    width: var(--jlt-sidebar-expanded);
}

.jlt-nav-side {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
}

.jlt-session {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
    margin-top: auto;
    padding: 8px;
    border-radius: 12px;
    border: 1px solid var(--jlt-border);
    background: rgba(255, 255, 255, .02);
}

@media (max-width: 992px) {
    .jlt-shell-side {
        width: min(88vw, 320px);
        height: 100dvh;
        inset: 0 auto 0 0;
        border-right: 1px solid var(--jlt-border);
        border-bottom: 0;
        transform: translateX(-100%);
        transition: transform .18s ease;
        overflow-y: auto;
    }

    .jlt-app.is-sidebar-open .jlt-shell-side {
        transform: translateX(0);
    }
}

.jlt-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid var(--jlt-border);
    min-height: 54px;
}

.jlt-brand-link {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

.jlt-brand-link:focus-visible {
    outline: 2px solid var(--jlt-accent);
    outline-offset: 2px;
    border-radius: 12px;
}

.jlt-brand-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    width: 100%;
    min-height: 34px;
    padding-inline: 8px;
    flex: 0 0 auto;
}

.sidebar-pin-button {
    width: 34px;
    height: 34px;
    display: inline-grid;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid transparent;
    border-radius: 9px;
    color: var(--jlt-muted);
    background: transparent;
    transition: color .15s ease, background .15s ease, border-color .15s ease, transform .15s ease;
}

.sidebar-pin-button:hover {
    color: var(--jlt-text);
    background: color-mix(in srgb, var(--jlt-card) 88%, transparent);
}

.sidebar-pin-button[aria-pressed="true"] {
    color: var(--jlt-text);
    border-color: color-mix(in srgb, var(--jlt-accent) 45%, var(--jlt-border));
    background: color-mix(in srgb, var(--jlt-accent) 16%, var(--jlt-card));
}

.sidebar-pin-button[aria-pressed="true"] span {
    transform: rotate(-35deg);
}

.sidebar-pin-button:focus-visible {
    outline: 2px solid var(--jlt-accent);
    outline-offset: 2px;
}

.jlt-badge {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: 1px;
    display: grid;
    place-items: center;
    background: rgba(79, 140, 255, .15);
    border: 1px solid rgba(79, 140, 255, .35);
    font-weight: 800;
    color: var(--jlt-text);
}

.jlt-brand small {
    color: var(--jlt-muted);
}

.jlt-brand-meta {
    white-space: nowrap;
}

.jlt-main {
    padding: 12px;
    margin-left: var(--jlt-sidebar-collapsed);
    transition: margin-left .18s ease;
}

@media (min-width: 993px) {
    .jlt-main {
        --jlt-content-font-size: .6875rem;
        --jlt-content-line-height: 1.25;
        --jlt-content-control-height: 26px;
        --jlt-content-space-inline: .5rem;
        --jlt-content-space-block: .3rem;
        font-size: var(--jlt-content-font-size);
        line-height: var(--jlt-content-line-height);
        padding: 8px;
    }

    .jlt-main h1 {
        font-size: 1.35rem;
    }

    .jlt-main h2 {
        font-size: 1.15rem;
    }

    .jlt-main h3 {
        font-size: 1rem;
    }

    .jlt-main h4,
    .jlt-main h5,
    .jlt-main h6 {
        font-size: .85rem;
    }

    .jlt-main .jlt-topbar {
        --jlt-topbar-gap: .4rem;
        padding: 6px 8px;
        margin-bottom: 8px;
        border-radius: 10px;
    }

    .jlt-main .card {
        border-radius: 9px;
    }

    .jlt-main .card-header,
    .jlt-main .card-body,
    .jlt-main .card-footer {
        padding: .5rem .65rem;
    }

    .jlt-main .form-control,
    .jlt-main .form-select {
        min-height: var(--jlt-content-control-height);
        height: var(--jlt-content-control-height);
        padding: .2rem var(--jlt-content-space-inline);
        font-size: var(--jlt-content-font-size);
        line-height: var(--jlt-content-line-height);
    }

    .jlt-main textarea.form-control,
    .jlt-main select.form-select[multiple],
    .jlt-main select.form-select[size] {
        height: auto;
    }

    .jlt-main .btn {
        padding: var(--jlt-content-space-block) var(--jlt-content-space-inline);
        font-size: var(--jlt-content-font-size);
        line-height: var(--jlt-content-line-height);
    }

    .jlt-main .btn-sm {
        padding: .2rem .42rem;
        font-size: .625rem;
    }

    .jlt-main .table {
        font-size: var(--jlt-content-font-size);
        line-height: var(--jlt-content-line-height);
    }

    .jlt-main .table > :not(caption) > * > * {
        padding: 5px 6px;
    }

    .jlt-main .form-label,
    .jlt-main .col-form-label,
    .jlt-main .jlt-field-label,
    .jlt-main small,
    .jlt-main .small {
        font-size: .625rem;
        line-height: var(--jlt-content-line-height);
    }
}

.jlt-shell-side:hover ~ .jlt-main,
.jlt-shell-side:focus-within ~ .jlt-main,
.jlt-shell-side.is-sidebar-pinned ~ .jlt-main {
    margin-left: var(--jlt-sidebar-expanded);
}

@media (max-width: 992px) {
    .jlt-main {
        margin-left: 0;
        margin-top: 56px;
        position: relative;
        z-index: 1000;
    }

    .jlt-main::before {
        content: "";
        position: fixed;
        inset: 0;
        background: rgba(3, 7, 18, .58);
        opacity: 0;
        pointer-events: none;
        transition: opacity .18s ease;
        z-index: 1080;
    }

    .jlt-app.is-sidebar-open .jlt-main::before {
        opacity: 1;
        pointer-events: auto;
    }
}

#jltSidebarToggle {
    display: none;
}

@media (max-width: 992px) {
    #jltSidebarToggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

.jlt-topbar {
    --jlt-topbar-gap: .625rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--jlt-topbar-gap);
    padding: 10px 12px;
    border: 1px solid var(--jlt-border);
    border-radius: 16px;
    background: color-mix(in srgb, var(--jlt-card) 86%, transparent);
    margin-bottom: 12px;
    position: sticky;
    top: 0;
    z-index: 1090;
}

.jlt-topbar > * {
    min-width: 0;
}

.jlt-topbar .d-flex,
.jlt-topbar [class*='topbar-actions'],
.jlt-topbar .jlt-topbar-quick-actions,
.jlt-topbar .noprint {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--jlt-topbar-gap);
    min-width: 0;
}

.jlt-topbar .btn {
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
}

.topbar-actions-fluid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--jlt-topbar-gap, .625rem);
    min-width: 0;
}

.topbar-actions-fluid > .btn,
.topbar-actions-fluid > a.btn {
    flex: 1 1 auto;
    min-width: min(220px, 100%);
}

@media (max-width: 767.98px) {
    .topbar-actions-fluid {
        width: 100%;
        justify-content: stretch !important;
    }

    .topbar-actions-fluid > .btn,
    .topbar-actions-fluid > a.btn {
        flex-basis: 100%;
    }
}

.jlt-topbar .btn-primary,
.jlt-topbar .btn-jlt,
.jlt-topbar .btn-success,
.jlt-topbar [data-priority='primary'] {
    border-width: 1px;
}

.jlt-topbar .btn-outline-primary,
.jlt-topbar .btn-outline-jlt,
.jlt-topbar .btn-outline-secondary,
.jlt-topbar [data-priority='secondary'] {
    background: color-mix(in srgb, var(--jlt-card) 92%, transparent);
}

@media (min-width: 331px) and (max-width: 390px) {
    .jlt-topbar .d-flex,
    .jlt-topbar [class*='topbar-actions'],
    .jlt-topbar .jlt-topbar-quick-actions,
    .jlt-topbar .noprint {
        width: 100%;
        justify-content: stretch;
    }

    .jlt-topbar .d-flex > .btn,
    .jlt-topbar [class*='topbar-actions'] > .btn,
    .jlt-topbar .jlt-topbar-quick-actions > .btn,
    .jlt-topbar .noprint > .btn,
    .jlt-topbar .d-flex > button,
    .jlt-topbar [class*='topbar-actions'] > button,
    .jlt-topbar .jlt-topbar-quick-actions > button,
    .jlt-topbar .noprint > button {
        flex: 1 1 calc(50% - (var(--jlt-topbar-gap) / 2));
        min-width: 0;
    }

    .jlt-topbar .d-flex > .btn-primary,
    .jlt-topbar .d-flex > .btn-jlt,
    .jlt-topbar [class*='topbar-actions'] > .btn-primary,
    .jlt-topbar [class*='topbar-actions'] > .btn-jlt,
    .jlt-topbar .jlt-topbar-quick-actions > .btn-primary,
    .jlt-topbar .jlt-topbar-quick-actions > .btn-jlt,
    .jlt-topbar .noprint > .btn-primary,
    .jlt-topbar .noprint > .btn-jlt,
    .jlt-topbar .d-flex > [data-priority='primary'],
    .jlt-topbar [class*='topbar-actions'] > [data-priority='primary'],
    .jlt-topbar .jlt-topbar-quick-actions > [data-priority='primary'],
    .jlt-topbar .noprint > [data-priority='primary'] {
        flex-basis: 100%;
    }
}


/* Modais Bootstrap devem ficar acima do chrome fixo do app (topbar/sidebar)
   e herdar os tokens semânticos do tema atual para manter contraste em dark/light. */
.modal-backdrop {
    --bs-backdrop-zindex: 1190;
    --bs-backdrop-bg: #030712;
    --bs-backdrop-opacity: .72;
}

.modal {
    --bs-modal-zindex: 1200;
    --bs-modal-bg: color-mix(in srgb, var(--jlt-card) 96%, var(--jlt-bg));
    --bs-modal-color: var(--jlt-text);
    --bs-modal-border-color: var(--jlt-border);
    --bs-modal-header-border-color: var(--jlt-border);
    --bs-modal-footer-border-color: var(--jlt-border);
    --bs-modal-box-shadow: 0 18px 56px rgba(0, 0, 0, .48);
    color: var(--jlt-text);
}

.modal-content {
    background: var(--bs-modal-bg);
    color: var(--bs-modal-color);
    border-color: var(--bs-modal-border-color);
    box-shadow: var(--bs-modal-box-shadow);
}

.modal-header,
.modal-footer {
    background: color-mix(in srgb, var(--jlt-card) 94%, transparent);
}

.modal-title,
.modal-body,
.modal-footer {
    color: var(--jlt-text);
}

.modal .btn-close {
    filter: invert(1) grayscale(100%) brightness(180%);
    opacity: .78;
}

.modal .btn-close:hover,
.modal .btn-close:focus {
    opacity: 1;
}

.modal .form-control,
.modal .form-select {
    background: color-mix(in srgb, var(--jlt-card) 88%, #000000);
    border-color: var(--jlt-border);
    color: var(--jlt-text);
}

@media (prefers-color-scheme: light) {
    html:not([data-theme]) .modal .btn-close {
        filter: none;
    }

    html:not([data-theme]) .modal .form-control,
    html:not([data-theme]) .modal .form-select {
        background: #ffffff;
    }
}

html[data-theme='light'] .modal .btn-close {
    filter: none;
}

html[data-theme='light'] .modal .form-control,
html[data-theme='light'] .modal .form-select {
    background: #ffffff;
}

.jlt-card {
    background: color-mix(in srgb, var(--jlt-card) 92%, transparent);
    border: 1px solid var(--jlt-border);
    border-radius: 14px;
    box-shadow: var(--jlt-card-shadow);
}

.jlt-company-logo-image {
    display: block;
    width: auto;
    max-width: 100%;
    height: 32px;
    object-fit: contain;
}

.jlt-muted {
    color: var(--jlt-muted);
}

.jlt-pill {
    padding: .2rem .55rem;
    border-radius: 999px;
    font-size: .8rem;
    border: 1px solid var(--jlt-border);
    background: rgba(255, 255, 255, .03);
    color: var(--jlt-text);
}

.queue-card {
    border: 1px solid var(--jlt-border);
    border-radius: .5rem;
    padding: .65rem .75rem;
    background: color-mix(in srgb, var(--jlt-card) 92%, transparent);
}

.queue-card + .queue-card {
    margin-top: .5rem;
}

.queue-meta {
    font-size: .78rem;
}

.queue-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .35rem .75rem;
}

.queue-kv {
    min-width: 0;
}

.queue-kv strong {
    display: block;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--jlt-muted);
}

.queue-kv span {
    font-size: .82rem;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.od-text-left {
    text-align: left;
}

.od-text-right {
    text-align: right;
}

.od-table-wrap {
    border: 1px solid var(--jlt-border);
    border-radius: .5rem;
    overflow: auto;
    background: color-mix(in srgb, var(--jlt-card) 92%, transparent);
}

.od-mini-table {
    margin: 0;
    color: var(--jlt-text);
    --bs-table-color: var(--jlt-text);
    --bs-table-bg: color-mix(in srgb, var(--jlt-card) 92%, transparent);
    --bs-table-border-color: color-mix(in srgb, var(--jlt-border) 80%, transparent);
    --bs-table-striped-color: var(--jlt-text);
    --bs-table-striped-bg: color-mix(in srgb, var(--jlt-card) 82%, transparent);
    --bs-table-active-color: var(--jlt-text);
    --bs-table-active-bg: color-mix(in srgb, var(--jlt-card) 78%, transparent);
    --bs-table-hover-color: var(--jlt-text);
    --bs-table-hover-bg: color-mix(in srgb, var(--jlt-card) 84%, transparent);
}

.od-mini-table thead th {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--jlt-muted);
    border-bottom-color: var(--jlt-border);
    background: color-mix(in srgb, var(--jlt-card) 85%, transparent);
    white-space: nowrap;
}

.od-mini-table tbody td {
    font-size: .82rem;
    color: var(--jlt-text);
    border-bottom-color: color-mix(in srgb, var(--jlt-border) 75%, transparent);
    vertical-align: middle;
}

.od-product-name {
    display: block;
    font-size: .82rem;
    color: var(--jlt-text);
}

.od-product-code {
    display: block;
    font-size: .72rem;
    color: var(--jlt-muted);
}

.od-product-identity {
    align-items: center;
    display: grid;
    gap: .65rem;
    grid-template-columns: 3.5rem minmax(0, 1fr);
    min-width: 0;
}

.od-product-identity--compact {
    grid-template-columns: 2.75rem minmax(7rem, 1fr);
}

.od-product-media,
.od-product-thumbnail,
.od-product-thumbnail-placeholder {
    aspect-ratio: 1;
    height: 3.5rem;
    width: 3.5rem;
}

.od-product-identity--compact .od-product-media,
.od-product-identity--compact .od-product-thumbnail,
.od-product-identity--compact .od-product-thumbnail-placeholder {
    height: 2.75rem;
    width: 2.75rem;
}

.od-product-media {
    display: block;
}

.od-product-thumbnail,
.od-product-thumbnail-placeholder {
    background: color-mix(in srgb, var(--jlt-card) 82%, var(--jlt-bg));
    border: 1px solid var(--jlt-border);
    border-radius: .65rem;
}

.od-product-thumbnail {
    display: block;
    object-fit: contain;
}

.od-product-thumbnail-placeholder {
    align-items: center;
    color: var(--jlt-muted);
    display: flex;
    font-size: .62rem;
    justify-content: center;
    line-height: 1.1;
    padding: .3rem;
    text-align: center;
}

.od-product-thumbnail-placeholder[hidden] {
    display: none;
}

.od-product-copy {
    min-width: 0;
}

.od-audit .queue-kv strong,
.od-audit .queue-kv span {
    color: var(--jlt-muted);
    font-size: .76rem;
}

/* A tarja representa o estado confirmado, sem confundir faturado com quitado. */
html body [data-card-tone] {
    border-left: 5px solid var(--card-signal-color, var(--jlt-muted));
}
[data-card-tone="success"] { --card-signal-color: var(--jlt-success); }
[data-card-tone="danger"] { --card-signal-color: var(--jlt-danger); }
[data-card-tone="warning"] { --card-signal-color: var(--jlt-warn); }
[data-card-tone="info"] { --card-signal-color: var(--jlt-accent); }
[data-card-tone="neutral"] { --card-signal-color: var(--jlt-muted); }
.queue-next-action {
    padding: .65rem .8rem;
    border-radius: .5rem;
    border: 1px solid color-mix(in srgb, var(--card-signal-color, var(--jlt-accent)) 55%, var(--jlt-border));
    background: color-mix(in srgb, var(--card-signal-color, var(--jlt-accent)) 10%, var(--jlt-card));
    align-self: start;
}
.queue-next-action > span { font-size: 1.05rem; font-weight: 700; color: var(--jlt-text); }

.badge-soft-danger,
.badge-soft-success,
.badge-soft-warning,
.badge-soft-neutral {
    border: 1px solid transparent;
    font-weight: 600;
}

.badge-soft-danger {
    background: color-mix(in srgb, var(--jlt-danger) 18%, transparent);
    border-color: color-mix(in srgb, var(--jlt-danger) 38%, transparent);
    color: var(--jlt-text);
}

.badge-soft-success {
    background: color-mix(in srgb, var(--jlt-accent-2) 20%, transparent);
    border-color: color-mix(in srgb, var(--jlt-accent-2) 44%, transparent);
    color: var(--jlt-text);
}

.badge-soft-warning {
    background: color-mix(in srgb, var(--jlt-warn) 20%, transparent);
    border-color: color-mix(in srgb, var(--jlt-warn) 44%, transparent);
    color: var(--jlt-text);
}

.badge-soft-neutral {
    background: color-mix(in srgb, var(--jlt-card) 60%, #ffffff);
    border-color: var(--jlt-border);
    color: var(--jlt-text);
}

@media (max-width: 991px) {
    .queue-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 576px) {
    .queue-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
}

/* Barra compacta compartilhada para filtros operacionais. */
.filter-toolbar {
    --filter-control-height: 2.125rem;
    display: grid;
    gap: .625rem;
    min-width: 0;
}

.filter-toolbar--surface {
    background: color-mix(in srgb, var(--jlt-card) 92%, transparent);
    border: 1px solid var(--jlt-border);
    border-radius: .75rem;
    padding: .75rem;
}

.filter-toolbar__primary,
.filter-toolbar__row,
.filter-toolbar__footer {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: .625rem;
    min-width: 0;
}

.filter-toolbar__primary {
    display: grid;
    grid-template-columns: minmax(16rem, 1fr) minmax(12rem, auto) minmax(9rem, auto);
}

.filter-toolbar__row,
.filter-toolbar__footer {
    align-items: flex-end;
}

.filter-toolbar__row + .filter-toolbar__row,
.filter-toolbar__footer {
    border-top: 1px solid color-mix(in srgb, var(--jlt-border) 72%, transparent);
    padding-top: .625rem;
}

.filter-toolbar__footer {
    justify-content: space-between;
}

.filter-group {
    border: 0;
    display: grid;
    gap: .25rem;
    margin: 0;
    min-width: 0;
    padding: 0;
}

.filter-group--grow {
    flex: 1 1 28rem;
}

.filter-group--actions {
    border-inline-start: 1px solid var(--jlt-border);
    padding-inline-start: .625rem;
}

.filter-label {
    color: var(--jlt-muted);
    float: none;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.2;
    margin: 0;
    padding: 0;
    text-transform: uppercase;
}

.filter-control.form-control,
.filter-control.form-select,
.filter-segmented > .btn,
.filter-segmented > .form-select {
    min-height: var(--filter-control-height);
}

.filter-control.form-control,
.filter-control.form-select {
    background-color: var(--jlt-surface);
    border-color: var(--jlt-border);
    color: var(--jlt-text);
    font-size: .8125rem;
}

.filter-control.form-control::placeholder {
    color: var(--jlt-muted);
}

.filter-segmented {
    align-items: stretch;
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    min-width: 0;
}

.filter-segmented > .btn {
    border-radius: .5rem !important;
    flex: 0 1 auto;
    font-size: .75rem;
    padding: .3rem .625rem;
    white-space: nowrap;
}

.filter-segmented > .btn.active,
.filter-segmented > .btn[aria-pressed="true"],
.filter-segmented > .btn-check:checked + .btn {
    background: var(--jlt-accent-2);
    border-color: var(--jlt-accent-2);
    color: #06220f;
    font-weight: 700;
}

.filter-toolbar :is(.btn, .form-control, .form-select):focus-visible {
    outline: 2px solid var(--jlt-accent-2);
    outline-offset: 2px;
}

.filter-toolbar :is(.btn, .form-control, .form-select):disabled {
    cursor: not-allowed;
    opacity: .55;
}

.filter-summary {
    display: grid;
    gap: .375rem;
    grid-template-columns: repeat(6, minmax(5.75rem, 1fr)) minmax(8.5rem, 1.35fr);
}

.filter-summary__item,
.filter-summary > .billing-visible-summary-item {
    align-items: center;
    background: color-mix(in srgb, var(--jlt-surface) 72%, transparent);
    border: 1px solid var(--jlt-border);
    border-radius: .625rem;
    display: flex;
    gap: .5rem;
    justify-content: space-between;
    min-height: 2.5rem;
    min-width: 0;
    padding: .35rem .55rem;
}

.filter-summary__item strong,
.filter-summary > .billing-visible-summary-item strong {
    color: var(--jlt-muted);
    font-size: .65rem;
    letter-spacing: .02em;
    line-height: 1.15;
    text-transform: uppercase;
}

.filter-summary__item span,
.filter-summary > .billing-visible-summary-item span {
    color: var(--jlt-text);
    font-size: .875rem;
    font-weight: 700;
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    .filter-toolbar__primary {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    .filter-toolbar__primary > :first-child {
        grid-column: 1 / -1;
    }

    .filter-summary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .filter-toolbar__primary {
        grid-template-columns: minmax(0, 1fr);
    }

    .filter-toolbar__primary > :first-child {
        grid-column: auto;
    }

    .filter-toolbar__row,
    .filter-toolbar__footer {
        align-items: stretch;
        flex-direction: column;
    }

    .filter-group,
    .filter-group--grow {
        flex-basis: auto;
        width: 100%;
    }

    .filter-group--actions {
        border-inline-start: 0;
        border-top: 1px solid var(--jlt-border);
        padding-inline-start: 0;
        padding-top: .625rem;
    }

    .filter-segmented > .btn {
        max-width: 100%;
        white-space: normal;
    }

    .filter-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.permission-module {
    margin: 0;
    border: 1px solid var(--jlt-border);
    border-radius: .75rem;
    background: color-mix(in srgb, var(--jlt-card) 92%, transparent);
    overflow: clip;
}

.permission-card-title {
    float: none;
    width: auto;
    margin: 0;
    padding-inline: .3rem;
    color: var(--jlt-text);
    font-weight: 700;
}

.permission-module + .permission-module {
    margin-top: .75rem;
}

.permission-module-header {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-height: 3rem;
    padding: .65rem .75rem;
    color: var(--jlt-text);
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
    transition: background-color .15s ease;
}

.permission-module-header::-webkit-details-marker {
    display: none;
}

.permission-module-header:hover {
    background: color-mix(in srgb, var(--jlt-accent) 10%, transparent);
}

.permission-module-header:focus-visible {
    outline: 2px solid var(--jlt-accent);
    outline-offset: -2px;
}

.permission-module-icon {
    display: inline-block;
    margin-left: auto;
    color: var(--jlt-accent);
    font-size: 1.25rem;
    line-height: 1;
    transition: transform .2s ease;
}

.permission-module[open] > .permission-module-header {
    border-bottom: 1px solid var(--jlt-border);
}

.permission-module[open] > .permission-module-header .permission-module-icon {
    transform: rotate(180deg);
}

.permission-module > .permission-card-list {
    padding: .75rem;
}

.permission-count,
.permission-status {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    border: 1px solid var(--jlt-border);
    border-radius: 999px;
    padding: .15rem .45rem;
    font-size: .75rem;
    font-weight: 700;
}

.permission-count {
    color: var(--jlt-muted);
}

.permission-card-list {
    display: grid;
    gap: .75rem;
}

.permission-card {
    min-width: 0;
    margin: 0;
    padding: .75rem;
    border: 1px solid var(--jlt-border);
    border-radius: .75rem;
    background: color-mix(in srgb, var(--jlt-card) 92%, transparent);
}

.permission-card:focus-within {
    outline: 3px solid color-mix(in srgb, var(--jlt-accent) 55%, transparent);
    outline-offset: 2px;
}

.permission-card-controls {
    display: grid;
    grid-template-columns: minmax(16rem, 1.4fr) minmax(9rem, .7fr) minmax(14rem, 1fr);
    gap: .75rem;
    align-items: end;
    margin-top: .75rem;
}

.permission-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
}

.permission-card-summary {
    min-width: 0;
}

.permission-card-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}

.permission-description {
    margin: .4rem 0 0;
    color: var(--jlt-muted);
    font-size: .875rem;
    line-height: 1.45;
}

.permission-code {
    flex: 0 1 auto;
    max-width: 45%;
    overflow-wrap: anywhere;
    color: color-mix(in srgb, var(--jlt-accent) 72%, var(--jlt-text));
    text-align: right;
}

.permission-scope-field,
.permission-expiration-field {
    min-width: 0;
    width: 100%;
}

.permission-scope-field .form-select,
.permission-expiration-field .form-control {
    width: 100%;
}

.permission-scope-field .form-select {
    min-width: 9rem;
}

.permission-decision-group {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.permission-decision-group > legend {
    float: none;
    width: auto;
    margin-bottom: .25rem;
}

.permission-radio-options {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .85rem;
}

.permission-status-sensitive {
    color: var(--jlt-danger-text);
    border-color: color-mix(in srgb, var(--jlt-danger) 55%, var(--jlt-border));
    background: color-mix(in srgb, var(--jlt-danger) 14%, var(--jlt-card));
}

.permission-status-changed {
    color: var(--jlt-text);
    border-color: color-mix(in srgb, var(--jlt-warn) 65%, var(--jlt-border));
    background: color-mix(in srgb, var(--jlt-warn) 16%, var(--jlt-card));
}

.permission-status-pending {
    color: color-mix(in srgb, var(--jlt-warn) 65%, var(--jlt-text));
    border-color: color-mix(in srgb, var(--jlt-warn) 65%, var(--jlt-border));
    background: color-mix(in srgb, var(--jlt-warn) 14%, var(--jlt-card));
}

.permission-status-operational {
    color: var(--jlt-success-text);
    border-color: color-mix(in srgb, var(--jlt-success) 55%, var(--jlt-border));
    background: color-mix(in srgb, var(--jlt-success) 12%, var(--jlt-card));
}

.permission-card-pending {
    opacity: .65;
}

.permission-card-expired {
    opacity: .5;
}

.permission-status-expired {
    color: var(--jlt-muted);
    background: color-mix(in srgb, var(--jlt-muted) 12%, var(--jlt-card));
}

.permission-filters {
    display: grid;
    grid-template-columns: minmax(14rem, 1.4fr) minmax(14rem, 1fr);
    gap: .75rem;
    margin-bottom: .75rem;
}

.permission-filters > div,
.permission-filters .form-control,
.permission-filters .form-select {
    min-width: 0;
    width: 100%;
}

.permission-filter-feedback {
    min-height: 1.25rem;
    margin: -.25rem 0 .75rem;
    color: var(--jlt-muted);
    font-size: .8rem;
}

.permission-migration-notice {
    margin: .4rem 0 0;
    color: color-mix(in srgb, var(--jlt-warn) 65%, var(--jlt-text));
    font-size: .8rem;
    font-weight: 600;
}

.permission-review {
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--jlt-warn) 55%, var(--jlt-border));
    border-radius: .75rem;
    background: color-mix(in srgb, var(--jlt-warn) 9%, var(--jlt-card));
}

.permission-review:focus {
    outline: 3px solid color-mix(in srgb, var(--jlt-accent) 55%, transparent);
    outline-offset: 2px;
}

.permission-review-heading,
.permission-review-category li {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
}

.permission-review-eyebrow {
    color: var(--jlt-warn-text);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.permission-review-heading h3 {
    margin: .15rem 0 0;
    font-size: 1.1rem;
}

.permission-review-total,
.permission-review-category h4 span {
    color: var(--jlt-muted);
    font-size: .8rem;
}

.permission-review-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.permission-review-category {
    min-width: 0;
    padding: .75rem;
    border: 1px solid var(--jlt-border);
    border-radius: .55rem;
    color: var(--jlt-text);
    background: var(--jlt-card);
}

.permission-review-category-title {
    min-width: 0;
    color: var(--jlt-text);
    font-weight: 700;
}

.permission-review-category-total {
    flex: 0 0 auto;
    color: var(--jlt-muted);
    font-weight: 700;
}

.permission-review-empty {
    margin: 0;
    color: var(--jlt-muted);
    font-size: .875rem;
    line-height: 1.45;
}

.permission-review-list {
    margin: 0;
    padding-left: 1.15rem;
    color: var(--jlt-text);
}

.permission-review-item-description {
    min-width: 0;
    color: var(--jlt-text);
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.permission-review-item-code {
    color: color-mix(
        in srgb,
        var(--jlt-accent) 72%,
        var(--jlt-text)
    );
}

.permission-review-note {
    margin: 0;
    color: var(--jlt-muted);
    font-size: .8rem;
    line-height: 1.45;
}

.permission-review-category h4 {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    margin: 0 0 .4rem;
    font-size: .9rem;
}

.permission-review-category li {
    color: var(--jlt-text);
}

.permission-review-category li + li {
    margin-top: .35rem;
}

.permission-review-category code {
    overflow-wrap: anywhere;
    text-align: right;
}

.permission-critical-confirmation {
    margin-bottom: .75rem;
    padding: .75rem;
    border: 1px solid color-mix(in srgb, var(--jlt-danger) 55%, var(--jlt-border));
    border-radius: .55rem;
    color: var(--jlt-danger-text);
    background: color-mix(in srgb, var(--jlt-danger) 10%, var(--jlt-card));
}

.permission-history {
    margin-top: 1rem;
    border: 1px solid var(--jlt-border);
    border-radius: .75rem;
    background: color-mix(in srgb, var(--jlt-card) 92%, transparent);
}

.permission-history > summary {
    padding: .75rem 1rem;
    color: var(--jlt-text);
    font-weight: 700;
    cursor: pointer;
}

.permission-history > summary:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--jlt-accent) 55%, transparent);
    outline-offset: 2px;
}

.permission-history-content {
    padding: 0 1rem 1rem;
}

.permission-history-table th {
    color: var(--jlt-muted);
    font-size: .75rem;
    white-space: nowrap;
}

.permission-history-table td {
    color: var(--jlt-text);
    text-align: left;
    vertical-align: top;
}

.permission-history-table code {
    overflow-wrap: anywhere;
}

@media (max-width: 767.98px) {
    .permission-module {
        border-radius: .65rem;
    }

    .permission-filters,
    .permission-card-list,
    .permission-card-controls,
    .permission-review-heading,
    .permission-review-category li {
        display: flex;
        flex-direction: column;
    }

    .permission-review-grid {
        grid-template-columns: 1fr;
    }

    .permission-review-category code {
        text-align: left;
    }

    .permission-card-controls > * {
        width: 100%;
    }

    .permission-radio-options {
        flex-direction: column;
        gap: .4rem;
    }

    .permission-card-heading {
        flex-direction: column;
    }

    .permission-module-header {
        flex-wrap: wrap;
    }

    .permission-code {
        max-width: 100%;
        text-align: left;
    }

    .permission-scope-field .form-select {
        min-width: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .permission-module-header,
    .permission-module-icon {
        transition: none;
    }
}


.orders-process-queue .orders-process-queue-filter-toggle {
    width: 100%;
    border: 0;
    color: var(--jlt-text);
    background: color-mix(in srgb, var(--jlt-card) 92%, transparent);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    text-align: left;
}

.orders-process-queue .orders-process-queue-filter-toggle:focus-visible {
    outline: 2px solid var(--jlt-accent);
    outline-offset: -2px;
}

.orders-process-queue .orders-process-queue-filter-icon {
    width: 1.5rem;
    height: 1.5rem;
    border: 1px solid var(--jlt-border);
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--jlt-text);
    background: color-mix(in srgb, var(--jlt-card) 84%, transparent);
    line-height: 1;
}

.orders-process-queue .orders-process-queue-view-card {
    border: 1px solid var(--jlt-border);
    border-radius: 12px;
    background: color-mix(in srgb, var(--jlt-card) 92%, transparent);
    padding: .5rem;
    margin-left: auto;
    max-width: 100%;
}

.orders-process-queue .orders-process-queue-view-card-title {
    color: var(--jlt-muted);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    margin-bottom: .35rem;
}

.orders-process-queue .orders-process-queue-view-card .btn-group {
    max-width: 100%;
}

.orders-process-queue .queue-card,
.orders-process-queue .queue-card .d-flex,
.orders-process-queue .queue-card .queue-grid,
.orders-process-queue .queue-card .queue-kv,
.orders-process-queue .orders-process-queue-batch-operation,
.orders-process-queue #cards,
.orders-process-queue #cards > * {
    min-width: 0;
}

.orders-process-queue .badge,
.orders-process-queue .queue-kv span,
.orders-process-queue .queue-meta,
.orders-process-queue .queue-card-title-link,
.orders-process-queue #batchSelectionSummary,
.orders-process-queue #batchSelectionOperation {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.orders-process-queue .orders-process-queue-visualization,
.orders-process-queue .orders-process-queue-batch-controls,
.orders-process-queue .orders-process-queue-batch-selection-toolbar,
.orders-process-queue .orders-process-queue-batch-selection-info {
    min-width: 0;
}

.orders-process-queue .orders-process-queue-batch-selection-actions[hidden] {
    display: none !important;
}

.orders-process-queue .orders-process-queue-batch-selection-actions {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--jlt-surface);
}

.orders-process-queue .orders-process-queue-batch-selection-actions:focus-within {
    outline: 2px solid var(--jlt-accent);
    outline-offset: 2px;
}

.orders-process-queue .orders-process-queue-batch-operation {
    max-width: 260px;
}

.orders-process-queue #cards {
    background: var(--orders-process-list-bg);
}

.orders-process-queue #cards .queue-card {
    background: var(--orders-process-card-odd-bg);
    border-color: var(--orders-process-card-border);
}

.orders-process-queue #cards .queue-card:nth-of-type(even) {
    background: var(--orders-process-card-even-bg);
}

.orders-process-queue .queue-card--by-product .queue-grid--product,
.orders-process-queue .queue-card--by-customer .queue-grid--customer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-width: 280px;
}

.orders-process-queue .queue-row-muted {
    opacity: .5;
}

@media (max-width: 576px) {
    .orders-process-queue .orders-process-queue-visualization,
    .orders-process-queue .orders-process-queue-batch-controls,
    .orders-process-queue .orders-process-queue-batch-selection-actions {
        gap: .4rem !important;
        padding-left: .75rem !important;
        padding-right: .75rem !important;
    }
}

@media (max-width: 576px) {
    .orders-process-queue .jlt-topbar {
        align-items: center;
        gap: var(--jlt-topbar-gap, .625rem);
    }

    .orders-process-queue .jlt-topbar > * {
        min-width: 0;
    }

    .orders-process-queue .orders-process-queue-view-card {
        width: 100%;
        margin-left: 0;
    }

    .orders-process-queue .orders-process-queue-view-card .btn-group {
        display: flex;
        width: 100%;
    }

    .orders-process-queue .orders-process-queue-view-card .btn {
        flex: 1 1 0;
        min-width: 0;
        white-space: normal;
    }
}

@media (min-width: 992px) and (max-width: 1399px) {
    .orders-process-queue .queue-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1400px) {
    .orders-process-queue .queue-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.btn-jlt {
    background-color: var(--jlt-accent);
    border: 1px solid var(--jlt-accent);
    color: #081021;
    font-weight: 800;
    transition: all 0.2s ease-in-out;
}

.btn-jlt:hover {
    background-color: var(--jlt-action-hover-bg) !important;
    border-color: var(--jlt-action-hover-border) !important;
    color: var(--jlt-action-hover-text) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--jlt-action-hover-bg) 28%, transparent), 0 8px 22px color-mix(in srgb, var(--jlt-action-hover-bg) 34%, transparent);
}

.btn-outline-jlt {
    border-color: rgba(79, 140, 255, .6);
    color: var(--jlt-text);
}

.btn-outline-jlt:hover {
    background: rgba(79, 140, 255, .14);
    border-color: rgba(79, 140, 255, .9);
}

.jlt-nav a {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--jlt-text);
    padding: 8px 10px;
    border-radius: 12px;
    margin-top: 0;
    border: 1px solid transparent;
    width: 100%;
    white-space: nowrap;
}

.jlt-nav a:hover {
    background: rgba(255, 255, 255, .04);
    border-color: var(--jlt-border);
}

.jlt-nav a.active {
    background: rgba(79, 140, 255, .14);
    border-color: rgba(79, 140, 255, .35);
}

.jlt-nav-icon {
    min-width: 24px;
    display: inline-flex;
    justify-content: center;
}

.jlt-nav-label,
.jlt-brand-meta,
.jlt-session {
    opacity: 0;
    pointer-events: none;
    transition: opacity .12s ease;
}

.jlt-shell-side:hover .jlt-nav-label,
.jlt-shell-side:focus-within .jlt-nav-label,
.jlt-shell-side:hover .jlt-brand-meta,
.jlt-shell-side:focus-within .jlt-brand-meta,
.jlt-shell-side:hover .jlt-session,
.jlt-shell-side:focus-within .jlt-session {
    opacity: 1;
    pointer-events: auto;
}

.jlt-section-title {
    font-weight: 800;
    letter-spacing: .2px;
}

.jlt-tile {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid var(--jlt-border);
    text-decoration: none;
    transition: transform .08s ease, background .08s ease, border-color .08s ease;
}

.jlt-tile:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, .045);
    border-color: rgba(79, 140, 255, .25);
}

.jlt-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    font-size: 16px;
    background: rgba(79, 140, 255, .12);
    border: 1px solid rgba(79, 140, 255, .25);
}

.jlt-icon-notify {
    position: relative;
}

.jlt-icon-alert {
    position: absolute;
    top: -8px;
    right: -8px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--jlt-danger);
    border: 1px solid rgba(255, 255, 255, .35);
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
}

.jlt-tile h3 {
    font-size: .95rem;
    color: var(--jlt-text);
    margin: 0;
    font-weight: 800;
}

.jlt-tile p {
    margin: 4px 0 0 0;
    color: var(--jlt-muted);
    font-size: .85rem;
    line-height: 1.15rem;
}

/* =========================
   PATCH CONTRASTE / BOOTSTRAP
   ========================= */

/* Garante texto claro por padrão em toda a UI */
body, .jlt-main, .jlt-shell-side {
    color: var(--jlt-text);
}

/* Alguns elementos padrão do Bootstrap ficam escuros: forçar dentro dos cards */
.jlt-card,
.jlt-card .card-body,
.jlt-card .card-header,
.jlt-card .card-footer {
    color: var(--jlt-text);
}

.jlt-main .card {
    background: color-mix(in srgb, var(--jlt-card) 92%, transparent);
    border-color: var(--jlt-border);
    color: var(--jlt-text);
    border-radius: 12px;
}

.jlt-main .card .card-header,
.jlt-main .card .card-body,
.jlt-main .card .card-footer {
    color: var(--jlt-text);
}

.jlt-main .card .card-header {
    background: rgba(255, 255, 255, .02);
    border-bottom-color: var(--jlt-border);
}

.jlt-main .form-control,
.jlt-main .form-select {
    min-height: 36px;
    padding-top: .38rem;
    padding-bottom: .38rem;
}

@media (min-width: 993px) {
    .jlt-main .form-control,
    .jlt-main .form-select {
        min-height: var(--jlt-content-control-height);
        padding-top: .2rem;
        padding-bottom: .2rem;
    }
}

.jlt-main .form-control:required,
.jlt-main .form-select:required,
.jlt-main textarea.form-control:required,
.jlt-main .jlt-required-field {
    border-left: 3px solid var(--jlt-danger);
    border-bottom: 2px solid color-mix(in srgb, var(--jlt-danger) 70%, var(--jlt-border));
    padding-left: calc(.75rem - 2px);
}

/* Header do card no tema escuro */
.jlt-card .card-header {
    background: rgba(255, 255, 255, .02);
    border-bottom: 1px solid var(--jlt-border);
}

/* Textos auxiliares (small) e muted */
small,
.text-muted,
.jlt-muted {
    color: var(--jlt-muted) !important;
}

/* Links dentro de cards (ex.: tiles e notas) */
.jlt-card a {
    color: var(--jlt-text);
}

/* Listas (ul/li) dentro de cards - (Notas) */
.jlt-card ul,
.jlt-card li {
    color: var(--jlt-text);
}

/* Botões outline do Bootstrap às vezes ficam com texto escuro em alguns estados */
.btn,
.btn:focus,
.btn:hover {
    color: inherit;
}

.btn-outline-light {
    background: transparent;
    border-color: color-mix(in srgb, var(--jlt-text) 42%, transparent);
    color: var(--jlt-text);
}

.btn-outline-light:hover,
.btn-outline-light:focus {
    background: color-mix(in srgb, var(--jlt-accent) 14%, transparent);
    border-color: color-mix(in srgb, var(--jlt-accent) 74%, var(--jlt-border));
    color: var(--jlt-text);
}

.btn-outline-light:active,
.btn-outline-light.active {
    background: color-mix(in srgb, var(--jlt-accent) 22%, transparent);
    border-color: color-mix(in srgb, var(--jlt-accent) 86%, var(--jlt-border));
    color: var(--jlt-text);
}

/* Se você usar .btn-outline-primary do bootstrap em algum lugar */
.btn-outline-primary {
    color: var(--jlt-text);
    border-color: rgba(79, 140, 255, .6);
}

.btn-outline-primary:hover {
    background: rgba(79, 140, 255, .14);
    border-color: rgba(79, 140, 255, .9);
}

/* Melhora contraste de labels em formulários */
.form-label,
.form-check-label,
.col-form-label {
    color: var(--jlt-text);
    font-weight: 500;
}

.checkbox-group,
.checkbox-inline {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
}

.checkbox-field,
.form-check {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
}

.checkbox-inline .checkbox-field,
.checkbox-inline .form-check {
    margin-bottom: 0;
}

.checkbox-label,
.checkbox-field label,
.form-check-label {
    color: var(--checkbox-label) !important;
    font-weight: 500;
    opacity: 1;
}

input[type="checkbox"],
.form-check-input[type="checkbox"],
.checkbox-field input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 1.05rem;
    height: 1.05rem;
    border: 1px solid var(--checkbox-border);
    border-radius: .3rem;
    background: var(--checkbox-bg);
    display: inline-grid;
    place-content: center;
    margin: 0;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}

input[type="checkbox"]::before,
.form-check-input[type="checkbox"]::before,
.checkbox-field input[type="checkbox"]::before {
    content: "";
    width: .32rem;
    height: .58rem;
    border-right: 2px solid var(--checkbox-check-color);
    border-bottom: 2px solid var(--checkbox-check-color);
    transform: rotate(45deg) scale(0);
    transition: transform .12s ease-in-out;
    transform-origin: center;
}

input[type="checkbox"]:checked,
.form-check-input[type="checkbox"]:checked,
.checkbox-field input[type="checkbox"]:checked {
    background: var(--checkbox-check-bg);
    border-color: var(--checkbox-check-bg);
}

input[type="checkbox"]:checked::before,
.form-check-input[type="checkbox"]:checked::before,
.checkbox-field input[type="checkbox"]:checked::before {
    transform: rotate(45deg) scale(1);
}

input[type="checkbox"]:hover:not(:disabled),
.form-check-input[type="checkbox"]:hover:not(:disabled),
.checkbox-field input[type="checkbox"]:hover:not(:disabled) {
    background: var(--checkbox-hover-bg);
    border-color: color-mix(in srgb, var(--checkbox-check-bg) 62%, var(--checkbox-border));
}

input[type="checkbox"]:checked:hover:not(:disabled),
.form-check-input[type="checkbox"]:checked:hover:not(:disabled),
.checkbox-field input[type="checkbox"]:checked:hover:not(:disabled) {
    background: var(--checkbox-check-bg);
    border-color: color-mix(in srgb, var(--checkbox-check-bg) 72%, white);
    box-shadow: 0 0 0 3px var(--checkbox-focus-ring);
}

input[type="checkbox"]:focus-visible,
.form-check-input[type="checkbox"]:focus-visible,
.checkbox-field input[type="checkbox"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--checkbox-focus-ring);
}

input[type="checkbox"]:disabled,
.form-check-input[type="checkbox"]:disabled,
.checkbox-field input[type="checkbox"]:disabled {
    background: var(--checkbox-disabled-bg);
    border-color: var(--checkbox-disabled-border);
    cursor: not-allowed;
}

input[type="checkbox"]:disabled + label,
.form-check-input[type="checkbox"]:disabled + .form-check-label,
.checkbox-field input[type="checkbox"]:disabled + .checkbox-label {
    color: var(--checkbox-disabled-label) !important;
    cursor: not-allowed;
}

/* Inputs e selects com fundo claro: placeholder com contraste */
.form-control::placeholder,
.form-select::placeholder {
    color: rgba(15, 23, 42, .55);
}

/* Evita que alguns headers/labels peguem cor padrão do Bootstrap */
.card-title,
.form-label,
.form-text,
.dropdown-menu,
.dropdown-item {
    color: var(--jlt-text);
}

/* Dropdown no tema escuro (se usar depois) */
.dropdown-menu {
    background: color-mix(in srgb, var(--jlt-card) 96%, transparent);
    border: 1px solid var(--jlt-border);
}

.dropdown-item:hover {
    background: color-mix(in srgb, var(--jlt-accent) 12%, transparent);
    color: var(--jlt-text);
}

html:not([data-theme='light']) .topbar-favorites-menu .dropdown-item:hover,
html:not([data-theme='light']) .topbar-favorites-menu .dropdown-item:focus-visible {
    color: #ffffff;
}

.btn-primary:hover,
.btn-jlt:hover {
    background-color: var(--jlt-action-hover-bg) !important;
    border-color: var(--jlt-action-hover-border) !important;
    color: var(--jlt-action-hover-text) !important;
}

.btn:disabled,
.btn.disabled,
.btn[aria-disabled='true'] {
    border-style: solid;
    border-width: 1px;
    border-color: color-mix(in srgb, var(--jlt-accent) 48%, var(--jlt-border));
    background: color-mix(in srgb, var(--jlt-card) 78%, var(--jlt-accent) 22%);
    color: color-mix(in srgb, var(--jlt-text) 72%, transparent) !important;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--jlt-text) 8%, transparent);
    opacity: .68;
}

.dropdown-item:focus,
.dropdown-item:focus-visible {
    color: var(--jlt-text);
    background: color-mix(in srgb, var(--jlt-accent) 16%, transparent);
}

.dropdown-item.active,
.dropdown-item:active {
    color: var(--jlt-text);
    background: color-mix(in srgb, var(--jlt-accent) 22%, var(--jlt-card));
}

.jlt-table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--jlt-text);
    --bs-table-border-color: var(--jlt-border);
    --bs-table-hover-bg: var(--jlt-table-hover-bg);
    --bs-table-hover-color: var(--jlt-table-hover-color);
    --bs-table-active-bg: color-mix(in srgb, var(--jlt-accent) 12%, var(--jlt-card));
    --bs-table-active-color: var(--jlt-text);
}

.jlt-table thead th {
    color: var(--jlt-muted);
    font-weight: 800;
    border-bottom: 1px solid var(--jlt-border);
}

.jlt-table tbody td {
    border-top: 1px solid rgba(255, 255, 255, .06);
}

table th,
table td {
    white-space: nowrap;
}

table .text-wrap {
    white-space: normal !important;
}

.jlt-table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.jlt-table-responsive > .table {
    min-width: 640px;
}

.jlt-mobile-wrap {
    display: flex;
    align-items: center;
    gap: .5rem;
}

@media (max-width: 576px) {
    .jlt-mobile-wrap {
        width: 100%;
        flex-wrap: wrap;
    }

    .jlt-mobile-wrap > .btn,
    .jlt-mobile-wrap > a.btn,
    .jlt-mobile-wrap > .btn-group {
        flex: 1 1 100%;
    }
}

.jlt-resumo-financeiro {
    background: rgba(255, 255, 255, .04);
    border-color: var(--jlt-border) !important;
}

.jlt-kpi {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.1;
}

.jlt-lista-resumo {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.jlt-linha-resumo {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 12px;
    border: 1px solid var(--jlt-border);
    border-radius: 12px;
    background: rgba(255, 255, 255, .02);
}

.jlt-tag {
    display: inline-block;
    padding: .15rem .55rem;
    border-radius: 999px;
    text-transform: capitalize;
    font-size: .78rem;
    font-weight: 700;
    border: 1px solid transparent;
}

.status-aberto {
    background: rgba(79, 140, 255, .15);
    border-color: rgba(79, 140, 255, .4);
}

.status-concluido {
    background: rgba(34, 197, 94, .15);
    border-color: rgba(34, 197, 94, .45);
}

.status-bloqueado {
    background: rgba(239, 68, 68, .15);
    border-color: rgba(239, 68, 68, .45);
}

.prazo-ok {
    background: rgba(245, 158, 11, .15);
    border-color: rgba(245, 158, 11, .35);
}

.prazo-atrasado {
    background: rgba(239, 68, 68, .15);
    border-color: rgba(239, 68, 68, .45);
}


.jlt-field-stack {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.jlt-field-label {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--jlt-muted);
}

.jlt-field-stack .form-control,
.jlt-field-stack .form-select {
    min-width: 160px;
}

.jlt-field-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .375rem .65rem;
    border: 1px solid var(--jlt-border);
    border-radius: .4rem;
    font-size: .78rem;
    color: var(--jlt-muted);
    text-decoration: none;
    white-space: nowrap;
}

.jlt-field-link:hover {
    color: var(--jlt-text);
    border-color: var(--jlt-accent);
}

/* =========================
   ERP IA NAV REFACTOR 2026
   ========================= */

:root {
    --jlt-bg: #050911;
    --jlt-surface: #080f1d;
    --jlt-card: #0b1528;
    --jlt-border: rgba(148, 180, 255, 0.22);
    --jlt-text: rgba(241, 247, 255, 0.97);
    --jlt-muted: rgba(185, 203, 229, 0.82);
    --jlt-accent: #6ba6ff;
    --jlt-warn-text: #fcd34d;
    --jlt-action-hover-bg: #9cff57;
    --jlt-action-hover-border: #c2ff96;
    --jlt-action-hover-text: #102400;
    --jlt-card-shadow: 0 16px 38px rgba(0, 0, 0, .42), 0 3px 10px rgba(0, 0, 0, .28);
    --color-favorite-active: #f8c867;
    --jlt-table-hover-bg: rgba(255, 255, 255, 0.08);
    --jlt-table-hover-color: var(--jlt-text);
    --area-comercial: #5ea2ff;
    --area-producao: #57d48a;
    --area-financeiro: #f8c867;
    --area-governanca: #af8dff;
    --jlt-scroll-thumb: rgba(214, 228, 255, 0.16);
    --jlt-scroll-thumb-hover: rgba(214, 228, 255, 0.34);
    --checkbox-label: rgba(241, 247, 255, 0.97);
    --checkbox-border: rgba(148, 180, 255, 0.46);
    --checkbox-bg: rgba(8, 15, 29, 0.95);
    --checkbox-hover-bg: rgba(107, 166, 255, 0.14);
    --checkbox-focus-ring: rgba(107, 166, 255, 0.36);
    --checkbox-check-bg: #6ba6ff;
    --checkbox-check-color: #041126;
    --checkbox-disabled-bg: rgba(107, 126, 161, 0.2);
    --checkbox-disabled-border: rgba(107, 126, 161, 0.45);
    --checkbox-disabled-label: rgba(185, 203, 229, 0.58);
    --orders-process-list-bg: #050b18;
    --orders-process-card-odd-bg: #0b162a;
    --orders-process-card-even-bg: #0f1d34;
    --orders-process-card-border: rgba(148, 180, 255, 0.28);
}


@media (prefers-color-scheme: light) {
    html:not([data-theme]) {
        --jlt-bg: #f3f7ff;
        --jlt-surface: #ffffff;
        --jlt-card: #ffffff;
        --jlt-border: rgba(39, 62, 109, 0.2);
        --jlt-text: #0f2244;
        --jlt-muted: rgba(28, 51, 89, 0.74);
        --jlt-accent: #2f6fd7;
        --jlt-warn-text: #92400e;
        --color-favorite-active: #b26b00;
        --jlt-table-hover-bg: rgba(15, 34, 68, 0.08);
        --jlt-table-hover-color: var(--jlt-text);
        --jlt-scroll-thumb: rgba(39, 62, 109, 0.22);
        --jlt-scroll-thumb-hover: rgba(39, 62, 109, 0.38);
        --checkbox-label: #1f2937;
        --checkbox-border: #94a3b8;
        --checkbox-bg: #ffffff;
        --checkbox-hover-bg: rgba(47, 111, 215, 0.1);
        --checkbox-focus-ring: rgba(47, 111, 215, 0.26);
        --checkbox-check-bg: #2563eb;
        --checkbox-check-color: #ffffff;
        --checkbox-disabled-bg: #e2e8f0;
        --checkbox-disabled-border: #cbd5e1;
        --checkbox-disabled-label: #64748b;
        --orders-process-list-bg: #e7edf7;
        --orders-process-card-odd-bg: #ffffff;
        --orders-process-card-even-bg: #f5f8fd;
        --orders-process-card-border: rgba(39, 62, 109, 0.22);
    }

    html:not([data-theme]) body {
        background: radial-gradient(1200px 600px at 10% 0%, rgba(79, 140, 255, .12), transparent 40%),
        radial-gradient(900px 500px at 80% 20%, rgba(34, 197, 94, .08), transparent 45%),
        var(--jlt-bg);
    }
}

html[data-theme='light'] {
    --jlt-bg: #f3f7ff;
    --jlt-surface: #ffffff;
    --jlt-card: #ffffff;
    --jlt-border: rgba(39, 62, 109, 0.2);
    --jlt-text: #0f2244;
    --jlt-muted: rgba(28, 51, 89, 0.74);
    --jlt-accent: #2f6fd7;
    --jlt-warn-text: #92400e;
    --jlt-action-hover-bg: #65d631;
    --jlt-action-hover-border: #3ead19;
    --jlt-action-hover-text: #0c2600;
    --jlt-card-shadow: 0 14px 32px rgba(15, 34, 68, .16), 0 3px 9px rgba(15, 34, 68, .1);
    --jlt-success: #15803d;
    --jlt-success-text: #166534;
    --jlt-danger: #dc2626;
    --jlt-danger-text: #991b1b;
    --color-favorite-active: #b26b00;
    --jlt-table-hover-bg: rgba(15, 34, 68, 0.08);
    --jlt-table-hover-color: var(--jlt-text);
    --jlt-scroll-thumb: rgba(39, 62, 109, 0.22);
    --jlt-scroll-thumb-hover: rgba(39, 62, 109, 0.38);
    --checkbox-label: #1f2937;
    --checkbox-border: #94a3b8;
    --checkbox-bg: #ffffff;
    --checkbox-hover-bg: rgba(47, 111, 215, 0.1);
    --checkbox-focus-ring: rgba(47, 111, 215, 0.26);
    --checkbox-check-bg: #2563eb;
    --checkbox-check-color: #ffffff;
    --checkbox-disabled-bg: #e2e8f0;
    --checkbox-disabled-border: #cbd5e1;
    --checkbox-disabled-label: #64748b;
    --orders-process-list-bg: #e7edf7;
    --orders-process-card-odd-bg: #ffffff;
    --orders-process-card-even-bg: #f5f8fd;
    --orders-process-card-border: rgba(39, 62, 109, 0.22);
}

html[data-theme='light'] body {
    background: radial-gradient(1200px 600px at 10% 0%, rgba(79, 140, 255, .12), transparent 40%),
    radial-gradient(900px 500px at 80% 20%, rgba(34, 197, 94, .08), transparent 45%),
    var(--jlt-bg);
}

* {
    scrollbar-width: thin;
    scrollbar-color: var(--jlt-scroll-thumb) transparent;
}

::-webkit-scrollbar {
    width: 4px;
    height: 4px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--jlt-scroll-thumb);
    border-radius: 999px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--jlt-scroll-thumb-hover);
}

.jlt-shell-side {
    width: var(--jlt-sidebar-collapsed);
    transition: width .2s ease;
    background: linear-gradient(180deg, rgba(8, 14, 28, .98), rgba(6, 12, 24, .97));
}

.jlt-shell-side:hover ~ .jlt-main,
.jlt-shell-side:focus-within ~ .jlt-main {
    margin-left: var(--jlt-sidebar-expanded);
}

.jlt-main {
    margin-left: var(--jlt-sidebar-collapsed);
}

.jlt-brand {
    min-height: auto;
}

.jlt-nav-label,
.jlt-brand-meta,
.jlt-brand-actions,
.jlt-session {
    opacity: 0;
    pointer-events: none;
}

.jlt-shell-side:hover .jlt-nav-label,
.jlt-shell-side:focus-within .jlt-nav-label,
.jlt-shell-side.is-sidebar-pinned .jlt-nav-label,
.jlt-shell-side:hover .jlt-brand-meta,
.jlt-shell-side:focus-within .jlt-brand-meta,
.jlt-shell-side.is-sidebar-pinned .jlt-brand-meta,
.jlt-shell-side:hover .jlt-brand-actions,
.jlt-shell-side:focus-within .jlt-brand-actions,
.jlt-shell-side.is-sidebar-pinned .jlt-brand-actions,
.jlt-shell-side:hover .jlt-session,
.jlt-shell-side:focus-within .jlt-session,
.jlt-shell-side.is-sidebar-pinned .jlt-session {
    opacity: 1;
    pointer-events: auto;
}

@media (min-width: 993px) {
    .jlt-shell-side:not(.is-sidebar-pinned):not(:hover):not(:focus-within) .jlt-brand-actions {
        display: none;
    }
}

.jlt-main-layout {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 12px;
}

.jlt-main-column {
    grid-column: span 8;
}

.jlt-side-column {
    grid-column: span 4;
}

@media (max-width: 1280px) {
    .jlt-main-column,
    .jlt-side-column {
        grid-column: span 12;
    }
}

@media (max-width: 992px) {
    .jlt-shell-side {
        width: min(88vw, 320px);
    }

    .jlt-nav-label,
    .jlt-brand-meta,
    .jlt-brand-actions,
    .jlt-session {
        opacity: 1;
        pointer-events: auto;
    }

    .jlt-main,
    .jlt-shell-side:hover ~ .jlt-main,
    .jlt-shell-side:focus-within ~ .jlt-main {
        margin-left: 0;
        margin-top: 56px;
    }
}

.breadcrumb-header {
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid var(--jlt-border);
    background: color-mix(in srgb, var(--jlt-card) 86%, transparent);
    margin-bottom: 12px;
}

.breadcrumb-header .breadcrumb {
    margin-bottom: 4px;
    font-size: .84rem;
}

.breadcrumb-header .breadcrumb-item,
.breadcrumb-header .breadcrumb-item a {
    color: var(--jlt-muted);
    text-decoration: none;
}

.breadcrumb-header .breadcrumb-item.active {
    color: var(--jlt-text);
    font-weight: 700;
}

.page-section {
    border: 1px solid var(--jlt-border);
    border-radius: 14px;
    background: color-mix(in srgb, var(--jlt-card) 88%, transparent);
    padding: 14px;
}

.section-group {
    border: 1px solid var(--jlt-border);
    border-radius: 12px;
    background: rgba(255, 255, 255, .015);
    padding: 10px;
}

.section-group + .section-group {
    margin-top: 10px;
}

.section-group-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.section-group-title {
    margin: 0;
    font-size: .95rem;
    font-weight: 800;
}

.feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 8px;
}

.feature-card {
    border: 1px solid var(--jlt-border);
    border-radius: 12px;
    background: rgba(255, 255, 255, .02);
    padding: 10px;
    text-decoration: none;
    color: inherit;
    min-height: 124px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.feature-card:hover {
    border-color: color-mix(in srgb, var(--jlt-accent) 48%, var(--jlt-border));
    background: rgba(255, 255, 255, .035);
}

.feature-card:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--area-accent, var(--jlt-accent)) 62%, var(--jlt-border));
    outline-offset: 2px;
}

.feature-card.feature-card--active,
.feature-card[aria-current='page'] {
    border-color: color-mix(in srgb, var(--area-accent, var(--jlt-accent)) 52%, var(--jlt-border));
    background: color-mix(in srgb, var(--area-accent, var(--jlt-accent)) 14%, var(--jlt-card));
    box-shadow: 0 10px 24px color-mix(in srgb, var(--area-accent, var(--jlt-accent)) 18%, transparent),
    0 0 0 1px color-mix(in srgb, var(--area-accent, var(--jlt-accent)) 24%, var(--jlt-border));
}

.feature-card.feature-card--active:hover,
.feature-card[aria-current='page']:hover {
    border-color: color-mix(in srgb, var(--area-accent, var(--jlt-accent)) 62%, var(--jlt-border));
    background: color-mix(in srgb, var(--area-accent, var(--jlt-accent)) 18%, var(--jlt-card));
}

.feature-card.feature-card--active .status-badge,
.feature-card[aria-current='page'] .status-badge {
    background: color-mix(in srgb, var(--area-accent, var(--jlt-accent)) 20%, var(--jlt-card));
    border-color: color-mix(in srgb, var(--area-accent, var(--jlt-accent)) 58%, var(--jlt-border));
    color: color-mix(in srgb, var(--area-accent, var(--jlt-accent)) 30%, var(--jlt-text));
    font-weight: 700;
}

.feature-card-head {
    display: flex;
    align-items: center;
    gap: 8px;
}

.feature-card h3 {
    margin: 0;
    font-size: .95rem;
}

.feature-card p {
    margin: 6px 0 0;
    font-size: .82rem;
    color: var(--jlt-muted);
    line-height: 1.25;
}

.mini-card-list {
    display: grid;
    gap: 8px;
}

.mini-card {
    border: 1px solid var(--jlt-border);
    border-radius: 10px;
    background: rgba(255, 255, 255, .015);
    padding: 8px 10px;
}

.status-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .15rem .5rem;
    font-size: .72rem;
    border: 1px solid var(--jlt-border);
    color: var(--jlt-text);
    background: rgba(255, 255, 255, .03);
}

.sidebar-tree {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sidebar-tree details {
    border: 1px solid transparent;
    border-radius: 10px;
    background: rgba(255, 255, 255, .015);
}

.sidebar-tree details[open] {
    border-color: var(--jlt-border);
}

.sidebar-tree summary {
    list-style: none;
    cursor: pointer;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    font-weight: 700;
}

.sidebar-area-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
}

.sidebar-area-label {
    white-space: nowrap;
}

.sidebar-tree summary::-webkit-details-marker {
    display: none;
}

.sidebar-tree-summary::after {
    content: '▸';
    font-size: .78rem;
    color: var(--jlt-muted);
    transition: transform .15s ease;
}

.sidebar-tree details[open] > .sidebar-tree-summary::after {
    transform: rotate(90deg);
}

.sidebar-tree-links {
    display: grid;
    gap: 4px;
    padding: 0;
}

.sidebar-tree-links a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 8px;
    text-decoration: none;
    padding: 7px 8px;
    color: var(--jlt-muted);
    border: 1px solid transparent;
    font-size: .88rem;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.sidebar-tree-links a:not(.sidebar-portal-link) {
    align-items: flex-start;
    padding: 8px;
    border-color: color-mix(in srgb, var(--jlt-border) 55%, transparent);
    background: color-mix(in srgb, var(--jlt-card) 94%, transparent);
}

.sidebar-item-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 24px;
    min-height: 24px;
}

.sidebar-item-description,
.sidebar-item-copy {
    min-width: 0;
}

.sidebar-item-copy {
    display: grid;
    gap: 1px;
    line-height: 1.2;
}

.sidebar-item-copy small {
    color: var(--jlt-muted);
    font-size: .7rem;
    white-space: normal;
}

.sidebar-tree-links a:hover {
    color: var(--jlt-text);
    background: color-mix(in srgb, var(--jlt-card) 90%, transparent);
}

.sidebar-tree-links a.active {
    color: var(--jlt-text);
    border-color: color-mix(in srgb, var(--jlt-accent) 45%, var(--jlt-border));
    background: color-mix(in srgb, var(--jlt-accent) 14%, var(--jlt-card));
}

.sidebar-tree-links a.sidebar-portal-link {
    color: color-mix(in srgb, var(--jlt-text) 78%, var(--jlt-muted));
    border-color: color-mix(in srgb, var(--area-accent) 20%, var(--jlt-border));
    background: color-mix(in srgb, var(--area-accent) 10%, var(--jlt-card));
}

.sidebar-tree-links a.sidebar-portal-link:hover {
    color: var(--jlt-text);
    border-color: color-mix(in srgb, var(--area-accent) 32%, var(--jlt-border));
    background: color-mix(in srgb, var(--area-accent) 16%, var(--jlt-card));
}

.sidebar-tree-links a.sidebar-portal-link.active {
    color: var(--jlt-text);
    border-color: color-mix(in srgb, var(--area-accent) 44%, var(--jlt-border));
    background: color-mix(in srgb, var(--area-accent) 22%, var(--jlt-card));
}

.sidebar-tree-links a.sidebar-portal-link:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--area-accent) 46%, var(--jlt-border));
    outline-offset: 2px;
}

.sidebar-tree-group {
    display: grid;
    gap: 6px;
    padding: 0 8px 8px;
}

.sidebar-overline {
    margin: 6px 0 0;
    color: color-mix(in srgb, var(--jlt-muted) 82%, #9ca3af);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sidebar-item-icon {
    font-size: .82rem;
    opacity: .9;
}

@media (min-width: 993px) {
    .jlt-shell-side:not(.is-sidebar-pinned):not(:hover):not(:focus-within) .sidebar-tree > details {
        background: transparent;
        border-color: transparent;
    }

    .jlt-shell-side:not(.is-sidebar-pinned):not(:hover):not(:focus-within) .sidebar-tree-summary {
        justify-content: center;
        padding: 8px 0;
    }

    .jlt-shell-side:not(.is-sidebar-pinned):not(:hover):not(:focus-within) .sidebar-tree-summary::after,
    .jlt-shell-side:not(.is-sidebar-pinned):not(:hover):not(:focus-within) .sidebar-area-label,
    .jlt-shell-side:not(.is-sidebar-pinned):not(:hover):not(:focus-within) .sidebar-tree-links,
    .jlt-shell-side:not(.is-sidebar-pinned):not(:hover):not(:focus-within) .jlt-tile > div {
        display: none;
    }

    .jlt-shell-side:not(.is-sidebar-pinned):not(:hover):not(:focus-within) .jlt-tile {
        justify-content: center;
        padding-inline: 0;
    }
}

@media (max-width: 992px) {
    .jlt-shell-side .sidebar-tree-summary {
        justify-content: flex-start;
        padding: 8px 10px;
    }

    .jlt-shell-side .sidebar-tree-summary::after {
        display: inline;
    }

    .jlt-shell-side .sidebar-area-label {
        display: inline;
    }

    .jlt-shell-side .sidebar-tree-links {
        display: grid;
    }

    .jlt-shell-side .jlt-tile > div {
        display: block;
    }

    .jlt-shell-side .jlt-tile {
        justify-content: flex-start;
        padding: 10px;
    }
}

.context-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.context-tabs a {
    text-decoration: none;
    font-size: .82rem;
    border: 1px solid var(--jlt-border);
    border-radius: 999px;
    padding: .24rem .62rem;
    color: var(--jlt-muted);
}

.context-tabs a.active,
.context-tabs a:hover {
    color: var(--jlt-text);
}

.area-comercial {
    --area-accent: var(--area-comercial);
}

.area-producao {
    --area-accent: var(--area-producao);
}

.area-financeiro {
    --area-accent: var(--area-financeiro);
}

.area-governanca {
    --area-accent: var(--area-governanca);
}

[class*='area-'] .section-group,
[class*='area-'] .feature-card,
[class*='area-'] .mini-card,
[class*='area-'] .breadcrumb-header,
[class*='area-'] .jlt-topbar,
[class*='area-'] .status-badge {
    border-color: color-mix(in srgb, var(--area-accent) 28%, var(--jlt-border));
}

[class*='area-'] .jlt-icon,
[class*='area-'] .jlt-badge {
    background: color-mix(in srgb, var(--area-accent) 18%, transparent);
    border-color: color-mix(in srgb, var(--area-accent) 38%, var(--jlt-border));
}

.theme-toggle-btn {
    border: 1px solid var(--jlt-border);
    background: rgba(255, 255, 255, .02);
    border-radius: 10px;
    color: var(--jlt-text);
    padding: 6px 8px;
    font-size: .78rem;
}

.theme-toggle-icon {
    top: 8px;
    right: 8px;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid var(--jlt-border);
    background: color-mix(in srgb, var(--jlt-card) 72%, transparent);
    color: var(--jlt-text);
    line-height: 1;
    font-size: .92rem;
    cursor: pointer;
    transition: transform .12s ease, border-color .12s ease, background .12s ease;
}

.theme-toggle-icon:hover {
    transform: scale(1.06);
    border-color: color-mix(in srgb, var(--jlt-accent) 60%, var(--jlt-border));
    background: color-mix(in srgb, var(--jlt-accent) 12%, var(--jlt-card));
}

html[data-theme='light'] .jlt-shell-side {
    background: linear-gradient(180deg, #e8eefb, #dde7f8);
}

.jlt-help-btn {
    min-width: 32px;
    min-height: 32px;
    border-radius: 999px;
    font-weight: 800;
    line-height: 1;
    padding: 0;
}

.jlt-help-content {
    display: grid;
    gap: 10px;
    font-size: .88rem;
}

.jlt-help-content section {
    border: 1px solid var(--jlt-border);
    border-radius: 10px;
    padding: 10px;
    background: color-mix(in srgb, var(--jlt-card) 85%, transparent);
}

.jlt-help-content h6 {
    margin: 0 0 6px;
    font-weight: 800;
}

.jlt-help-content p,
.jlt-help-content ul,
.jlt-help-content ol {
    margin: 0;
    color: var(--jlt-text);
}

.jlt-help-content ul,
.jlt-help-content ol {
    padding-left: 1.1rem;
}

.jlt-help-content li + li {
    margin-top: 4px;
}

.jlt-help-empty {
    color: var(--jlt-muted);
}

.jlt-help-cta {
    border-color: color-mix(in srgb, var(--jlt-accent) 55%, var(--jlt-border)) !important;
}

/* Layout: cards principais empilhados em formulários/cadastros */
.jlt-main-card-stack > [class*='col-'] {
    display: block;
}

.jlt-main-card-stack > [class*='col-'] > .card,
.jlt-main-card-stack > [class*='col-'] > .jlt-card {
    width: 100%;
}

@media (min-width: 992px) {
    .jlt-main-card-stack > [class*='col-'] {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
    }
}

/* =========================
   HOME HUB DASHBOARD
   ========================= */
.home-hub-page {
    padding: 24px;
}

.home-hub-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 24px;
}

.home-hub-title {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 800;
}

.home-hub-subtitle {
    margin: 4px 0 0;
    color: var(--jlt-muted);
    max-width: 58ch;
}

.home-hub-layout {
    gap: 24px;
}

.home-hub-section {
    padding: 24px;
    border-radius: 16px;
    background: color-mix(in srgb, var(--jlt-card) 94%, transparent);
    border: 1px solid color-mix(in srgb, var(--jlt-border) 60%, transparent);
}

.home-hub-section-header h2 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.home-hub-section-header p {
    margin: 6px 0 0;
    color: color-mix(in srgb, var(--jlt-text) 60%, transparent);
    font-size: .9rem;
}

.home-feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: 16px;
    margin-top: 18px;
}

.home-feature-card {
    position: relative;
    text-decoration: none;
    color: inherit;
    border-radius: 14px;
    padding: 16px;
    background: color-mix(in srgb, var(--jlt-card) 96%, transparent);
    border: 1px solid color-mix(in srgb, var(--jlt-border) 66%, transparent);
    min-height: 152px;
    min-width: 0;
    transition: all .2s ease;
}

.home-feature-card:hover,
.home-feature-card:focus-visible {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--jlt-accent) 40%, var(--jlt-border));
}

.home-feature-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 8px 10px;
    min-width: 0;
}

.home-feature-title {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.home-feature-title strong {
    min-width: 0;
    overflow-wrap: anywhere;
}

.home-feature-icon {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    border: 1px solid var(--jlt-border);
}

.home-feature-badge {
    justify-self: end;
    align-self: start;
    max-width: 100%;
    min-width: 0;
    font-size: .75rem;
    text-align: right;
    overflow-wrap: anywhere;
    color: color-mix(in srgb, var(--jlt-warn) 65%, var(--jlt-text));
}

.home-feature-card p {
    margin: 10px 0 0;
    color: var(--jlt-muted);
    font-size: .84rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

.home-secondary-links {
    margin-top: 18px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
    gap: 12px;
}

.home-secondary-links--grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

@media (max-width: 1400px) {
    .home-secondary-links--grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 992px) {
    .home-secondary-links--grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.home-secondary-links a {
    position: relative;
    min-width: 0;
    text-decoration: none;
    color: var(--jlt-muted);
    padding: 8px 10px;
    border-radius: 10px;
    border: 1px solid color-mix(in srgb, var(--jlt-border) 45%, transparent);
    background: color-mix(in srgb, var(--jlt-card) 94%, transparent);
    overflow-wrap: anywhere;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
}

.home-secondary-links a:hover,
.home-secondary-links a:focus-visible {
    color: var(--jlt-accent);
    border-color: color-mix(in srgb, var(--jlt-accent) 50%, var(--jlt-border));
    background: color-mix(in srgb, var(--jlt-accent) 12%, var(--jlt-card));
}

.home-module-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: 16px;
    margin-top: 18px;
}

.home-module-card {
    position: relative;
    min-width: 0;
    min-height: 138px;
    border: 1px solid color-mix(in srgb, var(--jlt-border) 66%, transparent);
    border-radius: 14px;
    background: color-mix(in srgb, var(--jlt-card) 96%, transparent);
    transition: transform .15s ease, border-color .15s ease, background-color .15s ease;
}

.home-module-card:hover,
.home-module-card:focus-within {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--jlt-accent) 40%, var(--jlt-border));
    background: color-mix(in srgb, var(--jlt-accent) 7%, var(--jlt-card));
}

.home-module-card .home-module-link {
    display: grid;
    align-content: start;
    gap: 12px;
    width: 100%;
    height: 100%;
    min-width: 0;
    padding: 16px 48px 16px 16px;
    color: var(--jlt-text);
    text-decoration: none;
}

.home-module-link:focus-visible {
    outline: 2px solid var(--jlt-accent);
    outline-offset: 2px;
    border-radius: 12px;
}

.home-module-heading {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.home-module-heading strong,
.home-module-description {
    min-width: 0;
    overflow-wrap: anywhere;
}

.home-module-description {
    color: var(--jlt-muted);
    font-size: .82rem;
    line-height: 1.35;
}

.home-favorite-toggle {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 26px;
    height: 26px;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--jlt-border) 70%, transparent);
    background: color-mix(in srgb, var(--jlt-card) 88%, transparent);
    color: color-mix(in srgb, var(--jlt-muted) 80%, var(--jlt-text));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    transition: transform .15s ease, border-color .15s ease, color .15s ease, background-color .15s ease;
}

.home-favorite-toggle:hover {
    border-color: color-mix(in srgb, var(--color-favorite-active) 55%, var(--jlt-border));
    color: var(--color-favorite-active);
}

.home-favorite-toggle:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--color-favorite-active) 70%, transparent);
    outline-offset: 2px;
}

.home-favorite-toggle[aria-pressed='true'],
.home-favorite-toggle.is-favorited {
    color: var(--color-favorite-active);
    border-color: color-mix(in srgb, var(--color-favorite-active) 60%, var(--jlt-border));
    background: color-mix(in srgb, var(--color-favorite-active) 16%, var(--jlt-card));
}

.home-favorite-toggle[aria-pressed='true'] span,
.home-favorite-toggle.is-favorited span {
    transform: scale(1.06);
}


.home-favorite-toggle:disabled,
.home-favorite-toggle[aria-disabled='true'] {
    opacity: 0.65;
    cursor: not-allowed;
    color: color-mix(in srgb, var(--jlt-muted) 65%, var(--jlt-text));
}

.home-favorite-toggle:disabled span,
.home-favorite-toggle[aria-disabled='true'] span {
    opacity: 0.9;
}

@media (max-width: 576px) {
    .home-feature-head {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .home-feature-badge {
        justify-self: start;
        text-align: left;
    }
}

.home-util-panel {
    display: grid;
    gap: 14px;
    align-content: start;
}

.home-context-nav {
    display: grid;
    gap: 8px;
    padding: 10px;
    border-radius: 14px;
    background: color-mix(in srgb, var(--jlt-card) 93%, transparent);
    border: 1px solid color-mix(in srgb, var(--jlt-border) 65%, transparent);
}

.home-context-nav a {
    text-decoration: none;
    color: var(--jlt-muted);
    padding: 8px 10px;
    border-radius: 10px;
    border-left: 3px solid transparent;
}

.home-context-nav a:hover,
.home-context-nav a.active {
    color: var(--jlt-text);
    background: color-mix(in srgb, var(--jlt-card) 84%, var(--jlt-accent) 16%);
    border-left-color: var(--jlt-accent);
}

.home-side-card {
    padding: 14px;
    border-radius: 14px;
    background: color-mix(in srgb, var(--jlt-card) 93%, transparent);
    border: 1px solid color-mix(in srgb, var(--jlt-border) 65%, transparent);
}

.home-side-card h3 {
    margin: 0 0 10px;
    font-size: .88rem;
}

.home-side-card ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.home-side-card a {
    text-decoration: none;
    font-size: .85rem;
    color: var(--jlt-muted);
}

.home-side-card a:hover,
.home-side-card a:focus-visible {
    color: var(--jlt-text);
}

.home-status-message {
    margin: 0;
    padding: 10px;
    border: 1px dashed color-mix(in srgb, var(--jlt-border) 75%, transparent);
    border-radius: 10px;
    color: var(--jlt-muted);
    font-size: .84rem;
    background: color-mix(in srgb, var(--jlt-card) 90%, transparent);
}

#favorites-container ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

html[data-theme='light'] .home-hub-page {
    background: #f4f5f6;
}

html[data-theme='light'] .home-hub-section,
html[data-theme='light'] .home-feature-card,
html[data-theme='light'] .home-module-card,
html[data-theme='light'] .home-context-nav,
html[data-theme='light'] .home-side-card {
    background: #ffffff;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    border-color: rgba(39, 62, 109, 0.15);
}

@media (max-width: 576px) {
    .home-module-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-module-card {
        transition: none;
    }

    .home-module-card:hover,
    .home-module-card:focus-within {
        transform: none;
    }
}

@media (max-width: 992px) {
    .home-hub-page {
        padding: 16px;
    }

    .home-hub-header {
        flex-direction: column;
        align-items: stretch;
    }
}

/* Escopo reutilizável para telas de detalhe */
body.detail-page {
    --detail-sheet-max-width: min(100%, 210mm);
}

body.detail-page .view-only-actions,
body.detail-page .view-only-sheet {
    width: var(--detail-sheet-max-width);
    max-width: 100%;
}

body.detail-page .view-only-sheet {
    overflow-x: auto;
}

body.detail-page .view-only-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.detail-page .view-only-item,
body.detail-page .view-only-value,
body.detail-page .form-control,
body.detail-page .form-select,
body.detail-page .btn {
    min-width: 0;
}

body.detail-page .view-only-value {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

body.detail-page .table-responsive {
    overflow-x: auto;
}

body.detail-page .table-responsive table {
    min-width: 640px;
}

body.detail-page .table-responsive th[style*="width"],
body.detail-page .table-responsive td[style*="width"] {
    width: auto !important;
}

body.detail-page .table-responsive th.text-end,
body.detail-page .table-responsive td.text-end {
    white-space: nowrap;
}

[data-collapsible-card] > .card-header {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-height: 3rem;
    cursor: pointer;
    transition: background-color .15s ease;
}

[data-collapsible-card] > .card-header:hover {
    background: color-mix(in srgb, var(--jlt-accent) 10%, transparent);
}

.jlt-card-accordion-trigger {
    display: flex;
    flex: 0 0 2.75rem;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    width: 100%;
    min-height: 2.75rem;
    padding: .5rem;
    border: 0;
    border-radius: .375rem;
    color: var(--jlt-text);
    background: transparent;
    font: inherit;
    font-weight: inherit;
    text-align: left;
    cursor: pointer;
}

.jlt-card-accordion-title {
    flex: 1 1 auto;
    min-width: 0;
}

.jlt-card-accordion-actions {
    display: flex;
    flex: 0 1 auto;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .5rem;
}

.jlt-card-accordion-trigger:focus-visible {
    outline: 2px solid var(--jlt-accent);
    outline-offset: 2px;
}

.jlt-card-accordion-trigger-icon {
    flex: 0 0 2.75rem;
    justify-content: center;
    width: 2.75rem;
    margin-left: auto;
    padding: 0;
}

.jlt-card-accordion-icon {
    display: inline-block;
    color: var(--jlt-accent);
    font-size: 1.25rem;
    line-height: 1;
    transition: transform .2s ease;
}

[data-card-accordion-state='expanded'] .jlt-card-accordion-icon {
    transform: rotate(180deg);
}

[data-card-accordion-state='expanded'] > .card-header {
    border-bottom-color: var(--jlt-border);
}

[data-card-accordion-state='collapsed'] > .card-header {
    border-bottom-color: transparent;
}

html[data-theme='light'] [data-collapsible-card] > .card-header:hover {
    background: color-mix(in srgb, var(--jlt-accent) 8%, transparent);
}

@media (max-width: 576px) {
    [data-collapsible-card] > .card-header {
        flex-wrap: wrap;
    }

    .jlt-card-accordion-trigger-icon {
        margin-left: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-collapsible-card] > .card-header,
    .jlt-card-accordion-icon {
        transition: none;
    }
}

@media (max-width: 768px) {
    body.detail-page .view-only-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 331px) {
    body.detail-page .jlt-topbar .d-flex.gap-2 {
        width: 100%;
        flex-wrap: wrap;
        justify-content: stretch;
    }

    body.detail-page .jlt-topbar .d-flex.gap-2 .btn,
    body.detail-page .jlt-topbar .d-flex.gap-2 button {
        flex: 1 1 100%;
    }

    body.detail-page .view-only-grid {
        grid-template-columns: 1fr;
    }

    body.detail-page .view-only-item.wide,
    body.detail-page .view-only-item.full {
        grid-column: auto;
    }

    body.detail-page .table-responsive table {
        min-width: 560px;
    }
}

/* =========================================================
   Responsive hardening — application shell
   ========================================================= */

/*
 * Permite que filhos de grids/flex encolham corretamente.
 * Sem min-width: 0, tabelas, toolbars e textos longos podem
 * forçar overflow horizontal do documento inteiro.
 */
.jlt-main,
.jlt-main-layout,
.jlt-main-column,
.jlt-side-column,
.jlt-card,
.jlt-card > .card-body,
.jlt-topbar > * {
    min-width: 0;
}


/*
 * Conteúdo visual nunca deve ultrapassar seu card.
 */
.jlt-card img,
.jlt-card canvas,
.jlt-card video {
    max-width: 100%;
}

/* Cabeçalho compartilhado de consulta para listagens administrativas. */
.jlt-list-query {
    align-items: end;
    display: grid;
    flex: 1 1 34rem;
    gap: .625rem;
    grid-template-columns: minmax(15rem, 22rem) minmax(9rem, 11rem) auto;
    justify-content: end;
    margin-left: auto;
    max-width: 42rem;
    width: min(100%, 42rem);
}

.jlt-list-query__field {
    min-width: 0;
}

.jlt-list-query .form-control,
.jlt-list-query .form-select {
    width: 100%;
}

.jlt-list-query__clear {
    white-space: nowrap;
}

.jlt-list-query-result {
    color: var(--jlt-muted);
    font-size: .78rem;
    margin-bottom: .75rem;
}

@media (max-width: 767.98px) {
    .jlt-list-query {
        grid-template-columns: minmax(0, 1fr);
        justify-content: stretch;
        margin-left: 0;
        max-width: none;
        width: 100%;
    }

    .jlt-list-query__clear {
        width: 100%;
    }
}


@media (max-width: 576px) {

    .jlt-main {
        padding-inline: .5rem;
    }

    .jlt-card > .card-body {
        min-width: 0;
    }

    /*
     * Tabelas operacionais densas mantêm suas colunas
     * e rolam dentro do próprio container.
     *
     * Não escondemos overflow da página artificialmente.
     */
    .jlt-table-responsive,
    .table-responsive {
        max-width: 100%;

        overscroll-behavior-inline: contain;

        -webkit-overflow-scrolling: touch;
    }
}

/* Uma única faixa de navegação para listas e janelas, nos dois temas. */
[data-jlt-pagination] { width: 100%; }
.jlt-pagination { display: flex; align-items: center; justify-content: center; gap: .35rem; width: 100%; padding: .5rem 0; }
.jlt-pagination__button { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: 2.5rem; min-height: 2.5rem; padding: .4rem; }
.jlt-pagination__marker { margin: 0 .4rem; text-align: center; font-size: .875rem; font-variant-numeric: tabular-nums; }
@media (max-width: 420px) {
    .jlt-pagination { gap: .15rem; }
    .jlt-pagination__marker { margin: 0 .15rem; font-size: .8rem; }
    .jlt-pagination__button { min-width: 2.25rem; min-height: 2.5rem; }
}

.jlt-pagination__details { text-align: center; width: 100%; padding-bottom: .5rem; }
