:root {
    --of-primary: #013166;
    --of-secondary: #09619C;
    --of-accent: #04A7EC;
    --of-warn: #FB9406;
    --of-warn-dark: #E96E07;
    --of-bg: #F6F8F8;
    --of-card: #ffffff;
    --of-border: rgba(1,49,102,.12);
    --of-text: #0f172a;
    --of-muted: rgba(15,23,42,.65);
    --of-radius: 16px;
    --of-shadow: 0 10px 30px rgba(1,49,102,.10);
}

html, body {
    background: linear-gradient(180deg, var(--of-bg), #ffffff);
}

.of-app {
    min-height: 100vh;
    display: flex;
}

.of-sidebar {
    width: 280px;
    background: linear-gradient(180deg, var(--of-primary), #022a55);
    color: rgba(255,255,255,.92);
    border-right: 1px solid rgba(255,255,255,.08);
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
}

    .of-sidebar .brand {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 14px 14px;
        border-bottom: 1px solid rgba(255,255,255,.08);
    }

        .of-sidebar .brand img {
            width: 30px;
            height: 30px;
            border-radius: 8px;
            object-fit: contain;
            padding: 0;
            flex-shrink: 0;
        }

        .of-sidebar .brand .title {
            font-weight: 800;
            font-size: .95rem;
            letter-spacing: .2px;
            line-height: 1.1;
        }

        .of-sidebar .brand .subtitle {
            font-size: .74rem;
            color: rgba(255,255,255,.70);
            line-height: 1.2;
        }

.of-nav {
    padding: 12px 10px 18px 10px;
}

    .of-nav .section {
        margin: 12px 10px 6px;
        font-size: .72rem;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: rgba(255,255,255,.55);
    }

    .of-nav a {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 10px 12px;
        border-radius: 12px;
        color: rgba(255,255,255,.90);
        text-decoration: none;
        transition: .15s ease;
    }

        .of-nav a:hover {
            background: rgba(255,255,255,.08);
            color: #fff;
        }

        .of-nav a.active {
            background: rgba(4,167,236,.18);
            border: 1px solid rgba(4,167,236,.22);
        }

    .of-nav i {
        font-size: 1.05rem;
        color: rgba(255,255,255,.90);
    }

    .of-nav .pill {
        margin-left: auto;
        font-size: .72rem;
        padding: 2px 8px;
        border-radius: 999px;
        background: rgba(251,148,6,.18);
        border: 1px solid rgba(251,148,6,.25);
        color: rgba(255,255,255,.95);
    }

.of-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.of-topbar {
    position: sticky;
    top: 0;
    z-index: 20;
    backdrop-filter: blur(10px);
    background: rgba(255,255,255,.78);
    border-bottom: 1px solid var(--of-border);
}

    .of-topbar .inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 12px 18px;
        gap: 12px;
    }

    .of-topbar .left {
        display: flex;
        align-items: center;
        gap: 10px;
    }

.of-btn-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--of-border);
    background: #fff;
    box-shadow: 0 6px 18px rgba(1,49,102,.06);
}

    .of-btn-icon:hover {
        border-color: rgba(4,167,236,.35);
    }

.of-content {
    padding: 18px;
}

.of-card {
    background: var(--of-card);
    border: 1px solid var(--of-border);
    border-radius: var(--of-radius);
    box-shadow: var(--of-shadow);
}

.of-card-header {
    padding: 16px 16px 0 16px;
}

.of-card-body {
    padding: 16px;
}

.of-page-title {
    font-weight: 800;
    letter-spacing: -.3px;
    color: var(--of-text);
}

.of-page-subtitle {
    color: var(--of-muted);
    margin-top: -2px;
}

.table {
    margin-bottom: 0;
}

    .table thead th {
        font-size: .82rem;
        color: rgba(15,23,42,.75);
        border-bottom: 1px solid rgba(1,49,102,.12);
    }

    .table tbody tr {
        vertical-align: middle;
    }

.btn-primary {
    background: linear-gradient(180deg, var(--of-secondary), var(--of-primary));
    border: none;
}

    .btn-primary:hover {
        filter: brightness(.98);
    }

.btn-outline-primary {
    border-color: rgba(9,97,156,.35);
    color: var(--of-secondary);
}

    .btn-outline-primary:hover {
        background: rgba(9,97,156,.08);
        border-color: rgba(9,97,156,.50);
        color: var(--of-primary);
    }

.toast.of-toast {
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(0,0,0,.18);
    overflow: hidden;
    min-width: 320px;
    backdrop-filter: blur(10px);
}

    .toast.of-toast .toast-body {
        padding: 14px 16px;
    }

.offcanvas.of-mobile-offcanvas,
#ofMobileMenu {
    width: 320px;
    max-width: 88vw;
}

.of-mobile-menu-body {
    background: linear-gradient(180deg, var(--of-primary), #022a55);
    padding: 0;
}

    .of-mobile-menu-body .of-nav {
        padding: 12px 10px 18px 10px;
    }

        .of-mobile-menu-body .of-nav .section {
            margin: 12px 10px 6px;
            font-size: .72rem;
            letter-spacing: .12em;
            text-transform: uppercase;
            color: rgba(255,255,255,.55);
        }

        .of-mobile-menu-body .of-nav a {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 10px 12px;
            border-radius: 12px;
            color: rgba(255,255,255,.90);
            text-decoration: none;
            transition: .15s ease;
        }

            .of-mobile-menu-body .of-nav a:hover {
                background: rgba(255,255,255,.08);
                color: #fff;
            }

            .of-mobile-menu-body .of-nav a.active {
                background: rgba(4,167,236,.18);
                border: 1px solid rgba(4,167,236,.22);
            }

        .of-mobile-menu-body .of-nav i {
            font-size: 1.05rem;
            color: rgba(255,255,255,.90);
        }

        .of-mobile-menu-body .of-nav .pill {
            margin-left: auto;
            font-size: .72rem;
            padding: 2px 8px;
            border-radius: 999px;
            background: rgba(251,148,6,.18);
            border: 1px solid rgba(251,148,6,.25);
            color: rgba(255,255,255,.95);
        }

.of-login-entry-btn {
    min-height: 42px;
    padding: 8px 14px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: #fff;
    background: linear-gradient(180deg, var(--of-secondary), var(--of-primary));
    box-shadow: 0 8px 20px rgba(1,49,102,.18);
    border: none;
    font-weight: 700;
    transition: .18s ease;
}

    .of-login-entry-btn:hover {
        color: #fff;
        transform: translateY(-1px);
        box-shadow: 0 12px 24px rgba(1,49,102,.22);
    }

    .of-login-entry-btn i {
        font-size: 1rem;
        line-height: 1;
    }

.of-user-menu-btn {
    min-height: 42px;
    padding: 6px 10px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--of-border);
    background: #fff;
    box-shadow: 0 6px 18px rgba(1,49,102,.06);
    color: var(--of-text);
}

    .of-user-menu-btn:hover {
        border-color: rgba(4,167,236,.35);
    }

    .of-user-menu-btn::after {
        margin-left: 2px;
    }

.of-user-menu-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    line-height: 1;
    color: var(--of-primary);
}

.of-user-menu-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.05;
}

.of-user-menu-name {
    font-weight: 700;
    font-size: .93rem;
    color: var(--of-text);
    max-width: 180px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.of-user-menu-status {
    display: flex;
    align-items: center;
    gap: .3rem;
    max-width: 180px;
    font-size: .78rem;
    color: var(--of-muted);
}

.of-user-menu-status > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.of-user-menu-status > i {
    flex: 0 0 auto;
    color: var(--of-primary);
}

.of-user-dropdown {
    border: 1px solid var(--of-border);
    border-radius: 16px;
    overflow: hidden;
}

.of-user-dropdown-icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(1,49,102,.08);
    color: var(--of-primary);
    flex-shrink: 0;
}

/* Mobile */
@media (max-width: 991.98px) {
    .of-sidebar {
        display: none;
    }

    .of-app {
        display: block;
    }

    .of-main {
        width: 100%;
        min-width: 0;
    }

    .of-topbar .inner {
        padding: 10px 14px;
    }

    .of-topbar .left {
        min-width: 0;
        flex: 1;
    }

    .of-page-title {
        font-size: 1.15rem;
        line-height: 1.1;
    }

    .of-page-subtitle {
        font-size: .92rem;
        line-height: 1.35;
    }

    .of-content {
        padding: 12px;
    }

    .of-card-body {
        padding: 14px;
    }

    .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 575.98px) {
    .of-topbar .inner {
        padding: 10px 12px;
        gap: 8px;
    }

    .of-page-title {
        font-size: 1rem;
    }

    .of-page-subtitle {
        font-size: .84rem;
    }

    .of-btn-icon {
        width: 40px;
        height: 40px;
        border-radius: 12px;
    }

    .of-login-entry-btn {
        min-height: 40px;
        padding: 8px 12px;
        border-radius: 12px;
    }

    .of-user-menu-btn {
        width: 40px;
        height: 40px;
        min-height: 40px;
        padding: 0;
        justify-content: center;
        border-radius: 12px;
    }

        .of-user-menu-btn::after {
            display: none;
        }

    .of-sidebar .brand img {
        width: 26px;
        height: 26px;
        border-radius: 7px;
    }

    .of-sidebar .brand .title {
        font-size: .9rem;
    }

    .of-sidebar .brand .subtitle {
        font-size: .7rem;
    }

    .toast.of-toast {
        min-width: unset;
        width: calc(100vw - 24px);
    }
}

.of-mobile-offcanvas .offcanvas-header {
    border-bottom: 1px solid var(--of-border);
    background: #fff;
    padding: 14px 16px;
}

.of-mobile-menu-title {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--of-text);
    line-height: 1.1;
}

.of-mobile-logo,
.of-mobile-subtitle {
    display: none !important;
}

/* =========================
   GRID RESPONSIVA / MOBILE
   ========================= */

.of-grid-wrap {
    width: 100%;
}

.of-grid-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

    .of-grid-table thead th {
        white-space: nowrap;
        font-size: .82rem;
        font-weight: 700;
        color: rgba(15,23,42,.75);
        border-bottom: 1px solid rgba(1,49,102,.12);
        background: #fff;
    }

    .of-grid-table tbody tr {
        vertical-align: top;
    }

    .of-grid-table tbody td {
        vertical-align: middle;
    }

    .of-grid-table .of-col-actions {
        white-space: nowrap;
    }

.of-grid-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-end;
}

    .of-grid-actions .btn,
    .of-grid-actions a {
        min-height: 34px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

.of-grid-title {
    font-weight: 700;
    color: var(--of-text);
    margin-bottom: 2px;
}

.of-grid-subtitle {
    font-size: .9rem;
    color: var(--of-muted);
}

.of-grid-badge-stack {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.of-grid-card-total {
    font-weight: 800;
    color: var(--of-text);
}

@media (max-width: 767.98px) {
    .of-listing-shell,
    .of-list-card,
    .of-list-card .card-body {
        min-width: 0;
        max-width: 100%;
        overflow: visible;
    }

    .of-grid-wrap {
        overflow: visible;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .of-grid-table,
    .of-grid-table thead,
    .of-grid-table tbody,
    .of-grid-table th,
    .of-grid-table td,
    .of-grid-table tr {
        display: block;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

        .of-grid-table thead {
            display: none;
        }

        .of-grid-table {
            table-layout: fixed;
            width: 100% !important;
            max-width: 100% !important;
            min-width: 0 !important;
        }

        .of-grid-table th,
        .of-grid-table th[style],
        .of-grid-table td[style] {
            width: auto !important;
            max-width: 100% !important;
            min-width: 0 !important;
        }

        .of-grid-table col,
        .of-grid-table colgroup {
            width: auto !important;
            max-width: 100% !important;
            min-width: 0 !important;
        }

        .of-grid-table tbody tr {
            background: #fff;
            border: 1px solid var(--of-border);
            border-radius: 16px;
            box-shadow: 0 8px 24px rgba(1,49,102,.08);
            margin-bottom: 14px;
            padding: 10px 12px;
            overflow: visible;
        }

        .of-grid-table tbody td {
            border: 0 !important;
            padding: 8px 0 !important;
            text-align: left !important;
            min-width: 0;
            overflow: visible;
        }

            .of-grid-table tbody td::before {
                content: attr(data-label);
                display: block;
                font-size: .76rem;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: .04em;
                color: var(--of-muted);
                margin-bottom: 4px;
            }

            .of-grid-table tbody td.of-no-label::before {
                display: none;
            }

            .of-grid-table tbody td + td {
                border-top: 1px dashed rgba(1,49,102,.08);
            }

        .of-grid-table .of-col-actions {
            padding-top: 10px !important;
            width: 100% !important;
            max-width: none !important;
            overflow: visible !important;
        }

        .of-grid-table .of-col-actions::before {
            content: none;
        }

    .of-grid-actions {
        justify-content: flex-start;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        width: 100% !important;
        min-width: 0 !important;
    }

        .of-grid-actions .btn,
        .of-grid-actions a,
        .of-grid-actions form {
            flex: 0 0 auto;
            width: 100% !important;
            max-width: none !important;
            min-width: 0 !important;
        }

        .of-grid-actions .btn,
        .of-grid-actions a {
            min-height: 42px;
            display: inline-flex !important;
            align-items: center;
            justify-content: center;
            text-align: center;
            white-space: normal;
            overflow: visible;
            text-overflow: clip;
            overflow-wrap: anywhere;
            line-height: 1.25;
        }

    .of-grid-table .text-end,
    .of-grid-table .text-center {
        text-align: left !important;
    }

    .of-grid-table tbody td > * {
        min-width: 0;
        max-width: 100%;
    }
}
/* =========================
   LISTAGENS COMERCIAIS
   ========================= */

.of-listing-shell {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.of-listing-pill {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 14px;
    border-radius: 999px;
    background: rgba(4,167,236,.10);
    color: var(--of-primary);
    border: 1px solid rgba(4,167,236,.18);
    font-weight: 700;
}

.of-filter-card,
.of-list-card,
.of-summary-card {
    border: 1px solid var(--of-border);
    border-radius: 22px;
    overflow: hidden;
}

.of-filter-card {
    background:
        radial-gradient(circle at top right, rgba(4,167,236,.08), transparent 28%),
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,248,248,.96));
}

.of-section-title {
    font-size: 1rem;
    font-weight: 800;
    color: var(--of-text);
    letter-spacing: -.02em;
}

.of-section-subtitle {
    color: var(--of-muted);
    font-size: .92rem;
    margin-top: 2px;
}

.of-filter-toggle {
    min-height: 42px;
    border-radius: 14px;
}

.of-filter-form .form-label {
    color: rgba(15,23,42,.72);
    font-weight: 700;
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.of-filter-form .form-control,
.of-filter-form .form-select {
    min-height: 46px;
    border-radius: 14px;
    border-color: rgba(1,49,102,.12);
}

.of-filter-actions .btn {
    min-height: 46px;
    border-radius: 14px;
}

.of-filter-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.of-filter-chip {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(1,49,102,.06);
    border: 1px solid rgba(1,49,102,.08);
    color: var(--of-text);
    font-size: .86rem;
    font-weight: 600;
}

.of-summary-card {
    background: linear-gradient(180deg, #fff, rgba(246,248,248,.9));
}

.of-summary-card .card-body {
    padding: 18px;
}

.of-summary-card-warn {
    background: linear-gradient(180deg, rgba(251,148,6,.12), rgba(255,255,255,.96));
}

.of-summary-label {
    color: var(--of-muted);
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 700;
}

.of-summary-value {
    margin-top: 8px;
    font-size: clamp(1.35rem, 2vw, 1.9rem);
    line-height: 1;
    font-weight: 800;
    color: var(--of-text);
}

.of-money-value {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.of-summary-note {
    margin-top: 8px;
    color: var(--of-muted);
    font-size: .88rem;
    line-height: 1.4;
}

.of-pagination-compact,
.of-pagination-footer {
    gap: 10px;
}

.of-page-counter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(1,49,102,.06);
    border: 1px solid rgba(1,49,102,.08);
    color: var(--of-text);
    font-size: .86rem;
    font-weight: 700;
}

.of-listing-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.of-listing-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(1,49,102,.05);
    color: var(--of-muted);
    font-size: .78rem;
    font-weight: 700;
}

@media (max-width: 991.98px) {
    .of-filter-card,
    .of-list-card,
    .of-summary-card {
        border-radius: 18px;
    }
}

@media (max-width: 767.98px) {
    .of-listing-pill {
        min-height: 38px;
        padding: 0 12px;
        font-size: .88rem;
    }

    .of-section-subtitle {
        font-size: .88rem;
    }

    .of-summary-card .card-body {
        padding: 16px;
    }

    .of-summary-value {
        font-size: 1.35rem;
    }

    .of-pagination-compact,
    .of-pagination-footer {
        width: 100%;
        justify-content: space-between;
    }
}

@media (max-width: 575.98px) {
    .of-summary-value.of-money-value {
        font-size: 1.05rem;
    }

    .of-filter-form .form-control-lg {
        font-size: 1rem;
    }

    .of-filter-actions {
        width: 100%;
    }

    .of-filter-actions .btn {
        flex: 1 1 100%;
    }

    .of-page-counter {
        min-height: 34px;
        padding: 0 10px;
        font-size: .8rem;
    }
}

.of-quick-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.of-quick-filter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(1,49,102,.10);
    color: var(--of-text);
    text-decoration: none;
    font-size: .88rem;
    font-weight: 700;
    transition: .18s ease;
}

.of-quick-filter:hover {
    color: var(--of-primary);
    border-color: rgba(4,167,236,.28);
    background: rgba(4,167,236,.08);
}

.of-quick-filter.is-active {
    color: #fff;
    background: linear-gradient(180deg, var(--of-secondary), var(--of-primary));
    border-color: transparent;
    box-shadow: 0 10px 24px rgba(1,49,102,.16);
}

@media (max-width: 575.98px) {
    .of-quick-filters {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .of-quick-filter {
        width: 100%;
        min-height: 42px;
        padding: 0 12px;
        font-size: .84rem;
    }
}

.of-form-section {
    border-radius: 20px;
}

.of-switch-check {
    min-height: 52px;
    padding: 14px 16px 14px 2rem;
    border-radius: 16px;
    border: 1px solid rgba(1,49,102,.10);
    background: rgba(255,255,255,.72);
}

.of-switch-check .form-check-input {
    margin-top: .2rem;
}

.of-switch-check .form-check-label {
    font-weight: 700;
    color: var(--of-text);
}

.of-inline-summary {
    min-height: 46px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(1,49,102,.05);
    border: 1px dashed rgba(1,49,102,.12);
    color: var(--of-text);
    font-weight: 600;
}

.of-orc-item {
    display: flex;
    align-items: stretch;
    gap: 10px;
    width: 100%;
}

.of-orc-item-rail {
    width: 4px;
    border-radius: 999px;
    background: rgba(1,49,102,.12);
    flex-shrink: 0;
}

.of-orc-item-body {
    min-width: 0;
    flex: 1;
}

.of-orc-item.is-etapa .of-orc-item-rail {
    background: linear-gradient(180deg, var(--of-secondary), var(--of-primary));
}

.of-orc-item.is-parent .of-orc-item-rail {
    background: linear-gradient(180deg, rgba(4,167,236,.85), rgba(9,97,156,.8));
}

.of-orc-item.is-leaf .of-orc-item-rail {
    background: rgba(1,49,102,.18);
}

.of-orc-item-type,
.of-orc-item-code {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .03em;
}

.of-orc-item-type {
    background: rgba(1,49,102,.08);
    color: var(--of-primary);
}

.of-orc-item-type.is-leaf {
    background: rgba(15,23,42,.07);
    color: var(--of-text);
}

.of-orc-item-code {
    background: rgba(251,148,6,.12);
    color: #8a4a00;
}

.of-orc-item-level-1 {
    padding-left: 14px;
}

.of-orc-item-level-2 {
    padding-left: 28px;
}

.of-orc-item-level-3 {
    padding-left: 42px;
}

.of-orc-item-level-4 {
    padding-left: 56px;
}

.of-orc-item-level-5 {
    padding-left: 70px;
}

@media (max-width: 767.98px) {
    .of-orc-item-level-1 {
        padding-left: 10px;
    }

    .of-orc-item-level-2 {
        padding-left: 18px;
    }

    .of-orc-item-level-3 {
        padding-left: 26px;
    }

    .of-orc-item-level-4 {
        padding-left: 34px;
    }

    .of-orc-item-level-5 {
        padding-left: 42px;
    }

    .of-orc-item-type,
    .of-orc-item-code {
        min-height: 24px;
        padding: 3px 8px;
        font-size: .72rem;
    }
}

.of-orc-toggle {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid rgba(1,49,102,.14);
    background: #fff;
    color: var(--of-primary);
    font-weight: 900;
    box-shadow: 0 4px 12px rgba(1,49,102,.08);
    flex-shrink: 0;
}

.of-orc-toggle:hover {
    background: rgba(4,167,236,.08);
    border-color: rgba(4,167,236,.28);
}

.of-orc-toggle-icon {
    line-height: 1;
    font-size: .98rem;
}

@media (max-width: 767.98px) {
    .of-orc-toggle {
        width: 30px;
        height: 30px;
    }
}

.of-comparativo-card {
    border: 1px solid rgba(1,49,102,.10);
    border-radius: 22px;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,248,248,.96));
}
.of-cotacao-board {
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,250,252,.96));
}

.of-cotacao-item-board {
    padding: 18px;
    border-radius: 22px;
    border: 1px solid rgba(1,49,102,.08);
    background: rgba(255,255,255,.72);
}

.of-cotacao-board-scroll {
    overflow-x: auto;
    padding-bottom: 6px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.of-cotacao-board-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    min-width: min(100%, 720px);
}

.of-cotacao-vendor-card {
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(1,49,102,.10);
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(245,247,250,.96));
    box-shadow: 0 10px 26px rgba(1,49,102,.06);
}

.of-cotacao-vendor-card.is-best {
    border-color: rgba(16,185,129,.35);
    background: linear-gradient(180deg, rgba(236,253,245,.98), rgba(240,253,250,.95));
}

.of-cotacao-vendor-card.is-selected {
    box-shadow: 0 12px 28px rgba(4,167,236,.12);
}

.of-cotacao-price {
    font-size: 1.35rem;
    line-height: 1.1;
    font-weight: 800;
    color: var(--of-primary);
}

@media (max-width: 767.98px) {
    .of-cotacao-details,
    .of-cotacao-details .row,
    .of-cotacao-details .row > *,
    .of-cotacao-details .card,
    .of-cotacao-details .card-body,
    .of-cotacao-details .accordion,
    .of-cotacao-details .accordion-item,
    .of-cotacao-details .accordion-button,
    .of-cotacao-details .accordion-body {
        min-width: 0;
        max-width: 100%;
    }

    .of-cotacao-details .of-summary-label,
    .of-cotacao-details .of-summary-note,
    .of-cotacao-details .fw-semibold,
    .of-cotacao-details .of-grid-title,
    .of-cotacao-details .of-grid-subtitle {
        overflow-wrap: anywhere;
    }

    .of-cotacao-details .of-cotacao-vendor-card {
        width: auto;
        max-width: 100%;
        min-width: 0;
        flex: 1 1 auto;
    }

    .of-cotacao-item-board {
        padding: 14px;
        border-radius: 18px;
    }

    .of-cotacao-board-grid {
        display: flex;
        gap: 12px;
        min-width: max-content;
    }

    .of-cotacao-board-grid > .of-cotacao-vendor-card {
        width: 240px;
        flex: 0 0 auto;
        padding: 14px;
    }
}

@media (max-width: 575.98px) {
    .of-cotacao-details .of-summary-card .card-body {
        padding: 12px;
    }

    .of-cotacao-details .of-summary-label {
        font-size: .7rem;
        letter-spacing: .025em;
    }

    .of-cotacao-details .of-summary-note {
        font-size: .78rem;
    }
}

@media (max-width: 767.98px) {
    .of-clientes-page,
    .of-clientes-page .card,
    .of-clientes-page .card-body,
    .of-clientes-page .of-mobile-record-card,
    .of-clientes-page .of-mobile-record-heading {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .of-clientes-page .of-mobile-record-card {
        overflow: hidden;
    }

    .of-clientes-page .of-mobile-break,
    .of-clientes-page .of-mobile-record-heading {
        overflow-wrap: anywhere;
        word-break: break-word;
    }
}

.of-searchable-select {
    position: relative;
    width: 100%;
}

.of-searchable-select-native {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.of-combobox-trigger {
    width: 100%;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .55rem .85rem;
    color: var(--bs-body-color);
    text-align: left;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.of-combobox-trigger:hover:not(:disabled) { border-color: #6ea8fe; }
.of-combobox-trigger:focus-visible {
    outline: 0;
    border-color: #86b7fe;
    box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .2);
}
.of-combobox-trigger.is-placeholder { color: var(--bs-secondary-color); }
.of-combobox-trigger:disabled { background: var(--bs-secondary-bg); opacity: .75; }
.of-combobox-trigger.is-invalid { border-color: var(--bs-danger); box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .15); }
.of-combobox-trigger-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.of-combobox-trigger .bi { flex: 0 0 auto; color: var(--bs-secondary-color); }

body.of-combobox-open { overflow: hidden; }
.of-combobox-layer { position: fixed; inset: 0; z-index: 1090; }
.of-combobox-layer[hidden] { display: none; }
.of-combobox-backdrop { position: absolute; inset: 0; background: rgba(8, 20, 36, .58); backdrop-filter: blur(2px); }
.of-combobox-sheet {
    position: absolute;
    left: 50%;
    top: 50%;
    width: min(620px, calc(100% - 2rem));
    max-height: min(720px, calc(100dvh - 2rem));
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    padding: 1.1rem;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1.25rem;
    box-shadow: 0 24px 80px rgba(8, 20, 36, .3);
}
.of-combobox-handle { display: none; }
.of-combobox-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .9rem; }
.of-combobox-eyebrow { color: #0d6efd; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.of-combobox-title { margin: .15rem 0 0; color: #17324d; font-size: 1.25rem; font-weight: 750; }
.of-combobox-close { width: 42px; height: 42px; display: grid; place-items: center; border: 0; border-radius: 50%; color: var(--bs-body-color); background: var(--bs-tertiary-bg); }
.of-combobox-search-wrap { position: relative; }
.of-combobox-search-wrap > .bi { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); color: #64748b; pointer-events: none; }
.of-combobox-search {
    width: 100%;
    min-height: 48px;
    padding: .7rem .9rem .7rem 2.65rem;
    border: 2px solid #bfd5ee;
    border-radius: .9rem;
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
}
.of-combobox-search:focus { outline: 0; border-color: #0d6efd; box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .15); }
.of-combobox-status { padding: .65rem .2rem .4rem; color: var(--bs-secondary-color); font-size: .78rem; }
.of-combobox-results { overflow-y: auto; overscroll-behavior: contain; border-top: 1px solid var(--bs-border-color-translucent); }
.of-combobox-option {
    width: 100%;
    min-height: 52px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .15rem .75rem;
    padding: .7rem .65rem;
    color: var(--bs-body-color);
    text-align: left;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--bs-border-color-translucent);
}
.of-combobox-option:hover, .of-combobox-option.is-highlighted { background: rgba(13, 110, 253, .08); }
.of-combobox-option[aria-selected="true"] { color: #075a9c; background: rgba(13, 110, 253, .1); font-weight: 700; }
.of-combobox-option-text { min-width: 0; overflow-wrap: anywhere; }
.of-combobox-option small { grid-column: 1; color: var(--bs-secondary-color); font-weight: 400; }
.of-combobox-option > .bi { grid-column: 2; grid-row: 1 / span 2; font-size: 1.05rem; color: #0d6efd; }
.of-combobox-empty { min-height: 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; color: var(--bs-secondary-color); text-align: center; }
.of-combobox-empty[hidden] { display: none; }
.of-combobox-empty > .bi { font-size: 1.6rem; }

@media (max-width: 767.98px) {
    .of-combobox-sheet {
        left: 0;
        right: 0;
        top: auto;
        bottom: 0;
        width: 100%;
        max-height: calc(100dvh - .75rem);
        transform: none;
        padding: .65rem 1rem calc(1rem + env(safe-area-inset-bottom));
        border-radius: 1.35rem 1.35rem 0 0;
        animation: of-combobox-enter .18s ease-out;
    }
    .of-combobox-handle { display: block; width: 42px; height: 4px; margin: 0 auto .7rem; border-radius: 99px; background: #cbd5e1; }
    .of-combobox-results { flex: 1 1 auto; }
    .of-combobox-option { min-height: 58px; font-size: 1rem; }
    @keyframes of-combobox-enter { from { transform: translateY(24px); opacity: .75; } to { transform: translateY(0); opacity: 1; } }
}

@media (prefers-reduced-motion: reduce) {
    .of-combobox-sheet { animation: none; }
}

.of-switch-check-boxed {
    border: 1px solid rgba(18, 62, 102, 0.14);
    border-radius: 1rem;
    padding: 1rem 1rem 1rem 2.5rem;
    background: #fff;
}

.of-section-collapse {
    border: 0;
}

.of-section-collapse-summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .75rem;
}

.of-section-collapse-summary::-webkit-details-marker {
    display: none;
}

.of-grid-wrap,
.of-listing-shell-compras {
    overflow-x: auto;
    overflow-y: hidden;
}

.of-list-card {
    overflow: hidden;
}

.of-grid-table {
    width: 100%;
}

.of-grid-table td,
.of-grid-table th {
    vertical-align: top;
}

@media (max-width: 991.98px) {
    .of-grid-table {
        min-width: 860px;
    }
}
.of-section-collapse-inner {
    border-top: 1px dashed rgba(18, 62, 102, 0.12);
    margin-top: .25rem;
    padding-top: .75rem;
}

.of-section-collapse-summary-compact {
    margin-bottom: 0;
    padding: .25rem 0;
}

.of-grid-wrap-purchase-items {
    overflow-x: auto;
    overflow-y: hidden;
}

.of-grid-wrap-purchase-items .table {
    min-width: 980px;
}

/* =========================
   LAYOUT PREMIUM 2026
   ========================= */

:root {
    --of-shell-bg:
        radial-gradient(circle at top left, rgba(4,167,236,.10), transparent 28%),
        radial-gradient(circle at bottom right, rgba(1,49,102,.10), transparent 32%),
        linear-gradient(180deg, #f3f8fb 0%, #eef4f8 55%, #f9fbfc 100%);
    --of-sidebar-glow: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,0));
    --of-surface-soft: rgba(255,255,255,.82);
    --of-shadow-strong: 0 22px 60px rgba(12, 38, 66, .12);
}

html,
body {
    background: var(--of-shell-bg);
}

body {
    color: var(--of-text);
}

.of-app {
    gap: 20px;
    padding: 18px;
    align-items: flex-start;
}

.of-sidebar {
    width: 316px;
    background:
        radial-gradient(circle at top left, rgba(4,167,236,.22), transparent 32%),
        linear-gradient(180deg, #0b3a71 0%, #062c57 52%, #041f40 100%);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 30px;
    box-shadow: 0 30px 70px rgba(4, 24, 49, .34);
    position: sticky;
    top: 18px;
    height: calc(100vh - 36px);
    overflow: hidden;
}

.of-sidebar-inner {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.of-sidebar-brand-shell {
    padding: 18px 18px 16px;
    background: var(--of-sidebar-glow);
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.of-sidebar-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
    color: #fff;
}

.of-sidebar-brand:hover {
    color: #fff;
}

.of-sidebar-brand-mark {
    width: 60px;
    height: 60px;
    border-radius: 18px;
    background: rgba(255,255,255,.12);
    backdrop-filter: blur(12px);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18);
}

.of-sidebar-brand-mark img {
    width: 44px;
    height: 44px;
    object-fit: contain;
}

.of-sidebar-brand-kicker {
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(214, 233, 255, .72);
    font-weight: 700;
    margin-bottom: 4px;
}

.of-sidebar-brand-title {
    font-size: 1.35rem;
    font-weight: 900;
    letter-spacing: -.03em;
    line-height: 1.05;
}

.of-sidebar-brand-subtitle {
    margin-top: 4px;
    font-size: .84rem;
    line-height: 1.45;
    color: rgba(214, 233, 255, .74);
    max-width: 210px;
}

.of-sidebar-spotlight {
    margin-top: 16px;
    padding: 14px 16px;
    border-radius: 20px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}

.of-sidebar-spotlight-label {
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #9fd5ff;
    margin-bottom: 6px;
}

.of-sidebar-spotlight-text {
    color: rgba(255,255,255,.84);
    font-size: .88rem;
    line-height: 1.55;
}

.of-nav {
    padding: 14px 14px 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    overflow-y: auto;
}

.of-nav-home {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 14px;
    border-radius: 20px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.08);
    text-decoration: none;
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}

.of-nav-home:hover,
.of-nav-home.active {
    color: #fff;
    background: linear-gradient(180deg, rgba(4,167,236,.28), rgba(4,167,236,.16));
    border-color: rgba(121, 214, 255, .26);
}

.of-nav-home-icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(255,255,255,.14);
    color: #fff;
    font-size: 1.15rem;
    flex-shrink: 0;
}

.of-nav-home strong,
.of-nav-group-copy strong {
    display: block;
    font-size: .94rem;
    font-weight: 800;
    line-height: 1.2;
}

.of-nav-home small,
.of-nav-group-copy small {
    display: block;
    margin-top: 3px;
    color: rgba(220, 237, 255, .72);
    font-size: .76rem;
    line-height: 1.4;
}

.of-nav-group {
    border-radius: 22px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.07);
    overflow: hidden;
}

.of-nav-group summary {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 14px;
    cursor: pointer;
}

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

.of-nav-group-icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: 1rem;
    flex-shrink: 0;
}

.of-nav-group-copy {
    min-width: 0;
    flex: 1;
    color: #fff;
}

.of-nav-group-count {
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.12);
    color: #dff2ff;
    font-size: .74rem;
    font-weight: 800;
}

.of-nav-group-items {
    padding: 0 10px 12px 10px;
    display: grid;
    gap: 6px;
}

.of-nav-section-label {
    padding: .75rem .85rem .3rem;
    color: rgba(219, 234, 254, .68);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
    user-select: none;
}

.of-nav-section-label:first-child {
    padding-top: .3rem;
}

.of-nav-group-items a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 10px 12px;
    border-radius: 14px;
    color: rgba(255,255,255,.9);
    text-decoration: none;
    transition: .18s ease;
}

.of-nav-group-items a:hover {
    background: rgba(255,255,255,.08);
    color: #fff;
    transform: translateX(2px);
}

.of-nav-group-items a.active {
    background: linear-gradient(180deg, rgba(4,167,236,.26), rgba(4,167,236,.16));
    border: 1px solid rgba(121, 214, 255, .22);
    color: #fff;
    box-shadow: 0 12px 24px rgba(0,0,0,.12);
}

.of-nav-group-items a i {
    width: 18px;
    text-align: center;
    font-size: 1rem;
    color: #9edaff;
}

.of-main {
    min-width: 0;
}

.of-topbar {
    position: sticky;
    top: 18px;
    z-index: 20;
    background: transparent;
    border-bottom: 0;
    backdrop-filter: none;
}

.of-topbar .inner {
    padding: 0;
    gap: 16px;
    align-items: stretch;
}

.of-topbar .left {
    flex: 1;
    min-width: 0;
    gap: 14px;
}

.of-page-heading {
    flex: 1;
    min-width: 0;
    padding: 18px 20px;
    border-radius: 26px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(1,49,102,.10);
    box-shadow: var(--of-shadow-strong);
    backdrop-filter: blur(14px);
}

.of-page-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(4,167,236,.10);
    color: var(--of-primary);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.of-page-title {
    font-size: clamp(1.3rem, 2vw, 1.85rem);
    font-weight: 900;
    letter-spacing: -.03em;
    color: #183550;
}

.of-page-subtitle {
    margin-top: 6px;
    color: #61778a;
    line-height: 1.6;
    max-width: 780px;
}

.of-topbar-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.of-topbar-highlight {
    min-height: 58px;
    padding: 0 18px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255,255,255,.76);
    border: 1px solid rgba(1,49,102,.10);
    box-shadow: var(--of-shadow-strong);
    color: #294b67;
    font-weight: 700;
    white-space: nowrap;
}

.of-topbar-highlight i {
    color: #0d6efd;
}

.of-btn-icon {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    border: 1px solid rgba(1,49,102,.10);
    background: rgba(255,255,255,.78);
    box-shadow: 0 12px 28px rgba(1,49,102,.10);
    backdrop-filter: blur(14px);
}

.of-btn-icon:hover {
    border-color: rgba(4,167,236,.34);
    transform: translateY(-1px);
}

.of-btn-icon-accent {
    background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(240,247,252,.85));
}

.of-content {
    padding: 18px 0 0;
}

.of-card {
    border: 1px solid rgba(1,49,102,.09);
    border-radius: 28px;
    background: rgba(255,255,255,.84);
    backdrop-filter: blur(14px);
    box-shadow: 0 22px 60px rgba(12, 38, 66, .10);
}

.of-card-body {
    padding: 22px;
}

.of-user-menu-btn {
    min-height: 48px;
    padding: 7px 12px;
    border-radius: 18px;
    border: 1px solid rgba(1,49,102,.10);
    background: rgba(255,255,255,.82);
    box-shadow: 0 12px 28px rgba(1,49,102,.10);
    backdrop-filter: blur(14px);
}

.of-user-menu-avatar {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: rgba(1,49,102,.08);
}

.of-user-dropdown {
    border: 1px solid rgba(1,49,102,.10);
    border-radius: 20px;
    box-shadow: 0 20px 48px rgba(12,38,66,.16);
}

.of-mobile-offcanvas .offcanvas-header {
    padding: 18px 18px;
}

.of-mobile-menu-subtitle {
    margin-top: 4px;
    font-size: .84rem;
    color: #6c8294;
}

.of-mobile-menu-body {
    background:
        radial-gradient(circle at top left, rgba(4,167,236,.20), transparent 30%),
        linear-gradient(180deg, #0b3a71 0%, #062c57 52%, #041f40 100%);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
}

.of-mobile-menu-body .of-nav {
    padding: 14px;
    min-height: max-content;
    overflow: visible;
    touch-action: pan-y;
}

@media (max-width: 991.98px) {
    .of-app {
        display: block;
        padding: 12px;
    }

    .of-topbar {
        top: 12px;
    }

    .of-topbar .inner {
        flex-direction: column;
        align-items: stretch;
    }

    .of-topbar .left {
        align-items: flex-start;
    }

    .of-page-heading {
        width: 100%;
        padding: 16px 16px;
        border-radius: 22px;
    }

    .of-topbar-actions {
        justify-content: space-between;
    }

    .of-content {
        padding-top: 14px;
    }

    .of-card {
        border-radius: 22px;
    }
}

@media (max-width: 575.98px) {
    .of-app {
        padding: 10px;
    }

    .of-page-kicker {
        font-size: .68rem;
        min-height: 28px;
        padding: 0 10px;
    }

    .of-page-title {
        font-size: 1.2rem;
    }

    .of-page-subtitle {
        font-size: .9rem;
    }

    .of-topbar-actions {
        gap: 8px;
    }

    .of-btn-icon,
    .of-user-menu-btn {
        width: 44px;
        height: 44px;
        min-height: 44px;
        border-radius: 14px;
    }

    .of-card-body {
        padding: 16px;
    }

    .of-mobile-offcanvas,
    #ofMobileMenu {
        width: min(360px, 92vw);
    }
}

/* =========================
   LAYOUT PREMIUM 2026 - ROUND 2
   ========================= */

.of-sidebar-footer {
    margin-top: auto;
    padding: 14px 14px 16px;
    border-top: 1px solid rgba(255,255,255,.06);
}

.of-sidebar-footer-card {
    padding: 16px 16px;
    border-radius: 22px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.07);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

.of-sidebar-footer-label {
    color: #98d5ff;
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 800;
    margin-bottom: 8px;
}

.of-sidebar-footer-title {
    color: #fff;
    font-size: .98rem;
    font-weight: 800;
    line-height: 1.3;
}

.of-sidebar-footer-text {
    margin-top: 8px;
    color: rgba(220,237,255,.72);
    font-size: .84rem;
    line-height: 1.6;
}

.of-nav-home {
    position: relative;
}

.of-nav-home-badge {
    margin-left: auto;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.14);
    color: #e0f5ff;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.of-nav-group {
    transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.of-nav-group[open] {
    background: rgba(255,255,255,.08);
    border-color: rgba(121,214,255,.12);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}

.of-nav-group summary {
    position: relative;
}

.of-nav-group summary:hover {
    background: rgba(255,255,255,.04);
}

.of-nav-group-chevron {
    width: 30px;
    height: 30px;
    margin-left: 2px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #cfe8ff;
    background: rgba(255,255,255,.08);
    transition: transform .18s ease, background .18s ease;
}

.of-nav-group[open] .of-nav-group-chevron {
    transform: rotate(180deg);
    background: rgba(4,167,236,.18);
}

.of-nav-group-items a {
    position: relative;
    overflow: hidden;
}

.of-nav-group-items a.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 8px;
    width: 4px;
    border-radius: 999px;
    background: linear-gradient(180deg, #6fe1ff 0%, #22c1ff 100%);
}

.of-topbar-quicklinks {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.of-topbar-quicklinks a {
    min-height: 36px;
    padding: 0 14px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    background: rgba(1,49,102,.05);
    border: 1px solid rgba(1,49,102,.07);
    color: #234867;
    font-size: .84rem;
    font-weight: 700;
    transition: .18s ease;
}

.of-topbar-quicklinks a:hover {
    color: var(--of-primary);
    border-color: rgba(4,167,236,.26);
    background: rgba(4,167,236,.08);
}

.of-topbar-shortcut {
    min-height: 48px;
    padding: 0 16px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    background: rgba(255,255,255,.78);
    border: 1px solid rgba(1,49,102,.10);
    box-shadow: 0 12px 28px rgba(1,49,102,.10);
    color: #1d425f;
    font-weight: 700;
}

.of-topbar-shortcut:hover {
    color: var(--of-primary);
    border-color: rgba(4,167,236,.28);
}

.of-topbar-shortcut i {
    color: #0d6efd;
}

.of-card {
    position: relative;
}

.of-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(255,255,255,.34), rgba(255,255,255,0));
}

.of-card-body {
    position: relative;
    z-index: 1;
}

@media (max-width: 991.98px) {
    .of-topbar-quicklinks {
        display: none;
    }

    .of-sidebar-footer {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .of-nav-home-badge,
    .of-nav-group-count,
    .of-nav-group-chevron {
        display: none;
    }

    .of-nav-group summary {
        padding: 12px 12px;
    }

    .of-nav-home {
        padding: 12px 12px;
    }
}

/* =========================
   FIXES DE USABILIDADE
   ========================= */

.of-sidebar {
    overflow: hidden;
}

.of-sidebar-inner {
    min-height: 100%;
}

.of-nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 10px;
}

.of-nav-group {
    overflow: visible;
}

.of-nav-group-items {
    padding-bottom: 14px;
}

.of-nav-group-items a {
    min-height: 44px;
}

.of-topbar {
    position: static;
    top: auto;
}

.of-topbar .inner {
    align-items: flex-start;
    flex-wrap: wrap;
}

.of-page-heading {
    width: 100%;
    max-width: 920px;
}

.of-topbar-actions {
    margin-left: auto;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.of-topbar-highlight {
    min-height: 48px;
}

.of-content {
    padding-top: 16px;
}

@media (max-width: 1399.98px) {
    .of-topbar .inner {
        flex-direction: column;
        align-items: stretch;
    }

    .of-topbar-actions {
        margin-left: 0;
        justify-content: flex-end;
    }

    .of-page-heading {
        max-width: none;
    }
}

@media (max-width: 991.98px) {
    .of-topbar .inner {
        flex-direction: row;
        align-items: flex-start;
    }

    .of-page-heading {
        padding: 16px;
        border-radius: 22px;
    }

    .of-topbar-actions {
        position: static;
        margin-left: 0;
        justify-content: flex-end;
        align-self: flex-start;
    }

    .of-topbar-highlight {
        display: none !important;
    }
}

@media (max-width: 575.98px) {
    .of-topbar .inner {
        gap: 10px;
    }

    .of-page-heading {
        padding: 14px 14px;
    }

    .of-page-title {
        font-size: 1.12rem;
    }

    .of-page-subtitle {
        font-size: .92rem;
        line-height: 1.55;
    }

    .of-topbar-actions {
        width: auto;
    }
}
/* =========================
   REFINO VISUAL
   ========================= */

.of-sidebar {
    width: 296px;
    box-shadow: inset -1px 0 0 rgba(255,255,255,.06);
}

.of-sidebar-inner {
    gap: 10px;
}

.of-sidebar-brand-shell {
    padding: 16px 16px 14px;
}

.of-sidebar-brand {
    gap: 12px;
}

.of-sidebar-brand-mark {
    width: 54px;
    height: 54px;
    border-radius: 16px;
}

.of-sidebar-brand-mark img {
    width: 40px;
    height: 40px;
}

.of-sidebar-brand-title {
    font-size: 1.26rem;
}

.of-sidebar-brand-subtitle {
    font-size: .8rem;
    line-height: 1.38;
}

.of-sidebar-spotlight {
    margin-top: 14px;
    padding: 14px 16px;
    border-radius: 22px;
}

.of-sidebar-spotlight-text {
    font-size: .8rem;
    line-height: 1.55;
}

.of-nav {
    padding: 10px 12px 14px 12px;
    gap: 10px;
}

.of-nav-home,
.of-nav-group {
    border-radius: 20px;
}

.of-nav-home,
.of-nav-group summary {
    padding: 12px 12px;
}

.of-nav-home-icon,
.of-nav-group-icon {
    width: 38px;
    height: 38px;
    border-radius: 13px;
}

.of-nav-home strong,
.of-nav-group-copy strong {
    font-size: .92rem;
}

.of-nav-home small,
.of-nav-group-copy small {
    font-size: .74rem;
    line-height: 1.32;
}

.of-nav-group-items {
    padding: 4px 10px 12px;
}

.of-nav-group-items a {
    min-height: 42px;
    padding: 9px 10px;
    border-radius: 14px;
    font-size: .93rem;
}

.of-nav-group-count {
    min-width: 34px;
    height: 34px;
}

.of-sidebar-footer {
    padding: 10px 12px 14px;
}

.of-sidebar-footer-card {
    padding: 14px 14px;
    border-radius: 20px;
}

.of-sidebar-footer-title {
    font-size: .94rem;
}

.of-sidebar-footer-text {
    font-size: .8rem;
    line-height: 1.5;
}

.of-topbar {
    background: linear-gradient(180deg, rgba(255,255,255,.9), rgba(255,255,255,.82));
    border-bottom: 1px solid rgba(1,49,102,.08);
}

.of-topbar .inner {
    padding: 14px 18px 10px;
    gap: 14px;
}

.of-topbar .left {
    min-width: 0;
    flex: 1 1 auto;
}

.of-page-heading {
    padding: 14px 18px;
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,255,255,.64));
    border-color: rgba(1,49,102,.08);
    box-shadow: 0 12px 28px rgba(1,49,102,.08);
}

.of-page-kicker {
    margin-bottom: 10px;
    font-size: .78rem;
}

.of-page-title {
    font-size: clamp(1.8rem, 2.2vw, 2.35rem);
    line-height: 1.05;
}

.of-page-subtitle {
    margin-top: 10px;
    max-width: 760px;
    font-size: 1rem;
    line-height: 1.55;
}

.of-topbar-actions {
    gap: 10px;
    align-items: center;
}

.of-topbar-highlight {
    min-height: 44px;
    padding: 0 14px;
    border-radius: 16px;
    font-size: .95rem;
    box-shadow: 0 10px 22px rgba(1,49,102,.08);
}

.of-user-menu-btn {
    min-height: 44px;
    border-radius: 16px;
    box-shadow: 0 10px 24px rgba(1,49,102,.08);
}

.of-content {
    padding: 14px 18px 18px;
}

.of-card {
    border-radius: 22px;
    box-shadow: 0 14px 36px rgba(1,49,102,.08);
}

.of-card-body {
    padding: 18px;
}

@media (max-width: 1599.98px) {
    .of-topbar-highlight {
        font-size: .9rem;
    }
}

@media (max-height: 900px) {
    .of-sidebar-footer {
        display: none;
    }
}

@media (max-width: 1399.98px) {
    .of-topbar .inner {
        padding-bottom: 8px;
    }

    .of-page-heading {
        padding: 14px 16px;
    }

    .of-page-subtitle {
        max-width: none;
        font-size: .96rem;
    }
}

@media (max-width: 1199.98px) {
    .of-sidebar {
        width: 286px;
    }

    .of-sidebar-brand-subtitle,
    .of-sidebar-spotlight-text,
    .of-sidebar-footer-text {
        font-size: .78rem;
    }
}

@media (max-width: 991.98px) {
    .of-topbar .inner {
        padding: 10px 14px;
    }

    .of-page-heading {
        padding: 14px 16px;
        border-radius: 20px;
        box-shadow: 0 10px 24px rgba(1,49,102,.08);
    }

    .of-page-title {
        font-size: 1.85rem;
    }

    .of-page-subtitle {
        margin-top: 8px;
        font-size: .95rem;
    }

    .of-content {
        padding: 12px;
    }
}

@media (max-width: 575.98px) {
    .of-topbar .inner {
        padding: 10px 12px;
    }

    .of-page-heading {
        padding: 12px 14px;
        border-radius: 18px;
    }

    .of-page-kicker {
        margin-bottom: 8px;
        font-size: .74rem;
    }

    .of-page-title {
        font-size: 1.08rem;
    }

    .of-page-subtitle {
        margin-top: 6px;
        font-size: .9rem;
        line-height: 1.5;
    }
}

.of-origin-badge,
.of-status-badge,
.of-origin-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
    border: 1px solid transparent;
    white-space: nowrap;
}

.of-origin-chip {
    min-height: 30px;
    padding-inline: 12px;
}

.of-origin-badge-compra,
.of-origin-chip-compra {
    color: #0f4c5c;
    background: rgba(4, 167, 236, .12);
    border-color: rgba(4, 167, 236, .22);
}

.of-origin-badge-despesa,
.of-origin-chip-despesa {
    color: #0c4a6e;
    background: rgba(1, 49, 102, .10);
    border-color: rgba(1, 49, 102, .18);
}

.of-origin-badge-manual,
.of-origin-chip-manual {
    color: #475569;
    background: rgba(148, 163, 184, .16);
    border-color: rgba(100, 116, 139, .18);
}

.of-status-badge-aberta {
    color: #1d4ed8;
    background: rgba(59, 130, 246, .12);
    border-color: rgba(59, 130, 246, .20);
}

.of-status-badge-parcial {
    color: #9a3412;
    background: rgba(251, 146, 60, .15);
    border-color: rgba(251, 146, 60, .25);
}

.of-status-badge-paga {
    color: #166534;
    background: rgba(34, 197, 94, .14);
    border-color: rgba(34, 197, 94, .22);
}

.of-status-badge-vencida {
    color: #b91c1c;
    background: rgba(239, 68, 68, .12);
    border-color: rgba(239, 68, 68, .20);
}

.of-status-badge-cancelada {
    color: #6b7280;
    background: rgba(107, 114, 128, .12);
    border-color: rgba(107, 114, 128, .20);
}

/* =========================
   LIMPEZA VISUAL DO LAYOUT
   ========================= */

.of-sidebar {
    overflow: hidden;
}

.of-nav::-webkit-scrollbar {
    width: 7px;
}

.of-nav {
    scrollbar-width: thin;
    scrollbar-color: rgba(67, 164, 235, .58) rgba(2, 31, 64, .22);
    scrollbar-gutter: stable;
    overscroll-behavior: contain;
}

.of-nav::-webkit-scrollbar-track {
    background: rgba(2, 31, 64, .22);
    border-radius: 999px;
}

.of-nav::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, rgba(54, 169, 239, .72), rgba(30, 111, 185, .62));
    border: 1px solid rgba(9, 55, 103, .46);
    border-radius: 999px;
}

.of-nav::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, rgba(76, 188, 249, .88), rgba(40, 132, 211, .82));
}

.of-sidebar-inner {
    gap: 0;
}

.of-sidebar-brand-shell {
    padding: 18px 16px 12px;
    background: transparent;
    border-bottom: 0;
}

.of-sidebar-brand-subtitle {
    max-width: none;
}

/* A arte da marca possui respiro transparente no próprio PNG. O recorte visual
   amplia o símbolo sem distorcer a proporção nem trocar o arquivo institucional. */
.of-sidebar-brand {
    align-items: center;
    gap: 14px;
}

.of-sidebar-brand > div:last-child {
    min-width: 0;
}

.of-sidebar-brand-mark {
    width: 70px;
    height: 70px;
    flex: 0 0 70px;
    overflow: hidden;
    border-radius: 20px;
    background: linear-gradient(145deg, rgba(255,255,255,.16), rgba(255,255,255,.07));
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 12px 24px rgba(0,0,0,.14);
}

.of-sidebar-brand-mark img {
    width: 116px;
    height: 108px;
    max-width: none;
    object-fit: contain;
}

.of-sidebar-brand-kicker {
    margin-bottom: 5px;
    font-size: .7rem;
    letter-spacing: .12em;
}

.of-sidebar-brand-title {
    font-size: 1.38rem;
    line-height: 1;
}

.of-sidebar-brand-subtitle {
    margin-top: 6px;
    font-size: .77rem;
    line-height: 1.35;
}

.of-nav-home,
.of-nav-group {
    border-radius: 17px;
}

.of-nav-group {
    background: rgba(255,255,255,.035);
    border-color: rgba(255,255,255,.055);
    transition: background-color .18s ease, border-color .18s ease;
}

.of-nav-group[open] {
    background: rgba(255,255,255,.07);
    border-color: rgba(121,214,255,.16);
}

.of-nav-home,
.of-nav-group summary {
    padding: 11px 12px;
}

.of-nav-home-icon,
.of-nav-group-icon {
    width: 40px;
    height: 40px;
    border-radius: 13px;
}

.of-nav-group-copy strong {
    line-height: 1.15;
}

.of-nav-group-copy small {
    margin-top: 5px;
    line-height: 1.3;
}

.of-sidebar-spotlight,
.of-sidebar-footer,
.of-topbar-highlight,
.of-page-kicker,
.of-page-subtitle {
    display: none !important;
}

.of-topbar {
    background: transparent;
    border-bottom: 0;
    box-shadow: none;
}

.of-topbar .inner {
    padding: 14px 18px 4px;
    align-items: center;
}

.of-page-heading {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    max-width: none;
}

.of-page-title {
    font-size: clamp(1.7rem, 2.2vw, 2.2rem);
    letter-spacing: -.04em;
}

.of-topbar-actions {
    margin-left: auto;
}

.of-content {
    padding-top: 4px;
}

.of-card {
    border-radius: 18px;
}

.of-card-body {
    padding-top: 14px;
}

@media (max-width: 991.98px) {
    .of-topbar .inner {
        padding: 10px 14px 2px;
        align-items: flex-start;
    }

    .of-page-title {
        font-size: 1.3rem;
    }

    .of-content {
        padding-top: 2px;
    }
}

@media (max-width: 575.98px) {
    .of-topbar .inner {
        padding: 10px 12px 2px;
    }

    .of-page-title {
        font-size: 1.12rem;
        line-height: 1.15;
    }

    .of-card-body {
        padding-top: 12px;
    }
}
/* =========================
   FIX MOBILE TOUCH / DUPLO CLIQUE
   ========================= */
.of-orcamento-details,
.of-orcamento-details > .d-flex > div:first-child {
    min-width: 0;
    max-width: 100%;
}

.of-orcamento-contexto {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: left;
    line-height: 1.35;
}

.of-date-value {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 575.98px) {
    .of-orcamento-details .of-page-title {
        overflow-wrap: anywhere;
    }

    .of-orcamento-details .of-summary-value:not(.of-money-value) {
        font-size: 1.05rem;
        line-height: 1.15;
        overflow-wrap: normal;
    }

    .of-orcamento-details .of-date-value {
        font-size: .98rem !important;
    }

    .of-comparativo-shell .of-comparativo-fonte .of-summary-value {
        font-size: 1.05rem;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 767.98px) {
    html,
    body {
        touch-action: manipulation;
        -webkit-text-size-adjust: 100%;
    }

    input,
    select,
    textarea,
    .form-control,
    .form-select,
    .btn {
        font-size: 16px;
    }

    .form-control,
    .form-select,
    .btn,
    .dropdown-toggle,
    .of-row-toggle {
        min-height: 46px;
    }

    label,
    .form-label,
    .form-check-label,
    input,
    select,
    textarea,
    button,
    a,
    .btn,
    .form-control,
    .form-select {
        position: relative;
    }

    .of-grid-table tbody tr {
        position: relative;
        z-index: 0;
    }

    .of-grid-table tbody td {
        position: relative;
        z-index: 1;
    }

    .of-grid-table [class*="-row-detail"] {
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        margin: -8px 0 12px !important;
        padding: 0 !important;
    }

    .of-grid-table [class*="-row-detail"] > td {
        padding: 0 !important;
        border: 0 !important;
    }

    .of-grid-table [class*="-row-detail"] > td::before {
        display: none !important;
    }

    .of-grid-actions {
        position: relative;
        z-index: 5;
        gap: 10px !important;
        isolation: isolate;
    }

    .of-grid-actions > a,
    .of-grid-actions > button,
    .of-grid-actions > form,
    .of-grid-actions form > button,
    .of-grid-actions .btn {
        position: relative;
        z-index: 6;
        margin: 0 !important;
        min-height: 48px !important;
        touch-action: manipulation;
    }

    .of-grid-actions > form {
        display: block !important;
    }

    .of-grid-actions > form > .btn,
    .of-grid-actions form > button[type="submit"] {
        width: 100% !important;
        display: flex !important;
        align-items: center;
        justify-content: center;
    }

    .of-row-toggle {
        width: 100%;
        min-height: 48px !important;
        position: relative;
        z-index: 6;
    }

    .of-card,
    .of-card-body,
    .of-content,
    .of-main {
        overflow: visible;
    }

    .of-card::before {
        pointer-events: none !important;
    }
}

.is-submitting,
.is-submitting * {
    cursor: progress !important;
}

button[disabled].is-submitting,
.btn[aria-disabled="true"].is-submitting {
    pointer-events: none !important;
    opacity: .72;
}
/* Resultado das Obras */
.of-result-label,.of-result-projection span,.of-result-sale-grid span{display:block;color:var(--bs-secondary-color);font-size:.78rem}
.of-result-value{display:block;font-size:clamp(1.15rem,2vw,1.75rem);line-height:1.2;margin:.35rem 0;overflow-wrap:anywhere}
.of-result-kpis small{color:var(--bs-secondary-color)}
.of-result-highlight{background:linear-gradient(135deg,rgba(13,110,253,.09),rgba(13,110,253,.02));border-color:rgba(13,110,253,.2)}
.of-result-work{padding:1.25rem}.of-result-work-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.of-result-scope{display:flex;flex-wrap:wrap;gap:.4rem .65rem;align-items:center;font-size:.82rem}.of-result-scope span{color:var(--bs-secondary-color)}
.of-result-projection{text-align:right;min-width:13rem}.of-result-projection strong{display:block;font-size:1.5rem;overflow-wrap:anywhere}.of-result-projection small{color:var(--bs-secondary-color)}
.of-result-panel{border:1px solid var(--bs-border-color);border-radius:1rem;padding:1rem;background:rgba(255,255,255,.5)}
.of-cost-bar{display:flex;overflow:hidden;height:.85rem;border-radius:999px;background:var(--bs-tertiary-bg);margin-bottom:1rem}.of-cost-bar span{min-width:0}
.of-cost-bar .lot,.of-cost-legend .lot{background:#64748b}.of-cost-bar .purchase,.of-cost-legend .purchase{background:#2563eb}.of-cost-bar .service,.of-cost-legend .service{background:#06b6d4}.of-cost-bar .contract,.of-cost-legend .contract{background:#7c3aed}.of-cost-bar .forecast,.of-cost-legend .forecast{background:#f59e0b}
.of-cost-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1rem;font-size:.78rem}.of-cost-legend span{display:grid;grid-template-columns:.65rem 1fr auto;gap:.4rem;align-items:center}.of-cost-legend i{width:.55rem;height:.55rem;border-radius:50%}
.of-result-sale-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.of-result-sale-grid>div{padding:.75rem;border-radius:.75rem;background:var(--bs-tertiary-bg)}.of-result-sale-grid strong{display:block;overflow-wrap:anywhere}
.of-result-details{border-top:1px solid var(--bs-border-color);padding-top:.85rem}.of-result-details summary{cursor:pointer;color:var(--bs-primary);font-weight:600}.of-result-details .row>div{display:grid;gap:.25rem}.of-result-details .row span{color:var(--bs-secondary-color)}
@media(max-width:767.98px){.of-result-kpis .of-card{padding:.85rem}.of-result-work{padding:1rem}.of-result-work-header{display:block}.of-result-projection{text-align:left;min-width:0;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--bs-border-color)}.of-cost-legend,.of-result-sale-grid{grid-template-columns:1fr}.of-result-simulator .btn{min-height:44px}}

/* Resultado financeiro: obra e unidade em uma leitura operacional simples. */
.of-result-filter-heading,.of-result-context,.of-result-section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.of-result-filter-heading{margin-bottom:1rem}
.of-result-context{align-items:center;padding:1.1rem 1.25rem;background:linear-gradient(135deg,rgba(13,110,253,.07),rgba(255,255,255,.75))}
.of-result-context h2,.of-result-section-title h3{margin:0;font-size:1.2rem}
.of-result-eyebrow{display:block;margin-bottom:.2rem;color:var(--bs-primary);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.of-result-context-total{text-align:right}.of-result-context-total span{display:block;color:var(--bs-secondary-color);font-size:.78rem}.of-result-context-total strong{display:block;font-size:1.45rem;overflow-wrap:anywhere}
.of-result-unit-note{display:flex;align-items:flex-start;gap:.7rem}.of-result-unit-note div{display:grid;gap:.15rem}.of-result-unit-note span{font-size:.86rem}
.of-result-kpis .of-card{padding:1rem 1.1rem}
.of-result-main-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:1rem}
.of-result-section{min-width:0;padding:1.25rem}.of-result-section-title>strong{font-size:1.15rem;overflow-wrap:anywhere}
.of-result-breakdown{display:grid;gap:.75rem;margin-top:1rem}.of-result-breakdown>div,.of-result-deductions>div{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--bs-border-color)}
.of-result-breakdown span{display:flex;align-items:center;gap:.5rem;color:var(--bs-secondary-color)}.of-result-breakdown i{width:.65rem;height:.65rem;border-radius:50%;background:#8b5cf6}.of-result-breakdown i.lot{background:#7c8ba1}.of-result-breakdown i.purchase{background:#4f7ff0}.of-result-breakdown i.service{background:#33b6cc}.of-result-breakdown i.forecast{background:#f5a623}
.of-result-sale-hero{margin:1rem 0;padding:1rem;border-radius:.9rem;background:var(--bs-tertiary-bg)}.of-result-sale-hero span,.of-result-profit span,.of-result-minimum span{display:block;color:var(--bs-secondary-color);font-size:.78rem}.of-result-sale-hero strong{display:block;font-size:1.55rem}
.of-result-deductions{display:grid;gap:.65rem}.of-result-deductions span{color:var(--bs-secondary-color)}
.of-result-profit{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding:1rem 0}.of-result-profit strong{font-size:1.5rem;overflow-wrap:anywhere}
.of-result-minimum{display:grid;grid-template-columns:2fr 1fr;gap:.75rem;padding-top:1rem;border-top:1px solid var(--bs-border-color)}.of-result-minimum>div{padding:.75rem;border-radius:.75rem;background:rgba(13,110,253,.05)}.of-result-minimum strong{display:block;overflow-wrap:anywhere}
.of-result-details{padding:1rem 1.25rem}
@media(max-width:991.98px){.of-result-main-grid{grid-template-columns:1fr}}
@media(max-width:575.98px){.of-result-filter-heading,.of-result-context,.of-result-section-title{display:block}.of-result-context,.of-result-section,.of-result-details{padding:1rem}.of-result-filter-heading .badge{margin-top:.75rem}.of-result-context-total{text-align:left;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--bs-border-color)}.of-result-kpis .col-6{width:100%}.of-result-minimum{grid-template-columns:1fr}.of-result-profit{align-items:flex-start}.of-result-profit strong{text-align:right}}
@media(max-width:767.98px){.of-consumption-table thead{display:none}.of-consumption-table,.of-consumption-table tbody,.of-consumption-table tr,.of-consumption-table td{display:block;width:100%}.of-consumption-table tr{padding:.45rem 0;border-bottom:1px solid var(--bs-border-color)}.of-consumption-table td{display:grid;grid-template-columns:minmax(6.5rem,40%) minmax(0,60%);gap:.75rem;text-align:right!important;border:0;padding:.4rem .15rem}.of-consumption-table td::before{content:attr(data-label);text-align:left;color:var(--bs-secondary-color);font-size:.78rem;font-weight:600}.of-consumption-table td[colspan]{display:block;text-align:center!important}.of-consumption-table td[colspan]::before{display:none}}

/* Painéis analíticos: resultado financeiro e materiais comprados. */
.of-analytics-hero{padding:1.4rem;border-radius:30px;background:linear-gradient(135deg,#0f172a 0%,#075985 50%,#0f766e 100%);color:#fff;box-shadow:0 24px 48px rgba(15,23,42,.18)}
.of-analytics-hero-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.25rem}.of-analytics-hero h1{margin:.15rem 0 .35rem;font-size:clamp(1.6rem,2.5vw,2.25rem);font-weight:800;letter-spacing:-.035em}.of-analytics-hero-heading p{max-width:55rem;margin:0;color:rgba(255,255,255,.78)}.of-analytics-kicker{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#8de4ef}.of-analytics-hero-icon{display:grid;place-items:center;flex:0 0 4rem;height:4rem;border-radius:1.25rem;background:rgba(255,255,255,.12);font-size:1.75rem}
.of-analytics-filter{padding:1rem;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.1);backdrop-filter:blur(12px)}.of-analytics-filter .of-result-filter-heading{margin-bottom:.85rem}.of-analytics-filter .of-result-filter-heading p,.of-analytics-filter label{color:rgba(255,255,255,.72)}.of-analytics-filter .form-control,.of-analytics-filter .form-select{min-height:44px;border:1px solid rgba(255,255,255,.4);background-color:rgba(255,255,255,.96)}.of-analytics-filter .btn{min-height:44px;background:#fff;border-color:#fff;color:#075985;font-weight:700}.of-analytics-filter .btn:hover{background:#e0f2fe;border-color:#e0f2fe;color:#075985}.of-analytics-safe{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border-radius:999px;background:rgba(255,255,255,.13);color:#fff;font-size:.72rem;font-weight:700;white-space:nowrap}
.of-result-cost-visual{display:grid;grid-template-columns:12rem minmax(0,1fr);gap:1.5rem;align-items:center}
.of-analytics-donut,.of-source-donut{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:50%;background:var(--donut);box-shadow:inset 0 0 0 1px rgba(15,23,42,.04)}
.of-analytics-donut::after,.of-source-donut::after{content:"";position:absolute;inset:18%;border-radius:50%;background:#fff;box-shadow:0 7px 24px rgba(15,23,42,.08)}
.of-analytics-donut>div,.of-source-donut>div{position:relative;z-index:1;text-align:center;padding:.5rem}.of-analytics-donut span,.of-source-donut span{display:block;color:#64748b;font-size:.68rem}.of-analytics-donut strong,.of-source-donut strong{display:block;font-size:.88rem;color:#0f172a;overflow-wrap:anywhere}
.of-result-breakdown>div{display:grid;grid-template-columns:minmax(0,1fr) auto 3.25rem}.of-result-breakdown small{text-align:right;color:#64748b}
.of-financial-progress{padding-top:1rem;border-top:1px solid rgba(148,163,184,.2)}
.of-analytics-heading{display:flex;justify-content:space-between;gap:1rem;align-items:end}.of-analytics-heading span{display:block;color:#64748b;font-size:.76rem}.of-analytics-heading b{font-size:.8rem;color:#166534}
.of-progress-stack{display:flex;height:.65rem;margin:.75rem 0;overflow:hidden;border-radius:99px;background:#e9eef5}.of-progress-stack span{height:100%}.of-progress-stack .paid{background:#10b981}.of-progress-stack .open{background:#f59e0b}.of-progress-stack .forecast{background:#8b5cf6}
.of-progress-legend{display:flex;flex-wrap:wrap;gap:1rem;color:#64748b;font-size:.75rem}.of-progress-legend span{display:flex;align-items:center;gap:.35rem}.of-progress-legend i,.of-source-legend i{width:.55rem;height:.55rem;border-radius:50%}.of-progress-legend .paid{background:#10b981}.of-progress-legend .open{background:#f59e0b}.of-progress-legend .forecast{background:#8b5cf6}
.of-sale-comparison{display:grid;gap:.7rem;margin-top:.35rem;padding:1rem;border-radius:1rem;background:#f8fafc}.of-sale-comparison>div{display:grid;grid-template-columns:8rem minmax(4rem,1fr) auto;align-items:center;gap:.75rem;font-size:.75rem}.of-sale-comparison>div>div{height:.5rem;border-radius:99px;background:#e2e8f0;overflow:hidden}.of-sale-comparison i{display:block;height:100%;border-radius:inherit;background:#64748b}.of-sale-comparison .profit i{background:#10b981}.of-sale-comparison strong{font-size:.76rem}
.of-material-context{display:flex;justify-content:space-between;align-items:center;padding:1.15rem 1.3rem!important;background:linear-gradient(135deg,#073b70,#0a67a3);color:#fff;overflow:hidden}.of-material-context .of-result-eyebrow{color:#93ddff}.of-material-context h2{margin:0;font-size:clamp(1.2rem,2.2vw,1.65rem)}.of-material-context p{margin:.35rem 0 0;color:rgba(255,255,255,.72)}.of-material-context-icon{display:grid;place-items:center;width:4rem;height:4rem;border-radius:1.25rem;background:rgba(255,255,255,.12);font-size:1.7rem}
.of-material-analytics{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(20rem,.85fr);gap:1rem}.of-analytics-panel{min-width:0}.of-analytics-title{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.of-analytics-title h2{font-size:1.08rem;margin:0}.of-analytics-title p{font-size:.78rem;color:#64748b;margin:.2rem 0 0}.of-analytics-title>i{display:grid;place-items:center;flex:0 0 2.5rem;height:2.5rem;border-radius:.8rem;background:#eaf4ff;color:#075985;font-size:1.15rem}.of-analytics-empty{padding:2.5rem 1rem;text-align:center;color:#64748b}
.of-category-chart{display:grid;gap:1rem}.of-category-row{display:grid;grid-template-columns:minmax(9rem,1fr) minmax(6rem,1.1fr) 7.5rem;gap:1rem;align-items:center}.of-category-row>div:first-child span,.of-category-row>div:last-child span{display:block;color:#64748b;font-size:.7rem}.of-category-row>div:last-child{text-align:right}.of-category-bar,.of-rank-bar{height:.55rem;border-radius:99px;background:#e8eef6;overflow:hidden}.of-category-bar i,.of-rank-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0b67a3,#32b7d6)}
.of-source-chart{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:1.35rem;align-items:center}.of-source-donut{--donut:conic-gradient(#0b67a3 0 var(--direct),#61c6d9 var(--direct) 100%)}.of-source-legend{display:grid;gap:1rem}.of-source-legend>div{display:grid;grid-template-columns:.65rem minmax(0,1fr) auto;gap:.55rem;align-items:center}.of-source-legend i.direct{background:#0b67a3}.of-source-legend i.allocated{background:#61c6d9}.of-source-legend span{font-size:.78rem}.of-source-legend small{display:block;color:#64748b}.of-source-legend strong{font-size:.82rem}
.of-product-ranking{display:grid;gap:.35rem}.of-product-rank{display:grid;grid-template-columns:2rem minmax(0,1fr) 9rem;gap:.85rem;align-items:center;padding:.75rem;border-radius:1rem}.of-product-rank:hover{background:#f8fafc}.of-rank-number{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.7rem;background:#eaf4ff;color:#075985;font-weight:800}.of-rank-content>div:first-child{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.45rem}.of-rank-content span,.of-rank-value span{color:#64748b;font-size:.7rem}.of-rank-value{text-align:right}.of-rank-value strong,.of-rank-value span{display:block}
.of-insight-tabs{display:flex;flex-wrap:wrap;gap:.55rem;margin:-.25rem 0 1.25rem;padding:.35rem;border-radius:1rem;background:#f1f5f9}.of-insight-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:38px;padding:.45rem .75rem;border:0;border-radius:.75rem;background:transparent;color:#526176;font-size:.78rem;font-weight:700;transition:.18s ease}.of-insight-tabs button:hover{background:#fff;color:#075985}.of-insight-tabs button.active{background:#fff;color:#075985;box-shadow:0 5px 14px rgba(15,23,42,.09)}[data-insight-panel][hidden]{display:none!important}
@media(max-width:991.98px){.of-material-analytics{grid-template-columns:1fr}.of-result-cost-visual{grid-template-columns:10rem minmax(0,1fr)}}
@media(max-width:575.98px){.of-analytics-hero{padding:1rem;border-radius:24px}.of-analytics-hero-icon{display:none}.of-analytics-hero-heading{margin-bottom:1rem}.of-analytics-filter{padding:.85rem;border-radius:18px}.of-analytics-filter .of-result-filter-heading{display:block}.of-analytics-safe{margin-top:.6rem}.of-result-cost-visual,.of-source-chart{grid-template-columns:1fr}.of-analytics-donut,.of-source-donut{width:10rem;margin:auto}.of-result-breakdown>div{grid-template-columns:minmax(0,1fr) auto 2.75rem}.of-sale-comparison>div{grid-template-columns:1fr auto}.of-sale-comparison>div>div{grid-column:1/-1;grid-row:2}.of-material-context-icon{display:none}.of-category-row{grid-template-columns:minmax(0,1fr) auto;gap:.45rem}.of-category-bar{grid-column:1/-1;grid-row:2}.of-product-rank{grid-template-columns:2rem minmax(0,1fr)}.of-rank-value{grid-column:2;text-align:left;display:flex;gap:.5rem;align-items:baseline}.of-rank-content>div:first-child{display:block}.of-rank-value span{display:inline}.of-material-context{padding:1rem}}
