html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}
/* ===== TRANSPORTE WEB - CUSTOM ===== */
:root {
    --primary:   #1a3c5e;
    --primary-dark: #122840;
    --accent:    #e65100;
    --border:    #dee2e6;
}

.crud-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    flex-wrap: wrap;
    gap: .5rem;
}
.crud-header h2 { margin: 0; font-size: 1.25rem; color: var(--primary); }
.crud-header .search-box { width: min(360px, 100%); }

.table-responsive { border-radius: 8px; box-shadow: 0 1px 6px rgba(0,0,0,.07); }
.table { margin: 0; background: #fff; }
.table thead th { background: var(--primary); color: #fff; font-weight: 600; font-size: .82rem; border: none; }
.table tbody tr:hover { background: #f0f3ff; }
.table tbody tr.table-primary td { background: #cfe2ff; }
.col-acoes { width: 110px; text-align: center; white-space: nowrap; }

.modal-overlay {
    position: fixed; inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
}
.modal-card {
    background: #fff;
    border-radius: 10px;
    width: 100%;
    max-width: 680px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 40px rgba(0,0,0,.2);
    animation: slideUp .2s ease;
}
@keyframes slideUp { from { transform: translateY(24px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border);
    background: var(--primary);
    color: #fff;
    border-radius: 10px 10px 0 0;
}
.modal-header h5 { margin: 0; font-size: 1rem; }
.modal-header .btn-close { filter: invert(1); }
.modal-body { padding: 1.25rem; overflow-y: auto; }
.modal-footer { padding: 1rem 1.25rem; border-top: 1px solid var(--border); display: flex; gap: .5rem; justify-content: flex-end; }

/* Compact fields to match legacy dense window layout */
.modal-body .row.g-2 {
    --bs-gutter-y: .35rem;
    --bs-gutter-x: .5rem;
}

.modal-body .form-label {
    font-size: .74rem;
    margin-bottom: .12rem;
    line-height: 1.1;
}

.modal-body .form-control,
.modal-body .form-select {
    min-height: 1.55rem;
    padding: .08rem .4rem;
    font-size: .76rem;
    border-radius: .2rem;
}

.modal-body .form-control.form-control-sm,
.modal-body .form-select.form-select-sm {
    min-height: 1.45rem;
    padding: .06rem .35rem;
    font-size: .74rem;
}

.modal-body .col-md-6 {
    margin-bottom: .1rem;
}

.finance-form-shell,
.finance-avulso,
.finance-related-section {
    border: 1px solid #d7dee8;
    background: #f8fafc;
    border-radius: 6px;
    padding: .75rem;
}

.finance-avulso {
    background: #fffdf7;
    border-color: #ead8a6;
}

.finance-related {
    display: grid;
    gap: .75rem;
}

.finance-related-section h6,
.finance-avulso h6 {
    color: var(--primary-dark);
    font-weight: 700;
}

.finance-related-grid {
    max-height: 230px;
    overflow: auto;
    border: 1px solid #e0e6ef;
    background: #fff;
    border-radius: 5px;
}

.finance-related-grid thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #eef3f8;
}

.veiculo-form-shell .nav-tabs {
    gap: .15rem;
}

.veiculo-form-shell .nav-link {
    padding: .32rem .65rem;
    font-size: .82rem;
}

.veiculo-tab-body {
    min-height: 430px;
}

.veiculo-tab-body .finance-related {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.veiculo-tab-body .finance-related-section {
    padding: .55rem;
}

.veiculo-tab-body .finance-related-grid {
    max-height: 150px;
}

.condutor-form-shell .nav-tabs {
    gap: .15rem;
}

.condutor-form-shell .nav-link {
    padding: .32rem .65rem;
    font-size: .82rem;
}

.condutor-tab-body {
    min-height: 360px;
}

.condutor-observacao {
    min-height: 14rem;
    resize: vertical;
}

.finance-memo {
    min-height: 8rem;
    resize: vertical;
    line-height: 1.35;
}

.banco-form-shell,
.cheque-form-shell {
    max-width: 1120px;
}

.banco-tabs .nav-link {
    padding: .35rem .75rem;
    font-size: .82rem;
}

@media (max-width: 1024px) {
    .crud-header {
        align-items: stretch;
    }

    .crud-header .d-flex {
        width: 100%;
    }

    .crud-header .search-box {
        flex: 1 1 260px;
    }

    .table thead th,
    .table tbody td {
        font-size: .78rem;
        padding: .4rem .45rem;
    }

    .col-acoes {
        width: 90px;
    }

    .modal-card {
        max-width: 96vw;
        max-height: 92vh;
    }

    .veiculo-tab-body .finance-related {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .table-slim table,
    .table-slim thead,
    .table-slim tbody,
    .table-slim th,
    .table-slim td,
    .table-slim tr {
        display: block;
    }

    .table-slim thead {
        display: none;
    }

    .table-slim tbody tr {
        border: 1px solid var(--border);
        border-radius: 8px;
        margin: .55rem;
        padding: .4rem .55rem;
        background: #fff;
    }

    .table-slim tbody td {
        border: 0;
        display: grid;
        grid-template-columns: 44% 56%;
        gap: .35rem;
        padding: .28rem 0;
        white-space: normal;
    }

    .table-slim tbody td::before {
        content: attr(data-label);
        font-weight: 700;
        color: var(--primary-dark);
    }

    .table-slim tbody td.col-acoes {
        display: flex;
        justify-content: flex-end;
        gap: .4rem;
        padding-top: .5rem;
    }

    .table-slim tbody td.col-acoes::before {
        content: none;
    }
}

/* ===== Operational dashboard ===== */
.ops-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 0 1.25rem;
    border-bottom: 1px solid #d8e0ea;
    margin-bottom: 1rem;
}

.ops-kicker {
    margin: 0 0 .15rem;
    color: #516174;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
}

.ops-hero h1 {
    margin: 0;
    font-size: 1.65rem;
    color: #142337;
}

.ops-muted {
    margin: .2rem 0 0;
    color: #66758a;
}

.ops-hero-status {
    display: grid;
    gap: .15rem;
    text-align: right;
    color: #516174;
    font-size: .84rem;
}

.ops-hero-status strong {
    color: #142337;
}

.ops-loading {
    border: 1px solid #d8e0ea;
    background: #f7f9fc;
    padding: 1rem;
    border-radius: 6px;
    color: #516174;
}

.ops-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}

.ops-metric {
    display: grid;
    gap: .2rem;
    min-height: 7rem;
    padding: .85rem;
    background: #fff;
    border: 1px solid #d8e0ea;
    border-left: 4px solid #4b6f9f;
    border-radius: 6px;
    text-decoration: none;
    color: #142337;
    box-shadow: 0 1px 4px rgba(20, 35, 55, .06);
}

.ops-metric span {
    color: #516174;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
}

.ops-metric strong {
    font-size: 1.75rem;
    line-height: 1;
}

.ops-metric small {
    color: #66758a;
    line-height: 1.25;
}

.ops-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    gap: 1rem;
}

.ops-panel {
    border: 1px solid #d8e0ea;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 1px 4px rgba(20, 35, 55, .06);
}

.ops-panel-header {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    padding: .8rem .9rem;
    border-bottom: 1px solid #e7edf4;
}

.ops-panel-header h2 {
    margin: 0;
    font-size: 1rem;
    color: #142337;
}

.ops-panel-header span {
    color: #66758a;
    font-size: .78rem;
}

.ops-alert-list,
.ops-actions {
    display: grid;
    gap: .5rem;
    padding: .75rem;
}

.ops-alert {
    display: grid;
    gap: .12rem;
    padding: .65rem .75rem;
    border: 1px solid #e1e7ef;
    border-left: 4px solid #4b6f9f;
    border-radius: 5px;
    color: #142337;
    text-decoration: none;
}

.ops-alert span {
    color: #66758a;
    font-size: .86rem;
}

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

.ops-actions a {
    padding: .7rem .75rem;
    border: 1px solid #d8e0ea;
    border-radius: 5px;
    color: #142337;
    text-decoration: none;
    font-weight: 600;
    background: #f8fafc;
}

.ops-actions a:hover,
.ops-metric:hover,
.ops-alert:hover {
    border-color: #9fb2ca;
    background: #f3f7fb;
}

.tone-green {
    border-left-color: #1b8a5a;
}

.tone-blue {
    border-left-color: #2b6cb0;
}

.tone-amber {
    border-left-color: #d97706;
}

.tone-red {
    border-left-color: #c2413a;
}

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

    .ops-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .ops-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .ops-hero-status {
        text-align: left;
    }

    .ops-metrics,
    .ops-actions {
        grid-template-columns: 1fr;
    }
}
