:root {
    --navy-950: #111827;
    --navy-900: #172033;
    --navy-800: #22304a;
    --orange: #f0a51b;
    --page: #f3f5f8;
    --surface: #ffffff;
    --text: #172033;
    --muted: #6b7280;
    --border: #dde3ea;
    --danger: #d14343;
    --shadow: 0 10px 28px rgba(23, 32, 51, 0.08);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body, input, button, select {
    font-family: Arial, Helvetica, sans-serif;
}

body { color: var(--text); background: var(--page); }
a { color: inherit; }
button { cursor: pointer; }

.login-page {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.15fr .85fr;
}

.login-showcase {
    display: flex;
    align-items: center;
    padding: 72px;
    color: white;
    background: linear-gradient(145deg, var(--navy-950), var(--navy-800));
}

.showcase-logo, .brand-mark, .label-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--navy-950);
    background: var(--orange);
    font-weight: 900;
}

.showcase-logo {
    width: 82px;
    height: 82px;
    margin-bottom: 30px;
    border-radius: 20px;
    font-size: 28px;
}

.showcase-content h1 { font-size: 56px; }
.showcase-content p {
    max-width: 560px;
    margin-top: 20px;
    color: #d8dfeb;
    font-size: 19px;
    line-height: 1.7;
}

.login-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 42px;
    background: white;
}

.login-box { width: 100%; max-width: 430px; }
.login-eyebrow, .eyebrow {
    color: #d9900d;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.2px;
}

.login-box h2 { margin-top: 10px; font-size: 34px; }
.login-help { margin: 8px 0 28px; color: var(--muted); }

.form-group { margin-bottom: 18px; }
.form-group label {
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: 700;
}

.form-group input, .form-group select, .search-form input {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid var(--border);
    border-radius: 9px;
    outline: none;
    background: white;
}

.usuarios-teste {
    display: grid;
    gap: 6px;
    margin-top: 24px;
    padding: 16px;
    border-radius: 10px;
    color: var(--muted);
    background: #f5f7fa;
    font-size: 13px;
}

.app-shell { min-height: 100vh; }

.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 20;
    width: 265px;
    display: flex;
    flex-direction: column;
    padding: 22px 16px;
    color: white;
    background: var(--navy-950);
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 3px 8px 24px;
    border-bottom: 1px solid rgba(255,255,255,.1);
}

.brand-mark {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    border-radius: 11px;
}

.brand strong, .brand span, .perfil-resumo strong, .perfil-resumo span,
.topbar-user strong, .topbar-user span {
    display: block;
}

.brand span, .perfil-resumo span, .topbar-user span {
    margin-top: 3px;
    color: #aeb8ca;
    font-size: 12px;
}

.nav-menu {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 5px;
    margin-top: 22px;
}

.nav-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 13px;
    border-radius: 9px;
    color: #ccd5e4;
    text-decoration: none;
}

.nav-link:hover, .nav-link.ativo {
    color: white;
    background: var(--navy-800);
}

.nav-link.desabilitado { opacity: .48; cursor: default; }
.nav-icon { width: 20px; text-align: center; font-size: 18px; color: #fff; }

.sidebar-footer {
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.1);
}

.perfil-resumo { display: flex; align-items: center; gap: 10px; }

.avatar {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: white;
    background: var(--navy-800);
    font-weight: 800;
}

.sair-link {
    display: block;
    margin-top: 14px;
    padding: 10px;
    border-radius: 8px;
    color: var(--orange);
    text-decoration: none;
    text-align: center;
    background: rgba(255,255,255,.05);
}

.main-area { min-height: 100vh; margin-left: 265px; }

.topbar {
    min-height: 90px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 32px;
    border-bottom: 1px solid var(--border);
    background: white;
}

.topbar h1 { font-size: 24px; }
.topbar p { margin-top: 4px; color: var(--muted); font-size: 14px; }
.topbar-user { display: flex; align-items: center; gap: 10px; }
.menu-mobile { display: none; }

.page-content { padding: 28px 32px 42px; }

.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-bottom: 18px;
}

.metric-card, .panel {
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.metric-card {
    position: relative;
    padding: 24px;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border: 1px solid var(--border);
    box-shadow: 0 8px 20px rgba(23, 32, 51, .08);
    transition: all .25s ease;
    overflow: hidden;
}

.metric-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(23, 32, 51, .12);
}

.metric-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 6px;
    height: 100%;
    background: var(--orange);
}

.metric-card span {
    display: block;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
}

.metric-card strong {
    display: block;
    margin: 16px 0 8px;
    font-size: 42px;
    color: var(--navy-900);
}

.metric-card small {
    color: #8a93a1;
    font-size: 13px;
}
.metric-card span { color: var(--muted); }
.metric-card strong { display: block; margin: 13px 0 7px; font-size: 34px; }
.metric-card small { color: #8a93a1; }

.panel { overflow: hidden; }

.panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 21px 22px;
    border-bottom: 1px solid var(--border);
}

.panel-header h2 { font-size: 18px; }
.panel-header p { margin-top: 5px; color: var(--muted); font-size: 13px; }

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 15px;
    border: 1px solid transparent;
    border-radius: 9px;
    font-weight: 700;
    text-decoration: none;
}

.btn-primary { color: white; background: var(--navy-800); }
.btn-secondary { border-color: var(--border); background: white; }
.btn-ghost { border-color: var(--border); color: var(--muted); background: transparent; }
.btn-danger { color: white; background: var(--danger); }
.btn-full { width: 100%; }

.recent-list { padding: 8px 14px 14px; }
.recent-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 9px;
    border-bottom: 1px solid #edf0f4;
    text-decoration: none;
}

.equipment-icon, .equipment-large-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #d9900d;
    background: #fff5df;
}

.equipment-icon { width: 42px; height: 42px; border-radius: 10px; }
.equipment-large-icon { width: 76px; height: 76px; border-radius: 17px; font-size: 30px; }

.recent-main { flex: 1; }
.recent-main strong, .recent-main span { display: block; }
.recent-main span { margin-top: 4px; color: var(--muted); font-size: 13px; }

.badge {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 999px;
    color: #425066;
    background: #edf1f6;
    font-size: 12px;
    font-weight: 700;
}

.empty-state { padding: 56px 22px; text-align: center; }
.empty-state p { margin-top: 8px; color: var(--muted); }

.page-toolbar, .detail-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.search-form { flex: 1; display: flex; gap: 9px; max-width: 760px; }

.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
.data-table { width: 100%; min-width: 100%; border-collapse: collapse; }

.data-table th, .data-table td {
    padding: 14px 18px;
    border-bottom: 1px solid #edf0f4;
    text-align: left;
    vertical-align: middle;
}

.data-table th {
    color: var(--muted);
    background: #f8f9fb;
    font-size: 12px;
    text-transform: uppercase;
}

.data-table td small { display: block; margin-top: 4px; color: var(--muted); }
.table-actions { white-space: nowrap; }
.action-link { margin-right: 12px; font-weight: 700; text-decoration: none; }

/* Mantém a coluna de ações sempre acessível, mesmo com zoom ou tela pequena e a tabela rolando na horizontal */
.data-table th.table-actions,
.data-table td.table-actions,
.table-responsive th:last-child,
.table-responsive td:last-child {
    position: sticky;
    right: 0;
    background: #fff;
    box-shadow: -6px 0 8px -6px rgba(23,32,51,.08);
}
.data-table thead th.table-actions,
.table-responsive thead th:last-child {
    background: #f8f9fb;
    z-index: 2;
}

.form-panel { max-width: 980px; margin: 0 auto; padding: 24px; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.form-span-2 { grid-column: 1 / -1; }

.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 26px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
}

.mensagem-erro {
    margin-bottom: 18px;
    padding: 13px 14px;
    border: 1px solid #efb8b8;
    border-radius: 9px;
    color: #942e2e;
    background: #fff1f1;
}

.detail-actions { display: flex; gap: 9px; }

.equipment-detail-grid {
    display: grid;
    grid-template-columns: 1.5fr .7fr;
    gap: 18px;
}

.equipment-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 24px;
    border-bottom: 1px solid var(--border);
}

.equipment-hero h2 { margin: 5px 0 10px; }

.info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: var(--border);
}

.info-item { padding: 20px 22px; background: white; }
.info-item span, .info-item strong { display: block; }
.info-item span {
    margin-bottom: 6px;
    color: var(--muted);
    font-size: 12px;
    text-transform: uppercase;
}

.qr-panel { padding-bottom: 20px; text-align: center; }
.qr-image {
    display: block;
    width: min(240px, 80%);
    margin: 20px auto;
}

/* ETIQUETA */

.label-preview-area {
    display: grid;
    justify-items: center;
    gap: 18px;
}

.equipment-label {
    width: 800px;
    max-width: 100%;
    aspect-ratio: 8 / 5;
    padding: 30px;
    color: white;
    background: var(--navy-900);
    box-shadow: var(--shadow);
}

.label-brand {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-bottom: 18px;
    border-bottom: 2px solid rgba(255,255,255,.14);
}

.label-logo {
    width: 60px;
    height: 50px;
    border-radius: 10px;
    font-size: 18px;
}

.label-brand strong, .label-brand span { display: block; }
.label-brand strong { font-size: 22px; }
.label-brand span { margin-top: 4px; color: #cbd5e1; font-size: 11px; }

.label-body {
    display: grid;
    grid-template-columns: 230px 1fr;
    gap: 28px;
    padding-top: 20px;
}

.label-body img {
    width: 230px;
    height: 230px;
    background: white;
}

.label-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    align-content: center;
}

.label-fields span, .label-fields strong { display: block; }
.label-fields span {
    margin-bottom: 6px;
    color: var(--orange);
    font-size: 11px;
    font-weight: 800;
}

.label-fields strong { font-size: 17px; overflow-wrap: anywhere; }

.label-note { color: var(--muted); text-align: center; }

@media print {
    .sidebar, .topbar, .no-print { display: none !important; }
    .main-area { margin: 0; }
    .page-content { padding: 0; }
    body { background: white; }
    .equipment-label {
        width: 80mm;
        height: 50mm;
        padding: 4mm;
        box-shadow: none;
    }
    .label-brand { gap: 2mm; padding-bottom: 2mm; }
    .label-logo { width: 11mm; height: 9mm; font-size: 8pt; }
    .label-brand strong { font-size: 10pt; }
    .label-brand span { font-size: 5pt; }
    .label-body {
        grid-template-columns: 27mm 1fr;
        gap: 3mm;
        padding-top: 2mm;
    }
    .label-body img { width: 27mm; height: 27mm; }
    .label-fields { gap: 1.5mm; }
    .label-fields span { font-size: 4pt; margin-bottom: .5mm; }
    .label-fields strong { font-size: 6pt; }
}

@media (max-width: 1050px) {
    .metric-grid { grid-template-columns: repeat(2, 1fr); }
    .equipment-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .login-page { grid-template-columns: 1fr; }
    .login-showcase { display: none; }

    .sidebar {
        transform: translateX(-100%);
        transition: transform .2s ease;
    }

    .sidebar.aberto { transform: translateX(0); }
    .main-area { margin-left: 0; }

    .menu-mobile {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        border: 1px solid var(--border);
        border-radius: 9px;
        background: white;
    }

    .topbar { gap: 14px; padding: 15px 18px; }
    .topbar-user { display: none; }
    .page-content { padding: 20px 16px 34px; }

    .page-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .search-form { max-width: none; }
}

@media (max-width: 620px) {
    .metric-grid, .form-grid, .info-grid { grid-template-columns: 1fr; }
    .form-span-2 { grid-column: auto; }
    .search-form { flex-wrap: wrap; }
    .search-form input { flex-basis: 100%; }

    .form-actions, .detail-toolbar, .detail-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .detail-actions form, .detail-actions button { width: 100%; }

    .equipment-label {
        padding: 16px;
    }

    .label-body {
        grid-template-columns: 120px 1fr;
        gap: 14px;
    }

    .label-body img {
        width: 120px;
        height: 120px;
    }

    .label-fields { grid-template-columns: 1fr; gap: 8px; }
    .label-fields strong { font-size: 12px; }
}


/* MÓDULO DE PEÇAS */

.dashboard-two-columns,
.piece-detail-grid {
    display: grid;
    grid-template-columns: 1.5fr .8fr;
    gap: 18px;
}

.quick-actions {
    display: grid;
    gap: 12px;
    padding: 18px;
}

.quick-action {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 11px;
    text-decoration: none;
    background: white;
}

.quick-action > span {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    border-radius: 10px;
    color: var(--navy-800);
    background: #edf1f6;
    font-size: 20px;
    font-weight: bold;
}

.quick-action strong,
.quick-action small {
    display: block;
}

.quick-action small {
    margin-top: 4px;
    color: var(--muted);
}

.toolbar-select {
    min-width: 150px;
    padding: 11px 12px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: white;
}

.badge-success {
    color: #17653f;
    background: #e3f5ec;
}

.badge-danger {
    color: #972d2d;
    background: #fde8e8;
}

.badge-warning {
    color: #92620a;
    background: #fef3d9;
}

.badge-neutral {
    color: #5e6673;
    background: #eceff3;
}

.checkbox-group {
    margin-top: 4px;
}

.checkbox-label {
    display: flex !important;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.checkbox-label input {
    width: 18px;
    height: 18px;
}

.info-span-2 {
    grid-column: 1 / -1;
}

.stock-summary {
    text-align: center;
}

.stock-number {
    padding: 34px 20px 16px;
}

.stock-number strong {
    display: block;
    font-size: 52px;
}

.stock-number span {
    color: var(--muted);
    font-weight: bold;
}

.stock-minimum {
    margin: 16px 22px 22px;
    padding: 14px;
    border-radius: 10px;
    color: var(--muted);
    background: #f5f7fa;
}

@media (max-width: 1050px) {
    .dashboard-two-columns,
    .piece-detail-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .info-span-2 {
        grid-column: auto;
    }

    .toolbar-select {
        width: 100%;
    }
}


/* ETIQUETA DE PEÇA */

.part-label {
    display: flex;
    flex-direction: column;
    width: 500px;
    max-width: 100%;
    aspect-ratio: 5 / 3;
    padding: 18px;
    color: #14181f;
    background: #ffffff;
    border: 2px solid #14181f;
    box-shadow: var(--shadow);
}

.label-logo-img {
    object-fit: contain;
    background: #fff;
    padding: 4px;
}

.part-label.equipamento-etiqueta {
    aspect-ratio: 4 / 3;
}

.part-label-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #14181f;
}

.part-label-brand strong,
.part-label-brand span {
    display: block;
    color: #14181f;
}

.part-label-brand strong {
    font-size: 16px;
}

.part-label-brand span {
    margin-top: 2px;
    color: #4b5563;
    font-size: 8px;
}

.part-label-body {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 18px;
    padding-top: 14px;
    padding-bottom: 16px;
    flex: 1;
}

.part-label-body img {
    width: 160px;
    height: 160px;
    background: white;
    border: 1px solid #14181f;
}

.part-label-fields {
    display: grid;
    gap: 10px;
    align-content: center;
}

.part-label-footer {
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid #d8dce2;
    text-align: center;
}

.part-label-footer span {
    display: block;
    color: #6b7280;
    font-size: 9px;
    letter-spacing: .2px;
}

.part-label-fields span,
.part-label-fields strong {
    display: block;
}

.part-label-fields span {
    margin-bottom: 2px;
    color: #b8590a;
    font-size: 8px;
    font-weight: bold;
}

.part-label-fields strong {
    font-size: 12px;
    overflow-wrap: anywhere;
    color: #14181f;
}

@media print {
    .part-label {
        width: 50mm;
        height: 30mm;
        padding: 2.5mm;
        box-shadow: none;
    }

    .part-label-brand {
        gap: 1.5mm;
        padding-bottom: 1mm;
    }

    .part-label-brand .label-logo {
        width: 8mm;
        height: 6mm;
        font-size: 6pt;
    }

    .part-label-brand strong {
        font-size: 7pt;
    }

    .part-label-brand span {
        font-size: 3.5pt;
    }

    .part-label-body {
        grid-template-columns: 18mm 1fr;
        gap: 2mm;
        padding-top: 1mm;
    }

    .part-label-body img {
        width: 18mm;
        height: 18mm;
    }

    .part-label-fields {
        gap: .8mm;
    }

    .part-label-fields span {
        font-size: 3pt;
    }

    .part-label-fields strong {
        font-size: 4.2pt;
    }

    /* Etiqueta de equipamento: tamanho de identificação (crachá), maior e legível,
       nao usa o tamanho mini de 50x30mm das etiquetas de peca */
    .part-label.equipamento-etiqueta {
        width: 100mm;
        height: 75mm;
        aspect-ratio: auto;
        padding: 6mm;
        margin: 0 auto;
    }

    .part-label.equipamento-etiqueta .part-label-brand {
        gap: 3mm;
        padding-bottom: 2.5mm;
    }

    .part-label.equipamento-etiqueta .part-label-brand .label-logo {
        width: 16mm;
        height: 13mm;
        font-size: 13pt;
    }

    .part-label.equipamento-etiqueta .part-label-brand strong {
        font-size: 13pt;
    }

    .part-label.equipamento-etiqueta .part-label-brand span {
        font-size: 6.5pt;
    }

    .part-label.equipamento-etiqueta .part-label-body {
        grid-template-columns: 32mm 1fr;
        gap: 4mm;
        padding-top: 3mm;
        padding-bottom: 3mm;
    }

    .part-label.equipamento-etiqueta .part-label-body img {
        width: 32mm;
        height: 32mm;
    }

    .part-label.equipamento-etiqueta .part-label-fields {
        gap: 2.5mm;
    }

    .part-label.equipamento-etiqueta .part-label-fields span {
        font-size: 6.5pt;
    }

    .part-label.equipamento-etiqueta .part-label-fields strong {
        font-size: 9.5pt;
    }

    .part-label.equipamento-etiqueta .part-label-footer {
        padding-top: 2mm;
    }

    .part-label.equipamento-etiqueta .part-label-footer span {
        font-size: 5.5pt;
    }
}


/* SOLICITAÇÕES */

.form-group textarea {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid var(--border);
    border-radius: 9px;
    outline: none;
    resize: vertical;
}

.field-help {
    display: block;
    margin-top: 7px;
    color: var(--muted);
}

.request-step {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 24px 0 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border);
}

.request-step:first-of-type {
    margin-top: 0;
}

.request-step > span {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    border-radius: 9px;
    color: var(--navy-950);
    background: var(--orange);
    font-weight: 900;
}

.request-step strong,
.request-step small {
    display: block;
}

.request-step small {
    margin-top: 3px;
    color: var(--muted);
}

.request-cards {
    display: grid;
    gap: 1px;
    background: var(--border);
}

.request-card {
    display: grid;
    grid-template-columns: 150px 1fr 230px;
    align-items: center;
    gap: 18px;
    padding: 17px 20px;
    text-decoration: none;
    background: white;
}

.request-card:hover {
    background: #fafbfc;
}

.request-code strong,
.request-code span,
.request-main strong,
.request-main span {
    display: block;
}

.request-code span,
.request-main span,
.request-meta > span:first-child {
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.request-meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.request-status {
    min-width: 90px;
    justify-content: center;
}

.request-status-large {
    padding: 9px 14px;
    font-size: 13px;
}

.request-detail-grid {
    display: grid;
    grid-template-columns: 1.45fr .75fr;
    gap: 18px;
}

.request-side {
    display: grid;
    align-content: start;
    gap: 18px;
}

.request-photo {
    width: 100%;
    max-height: 420px;
    object-fit: contain;
    border-radius: 10px;
    background: #f3f5f8;
}

.status-form {
    padding: 20px;
}

.timeline {
    padding: 20px;
}

.timeline-item {
    position: relative;
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 10px;
    padding-bottom: 22px;
}

.timeline-item:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 13px;
    bottom: 0;
    width: 2px;
    background: var(--border);
}

.timeline-dot {
    position: relative;
    z-index: 1;
    width: 14px;
    height: 14px;
    margin-top: 2px;
    border: 3px solid white;
    border-radius: 50%;
    background: var(--orange);
    box-shadow: 0 0 0 1px var(--border);
}

.timeline-item strong,
.timeline-item small {
    display: block;
}

.timeline-item small {
    margin-top: 4px;
    color: var(--muted);
}

.timeline-item p {
    margin-top: 7px;
    color: #4b5563;
    font-size: 13px;
}

@media (max-width: 1050px) {
    .request-detail-grid {
        grid-template-columns: 1fr;
    }

    .request-card {
        grid-template-columns: 130px 1fr;
    }

    .request-meta {
        grid-column: 1 / -1;
        justify-content: space-between;
    }
}

@media (max-width: 620px) {
    .request-card {
        grid-template-columns: 1fr;
    }

    .request-meta {
        grid-column: auto;
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ÁREA MÓVEL DO MECÂNICO */

.mechanic-home {
    display: grid;
    gap: 18px;
}

.mechanic-primary-action {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 24px;
    color: var(--navy-950);
    text-decoration: none;
    border-radius: 16px;
    background: var(--orange);
    box-shadow: var(--shadow);
}

.mechanic-primary-action strong,
.mechanic-primary-action small {
    display: block;
}

.mechanic-primary-action strong {
    font-size: 20px;
}

.mechanic-primary-action small {
    margin-top: 5px;
    opacity: .78;
}

.mechanic-action-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
    border-radius: 14px;
    color: white;
    background: var(--navy-900);
    font-size: 30px;
}

.mechanic-action-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

.mechanic-action-card {
    min-height: 155px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 22px;
    color: var(--navy-900);
    text-decoration: none;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: white;
}

.mechanic-action-card > span {
    font-size: 32px;
    color: var(--orange);
}

.mechanic-action-card strong {
    margin-top: 12px;
    font-size: 17px;
}

.mechanic-action-card small {
    margin-top: 5px;
    color: var(--muted);
}

.mobile-request-list {
    display: grid;
}

.mobile-request-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 16px 20px;
    color: var(--navy-900);
    text-decoration: none;
    border-top: 1px solid var(--border);
}

.mobile-request-item strong,
.mobile-request-item span {
    display: block;
}

.mobile-request-item div > span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.scanner-panel {
    max-width: 620px;
    margin: 0 auto;
    padding: 20px;
}

.scanner-area {
    position: relative;
    min-height: 360px;
    overflow: hidden;
    border-radius: 14px;
    background: #0b1220;
}

.scanner-area video {
    width: 100%;
    height: 360px;
    object-fit: cover;
}

.scanner-frame {
    position: absolute;
    inset: 50% auto auto 50%;
    width: 230px;
    height: 230px;
    transform: translate(-50%, -50%);
    border: 3px solid var(--orange);
    border-radius: 18px;
    box-shadow: 0 0 0 999px rgba(0,0,0,.25);
    pointer-events: none;
}

.scanner-message {
    padding: 15px 0;
    color: var(--muted);
    text-align: center;
}

.scanner-actions {
    display: grid;
    gap: 10px;
}

.scanner-manual {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
}

.scanner-manual > span {
    display: block;
    margin-bottom: 10px;
    color: var(--muted);
    text-align: center;
}

.scanner-manual form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
}

.scanner-manual input {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid var(--border);
    border-radius: 9px;
    text-transform: uppercase;
}

@media (max-width: 620px) {
    .mechanic-primary-action {
        align-items: flex-start;
        padding: 20px;
    }

    .mechanic-primary-action strong {
        font-size: 17px;
    }

    .mechanic-action-grid {
        grid-template-columns: 1fr;
    }

    .mechanic-action-card {
        min-height: 120px;
    }

    .scanner-panel {
        padding: 14px;
    }

    .scanner-area,
    .scanner-area video {
        min-height: 310px;
        height: 310px;
    }

    .scanner-frame {
        width: 205px;
        height: 205px;
    }
}


/* HISTÓRICO DE PEÇAS POR EQUIPAMENTO */

.history-suggestions {
    margin: 18px 0 24px;
    padding: 16px;
    border: 1px solid #f1c26b;
    border-radius: 12px;
    background: #fff8e8;
}

.history-suggestions-header strong,
.history-suggestions-header small {
    display: block;
}

.history-suggestions-header small {
    margin-top: 4px;
    color: var(--muted);
}

.history-suggestions-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-top: 14px;
}

.history-suggestion-item {
    padding: 13px;
    text-align: left;
    border: 1px solid #ead7a6;
    border-radius: 9px;
    background: white;
    cursor: pointer;
}

.history-suggestion-item:hover {
    border-color: var(--orange);
}

.history-suggestion-item strong,
.history-suggestion-item span,
.history-suggestion-item small {
    display: block;
}

.history-suggestion-item span {
    margin-top: 4px;
    color: var(--navy-700);
    font-size: 12px;
}

.history-suggestion-item small {
    margin-top: 5px;
    color: var(--muted);
}

.equipment-installation-history {
    margin-top: 18px;
}

.installation-list {
    display: grid;
}

.installation-item {
    display: grid;
    grid-template-columns: 1fr 180px;
    align-items: center;
    gap: 18px;
    padding: 16px 20px;
    color: var(--navy-900);
    text-decoration: none;
    border-top: 1px solid var(--border);
}

.installation-item:hover {
    background: #fafbfc;
}

.installation-item strong,
.installation-item span {
    display: block;
}

.installation-item div:first-child > span {
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
}

.installation-meta {
    text-align: right;
}

.installation-meta span {
    color: var(--muted);
    font-size: 11px;
}

.installation-meta strong {
    margin-top: 4px;
}

@media (max-width: 700px) {
    .history-suggestions-list {
        grid-template-columns: 1fr;
    }

    .installation-item {
        grid-template-columns: 1fr;
    }

    .installation-meta {
        text-align: left;
    }
}


/* MANUTENÇÃO PREVENTIVA */

.stat-card-link {
    color: inherit;
    text-decoration: none;
}

.maintenance-list {
    display: grid;
}

.maintenance-item {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 100px 100px 165px minmax(250px, auto);
    align-items: center;
    gap: 16px;
    padding: 16px 20px;
    border-top: 1px solid var(--border);
}

.maintenance-main strong,
.maintenance-main small,
.maintenance-reading span,
.maintenance-reading strong,
.maintenance-status small {
    display: block;
}

.maintenance-main small,
.maintenance-reading span,
.maintenance-status small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.maintenance-reading strong {
    margin-top: 4px;
}

.maintenance-status {
    display: grid;
    justify-items: start;
    gap: 4px;
}

.maintenance-badge {
    white-space: nowrap;
}

.maintenance-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.maintenance-complete-form {
    display: flex;
    gap: 7px;
}

.maintenance-complete-form input {
    width: 100px;
    padding: 9px 10px;
    border: 1px solid var(--border);
    border-radius: 8px;
}

.equipment-maintenance-plans {
    margin-top: 18px;
}

.equipment-plan-list {
    display: grid;
}

.equipment-plan-item {
    display: grid;
    grid-template-columns: 1fr 160px 150px;
    align-items: center;
    gap: 18px;
    padding: 16px 20px;
    color: var(--navy-900);
    text-decoration: none;
    border-top: 1px solid var(--border);
}

.equipment-plan-item:hover {
    background: #fafbfc;
}

.equipment-plan-item strong,
.equipment-plan-item span {
    display: block;
}

.equipment-plan-item div > span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.checkbox-group {
    display: flex;
    align-items: end;
}

.checkbox-group label {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 45px;
}

@media (max-width: 1180px) {
    .maintenance-item {
        grid-template-columns: 1fr 100px 100px;
    }

    .maintenance-status {
        grid-column: 1 / 2;
    }

    .maintenance-actions {
        grid-column: 2 / 4;
    }
}

@media (max-width: 700px) {
    .maintenance-item {
        grid-template-columns: 1fr 1fr;
    }

    .maintenance-main {
        grid-column: 1 / -1;
    }

    .maintenance-status,
    .maintenance-actions {
        grid-column: 1 / -1;
    }

    .maintenance-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .maintenance-complete-form {
        display: grid;
        grid-template-columns: 1fr auto;
    }

    .maintenance-complete-form input {
        width: 100%;
    }

    .equipment-plan-item {
        grid-template-columns: 1fr;
    }
}


/* CONTROLE DE ESTOQUE E MOVIMENTAÇÕES */

.stock-summary-grid {
    display: grid;
    grid-template-columns: 220px 220px 1fr;
    gap: 14px;
    margin-bottom: 18px;
}

.stock-main-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
}

.stock-filter-form {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) 170px minmax(220px, 1fr) 145px 145px auto;
    gap: 10px;
    padding: 18px;
}

.stock-filter-form input,
.stock-filter-form select {
    width: 100%;
    padding: 11px 12px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: white;
}

.stock-movement-list {
    display: grid;
}

.stock-movement-item {
    display: grid;
    grid-template-columns: 44px minmax(260px, 1fr) 130px 165px 125px;
    align-items: center;
    gap: 14px;
    padding: 15px 20px;
    color: var(--navy-900);
    text-decoration: none;
    border-top: 1px solid var(--border);
}

.stock-movement-item:hover {
    background: #fafbfc;
}

.stock-movement-list.compact .stock-movement-item {
    grid-template-columns: 44px minmax(260px, 1fr) 140px 170px;
}

.movement-type-icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 22px;
    font-weight: 800;
}

.movement-type-icon.positive {
    color: #166534;
    background: #dcfce7;
}

.movement-type-icon.negative {
    color: #991b1b;
    background: #fee2e2;
}

.movement-main strong,
.movement-main span,
.movement-main small,
.movement-quantity span,
.movement-quantity strong,
.movement-balance span,
.movement-balance strong,
.movement-value span,
.movement-value strong {
    display: block;
}

.movement-main span {
    margin-top: 4px;
    color: var(--navy-700);
    font-size: 12px;
}

.movement-main small,
.movement-quantity span,
.movement-balance span,
.movement-value span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
}

.movement-quantity strong,
.movement-balance strong,
.movement-value strong {
    margin-top: 4px;
}

.stock-balance-preview {
    min-height: 45px;
    display: flex;
    align-items: center;
    padding: 11px 13px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #f7f8fa;
    color: var(--navy-900);
    font-weight: 700;
}

.form-help {
    display: block;
    margin-top: 6px;
    color: var(--muted);
}

.part-movement-history {
    margin-top: 18px;
}

@media (max-width: 1180px) {
    .stock-summary-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .stock-main-actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }

    .stock-filter-form {
        grid-template-columns: repeat(3, 1fr);
    }

    .stock-movement-item,
    .stock-movement-list.compact .stock-movement-item {
        grid-template-columns: 44px 1fr 130px;
    }

    .movement-balance,
    .movement-value {
        grid-column: 2 / auto;
    }
}

@media (max-width: 720px) {
    .stock-summary-grid,
    .stock-filter-form {
        grid-template-columns: 1fr;
    }

    .stock-main-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .stock-main-actions .btn {
        justify-content: center;
    }

    .stock-movement-item,
    .stock-movement-list.compact .stock-movement-item {
        grid-template-columns: 40px 1fr;
    }

    .movement-quantity,
    .movement-balance,
    .movement-value {
        grid-column: 2;
    }
}


/* SELETOR PESQUISÁVEL DE PEÇAS */

.searchable-part-field {
    position: relative;
}

.part-combobox {
    position: relative;
}

.part-search-input {
    width: 100%;
    padding-right: 46px !important;
}

.part-search-input.invalid {
    border-color: #b91c1c !important;
    box-shadow: 0 0 0 3px rgba(185, 28, 28, .12);
}

.part-combobox-toggle {
    position: absolute;
    top: 1px;
    right: 1px;
    width: 42px;
    height: 43px;
    border: 0;
    border-left: 1px solid var(--border);
    border-radius: 0 8px 8px 0;
    background: #f7f8fa;
    color: var(--navy-800);
    cursor: pointer;
}

.part-combobox-menu {
    position: absolute;
    z-index: 50;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 360px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: white;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .18);
}

.part-options {
    max-height: 292px;
    overflow-y: auto;
}

.part-option {
    width: 100%;
    display: block;
    padding: 12px 14px;
    text-align: left;
    border: 0;
    border-bottom: 1px solid var(--border);
    background: white;
    cursor: pointer;
}

.part-option:hover,
.part-option:focus {
    background: #f6f8fb;
}

.part-option strong,
.part-option span {
    display: block;
}

.part-option strong {
    color: var(--navy-900);
}

.part-option span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.part-create-option {
    display: block;
    padding: 14px;
    color: var(--navy-900);
    text-decoration: none;
    border-top: 1px solid var(--border);
    background: #fff8e8;
    font-weight: 700;
}

.part-create-option:hover,
.part-create-option.highlighted {
    background: #ffe8b1;
}

@media (max-width: 720px) {
    .part-combobox-menu {
        max-height: 330px;
    }

    .part-options {
        max-height: 260px;
    }
}


/* LEITOR DE QR CODE NO SELETOR DE PEÇAS */

.part-search-input {
    padding-right: 88px !important;
}

.part-qr-button {
    position: absolute;
    top: 1px;
    right: 43px;
    width: 43px;
    height: 43px;
    border: 0;
    border-left: 1px solid var(--border);
    background: #fff8e8;
    color: var(--navy-900);
    font-size: 20px;
    cursor: pointer;
}

.part-qr-button:hover {
    background: #ffe8b1;
}

.part-qr-modal {
    position: fixed;
    z-index: 200;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: rgba(10, 18, 32, .72);
}

.part-qr-modal[hidden] {
    display: none;
}

.part-qr-dialog {
    width: min(520px, 100%);
    overflow: hidden;
    border-radius: 16px;
    background: white;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .3);
}

.part-qr-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 17px 19px;
}

.part-qr-header strong,
.part-qr-header span {
    display: block;
}

.part-qr-header span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.part-qr-close {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 9px;
    background: #f0f2f5;
    color: var(--navy-900);
    font-size: 25px;
    cursor: pointer;
}

.part-qr-camera {
    position: relative;
    min-height: 330px;
    overflow: hidden;
    background: #0b1220;
}

.part-qr-camera video {
    width: 100%;
    height: 330px;
    object-fit: cover;
}

.part-qr-frame {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 220px;
    height: 220px;
    transform: translate(-50%, -50%);
    border: 3px solid var(--orange);
    border-radius: 18px;
    box-shadow: 0 0 0 999px rgba(0, 0, 0, .22);
    pointer-events: none;
}

.part-qr-message {
    min-height: 46px;
    margin: 0;
    padding: 14px 18px 4px;
    color: var(--muted);
    text-align: center;
}

.part-qr-actions {
    display: flex;
    justify-content: center;
    gap: 9px;
    padding: 12px 18px 19px;
}

@media (max-width: 600px) {
    .part-qr-modal {
        align-items: flex-end;
        padding: 0;
    }

    .part-qr-dialog {
        width: 100%;
        border-radius: 16px 16px 0 0;
    }

    .part-qr-camera,
    .part-qr-camera video {
        min-height: 300px;
        height: 300px;
    }

    .part-qr-frame {
        width: 205px;
        height: 205px;
    }
}


/* IMPORTAÇÃO DE NF-E */

.nfe-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.nfe-summary > div {
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #f8fafc;
}

.nfe-summary span,
.nfe-summary small,
.nfe-summary strong {
    display: block;
}

.nfe-summary span {
    color: var(--muted);
    font-size: 12px;
    text-transform: uppercase;
}

.nfe-summary strong {
    margin-top: 6px;
    color: var(--navy-900);
}

.nfe-summary small {
    margin-top: 5px;
    color: var(--muted);
}

.nfe-items {
    display: grid;
    gap: 16px;
}

.nfe-item-card {
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: white;
}

.nfe-item-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.nfe-item-head h3 {
    margin: 8px 0 5px;
}

.nfe-item-head p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.check-line {
    display: flex !important;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.check-line input {
    width: auto;
}

.inline-create-link {
    display: inline-block;
    margin-top: 9px;
    color: var(--navy-900);
    font-weight: 700;
    text-decoration: none;
}

.association-hint {
    display: block;
    margin-top: 7px;
    color: #8a5a00;
}

.memory-check {
    padding: 11px 13px;
    border-radius: 9px;
    background: #fff8e8;
}

.sticky-confirm {
    position: sticky;
    z-index: 20;
    bottom: 12px;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 12px 35px rgba(15, 23, 42, .16);
    backdrop-filter: blur(8px);
}

@media (max-width: 800px) {
    .nfe-summary {
        grid-template-columns: 1fr;
    }

    .nfe-item-head {
        display: block;
    }

    .nfe-item-head .check-line {
        margin-top: 14px;
    }

    .sticky-confirm {
        flex-direction: column;
    }
}


/* SAÍDAS E APLICAÇÕES PENDENTES */
.destination-field[hidden],
.pending-output-warning[hidden] { display: none !important; }

.pending-output-warning {
    display: grid; gap: 4px; padding: 14px 16px;
    border: 1px solid #f0c36a; border-radius: 10px; background: #fff8e8;
}
.pending-output-warning strong { color: #7a4b00; }
.pending-output-warning span { color: #735b32; font-size: 13px; }
.status-pending { background: #fff0c7 !important; color: #855700 !important; }

.pending-application-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    gap: 16px;
}
.pending-application-card {
    padding: 18px; border: 1px solid var(--border);
    border-radius: 14px; background: white;
}
.pending-application-top {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.pending-application-top small { color: var(--muted); }
.pending-application-card h3 { margin: 14px 0; color: var(--navy-900); }
.pending-details { display: grid; gap: 10px; margin: 0 0 16px; }
.pending-details div { display: grid; grid-template-columns: 110px 1fr; gap: 10px; }
.pending-details dt { color: var(--muted); font-size: 12px; }
.pending-details dd { margin: 0; font-weight: 600; }
.btn-block { width: 100%; justify-content: center; }

.application-piece-summary {
    display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 22px;
}
.application-piece-summary > div {
    padding: 16px; border: 1px solid var(--border);
    border-radius: 11px; background: #f8fafc;
}
.application-piece-summary span,
.application-piece-summary strong,
.application-piece-summary small { display: block; }
.application-piece-summary span {
    color: var(--muted); font-size: 12px; text-transform: uppercase;
}
.application-piece-summary strong { margin-top: 6px; }
.application-piece-summary small { margin-top: 5px; color: var(--muted); }

.mobile-pending-list { display: grid; gap: 12px; }
.mobile-pending-card {
    display: grid; gap: 7px; padding: 15px;
    border: 1px solid #efc66f; border-radius: 13px;
    background: #fffaf0; color: inherit; text-decoration: none;
}
.mobile-pending-card strong { color: var(--navy-900); }
.mobile-pending-card small { color: var(--muted); }
.mobile-action-label { color: var(--navy-900); font-weight: 700; font-size: 13px; }

@media (max-width: 720px) {
    .application-piece-summary { grid-template-columns: 1fr; }
    .pending-details div { grid-template-columns: 1fr; gap: 2px; }
}


/* MENU PRINCIPAL COM ABAS E SUB-ABAS */

.nav-group {
    margin: 3px 0;
}

.nav-group summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 13px;
    border-radius: 9px;
    color: #cbd5e1;
    cursor: pointer;
    list-style: none;
    font-weight: 700;
    user-select: none;
}

.nav-group summary::-webkit-details-marker {
    display: none;
}

.nav-group summary:hover,
.nav-group[open] summary {
    color: white;
    background: rgba(255, 255, 255, .07);
}

.nav-chevron {
    transition: transform .2s ease;
    color: #fff;
}

.nav-group[open] .nav-chevron {
    transform: rotate(180deg);
}

.nav-submenu {
    display: grid;
    gap: 3px;
    padding: 5px 0 8px 45px;
}

.nav-sublink {
    position: relative;
    padding: 8px 10px 8px 0;
    border-radius: 8px;
    color: #aeb9c8;
    text-decoration: none;
    font-size: 13px;
}

.nav-sublink::before {
    content: "";
    position: absolute;
    left: -13px;
    top: 50%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #65758b;
    transform: translateY(-50%);
}

.nav-sublink:hover {
    color: white;
    background: rgba(255, 255, 255, .06);
}

.nav-sublink.ativo {
    color: white;
    background: rgba(255, 255, 255, .12);
    font-weight: 700;
}

.nav-sublink.ativo::before {
    background: white;
}

.nav-sublink.desabilitado {
    opacity: .45;
    pointer-events: none;
}

.detail-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.detail-grid > div {
    padding: 15px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: #f8fafc;
}

.detail-grid span,
.detail-grid strong {
    display: block;
}

.detail-grid span {
    margin-bottom: 6px;
    color: var(--muted);
    font-size: 12px;
    text-transform: uppercase;
}

.detail-span-2 {
    grid-column: span 2;
}

.module-coming-soon {
    max-width: 700px;
    margin: 0 auto;
    text-align: center;
    padding: 45px;
}

.coming-soon-icon {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    margin: 0 auto 15px;
    border-radius: 18px;
    background: #eef3f8;
    color: var(--navy-900);
    font-size: 30px;
}

.module-coming-soon h2 {
    margin: 15px 0 8px;
}

.module-coming-soon p {
    max-width: 540px;
    margin: 0 auto 20px;
    color: var(--muted);
    line-height: 1.6;
}

.document-code-preview {
    display: grid;
    gap: 5px;
    max-width: 280px;
    margin: 0 auto 22px;
    padding: 15px;
    border: 1px dashed var(--border);
    border-radius: 11px;
    background: #f8fafc;
}

.document-code-preview span {
    color: var(--muted);
    font-size: 12px;
}

.document-code-preview strong {
    color: var(--navy-900);
    font-size: 20px;
}

@media (max-width: 720px) {
    .detail-grid {
        grid-template-columns: 1fr;
    }

    .detail-span-2 {
        grid-column: span 1;
    }
}


/* SOLICITAÇÕES V1.8 */

.auto-number-preview {
    display: grid;
    gap: 3px;
    min-width: 205px;
    padding: 12px 15px;
    border: 1px dashed var(--border);
    border-radius: 10px;
    background: #f8fafc;
}

.auto-number-preview span {
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
}

.auto-number-preview strong {
    color: var(--navy-900);
}

.request-items-editor,
.request-items-view {
    display: grid;
    gap: 15px;
}

.request-item-editor,
.request-item-view {
    position: relative;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
}

.request-item-number {
    margin-bottom: 14px;
    color: var(--navy-900);
    font-weight: 800;
}

.remove-request-item {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 31px;
    height: 31px;
    border: 0;
    border-radius: 50%;
    background: #fee2e2;
    color: #991b1b;
    cursor: pointer;
    font-size: 20px;
}

.request-filter-bar {
    grid-template-columns: minmax(240px, 1fr) 190px 170px auto;
}

.priority-pill {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    background: #edf2f7;
    color: #334155;
    font-size: 12px;
    font-weight: 800;
}

.priority-baixa { background: #e8f5e9; color: #2e6b34; }
.priority-normal { background: #e7eef8; color: #244d7c; }
.priority-alta { background: #fff0c7; color: #855700; }
.priority-urgente { background: #fee2e2; color: #991b1b; }

.request-detail-badges {
    display: flex;
    gap: 8px;
}

.request-header-card {
    margin-bottom: 18px;
}

.request-item-view-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.request-item-view h3 {
    margin: 12px 0;
}

.request-item-data {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.request-item-data > div {
    padding: 10px;
    border-radius: 9px;
    background: #f8fafc;
}

.request-item-data span,
.request-item-data strong {
    display: block;
}

.request-item-data span {
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
}

.request-item-note {
    margin: 12px 0 0;
    padding: 10px;
    border-radius: 9px;
    background: #fff8e8;
}

.approval-items {
    display: grid;
    gap: 9px;
    margin-bottom: 15px;
}

.approval-item {
    display: grid;
    gap: 7px;
    padding: 11px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: #f8fafc;
}

@media (max-width: 850px) {
    .request-filter-bar {
        grid-template-columns: 1fr;
    }

    .request-item-data {
        grid-template-columns: 1fr;
    }

    .auto-number-preview {
        margin-top: 10px;
    }
}


/* PEDIDOS DE COMPRA V1.9 */

.detail-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.approved-request-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
    gap: 14px;
}

.approved-request-card {
    display: grid;
    gap: 10px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: #f8fafc;
}

.approved-request-card h3,
.approved-request-card p {
    margin: 0;
}

.approved-request-card small {
    color: var(--muted);
}

.purchase-order-items {
    display: grid;
    gap: 14px;
}

.purchase-order-item {
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: #fff;
}

.purchase-item-check {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin-bottom: 15px;
    cursor: pointer;
}

.purchase-item-check input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.purchase-item-check span,
.purchase-item-check strong,
.purchase-item-check small {
    display: block;
}

.purchase-item-check small {
    margin-top: 4px;
    color: var(--muted);
}

.purchase-item-fields {
    display: grid;
    grid-template-columns: 1fr 120px 1fr;
    gap: 12px;
}

.purchase-total-box {
    display: grid;
    gap: 3px;
    min-width: 170px;
    padding: 11px 14px;
    border-radius: 10px;
    background: #eef3f8;
    text-align: right;
}

.purchase-total-box span {
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
}

.purchase-total-box strong {
    color: var(--navy-900);
    font-size: 18px;
}

@media (max-width: 720px) {
    .purchase-item-fields {
        grid-template-columns: 1fr;
    }

    .purchase-total-box {
        text-align: left;
    }
}


/* V2.0 */
.dashboard-alert-card { border-left: 5px solid #d97706; background: linear-gradient(135deg, #fffdf7 0%, #fff 100%); }
.dashboard-alert-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; }
.dashboard-alert-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: #fef3c7; color: #92400e; font-size: 24px; font-weight: 900; }
.dashboard-alert-head span { color: #92400e; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.dashboard-alert-head h2 { margin: 3px 0; }
.dashboard-alert-head p { margin: 0; color: var(--muted); }
.dashboard-pending-list { display: grid; gap: 8px; margin-top: 18px; }
.dashboard-pending-item { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: #fff; color: inherit; text-decoration: none; }
.dashboard-pending-item:hover { border-color: #d97706; transform: translateY(-1px); }
.dashboard-pending-item > div { display: grid; gap: 4px; }
.dashboard-pending-item > div:last-child { justify-items: end; }
.dashboard-pending-item span { color: var(--muted); font-size: 12px; }
.link-request-item-form { display: grid; grid-template-columns: minmax(240px, 1fr) auto; align-items: end; gap: 10px; margin-top: 14px; padding: 13px; border: 1px dashed var(--border); border-radius: 10px; background: #f8fafc; }
.link-request-item-form .form-group { margin: 0; }
@media (max-width: 720px) {
    .dashboard-alert-head { grid-template-columns: auto 1fr; }
    .dashboard-alert-head .btn { grid-column: span 2; }
    .dashboard-pending-item { align-items: flex-start; flex-direction: column; }
    .dashboard-pending-item > div:last-child { justify-items: start; }
    .link-request-item-form { grid-template-columns: 1fr; }
}

.app-version{display:block;color:#94a3b8;font-size:11px;margin-top:2px}.dashboard-empty-alert{margin-top:16px}


/* V2.0.3 - consulta automática de CNPJ */
.cnpj-search-row { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: 10px; }
.cnpj-feedback { display: block; margin-top: 7px; color: var(--muted); }
.cnpj-feedback.sucesso { color: #166534; font-weight: 600; }
.cnpj-feedback.erro { color: #b91c1c; font-weight: 600; }
@media (max-width: 620px) { .cnpj-search-row { grid-template-columns: 1fr; } }


/* V2.1 - RESERVA E SEPARAÇÃO */
.stock-allocation {
    display: grid;
    grid-template-columns: repeat(4, minmax(110px, 1fr));
    gap: 8px;
    margin-top: 10px;
}

.stock-allocation span {
    display: grid;
    gap: 3px;
    padding: 9px;
    border-radius: 8px;
    background: #f8fafc;
    color: var(--muted);
    font-size: 11px;
}

.stock-allocation strong {
    color: var(--text);
    font-size: 13px;
}

.separation-grid {
    display: grid;
    gap: 14px;
}

.separation-card {
    padding: 17px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
}

.separation-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 15px;
}

.separation-card-head h3 {
    margin: 5px 0 0;
}

.document-code {
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.tab-actions {
    display: flex;
    gap: 8px;
}

.separation-card .form-actions {
    justify-content: flex-end;
    margin-top: 15px;
}

@media (max-width: 760px) {
    .stock-allocation {
        grid-template-columns: repeat(2, minmax(110px, 1fr));
    }

    .separation-card-head {
        flex-direction: column;
    }
}
/* ===== KPI CARD ===== */

.kpi-card{
    background:#fff;
    border-radius:16px;
    padding:24px;
    border:1px solid #dbe3ef;
    box-shadow:0 8px 20px rgba(0,0,0,.06);
    transition:all .2s ease;
}

.kpi-card:hover{
    transform:translateY(-3px);
    box-shadow:0 12px 28px rgba(0,0,0,.10);
}

.kpi-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.kpi-title{
    color:#64748b;
    font-size:14px;
}

.kpi-icon{
    font-size:28px;
}

.kpi-value{
    font-size:40px;
    font-weight:700;
    margin:15px 0;
    color:#0f172a;
}

.kpi-footer{
    color:#64748b;
    font-size:14px;
}

.info{
    border-left:5px solid #2563eb;
}

.success{
    border-left:5px solid #22c55e;
}

.warning{
    border-left:5px solid #f59e0b;
}

.danger{
    border-left:5px solid #ef4444;
}

/* ==========================================================================
   GESTÃO HEAVY 3.0 — PACOTE 1: DASHBOARD EXECUTIVO
   ========================================================================== */

.enterprise-ui,
.enterprise-ui input,
.enterprise-ui button,
.enterprise-ui select,
.enterprise-ui textarea {
    font-family: "Inter", Arial, Helvetica, sans-serif;
}

.executive-dashboard {
    --dashboard-green: #16a34a;
    --dashboard-green-soft: #eaf8ef;
    --dashboard-blue: #2563eb;
    --dashboard-blue-soft: #eaf1ff;
    --dashboard-orange: #f59e0b;
    --dashboard-orange-soft: #fff6df;
    --dashboard-red: #dc2626;
    --dashboard-red-soft: #fff0f0;
    --dashboard-purple: #7c3aed;
    --dashboard-purple-soft: #f3edff;
    display: grid;
    gap: 20px;
    max-width: 1680px;
    margin: 0 auto;
}

.executive-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
    padding: 28px 30px;
    overflow: hidden;
    border: 1px solid #263654;
    border-radius: 18px;
    color: #fff;
    background:
        radial-gradient(circle at 88% 20%, rgba(240, 165, 27, .22), transparent 30%),
        linear-gradient(135deg, #111827 0%, #17233a 58%, #22304a 100%);
    box-shadow: 0 16px 36px rgba(17, 24, 39, .16);
}

.executive-hero::after {
    content: "";
    position: absolute;
    right: -64px;
    bottom: -92px;
    width: 250px;
    height: 250px;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 50%;
    box-shadow:
        0 0 0 32px rgba(255, 255, 255, .025),
        0 0 0 64px rgba(255, 255, 255, .018);
    pointer-events: none;
}

.executive-hero-main,
.executive-hero-actions {
    position: relative;
    z-index: 1;
}

.executive-eyebrow,
.dashboard-card-eyebrow {
    display: block;
    margin-bottom: 7px;
    color: #d58b0b;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.1px;
    text-transform: uppercase;
}

.executive-hero .executive-eyebrow {
    color: #fbbf45;
}

.executive-hero h2 {
    max-width: 760px;
    margin: 0;
    font-size: clamp(24px, 2.3vw, 36px);
    line-height: 1.2;
}

.executive-hero-main > p {
    max-width: 720px;
    margin-top: 10px;
    color: #cbd5e1;
    font-size: 14px;
    line-height: 1.6;
}

.operation-status {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
    padding: 9px 12px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;
    color: #dce5f1;
    background: rgba(255, 255, 255, .07);
    font-size: 12px;
}

.operation-status strong {
    color: #fff;
}

.operation-status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #94a3b8;
    box-shadow: 0 0 0 4px rgba(148, 163, 184, .14);
}

.operation-status-stable .operation-status-dot {
    background: #4ade80;
    box-shadow: 0 0 0 4px rgba(74, 222, 128, .14);
}

.operation-status-attention .operation-status-dot {
    background: #fbbf24;
    box-shadow: 0 0 0 4px rgba(251, 191, 36, .14);
}

.operation-status-critical .operation-status-dot {
    background: #fb7185;
    box-shadow: 0 0 0 4px rgba(251, 113, 133, .14);
}

.executive-hero-actions {
    min-width: 290px;
    display: grid;
    justify-items: stretch;
    gap: 10px;
}

.executive-hero-actions > small {
    color: #aebbd0;
    font-size: 11px;
    text-align: center;
}

.period-selector {
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 13px;
    background: rgba(255, 255, 255, .06);
    backdrop-filter: blur(6px);
}

.period-selector > span {
    display: block;
    margin-bottom: 8px;
    color: #b8c5d8;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.period-options {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}

.period-option {
    padding: 9px 10px;
    border-radius: 8px;
    color: #dce5f1;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.period-option:hover {
    color: #fff;
    background: rgba(255, 255, 255, .1);
}

.period-option.active {
    color: #111827;
    background: var(--orange);
    box-shadow: 0 5px 12px rgba(240, 165, 27, .2);
}

.dashboard-refresh {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 10px;
    color: #fff;
    background: rgba(255, 255, 255, .08);
    font-weight: 700;
    transition: background .18s ease, transform .18s ease;
}

.dashboard-refresh:hover {
    background: rgba(255, 255, 255, .14);
}

.dashboard-refresh:disabled {
    cursor: wait;
    opacity: .72;
}

.dashboard-refresh.is-loading span {
    animation: dashboard-spin .8s linear infinite;
}

@keyframes dashboard-spin {
    to { transform: rotate(360deg); }
}

.executive-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.executive-kpi {
    position: relative;
    min-height: 190px;
    display: flex;
    flex-direction: column;
    padding: 22px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 16px;
    color: var(--text);
    background: #fff;
    box-shadow: 0 8px 22px rgba(23, 32, 51, .07);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.executive-kpi::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #94a3b8;
}

.executive-kpi:hover {
    transform: translateY(-3px);
    border-color: #c8d2df;
    box-shadow: 0 14px 30px rgba(23, 32, 51, .11);
}

.executive-kpi-success::before { background: var(--dashboard-green); }
.executive-kpi-danger::before { background: var(--dashboard-red); }
.executive-kpi-warning::before { background: var(--dashboard-orange); }
.executive-kpi-info::before { background: var(--dashboard-blue); }

.executive-kpi-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .3px;
    text-transform: uppercase;
}

.executive-kpi-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    border-radius: 9px;
    color: #475569;
    background: #f1f5f9;
    font-size: 16px;
    font-weight: 900;
}

.executive-kpi-success .executive-kpi-icon {
    color: #166534;
    background: var(--dashboard-green-soft);
}

.executive-kpi-danger .executive-kpi-icon {
    color: #991b1b;
    background: var(--dashboard-red-soft);
}

.executive-kpi-warning .executive-kpi-icon {
    color: #92400e;
    background: var(--dashboard-orange-soft);
}

.executive-kpi-info .executive-kpi-icon {
    color: #1d4ed8;
    background: var(--dashboard-blue-soft);
}

.executive-kpi > strong {
    display: block;
    margin: 18px 0 12px;
    color: var(--navy-900);
    font-size: clamp(34px, 3.1vw, 44px);
    line-height: 1;
}

.executive-kpi > small {
    display: block;
    margin-top: auto;
    padding-top: 12px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.executive-progress {
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: #edf1f5;
}

.executive-progress span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--dashboard-green);
}

.executive-kpi-breakdown {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.executive-kpi-breakdown span {
    padding: 5px 8px;
    border-radius: 999px;
    color: #526075;
    background: #f4f6f8;
    font-size: 11px;
    font-weight: 600;
}

.operational-pulse {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(23, 32, 51, .05);
}

.pulse-item {
    min-width: 0;
    display: grid;
    grid-template-columns: auto auto 1fr;
    align-items: center;
    gap: 11px;
    padding: 17px 19px;
    color: var(--text);
    text-decoration: none;
    transition: background .18s ease;
}

.pulse-item:not(:last-child) {
    border-right: 1px solid var(--border);
}

.pulse-item:hover {
    background: #f8fafc;
}

.pulse-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    font-weight: 900;
}

.pulse-icon-blue { color: #1d4ed8; background: var(--dashboard-blue-soft); }
.pulse-icon-red { color: #b91c1c; background: var(--dashboard-red-soft); }
.pulse-icon-orange { color: #92400e; background: var(--dashboard-orange-soft); }
.pulse-icon-purple { color: #6d28d9; background: var(--dashboard-purple-soft); }

.pulse-item div {
    min-width: 0;
}

.pulse-item small,
.pulse-item strong {
    display: block;
}

.pulse-item small {
    color: var(--muted);
    font-size: 11px;
}

.pulse-item strong {
    margin-top: 3px;
    color: var(--navy-900);
    font-size: 23px;
}

.pulse-detail {
    justify-self: end;
    color: #7b8798;
    font-size: 11px;
    text-align: right;
}

.dashboard-chart-grid,
.dashboard-alert-grid,
.dashboard-bottom-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(310px, .8fr);
    gap: 18px;
}

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

.dashboard-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(23, 32, 51, .06);
}

.dashboard-card-header {
    min-height: 91px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 21px 22px 18px;
    border-bottom: 1px solid #edf0f4;
}

.dashboard-card-header.compact {
    min-height: auto;
}

.dashboard-card-header h3 {
    margin: 0;
    color: var(--navy-900);
    font-size: 18px;
}

.dashboard-card-header p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.dashboard-text-link {
    flex: 0 0 auto;
    padding: 6px 0;
    color: #34547c;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.dashboard-text-link:hover {
    color: #1d4ed8;
    text-decoration: underline;
}

.chart-summary-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin: 18px 22px 0;
    overflow: hidden;
    border: 1px solid #e7ebf0;
    border-radius: 11px;
    background: #e7ebf0;
}

.chart-summary-row > div {
    position: relative;
    min-width: 0;
    padding: 12px 13px;
    background: #f8fafc;
}

.chart-summary-row small,
.chart-summary-row strong {
    display: block;
}

.chart-summary-row small {
    color: var(--muted);
    font-size: 10px;
    text-transform: uppercase;
}

.chart-summary-row strong {
    margin-top: 4px;
    color: var(--navy-900);
    font-size: 17px;
}

.summary-marker {
    position: absolute;
    top: 13px;
    right: 12px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #94a3b8;
}

.summary-marker-entry { background: var(--dashboard-green); }
.summary-marker-output { background: var(--dashboard-red); }
.summary-marker-adjustment { background: var(--dashboard-orange); }

.native-line-chart {
    min-height: 310px;
    display: grid;
    align-items: center;
    padding: 8px 18px 18px;
}

.stock-movement-svg {
    width: 100%;
    height: 292px;
    overflow: visible;
}

.chart-grid line {
    stroke: #e7ebf0;
    stroke-width: 1;
}

.chart-grid text,
.chart-axis-label {
    fill: #8a96a7;
    font-size: 10px;
}

.chart-series {
    stroke-width: 2.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.chart-series.series-entry { stroke: var(--dashboard-green); }
.chart-series.series-output { stroke: var(--dashboard-red); }

.chart-point {
    stroke: #fff;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.chart-point.series-entry { fill: var(--dashboard-green); }
.chart-point.series-output { fill: var(--dashboard-red); }

.donut-chart-area {
    min-height: 360px;
    display: grid;
    grid-template-columns: minmax(150px, .9fr) minmax(150px, 1.1fr);
    align-items: center;
    gap: 24px;
    padding: 24px;
}

.dashboard-donut {
    position: relative;
    width: min(190px, 100%);
    aspect-ratio: 1;
    justify-self: center;
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .05);
}

.dashboard-donut::after {
    content: "";
    position: absolute;
    inset: 26%;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, .04);
}

.dashboard-donut-center {
    position: absolute;
    inset: 26%;
    z-index: 1;
    display: grid;
    place-content: center;
    text-align: center;
}

.dashboard-donut-center strong,
.dashboard-donut-center span {
    display: block;
}

.dashboard-donut-center strong {
    color: var(--navy-900);
    font-size: 27px;
}

.dashboard-donut-center span {
    margin-top: 2px;
    color: var(--muted);
    font-size: 10px;
    text-transform: uppercase;
}

.dashboard-donut-legend {
    display: grid;
    gap: 12px;
}

.donut-legend-item {
    min-width: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 9px;
}

.donut-legend-color {
    width: 10px;
    height: 10px;
    border-radius: 3px;
}

.donut-legend-item strong,
.donut-legend-item small {
    display: block;
}

.donut-legend-item strong {
    overflow: hidden;
    color: #344256;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.donut-legend-item small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 10px;
}

.horizontal-bars {
    min-height: 360px;
    display: grid;
    align-content: center;
    gap: 15px;
    padding: 24px;
}

.horizontal-bar-row {
    display: grid;
    grid-template-columns: minmax(160px, .7fr) minmax(220px, 1.3fr);
    align-items: center;
    gap: 16px;
}

.horizontal-bar-label {
    min-width: 0;
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.horizontal-bar-label strong {
    overflow: hidden;
    color: #344256;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.horizontal-bar-label span {
    flex: 0 0 auto;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
}

.horizontal-bar-track {
    height: 11px;
    overflow: hidden;
    border-radius: 999px;
    background: #edf1f5;
}

.horizontal-bar-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #31527d, #5c83b6);
    box-shadow: 0 2px 6px rgba(49, 82, 125, .18);
}

.chart-empty-state {
    min-height: 210px;
    display: grid;
    place-content: center;
    justify-items: center;
    padding: 30px;
    color: var(--muted);
    text-align: center;
}

.chart-empty-state > span {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    margin-bottom: 11px;
    border-radius: 13px;
    color: #627289;
    background: #edf2f7;
    font-size: 21px;
}

.chart-empty-state strong {
    color: #344256;
}

.chart-empty-state small {
    max-width: 320px;
    margin-top: 5px;
    line-height: 1.5;
}

.executive-list {
    display: grid;
}

.executive-list-item {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 15px 20px;
    border-bottom: 1px solid #edf0f4;
    color: var(--text);
    text-decoration: none;
    transition: background .16s ease;
}

.executive-list-item:last-child {
    border-bottom: 0;
}

.executive-list-item:hover {
    background: #f8fafc;
}

.list-status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #94a3b8;
}

.list-status-dot.warning {
    background: var(--dashboard-orange);
    box-shadow: 0 0 0 4px var(--dashboard-orange-soft);
}

.list-status-dot.danger {
    background: var(--dashboard-red);
    box-shadow: 0 0 0 4px var(--dashboard-red-soft);
}

.executive-list-main,
.executive-list-value {
    min-width: 0;
}

.executive-list-main strong,
.executive-list-main small,
.executive-list-value strong,
.executive-list-value small {
    display: block;
}

.executive-list-main strong {
    overflow: hidden;
    color: #2d3b4f;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.executive-list-main small,
.executive-list-value small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 10px;
}

.executive-list-value {
    text-align: right;
}

.executive-list-value strong {
    color: var(--navy-900);
    font-size: 15px;
}

.dashboard-positive-state,
.dashboard-empty-state {
    min-height: 240px;
    display: grid;
    place-content: center;
    justify-items: center;
    padding: 30px;
    text-align: center;
}

.dashboard-positive-state > span {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    margin-bottom: 12px;
    border-radius: 50%;
    color: #166534;
    background: var(--dashboard-green-soft);
    font-size: 20px;
    font-weight: 900;
}

.dashboard-positive-state strong,
.dashboard-empty-state strong {
    color: #344256;
}

.dashboard-positive-state p,
.dashboard-empty-state p {
    max-width: 330px;
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
}

.dashboard-positive-state-compact {
    min-height: 130px;
    grid-template-columns: auto 1fr;
    align-items: center;
    justify-content: start;
    justify-items: start;
    gap: 14px;
    text-align: left;
}

.dashboard-positive-state-compact > span {
    margin: 0;
}

.executive-request-list {
    display: grid;
}

.executive-request-item {
    min-width: 0;
    display: grid;
    grid-template-columns: 145px minmax(240px, 1fr) auto auto;
    align-items: center;
    gap: 15px;
    padding: 15px 20px;
    border-bottom: 1px solid #edf0f4;
    color: var(--text);
    text-decoration: none;
    transition: background .16s ease;
}

.executive-request-item:last-child {
    border-bottom: 0;
}

.executive-request-item:hover {
    background: #f8fafc;
}

.request-code-block,
.request-equipment-block {
    min-width: 0;
}

.request-code-block strong,
.request-code-block small,
.request-equipment-block strong,
.request-equipment-block small {
    display: block;
}

.request-code-block strong {
    color: var(--navy-900);
    font-size: 13px;
}

.request-code-block small,
.request-equipment-block small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 10px;
}

.request-equipment-block strong {
    overflow: hidden;
    color: #344256;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.request-arrow {
    color: #8b98aa;
    font-weight: 900;
}

.executive-quick-actions {
    display: grid;
    gap: 10px;
    padding: 16px;
}

.executive-quick-actions > a {
    min-width: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 12px;
    padding: 13px;
    border: 1px solid #e5eaf0;
    border-radius: 11px;
    color: var(--text);
    background: #fff;
    text-decoration: none;
    transition: border-color .16s ease, background .16s ease, transform .16s ease;
}

.executive-quick-actions > a:hover {
    transform: translateX(2px);
    border-color: #bfcbd9;
    background: #f8fafc;
}

.executive-quick-actions > a > span {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: #2d4e78;
    background: #eaf0f7;
    font-size: 14px;
    font-weight: 900;
}

.executive-quick-actions strong,
.executive-quick-actions small {
    display: block;
}

.executive-quick-actions strong {
    color: #344256;
    font-size: 12px;
}

.executive-quick-actions small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 10px;
}

.dashboard-table-wrap {
    overflow-x: auto;
}

.dashboard-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
}

.dashboard-table th,
.dashboard-table td {
    padding: 13px 17px;
    border-bottom: 1px solid #edf0f4;
    text-align: left;
    vertical-align: middle;
}

.dashboard-table th {
    color: #748195;
    background: #f8fafc;
    font-size: 10px;
    letter-spacing: .4px;
    text-transform: uppercase;
}

.dashboard-table tbody tr:hover {
    background: #fafbfd;
}

.dashboard-table td strong,
.dashboard-table td small {
    display: block;
}

.dashboard-table td strong {
    color: #344256;
    font-size: 12px;
}

.dashboard-table td small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 10px;
}

.dashboard-table .text-right {
    text-align: right;
}

.movement-badge {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    color: #475569;
    background: #edf2f7;
    font-size: 10px;
    font-weight: 800;
}

.movement-entry { color: #166534; background: var(--dashboard-green-soft); }
.movement-output { color: #991b1b; background: var(--dashboard-red-soft); }
.movement-adjustment { color: #92400e; background: var(--dashboard-orange-soft); }

.recent-equipment-list {
    display: grid;
}

.recent-equipment-list > a {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    padding: 14px 17px;
    border-bottom: 1px solid #edf0f4;
    color: var(--text);
    text-decoration: none;
    transition: background .16s ease;
}

.recent-equipment-list > a:last-child {
    border-bottom: 0;
}

.recent-equipment-list > a:hover {
    background: #f8fafc;
}

.recent-equipment-icon {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: #9a6508;
    background: #fff5df;
}

.recent-equipment-list div {
    min-width: 0;
}

.recent-equipment-list strong,
.recent-equipment-list small {
    display: block;
}

.recent-equipment-list strong {
    color: #344256;
    font-size: 12px;
}

.recent-equipment-list small {
    overflow: hidden;
    margin-top: 3px;
    color: var(--muted);
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.equipment-status-badge {
    max-width: 105px;
    overflow: hidden;
    padding: 5px 7px;
    border-radius: 999px;
    color: #526075;
    background: #edf2f7;
    font-size: 9px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dashboard-empty-state {
    min-height: 210px;
}

.dashboard-empty-state > span {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    margin-bottom: 11px;
    border-radius: 12px;
    color: #627289;
    background: #edf2f7;
    font-size: 20px;
}

.dashboard-empty-state.compact {
    min-height: 150px;
}

.executive-period-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 18px;
    border: 1px dashed #cdd6e1;
    border-radius: 12px;
    color: var(--muted);
    background: rgba(255, 255, 255, .55);
    font-size: 11px;
}

.executive-period-note strong,
.executive-period-note span {
    display: block;
}

.executive-period-note strong {
    margin-bottom: 3px;
    color: #445166;
    font-size: 12px;
}

.executive-period-note > small {
    max-width: 430px;
    text-align: right;
    line-height: 1.45;
}

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

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

    .pulse-item:nth-child(2) {
        border-right: 0;
    }

    .pulse-item:nth-child(-n+2) {
        border-bottom: 1px solid var(--border);
    }
}

@media (max-width: 1120px) {
    .dashboard-chart-grid,
    .dashboard-bottom-grid {
        grid-template-columns: 1fr;
    }

    .quick-actions-panel {
        order: -1;
    }

    .executive-quick-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .executive-hero {
        grid-template-columns: 1fr;
    }

    .executive-hero-actions {
        width: 100%;
        min-width: 0;
    }

    .dashboard-alert-grid {
        grid-template-columns: 1fr;
    }

    .donut-chart-area {
        min-height: auto;
    }
}

@media (max-width: 720px) {
    .executive-dashboard {
        gap: 15px;
    }

    .executive-hero {
        padding: 23px 20px;
        border-radius: 15px;
    }

    .operation-status {
        border-radius: 13px;
    }

    .executive-kpi-grid,
    .operational-pulse {
        grid-template-columns: 1fr;
    }

    .executive-kpi {
        min-height: 174px;
    }

    .pulse-item,
    .pulse-item:nth-child(2) {
        border-right: 0;
        border-bottom: 1px solid var(--border);
    }

    .pulse-item:last-child {
        border-bottom: 0;
    }

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

    .donut-chart-area {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .dashboard-donut-legend {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .horizontal-bar-row {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .executive-request-item {
        grid-template-columns: 1fr auto;
        gap: 8px 12px;
    }

    .request-equipment-block {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .executive-request-item .priority-pill {
        grid-column: 2;
        grid-row: 1;
    }

    .request-arrow {
        display: none;
    }

    .executive-quick-actions {
        grid-template-columns: 1fr;
    }

    .executive-period-note {
        align-items: flex-start;
        flex-direction: column;
    }

    .executive-period-note > small {
        max-width: none;
        text-align: left;
    }
}

@media (max-width: 520px) {
    .period-options {
        grid-template-columns: 1fr;
    }

    .executive-kpi-grid {
        gap: 12px;
    }

    .executive-kpi {
        padding: 19px;
    }

    .dashboard-card-header {
        min-height: auto;
        align-items: flex-start;
        flex-direction: column;
        padding: 18px;
    }

    .chart-summary-row {
        margin: 15px 16px 0;
    }

    .native-line-chart,
    .horizontal-bars,
    .donut-chart-area {
        padding-right: 14px;
        padding-left: 14px;
    }

    .dashboard-donut-legend {
        grid-template-columns: 1fr;
    }

    .executive-list-item {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .executive-list-value {
        grid-column: 2;
        text-align: left;
    }

    .pulse-detail {
        display: none;
    }

    .pulse-item {
        grid-template-columns: auto 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .executive-kpi,
    .period-option,
    .dashboard-refresh,
    .pulse-item,
    .executive-list-item,
    .executive-request-item,
    .executive-quick-actions > a,
    .recent-equipment-list > a {
        transition: none;
    }

    .dashboard-refresh.is-loading span {
        animation: none;
    }
}

/* Neutraliza as classes semânticas legadas nos pontos circulares do Dashboard. */
.executive-dashboard .list-status-dot.warning,
.executive-dashboard .list-status-dot.danger {
    border: 0;
}

/* POSIÇÃO DE ESTOQUE — PACOTE 2 */

.stock-position-summary-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.stock-position-summary-card {
    position: relative;
    min-height: 142px;
    padding: 20px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: white;
    box-shadow: var(--shadow);
}

.stock-position-summary-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: var(--navy-800);
}

.stock-position-summary-card.success::before { background: #16a463; }
.stock-position-summary-card.warning::before { background: #e49a0c; }
.stock-position-summary-card.danger::before { background: #d14343; }
.stock-position-summary-card.info::before { background: #386ee8; }

.stock-position-summary-card span,
.stock-position-summary-card strong,
.stock-position-summary-card small {
    display: block;
}

.stock-position-summary-card span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .45px;
    text-transform: uppercase;
}

.stock-position-summary-card strong {
    margin: 12px 0 8px;
    color: var(--navy-900);
    font-size: 34px;
}

.stock-position-summary-card small {
    color: var(--muted);
    line-height: 1.45;
}

.stock-position-panel {
    overflow: visible;
}

.stock-position-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    padding: 18px;
    border-bottom: 1px solid var(--border);
}

.stock-position-filter-form {
    display: grid;
    grid-template-columns: minmax(260px, 1.4fr) minmax(170px, .7fr) minmax(190px, .8fr) auto auto;
    gap: 9px;
}

.stock-position-filter-form input,
.stock-position-filter-form select {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: white;
}

.stock-position-actions {
    display: flex;
    align-items: start;
    justify-content: flex-end;
    gap: 8px;
}

.stock-position-result-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--border);
}

.stock-position-result-head h2 {
    font-size: 18px;
}

.stock-position-result-head p {
    margin-top: 4px;
    color: var(--muted);
    font-size: 13px;
}

.stock-availability-legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 14px;
    color: var(--muted);
    font-size: 12px;
}

.stock-availability-legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.legend-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #64748b;
}

.legend-dot.reserved { background: #e49a0c; }
.legend-dot.available { background: #16a463; }

.stock-position-table {
    min-width: 1260px;
}

.stock-position-table .number-column {
    text-align: right;
    white-space: nowrap;
}

.stock-position-table .number-column strong,
.stock-position-table .number-column small {
    display: block;
}

.stock-position-table .number-column small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 10px;
}

.stock-position-row {
    position: relative;
}

.stock-position-row:hover {
    background: #fbfcfe;
}

.stock-position-row.stock-position-danger {
    background: #fffafa;
}

.stock-position-row.stock-position-warning {
    background: #fffdf7;
}

.stock-location {
    display: block;
    white-space: nowrap;
}

.reserved-balance strong {
    color: #b87400;
}

.available-balance strong {
    color: #14774a;
    font-size: 16px;
}

.stock-position-danger .available-balance strong {
    color: #b52f2f;
}

.stock-status-pill {
    display: inline-flex;
    max-width: 170px;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    text-align: center;
}

.stock-status-pill.success {
    color: #17653f;
    background: #e3f5ec;
}

.stock-status-pill.warning {
    color: #885900;
    background: #fff1c9;
}

.stock-status-pill.danger {
    color: #972d2d;
    background: #fde8e8;
}

.reservation-deficit {
    display: block;
    max-width: 170px;
    margin-top: 5px;
    color: #a32f2f;
    font-size: 10px;
    font-weight: 700;
}

.stock-position-row-actions {
    min-width: 150px;
}

.action-link.disabled {
    color: #9aa3af;
    cursor: not-allowed;
}

.stock-position-empty .btn {
    margin-top: 16px;
}

.stock-balance-preview-detailed {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    padding: 8px;
}

.stock-balance-preview-detailed > span {
    min-width: 0;
    padding: 8px 10px;
    border-radius: 7px;
    background: white;
}

.stock-balance-preview-detailed small,
.stock-balance-preview-detailed strong {
    display: block;
}

.stock-balance-preview-detailed small {
    margin-bottom: 3px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.stock-balance-preview-detailed strong {
    overflow-wrap: anywhere;
    font-size: 12px;
}

.part-option.is-unavailable {
    background: #fafafa;
    opacity: .72;
}

.part-option.is-unavailable:hover,
.part-option.is-unavailable:focus {
    background: #fff1f1;
}

.part-option.is-unavailable small {
    display: block;
    margin-top: 5px;
    color: #a32f2f;
    font-size: 11px;
    font-weight: 700;
}

@media (max-width: 1380px) {
    .stock-position-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .stock-position-toolbar {
        grid-template-columns: 1fr;
    }

    .stock-position-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 980px) {
    .stock-position-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .stock-position-filter-form input {
        grid-column: 1 / -1;
    }

    .stock-position-result-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .stock-availability-legend {
        justify-content: flex-start;
    }
}

@media (max-width: 620px) {
    .stock-position-summary-grid,
    .stock-position-filter-form {
        grid-template-columns: 1fr;
    }

    .stock-position-filter-form input {
        grid-column: auto;
    }

    .stock-position-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .stock-position-actions .btn {
        width: 100%;
    }

    .stock-balance-preview-detailed {
        grid-template-columns: 1fr;
    }
}



/* ================================================================
   PACOTE 3 — ENTRADA POR NF-e E ASSOCIAÇÃO ASSISTIDA
   ================================================================ */

.nfe-page-alert {
    display: grid;
    gap: 4px;
    margin-bottom: 18px;
    padding: 15px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
}

.nfe-page-alert strong,
.nfe-page-alert span {
    display: block;
}

.alert-error.nfe-page-alert {
    color: #8f2d2d;
    border-color: #efb8b8;
    background: #fff1f1;
}

.alert-success.nfe-page-alert {
    color: #17653f;
    border-color: #a9dfc3;
    background: #edf9f3;
}

.alert-warning.nfe-page-alert {
    color: #7a4b00;
    border-color: #f0c36a;
    background: #fff8e8;
}

.nfe-eyebrow {
    display: block;
    margin-bottom: 7px;
    color: #d9900d;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 1.15px;
}

.nfe-import-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr);
    gap: 18px;
    margin-bottom: 18px;
}

.nfe-upload-card,
.nfe-import-help,
.nfe-history-card,
.nfe-review-summary,
.nfe-association-panel,
.nfe-detail-hero,
.nfe-detail-items,
.nfe-audit-note {
    overflow: visible;
}

.nfe-upload-heading {
    align-items: flex-start;
}

.nfe-model-pill {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 10px;
    border-radius: 999px;
    color: #7a4b00;
    background: #fff3d5;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

#nfe-upload-form {
    padding: 22px;
}

.nfe-drop-zone {
    min-height: 235px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 10px;
    padding: 28px;
    border: 2px dashed #cbd5e1;
    border-radius: 16px;
    color: var(--navy-900);
    text-align: center;
    background: #f8fafc;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.nfe-drop-zone:hover,
.nfe-drop-zone.dragging {
    border-color: var(--orange);
    background: #fff9ed;
    transform: translateY(-2px);
}

.nfe-drop-zone.has-file {
    border-style: solid;
    border-color: #45b77c;
    background: #f0faf5;
}

.nfe-drop-zone input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.nfe-drop-zone strong,
.nfe-drop-zone span {
    display: block;
}

.nfe-drop-zone > span:last-child {
    color: var(--muted);
    font-size: 13px;
}

.nfe-drop-icon {
    width: 58px;
    height: 58px;
    display: grid !important;
    place-items: center;
    border-radius: 16px;
    color: var(--navy-950);
    background: var(--orange);
    font-size: 27px;
    font-weight: 900;
}

.nfe-security-notes {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 18px;
}

.nfe-security-notes > div {
    display: grid;
    grid-template-columns: 30px 1fr;
    gap: 10px;
    padding: 13px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: white;
}

.nfe-security-notes > div > span {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: var(--navy-950);
    background: #fff0cc;
    font-weight: 900;
}

.nfe-security-notes p,
.nfe-validation-list p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.nfe-security-notes strong,
.nfe-validation-list strong {
    display: block;
    margin-bottom: 3px;
    color: var(--navy-900);
}

.nfe-upload-actions {
    margin-top: 20px;
}

.nfe-validation-list {
    display: grid;
    gap: 1px;
    padding: 8px 18px 18px;
    background: var(--border);
}

.nfe-validation-list > div {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 11px;
    padding: 15px 10px;
    background: white;
}

.nfe-validation-list > div > span {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #17653f;
    background: #e3f5ec;
    font-weight: 900;
}

.nfe-table {
    width: 100%;
    border-collapse: collapse;
}

.nfe-table th,
.nfe-table td {
    padding: 14px 17px;
    border-bottom: 1px solid #edf0f4;
    text-align: left;
    vertical-align: middle;
}

.nfe-table th {
    color: var(--muted);
    background: #f8fafc;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .45px;
}

.nfe-table td strong,
.nfe-table td small {
    display: block;
}

.nfe-table td small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.nfe-key-code {
    display: block;
    max-width: 310px;
    overflow: hidden;
    color: #425066;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nfe-review-summary {
    margin-bottom: 18px;
    padding: 24px;
    color: white;
    background:
        radial-gradient(circle at 92% 10%, rgba(240, 165, 27, .20), transparent 30%),
        linear-gradient(135deg, var(--navy-950), var(--navy-800));
}

.nfe-review-summary-main,
.nfe-detail-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.nfe-review-summary h2,
.nfe-detail-head h2 {
    margin: 0;
    color: white;
    font-size: 24px;
}

.nfe-review-summary-main p,
.nfe-detail-head p {
    margin-top: 6px;
    color: #cbd5e1;
}

.status-success {
    color: #17653f !important;
    background: #e3f5ec !important;
}

.status-neutral {
    color: #5e6673 !important;
    background: #eceff3 !important;
}

.nfe-review-metrics,
.nfe-detail-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-top: 22px;
}

.nfe-review-metrics > div,
.nfe-detail-metrics > div {
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 12px;
    background: rgba(255, 255, 255, .07);
}

.nfe-review-metrics span,
.nfe-review-metrics strong,
.nfe-review-metrics small,
.nfe-detail-metrics span,
.nfe-detail-metrics strong,
.nfe-detail-metrics small {
    display: block;
}

.nfe-review-metrics span,
.nfe-detail-metrics span {
    color: #b7c1d1;
    font-size: 11px;
    text-transform: uppercase;
}

.nfe-review-metrics strong,
.nfe-detail-metrics strong {
    margin-top: 7px;
    color: white;
    font-size: 20px;
}

.nfe-review-metrics small,
.nfe-detail-metrics small {
    margin-top: 5px;
    color: #cbd5e1;
    font-size: 11px;
}

.nfe-review-key {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, .12);
}

.nfe-review-key span {
    color: #b7c1d1;
    font-size: 11px;
    text-transform: uppercase;
}

.nfe-review-key code {
    color: #f8fafc;
    font-size: 12px;
    overflow-wrap: anywhere;
}

.nfe-association-panel {
    overflow: visible;
}

.nfe-legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    color: var(--muted);
    font-size: 12px;
}

.nfe-legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.legend-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.legend-dot.suggested { background: var(--orange); }
.legend-dot.linked { background: #25a863; }
.legend-dot.ignored { background: #9ca3af; }

.nfe-items {
    padding: 0 18px 18px;
}

.nfe-item-card {
    position: relative;
    padding: 20px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: white;
    box-shadow: 0 8px 24px rgba(23, 32, 51, .05);
    transition: opacity .2s ease, border-color .2s ease;
}

.nfe-item-card.is-ignored {
    opacity: .58;
    border-style: dashed;
    background: #f7f8fa;
}

.nfe-item-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.nfe-item-identification {
    display: flex;
    align-items: flex-start;
    gap: 13px;
}

.nfe-item-number {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    border-radius: 11px;
    color: var(--navy-950);
    background: var(--orange);
    font-weight: 900;
}

.nfe-item-identification h3 {
    margin: 0;
    font-size: 17px;
}

.nfe-item-identification p {
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
}

.nfe-item-status-area {
    display: grid;
    justify-items: end;
    gap: 10px;
}

.nfe-association-status {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
}

.nfe-association-status.pending {
    color: #8b3b3b;
    background: #fde8e8;
}

.nfe-association-status.suggested {
    color: #7a4b00;
    background: #fff0c7;
}

.nfe-association-status.linked {
    color: #17653f;
    background: #e3f5ec;
}

.nfe-association-status.ignored {
    color: #5e6673;
    background: #eceff3;
}

.nfe-ignore-check {
    color: var(--muted);
    font-size: 12px;
}

.nfe-suggestion-box {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    margin-bottom: 17px;
    padding: 14px;
    border: 1px solid #f0c36a;
    border-radius: 12px;
    background: #fff8e8;
}

.nfe-suggestion-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    color: #7a4b00;
    background: #ffe8aa;
    font-size: 20px;
    font-weight: 900;
}

.nfe-suggestion-box span,
.nfe-suggestion-box strong,
.nfe-suggestion-box small {
    display: block;
}

.nfe-suggestion-box span {
    color: #8a5a00;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.nfe-suggestion-box strong {
    margin-top: 4px;
    color: var(--navy-900);
}

.nfe-suggestion-box small {
    margin-top: 4px;
    color: #735b32;
}

.nfe-item-form-grid {
    display: grid;
    grid-template-columns: minmax(300px, 1.8fr) minmax(150px, .55fr) minmax(160px, .6fr) minmax(140px, .5fr);
    gap: 14px;
    align-items: end;
}

.nfe-item-form-grid .form-group {
    margin-bottom: 0;
}

.nfe-piece-field {
    min-width: 0;
}

.nfe-piece-combobox {
    position: relative;
}

.nfe-piece-search {
    width: 100%;
    min-height: 45px;
    padding: 11px 44px 11px 13px;
    border: 1px solid var(--border);
    border-radius: 10px;
    outline: none;
    background: white;
}

.nfe-piece-search:focus {
    border-color: var(--orange);
    box-shadow: 0 0 0 3px rgba(240, 165, 27, .13);
}

.nfe-piece-toggle {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 37px;
    height: 37px;
    border: 0;
    border-radius: 8px;
    color: var(--muted);
    background: #f3f5f8;
}

.nfe-piece-menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    z-index: 60;
    max-height: 330px;
    overflow-y: auto;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: white;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .18);
}

.nfe-piece-option {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 14px;
    border: 0;
    border-bottom: 1px solid #edf0f4;
    color: var(--text);
    text-align: left;
    background: white;
}

.nfe-piece-option:hover {
    background: #fff9ed;
}

.nfe-piece-option span,
.nfe-piece-option strong,
.nfe-piece-option small {
    display: block;
}

.nfe-piece-option small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
}

.nfe-option-stock {
    flex: 0 0 auto;
    color: #17653f;
    font-size: 12px;
    font-weight: 800;
}

.nfe-piece-empty {
    padding: 20px;
    text-align: center;
}

.nfe-piece-empty strong,
.nfe-piece-empty span {
    display: block;
}

.nfe-piece-empty span {
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
}

.nfe-piece-actions-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.nfe-selected-details {
    margin-top: 9px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.nfe-number-with-unit,
.nfe-currency-input {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: white;
    overflow: hidden;
}

.nfe-currency-input {
    grid-template-columns: auto minmax(0, 1fr);
}

.nfe-number-with-unit input,
.nfe-currency-input input {
    width: 100%;
    min-height: 43px;
    padding: 10px 12px;
    border: 0;
    outline: none;
}

.nfe-number-with-unit span,
.nfe-currency-input span {
    padding: 0 11px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.nfe-item-total-field strong {
    min-height: 45px;
    display: flex;
    align-items: center;
    padding: 11px 12px;
    border-radius: 10px;
    color: var(--navy-900);
    background: #f3f5f8;
    font-size: 16px;
}

.nfe-memory-check {
    margin-top: 16px;
}

.nfe-memory-check span,
.nfe-memory-check small {
    display: block;
}

.nfe-memory-check small {
    margin-top: 3px;
    color: var(--muted);
    font-weight: 400;
}

.nfe-confirm-bar {
    align-items: center;
    justify-content: space-between;
    margin-top: 18px;
}

.nfe-confirm-summary strong,
.nfe-confirm-summary span {
    display: block;
}

.nfe-confirm-summary span {
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
}

.nfe-confirm-actions {
    display: flex;
    gap: 9px;
}

.nfe-cancel-form {
    margin-top: 12px;
    text-align: right;
}

.nfe-detail-hero {
    margin-bottom: 18px;
    padding: 24px;
    color: white;
    background:
        radial-gradient(circle at 90% 5%, rgba(46, 204, 113, .18), transparent 32%),
        linear-gradient(135deg, var(--navy-950), var(--navy-800));
}

.nfe-detail-toolbar {
    margin-bottom: 18px;
}

.nfe-detail-table tfoot td {
    background: #f8fafc;
}

.nfe-row-ignored {
    opacity: .62;
    background: #f8f9fb;
}

.nfe-not-linked {
    color: var(--muted);
    font-style: italic;
}

.nfe-audit-note {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 18px;
    padding: 18px 20px;
}

.nfe-audit-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    flex: 0 0 44px;
    border-radius: 13px;
    color: #17653f;
    background: #e3f5ec;
    font-size: 20px;
    font-weight: 900;
}

.nfe-audit-note strong,
.nfe-audit-note p {
    display: block;
}

.nfe-audit-note p {
    margin-top: 4px;
    color: var(--muted);
    line-height: 1.5;
}

.nfe-new-part-context {
    margin-bottom: 20px;
    padding: 16px;
    border: 1px solid #f0c36a;
    border-radius: 12px;
    background: #fff8e8;
}

.nfe-new-part-context strong,
.nfe-new-part-context p {
    display: block;
}

.nfe-new-part-context p {
    margin-top: 5px;
    color: #735b32;
}

@media (max-width: 1180px) {
    .nfe-item-form-grid {
        grid-template-columns: minmax(280px, 1.5fr) repeat(3, minmax(140px, .55fr));
    }

    .nfe-review-metrics,
    .nfe-detail-metrics {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 980px) {
    .nfe-import-grid {
        grid-template-columns: 1fr;
    }

    .nfe-item-form-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .nfe-piece-field {
        grid-column: 1 / -1;
    }

    .nfe-security-notes {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .nfe-review-summary-main,
    .nfe-detail-head,
    .nfe-item-head,
    .nfe-review-key,
    .nfe-confirm-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .nfe-review-metrics,
    .nfe-detail-metrics,
    .nfe-item-form-grid {
        grid-template-columns: 1fr;
    }

    .nfe-piece-field {
        grid-column: auto;
    }

    .nfe-item-status-area {
        justify-items: start;
    }

    .nfe-suggestion-box {
        grid-template-columns: 42px 1fr;
    }

    .nfe-suggestion-box .btn {
        grid-column: 1 / -1;
        width: 100%;
    }

    .nfe-confirm-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .nfe-confirm-actions .btn {
        width: 100%;
    }

    .nfe-legend {
        margin-top: 12px;
    }
}

/* ==========================================================================
   SPRINT 4.1.1 — CADASTRO MESTRE E TIPOS DE FORNECEDOR
   ========================================================================== */

.content-card {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 24px;
    border-bottom: 1px solid var(--border);
}

.section-heading h2 {
    font-size: 19px;
}

.section-heading p {
    margin-top: 5px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.heading-actions {
    display: flex;
    align-items: center;
    gap: 9px;
}

.filter-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 17px 24px;
    border-bottom: 1px solid var(--border);
    background: #f8fafc;
}

.filter-bar input,
.filter-bar select {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid var(--border);
    border-radius: 9px;
    outline: none;
    background: white;
}

.filter-bar input {
    flex: 1;
}

.filter-bar select {
    min-width: 210px;
}

.table-responsive {
    width: 100%;
    overflow-x: auto;
}

.table-responsive table {
    width: 100%;
    border-collapse: collapse;
}

.table-responsive th,
.table-responsive td {
    padding: 14px 18px;
    border-bottom: 1px solid #edf0f4;
    text-align: left;
    vertical-align: middle;
}

.table-responsive th {
    color: var(--muted);
    background: #fbfcfd;
    font-size: 11px;
    letter-spacing: .4px;
    text-transform: uppercase;
}

.table-responsive tbody tr:hover {
    background: #fbfcfe;
}

.table-responsive tbody tr:last-child td {
    border-bottom: 0;
}

.table-link {
    color: #1d4ed8;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.table-link:hover {
    text-decoration: underline;
}

.table-secondary-text {
    display: block;
    max-width: 360px;
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
}

.status-pill,
.master-badge,
.code-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

.status-pill {
    padding: 7px 10px;
    color: #17653f;
    background: #e3f5ec;
}

.status-pill.status-inactive {
    color: #5e6673;
    background: #eceff3;
}

.alert {
    margin-bottom: 18px;
    padding: 13px 15px;
    border-radius: 10px;
    font-size: 14px;
    line-height: 1.5;
}

.alert-error {
    border: 1px solid #efb8b8;
    color: #942e2e;
    background: #fff1f1;
}

.form-group small,
.field-heading-row small {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.content-card > form {
    padding: 24px;
}

.supplier-form-card,
.master-form-card {
    max-width: 1080px;
    margin: 0 auto;
}

.supplier-form-card > form,
.master-form-card > form {
    padding-top: 22px;
}

.field-heading-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 13px;
}

.field-heading-row label {
    margin-bottom: 0;
}

.selection-counter {
    flex: 0 0 auto;
    padding: 7px 10px;
    border-radius: 999px;
    color: #1d4ed8;
    background: #eaf1ff;
    font-size: 12px;
    font-weight: 800;
}

.supplier-type-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 11px;
}

.supplier-type-option {
    position: relative;
    display: flex !important;
    align-items: flex-start;
    gap: 11px;
    min-height: 76px;
    margin: 0 !important;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 11px;
    cursor: pointer;
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.supplier-type-option:hover {
    border-color: #9db7e8;
    box-shadow: 0 5px 16px rgba(23, 32, 51, .08);
}

.supplier-type-option:has(input:checked) {
    border-color: #2563eb;
    background: #f3f7ff;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, .08);
}

.supplier-type-option.is-inactive {
    opacity: .72;
}

.supplier-type-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.supplier-type-check {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 22px;
    border: 1px solid #b9c3d1;
    border-radius: 6px;
    color: transparent;
    background: #fff;
    font-size: 13px;
    font-weight: 900;
}

.supplier-type-option input:checked + .supplier-type-check {
    border-color: #2563eb;
    color: #fff;
    background: #2563eb;
}

.supplier-type-content {
    min-width: 0;
}

.supplier-type-content strong,
.supplier-type-content small {
    display: block;
}

.supplier-type-content strong {
    font-size: 13px;
    line-height: 1.35;
}

.supplier-type-content small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.35;
}

.compact-empty-state {
    padding: 26px 18px;
    border: 1px dashed var(--border);
    border-radius: 11px;
    color: var(--muted);
    background: #fbfcfd;
}

.supplier-type-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 180px;
}

.master-badge {
    padding: 6px 9px;
    color: #25446f;
    background: #eaf1fb;
}

.master-badge.is-inactive {
    color: #6b7280;
    background: #eceff3;
    text-decoration: line-through;
}

.muted-text {
    color: var(--muted);
    font-size: 13px;
}

.master-page {
    display: grid;
    gap: 18px;
    max-width: 1380px;
    margin: 0 auto;
}

.master-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding: 25px 28px;
    border: 1px solid #263654;
    border-radius: 16px;
    color: white;
    background: linear-gradient(135deg, #111827, #22304a);
    box-shadow: 0 12px 28px rgba(17, 24, 39, .15);
}

.master-hero h2 {
    margin-top: 5px;
    font-size: 26px;
}

.master-hero p {
    max-width: 700px;
    margin-top: 7px;
    color: #cbd5e1;
    font-size: 13px;
    line-height: 1.55;
}

.master-group-tabs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(175px, 1fr));
    gap: 10px;
}

.master-group-tab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
    padding: 14px 15px;
    border: 1px solid var(--border);
    border-radius: 11px;
    color: var(--text);
    text-decoration: none;
    background: white;
    box-shadow: 0 5px 14px rgba(23, 32, 51, .05);
}

.master-group-tab strong {
    overflow: hidden;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.master-group-tab span {
    min-width: 26px;
    padding: 5px 7px;
    border-radius: 999px;
    color: var(--muted);
    background: #eef1f5;
    font-size: 11px;
    font-weight: 800;
    text-align: center;
}

.master-group-tab:hover,
.master-group-tab.active {
    border-color: #2563eb;
}

.master-group-tab.active {
    color: #174ea6;
    background: #f3f7ff;
}

.master-group-tab.active span {
    color: white;
    background: #2563eb;
}

.code-chip {
    padding: 6px 8px;
    border-radius: 7px;
    color: #39465a;
    background: #edf1f6;
    font-family: Consolas, "Courier New", monospace;
    letter-spacing: .2px;
}

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

    .master-group-tabs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .section-heading,
    .master-hero,
    .field-heading-row {
        align-items: stretch;
        flex-direction: column;
    }

    .heading-actions,
    .filter-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .heading-actions .btn,
    .filter-bar .btn,
    .filter-bar input,
    .filter-bar select {
        width: 100%;
    }

    .supplier-type-grid,
    .master-group-tabs {
        grid-template-columns: 1fr;
    }

    .selection-counter {
        align-self: flex-start;
    }
}

/* Ajustes do cabeçalho componentizado */
.topbar-left,
.topbar-right,
.user-box {
    display: flex;
    align-items: center;
}

.topbar-left {
    gap: 13px;
    min-width: 260px;
}

.topbar-center {
    flex: 1;
    max-width: 620px;
    margin: 0 28px;
}

.topbar-right {
    justify-content: flex-end;
    gap: 9px;
}

.global-search {
    position: relative;
    width: 100%;
}

.global-search .search-icon {
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    opacity: .62;
}

.global-search input {
    width: 100%;
    padding: 11px 14px 11px 40px;
    border: 1px solid var(--border);
    border-radius: 10px;
    outline: none;
    background: #f8fafc;
}

.icon-button {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: white;
}

.user-box {
    gap: 9px;
    margin-left: 4px;
}

.user-box strong,
.user-box span {
    display: block;
}

.user-box span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.nav-menu {
    min-height: 0;
    overflow-y: auto;
    padding-right: 2px;
}

@media (max-width: 980px) {
    .topbar-center,
    .topbar-right .icon-button {
        display: none;
    }

    .topbar-left {
        min-width: 0;
    }
}


/* ==========================================================================
   SPRINT 4.1.2 — REORGANIZAÇÃO VISUAL DO PAINEL E LAYOUT
   ========================================================================== */

.page-content-shell {
    max-width: 1680px;
    margin: 0 auto;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 10;
    gap: 18px;
    padding: 20px 32px;
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(10px);
}

.page-title h1 {
    font-size: 22px;
    line-height: 1.2;
}

.page-title p {
    margin-top: 5px;
    color: var(--muted);
    font-size: 13px;
}

.user-box-highlight {
    padding: 4px 6px 4px 4px;
    border-radius: 999px;
}

.user-box-highlight .avatar {
    width: 38px;
    height: 38px;
    background: #253554;
}

.page-content {
    padding: 28px 32px 42px;
}

.operational-pulse {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.dashboard-card-header h3 {
    margin: 4px 0 0;
    font-size: 18px;
}

.dashboard-card-header p {
    margin-top: 6px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.dashboard-card-header .btn {
    flex: 0 0 auto;
}

.dashboard-bottom-grid {
    grid-template-columns: minmax(0, 1.45fr) minmax(320px, .85fr);
}

@media (max-width: 1380px) {
    .operational-pulse {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .pulse-item:nth-child(3) {
        border-right: 0;
    }

    .pulse-item:nth-child(-n+3) {
        border-bottom: 1px solid var(--border);
    }
}

@media (max-width: 1120px) {
    .dashboard-bottom-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .topbar {
        padding: 16px 18px;
    }

    .user-box-highlight {
        padding: 0;
        background: transparent;
    }
}

@media (max-width: 720px) {
    .page-content {
        padding: 18px 16px 30px;
    }

    .operational-pulse {
        grid-template-columns: 1fr;
    }

    .pulse-item,
    .pulse-item:nth-child(2),
    .pulse-item:nth-child(3) {
        border-right: 0;
        border-bottom: 1px solid var(--border);
    }
}

/* ==========================================================================
   SPRINT 4.2 — ABASTECIMENTOS
   ========================================================================== */

.fueling-page {
    display: grid;
    gap: 18px;
    max-width: 1680px;
    margin: 0 auto;
}

.fueling-list-hero,
.fueling-form-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 25px 28px;
    overflow: hidden;
    border: 1px solid #263654;
    border-radius: 17px;
    color: #fff;
    background:
        radial-gradient(circle at 90% 25%, rgba(240, 165, 27, .22), transparent 29%),
        linear-gradient(135deg, #111827 0%, #17233a 58%, #22304a 100%);
    box-shadow: 0 14px 32px rgba(17, 24, 39, .14);
}

.fueling-list-hero::after,
.fueling-form-hero::after {
    content: "";
    position: absolute;
    right: -50px;
    bottom: -100px;
    width: 230px;
    height: 230px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 50%;
    box-shadow: 0 0 0 30px rgba(255,255,255,.025), 0 0 0 60px rgba(255,255,255,.015);
    pointer-events: none;
}

.fueling-list-hero > *,
.fueling-form-hero > * {
    position: relative;
    z-index: 1;
}

.fueling-list-hero .eyebrow,
.fueling-form-hero .eyebrow {
    color: #fbbf45;
}

.fueling-list-hero h2,
.fueling-form-hero h2 {
    margin-top: 6px;
    font-size: 27px;
}

.fueling-list-hero p,
.fueling-form-hero p {
    max-width: 760px;
    margin-top: 7px;
    color: #cbd5e1;
    font-size: 13px;
    line-height: 1.55;
}

.fueling-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.fueling-summary-card {
    position: relative;
    min-width: 0;
    padding: 19px 20px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(23, 32, 51, .06);
}

.fueling-summary-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--orange);
}

.fueling-summary-card span,
.fueling-summary-card strong,
.fueling-summary-card small {
    display: block;
}

.fueling-summary-card span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .35px;
    text-transform: uppercase;
}

.fueling-summary-card strong {
    margin-top: 10px;
    overflow: hidden;
    color: var(--navy-900);
    font-size: clamp(22px, 2vw, 30px);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fueling-summary-card small {
    margin-top: 7px;
    color: #8993a2;
    font-size: 11px;
    line-height: 1.4;
}

.fueling-filter-bar {
    flex-wrap: wrap;
}

.fueling-filter-bar input[type="search"] {
    flex: 1 1 280px;
}

.fueling-filter-bar select {
    min-width: 180px;
    flex: 0 1 220px;
}

.fueling-filter-bar input[type="date"] {
    flex: 0 1 160px;
}

.fueling-table {
    min-width: 1280px;
}

.fueling-table td > strong,
.fueling-table td > small {
    display: block;
}

.fuel-badge {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    border-radius: 999px;
    color: #475569;
    background: #edf2f7;
    font-size: 11px;
    font-weight: 800;
}

.fuel-diesel {
    color: #27364d;
    background: #e8edf4;
}

.fuel-gasolina {
    color: #8a4b07;
    background: #fff2d9;
}

.fuel-etanol {
    color: #166534;
    background: #e6f7ed;
}

.inline-delete-form {
    display: inline;
}

.inline-delete-form button {
    margin-left: 9px;
    padding: 0;
    border: 0;
    background: transparent;
}

.danger-link {
    color: #b91c1c;
}

.fueling-empty-state > span {
    display: block;
    margin-bottom: 12px;
    font-size: 32px;
}

.fueling-empty-state .btn {
    margin-top: 18px;
}

.fueling-warning {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border: 1px solid #f3cc7b;
    color: #7a4a08;
    background: #fff8e9;
}

.fueling-warning strong,
.fueling-warning p {
    display: block;
}

.fueling-warning p {
    margin-top: 4px;
    color: #8a642c;
    font-size: 12px;
}

.fueling-form {
    display: grid;
    gap: 18px;
}

.fueling-section {
    overflow: visible;
}

.fueling-section .section-heading > div {
    position: relative;
    padding-left: 43px;
}

.form-step {
    position: absolute;
    left: 0;
    top: -2px;
    width: 31px;
    height: 31px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: #26364e;
    background: #fff1cf;
    font-size: 13px;
    font-weight: 900;
}

.fueling-section-body {
    padding: 24px;
}

.equipment-mode-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin-bottom: 20px;
}

.equipment-mode-card {
    position: relative;
    display: flex !important;
    align-items: center;
    gap: 13px;
    min-height: 82px;
    margin: 0 !important;
    padding: 15px;
    border: 1px solid var(--border);
    border-radius: 12px;
    cursor: pointer;
    background: #fff;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.equipment-mode-card:hover {
    border-color: #a8b7cc;
    box-shadow: 0 6px 18px rgba(23, 32, 51, .06);
}

.equipment-mode-card:has(input:checked) {
    border-color: #2f65bd;
    background: #f4f8ff;
    box-shadow: 0 0 0 2px rgba(47, 101, 189, .08);
}

.equipment-mode-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.equipment-mode-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    flex: 0 0 42px;
    border-radius: 11px;
    color: #264b7b;
    background: #e9f0f8;
    font-size: 17px;
    font-weight: 900;
}

.equipment-mode-card strong,
.equipment-mode-card small {
    display: block;
}

.equipment-mode-card strong {
    font-size: 13px;
}

.equipment-mode-card small {
    margin-top: 5px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.4;
}

.registered-equipment-fields,
.third-party-equipment-fields {
    padding: 17px;
    border: 1px dashed #cad3df;
    border-radius: 12px;
    background: #f8fafc;
}

.registered-equipment-fields .form-group,
.third-party-equipment-fields .form-group {
    margin-bottom: 0;
}

.reading-input-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 52px;
}

.reading-input-row input {
    border-radius: 9px 0 0 9px;
}

.reading-input-row span {
    display: grid;
    place-items: center;
    border: 1px solid var(--border);
    border-left: 0;
    border-radius: 0 9px 9px 0;
    color: #536176;
    background: #f4f6f8;
    font-size: 12px;
    font-weight: 800;
}

.total-calculation-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 0;
    padding: 18px 20px;
    border: 1px solid #efd28e;
    border-radius: 12px;
    background: linear-gradient(135deg, #fffaf0, #fff);
}

.total-calculation-card span,
.total-calculation-card strong,
.total-calculation-card small {
    display: block;
}

.total-calculation-card > div > span {
    color: #80601b;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .35px;
    text-transform: uppercase;
}

.total-calculation-card strong {
    margin-top: 5px;
    color: #172033;
    font-size: 30px;
}

.total-calculation-card small {
    margin-top: 4px;
    color: #8b7350;
}

.calculation-formula {
    padding: 10px 12px;
    border-radius: 9px;
    color: #6d5a32;
    background: rgba(240, 165, 27, .10);
    font-size: 12px;
    font-weight: 700;
}

.fueling-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 17px 19px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: rgba(255,255,255,.88);
    box-shadow: 0 7px 20px rgba(23, 32, 51, .05);
}

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

@media (max-width: 760px) {
    .fueling-list-hero,
    .fueling-form-hero,
    .fueling-warning,
    .total-calculation-card {
        align-items: stretch;
        flex-direction: column;
    }

    .fueling-list-hero .btn,
    .fueling-form-hero .btn,
    .fueling-warning .btn {
        width: 100%;
    }

    .fueling-summary-grid,
    .equipment-mode-grid {
        grid-template-columns: 1fr;
    }

    .calculation-formula {
        align-self: flex-start;
    }
}

@media (max-width: 520px) {
    .fueling-list-hero,
    .fueling-form-hero {
        padding: 22px 19px;
    }

    .fueling-section-body {
        padding: 18px;
    }

    .fueling-form-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

/* ==========================================================================
   SPRINT 4.3 — PLANOS PREVENTIVOS POR MODELO E ORDENS DE SERVIÇO
   ========================================================================== */

.alert-success {
    border: 1px solid #9fd8b7;
    color: #17653f;
    background: #edf9f2;
}

.maintenance-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 18px;
}

.maintenance-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.maintenance-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.maintenance-summary-card {
    position: relative;
    min-height: 128px;
    padding: 19px 20px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(23, 32, 51, .06);
}

.maintenance-summary-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #94a3b8;
}

.maintenance-summary-card.warning::before { background: #d97706; }
.maintenance-summary-card.danger::before { background: #dc2626; }
.maintenance-summary-card.attention::before { background: #f59e0b; }
.maintenance-summary-card.success::before { background: #16a34a; }

.maintenance-summary-card span,
.maintenance-summary-card strong,
.maintenance-summary-card small {
    display: block;
}

.maintenance-summary-card span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .4px;
    text-transform: uppercase;
}

.maintenance-summary-card strong {
    margin: 12px 0 7px;
    color: var(--navy-900);
    font-size: 34px;
}

.maintenance-summary-card small { color: var(--muted); font-size: 11px; }

.maintenance-filter-bar select { min-width: 190px; }

.maintenance-program-list { display: grid; }

.maintenance-program-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    padding: 20px 22px;
    border-bottom: 1px solid #edf0f4;
}

.maintenance-program-item:last-child { border-bottom: 0; }
.maintenance-program-item:hover { background: #fbfcfe; }

.maintenance-program-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.maintenance-program-heading h3 { margin-top: 4px; font-size: 17px; }
.maintenance-program-heading p { margin-top: 6px; color: var(--muted); font-size: 12px; }

.maintenance-status-badge {
    flex: 0 0 auto;
    padding: 7px 10px;
    border-radius: 999px;
    color: #475569;
    background: #edf2f7;
    font-size: 11px;
    font-weight: 800;
}

.maintenance-status-badge.status-em-dia { color: #166534; background: #e9f8ef; }
.maintenance-status-badge.status-proxima-do-vencimento { color: #92400e; background: #fff5df; }
.maintenance-status-badge.status-vencida { color: #991b1b; background: #fff0f0; }
.maintenance-status-badge.status-configuracao-pendente { color: #1d4ed8; background: #eaf1ff; }

.maintenance-reading-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: 10px;
    margin-top: 17px;
}

.maintenance-reading-grid > div,
.maintenance-calculation-preview > div {
    padding: 12px 13px;
    border: 1px solid #e7ebf0;
    border-radius: 10px;
    background: #f8fafc;
}

.maintenance-reading-grid span,
.maintenance-reading-grid strong,
.maintenance-reading-grid small,
.maintenance-calculation-preview span,
.maintenance-calculation-preview strong {
    display: block;
}

.maintenance-reading-grid span,
.maintenance-calculation-preview span {
    color: var(--muted);
    font-size: 10px;
    text-transform: uppercase;
}

.maintenance-reading-grid strong,
.maintenance-calculation-preview strong {
    margin-top: 5px;
    color: #344256;
    font-size: 13px;
}

.maintenance-reading-grid small { margin-top: 4px; color: var(--muted); font-size: 10px; }

.maintenance-program-actions {
    display: grid;
    gap: 8px;
    min-width: 145px;
}

.model-plan-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
    padding: 20px;
}

.model-plan-card {
    display: grid;
    gap: 15px;
    padding: 20px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(23, 32, 51, .05);
}

.model-plan-card.is-inactive { opacity: .72; }

.model-plan-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.model-plan-card-head h3 { margin-top: 4px; font-size: 19px; }
.model-plan-card-head p { margin-top: 6px; color: #445166; font-weight: 700; }

.model-plan-meta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid #e7ebf0;
    border-radius: 10px;
    background: #e7ebf0;
}

.model-plan-meta > div { padding: 11px; background: #f8fafc; }
.model-plan-meta span, .model-plan-meta strong { display: block; }
.model-plan-meta span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.model-plan-meta strong { margin-top: 4px; font-size: 12px; }

.model-plan-link-summary {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 13px;
    border-radius: 10px;
    color: #40506a;
    background: #eef3f8;
    font-size: 11px;
}

.model-plan-materials {
    display: grid;
    gap: 5px;
    min-height: 72px;
    padding: 12px;
    border: 1px dashed #cdd6e1;
    border-radius: 10px;
}

.model-plan-materials span { color: #526075; font-size: 11px; }
.model-plan-materials small, .model-plan-materials.empty { color: var(--muted); font-size: 11px; }

.model-plan-actions { display: flex; flex-wrap: wrap; gap: 8px; }

.model-plan-form-card,
.maintenance-link-form-card {
    max-width: 1180px;
    margin: 0 auto;
}

.form-section-block {
    padding: 23px 24px;
    border-bottom: 1px solid var(--border);
}

.form-section-title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.form-section-title > span {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    flex: 0 0 32px;
    border-radius: 9px;
    color: #fff;
    background: var(--navy-800);
    font-weight: 800;
}

.form-section-title strong,
.form-section-title small { display: block; }
.form-section-title small { margin-top: 3px; color: var(--muted); }
.form-section-title-actions .btn { margin-left: auto; }

.plan-items-editor { display: grid; gap: 10px; }

.plan-item-row {
    display: grid;
    grid-template-columns: minmax(260px, 1.5fr) 150px minmax(220px, 1fr) auto;
    align-items: end;
    gap: 10px;
    padding: 13px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: #f8fafc;
}

.plan-item-row .form-group { margin: 0; }

.plan-item-remove {
    width: 39px;
    height: 39px;
    border: 1px solid #efb8b8;
    border-radius: 9px;
    color: #b91c1c;
    background: #fff;
    font-size: 20px;
}

.form-help-note { margin-top: 10px; color: var(--muted); font-size: 11px; }

.model-link-hero,
.work-order-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 18px;
    padding: 24px 27px;
    border: 1px solid #263654;
    border-radius: 16px;
    color: #fff;
    background: linear-gradient(135deg, #111827, #22304a);
    box-shadow: 0 12px 28px rgba(17, 24, 39, .14);
}

.model-link-hero h2,
.work-order-hero h2 { margin-top: 5px; font-size: 24px; }
.model-link-hero p,
.work-order-hero p { margin-top: 7px; color: #cbd5e1; font-size: 12px; }

.model-link-hero-meta,
.work-order-hero-reading {
    min-width: 210px;
    padding: 14px 16px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    background: rgba(255,255,255,.07);
    text-align: right;
}

.model-link-hero-meta span,
.model-link-hero-meta strong,
.work-order-hero-reading span,
.work-order-hero-reading strong,
.work-order-hero-reading small { display: block; }
.model-link-hero-meta span,
.work-order-hero-reading span,
.work-order-hero-reading small { color: #bdc9d9; font-size: 10px; }
.model-link-hero-meta strong,
.work-order-hero-reading strong { margin-top: 5px; }

.model-link-form { padding: 0 !important; }
.model-link-list { display: grid; }

.model-link-equipment {
    position: relative;
    display: grid;
    grid-template-columns: minmax(220px, .7fr) minmax(0, 1.7fr);
    align-items: center;
    gap: 18px;
    padding: 18px 22px;
    border-bottom: 1px solid #edf0f4;
}

.model-link-equipment.is-configured { background: #fbfefc; }

.model-link-select {
    display: flex !important;
    align-items: center;
    gap: 11px;
    margin: 0 !important;
    cursor: pointer;
}

.model-link-select input { position: absolute; opacity: 0; }
.model-link-select input:checked + .supplier-type-check { border-color: #2563eb; color: #fff; background: #2563eb; }
.model-link-select strong, .model-link-select small { display: block; }
.model-link-select small { margin-top: 4px; color: var(--muted); }

.model-link-fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: 9px;
}
.model-link-fields .form-group { margin: 0; }

.configured-label {
    position: absolute;
    right: 22px;
    bottom: 5px;
    color: #17653f;
    font-size: 9px;
    font-weight: 700;
}

.maintenance-calculation-preview {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
}

.work-order-list { display: grid; }

.work-order-item {
    display: grid;
    grid-template-columns: 190px minmax(260px, 1fr) 180px 180px auto;
    align-items: center;
    gap: 17px;
    padding: 17px 20px;
    border-bottom: 1px solid #edf0f4;
    color: inherit;
    text-decoration: none;
}
.work-order-item:hover { background: #f8fafc; }

.work-order-code strong,
.work-order-code small,
.work-order-main strong,
.work-order-main span,
.work-order-reading span,
.work-order-reading strong,
.work-order-reading small,
.work-order-materials span,
.work-order-materials strong,
.work-order-materials small { display: block; }
.work-order-code strong { margin-top: 4px; }
.work-order-code small,
.work-order-main span,
.work-order-reading span,
.work-order-reading small,
.work-order-materials span,
.work-order-materials small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.work-order-main strong { font-size: 13px; }
.work-order-reading strong, .work-order-materials strong { margin-top: 4px; font-size: 13px; }
.work-order-arrow { color: #8b98aa; font-size: 18px; }

.work-order-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, .65fr);
    gap: 18px;
    margin-bottom: 18px;
}

.work-order-side-card { align-self: start; }
.work-order-facts { display: grid; }
.work-order-facts > div { padding: 14px 18px; border-bottom: 1px solid #edf0f4; }
.work-order-facts > div:last-child { border-bottom: 0; }
.work-order-facts span, .work-order-facts strong, .work-order-facts small { display: block; }
.work-order-facts span { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.work-order-facts strong { margin-top: 5px; font-size: 13px; }
.work-order-facts small { margin-top: 4px; color: var(--muted); font-size: 10px; }

.work-order-completion-card > form { padding: 22px 24px; }
.completed-work-order-card { margin-top: 18px; }

@media (max-width: 1180px) {
    .maintenance-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .maintenance-reading-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .model-plan-grid { grid-template-columns: 1fr; }
    .work-order-item { grid-template-columns: 160px minmax(230px, 1fr) 150px auto; }
    .work-order-materials { display: none; }
    .work-order-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .model-link-equipment { grid-template-columns: 1fr; }
    .model-link-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .plan-item-row { grid-template-columns: 1fr 120px auto; }
    .plan-item-row .form-group:nth-child(3) { grid-column: 1 / -1; }
    .work-order-item { grid-template-columns: 140px 1fr auto; }
    .work-order-reading { display: none; }
}

@media (max-width: 720px) {
    .maintenance-toolbar,
    .model-link-hero,
    .work-order-hero,
    .maintenance-program-heading {
        align-items: stretch;
        flex-direction: column;
    }
    .maintenance-toolbar-actions { flex-direction: column; }
    .maintenance-toolbar .btn,
    .maintenance-toolbar form,
    .maintenance-toolbar form button { width: 100%; }
    .maintenance-summary-grid,
    .maintenance-reading-grid,
    .model-plan-meta,
    .model-link-fields,
    .maintenance-calculation-preview { grid-template-columns: 1fr; }
    .maintenance-program-item { grid-template-columns: 1fr; }
    .maintenance-program-actions { grid-template-columns: 1fr 1fr; }
    .model-link-hero-meta,
    .work-order-hero-reading { min-width: 0; text-align: left; }
    .form-section-title-actions { align-items: flex-start; flex-wrap: wrap; }
    .form-section-title-actions .btn { width: 100%; margin-left: 44px; }
    .plan-item-row { grid-template-columns: 1fr auto; }
    .plan-item-row .form-group { grid-column: 1 / -1; }
    .work-order-item { grid-template-columns: 1fr auto; }
    .work-order-main { grid-column: 1 / -1; grid-row: 2; }
    .work-order-arrow { grid-column: 2; grid-row: 1; }
}

/* ==========================================================================
   SPRINT 4.4 — ORDENS CORRETIVAS, PNEUS E LUBRIFICAÇÃO
   ========================================================================== */

.service-order-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.service-order-summary-card {
    position: relative;
    min-height: 128px;
    display: flex;
    flex-direction: column;
    padding: 19px 20px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(23, 32, 51, .06);
}

.service-order-summary-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #64748b;
}

.service-order-summary-card.info::before { background: #2563eb; }
.service-order-summary-card.warning::before { background: #f59e0b; }
.service-order-summary-card.success::before { background: #16a34a; }
.service-order-summary-card.cost::before { background: #7c3aed; }

.service-order-summary-card span,
.service-order-summary-card strong,
.service-order-summary-card small {
    display: block;
}

.service-order-summary-card span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .35px;
    text-transform: uppercase;
}

.service-order-summary-card strong {
    margin: 13px 0 8px;
    color: var(--navy-900);
    font-size: 27px;
    line-height: 1.1;
}

.service-order-summary-card small {
    margin-top: auto;
    color: var(--muted);
    font-size: 11px;
}

.service-order-filter input { min-width: 280px; }
.service-order-filter select { min-width: 165px; }

.unified-work-order-list .work-order-item {
    grid-template-columns: 150px minmax(260px, 1fr) 165px 155px auto;
}

.work-order-main small {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 11px;
}

.service-order-type {
    display: inline-flex;
    width: fit-content;
    padding: 5px 8px;
    border-radius: 999px;
    color: #25446f;
    background: #eaf1fb;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .3px;
    text-transform: uppercase;
}

.service-order-type.type-corretiva { color: #991b1b; background: #fff0f0; }
.service-order-type.type-troca-de-pneu { color: #92400e; background: #fff6df; }
.service-order-type.type-lubrificacao { color: #166534; background: #eaf8ef; }
.service-order-type.type-preventiva { color: #1d4ed8; background: #eaf1ff; }

.manual-order-form {
    display: grid;
    gap: 18px;
}

.service-order-form-body {
    padding: 22px 24px 24px;
}

.service-order-form-body textarea,
.manual-order-form textarea,
.work-order-completion-card textarea {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid var(--border);
    border-radius: 9px;
    outline: none;
    resize: vertical;
    background: #fff;
}

.service-order-form-body textarea:focus,
.manual-order-form textarea:focus,
.work-order-completion-card textarea:focus {
    border-color: #7da0d5;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .08);
}

.manual-material-rows {
    display: grid;
    gap: 13px;
}

.manual-material-row {
    padding: 15px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fbfcfd;
}

.manual-material-row-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 13px;
}

.manual-material-row-head strong {
    color: var(--navy-900);
    font-size: 13px;
}

.material-remove {
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 8px;
    color: #991b1b;
    background: #fff0f0;
    font-size: 20px;
    line-height: 1;
}

.manual-material-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
}

.manual-material-grid .form-group {
    margin: 0;
}

.material-stock-field,
.material-external-field {
    grid-column: span 2;
}

.material-line-total-field {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.material-line-total {
    min-height: 43px;
    display: flex;
    align-items: center;
    padding: 0 13px;
    border: 1px solid var(--border);
    border-radius: 9px;
    color: #344256;
    background: #fff;
}

.manual-cost-preview {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    margin-top: 15px;
    padding: 14px 16px;
    border-radius: 10px;
    background: #eef3f8;
}

.manual-cost-preview span {
    color: var(--muted);
    font-size: 12px;
}

.manual-cost-preview strong {
    color: var(--navy-900);
    font-size: 20px;
}

.manual-order-actions {
    margin-top: 0;
    padding: 18px 0 0;
}

.manual-work-order-hero {
    grid-template-columns: minmax(0, 1fr) auto;
}

.manual-work-order-cost {
    min-width: 250px;
    padding: 17px 19px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 13px;
    background: rgba(255, 255, 255, .07);
    text-align: right;
}

.manual-work-order-cost span,
.manual-work-order-cost strong,
.manual-work-order-cost small {
    display: block;
}

.manual-work-order-cost span {
    color: #b8c5d8;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.manual-work-order-cost strong {
    margin: 7px 0 5px;
    font-size: 28px;
}

.manual-work-order-cost small {
    color: #aebbd0;
    font-size: 10px;
}

.manual-order-metrics {
    margin-top: 18px;
}

.manual-order-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, .65fr);
    gap: 18px;
    margin-bottom: 18px;
}

.fact-span {
    grid-column: 1 / -1;
}

.service-order-attachments {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    padding: 18px 22px 0;
}

.service-order-attachment {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 13px;
    border: 1px solid var(--border);
    border-radius: 10px;
    color: inherit;
    text-decoration: none;
    background: #fff;
}

.service-order-attachment:hover {
    border-color: #9db7e8;
    background: #f8fafc;
}

.service-order-attachment > span {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    border-radius: 9px;
    color: #1d4ed8;
    background: #eaf1ff;
}

.service-order-attachment div {
    min-width: 0;
}

.service-order-attachment strong,
.service-order-attachment small {
    display: block;
}

.service-order-attachment strong {
    overflow: hidden;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.service-order-attachment small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 10px;
}

.inline-document-form {
    display: grid;
    grid-template-columns: minmax(180px, .5fr) minmax(260px, 1fr) auto;
    align-items: end;
    gap: 12px;
    margin-top: 18px;
    padding: 18px 22px 22px;
    border-top: 1px solid var(--border);
}

.inline-document-form .form-group {
    margin: 0;
}

@media (max-width: 1250px) {
    .service-order-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .unified-work-order-list .work-order-item {
        grid-template-columns: 140px minmax(240px, 1fr) 150px auto;
    }

    .unified-work-order-list .work-order-materials {
        display: none;
    }

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

@media (max-width: 980px) {
    .manual-order-detail-grid {
        grid-template-columns: 1fr;
    }

    .service-order-attachments {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .service-order-summary-grid,
    .manual-material-grid,
    .service-order-attachments,
    .inline-document-form {
        grid-template-columns: 1fr;
    }

    .service-order-filter input,
    .service-order-filter select {
        min-width: 0;
    }

    .unified-work-order-list .work-order-item {
        grid-template-columns: 1fr auto;
    }

    .unified-work-order-list .work-order-main,
    .unified-work-order-list .work-order-reading {
        grid-column: 1 / -1;
    }

    .manual-work-order-hero {
        grid-template-columns: 1fr;
    }

    .manual-work-order-cost {
        min-width: 0;
        text-align: left;
    }

    .material-stock-field,
    .material-external-field,
    .form-span-2 {
        grid-column: auto;
    }

    .manual-cost-preview {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ==========================================================================
   SPRINT 4.5 — FINANCEIRO
   ========================================================================== */

.finance-page {
    display: grid;
    gap: 18px;
    max-width: 1680px;
    margin: 0 auto;
}

.finance-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 27px 30px;
    overflow: hidden;
    border: 1px solid #263654;
    border-radius: 17px;
    color: #fff;
    background:
        radial-gradient(circle at 90% 0%, rgba(56, 189, 248, .16), transparent 32%),
        linear-gradient(135deg, #111827, #1d2b47 65%, #263b60);
    box-shadow: 0 14px 32px rgba(17, 24, 39, .14);
}

.finance-hero h2 {
    margin-top: 5px;
    font-size: 27px;
}

.finance-hero p {
    max-width: 690px;
    margin-top: 8px;
    color: #cad5e4;
    font-size: 13px;
    line-height: 1.55;
}

.finance-hero .eyebrow {
    color: #7dd3fc;
}

.finance-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.finance-summary-card {
    position: relative;
    min-width: 0;
    display: grid;
    gap: 8px;
    padding: 20px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 15px;
    color: var(--text);
    background: #fff;
    box-shadow: 0 7px 20px rgba(23, 32, 51, .06);
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease;
}

.finance-summary-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #64748b;
}

.finance-summary-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 27px rgba(23, 32, 51, .1);
}

.finance-summary-card.danger::before { background: #dc2626; }
.finance-summary-card.success::before { background: #16a34a; }
.finance-summary-card.warning::before { background: #f59e0b; }
.finance-summary-card.info::before { background: #2563eb; }

.finance-summary-card > span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .45px;
    text-transform: uppercase;
}

.finance-summary-card > strong {
    overflow: hidden;
    color: var(--navy-900);
    font-size: clamp(22px, 2vw, 31px);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.finance-summary-card > small {
    color: #7c8797;
    font-size: 11px;
}

.finance-month-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(23, 32, 51, .05);
}

.finance-month-strip > div {
    padding: 17px 20px;
}

.finance-month-strip > div:not(:last-child) {
    border-right: 1px solid var(--border);
}

.finance-month-strip span,
.finance-month-strip strong {
    display: block;
}

.finance-month-strip span {
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
}

.finance-month-strip strong {
    margin-top: 5px;
    color: var(--navy-900);
    font-size: 20px;
}

.positive-value { color: #15803d !important; }
.negative-value { color: #b91c1c !important; }

.finance-two-columns,
.finance-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.finance-list {
    display: grid;
}

.finance-list-item {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid #edf0f4;
    color: var(--text);
    text-decoration: none;
}

.finance-list-item:last-child { border-bottom: 0; }
.finance-list-item:hover { background: #f8fafc; }
.finance-list-item.overdue { background: #fffafa; }

.finance-list-item div {
    min-width: 0;
}

.finance-list-item div strong,
.finance-list-item div small {
    display: block;
}

.finance-list-item div strong {
    overflow: hidden;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.finance-list-item div small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
}

.finance-list-item > strong {
    color: var(--navy-900);
    font-size: 13px;
    white-space: nowrap;
}

.finance-type-icon {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    font-weight: 900;
}

.finance-type-icon.payable {
    color: #991b1b;
    background: #feecec;
}

.finance-type-icon.receivable {
    color: #166534;
    background: #e8f7ed;
}

.finance-filter-bar {
    flex-wrap: wrap;
}

.finance-filter-bar input[type="date"] {
    flex: 0 1 170px;
}

.finance-filter-bar select {
    min-width: 160px;
}

.finance-list-summary {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 12px 24px;
    border-bottom: 1px solid var(--border);
    color: var(--muted);
    background: #fff;
    font-size: 12px;
}

.finance-list-summary strong {
    color: var(--navy-900);
    font-size: 16px;
}

.finance-status {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    border-radius: 999px;
    color: #475569;
    background: #edf2f7;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.finance-status.status-em-aberto {
    color: #1d4ed8;
    background: #eaf1ff;
}

.finance-status.status-vencida {
    color: #991b1b;
    background: #feecec;
}

.finance-status.status-paga,
.finance-status.status-recebida {
    color: #166534;
    background: #e8f7ed;
}

.finance-status.status-cancelada {
    color: #64748b;
    background: #edf1f5;
}

.finance-form-card {
    max-width: 1120px;
    margin: 0 auto;
}

.finance-form-card textarea,
.finance-settlement-card textarea {
    width: 100%;
    padding: 12px 13px;
    border: 1px solid var(--border);
    border-radius: 9px;
    outline: none;
    resize: vertical;
    background: #fff;
}

.money-input-wrap {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: #fff;
}

.money-input-wrap:focus-within {
    border-color: #7fa0d2;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .08);
}

.money-input-wrap span {
    padding: 0 0 0 13px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.money-input-wrap input {
    border: 0 !important;
    box-shadow: none !important;
}

.field-muted {
    opacity: .68;
}

.finance-detail-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 25px 28px;
    border: 1px solid #d9e2ec;
    border-radius: 16px;
    background: linear-gradient(135deg, #fff, #f5f8fc);
    box-shadow: 0 8px 22px rgba(23, 32, 51, .06);
}

.finance-detail-hero.payable { border-left: 5px solid #dc2626; }
.finance-detail-hero.receivable { border-left: 5px solid #16a34a; }

.finance-detail-hero > div:first-child > span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.finance-detail-hero h2 {
    margin-top: 5px;
    font-size: 25px;
}

.finance-detail-hero p {
    margin-top: 6px;
    color: var(--muted);
    font-size: 13px;
}

.finance-detail-value {
    display: grid;
    justify-items: end;
    gap: 5px;
    text-align: right;
}

.finance-detail-value > span:first-child {
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
}

.finance-detail-value > strong {
    color: var(--navy-900);
    font-size: 27px;
}

.finance-detail-grid {
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, .75fr);
}

.finance-settlement-card > form {
    padding: 20px;
}

.settlement-success,
.settlement-cancelled {
    min-height: 270px;
    display: grid;
    place-content: center;
    justify-items: center;
    padding: 28px;
    text-align: center;
}

.settlement-success > span,
.settlement-cancelled > span {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    margin-bottom: 13px;
    border-radius: 50%;
    font-size: 24px;
    font-weight: 900;
}

.settlement-success > span {
    color: #166534;
    background: #e8f7ed;
}

.settlement-cancelled > span {
    color: #64748b;
    background: #edf1f5;
}

.settlement-success p,
.settlement-cancelled p {
    margin-top: 7px;
    color: var(--muted);
    font-size: 12px;
}

.settlement-success .btn {
    margin-top: 14px;
}

.barcode-text {
    overflow-wrap: anywhere;
    font-family: Consolas, "Courier New", monospace;
    font-size: 12px;
}

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

@media (max-width: 980px) {
    .finance-two-columns,
    .finance-detail-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .finance-hero,
    .finance-detail-hero {
        align-items: stretch;
        flex-direction: column;
    }

    .finance-hero .heading-actions {
        flex-direction: column;
    }

    .finance-detail-value {
        justify-items: start;
        text-align: left;
    }

    .finance-month-strip {
        grid-template-columns: 1fr;
    }

    .finance-month-strip > div:not(:last-child) {
        border-right: 0;
        border-bottom: 1px solid var(--border);
    }
}

@media (max-width: 580px) {
    .finance-summary-grid {
        grid-template-columns: 1fr;
    }

    .finance-list-item {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .finance-list-item > strong {
        grid-column: 2;
    }

    .finance-list-summary {
        align-items: flex-end;
        flex-direction: column;
    }
}

/* ==========================================================================
   SPRINT 4.6 — MODELOS, FLUIDOS, PNEUS E FINANCEIRO DA NF-e
   ========================================================================== */
.model-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:20px}.model-card{display:grid;gap:9px;padding:20px;border:1px solid var(--border);border-radius:14px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 6px 17px rgba(23,32,51,.05);transition:.18s}.model-card:hover{transform:translateY(-2px);border-color:#aebed1;box-shadow:0 12px 24px rgba(23,32,51,.09)}.model-card-head{display:flex;align-items:center;justify-content:space-between}.model-card-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;color:#25446f;background:#eaf1fb;font-size:20px}.model-card h3{font-size:18px}.model-card>small{color:var(--muted);line-height:1.5}.model-card-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:10px 0;border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4}.model-card-metrics span{display:grid;gap:2px;color:var(--muted);font-size:10px;text-align:center}.model-card-metrics strong{color:var(--navy-900);font-size:17px}.model-form-page{display:grid;gap:18px;max-width:1320px;margin:0 auto}.service-order-form-body{padding:22px 24px}.fluid-model-rows,.position-model-rows{display:grid;gap:12px}.fluid-model-row{border:1px solid var(--border);border-radius:12px;background:#fbfcfe;overflow:hidden}.fluid-row-title{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:1px solid var(--border);background:#f4f7fa}.row-remove{width:30px;height:30px;border:0;border-radius:8px;color:#9a2929;background:#ffeaea;font-size:20px}.fluid-model-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:15px}.inline-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 12px}.inline-heading strong,.inline-heading small{display:block}.inline-heading small{margin-top:4px;color:var(--muted)}.position-model-row{display:grid;grid-template-columns:130px 1.4fr 1fr 1fr auto;align-items:end;gap:10px;padding:12px;border:1px solid var(--border);border-radius:11px;background:#fbfcfe}.position-model-row .form-group{margin:0}.layout-summary{min-height:44px;display:flex;align-items:center;padding:11px 13px;border:1px dashed #bdc9d7;border-radius:9px;color:#425066;background:#f8fafc}.model-detail-hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:24px;padding:26px;margin-bottom:18px;background:linear-gradient(135deg,#fff,#f5f8fc)}.model-detail-hero h2{margin:6px 0;font-size:27px}.model-detail-hero p{color:var(--muted)}.model-detail-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.model-detail-summary>div{padding:12px;border:1px solid var(--border);border-radius:10px;background:#fff}.model-detail-summary span,.model-detail-summary strong{display:block}.model-detail-summary span{color:var(--muted);font-size:10px;text-transform:uppercase}.model-detail-summary strong{margin-top:5px}.model-detail-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;margin-bottom:18px}.model-fluid-list{display:grid}.model-fluid-item{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(100px,.55fr));align-items:center;gap:12px;padding:15px 19px;border-bottom:1px solid #edf0f4}.model-fluid-item:last-child{border-bottom:0}.model-fluid-item span,.model-fluid-item strong{display:block}.model-fluid-item span{color:var(--muted);font-size:11px}.model-fluid-item>div:not(:first-child) strong{margin-top:4px}.tire-layout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:18px}.tire-position-card{display:grid;gap:4px;padding:13px;border:1px solid var(--border);border-radius:10px;background:#fbfcfe}.tire-position-card>span{width:max-content;padding:4px 7px;border-radius:6px;color:#25446f;background:#eaf1fb;font-size:10px;font-weight:800}.tire-position-card small{color:var(--muted)}.equipment-tire-mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:16px}.equipment-tire-mini{display:grid;gap:4px;padding:12px;border:1px dashed #c9d2df;border-radius:10px;background:#fafbfd}.equipment-tire-mini.has-tire{border-style:solid;border-color:#8fbaa4;background:#f1faf5}.equipment-tire-mini span{color:var(--muted);font-size:10px}.equipment-tire-mini small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.tire-control-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.65fr);gap:18px;margin-bottom:18px}.tire-equipment-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px}.tire-equipment-position{display:grid;gap:12px;padding:15px;border:1px dashed #c8d2df;border-radius:12px;background:#fafbfd}.tire-equipment-position.has-tire{border-style:solid;border-color:#80b79a;background:#f4fbf7}.tire-position-label{display:grid;gap:3px}.tire-position-label>span{width:max-content;padding:4px 7px;border-radius:6px;color:#25446f;background:#eaf1fb;font-size:10px;font-weight:800}.tire-position-label small,.tire-current small{color:var(--muted);font-size:11px}.tire-current{display:grid;gap:4px;padding-top:10px;border-top:1px solid rgba(100,130,110,.2)}.tire-empty{color:var(--muted);font-size:12px}.tire-remove-form{display:grid;grid-template-columns:1fr 100px auto;gap:6px;margin-top:8px}.tire-remove-form input{min-width:0;padding:8px;border:1px solid var(--border);border-radius:8px}.oil-plan-summary{min-height:44px;padding:11px 13px;border:1px dashed #b9c7d9;border-radius:9px;color:#425066;background:#f8fafc;line-height:1.45}.nfe-payment-panel{margin-top:18px}.nfe-installment-rows{display:grid;gap:9px;margin-top:12px}.nfe-installment-row{display:grid;grid-template-columns:38px 180px 160px 1fr;align-items:end;gap:10px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#fbfcfe}.nfe-installment-row .form-group{margin:0}.installment-number{width:32px;height:32px;display:grid;place-items:center;align-self:center;border-radius:50%;color:#25446f;background:#eaf1fb;font-weight:800}.nfe-installment-total{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:12px;padding:12px;border-radius:10px;background:#f5f7fa}.nfe-installment-total span{color:var(--muted)}.nfe-installment-total strong.is-different{color:#b91c1c}.nfe-financial-summary{margin-bottom:18px}
@media(max-width:1100px){.model-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fluid-model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.model-detail-grid,.tire-control-grid{grid-template-columns:1fr}.equipment-tire-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nfe-installment-row{grid-template-columns:38px 1fr 1fr}.nfe-installment-row .form-group:last-child{grid-column:2/-1}}
@media(max-width:720px){.model-card-grid,.tire-equipment-layout,.tire-layout-grid,.equipment-tire-mini-grid{grid-template-columns:1fr}.model-detail-hero,.model-detail-summary,.fluid-model-grid{grid-template-columns:1fr}.position-model-row,.model-fluid-item,.nfe-installment-row{grid-template-columns:1fr}.position-model-row .row-remove{justify-self:end}.nfe-installment-row .form-group:last-child{grid-column:auto}.tire-remove-form{grid-template-columns:1fr}}

.fuel-capacity-warning { color: #b45309 !important; font-weight: 700; }


.tire-layout-preview {
    display: grid;
    gap: 10px;
    min-height: 90px;
    padding: 16px;
    border: 1px dashed var(--border);
    border-radius: 12px;
    background: #f8fafc;
}
.tire-layout-preview-empty { display: grid; place-items: center; min-height: 56px; color: var(--muted); font-size: 13px; }
.tire-preview-axle { display: grid; grid-template-columns: 105px 1fr; align-items: center; gap: 14px; }
.tire-preview-axle-name { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.tire-preview-wheels { display: flex; justify-content: space-between; gap: 8px; padding: 7px 18px; border-radius: 9px; background: #e7edf4; }
.tire-preview-wheel { min-width: 38px; padding: 8px 7px; border: 2px solid #344256; border-radius: 8px; color: #fff; background: #344256; font-size: 10px; font-weight: 800; text-align: center; }
@media (max-width: 620px) { .tire-preview-axle { grid-template-columns: 1fr; gap: 5px; } .tire-preview-wheels { padding: 7px; flex-wrap: wrap; } }

/* ==========================================================================
   SPRINT 4.7 — PAGAMENTO E CONCILIAÇÃO DE ABASTECIMENTOS
   ========================================================================== */

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

.fueling-summary-warning::before {
    background: #dc8a09;
}

.fueling-summary-warning {
    background: linear-gradient(135deg, #fffaf0, #fff);
}

.fueling-reconciled-alert {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border: 1px solid #b7ccec;
    color: #23466f;
    background: #f2f7ff;
}

.fueling-reconciled-alert strong,
.fueling-reconciled-alert p {
    display: block;
}

.fueling-reconciled-alert p {
    margin-top: 5px;
    color: #59718e;
    font-size: 12px;
}

.payment-condition-grid,
.nfe-destination-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
}

.payment-condition-card,
.nfe-destination-card {
    position: relative;
    display: flex !important;
    align-items: center;
    gap: 13px;
    min-height: 86px;
    margin: 0 !important;
    padding: 15px;
    border: 1px solid var(--border);
    border-radius: 12px;
    cursor: pointer;
    background: #fff;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.payment-condition-card:hover,
.nfe-destination-card:hover {
    border-color: #a8b7cc;
    box-shadow: 0 6px 18px rgba(23, 32, 51, .06);
}

.payment-condition-card:has(input:checked),
.nfe-destination-card:has(input:checked) {
    border-color: #2f65bd;
    background: #f4f8ff;
    box-shadow: 0 0 0 2px rgba(47, 101, 189, .08);
}

.payment-condition-card input,
.nfe-destination-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.payment-condition-icon,
.nfe-destination-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    flex: 0 0 42px;
    border-radius: 11px;
    color: #264b7b;
    background: #e9f0f8;
    font-size: 17px;
    font-weight: 900;
}

.payment-condition-card strong,
.payment-condition-card small,
.nfe-destination-card strong,
.nfe-destination-card small {
    display: block;
}

.payment-condition-card strong,
.nfe-destination-card strong {
    font-size: 13px;
}

.payment-condition-card small,
.nfe-destination-card small {
    margin-top: 5px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.45;
}

.nfe-destination-card.is-disabled {
    opacity: .58;
    cursor: not-allowed;
    background: #f7f8fa;
}

.fueling-cash-fields {
    margin-top: 18px;
    padding: 17px;
    border: 1px dashed #cad3df;
    border-radius: 12px;
    background: #f8fafc;
}

.fueling-cash-fields .form-group {
    max-width: 520px;
    margin-bottom: 0;
}

.fueling-credit-note {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    margin-top: 18px;
    padding: 17px;
    border: 1px solid #efd28e;
    border-radius: 12px;
    background: #fffaf0;
}

.fueling-credit-note > span {
    padding: 7px 10px;
    border-radius: 999px;
    color: #805300;
    background: #ffe8b6;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.fueling-credit-note strong,
.fueling-credit-note p {
    display: block;
}

.fueling-credit-note p {
    margin-top: 5px;
    color: #806b43;
    font-size: 12px;
    line-height: 1.5;
}

.fueling-pending-stations {
    display: grid;
}

.fueling-pending-station {
    display: grid;
    grid-template-columns: minmax(240px, 1.4fr) minmax(150px, .6fr) minmax(210px, .8fr);
    align-items: center;
    gap: 18px;
    padding: 17px 22px;
    border-top: 1px solid #edf0f4;
}

.fueling-pending-station:first-child {
    border-top: 0;
}

.fueling-pending-station span,
.fueling-pending-station strong,
.fueling-pending-station small,
.fueling-pending-station a {
    display: block;
}

.fueling-pending-station span {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .35px;
    text-transform: uppercase;
}

.fueling-pending-station strong {
    margin-top: 5px;
    color: #27364a;
    font-size: 14px;
}

.fueling-pending-station small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
}

.fueling-pending-value {
    text-align: right;
}

.fueling-pending-value strong {
    color: #9a5f06;
    font-size: 18px;
}

.fueling-pending-value a,
.fueling-invoice-link {
    margin-top: 5px;
    color: #1d4ed8;
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
}

.fuel-payment-badge {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.fuel-payment-pago_avista {
    color: #17653f;
    background: #e3f5ec;
}

.fuel-payment-aguardando_nfe {
    color: #8a5708;
    background: #fff0ce;
}

.fuel-payment-conciliado_nfe {
    color: #1d4ed8;
    background: #eaf1ff;
}

.nfe-destination-panel,
.nfe-fueling-reconciliation {
    margin-bottom: 18px;
}

.nfe-destination-grid {
    padding: 20px 22px 23px;
}

.nfe-fueling-comparison {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    border-bottom: 1px solid var(--border);
    background: var(--border);
}

.nfe-fueling-comparison > div {
    padding: 17px 18px;
    background: #f8fafc;
}

.nfe-fueling-comparison span,
.nfe-fueling-comparison strong {
    display: block;
}

.nfe-fueling-comparison span {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.nfe-fueling-comparison strong {
    margin-top: 7px;
    color: #27364a;
    font-size: 19px;
}

.nfe-fueling-difference.is-matched {
    background: #effaf4;
}

.nfe-fueling-difference.is-matched strong {
    color: #17653f;
}

.nfe-fueling-difference.is-different {
    background: #fff7e8;
}

.nfe-fueling-difference.is-different strong {
    color: #a35f00;
}

.nfe-fueling-list {
    max-height: 520px;
    overflow-y: auto;
    padding: 12px 18px;
}

.nfe-fueling-item {
    position: relative;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin: 0 !important;
    padding: 13px 10px;
    border-bottom: 1px solid #edf0f4;
    cursor: pointer;
}

.nfe-fueling-item:last-child {
    border-bottom: 0;
}

.nfe-fueling-item:hover {
    background: #f8fafc;
}

.nfe-fueling-item input {
    position: absolute;
    opacity: 0;
}

.nfe-fueling-check {
    width: 23px;
    height: 23px;
    display: grid;
    place-items: center;
    border: 1px solid #b8c3d0;
    border-radius: 6px;
    color: transparent;
    background: #fff;
    font-size: 12px;
    font-weight: 900;
}

.nfe-fueling-item input:checked + .nfe-fueling-check {
    border-color: #2563eb;
    color: #fff;
    background: #2563eb;
}

.nfe-fueling-main strong,
.nfe-fueling-main small {
    display: block;
}

.nfe-fueling-main strong {
    color: #2f3d51;
    font-size: 12px;
}

.nfe-fueling-main small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 10px;
}

.nfe-fueling-value {
    color: #172033;
    font-size: 13px;
    white-space: nowrap;
}

.nfe-fueling-divergence-confirm {
    margin: 0 18px 18px;
    padding: 14px;
    border: 1px solid #efcc82;
    border-radius: 10px;
    background: #fff9ed;
}

.nfe-fueling-divergence-confirm small {
    display: block;
    margin-top: 4px;
    color: #806b43;
    font-size: 11px;
}

@media (max-width: 1380px) {
    .fueling-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .nfe-fueling-comparison {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .payment-condition-grid,
    .nfe-destination-grid,
    .fueling-summary-grid {
        grid-template-columns: 1fr;
    }

    .fueling-reconciled-alert,
    .fueling-credit-note {
        align-items: stretch;
        grid-template-columns: 1fr;
        flex-direction: column;
    }

    .fueling-reconciled-alert .btn {
        width: 100%;
    }

    .fueling-pending-station {
        grid-template-columns: 1fr;
        gap: 11px;
    }

    .fueling-pending-value {
        text-align: left;
    }

    .nfe-fueling-comparison {
        grid-template-columns: 1fr;
    }

    .nfe-fueling-item {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .nfe-fueling-value {
        grid-column: 2;
    }
}

/* ==========================================================================
   SPRINT 4.8 — IMPORTAÇÃO E EXPORTAÇÃO DE CADASTROS POR EXCEL
   ========================================================================== */

.heading-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
}

.spreadsheet-hero,
.import-result-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
    padding: 28px 30px;
    border: 1px solid #263654;
    border-radius: 18px;
    color: white;
    background:
        radial-gradient(circle at 88% 18%, rgba(240, 165, 27, .2), transparent 30%),
        linear-gradient(135deg, #111827, #22304a);
    box-shadow: 0 15px 34px rgba(17, 24, 39, .15);
}

.spreadsheet-hero h2,
.import-result-hero h2 {
    margin: 5px 0 8px;
    font-size: 27px;
}

.spreadsheet-hero p,
.import-result-hero p {
    max-width: 780px;
    color: #cbd5e1;
    line-height: 1.55;
}

.spreadsheet-hero .btn {
    flex: 0 0 auto;
    color: #111827;
    background: var(--orange);
}

.spreadsheet-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.spreadsheet-card {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 15px;
    padding: 21px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: white;
    box-shadow: 0 7px 20px rgba(23, 32, 51, .06);
}

.spreadsheet-card-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: #1e4f87;
    background: #eaf1fb;
    font-size: 21px;
    font-weight: 900;
}

.spreadsheet-card-body h3 {
    font-size: 17px;
}

.spreadsheet-card-body p {
    margin-top: 6px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.spreadsheet-card-body small {
    display: block;
    margin-top: 9px;
    color: #8490a0;
    font-size: 11px;
}

.spreadsheet-card-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 15px;
    border-top: 1px solid #edf0f4;
}

.spreadsheet-import-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(310px, .65fr);
    gap: 18px;
}

.spreadsheet-upload-card > form {
    padding: 24px;
}

.spreadsheet-dropzone {
    min-height: 290px;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 8px;
    padding: 35px;
    border: 2px dashed #bdc9d8;
    border-radius: 14px;
    cursor: pointer;
    background: #f8fafc;
    text-align: center;
    transition: border-color .18s ease, background .18s ease;
}

.spreadsheet-dropzone:hover {
    border-color: #386ee8;
    background: #f3f7ff;
}

.spreadsheet-dropzone-icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin-bottom: 7px;
    border-radius: 15px;
    color: #1d4ed8;
    background: #eaf1ff;
    font-size: 25px;
    font-weight: 900;
}

.spreadsheet-dropzone strong,
.spreadsheet-dropzone small {
    display: block;
}

.spreadsheet-dropzone small {
    color: var(--muted);
}

.spreadsheet-dropzone input {
    max-width: 100%;
    margin-top: 16px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: white;
}

.spreadsheet-guide-content {
    display: grid;
    gap: 13px;
    padding: 22px;
}

.spreadsheet-guide-step {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 11px;
    align-items: start;
}

.spreadsheet-guide-step > span {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #31527d;
    font-size: 12px;
    font-weight: 800;
}

.spreadsheet-guide-step strong,
.spreadsheet-guide-step small {
    display: block;
}

.spreadsheet-guide-step strong {
    font-size: 13px;
}

.spreadsheet-guide-step small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.45;
}

.import-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.import-summary-card {
    position: relative;
    overflow: hidden;
    padding: 19px 20px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: white;
    box-shadow: 0 6px 18px rgba(23, 32, 51, .05);
}

.import-summary-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #94a3b8;
}

.import-summary-card.success::before { background: #16a34a; }
.import-summary-card.info::before { background: #2563eb; }
.import-summary-card.danger::before { background: #dc2626; }

.import-summary-card span,
.import-summary-card strong {
    display: block;
}

.import-summary-card span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.import-summary-card strong {
    margin-top: 9px;
    color: var(--navy-900);
    font-size: 31px;
}

.import-preview-table table {
    min-width: 880px;
}

.import-status {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
}

.import-status-novo { color: #166534; background: #e7f8ee; }
.import-status-atualizar { color: #1d4ed8; background: #eaf1ff; }
.import-status-erro { color: #991b1b; background: #fff0f0; }

.import-error-line {
    margin: 3px 0;
    color: #b91c1c;
    font-size: 12px;
}

.import-ok-line {
    color: #16824f;
    font-size: 12px;
    font-weight: 600;
}

.import-table-note {
    padding: 13px 18px;
    color: var(--muted);
    background: #f8fafc;
    font-size: 12px;
    text-align: center;
}

.import-confirm-card {
    margin-top: 18px;
}

.import-strategy-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.import-strategy-option {
    display: flex;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 11px;
    cursor: pointer;
    background: #fff;
}

.import-strategy-option:has(input:checked) {
    border-color: #2563eb;
    background: #f3f7ff;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, .08);
}

.import-strategy-option input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.import-strategy-option strong,
.import-strategy-option small {
    display: block;
}

.import-strategy-option small {
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.import-result-hero {
    justify-content: flex-start;
}

.import-result-icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    flex: 0 0 62px;
    border-radius: 50%;
    color: #166534;
    background: #dcfce7;
    font-size: 29px;
    font-weight: 900;
}

.import-result-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 18px;
}

@media (max-width: 1050px) {
    .spreadsheet-cards,
    .spreadsheet-import-grid {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 720px) {
    .spreadsheet-hero,
    .import-result-hero {
        align-items: stretch;
        flex-direction: column;
        padding: 23px 20px;
    }

    .spreadsheet-hero .btn {
        width: 100%;
    }

    .spreadsheet-card-actions,
    .import-result-actions,
    .heading-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .spreadsheet-card-actions .btn,
    .import-result-actions .btn,
    .heading-actions .btn {
        width: 100%;
    }

    .import-summary-grid,
    .import-strategy-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   SPRINT 4.9 — MEDIÇÕES, HORÍMETROS E FATURAMENTO POR OBRA
   ========================================================================== */

.measurement-summary-grid,
.measurement-result-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.measurement-summary-card,
.measurement-result-grid > article {
    position: relative;
    min-width: 0;
    padding: 20px 21px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(23, 32, 51, .06);
}

.measurement-summary-card::before,
.measurement-result-grid > article::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: #64748b;
}

.measurement-summary-card.success::before { background: #16a34a; }
.measurement-summary-card.warning::before { background: #f59e0b; }
.measurement-summary-card.info::before { background: #2563eb; }

.measurement-summary-card span,
.measurement-summary-card strong,
.measurement-summary-card small,
.measurement-result-grid span,
.measurement-result-grid strong,
.measurement-result-grid small {
    display: block;
}

.measurement-summary-card span,
.measurement-result-grid span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .45px;
    text-transform: uppercase;
}

.measurement-summary-card strong,
.measurement-result-grid strong {
    margin-top: 12px;
    color: var(--navy-900);
    font-size: clamp(25px, 2.2vw, 34px);
    line-height: 1.05;
}

.measurement-summary-card small,
.measurement-result-grid small {
    margin-top: 8px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.4;
}

.measurement-filter-bar {
    flex-wrap: wrap;
}

.measurement-filter-bar input[type="date"] {
    flex: 0 1 160px;
}

.measurement-filter-bar select {
    min-width: 175px;
}

.measurement-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 10px;
    border-radius: 999px;
    color: #334155;
    background: #e9eef4;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.measurement-status-rascunho {
    color: #92400e;
    background: #fff3d6;
}

.measurement-status-fechada {
    color: #166534;
    background: #e5f7ec;
}

.measurement-status-cancelada {
    color: #64748b;
    background: #edf1f5;
}

.measurement-form-card,
.measurement-reading-card {
    max-width: 1050px;
    margin: 0 auto;
}

.measurement-form-card textarea,
.measurement-reading-card textarea {
    width: 100%;
    padding: 13px 14px;
    resize: vertical;
    border: 1px solid var(--border);
    border-radius: 9px;
    outline: none;
    background: #fff;
}

.measurement-mode-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.measurement-mode-option {
    position: relative;
    display: flex !important;
    align-items: flex-start;
    gap: 12px;
    min-height: 96px;
    margin: 0 !important;
    padding: 17px;
    border: 1px solid var(--border);
    border-radius: 12px;
    cursor: pointer;
    background: #fff;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.measurement-mode-option:hover,
.measurement-mode-option:has(input:checked) {
    border-color: #2563eb;
    background: #f5f8ff;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, .06);
}

.measurement-mode-option input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: #2563eb;
}

.measurement-mode-option strong,
.measurement-mode-option small {
    display: block;
}

.measurement-mode-option strong {
    color: #27364b;
    font-size: 14px;
}

.measurement-mode-option small {
    margin-top: 6px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
}

.calculated-input {
    min-height: 45px;
    display: flex;
    align-items: center;
    padding: 12px 14px;
    border: 1px dashed #b8c4d3;
    border-radius: 9px;
    color: #1d4ed8;
    background: #f5f8ff;
    font-size: 17px;
    font-weight: 800;
}

.measurement-info-box {
    padding: 16px 17px;
    border: 1px solid #c9d7ea;
    border-radius: 11px;
    color: #344256;
    background: #f6f9fd;
}

.measurement-info-box strong,
.measurement-info-box p {
    display: block;
}

.measurement-info-box p {
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
}

.measurement-contract-chip {
    padding: 8px 11px;
    border-radius: 999px;
    color: #1d4ed8;
    background: #eaf1ff;
    font-size: 12px;
    font-weight: 800;
}

.measurement-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin-bottom: 18px;
    padding: 25px 28px;
    overflow: hidden;
    border: 1px solid #263654;
    border-radius: 17px;
    color: #fff;
    background:
        radial-gradient(circle at 90% 15%, rgba(240, 165, 27, .20), transparent 31%),
        linear-gradient(135deg, #111827, #22304a);
    box-shadow: 0 13px 30px rgba(17, 24, 39, .15);
}

.measurement-hero h2 {
    margin-top: 5px;
    font-size: clamp(23px, 2.4vw, 32px);
}

.measurement-hero p {
    margin-top: 7px;
    color: #cbd5e1;
    font-size: 13px;
}

.measurement-hero-actions,
.measurement-equipment-actions,
.measurement-footer-actions > div,
.measurement-reading-actions {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}

.measurement-hero .measurement-status-fechada {
    color: #d9fbe5;
    background: rgba(22, 163, 74, .22);
    border: 1px solid rgba(74, 222, 128, .3);
}

.measurement-hero .measurement-status-rascunho {
    color: #ffe7a8;
    background: rgba(245, 158, 11, .18);
    border: 1px solid rgba(251, 191, 36, .28);
}

.measurement-hero .measurement-status-cancelada {
    color: #d6deea;
    background: rgba(148, 163, 184, .16);
    border: 1px solid rgba(203, 213, 225, .18);
}

.measurement-result-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.measurement-result-grid > article::before { background: #64748b; }
.measurement-result-grid > article:nth-child(2)::before { background: #2563eb; }
.measurement-result-grid > article:nth-child(3)::before { background: #f59e0b; }
.measurement-result-grid > article:nth-child(4)::before { background: #dc2626; }
.measurement-result-grid > article.measurement-total-card::before { background: #16a34a; }

.measurement-result-grid strong {
    font-size: clamp(21px, 1.8vw, 29px);
}

.measurement-total-card {
    background: linear-gradient(180deg, #fff, #f4fbf7) !important;
}

.measurement-rule-card {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
    padding: 16px 18px;
    border: 1px solid #cbd7e7;
    border-radius: 13px;
    color: #334155;
    background: #f7faff;
}

.measurement-rule-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    color: #1d4ed8;
    background: #e6efff;
    font-size: 14px;
    font-weight: 900;
}

.measurement-rule-card p {
    margin-top: 5px;
    color: #64748b;
    font-size: 12px;
    line-height: 1.55;
}

.measurement-note,
.measurement-equipment-note {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    color: #536176;
    background: #fff;
    font-size: 12px;
    line-height: 1.5;
}

.measurement-equipment-list {
    display: grid;
    gap: 16px;
}

.measurement-equipment-card {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 23px rgba(23, 32, 51, .06);
}

.measurement-equipment-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border-bottom: 1px solid #e9edf2;
    background: #fbfcfd;
}

.measurement-equipment-identification {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.measurement-equipment-icon {
    width: 43px;
    height: 43px;
    display: grid;
    place-items: center;
    flex: 0 0 43px;
    border-radius: 11px;
    color: #9a6508;
    background: #fff3d4;
    font-size: 18px;
}

.measurement-equipment-identification h3 {
    color: #28374b;
    font-size: 16px;
}

.measurement-equipment-identification p {
    margin-top: 5px;
    color: var(--muted);
    font-size: 11px;
}

.measurement-equipment-actions form,
.measurement-footer-actions form,
.measurement-reading-actions form {
    margin: 0;
}

.measurement-equipment-metrics {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    border-bottom: 1px solid #e9edf2;
}

.measurement-equipment-metrics > div {
    min-width: 0;
    padding: 15px 17px;
}

.measurement-equipment-metrics > div:not(:last-child) {
    border-right: 1px solid #e9edf2;
}

.measurement-equipment-metrics span,
.measurement-equipment-metrics strong,
.measurement-calculation-strip span,
.measurement-calculation-strip strong {
    display: block;
}

.measurement-equipment-metrics span,
.measurement-calculation-strip span {
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.measurement-equipment-metrics strong {
    margin-top: 6px;
    color: #334155;
    font-size: 14px;
}

.measurement-calculation-strip {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1.15fr;
    align-items: center;
    gap: 13px;
    padding: 16px 20px;
    background: #f8fafc;
}

.measurement-calculation-strip > div {
    min-width: 0;
}

.measurement-calculation-strip strong {
    margin-top: 5px;
    color: #334155;
    font-size: 15px;
}

.calculation-symbol {
    color: #94a3b8 !important;
    font-size: 19px !important;
    font-weight: 800 !important;
}

.calculation-total {
    padding: 11px 13px;
    border-radius: 10px;
    background: #e9f8ef;
}

.calculation-total span { color: #166534; }
.calculation-total strong { color: #166534; font-size: 18px; }

.measurement-readings-table {
    overflow-x: auto;
    border-top: 1px solid #e9edf2;
}

.measurement-readings-table table {
    width: 100%;
    min-width: 820px;
    border-collapse: collapse;
}

.measurement-readings-table th,
.measurement-readings-table td {
    padding: 12px 16px;
    border-bottom: 1px solid #edf0f4;
    text-align: left;
    vertical-align: middle;
}

.measurement-readings-table th {
    color: #718096;
    background: #fbfcfd;
    font-size: 10px;
    letter-spacing: .35px;
    text-transform: uppercase;
}

.measurement-readings-table td {
    color: #4a586d;
    font-size: 12px;
}

.measurement-readings-table tbody tr:last-child td {
    border-bottom: 0;
}

.table-button-link {
    padding: 0;
    border: 0;
    color: #b91c1c;
    background: transparent;
    font-size: 12px;
    font-weight: 700;
}

.measurement-empty-reading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 17px 20px;
    border-top: 1px dashed #d6dde7;
    color: var(--muted);
    background: #fbfcfd;
    font-size: 12px;
}

.measurement-empty-reading a {
    color: #1d4ed8;
    font-weight: 700;
    text-decoration: none;
}

.measurement-equipment-note {
    margin: 0;
    border-width: 1px 0 0;
    border-radius: 0;
    background: #fffdf7;
}

.measurement-footer-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 19px;
    padding-top: 18px;
    border-top: 1px solid var(--border);
}

@media (max-width: 1350px) {
    .measurement-result-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .measurement-equipment-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .measurement-equipment-metrics > div:nth-child(3) {
        border-right: 0;
    }

    .measurement-equipment-metrics > div:nth-child(-n+3) {
        border-bottom: 1px solid #e9edf2;
    }
}

@media (max-width: 1050px) {
    .measurement-summary-grid {
        grid-template-columns: 1fr;
    }

    .measurement-calculation-strip {
        grid-template-columns: 1fr 1fr;
    }

    .calculation-symbol {
        display: none !important;
    }

    .calculation-total {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .measurement-mode-grid,
    .measurement-result-grid,
    .measurement-equipment-metrics {
        grid-template-columns: 1fr;
    }

    .measurement-hero,
    .measurement-equipment-header,
    .measurement-footer-actions,
    .measurement-empty-reading {
        align-items: stretch;
        flex-direction: column;
    }

    .measurement-hero-actions,
    .measurement-equipment-actions,
    .measurement-footer-actions > div {
        align-items: stretch;
        flex-direction: column;
    }

    .measurement-hero-actions .btn,
    .measurement-equipment-actions .btn,
    .measurement-equipment-actions form,
    .measurement-equipment-actions button,
    .measurement-footer-actions form,
    .measurement-footer-actions button {
        width: 100%;
    }

    .measurement-equipment-metrics > div,
    .measurement-equipment-metrics > div:nth-child(3) {
        border-right: 0;
        border-bottom: 1px solid #e9edf2;
    }

    .measurement-equipment-metrics > div:last-child {
        border-bottom: 0;
    }

    .measurement-rule-card {
        align-items: flex-start;
    }
}

@media (max-width: 520px) {
    .measurement-calculation-strip {
        grid-template-columns: 1fr;
    }

    .calculation-total {
        grid-column: auto;
    }
}

.measurement-work-summary {
    margin-bottom: 18px;
}

.measurement-work-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    padding: 17px 20px 20px;
}

.measurement-work-card {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 15px 16px;
    border: 1px solid #e1e7ef;
    border-radius: 12px;
    color: var(--text);
    background: #fff;
    text-decoration: none;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.measurement-work-card:hover {
    transform: translateY(-2px);
    border-color: #b8c7db;
    box-shadow: 0 8px 18px rgba(23, 32, 51, .07);
}

.measurement-work-card div {
    min-width: 0;
}

.measurement-work-card span,
.measurement-work-card div strong,
.measurement-work-card small {
    display: block;
}

.measurement-work-card span {
    color: #2563eb;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.measurement-work-card div strong {
    overflow: hidden;
    margin-top: 4px;
    color: #334155;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.measurement-work-card small {
    margin-top: 5px;
    color: var(--muted);
    font-size: 10px;
}

.measurement-work-card > strong {
    flex: 0 0 auto;
    color: #166534;
    font-size: 16px;
}

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

@media (max-width: 650px) {
    .measurement-work-grid {
        grid-template-columns: 1fr;
    }
}

.measurement-work-detail-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0;
}

.measurement-work-detail-summary article {
    padding: 18px 20px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 6px 17px rgba(23, 32, 51, .05);
}

.measurement-work-detail-summary span,
.measurement-work-detail-summary strong {
    display: block;
}

.measurement-work-detail-summary span {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.measurement-work-detail-summary strong {
    margin-top: 8px;
    color: #27364b;
    font-size: 24px;
}

@media (max-width: 700px) {
    .measurement-work-detail-summary {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   SPRINT 4.10 — MEDIÇÕES ABERTAS, MOBILIZAÇÃO E DESMOBILIZAÇÃO
   ========================================================================== */

.measurement-open-period {
    display: inline-flex;
    padding: 7px 10px;
    border: 1px solid rgba(251, 191, 36, .32);
    border-radius: 999px;
    color: #ffe7a8;
    background: rgba(245, 158, 11, .16);
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.measurement-result-grid {
    grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
}

.measurement-equipment-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.measurement-equipment-metrics > div:nth-child(4n) {
    border-right: 0;
}

.measurement-equipment-metrics > div:nth-child(-n+4) {
    border-bottom: 1px solid #e9edf2;
}

.measurement-calculation-strip {
    grid-template-columns: repeat(6, minmax(130px, 1fr));
    gap: 10px;
}

.measurement-calculation-strip > div:not(.calculation-total) {
    min-height: 68px;
    padding: 10px 11px;
    border: 1px solid #e3e8ef;
    border-radius: 9px;
    background: #fff;
}

.measurement-charge-box {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(220px, .5fr);
    align-items: center;
    gap: 18px;
    padding: 16px 17px;
    border: 1px solid #d9e1ea;
    border-radius: 12px;
    background: #fbfcfe;
}

.measurement-charge-box.compact {
    padding: 13px 14px;
}

.measurement-charge-toggle {
    display: flex !important;
    align-items: flex-start;
    gap: 11px;
    margin: 0 !important;
    cursor: pointer;
}

.measurement-charge-toggle input {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    margin-top: 2px;
    accent-color: #2563eb;
}

.measurement-charge-toggle strong,
.measurement-charge-toggle small {
    display: block;
}

.measurement-charge-toggle strong {
    color: #2d3c50;
    font-size: 13px;
}

.measurement-charge-toggle small {
    margin-top: 5px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.45;
}

.measurement-charge-value {
    margin: 0;
}

.measurement-closing-card {
    max-width: 1180px;
    margin: 0 auto;
}

.measurement-closing-header {
    display: grid;
    grid-template-columns: minmax(250px, .55fr) minmax(0, 1.45fr);
    align-items: stretch;
    gap: 16px;
    padding: 22px 24px 0;
}

.measurement-closing-header .measurement-info-box {
    display: grid;
    align-content: center;
}

.measurement-closing-list {
    display: grid;
    gap: 13px;
    padding: 20px 24px 0;
}

.measurement-closing-equipment {
    overflow: hidden;
    border: 1px solid #dfe5ec;
    border-radius: 13px;
    background: #fff;
}

.measurement-closing-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 15px 17px;
    border-bottom: 1px solid #e8edf2;
    background: #f8fafc;
}

.measurement-closing-title strong,
.measurement-closing-title small {
    display: block;
}

.measurement-closing-title strong {
    color: #2d3c50;
    font-size: 14px;
}

.measurement-closing-title small {
    margin-top: 5px;
    color: var(--muted);
    font-size: 11px;
}

.measurement-closing-title > span {
    padding: 6px 9px;
    border-radius: 999px;
    color: #1d4ed8;
    background: #eaf1ff;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.measurement-closing-fields {
    padding: 17px;
}

.measurement-readings-note {
    padding: 11px 18px;
    border-top: 1px solid #e9edf2;
    color: #526075;
    background: #f6f9fd;
    font-size: 11px;
    line-height: 1.45;
}

.measurement-final-reading {
    background: #f3faf6;
}

.measurement-final-reading td:first-child small {
    display: block;
    margin-top: 3px;
    color: #166534;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.measurement-empty-reading > div strong,
.measurement-empty-reading > div small {
    display: block;
}

.measurement-empty-reading > div small {
    margin-top: 4px;
    color: var(--muted);
}

@media (max-width: 1250px) {
    .measurement-equipment-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .measurement-equipment-metrics > div,
    .measurement-equipment-metrics > div:nth-child(4n) {
        border-right: 1px solid #e9edf2;
        border-bottom: 1px solid #e9edf2;
    }

    .measurement-equipment-metrics > div:nth-child(2n) {
        border-right: 0;
    }

    .measurement-calculation-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .measurement-charge-box,
    .measurement-closing-header {
        grid-template-columns: 1fr;
    }

    .measurement-closing-title {
        align-items: flex-start;
        flex-direction: column;
    }

    .measurement-closing-header,
    .measurement-closing-list {
        padding-right: 16px;
        padding-left: 16px;
    }

    .measurement-calculation-strip {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   SPRINT 4.11 — BOLETIM DE MEDIÇÃO EM PDF E AJUSTES/AVARIAS
   ========================================================================== */

.measurement-adjustment-box {
    padding: 16px 17px;
    border: 1px solid #e1d9ca;
    border-radius: 12px;
    background: #fffdf8;
}

.measurement-adjustment-box.compact {
    padding: 13px 14px;
}

.measurement-adjustment-box .form-grid {
    margin-top: 10px;
}

.measurement-adjustment-box .form-group:last-child,
.measurement-adjustment-box .form-group:nth-last-child(2) {
    margin-bottom: 0;
}

.measurement-calculation-strip {
    grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
}

@media (max-width: 700px) {
    .measurement-adjustment-box {
        padding: 13px;
    }
}


/* SPRINT 4.12 — CLIENTES, VENDAS E MEDIÇÕES CONTÍNUAS */
.sales-summary-grid {
    margin-bottom: 18px;
}

.sale-form-card {
    max-width: 1180px;
    margin: 0 auto;
}

.sale-items-header,
.measurement-subsection-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 24px;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    background: #f8fafc;
}

.sale-items-header h3,
.measurement-subsection-header strong {
    color: #2d3c50;
    font-size: 14px;
}

.sale-items-header p,
.measurement-subsection-header small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.45;
}

.sale-items {
    display: grid;
    gap: 12px;
    padding: 18px 24px;
}

.sale-item-row {
    display: grid;
    grid-template-columns: minmax(270px, 1.8fr) minmax(110px, .55fr) minmax(130px, .65fr) minmax(130px, .65fr) auto;
    align-items: end;
    gap: 12px;
    padding: 15px;
    border: 1px solid #dde4ec;
    border-radius: 12px;
    background: #fff;
}

.sale-item-row .form-group {
    margin: 0;
}

.sale-stock {
    min-height: 16px;
}

.calculated-input {
    min-height: 43px;
    display: flex;
    align-items: center;
    padding: 11px 12px;
    border: 1px solid var(--border);
    border-radius: 9px;
    color: #24354e;
    background: #f8fafc;
    font-weight: 800;
}

.sale-total-box {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
    margin: 0 24px;
    padding: 16px 18px;
    border: 1px solid #cbd7e4;
    border-radius: 12px;
    background: #f4f8fc;
}

.sale-total-box span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.sale-total-box strong {
    color: var(--navy-900);
    font-size: 24px;
}

.measurement-equipment-card .measurement-subsection-header {
    padding: 13px 17px;
}

@media (max-width: 1050px) {
    .sale-item-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sale-item-row .sale-remove {
        justify-self: start;
    }
}

@media (max-width: 700px) {
    .sale-items-header,
    .measurement-subsection-header {
        align-items: stretch;
        flex-direction: column;
    }

    .sale-items {
        padding: 14px 16px;
    }

    .sale-item-row {
        grid-template-columns: 1fr;
    }

    .sale-total-box {
        align-items: flex-start;
        flex-direction: column;
        margin: 0 16px;
    }
}

/* ==========================================================================
   SPRINT 4.12.2 — PARADAS INDIVIDUAIS E REGRA DE GARANTIA
   ========================================================================== */

.measurement-stop-box {
    padding: 15px;
    border: 1px solid #dfe5ec;
    border-radius: 12px;
    background: #fbfcfe;
}

.measurement-subsection-header.compact {
    padding: 0 0 12px;
    border: 0;
}

.measurement-stop-list {
    display: grid;
    gap: 9px;
}

.measurement-stop-row {
    display: grid;
    grid-template-columns: minmax(145px, .55fr) minmax(130px, .45fr) minmax(260px, 1.4fr) auto;
    align-items: end;
    gap: 10px;
    padding: 12px;
    border: 1px solid #e2e7ed;
    border-radius: 10px;
    background: #fff;
}

.measurement-stop-row .form-group {
    margin: 0;
}

.measurement-remove-stop {
    width: 38px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #efc4c4;
    border-radius: 9px;
    color: #a52b2b;
    background: #fff6f6;
    font-size: 22px;
    line-height: 1;
}

.measurement-remove-stop:hover {
    border-color: #d98989;
    background: #ffecec;
}

.measurement-stop-summary {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #d7dee7;
    color: var(--muted);
    font-size: 12px;
}

.measurement-stop-summary strong {
    color: #27364b;
    font-size: 14px;
}

.measurement-equipment-metrics > div small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.35;
}

@media (max-width: 900px) {
    .measurement-stop-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .measurement-stop-description {
        grid-column: 1 / -1;
    }

    .measurement-remove-stop {
        grid-column: 1 / -1;
        width: 100%;
    }
}

@media (max-width: 560px) {
    .measurement-stop-row {
        grid-template-columns: 1fr;
    }

    .measurement-stop-description,
    .measurement-remove-stop {
        grid-column: auto;
    }
}

/* MENU LATERAL VERDE — identidade visual operacional */
.sidebar {
    width: 232px;
    padding: 14px 12px 16px;
    overflow: hidden;
    background:
        radial-gradient(circle at 18% 8%, rgba(24, 119, 55, .25), transparent 30%),
        linear-gradient(180deg, #004120 0%, #004a24 55%, #003b1d 100%);
    box-shadow: none;
}
.brand {
    display: flex;
    min-height: auto;
    padding: 3px 8px 15px;
    border-bottom: 1px solid rgba(255,255,255,.16);
}
.brand-copy strong { color: #fff; font-size: 15px; }
.brand-copy small, .brand-copy span { color: rgba(255,255,255,.65); }
.nav-menu {
    min-height: 0;
    gap: 2px;
    margin: 11px 0 8px;
    padding: 2px 0 14px;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(130,225,61,.65) transparent;
    scrollbar-gutter: stable;
}
.nav-menu::-webkit-scrollbar { width: 8px; height: 8px; }
.nav-menu::-webkit-scrollbar-track { background: transparent; }
.nav-menu::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 999px;
    background: rgba(130,225,61,.65);
    background-clip: padding-box;
}
.nav-menu::-webkit-scrollbar-thumb:hover { background: rgba(130,225,61,.9); background-clip: padding-box; }
.nav-link, .nav-group summary {
    min-height: 52px;
    gap: 14px;
    padding: 5px 10px 5px 24px;
    border: 0;
    border-radius: 0;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -.35px;
}
.nav-link { flex: 0 0 auto; }
.nav-group { margin: 0; }
.nav-group summary > span:first-child { min-width: 0; display: flex; align-items: center; gap: 14px; }
.nav-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav-link:hover, .nav-link.ativo, .nav-group summary:hover, .nav-group[open] summary {
    color: #fff;
    background: transparent;
    box-shadow: none;
}
.nav-link:hover .nav-label, .nav-link.ativo .nav-label,
.nav-group summary:hover .nav-label, .nav-group[open] summary .nav-label { color: #fff; text-shadow: 0 0 10px rgba(255,255,255,.10); }
.nav-link.ativo .nav-icon { color: #fff; }
.nav-icon {
    width: 45px;
    height: 40px;
    flex: 0 0 45px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    filter: none;
}
.nav-icon img { width: 40px; height: 40px; object-fit: contain; display: block; }
.nav-icon svg .accent { color: #79db35; stroke: #79db35; }
.nav-icon svg .accent-fill { fill: #79db35; stroke: #79db35; }
.nav-icon svg .white-fill { fill: #fff; stroke: #fff; }
.nav-icon svg .icon-text { fill: #fff; stroke: none; text-anchor: middle; font-family: Inter,Arial,sans-serif; font-weight: 800; }
.nav-icon svg .icon-money { font-size: 19px; }
.nav-icon svg .icon-dollar { font-size: 16px; }
.nav-chevron {
    margin-left: auto;
    margin-right: 2px;
    color: #fff;
    width: 9px;
    height: 9px;
    border-right: 3px solid currentColor;
    border-bottom: 3px solid currentColor;
    font-size: 0;
    line-height: 0;
    transform: rotate(45deg) translate(-2px,-2px);
    transform-origin: center center;
}
.nav-group[open] .nav-chevron { transform: rotate(225deg) translate(-1px,-1px); }
.nav-submenu {
    gap: 3px;
    margin: 2px 7px 6px 24px;
    padding: 4px 0 5px 18px;
    border-left: 1px solid rgba(130,225,61,.38);
}
.nav-sublink { padding: 9px 10px; color: rgba(255,255,255,.74); font-size: 13px; }
.nav-sublink::before { left: -22px; background: rgba(130,225,61,.55); }
.nav-sublink:hover, .nav-sublink.ativo { color: #fff; background: rgba(130,225,61,.12); }
.nav-sublink.ativo::before { background: #80df3a; box-shadow: 0 0 0 4px rgba(128,223,58,.15); }
.sidebar-footer { padding: 14px 8px 0; border-top-color: rgba(255,255,255,.16); }
.sidebar-footer .avatar { background: #66c832; }
.sidebar-footer .sair-link { color: #a8ef74; }
.main-area { margin-left: 232px; }
@media (max-width: 1180px) and (min-width: 821px) {
    .sidebar { width: 232px; padding-left: 12px; padding-right: 12px; }
    .main-area { margin-left: 232px; }
    .nav-link, .nav-group summary { font-size: 16px; }
}
@media (max-width: 820px) {
    .sidebar { width: min(232px, 88vw); }
    .main-area { margin-left: 0; }
}

/* Boletos e conciliação bancária */
.boleto-panel { margin-top: 8px; padding: 18px; border: 1px solid #d9e3ef; border-radius: 12px; background: #f8fbff; }
.boleto-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:15px; }
.boleto-panel-heading h4 { margin:0 0 4px; color:#172b4d; font-size:16px; }
.boleto-panel-heading p { margin:0; color:#66758a; font-size:12px; }
.boleto-fields { padding:0 !important; }
.boleto-pdf-control > div { display:flex; align-items:center; gap:10px; }
.boleto-pdf-control input[type=file] { flex:1; }
.boleto-pdf-control small { display:block; margin-top:6px; color:#65748a; }

.bank-reconciliation-page { display:grid; gap:18px; }
.reconciliation-upload-form { display:flex; align-items:flex-end; gap:16px; padding-top:8px; }
.reconciliation-upload-form .form-group { flex:1; margin:0; }
.table-secondary-text { display:block; margin-top:3px; color:#758297; font-size:11px; }
.reconciliation-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.reconciliation-toolbar > div { display:flex; flex-direction:column; align-items:flex-end; gap:2px; color:#172b4d; }
.reconciliation-toolbar span { color:#718096; font-size:12px; }
.reconciliation-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.reconciliation-summary > div { display:flex; align-items:center; justify-content:space-between; padding:15px 18px; border:1px solid #dce5ef; border-radius:12px; background:#fff; }
.reconciliation-summary small { color:#65748a; font-weight:700; }
.reconciliation-summary strong { color:#17345c; font-size:22px; }
.reconciliation-movements { display:grid; gap:14px; }
.reconciliation-movement { padding:0; overflow:hidden; }
.reconciliation-movement > header { display:grid; grid-template-columns:90px minmax(220px,1fr) 130px 105px; align-items:center; gap:14px; padding:16px 18px; border-bottom:1px solid #e6ebf2; }
.movement-date,.movement-description { display:flex; flex-direction:column; gap:3px; }
.movement-date small,.movement-description small { color:#728096; font-size:11px; }
.movement-value { text-align:right; font-size:16px; }
.movement-value.debit { color:#c43f3f; }.movement-value.credit { color:#17864a; }
.reconciliation-status { justify-self:end; padding:5px 9px; border-radius:20px; background:#eef2f7; color:#43536a; font-size:10px; font-weight:800; }
.reconciliation-movement.conciliado .reconciliation-status { background:#e5f7ec; color:#167342; }
.suggestion-list { display:grid; }
.suggestion-row { display:grid; grid-template-columns:72px minmax(250px,1fr) 180px 145px 130px; align-items:center; gap:14px; padding:14px 18px; border-bottom:1px solid #edf1f5; }
.suggestion-row:last-child { border-bottom:0; }
.suggestion-score { display:flex; flex-direction:column; align-items:center; justify-content:center; width:58px; height:52px; border-radius:10px; background:#edf5ff; color:#175ca8; }
.suggestion-score strong { font-size:16px; }.suggestion-score small { font-size:8px; text-transform:uppercase; }
.suggestion-account,.suggestion-numbers { display:flex; flex-direction:column; gap:3px; min-width:0; }
.suggestion-account strong,.suggestion-account span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.suggestion-account span,.suggestion-account small,.suggestion-numbers span { color:#65748a; font-size:11px; }
.suggestion-account small { color:#2d6e52; }
.suggestion-numbers strong { color:#172b4d; }
.conciliation-value { color:#65748a; font-size:10px; font-weight:700; }
.conciliation-value input { margin-top:4px; padding:8px 9px; }
.reconciled-result,.no-suggestion { padding:16px 18px; color:#516074; font-size:13px; }
.ignore-movement { padding:0 18px 13px; text-align:right; }.ignore-movement .table-link { border:0; background:none; cursor:pointer; color:#7b8797; }

@media (max-width: 980px) {
    .suggestion-row { grid-template-columns:65px 1fr 150px; }
    .suggestion-numbers { display:none; }
    .reconciliation-movement > header { grid-template-columns:80px 1fr 120px; }
    .reconciliation-status { grid-column:1/-1; justify-self:start; }
}
@media (max-width: 680px) {
    .reconciliation-upload-form,.boleto-pdf-control > div { align-items:stretch; flex-direction:column; }
    .reconciliation-summary { grid-template-columns:1fr; }
    .reconciliation-movement > header { grid-template-columns:1fr auto; }
    .movement-description { grid-column:1/-1; }.movement-value { grid-column:2; grid-row:1; }.reconciliation-status { grid-column:1/-1; }
    .suggestion-row { grid-template-columns:55px 1fr; }
    .suggestion-account { min-width:0; }.conciliation-value,.suggestion-row .btn { grid-column:1/-1; }
}

/* ==========================================================================
   SPRINT 4.13 — PEDIDOS DE VENDA E RELATÓRIO CONSOLIDADO
   ========================================================================== */
.sales-order-summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 18px;
}

.delivery-note-number,
.delivery-note-number-input {
    color: #c8323e !important;
    font-weight: 900 !important;
    letter-spacing: .5px;
}

.delivery-note-hero {
    background:
        radial-gradient(circle at 92% 18%, rgba(239, 68, 68, .15), transparent 28%),
        linear-gradient(135deg, #102419, #194d38 60%, #23644a);
}

.sale-origin-selector {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 22px 24px;
    border-top: 1px solid var(--border);
}

.sale-origin-option {
    display: flex !important;
    align-items: flex-start;
    gap: 12px;
    margin: 0 !important;
    padding: 16px;
    border: 1px solid #dbe3ec;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.sale-origin-option:has(input:checked) {
    border-color: #1d6d50;
    background: #f1f8f5;
    box-shadow: 0 0 0 2px rgba(29, 109, 80, .08);
}

.sale-origin-option input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.sale-origin-option strong,
.sale-origin-option small {
    display: block;
}

.sale-origin-option strong {
    color: #213547;
    font-size: 14px;
}

.sale-origin-option small {
    margin-top: 5px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.45;
}

.sale-orders-panel {
    border-top: 1px solid var(--border);
}

.open-sales-orders {
    display: grid;
    gap: 10px;
    padding: 18px 24px;
}

.open-sales-order-option {
    display: grid !important;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    margin: 0 !important;
    padding: 14px 15px;
    border: 1px solid #dbe3ec;
    border-radius: 11px;
    background: #fff;
    cursor: pointer;
}

.open-sales-order-option:has(input:checked) {
    border-color: #1d6d50;
    background: #f1f8f5;
}

.open-sales-order-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.open-sales-order-check {
    width: 23px;
    height: 23px;
    display: grid;
    place-items: center;
    border: 1px solid #aeb9c7;
    border-radius: 6px;
    color: transparent;
    background: #fff;
    font-size: 13px;
    font-weight: 900;
}

.open-sales-order-option input:checked + .open-sales-order-check {
    border-color: #1d6d50;
    color: #fff;
    background: #1d6d50;
}

.open-sales-order-option strong,
.open-sales-order-option small {
    display: block;
}

.open-sales-order-option strong {
    color: #25364b;
    font-size: 13px;
}

.open-sales-order-option small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
}

.open-sales-order-option > b {
    color: #164c3b;
    font-size: 14px;
    white-space: nowrap;
}

.sale-order-consolidated {
    color: #174ea6;
    background: #eaf1ff;
}

@media (max-width: 900px) {
    .sales-order-summary-grid,
    .sale-origin-selector {
        grid-template-columns: 1fr;
    }

    .sales-order-filter {
        flex-direction: column;
        align-items: stretch;
    }

    .sales-order-filter > * {
        width: 100%;
    }
}

@media (max-width: 620px) {
    .open-sales-order-option {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .open-sales-order-option > b {
        grid-column: 2;
    }
}

/* ==========================================================================
   SPRINT 4.14 — CENTROS DE CUSTOS, CONDUTORES E VALIDAÇÃO DE ABASTECIMENTOS
   ========================================================================== */
.equipment-filter-form { max-width: 980px; }
.equipment-filter-form .toolbar-select { min-width: 235px; }

.fueling-validation-notice {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 14px;
    margin-bottom: 18px;
    padding: 16px 18px;
    border: 1px solid #f1cc78;
    border-radius: 12px;
    color: #4d3a13;
    background: #fffaf0;
}
.fueling-validation-notice > span {
    padding: 6px 9px;
    border-radius: 999px;
    color: #7a4d00;
    background: #ffedbd;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .5px;
    text-transform: uppercase;
}
.fueling-validation-notice strong,
.fueling-validation-notice p { display: block; }
.fueling-validation-notice p { margin-top: 5px; color: #765d2c; font-size: 12px; line-height: 1.5; }

.fuel-record-badge {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}
.fuel-record-emitida { color: #8a5600; background: #fff0c7; }
.fuel-record-validada { color: #17653f; background: #e3f5ec; }
.fuel-record-cancelada { color: #6b7280; background: #eceff3; }
.fueling-row-cancelada { opacity: .68; background: #fafafa; }
.fueling-row-emitida { background: #fffdf7; }
.fueling-record-actions { min-width: 155px; }
.success-link { color: #167247 !important; }
.fueling-summary-attention { border-left: 4px solid #e5a10b; }

@media (max-width: 760px) {
    .equipment-filter-form .toolbar-select { width: 100%; min-width: 0; }
    .fueling-validation-notice { grid-template-columns: 1fr; }
}

/* Sprint 4.15 — validação de medições e baixas parciais */
.finance-status.status-pendente-de-dados {
    color: #92400e;
    background: #fff3d6;
}

.finance-status.status-paga-parcialmente,
.finance-status.status-recebida-parcialmente {
    color: #7c3aed;
    background: #f1eafe;
}

.measurement-status-pendente_validacao {
    color: #7c2d12;
    background: #ffedd5;
}

.measurement-hero .measurement-status-pendente_validacao {
    color: #ffedd5;
    background: rgba(234, 88, 12, .22);
    border: 1px solid rgba(251, 146, 60, .34);
}

/* ==========================================================================
   SPRINT 4.16 — ACESSOS HIERÁRQUICOS E CONTROLE DE ESTOQUE MÍNIMO
   ========================================================================== */
.access-form { display: grid; gap: 18px; }
.permission-matrix { display: grid; gap: 12px; }
.permission-card {
    padding: 15px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
}
.permission-module { display: flex; align-items: center; gap: 10px; margin: 0; }
.permission-module input { width: 18px; height: 18px; }
.permission-module span strong,
.permission-module span small { display: block; }
.permission-module span small { margin-top: 3px; color: var(--muted); }
.permission-actions {
    display: grid;
    grid-template-columns: repeat(5, minmax(120px, 1fr));
    gap: 8px;
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}
.permission-actions label,
.checkbox-line { display: flex; align-items: center; gap: 7px; margin: 0; }
.permission-actions input,
.checkbox-line input { width: 16px; height: 16px; }
.selection-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 10px;
}
.selection-card {
    display: flex;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
}
.selection-card span strong,
.selection-card span small { display: block; }
.selection-card span small { margin-top: 4px; color: var(--muted); }
.selection-card.is-inactive { opacity: .55; }

.choice-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.choice-card {
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    margin: 0 !important;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: #fff;
    cursor: pointer;
}
.choice-card:has(input:checked) {
    border-color: #1d6d50;
    background: #f1f8f5;
    box-shadow: 0 0 0 2px rgba(29, 109, 80, .08);
}
.choice-card input { width: 18px; height: 18px; margin-top: 2px; }
.choice-card span strong,
.choice-card span small { display: block; }
.choice-card span small { margin-top: 4px; color: var(--muted); line-height: 1.4; }
.field-disabled { opacity: .68; }
.field-disabled input { background: #f1f3f5; cursor: not-allowed; }

@media (max-width: 760px) {
    .permission-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .choice-card-grid { grid-template-columns: 1fr; }
}

/* Sprint 4.16.1 — matriz de permissões por item */
.access-section-header { align-items: flex-start; gap: 1rem; }
.permission-legend { display: flex; flex-wrap: wrap; gap: .45rem; }
.permission-legend span { padding: .38rem .65rem; border-radius: 999px; background: var(--surface-soft, #eef2f7); color: var(--text-muted, #657084); font-size: .75rem; font-weight: 700; }
.item-permission-matrix { display: grid; gap: 1rem; }
.item-module-card { border: 1px solid var(--border-color, #dfe5ec); border-radius: 14px; overflow: hidden; background: var(--surface, #fff); }
.item-module-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 1rem; background: var(--surface-soft, #f6f8fb); border-bottom: 1px solid var(--border-color, #dfe5ec); }
.item-module-header > div:first-child { display: grid; gap: .12rem; }
.item-module-header strong { font-size: .95rem; }
.item-module-header small { color: var(--text-muted, #768196); font-size: .7rem; letter-spacing: .04em; }
.item-module-tools { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; }
.permission-link-button { border: 0; background: transparent; color: var(--primary, #1f5eff); font: inherit; font-size: .75rem; font-weight: 700; padding: .25rem .35rem; cursor: pointer; }
.permission-link-button:hover { text-decoration: underline; }
.item-permission-scroll { overflow-x: auto; }
.item-permission-table { width: 100%; min-width: 1120px; border-collapse: collapse; }
.item-permission-table th, .item-permission-table td { border-bottom: 1px solid var(--border-color, #e5e9ef); padding: .58rem .5rem; text-align: center; vertical-align: middle; }
.item-permission-table thead th { position: sticky; top: 0; z-index: 1; background: #fafbfc; color: var(--text-muted, #6e788c); font-size: .68rem; text-transform: uppercase; letter-spacing: .025em; white-space: nowrap; }
.item-permission-table tbody tr:last-child td { border-bottom: 0; }
.item-permission-table tbody tr:hover { background: #fbfcfe; }
.item-name-column { width: 260px; text-align: left !important; }
.permission-item-name { text-align: left !important; min-width: 260px; }
.permission-item-name label { display: flex; align-items: flex-start; gap: .6rem; cursor: pointer; }
.permission-item-name input { margin-top: .2rem; }
.permission-item-name span { display: grid; gap: .08rem; }
.permission-item-name strong { font-size: .84rem; line-height: 1.25; }
.permission-item-name small { color: var(--text-muted, #7a8496); font-size: .64rem; letter-spacing: .025em; }
.permission-action-cell label { display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.permission-action-cell input { position: absolute; opacity: 0; pointer-events: none; }
.permission-action-cell label > span { width: 1.15rem; height: 1.15rem; border-radius: .3rem; border: 1px solid #bcc6d4; background: #fff; display: grid; place-items: center; transition: .15s ease; }
.permission-action-cell input:checked + span { border-color: var(--primary, #1f5eff); background: var(--primary, #1f5eff); }
.permission-action-cell input:checked + span::after { content: "✓"; color: #fff; font-size: .72rem; font-weight: 900; }
.permission-action-cell input:disabled + span { opacity: .35; cursor: not-allowed; }
.permission-action-cell em { display: none; }
.permission-item-row[hidden], .permission-action-cell[hidden], .item-module-card[hidden] { display: none !important; }

@media (max-width: 760px) {
  .access-section-header, .item-module-header { align-items: stretch; flex-direction: column; }
  .item-module-tools { justify-content: flex-start; }
  .item-permission-table { min-width: 980px; }
}

/* ==========================================================================
   SPRINT 4.17 — MULTIEMPRESA, MULTICLIENTE E RELATÓRIOS DE ABASTECIMENTO
   ========================================================================== */
.topbar-center { flex: 1; display: flex; justify-content: center; min-width: 0; }
.tenant-context-form {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 7px 9px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #f8fafc;
}
.tenant-context-form label { display: grid; gap: 3px; margin: 0; }
.tenant-context-form label span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.tenant-context-form select { min-width: 170px; height: 34px; padding: 5px 28px 5px 8px; border: 1px solid var(--border); border-radius: 8px; background: #fff; font-size: 12px; }
.btn-context { height: 34px; padding: 0 12px; border: 0; border-radius: 8px; color: #fff; background: #174b72; font-weight: 800; cursor: pointer; }

.company-permission-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(235px, 1fr)); gap: 10px; }
.company-option { display: flex; align-items: flex-start; gap: 9px; padding: 12px; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.company-option input { width: 17px; height: 17px; margin-top: 2px; }
.company-option span strong, .company-option span small { display: block; }
.company-option span small { margin-top: 3px; color: var(--muted); }
.tenant-company-grid { display: grid; gap: 12px; }
.tenant-company-editor { display: grid; grid-template-columns: minmax(180px, .8fr) repeat(4, minmax(150px, 1fr)) auto; gap: 9px; align-items: end; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
.tenant-company-logo { width: 150px; max-height: 60px; object-fit: contain; object-position: left center; }

.fuel-report-page { display: grid; gap: 18px; }
.fuel-report-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding: 24px;
    border-radius: 16px;
    color: #fff;
    background: linear-gradient(135deg, #163d5c, #205f83);
    box-shadow: 0 14px 32px rgba(17, 58, 87, .16);
}
.fuel-report-hero h2 { margin: 5px 0 7px; color: #fff; font-size: 24px; }
.fuel-report-hero p { max-width: 690px; margin: 0; color: rgba(255,255,255,.78); }
.fuel-report-hero .eyebrow { color: #ffd483; }
.fuel-report-hero-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.fuel-report-filter { display: grid; grid-template-columns: repeat(2, minmax(190px, 1fr)); gap: 15px; }
.fuel-report-options { grid-column: 1 / -1; margin: 0; padding: 13px; border: 1px solid var(--border); border-radius: 12px; }
.fuel-report-options legend { padding: 0 7px; color: #31445b; font-size: 12px; font-weight: 800; }
.fuel-report-check-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 8px; }
.fuel-report-check { display: flex; align-items: flex-start; gap: 9px; padding: 10px; border: 1px solid #e0e6ed; border-radius: 10px; background: #fff; cursor: pointer; }
.fuel-report-check:has(input:checked) { border-color: #2b6f94; background: #f0f8fc; box-shadow: 0 0 0 2px rgba(43,111,148,.08); }
.fuel-report-check input { width: 17px; height: 17px; margin-top: 2px; }
.fuel-report-check span strong, .fuel-report-check span small { display: block; }
.fuel-report-check span small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.fuel-report-check.is-inactive { opacity: .58; }
.fuel-report-filter-actions { grid-column: 1 / -1; }
.fuel-report-summary-grid { display: grid; grid-template-columns: repeat(6, minmax(145px, 1fr)); gap: 11px; }
.fuel-report-summary-grid article { min-height: 112px; padding: 16px; border: 1px solid var(--border); border-radius: 13px; background: #fff; box-shadow: 0 8px 20px rgba(28,45,68,.05); }
.fuel-report-summary-grid article span, .fuel-report-summary-grid article small { display: block; color: var(--muted); }
.fuel-report-summary-grid article span { font-size: 10px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.fuel-report-summary-grid article strong { display: block; margin: 9px 0 5px; color: #19384f; font-size: 21px; }
.fuel-report-summary-grid article small { font-size: 10px; }
.fuel-report-summary-grid article.has-alert { border-left: 4px solid #d35a43; background: #fff9f7; }
.fuel-report-station { margin-top: 14px; overflow: hidden; border: 1px solid var(--border); border-radius: 13px; }
.fuel-report-station > header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 16px; background: #f5f8fb; border-bottom: 1px solid var(--border); }
.fuel-report-station > header span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .06em; }
.fuel-report-station h3 { margin: 3px 0 0; color: #1e3d54; }
.fuel-report-station-total { display: flex; align-items: baseline; gap: 13px; text-align: right; }
.fuel-report-station-total strong { color: #174f70; font-size: 18px; }
.fuel-report-station-total small { color: var(--muted); }
.fuel-report-table { width: 100%; border-collapse: collapse; }
.fuel-report-table th, .fuel-report-table td { padding: 10px 11px; border-bottom: 1px solid #e7ebf0; text-align: left; vertical-align: middle; font-size: 11px; }
.fuel-report-table th { color: #627187; background: #fbfcfd; font-size: 9px; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.fuel-report-table tbody tr:last-child td { border-bottom: 0; }
.fuel-equipment-report-controls { display: grid; grid-template-columns: minmax(260px, 1fr) auto; align-items: end; gap: 12px; }
.fuel-deviation { color: #b54734; font-weight: 900; }
.fuel-report-alert { display: inline-flex; padding: 5px 8px; border-radius: 999px; color: #a33a28; background: #ffebe7; font-size: 9px; font-weight: 800; white-space: nowrap; }
.empty-inline { margin: 0; color: var(--muted); font-size: 11px; }

@media (max-width: 1180px) {
    .fuel-report-summary-grid { grid-template-columns: repeat(3, minmax(145px, 1fr)); }
    .tenant-company-editor { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
    .topbar-center { justify-content: flex-start; }
    .tenant-context-form select { min-width: 135px; }
}
@media (max-width: 820px) {
    .topbar { flex-wrap: wrap; }
    .topbar-center { width: 100%; order: 3; }
    .tenant-context-form { width: 100%; align-items: stretch; flex-wrap: wrap; }
    .tenant-context-form label { flex: 1 1 180px; }
    .tenant-context-form select { width: 100%; min-width: 0; }
    .fuel-report-hero { align-items: flex-start; flex-direction: column; }
    .fuel-report-hero-actions { justify-content: flex-start; }
    .fuel-report-filter { grid-template-columns: 1fr; }
    .fuel-report-options, .fuel-report-filter-actions { grid-column: 1; }
    .fuel-report-summary-grid { grid-template-columns: repeat(2, minmax(135px, 1fr)); }
    .fuel-report-station > header, .fuel-report-station-total { align-items: flex-start; flex-direction: column; text-align: left; }
    .fuel-equipment-report-controls { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .fuel-report-summary-grid { grid-template-columns: 1fr; }
    .fuel-report-check-grid, .tenant-company-editor { grid-template-columns: 1fr; }
}

/* Ajustes da grade de empresas da plataforma */
.tenant-company-editor { grid-template-columns: 150px minmax(0, 1fr); align-items: start; }
.tenant-company-editor > .tenant-company-logo { width: 150px; min-height: 94px; display: grid; place-items: center; padding: 10px; border: 1px dashed #cbd5e1; border-radius: 11px; background: #f8fafc; color: #174b72; font-size: 24px; font-weight: 900; }
.tenant-company-editor > .tenant-company-logo img { display: block; width: 100%; max-height: 72px; object-fit: contain; }
.tenant-company-editor > .form-grid { width: 100%; }
@media (max-width: 700px) { .tenant-company-editor { grid-template-columns: 1fr; } .tenant-company-editor > .tenant-company-logo { width: 100%; } }

/* ========================================================================== 
   SPRINT 4.19 — ONBOARDING DE CLIENTES, ADMINISTRADOR E IDENTIDADE VISUAL
   ========================================================================== */
.brand { min-height: 70px; align-items: center; }
.brand-copy { min-width: 0; flex: 1; }
.brand-copy strong,
.brand-copy span,
.brand-copy .app-version {
    max-width: 165px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.brand-copy strong { color: #fff; font-size: 13px; }
.brand-copy .app-version { display: block; margin-top: 3px; color: #7e8da5; font-size: 9px; font-weight: 700; }
.brand-copy span { font-size: 10px; line-height: 1.25; }
.brand-mark-custom {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
    padding: 5px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 12px;
    background: #fff;
}
.brand-mark-custom img { display: block; width: 100%; height: 100%; object-fit: contain; }

.tenant-onboarding-card { border-top: 4px solid var(--orange); }
.tenant-onboarding-form { display: grid; gap: 14px; }
.tenant-form-block {
    min-width: 0;
    margin: 0;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: #fbfcfe;
}
.tenant-form-block legend { padding: 0 8px; color: #24445d; font-size: 12px; font-weight: 900; }
.tenant-admin-block { border-color: #cfdde8; background: #f5f9fc; }
.tenant-admin-note {
    margin-top: -2px;
    padding: 10px 12px;
    border-radius: 9px;
    color: #31566f;
    background: #e9f3f9;
    font-size: 11px;
    line-height: 1.45;
}
.field-help { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.tenant-heading { align-items: center; }
.tenant-heading-brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.tenant-client-logo {
    width: 62px;
    height: 52px;
    flex: 0 0 62px;
    display: grid;
    place-items: center;
    padding: 6px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 11px;
    color: #174b72;
    background: #fff;
    font-weight: 900;
}
.tenant-client-logo img { width: 100%; height: 100%; object-fit: contain; }
.tenant-settings { margin-bottom: 14px; }
.tenant-company-panel { overflow: hidden; border: 1px solid var(--border); border-radius: 14px; background: #fff; }
.tenant-company-panel .tenant-company-editor { border: 0; border-radius: 0; }
.tenant-company-access { padding: 14px; border-top: 1px solid var(--border); background: #f8fafc; }
.tenant-company-access-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tenant-company-access-title strong,
.tenant-company-access-title small { display: block; }
.tenant-company-access-title small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.tenant-company-access-title > span { min-width: 28px; padding: 5px 8px; border-radius: 999px; color: #174b72; background: #dcecf6; text-align: center; font-size: 11px; font-weight: 900; }
.tenant-admin-list { display: grid; gap: 8px; margin-top: 12px; }
.tenant-admin-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px solid #dfe6ed;
    border-radius: 10px;
    background: #fff;
}
.tenant-admin-item strong,
.tenant-admin-item small { display: block; }
.tenant-admin-item small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.tenant-admin-avatar { width: 34px; height: 34px; font-size: 12px; }
.tenant-admin-create { margin-top: 12px; }
.tenant-new-company { margin-top: 16px; }
.btn-small { padding: 7px 10px; font-size: 10px; }

@media (max-width: 700px) {
    .tenant-heading { align-items: flex-start; }
    .tenant-admin-item { grid-template-columns: auto minmax(0, 1fr); }
    .tenant-admin-item .btn { grid-column: 1 / -1; }
    .brand-copy strong, .brand-copy span, .brand-copy .app-version { max-width: 150px; }
}

/* ================================================================
   SPRINT 4.20 — CUSTOS DE PEÇAS POR EQUIPAMENTO
   ================================================================ */
.table-note {
    display: block;
    margin-top: 3px;
    color: var(--text-muted, #667085);
    font-size: 0.75rem;
}

.checkbox-line {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
}

.checkbox-line input {
    width: auto;
    min-width: 18px;
    height: 18px;
}

.cost-total-highlight {
    font-size: 1.25rem;
    color: var(--primary, #152238);
}

.stock-cost-note {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #f8fafc;
}

.stock-cost-note strong {
    color: #152238;
}

.stock-cost-note span {
    color: #667085;
    font-size: 0.85rem;
    line-height: 1.4;
}

/* ================================================================
   SPRINT 4.22 — PRECIFICAÇÃO A PARTIR DAS ENTRADAS
   ================================================================ */
.sale-pricing-config {
    display: grid;
    gap: 14px;
    padding: 18px;
    border: 1px solid #d9e2ec;
    border-radius: 14px;
    background: #f8fafc;
}

.sale-pricing-config[hidden] {
    display: none !important;
}

.nfe-entry-sale-pricing {
    margin-top: 16px;
}

.sale-pricing-config .compact-heading {
    margin-bottom: 0;
}

.sale-pricing-config input[readonly] {
    background: #eef2f7;
    color: #334155;
    cursor: not-allowed;
}

@media (max-width: 760px) {
    .sale-pricing-config {
        padding: 14px;
    }
}

/* ======================================================================
   SPRINT 4.28 — FILTROS NO FECHAMENTO E ALERTAS FINANCEIROS
   ====================================================================== */
.sale-orders-filter-header {
    align-items: flex-start;
    gap: 22px;
}

.sale-orders-title {
    min-width: 220px;
    padding-top: 4px;
}

.sale-orders-filter-area {
    flex: 1 1 700px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: 12px;
}

.sale-orders-filters {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: minmax(135px, .65fr) minmax(135px, .65fr) minmax(210px, 1.15fr) auto;
    align-items: end;
    gap: 9px;
}

.sale-orders-filters label {
    display: grid;
    gap: 5px;
    margin: 0;
}

.sale-orders-filters label > span {
    color: #526173;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .2px;
}

.sale-orders-filters input,
.sale-orders-filters select {
    min-height: 39px;
    padding: 8px 10px;
    border: 1px solid #cfd8e3;
    border-radius: 9px;
    background: #fff;
    font-size: 12px;
}

.sale-orders-clear-filter {
    min-height: 39px;
    white-space: nowrap;
}

.sale-orders-filter-area .selection-counter {
    flex: 0 0 auto;
    margin-bottom: 7px;
    white-space: nowrap;
}

.financial-alert-grid {
    margin-top: 0;
}

.dashboard-card-eyebrow.danger {
    color: #991b1b;
    background: #fee2e2;
}

.dashboard-card-eyebrow.warning {
    color: #92400e;
    background: #fef3c7;
}

.financial-overdue-card {
    border-color: #ead8d8;
}

.financial-alert-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 18px 22px 4px;
    overflow: hidden;
    border: 1px solid #eadfe0;
    border-radius: 11px;
    background: #eadfe0;
}

.financial-alert-summary > div {
    min-width: 0;
    padding: 12px 14px;
    background: #fffafa;
}

.financial-alert-summary small,
.financial-alert-summary strong {
    display: block;
}

.financial-alert-summary small {
    color: #7b6063;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.financial-alert-summary strong {
    margin-top: 4px;
    color: #7f1d1d;
    font-size: 19px;
}

.financial-overdue-list {
    max-height: 390px;
    overflow-y: auto;
}

@media (max-width: 1120px) {
    .sale-orders-filter-header,
    .sale-orders-filter-area {
        align-items: stretch;
        flex-direction: column;
    }

    .sale-orders-filter-area {
        flex-basis: auto;
    }

    .sale-orders-filter-area .selection-counter {
        align-self: flex-end;
        margin: 0;
    }
}

@media (max-width: 760px) {
    .sale-orders-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sale-orders-location-filter,
    .sale-orders-clear-filter {
        grid-column: 1 / -1;
    }

    .financial-alert-summary {
        grid-template-columns: 1fr;
        margin-inline: 16px;
    }
}

@media (max-width: 480px) {
    .sale-orders-filters {
        grid-template-columns: 1fr;
    }

    .sale-orders-location-filter,
    .sale-orders-clear-filter {
        grid-column: auto;
    }
}

/* Sprint 4.30 — visualização do código de barras em contas a pagar por boleto */
.boleto-entry-section[hidden] {
    display: none !important;
}

.boleto-entry-grid {
    display: grid;
    grid-template-columns: minmax(280px, 0.85fr) minmax(360px, 1.15fr);
    gap: 18px;
    align-items: stretch;
}

.boleto-code-input,
.boleto-preview-column {
    min-width: 0;
}

.boleto-code-input textarea {
    min-height: 118px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    letter-spacing: 0.02em;
    line-height: 1.55;
}

.boleto-preview-column {
    display: flex;
    flex-direction: column;
}

.boleto-preview-label {
    display: block;
    margin-bottom: 7px;
    color: #334155;
    font-size: 12px;
    font-weight: 700;
}

.boleto-barcode-preview {
    display: flex;
    min-height: 126px;
    flex: 1;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 12px;
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    background: #f8fafc;
    color: #64748b;
    text-align: center;
}

.boleto-barcode-preview > span,
.boleto-barcode-preview > strong {
    display: block;
}

.boleto-barcode-preview.is-invalid {
    flex-direction: column;
    gap: 5px;
    border-color: #fecaca;
    background: #fff7f7;
    color: #991b1b;
}

.boleto-barcode-preview.is-ready {
    border-style: solid;
    border-color: #cbd5e1;
    background: #fff;
}

.boleto-barcode-svg {
    display: block;
    width: 100%;
    max-width: 720px;
    height: 102px;
}

.boleto-detail-card {
    display: block;
}

.boleto-detail-card .barcode-text {
    display: block;
    margin-bottom: 12px;
    overflow-wrap: anywhere;
}

.boleto-detail-preview {
    width: 100%;
    min-height: 116px;
}

@media (max-width: 980px) {
    .boleto-entry-grid {
        grid-template-columns: 1fr;
    }
}

.operational-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:20px}.operational-class-card{position:relative;display:block;border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 6px 17px rgba(23,32,51,.05);transition:.18s}.operational-class-card:hover{transform:translateY(-2px);border-color:#aebed1;box-shadow:0 12px 24px rgba(23,32,51,.09)}.operational-class-card-link{display:grid;grid-template-rows:190px auto;color:inherit;text-decoration:none}.operational-class-image{width:100%;height:100%;object-fit:cover;background:#f2f5f9}.operational-class-image-edit{position:absolute;top:12px;right:12px;width:34px;height:34px;border:none;border-radius:50%;background:rgba(15,23,42,.72);color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(0,0,0,.25);transition:.15s}.operational-class-image-edit:hover{background:#1d4ed8}.operational-class-section-thumb-wrap{position:relative;display:inline-flex}.operational-class-section-thumb-wrap .operational-class-image-edit{top:-8px;right:-8px;width:28px;height:28px;font-size:13px}.operational-class-placeholder{display:grid;place-items:center;color:#25446f;background:#eaf1fb;font-size:32px;font-weight:800}.operational-class-body{display:grid;gap:10px;padding:18px}.operational-class-body h3{font-size:20px}.operational-class-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:12px;border-top:1px solid #edf0f4}.operational-class-metrics span{display:grid;gap:3px;color:var(--muted);font-size:11px;text-align:center}.operational-class-metrics strong{color:var(--navy-900);font-size:18px}.operational-class-section{display:grid;gap:18px}.operational-class-section+.operational-class-section{margin-top:18px}.operational-class-section-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.operational-class-heading{display:flex;align-items:center;gap:16px}.operational-class-section-thumb{width:120px;height:84px;border-radius:12px;object-fit:cover;background:#f2f5f9;box-shadow:0 4px 12px rgba(23,32,51,.08)}.operational-class-section-stats{display:flex;flex-wrap:wrap;gap:10px}.operational-class-section-stats span{padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:#f8fafc;color:#425066;font-size:12px}.operational-class-section-stats strong{color:var(--navy-900)}.equipment-class-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.equipment-class-card{display:grid;gap:14px;padding:18px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 6px 17px rgba(23,32,51,.04)}.equipment-class-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.equipment-class-card-head h3{font-size:18px}.equipment-class-card-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 0;border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4}.equipment-class-card-body div{display:grid;gap:4px}.equipment-class-card-body span{color:var(--muted);font-size:10px;text-transform:uppercase}.equipment-class-card-body strong{line-height:1.45}.equipment-class-card-actions{display:flex;flex-wrap:wrap;gap:10px}.equipment-class-card-actions .btn{flex:1 1 140px}.equipment-class-card-actions .btn-ghost{text-align:center}.equipment-class-card-actions .btn-secondary{text-align:center}@media(max-width:1100px){.operational-class-grid,.equipment-class-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.operational-class-section-head{flex-direction:column;align-items:flex-start}}@media(max-width:720px){.operational-class-grid,.equipment-class-card-grid,.equipment-class-card-body{grid-template-columns:1fr}.operational-class-card{grid-template-rows:170px auto}.operational-class-heading{flex-direction:column;align-items:flex-start}.operational-class-section-thumb{width:100%;height:180px}}

.model-select-feedback{margin-top:9px;padding:10px 12px;border:1px solid #9fcdb6;border-radius:9px;color:#176b45;background:#eef9f3;font-size:12px;font-weight:700}.model-select-feedback[hidden]{display:none}

/* Sprint 4.34 — locações terceirizadas e despesas em medições */
.rental-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:18px}.rental-card{display:grid;gap:15px;padding:18px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 6px 17px rgba(23,32,51,.05)}.rental-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.rental-card-header h3{margin:4px 0;font-size:18px}.rental-card-header p{color:var(--muted);font-size:12px}.rental-card-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:13px 0;border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4}.rental-card-details>div{display:grid;gap:3px}.rental-card-details span{color:var(--muted);font-size:10px;text-transform:uppercase}.rental-card-details strong{font-size:13px;line-height:1.35}.rental-card-actions{display:flex;gap:9px}.rental-card-actions .btn{flex:1;text-align:center}.rental-form-page{display:grid;gap:18px}.rental-detail-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#fff,#f5f8fc)}.rental-detail-hero h2{margin:5px 0}.rental-detail-hero p{color:var(--muted)}.rental-competence-list{display:grid;gap:8px;padding:4px 0}.rental-competence-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:10px;color:inherit;text-decoration:none;background:#fbfcfe}.rental-competence-list a:hover{border-color:#8da7c5;background:#f3f7fc}.rental-competence-list span{font-weight:800}.rental-competence-list strong{color:#25446f;font-size:12px}.rental-cancel-panel{margin-top:18px}.measurement-expense-box{margin:18px 0;padding:17px;border:1px solid var(--border);border-radius:13px;background:#fbfcfe}.measurement-expense-list{display:grid;gap:10px}.measurement-expense-row{display:grid;grid-template-columns:135px minmax(190px,1.3fr) 145px 100px 130px 130px minmax(170px,1fr) 34px;align-items:end;gap:9px;padding:12px;border:1px solid var(--border);border-radius:11px;background:#fff}.measurement-expense-row .form-group{margin:0}.measurement-expense-observation{min-width:0}.measurement-expenses-summary{margin-bottom:18px}.measurement-equipment-origin{display:flex;align-items:center;gap:8px;margin-bottom:5px}.measurement-equipment-origin small{color:var(--muted)}.status-pill.rental-origin{color:#704400;background:#fff1cb}.equipment-class-card .rental-origin-label{display:inline-flex;margin-top:6px;padding:4px 8px;border-radius:999px;color:#704400;background:#fff1cb;font-size:10px;font-weight:800}
@media(max-width:1200px){.rental-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.measurement-expense-row{grid-template-columns:repeat(3,minmax(0,1fr))}.measurement-expense-description,.measurement-expense-observation{grid-column:span 2}.measurement-remove-expense{align-self:center}}
@media(max-width:720px){.rental-card-grid,.rental-card-details,.measurement-expense-row{grid-template-columns:1fr}.rental-card-header,.rental-detail-hero{flex-direction:column;align-items:flex-start}.rental-card-actions{flex-direction:column}.measurement-expense-description,.measurement-expense-observation{grid-column:auto}.measurement-remove-expense{justify-self:end}.measurement-equipment-origin{align-items:flex-start;flex-direction:column}}


.rental-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:1200px}.rental-module-card{display:grid;gap:13px;min-height:330px;padding:28px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(145deg,#fff,#f7f9fc);color:inherit;text-decoration:none;box-shadow:0 10px 26px rgba(23,32,51,.07);transition:.18s}.rental-module-card:hover{transform:translateY(-3px);border-color:#9fb1c9;box-shadow:0 16px 34px rgba(23,32,51,.12)}.rental-module-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:15px;color:#25446f;background:#eaf1fb;font-size:30px;font-weight:800}.rental-module-card h2{font-size:25px}.rental-module-card p{color:var(--muted);line-height:1.6}.rental-module-stat{display:flex;align-items:baseline;gap:9px;margin-top:auto;padding:14px 0;border-top:1px solid #e7ebf0;border-bottom:1px solid #e7ebf0}.rental-module-stat strong{font-size:28px;color:var(--navy-900)}.rental-module-stat span{color:var(--muted)}.rental-module-action{font-weight:800;color:#25446f}.rental-equipment-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:12px;background:#f8fafc}.rental-equipment-preview div{display:grid;gap:4px}.rental-equipment-preview span{color:var(--muted);font-size:10px;text-transform:uppercase}.rental-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.rental-photo-grid a{position:relative;display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#eef2f6}.rental-photo-grid img{width:100%;height:100%;object-fit:cover;transition:.18s}.rental-photo-grid a:hover img{transform:scale(1.03)}.rental-photo-grid span{position:absolute;left:8px;bottom:8px;padding:5px 8px;border-radius:999px;color:#fff;background:rgba(12,24,42,.78);font-size:10px;font-weight:800}.rental-notes{display:grid;gap:8px}.rental-notes p{margin:0 0 12px;color:var(--muted);line-height:1.6}.calculated-input.total{font-size:20px;font-weight:900;color:#1f6b45}@media(max-width:950px){.rental-module-grid{grid-template-columns:1fr}.rental-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.rental-equipment-preview,.rental-photo-grid{grid-template-columns:1fr}}

/* Sprint 4.37 - Ações visíveis nos pedidos de venda */
.sales-order-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:145px}.sales-order-row-actions .btn{display:inline-flex!important;align-items:center;justify-content:center;min-width:62px;min-height:34px;padding:8px 11px!important;color:inherit;font-size:12px!important;line-height:1!important;text-indent:0!important;white-space:nowrap}.sales-order-row-actions .btn-secondary{color:#fff!important}.sales-order-row-actions .btn-ghost{color:#344054!important;background:#fff!important;border:1px solid #d0d5dd!important}.measurement-hero-actions .btn{white-space:nowrap}@media(max-width:720px){.sales-order-row-actions{justify-content:flex-start}.measurement-hero-actions{align-items:stretch}.measurement-hero-actions .btn,.measurement-hero-actions form,.measurement-hero-actions form button{width:100%}}

/* Sprint 4.39 — seletores por coluna na matriz de permissões */
.permission-column-selector{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;min-height:42px;cursor:pointer}.permission-column-selector input{width:16px;height:16px;margin:0;accent-color:var(--primary,#1f5eff);cursor:pointer}.permission-column-selector span{display:block;line-height:1.15}.item-name-column .permission-column-selector{align-items:flex-start}.permission-column-toggle:disabled{cursor:not-allowed;opacity:.45}

.item-action, .item-enable, .permission-column-toggle {
    appearance: auto;
    -webkit-appearance: checkbox;
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    display: inline-block;
    vertical-align: middle;
    margin: 0;
    padding: 0;
    opacity: 1;
    position: static;
    cursor: pointer;
}
.permission-action-cell label, .permission-item-name label, .permission-column-selector {
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
}
.item-permission-table td, .item-permission-table th {
    vertical-align: middle;
}

@media print {
    body { background: #fff; }
    .app-shell { display: block !important; }
    .sidebar { width: 100%; height: auto; position: static !important; display: block !important; border: none; margin-bottom: 10px; }
    .sidebar .nav-menu, .sidebar .sair-link, .sidebar .perfil-resumo { display: none !important; }
    .topbar, .btn, button, .no-print, .icon-button { display: none !important; }
    .brand { justify-content: center; border-bottom: 1px solid #e2e8f0; padding-bottom: 12px; margin-bottom: 12px; }
    .brand-mark { background: transparent !important; }
    .main, .content-wrapper { margin-left: 0 !important; padding-top: 0 !important; width: 100% !important; }
    .content-card, .panel { box-shadow: none !important; border: 1px solid #e2e8f0; }
}

.dia-sabado { background-color: #bfdbfe !important; }
.dia-domingo { background-color: #fecaca !important; }
.dia-sabado td, .dia-domingo td { background-color: transparent !important; }

/* ===== Ordens de servico: tela redesenhada ===== */
.page-breadcrumb { margin-bottom: 14px; color: var(--muted); font-size: 13px; }
.page-breadcrumb a { color: var(--muted); text-decoration: none; }
.page-breadcrumb a:hover { text-decoration: underline; }
.page-breadcrumb strong { color: var(--navy-900); }
.page-breadcrumb span { margin: 0 6px; }

/* Equipamentos: classes operacionais e visão compacta por classe */
.equipment-page-navigation{display:flex;align-items:center;justify-content:space-between;gap:16px}.equipment-page-navigation .page-breadcrumb{margin:0}.equipment-page-navigation-top{margin-bottom:14px}.equipment-page-navigation-bottom{justify-content:flex-start;margin-top:20px;padding:16px 0 4px;border-top:1px solid var(--border)}.equipment-back-button{display:inline-flex;align-items:center;justify-content:center;min-width:104px}
.operational-class-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:14px}.operational-class-card{border-radius:12px;box-shadow:0 3px 12px rgba(23,32,51,.055)}.operational-class-card-link{grid-template-rows:118px auto}.operational-class-image{object-fit:contain;padding:7px;background:linear-gradient(180deg,#fff,#f8fafc)}.operational-class-placeholder{padding:0;font-size:27px}.operational-class-body{gap:5px;padding:11px 12px 10px}.operational-class-body .eyebrow{font-size:9px}.operational-class-body h3{font-size:15px;line-height:1.22}.operational-class-metrics{gap:3px;padding-top:8px}.operational-class-metrics span{font-size:9px;line-height:1.2}.operational-class-metrics strong{font-size:15px}.operational-class-image-edit{top:8px;right:8px;width:29px;height:29px;background:#fff;color:#2563a9;border:1px solid #d9e2ed;box-shadow:0 3px 9px rgba(23,32,51,.12)}.operational-class-image-edit:hover{color:#fff}
.equipment-class-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:2px 0 14px}.equipment-class-page-heading h2{margin:2px 0 3px;font-size:25px}.equipment-class-page-heading p{color:var(--muted);font-size:12px}.equipment-class-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.equipment-class-summary-card{display:flex;align-items:center;gap:14px;min-height:86px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 4px 13px rgba(23,32,51,.045)}.equipment-class-summary-card .summary-icon{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:10px;background:#e8f1ff;color:#1764c0;font-size:20px;font-weight:800}.equipment-class-summary-card>div{display:grid;gap:1px}.equipment-class-summary-card small{text-transform:uppercase;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em}.equipment-class-summary-card strong{font-size:23px;line-height:1;color:#1764c0}.equipment-class-summary-card>div>span{color:var(--muted);font-size:10px}.equipment-class-summary-card.operating .summary-icon{background:#e5f7eb;color:#168443}.equipment-class-summary-card.operating strong{color:#168443}.equipment-class-summary-card.stopped .summary-icon{background:#eef1f4;color:#556170}.equipment-class-summary-card.stopped strong{color:#556170}.equipment-class-summary-card.plated .summary-icon{background:#fff1df;color:#e37512}.equipment-class-summary-card.plated strong{color:#e37512}
.equipment-compact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.equipment-compact-card{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 4px 14px rgba(23,32,51,.055);transition:transform .16s,box-shadow .16s}.equipment-compact-card:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(23,32,51,.09)}.equipment-compact-media{aspect-ratio:16/7;overflow:hidden;background:#eef2f6}.equipment-compact-media img{display:block;width:100%;height:100%;object-fit:cover}.equipment-compact-placeholder{display:grid;place-items:center;width:100%;height:100%;color:#356697;background:linear-gradient(135deg,#edf4fc,#dfe9f6);font-size:30px;font-weight:800}.equipment-compact-content{padding:10px}.equipment-compact-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid #edf0f4}.equipment-code{display:block;margin-bottom:2px;color:#dd7908;font-size:9px;font-weight:900;letter-spacing:.06em}.equipment-compact-title-row h3{font-size:13px;line-height:1.25}.equipment-status-pill{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#edf1f5;color:#566171;font-size:8px;font-weight:800}.equipment-status-pill.is-operating{background:#dcf5e4;color:#13773a}.equipment-compact-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px;margin:9px 0}.equipment-compact-details div{min-width:0}.equipment-compact-details .detail-wide{grid-column:1/-1}.equipment-compact-details dt{margin-bottom:1px;color:var(--muted);font-size:8px}.equipment-compact-details dd{overflow-wrap:anywhere;color:var(--navy-900);font-size:10px;font-weight:800;line-height:1.25}.equipment-compact-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding-top:8px;border-top:1px solid #edf0f4}.equipment-compact-actions .btn{min-height:31px;padding:6px 4px;text-align:center;font-size:9px}.equipment-compact-actions .danger{color:var(--danger)}.equipment-class-empty{border:1px solid var(--border);border-radius:12px;background:#fff}
@media(max-width:1400px){.operational-class-grid,.equipment-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1050px){.operational-class-grid,.equipment-compact-grid,.equipment-class-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.equipment-page-navigation{align-items:flex-start;flex-direction:column}.equipment-page-navigation .equipment-back-button{width:100%}.operational-class-grid,.equipment-compact-grid,.equipment-class-summary-grid{grid-template-columns:1fr}.operational-class-card-link{grid-template-rows:150px auto}.equipment-compact-media{aspect-ratio:16/8}.equipment-class-page-heading h2{font-size:22px}}

.os-page-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.os-page-title { font-size: 22px; margin: 0; }
.os-page-sublink { display: inline-block; margin-top: 4px; font-size: 12px; color: var(--muted); text-decoration: underline; }
.os-period-form { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.os-period-label { font-size: 13px; color: var(--muted); font-weight: 600; }
.os-period-form input[type="date"] { padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; font-size: 13px; }

.os-summary-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 20px; }
.os-summary-card {
    display: flex; align-items: center; gap: 12px;
    padding: 16px; border-radius: 14px; background: #fff;
    border: 1px solid var(--border); text-decoration: none; color: inherit;
    box-shadow: 0 4px 12px rgba(23,32,51,.04); transition: .15s;
}
.os-summary-card:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(23,32,51,.09); }
.os-summary-icon { width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; background: #eef2ff; color: #4338ca; }
.os-summary-card.info .os-summary-icon { background: #e0edff; color: #1d4ed8; }
.os-summary-card.primary .os-summary-icon { background: #e6f4ea; color: #15803d; }
.os-summary-card.warning .os-summary-icon { background: #fff1e0; color: #c2410c; }
.os-summary-card.purple .os-summary-icon { background: #f1e9fe; color: #7c3aed; }
.os-summary-card.success .os-summary-icon { background: #e3f5ec; color: #17653f; }
.os-summary-card span { display: block; font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .3px; }
.os-summary-card strong { display: block; margin-top: 3px; font-size: 22px; color: var(--navy-900); }
.os-summary-card small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }

/* Menu lateral: icones monocromaticos e rotulos alinhados */
.sidebar .nav-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    min-width: 24px;
    flex: 0 0 24px;
    margin: 0;
    color: currentColor;
    filter: grayscale(1) brightness(1.85);
    font-variant-emoji: text;
    line-height: 1;
}

.sidebar .nav-link {
    gap: 12px;
}

.sidebar .nav-group summary > span:first-child {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: center;
    column-gap: 12px;
    flex: 1;
    min-width: 0;
}

.os-layout { display: grid; grid-template-columns: 1fr; gap: 18px; align-items: start; }
.os-layout.com-painel { grid-template-columns: minmax(0, 1.7fr) minmax(320px, 1fr); }
.os-list-card { padding: 18px; }

.os-filter-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; position: relative; }
.os-filter-bar input[type="search"] { flex: 1; min-width: 220px; padding: 9px 12px; border: 1px solid var(--border); border-radius: 8px; }
.os-filter-bar select { padding: 9px 10px; border: 1px solid var(--border); border-radius: 8px; font-size: 13px; min-width: 140px; }
.os-mais-filtros { display: none; width: 100%; padding: 12px; margin-top: 6px; border: 1px solid var(--border); border-radius: 8px; background: #f8fafc; align-items: center; gap: 14px; }
.os-mais-filtros.aberto { display: flex; flex-wrap: wrap; }

.os-table th, .os-table td { white-space: nowrap; }
.os-table td.os-descricao-cell { white-space: normal; max-width: 220px; }
.os-table-row { cursor: pointer; }
.os-table-row:hover { background: #f8fafc; }
.os-table-row.selecionada { background: #eef2ff; }
.os-code-link { text-decoration: none; color: var(--navy-900); }
.os-code-link:hover { text-decoration: underline; }

.os-equip-cell { display: flex; align-items: center; gap: 10px; }
.os-equip-cell img { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; }
.os-equip-avatar { width: 40px; height: 40px; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #eaf1fb; color: #25446f; font-weight: 800; flex-shrink: 0; }
.os-equip-cell strong { display: block; font-size: 13px; }
.os-equip-cell small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }

.os-priority-pill, .os-status-pill { display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.os-priority-pill.baixa { background: #e3f5ec; color: #17653f; }
.os-priority-pill.normal { background: #e0edff; color: #1d4ed8; }
.os-priority-pill.alta { background: #fff1e0; color: #c2410c; }
.os-priority-pill.urgente { background: #fde2e2; color: #b91c1c; }
.os-status-pill.aberta { background: #e0edff; color: #1d4ed8; }
.os-status-pill.aguardando { background: #f1e9fe; color: #7c3aed; }
.os-status-pill.andamento { background: #fff1e0; color: #c2410c; }
.os-status-pill.concluida { background: #e3f5ec; color: #17653f; }
.os-status-pill.cancelada { background: #eceff3; color: #5e6673; }

.row-menu { position: relative; }
.row-menu > summary { list-style: none; cursor: pointer; padding: 4px 10px; border-radius: 8px; }
.row-menu > summary::-webkit-details-marker { display: none; }
.row-menu > summary:hover { background: #f0f2f5; }
.row-menu[open] > summary { background: #f0f2f5; }
.row-menu-list { position: absolute; right: 0; z-index: 20; min-width: 180px; margin-top: 4px; padding: 6px; border: 1px solid var(--border); border-radius: 10px; background: #fff; box-shadow: 0 12px 28px rgba(23,32,51,.14); display: flex; flex-direction: column; }
.row-menu-list a, .row-menu-list button { display: block; width: 100%; padding: 8px 10px; border: none; background: none; text-align: left; font-size: 13px; color: inherit; text-decoration: none; border-radius: 6px; cursor: pointer; font-family: inherit; }
.row-menu-list a:hover, .row-menu-list button:hover { background: #f4f6f9; }

.os-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border); font-size: 13px; color: var(--muted); }
.os-pagination-pages { display: flex; align-items: center; gap: 4px; }
.os-pagination-pages a, .os-pagination-pages span { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 6px; border-radius: 8px; text-decoration: none; color: inherit; font-size: 13px; }
.os-pagination-pages a:hover { background: #f0f2f5; }
.os-pagination-pages a.ativa { background: var(--navy-900); color: #fff; font-weight: 700; }
.os-per-page select { padding: 6px 10px; border: 1px solid var(--border); border-radius: 8px; font-size: 12px; }

.os-detail-panel { padding: 18px; position: sticky; top: 18px; max-height: calc(100vh - 36px); overflow-y: auto; }
.os-detail-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.os-detail-header h3 { margin: 0; font-size: 16px; }
.os-detail-close { color: var(--muted); text-decoration: none; font-size: 16px; padding: 4px 8px; border-radius: 6px; }
.os-detail-close:hover { background: #f0f2f5; }

.os-detail-summary { display: flex; gap: 12px; align-items: flex-start; padding-bottom: 16px; border-bottom: 1px solid var(--border); margin-bottom: 14px; }
.os-detail-thumb { width: 56px; height: 56px; border-radius: 10px; object-fit: cover; flex-shrink: 0; }
.os-detail-summary-body { flex: 1; min-width: 0; }
.os-detail-summary-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.os-detail-summary-top strong { font-size: 16px; }
.os-detail-summary-body span { display: block; margin-top: 4px; font-size: 13px; }
.os-detail-summary-body small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.os-detail-summary-side { text-align: right; font-size: 11px; color: var(--muted); display: flex; flex-direction: column; align-items: flex-end; }
.os-detail-summary-side strong { margin-top: 2px; font-size: 13px; color: var(--navy-900); }

.os-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin-bottom: 16px; overflow-x: auto; }
.os-tab-btn { padding: 10px 12px; border: none; background: none; font-size: 12px; font-weight: 600; color: var(--muted); cursor: pointer; border-bottom: 2px solid transparent; white-space: nowrap; font-family: inherit; }
.os-tab-btn.ativo { color: var(--navy-900); border-bottom-color: var(--orange); }
.os-tab-panel { display: none; }
.os-tab-panel.ativo { display: block; }

.os-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 18px; }
.os-info-grid > div span { display: block; font-size: 11px; color: var(--muted); text-transform: uppercase; }
.os-info-grid > div strong { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; }

.os-progress { margin-bottom: 18px; padding: 14px; border: 1px solid var(--border); border-radius: 10px; background: #f8fafc; }
.os-progress-head { display: flex; justify-content: space-between; font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.os-progress-head strong { color: var(--navy-900); font-size: 14px; }
.os-progress-bar { height: 8px; border-radius: 999px; background: #e5e9f0; overflow: hidden; }
.os-progress-bar-fill { height: 100%; background: linear-gradient(90deg, #2563eb, #16a34a); border-radius: 999px; }
.os-progress-stages { display: flex; justify-content: space-between; margin-top: 10px; font-size: 10px; color: var(--muted); text-align: center; }
.os-progress-stages span { flex: 1; }
.os-progress-stages span.feito { color: #16a34a; font-weight: 700; }

.os-mini-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px; }
.os-mini-list-head { display: flex; justify-content: space-between; font-size: 12px; color: var(--muted); margin-bottom: 2px; }
.os-mini-list-head a { color: var(--navy-900); text-decoration: none; font-weight: 600; }
.os-mini-list-item { display: flex; gap: 10px; align-items: flex-start; padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.os-mini-list-item > div { flex: 1; min-width: 0; }
.os-mini-list-item strong { display: block; font-size: 12px; }
.os-mini-list-item small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }

.os-detail-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.os-apontamento-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border); }
.os-apontamento-form .form-span-2 { grid-column: 1 / -1; }
.os-apontamento-form button { grid-column: 1 / -1; justify-self: start; }

@media (max-width: 1200px) {
    .os-summary-grid { grid-template-columns: repeat(3, 1fr); }
    .os-layout.com-painel { grid-template-columns: 1fr; }
    .os-detail-panel { position: static; max-height: none; }
}
@media (max-width: 700px) {
    .os-summary-grid { grid-template-columns: repeat(2, 1fr); }
    .os-info-grid, .os-apontamento-form { grid-template-columns: 1fr; }
}

/* ===== Diagrama de layout de pneus ===== */
.tire-diagram { display: flex; justify-content: center; padding: 10px 0; }
.tire-diagram-body {
    position: relative;
    width: 260px;
    max-width: 100%;
    aspect-ratio: 3 / 5;
    background: #f8fafc;
    border: 1px solid var(--border);
    border-radius: 14px;
}
.tire-diagram-chassis {
    position: absolute;
    left: 50%;
    top: 4%;
    bottom: 4%;
    width: 8px;
    transform: translateX(-50%);
    background: #dbe2ea;
    border-radius: 4px;
}
.tire-diagram-slot {
    position: absolute;
    transform: translate(-50%, -50%);
}
.tire-chip {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 10px;
    border: 2px solid #94a3b8;
    background: #fff;
    text-align: center;
    line-height: 1.2;
}
.tire-chip strong { font-size: 11px; }
.tire-chip small { font-size: 9px; color: var(--muted); }
.tire-chip.aplicado { border-color: #16a34a; background: #e9f8ef; cursor: grab; }
.tire-chip.aplicado strong { color: #15803d; }
.tire-chip.vazio { border-style: dashed; color: var(--muted); }
.tire-diagram-slot.ocupada { z-index: 2; }

.tire-control-layout { display: grid; grid-template-columns: 1fr 1.1fr; gap: 20px; align-items: start; }
.tire-stock-panel { border: 1px solid var(--border); border-radius: 12px; padding: 14px; background: #fff; }
.tire-stock-panel h3 { margin: 0 0 10px; font-size: 15px; }
.tire-stock-list { display: flex; flex-direction: column; gap: 8px; max-height: 420px; overflow-y: auto; }
.tire-stock-item {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px;
    background: #fff; cursor: grab;
}
.tire-stock-item:hover { border-color: #94a3b8; background: #f8fafc; }
.tire-stock-item strong { display: block; font-size: 13px; }
.tire-stock-item small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }

.tire-dropzones { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.tire-dropzone {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    padding: 16px; border: 2px dashed var(--border); border-radius: 12px; text-align: center;
    color: var(--muted); font-size: 12px; font-weight: 600;
}
.tire-dropzone.recapagem { border-color: #f59e0b; color: #b45309; }
.tire-dropzone.descarte { border-color: #ef4444; color: #b91c1c; }
.tire-dropzone.disponivel { border-color: #16a34a; color: #15803d; }
.tire-dropzone.dragover { background: #eef2ff; }

.tire-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
.tire-summary-card { padding: 14px; border-radius: 12px; border: 1px solid var(--border); background: #fff; text-align: center; }
.tire-summary-card strong { display: block; font-size: 22px; }
.tire-summary-card span { display: block; margin-top: 4px; font-size: 11px; color: var(--muted); text-transform: uppercase; }

@media (max-width: 900px) {
    .tire-control-layout { grid-template-columns: 1fr; }
    .tire-summary-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Ficha executiva do equipamento */
.equipment-consult-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.equipment-consult-toolbar > div {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.equipment-consult-detail {
    display: grid;
    gap: 14px;
}

.equipment-consult-list-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 220px;
}

.equipment-consult-thumbnail {
    display: grid;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    place-items: center;
    overflow: hidden;
    border: 1px solid #dfe6ef;
    border-radius: 10px;
    color: #3c5f8b;
    background: linear-gradient(145deg, #f8fafc, #e9eff7);
}

.equipment-consult-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.equipment-consult-thumbnail > span { font-size: 22px; }
.equipment-consult-list-name { min-width: 0; }
.equipment-consult-list-name strong,
.equipment-consult-list-name small { display: block; }
.equipment-consult-list-name strong { color: #142641; }
.equipment-consult-list-name small { margin-top: 3px; color: var(--muted); }
.equipment-consult-row > td:first-child { white-space: nowrap; }

.equipment-consult-hero-card,
.equipment-consult-panel,
.equipment-consult-kpi {
    border: 1px solid #dfe6ef;
    background: #fff;
    box-shadow: 0 5px 16px rgba(23, 32, 51, .045);
}

.equipment-consult-hero-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 235px;
    min-height: 210px;
    border-radius: 14px;
    overflow: hidden;
}

.equipment-consult-hero-main {
    display: flex;
    align-items: center;
    gap: 25px;
    min-width: 0;
    padding: 24px;
}

.equipment-consult-photo {
    display: flex;
    flex: 0 0 205px;
    height: 150px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    overflow: hidden;
    border-radius: 12px;
    color: #31527c;
    background: linear-gradient(145deg, #f8fafc, #e9eff7);
}

.equipment-consult-photo img { width: 100%; height: 100%; object-fit: contain; }
.equipment-consult-photo > span { font-size: 56px; }
.equipment-consult-photo > small { color: var(--muted); }

.equipment-consult-summary { min-width: 0; flex: 1; }
.equipment-consult-summary h2 { margin: 4px 0 20px; color: #102442; font-size: 24px; }

.equipment-consult-identity-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(105px, 1fr));
    gap: 16px 0;
}

.equipment-consult-identity-grid > div {
    min-width: 0;
    padding: 0 14px;
    border-left: 1px solid #e5eaf1;
}

.equipment-consult-identity-grid > div:nth-child(4n + 1) { padding-left: 0; border-left: 0; }
.equipment-consult-identity-grid span,
.equipment-consult-identity-grid strong { display: block; }
.equipment-consult-identity-grid span { margin-bottom: 5px; color: #66758a; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.equipment-consult-identity-grid strong { overflow: hidden; color: #162845; font-size: 12px; text-overflow: ellipsis; }

.equipment-status-pill {
    width: max-content;
    padding: 5px 12px;
    border-radius: 999px;
    color: #167443 !important;
    background: #e8f7ed;
}

.equipment-consult-qr {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 7px;
    padding: 18px;
    border-left: 1px solid #e2e8f0;
    text-align: center;
}

.equipment-consult-qr > strong { color: #172c4b; font-size: 13px; }
.equipment-qr-frame { display: grid; width: 145px; height: 145px; padding: 8px; place-items: center; border: 1px solid #e1e7ef; border-radius: 8px; background: #fff; }
.equipment-consult-qr .equipment-qr-frame img { width: 100%; height: 100%; object-fit: contain; filter: invert(1); }
.equipment-consult-qr small { color: var(--muted); font-size: 10px; line-height: 1.35; }
.equipment-consult-qr a { color: #1e5eb8; font-size: 11px; font-weight: 800; }

.equipment-consult-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.equipment-consult-kpi {
    display: flex;
    align-items: center;
    gap: 15px;
    min-height: 96px;
    padding: 16px 18px;
    border-radius: 12px;
}

.equipment-consult-kpi .kpi-symbol {
    display: grid;
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    font-size: 24px;
    font-weight: 800;
}

.equipment-consult-kpi div { min-width: 0; }
.equipment-consult-kpi small,
.equipment-consult-kpi strong,
.equipment-consult-kpi div > span { display: block; }
.equipment-consult-kpi small { margin-bottom: 3px; font-size: 11px; font-weight: 800; }
.equipment-consult-kpi strong { color: #152a48; font-size: 22px; line-height: 1.1; }
.equipment-consult-kpi div > span { margin-top: 5px; overflow: hidden; color: #66758a; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.equipment-consult-kpi.kpi-blue { background: #f7faff; }
.equipment-consult-kpi.kpi-blue .kpi-symbol { background: #2675d8; }
.equipment-consult-kpi.kpi-blue small { color: #235ca7; }
.equipment-consult-kpi.kpi-green { background: #f4fbf7; }
.equipment-consult-kpi.kpi-green .kpi-symbol,
.equipment-consult-kpi.kpi-status .kpi-symbol { background: #24a65a; }
.equipment-consult-kpi.kpi-green small,
.equipment-consult-kpi.kpi-status small,
.equipment-consult-kpi.kpi-status strong { color: #187c42; }
.equipment-consult-kpi.kpi-orange { background: #fff9ee; }
.equipment-consult-kpi.kpi-orange .kpi-symbol { background: #f5a018; }
.equipment-consult-kpi.kpi-orange small { color: #b36a08; }
.equipment-consult-kpi.kpi-status { background: #f4fbf7; }

.equipment-consult-main-grid {
    display: grid;
    grid-template-columns: 3fr 5fr 5fr;
    gap: 14px;
    align-items: stretch;
}

.equipment-consult-spec-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.equipment-consult-panel { min-width: 0; border-radius: 12px; overflow: hidden; }
.equipment-consult-panel > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 48px;
    padding: 12px 16px;
    border-bottom: 1px solid #e5eaf1;
}
.equipment-consult-panel > header h3 { margin: 0; color: #183254; font-size: 14px; }
.equipment-consult-panel > header a { color: #1e5eb8; font-size: 11px; font-weight: 800; }
.equipment-consult-panel .empty-state { padding: 28px 18px; }

.equipment-general-panel dl { display: grid; gap: 0; margin: 0; padding: 8px 16px 15px; }
.equipment-general-panel dl > div { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid #edf1f5; }
.equipment-general-panel dl > div:last-child { border-bottom: 0; }
.equipment-general-panel dt { color: #65748a; font-size: 10px; font-weight: 700; }
.equipment-general-panel dd { margin: 0; overflow-wrap: anywhere; color: #152a48; font-size: 11px; font-weight: 800; }

.equipment-compact-table th { padding: 9px 10px; color: #65748a; font-size: 9px; }
.equipment-compact-table td { padding: 9px 10px; font-size: 10px; }
.equipment-maintenance-panel .table-wrap { max-height: 350px; overflow: auto; }

.equipment-tire-layout-content { display: grid; grid-template-columns: 175px minmax(360px, 1fr); align-items: center; gap: 8px; padding: 10px; }
.equipment-tire-diagram { min-width: 0; transform: scale(.82); transform-origin: center; }

.tire-condition { display: inline-flex; align-items: center; gap: 5px; font-size: 9px; font-weight: 800; white-space: nowrap; }
.tire-condition::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #94a3b8; }
.tire-condition.good { color: #168247; }
.tire-condition.good::before { background: #22b45f; }
.tire-condition.attention { color: #b66d08; }
.tire-condition.attention::before { background: #f3a30f; }
.tire-condition.danger { color: #be2f2f; }
.tire-condition.danger::before { background: #e43d3d; }
.tire-condition.empty { color: #7a8798; }

@media (max-width: 1380px) {
    .equipment-consult-main-grid { grid-template-columns: 1fr 1.7fr; }
    .equipment-tire-panel { grid-column: 1 / -1; }
    .equipment-tire-layout-content { grid-template-columns: 220px minmax(0, 1fr); }
}

@media (max-width: 1120px) {
    .equipment-consult-hero-card { grid-template-columns: 1fr 205px; }
    .equipment-consult-hero-main { align-items: flex-start; }
    .equipment-consult-photo { flex-basis: 150px; height: 125px; }
    .equipment-consult-identity-grid { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
    .equipment-consult-identity-grid > div:nth-child(4n + 1) { padding-left: 14px; border-left: 1px solid #e5eaf1; }
    .equipment-consult-identity-grid > div:nth-child(2n + 1) { padding-left: 0; border-left: 0; }
    .equipment-consult-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .equipment-consult-spec-grid { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .equipment-consult-toolbar { align-items: stretch; flex-direction: column; }
    .equipment-consult-toolbar > div { flex-direction: column; }
    .equipment-consult-toolbar .btn { width: 100%; }
    .equipment-consult-hero-card { grid-template-columns: 1fr; }
    .equipment-consult-hero-main { flex-direction: column; }
    .equipment-consult-photo { width: 100%; height: 180px; flex-basis: auto; }
    .equipment-consult-qr { border-top: 1px solid #e2e8f0; border-left: 0; }
    .equipment-consult-main-grid { grid-template-columns: 1fr; }
    .equipment-tire-panel { grid-column: auto; }
    .equipment-tire-layout-content { grid-template-columns: 1fr; }
    .equipment-tire-diagram { transform: none; }
}

@media (max-width: 560px) {
    .equipment-consult-identity-grid,
    .equipment-consult-kpis { grid-template-columns: 1fr; }
    .equipment-consult-identity-grid > div { padding: 0 0 10px !important; border-left: 0 !important; border-bottom: 1px solid #e5eaf1; }
}
/* Contexto hierárquico de grupo/empresa */
.company-context-form{display:flex;align-items:flex-end;justify-content:center;gap:8px;min-width:0;width:100%}
.company-context-form label,.company-context-fixed{display:flex;flex-direction:column;gap:3px;min-width:0}
.company-context-form label>span,.company-context-fixed>span{font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#718096}
.company-context-form select{height:38px;min-width:175px;max-width:245px;border:1px solid #d6dee8;border-radius:9px;background:#fff;color:#172033;padding:0 30px 0 10px;font:600 12px Inter,Arial,sans-serif;box-shadow:0 2px 8px rgba(15,23,42,.05)}
.company-context-form select:disabled{color:#718096;background:#f4f6f9;cursor:not-allowed}
.company-context-fixed{border:1px solid #d6dee8;border-radius:9px;background:#fff;padding:7px 11px;min-width:180px}
.company-context-fixed strong{font-size:12px;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1100px){.company-context-form label>span,.company-context-fixed>span{display:none}.company-context-form select{min-width:140px;max-width:180px}.company-context-fixed{min-width:140px}}
@media(max-width:760px){.topbar-center{order:3;width:100%}.company-context-form{justify-content:stretch}.company-context-form label{flex:1}.company-context-form select{width:100%;max-width:none;min-width:0}.company-context-fixed{width:100%}}

/* Identidade no menu lateral: plataforma para admin geral; empresa para usuários do cliente */
.brand-platform-logo{display:block;width:100%;max-width:190px;height:58px;object-fit:cover;object-position:center 50%;border-radius:10px}
.brand-company-logo{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;overflow:hidden;border-radius:10px;background:rgba(255,255,255,.96);padding:4px}
.brand-company-logo img{display:block;width:100%;height:100%;object-fit:contain}
.brand-copy-company{min-width:0;display:flex;align-items:center}
.brand-copy-company strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
