﻿:root {
    --tecso-primary: #0d6efd;
    --tecso-bg: #f4f6fb;
    --tecso-card: #ffffff;
    --brand-shopee: #EE4D2D;
    --brand-tiktok: #000000;
    --brand-tiktok-accent: #FE2C55;
    --brand-mercadolivre: #FFE600;
    --brand-mercadolivre-text: #000000;
    --brand-mercadolivre-border: #C9A227;
    --brand-hotmart: #FF5200;
    --brand-braip: #12B76A;
    --brand-platform-default: #6B7280;
    --brand-amazon: #FF9900;
    --brand-amazon-dark: #131921;
    --brand-magalu: #0086FF;
    --brand-kabum: #FF6500;
    --brand-casasbahia: #E30613;
}

html, body {
    font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
    background: var(--tecso-bg);
}

/* ===== Área do Cliente: paleta clara, neutra e de alta legibilidade ===== */
.portal-shell {
    --tf-client-bg: #f8fafc;
    --tf-client-surface: #ffffff;
    --tf-client-border: #e2e8f0;
    --tf-client-text: #0f172a;
    --tf-client-muted: #64748b;
    --tf-client-accent: #2563eb;
    --tf-client-accent-soft: #eff6ff;
    --bs-body-color: var(--tf-client-text);
    --bs-secondary-color: var(--tf-client-muted);
    --bs-border-color: var(--tf-client-border);
    --bs-border-radius: 0.625rem;
    --bs-border-radius-lg: 0.875rem;
    --bs-primary: #2563eb;
    --bs-primary-rgb: 37, 99, 235;
    --bs-link-color: #2563eb;
    --bs-link-color-rgb: 37, 99, 235;
    --bs-link-hover-color: #1d4ed8;
    --bs-link-hover-color-rgb: 29, 78, 216;
    background: var(--tf-client-bg);
    color: var(--tf-client-text);
}

.portal-shell .btn-primary {
    --bs-btn-bg: #2563eb;
    --bs-btn-border-color: #2563eb;
    --bs-btn-hover-bg: #1d4ed8;
    --bs-btn-hover-border-color: #1d4ed8;
    --bs-btn-active-bg: #1e40af;
    --bs-btn-active-border-color: #1e40af;
    --bs-btn-disabled-bg: #2563eb;
    --bs-btn-disabled-border-color: #2563eb;
}

.portal-shell .btn-outline-primary {
    --bs-btn-color: #2563eb;
    --bs-btn-border-color: #2563eb;
    --bs-btn-hover-bg: #2563eb;
    --bs-btn-hover-border-color: #2563eb;
    --bs-btn-active-bg: #1d4ed8;
    --bs-btn-active-border-color: #1d4ed8;
}

.portal-main .card {
    --bs-card-border-color: var(--tf-client-border);
    --bs-card-border-radius: 0.875rem;
    --bs-card-inner-border-radius: calc(0.875rem - 1px);
    --bs-card-cap-bg: #f8fafc;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 4px 12px rgba(15, 23, 42, 0.04);
}

.portal-main .table {
    --bs-table-border-color: var(--tf-client-border);
}

.portal-main .table > thead th {
    color: var(--tf-client-muted);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* backdrop-filter cria contexto de empilhamento: sem z-index próprio o dropdown de perfil fica sob a página. */
.portal-header {
    position: relative;
    z-index: 1050;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--tf-client-border);
}

.home-hero {
    padding: 2rem 0 3rem;
}

.unified-login-page {
    padding: 1rem 0 2.5rem;
}

.unified-login-shell {
    width: 100%;
    max-width: 28rem;
    padding: 0 0.25rem;
}

.unified-login-lead {
    max-width: 24rem;
    font-size: 1rem;
}

.unified-login-card {
    border-radius: 1.25rem;
    overflow: hidden;
}

.login-social-grid .auth-provider-btn {
    min-height: var(--touch-target-min);
    font-weight: 600;
    justify-content: flex-start;
    padding: 0.75rem 1rem;
}

.login-divider {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: #6c757d;
    font-size: 0.85rem;
}

.login-divider::before,
.login-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: rgba(0, 0, 0, 0.08);
}

.login-recovery-link {
    color: #495057;
    transition: color 0.15s ease;
}

.login-recovery-link:hover {
    color: #0d6efd;
    text-decoration: underline !important;
}

.login-form-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
}

.login-register-link {
    text-align: center;
}

@media (min-width: 576px) {
    .login-form-actions {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .login-register-link {
        flex: 0 0 auto;
        min-width: 9.5rem;
    }
}

@media (min-width: 576px) {
    .unified-login-page {
        padding: 2rem 0 3rem;
    }

    .unified-login-shell {
        max-width: 30rem;
    }
}

@media (min-width: 992px) {
    .unified-login-shell {
        max-width: 32rem;
    }
}

.brand-logo {
    display: block;
    height: 40px;
    width: auto;
    object-fit: contain;
    border-radius: 0.5rem;
}

.brand-logo-link {
    display: inline-flex;
    align-items: center;
    padding: 0;
}

.brand-logo-login {
    height: 72px;
    margin: 0 auto;
    border-radius: 0.75rem;
    box-shadow: 0 0.5rem 1.25rem rgba(15, 23, 42, 0.18);
}

.brand-badge {
    display: inline-block;
    padding: 0.35rem 0.85rem;
    border-radius: 999px;
    background: #0d6efd;
    color: #fff;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.platform-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    background: var(--tecso-card);
}

.platform-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 1rem 2rem rgba(13, 110, 253, 0.12) !important;
}

.platform-icon {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff;
}

.platform-icon.tiktok {
    background: linear-gradient(135deg, #010101, #25f4ee 60%, #fe2c55);
}

.platform-icon.shopee {
    background: linear-gradient(135deg, #ee4d2d, #f9a825);
}

.login-page {
    padding: 1rem 0 2rem;
}

.login-card {
    background: var(--tecso-card);
    border-radius: 1.25rem;
}

.auth-provider-btn {
    text-align: left;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.provider-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: #fff;
    flex-shrink: 0;
}

.provider-icon.facebook { background: #1877f2; }
.provider-icon.google { background: #ea4335; }
.provider-icon.icloud { background: #555; font-size: 1.1rem; }
.provider-icon.email { background: #212529; }

.confirm-dialog-host {
    z-index: 1065;
}

.confirm-dialog-backdrop {
    z-index: 1060;
    background: rgba(15, 23, 42, 0.62);
}

.confirm-dialog-content {
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 1.25rem 2.5rem rgba(15, 23, 42, 0.28);
}

.confirm-dialog-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    flex-shrink: 0;
}

.confirm-dialog-icon--danger {
    background: #fee2e2;
    color: #b91c1c;
}

.confirm-dialog-icon--warning {
    background: #fef3c7;
    color: #b45309;
}

.confirm-dialog-icon--info {
    background: #dbeafe;
    color: #1d4ed8;
}

.loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(15, 23, 42, 0.55);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

#blazor-error-ui {
    display: none;
}

.blazor-error-ui-custom {
    background: #b32121;
    color: #fff;
    padding: 0.75rem 1rem;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1500;
    display: none;
}

.blazor-error-ui-custom .reload {
    color: #fff;
    margin-left: 0.5rem;
}

.dashboard-page .dashboard-stat-card {
    background: var(--tecso-card);
    border-radius: 1rem;
}

.dashboard-page .dashboard-stat-card:hover {
    box-shadow: 0 0.5rem 1.25rem rgba(13, 110, 253, 0.08);
}

.dashboard-kpi {
    background: var(--tecso-card);
    border-radius: 1rem;
    transition: box-shadow 0.2s ease;
}

.dashboard-kpi:hover {
    box-shadow: 0 0.5rem 1.25rem rgba(13, 110, 253, 0.08);
}

.dashboard-table thead th {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6c757d;
}

/* --- Mobile-first (Fase 4.1) --- */

:root {
    --portal-sidebar-width: 16.5rem;
    --touch-target-min: 44px;
}

.btn-touch {
    min-height: var(--touch-target-min);
    min-width: var(--touch-target-min);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
}

.portal-body {
    position: relative;
    min-height: 0;
}

.portal-sidebar {
    width: var(--portal-sidebar-width);
    flex-shrink: 0;
    background: #ffffff;
    border-right: 1px solid #e2e8f0;
    padding: 1rem 0.75rem;
    z-index: 1050;
}

.portal-sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

/* Categoria: cabeçalho em caixa alta, cinza suave, sem interação. */
.portal-nav-category {
    margin: 1rem 0.5rem 0.35rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #94a3b8;
    user-select: none;
}

.portal-nav-divider {
    margin: 0.75rem 0.5rem;
    border-color: #e2e8f0;
    opacity: 1;
}

.portal-nav-link {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-height: var(--touch-target-min);
    padding: 0.55rem 0.75rem;
    border-radius: 0.5rem;
    color: #334155;
    text-decoration: none;
    font-weight: 500;
    transition: background 0.15s ease, color 0.15s ease;
}

.portal-nav-link:hover {
    background: #f1f5f9;
    color: #0f172a;
}

.portal-nav-link.active {
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 600;
    box-shadow: inset 3px 0 0 #2563eb;
}

/* Menu pai: ícone em destaque (badge) + texto em negrito. */
.portal-nav-parent {
    font-weight: 600;
    color: #0f172a;
}

.portal-nav-parent > .portal-nav-icon {
    width: 1.85rem;
    height: 1.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    background: #eef2ff;
    color: #2563eb;
    opacity: 1;
    font-size: 1rem;
}

.portal-nav-parent.active > .portal-nav-icon {
    background: #2563eb;
    color: #ffffff;
}

.portal-nav-group-toggle {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.portal-nav-group-toggle.active {
    background: transparent;
    color: #1d4ed8;
    box-shadow: none;
}

/* Submenu: recuo de 1.5rem, linha guia discreta e ícone menor. */
.portal-nav-submenu {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    margin: 0.15rem 0 0.35rem 1.5rem;
    padding-left: 0.5rem;
    border-left: 1px solid #e2e8f0;
}

.portal-nav-sublink {
    min-height: 2.5rem;
    padding: 0.4rem 0.65rem;
    font-weight: 500;
    font-size: 0.9rem;
    color: #475569;
}

.portal-nav-sublink .portal-nav-icon {
    width: 0.95rem;
    font-size: 0.85rem;
    opacity: 0.7;
}

.portal-nav-sublink.active {
    box-shadow: inset 2px 0 0 #2563eb;
}

.portal-nav-icon {
    width: 1.15rem;
    flex-shrink: 0;
    opacity: 0.85;
    font-size: 1rem;
    line-height: 1;
}

.portal-nav-link-label {
    flex: 1 1 auto;
    min-width: 0;
}

.portal-nav-caret {
    margin-left: auto;
    font-size: 0.75rem;
    opacity: 0.7;
}

.portal-nav-caret.transform {
    display: inline-block;
}

.portal-nav-caret.transition-transform {
    transition: transform 0.2s ease;
}

.portal-nav-caret.rotate-180 {
    transform: rotate(180deg);
}

.portal-nav-collapse {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.portal-nav-collapse.transition-all {
    transition: opacity 0.3s ease;
}

.portal-nav-collapse.block {
    display: flex;
}

.portal-nav-collapse.hidden {
    display: none;
}

.portal-nav-soon {
    flex-shrink: 0;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #6c757d;
    background: #e9ecef;
    border-radius: 999px;
    padding: 0.12rem 0.4rem;
}

.whatsapp-qr {
    max-width: 240px;
    background: #fff;
}

.campaign-groups-popover {
    position: relative;
    display: inline-block;
}

.campaign-groups-popover .campaign-groups-menu {
    display: none;
    position: absolute;
    z-index: 30;
    left: 0;
    top: calc(100% + 0.35rem);
    min-width: 12rem;
    max-width: 18rem;
    max-height: 14rem;
    overflow: auto;
    padding: 0.65rem 0.75rem;
    border-radius: 0.5rem;
    background: #fff;
    box-shadow: 0 0.5rem 1.25rem rgba(15, 23, 42, 0.18);
    font-size: 0.8125rem;
}

.campaign-groups-popover:hover .campaign-groups-menu,
.campaign-groups-popover:focus-within .campaign-groups-menu {
    display: block;
}

.campaign-toast {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 1080;
    min-width: 16rem;
    background: #14532d;
    color: #fff;
}

.campaign-actions {
    position: relative;
    z-index: 2;
}

.campaign-actions .btn {
    pointer-events: auto;
    cursor: pointer;
}

.campaign-actions .btn i {
    pointer-events: none;
}

.conexoes-page .conexoes-tabs .nav-link {
    font-weight: 600;
    color: #4b5563;
}

.conexoes-page .conexoes-tabs .nav-link.active {
    color: #0f172a;
    border-bottom-color: #16a34a;
}

.conexoes-page .conexoes-card {
    max-width: 40rem;
}

.conexoes-avatar {
    width: 4rem;
    height: 4rem;
    border-radius: 999px;
    background: #ecfdf5;
    color: #16a34a;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    overflow: hidden;
    flex-shrink: 0;
}

.conexoes-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.monitored-offer-card .product-image-preview-box--sm {
    width: 64px;
    height: 64px;
}

.monitored-offer-title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 0.88rem;
    line-height: 1.25;
}

.monitored-offer-price {
    font-size: 0.9rem;
}

.monitored-offer-meta {
    font-size: 0.72rem;
    max-width: 50%;
}

.monitored-offer-header {
    min-width: 0;
}

.monitored-offer-captured {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: var(--bs-primary-bg-subtle, #e7f1ff);
    color: var(--bs-primary-text-emphasis, #052c65);
    font-size: 0.76rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.badge.badge-sm,
.marketplace-platform-badge.badge-sm {
    padding: 0.18rem 0.5rem;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0;
}

.monitored-search {
    flex: 1 1 18rem;
    max-width: 32rem;
}

.monitored-group-select {
    flex: 0 1 14rem;
    width: auto;
    min-width: 10rem;
}

.monitored-tag-select {
    flex: 0 1 13rem;
    width: auto;
    min-width: 11rem;
    border-color: var(--bs-secondary);
}

.monitored-tag-select.is-filtered {
    border-color: var(--bs-primary);
    color: var(--bs-primary);
    font-weight: 600;
}

.monitored-platform-select {
    flex: 0 1 12rem;
    width: auto;
    min-width: 10rem;
    border-color: var(--bs-secondary);
}

.monitored-platform-select.is-filtered {
    border-color: var(--bs-primary);
    color: var(--bs-primary);
    font-weight: 600;
}

.monitored-sync-spinner {
    width: 0.7rem;
    height: 0.7rem;
    border-width: 0.12em;
}

.monitored-offers-container {
    scroll-margin-top: 1rem;
}

.ofertio-toast-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: min(24rem, calc(100vw - 40px));
    pointer-events: none;
}

.ofertio-toast {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.7rem 0.75rem 0.85rem 0.9rem;
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1.25rem rgba(15, 23, 42, 0.18);
    color: #fff;
    font-size: 0.875rem;
    line-height: 1.35;
    overflow: hidden;
    pointer-events: auto;
    animation: ofertio-toast-in 0.18s ease-out;
}

.ofertio-toast--success {
    background: #198754;
}

.ofertio-toast--error {
    background: #dc3545;
}

.ofertio-toast--warning {
    background: #ffc107;
    color: #212529;
}

.ofertio-toast--info {
    background: #0d6efd;
}

.ofertio-toast-icon {
    font-size: 1.05rem;
    line-height: 1.2;
    flex-shrink: 0;
}

.ofertio-toast-message {
    flex-grow: 1;
    min-width: 0;
    word-break: break-word;
}

.ofertio-toast-close {
    flex-shrink: 0;
    border: 0;
    background: transparent;
    color: inherit;
    opacity: 0.8;
    padding: 0 0.15rem;
    font-size: 0.8rem;
    line-height: 1.4;
    cursor: pointer;
}

.ofertio-toast-close:hover,
.ofertio-toast-close:focus-visible {
    opacity: 1;
}

.ofertio-toast-progress {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 3px;
    width: 100%;
    background: currentColor;
    opacity: 0.35;
    transform-origin: left;
    animation: ofertio-toast-progress var(--ofertio-toast-duration, 10000ms) linear forwards;
}

@keyframes ofertio-toast-in {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes ofertio-toast-progress {
    from { transform: scaleX(1); }
    to { transform: scaleX(0); }
}

.media-skeleton {
    font-size: 0.65rem;
    line-height: 1.2;
    animation: monitored-media-pulse 1.1s ease-in-out infinite;
}

@keyframes monitored-media-pulse {
    0%, 100% { opacity: 0.55; }
    50% { opacity: 1; }
}

.monitored-offer-actions {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 0.25rem;
}

.monitored-offer-actions .btn,
.coupon-card .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    padding: 4px 8px;
    font-size: 0.82rem;
    line-height: 1.2;
    white-space: nowrap;
    min-width: 0;
}

.monitored-offer-actions .btn span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.monitored-offer-actions .btn {
    padding: 3px 4px;
    font-size: 0.76rem;
    gap: 0.2rem;
}

.conexoes-qr-modal {
    z-index: 1055;
}

.userbot-help-modal .userbot-help-steps li {
    line-height: 1.45;
}

.userbot-field-hints .badge {
    font-weight: 600;
}

.portal-sidebar-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1040;
    border: 0;
    padding: 0;
    background: rgba(15, 23, 42, 0.45);
    cursor: pointer;
}

.portal-sidebar-backdrop.is-visible {
    display: block;
}

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

.dashboard-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.dashboard-toolbar .btn {
    min-height: var(--touch-target-min);
}

@media (max-width: 575.98px) {
    .dashboard-toolbar {
        flex-direction: column;
        width: 100%;
    }

    .dashboard-toolbar .btn {
        width: 100%;
    }
}

.filter-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.filter-form-actions .btn {
    min-height: var(--touch-target-min);
    flex: 1 1 auto;
}

@media (min-width: 768px) {
    .filter-form-actions .btn {
        flex: 0 1 auto;
    }
}

/* Tabela desktop / cards mobile */
.responsive-data-table .data-table-desktop {
    display: none;
}

.responsive-data-table .data-cards-mobile {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
}

.data-list-card {
    background: var(--tecso-card);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 0.75rem;
    padding: 1rem;
}

.data-list-card dl {
    margin: 0;
    display: grid;
    grid-template-columns: minmax(6rem, 38%) 1fr;
    gap: 0.35rem 0.75rem;
}

.data-list-card dt {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6c757d;
    margin: 0;
}

.health-status-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 768px) {
    .health-status-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1200px) {
    .health-status-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.health-metrics-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 992px) {
    .health-metrics-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.health-status-card {
    background: var(--tecso-card);
    border-radius: 0.75rem;
    border: 1px solid rgba(0, 0, 0, 0.08);
    padding: 1rem;
    min-height: 6.5rem;
}

.health-status-card--ok { border-left: 4px solid #198754; }
.health-status-card--warn { border-left: 4px solid #ffc107; }
.health-status-card--error { border-left: 4px solid #dc3545; }

.health-status-card__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.health-status-card__title {
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0;
}

.health-error-scroll {
    max-height: min(50vh, 28rem);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.health-error-item {
    padding: 0.85rem 1rem;
    min-height: 44px;
}

.conciliation-kpi-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 576px) {
    .conciliation-kpi-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 992px) {
    .conciliation-kpi-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.conciliation-kpi-card {
    background: var(--tecso-card);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 0.75rem;
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-height: 5.5rem;
}

.conciliation-kpi-card.has-alert {
    border-color: rgba(220, 53, 69, 0.35);
    box-shadow: 0 0 0 1px rgba(220, 53, 69, 0.08);
}

.conciliation-kpi-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6c757d;
}

.conciliation-kpi-value {
    font-size: 1.35rem;
    line-height: 1.2;
}

.conciliation-kpi-hint {
    font-size: 0.75rem;
    color: #6c757d;
}

.propaganda-form-grid {
    display: flex;
    flex-direction: column;
}

@media (min-width: 992px) {
    .propaganda-form-grid {
        display: block;
    }
}

.propaganda-product-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 576px) {
    .propaganda-product-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1200px) {
    .propaganda-product-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.propaganda-product-card {
    background: var(--tecso-card);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 0.85rem;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 0.25rem 1rem rgba(15, 23, 42, 0.06);
}

.propaganda-product-card__image {
    height: 10rem;
    background-size: cover;
    background-position: center;
}

.propaganda-product-card__image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #e8eef8, #f4f6fb);
    font-size: 2rem;
    font-weight: 700;
    color: #6c757d;
}

.propaganda-product-card__body {
    padding: 1rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.propaganda-product-card__title {
    font-size: 1.05rem;
    font-weight: 600;
    margin: 0 0 0.25rem;
}

.propaganda-copy-btn {
    min-height: 44px;
    min-width: 44px;
    padding: 0.65rem 1rem;
}

.data-list-card--danger {
    border-color: rgba(220, 53, 69, 0.4);
    background: rgba(220, 53, 69, 0.04);
}

.data-list-card dd {
    margin: 0;
    font-weight: 500;
    word-break: break-word;
}

.data-list-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.data-list-card-title {
    font-weight: 600;
    margin: 0;
    font-size: 1rem;
}

@media (min-width: 768px) {
    .responsive-data-table .data-table-desktop {
        display: block;
    }

    .responsive-data-table .data-cards-mobile {
        display: none;
    }
}

@media (max-width: 991.98px) {
    .portal-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        max-width: 85vw;
        overflow-y: auto;
        overscroll-behavior: contain;
        transform: translateX(-100%);
        transition: transform 0.25s ease;
        box-shadow: 0 0 2rem rgba(0, 0, 0, 0.12);
    }

    .portal-sidebar.is-open {
        transform: translateX(0);
    }

    .portal-main {
        width: 100%;
    }
}

.form-control,
.form-select {
    min-height: var(--touch-target-min);
}

.form-control-sm {
    min-height: 2.5rem;
}

@media (max-width: 767.98px) {
    .form-control-sm,
    .filter-form-actions .btn {
        min-height: var(--touch-target-min);
    }
}

.account-security-tabs .nav-link {
    width: 100%;
    text-align: center;
    border-radius: 999px;
    color: #495057;
    font-weight: 600;
}

.account-security-tabs .nav-link.active {
    background: #0d6efd;
    color: #fff;
}

.provider-card {
    background: var(--tecso-card);
    border-radius: 1rem;
    min-height: 100%;
}

.provider-card-actions .btn {
    min-height: var(--touch-target-min);
}

.account-password-card {
    border-radius: 1rem;
    max-width: 36rem;
}

@media (min-width: 576px) {
    .account-security-tabs .nav-link {
        width: auto;
        min-width: 11rem;
    }
}

/* Meu plano: etapas do checkout, cards de plano e resultado do pedido */
.checkout-step {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem 0.35rem 0.35rem;
    border-radius: 999px;
    background: var(--bs-tertiary-bg, #f1f3f5);
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.875rem;
}

.checkout-step__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #dee2e6);
    font-weight: 600;
}

.checkout-step--current {
    background: var(--bs-primary-bg-subtle, #e7f1ff);
    color: var(--bs-primary-text-emphasis, #052c65);
    font-weight: 600;
}

.checkout-step--current .checkout-step__badge {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

.checkout-step--done .checkout-step__badge {
    background: var(--bs-success, #198754);
    border-color: var(--bs-success, #198754);
    color: #fff;
}

@media (max-width: 575.98px) {
    .checkout-step--next .checkout-step__label {
        display: none;
    }
}

.plan-card {
    border-radius: 1rem;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.plan-card:hover {
    transform: translateY(-2px);
}

.plan-card--current {
    outline: 2px solid var(--bs-primary);
}

.plan-card__price {
    font-size: 1.5rem;
    font-weight: 700;
}

.plan-card__limits li + li {
    margin-top: 0.2rem;
}

.my-plan-current-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 0.85rem;
    background: var(--bs-primary-bg-subtle, #e7f1ff);
    color: var(--bs-primary);
    font-size: 1.4rem;
    flex-shrink: 0;
}

.cycle-option {
    cursor: pointer;
    border: 2px solid var(--bs-border-color, #dee2e6);
    border-radius: 1rem;
}

.cycle-option--selected {
    border-color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle, #e7f1ff);
}

.checkout-result {
    max-width: 32rem;
    border-radius: 1rem;
}

.checkout-result__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    font-size: 2rem;
}

.checkout-result__icon--success {
    background: var(--bs-success-bg-subtle, #d1e7dd);
    color: var(--bs-success, #198754);
}

.checkout-result__icon--danger {
    background: var(--bs-danger-bg-subtle, #f8d7da);
    color: var(--bs-danger, #dc3545);
}

.checkout-result__icon--warning {
    background: var(--bs-warning-bg-subtle, #fff3cd);
    color: var(--bs-warning-text-emphasis, #664d03);
}

.checkout-result__icon--info {
    background: var(--bs-info-bg-subtle, #cff4fc);
    color: var(--bs-info-text-emphasis, #055160);
}

.marketplace-stores-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

@media (min-width: 576px) {
    .marketplace-stores-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .marketplace-stores-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .marketplace-stores-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.marketplace-store-card {
    border-radius: 1rem;
    background: var(--tecso-card, #fff);
}

.marketplace-store-meta {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.marketplace-store-meta dt {
    font-size: 0.75rem;
    color: #6c757d;
    margin: 0;
}

.marketplace-store-meta dd {
    margin: 0;
    font-weight: 600;
    font-size: 0.9rem;
}

.marketplace-platform-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    border: 1px solid transparent;
}

.badge-shopee,
.marketplace-platform-badge--shopee {
    background: var(--brand-shopee);
    color: #fff;
}

.badge-tiktok,
.marketplace-platform-badge--tiktok {
    background: var(--brand-tiktok);
    color: #fff;
}

.badge-mercadolivre,
.marketplace-platform-badge--mercadolivre {
    background: var(--brand-mercadolivre);
    color: var(--brand-mercadolivre-text);
    border-color: var(--brand-mercadolivre-border);
}

.badge-amazon,
.marketplace-platform-badge--amazon {
    background: var(--brand-amazon);
    color: #fff;
}

.marketplace-platform-badge--aliexpress {
    background: #E62E04;
    color: #fff;
}

.badge-magalu,
.marketplace-platform-badge--magalu {
    background: var(--brand-magalu);
    color: #fff;
}

.badge-kabum,
.marketplace-platform-badge--kabum {
    background: var(--brand-kabum);
    color: #fff;
}

.badge-casasbahia,
.marketplace-platform-badge--casasbahia {
    background: var(--brand-casasbahia);
    color: #fff;
}

.badge-hotmart,
.marketplace-platform-badge--hotmart {
    background: var(--brand-hotmart);
    color: #fff;
}

.badge-braip,
.marketplace-platform-badge--braip {
    background: var(--brand-braip);
    color: #fff;
}

.badge-default,
.marketplace-platform-badge--default {
    background: var(--brand-platform-default);
    color: #fff;
}

.commission-link-label {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.marketplace-platform-picker {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 8px;
}

.marketplace-platform-option {
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 0.6rem;
    background: #fff;
    padding: 6px 8px;
    min-height: 0;
}

.marketplace-platform-option--selected.btn-shopee {
    border-color: var(--brand-shopee);
    box-shadow: 0 0.3rem 0.75rem rgba(238, 77, 45, 0.28);
}

.marketplace-platform-option--selected.btn-tiktok {
    border-color: var(--brand-tiktok-accent);
    box-shadow: 0 0.3rem 0.75rem rgba(254, 44, 85, 0.28);
}

.marketplace-platform-option--selected.btn-mercadolivre {
    border-color: var(--brand-mercadolivre-border);
    box-shadow: 0 0.3rem 0.75rem rgba(201, 162, 39, 0.35);
}

.marketplace-platform-option--selected.btn-amazon {
    border-color: var(--brand-amazon);
    box-shadow: 0 0.3rem 0.75rem rgba(255, 153, 0, 0.32);
}

.marketplace-platform-option--selected.btn-magalu {
    border-color: var(--brand-magalu);
    box-shadow: 0 0.3rem 0.75rem rgba(0, 134, 255, 0.28);
}

.marketplace-platform-option--selected.btn-kabum {
    border-color: var(--brand-kabum);
    box-shadow: 0 0.3rem 0.75rem rgba(255, 101, 0, 0.32);
}

.marketplace-platform-option--selected.btn-casasbahia {
    border-color: var(--brand-casasbahia);
    box-shadow: 0 0.3rem 0.75rem rgba(227, 6, 19, 0.3);
}

.marketplace-stores-empty {
    border-radius: 1rem;
}

.marketplace-connect-modal {
    z-index: 1055;
    pointer-events: auto;
}

.marketplace-connect-modal .modal-dialog {
    max-width: 560px;
    margin: 0.75rem auto;
}

.marketplace-connect-modal .modal-content {
    overflow: hidden;
}

.marketplace-connect-modal .modal-header {
    padding: 0.75rem 1rem 0.15rem;
    align-items: flex-start;
}

.marketplace-connect-modal .modal-title {
    font-size: 1.05rem;
    margin-bottom: 0.15rem;
}

.marketplace-connect-modal .modal-header p {
    font-size: 0.75rem;
    line-height: 1.3;
    margin-bottom: 0;
}

.marketplace-connect-modal .modal-body {
    padding: 0.4rem 1rem 0.25rem;
    overflow: visible;
}

.marketplace-connect-modal .form-label {
    margin-bottom: 0.2rem;
    font-size: 0.8rem;
}

.marketplace-connect-modal .form-control {
    padding: 0.3rem 0.6rem;
    min-height: 2rem;
    font-size: 0.875rem;
}

.marketplace-connect-section {
    margin-bottom: 0.55rem;
}

.marketplace-connect-section--last {
    margin-bottom: 0.15rem;
}

.marketplace-connect-modal .marketplace-platform-badge {
    display: inline-flex;
    max-height: 28px;
    width: 100%;
    padding: 0.12rem 0.4rem;
    font-size: 0.68rem;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.marketplace-connect-modal .btn-close {
    padding: 0.35rem;
    margin: 0.1rem 0.1rem 0 auto;
}

.marketplace-connect-modal + .modal-backdrop {
    z-index: 1050;
}

.marketplace-connect-modal .modal-footer {
    padding: 0.4rem 1rem 0.75rem;
    gap: 0.4rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.marketplace-connect-modal .modal-footer .btn {
    min-height: 2.15rem;
    padding: 0.28rem 0.85rem;
    pointer-events: auto;
}

.marketplace-id-help-toggle {
    font-size: 0.75rem;
    text-decoration: none;
    white-space: nowrap;
}

.marketplace-id-help-toggle:hover,
.marketplace-id-help-toggle:focus-visible {
    text-decoration: underline;
}

.affiliate-id-help {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.5rem;
    background: var(--bs-light, #f8f9fa);
    padding: 0.55rem 0.7rem;
}

.affiliate-id-help p {
    color: var(--bs-secondary-color, #6c757d);
    line-height: 1.35;
}

.how-to-store-id {
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.75rem;
    background: var(--bs-light, #f8f9fa);
    padding: 0.75rem 0.85rem;
}

.how-to-store-id-channels {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

@media (min-width: 576px) {
    .how-to-store-id-channels {
        grid-template-columns: 1fr auto 1fr;
        align-items: stretch;
    }

    .how-to-store-id-separator {
        width: 1px;
        background: var(--bs-border-color, #dee2e6);
        align-self: stretch;
    }
}

.how-to-store-id-separator {
    display: none;
}

@media (min-width: 576px) {
    .how-to-store-id-separator {
        display: block;
    }
}

.how-to-store-id-channel {
    background: #fff;
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.65rem;
    padding: 0.75rem;
}

.how-to-store-id-channel__icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bs-primary-bg-subtle, #e7f1ff);
    color: var(--bs-primary, #0d6efd);
    margin-bottom: 0.4rem;
}

.how-to-store-id-channel__icon i {
    font-size: 1.15rem;
}

.how-to-store-id-channel__title {
    font-size: 0.92rem;
    font-weight: 700;
    margin-bottom: 0.4rem;
}

.how-to-store-id-steps {
    padding-left: 1.1rem;
    color: var(--bs-secondary-color, #6c757d);
    line-height: 1.4;
}

.affiliate-id-paste-hint {
    color: var(--bs-secondary-color, #6c757d);
    line-height: 1.35;
    font-size: 0.72rem;
}

/* --- Menu de perfil do cabeçalho (UserProfileMenu) --- */

.ofertio-profile-menu {
    position: relative;
}

.ofertio-profile-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    list-style: none;
    user-select: none;
}

.ofertio-profile-toggle::-webkit-details-marker,
.ofertio-profile-toggle::marker {
    display: none;
    content: "";
}

.ofertio-profile-name {
    max-width: 12rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}

.ofertio-profile-caret {
    font-size: 0.7rem;
    transition: transform 0.15s ease;
}

.ofertio-profile-menu[open] .ofertio-profile-caret {
    transform: rotate(180deg);
}

.ofertio-profile-menu:not([open]) .ofertio-profile-dropdown {
    display: none;
}

.ofertio-profile-dropdown {
    position: absolute;
    top: calc(100% + 0.35rem);
    right: 0;
    left: auto;
    min-width: 15rem;
    max-width: min(20rem, calc(100vw - 1.5rem));
    z-index: 1080;
}

.ofertio-profile-dropdown .dropdown-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
}
/* --- Gerador de Links de Comissão (Fase 11.1) --- */

.link-generator-page {
    max-width: 56rem;
    margin-inline: auto;
}

.link-generator-lead {
    max-width: 28rem;
}

.link-generator-card {
    border-radius: 1.25rem;
    overflow: hidden;
}

.link-generator-input-wrap {
    border-radius: 0.85rem;
    padding: 0.15rem;
    background: #fff;
    border: 2px solid rgba(0, 0, 0, 0.08);
    transition: border-color 0.2s ease, box-shadow 0.25s ease;
}

.link-generator-input {
    border: 0;
    box-shadow: none !important;
    min-height: var(--touch-target-min);
    font-size: 1rem;
}

.link-generator-input:focus {
    outline: none;
}

.link-generator-input-wrap--shopee {
    border-color: var(--brand-shopee);
    box-shadow: 0 0 0 0.2rem rgba(238, 77, 45, 0.18);
    animation: link-generator-pulse 1.4s ease-in-out 1;
}

.link-generator-input-wrap--tiktok {
    border-color: var(--brand-tiktok-accent);
    box-shadow: 0 0 0 0.2rem rgba(254, 44, 85, 0.18);
    animation: link-generator-pulse 1.4s ease-in-out 1;
}

.link-generator-input-wrap--amazon {
    border-color: var(--brand-amazon);
    box-shadow: 0 0 0 0.2rem rgba(255, 153, 0, 0.22);
    animation: link-generator-pulse 1.4s ease-in-out 1;
}

.link-generator-input-wrap--mercadolivre {
    border-color: var(--brand-mercadolivre-border);
    box-shadow: 0 0 0 0.2rem rgba(201, 162, 39, 0.28);
    animation: link-generator-pulse 1.4s ease-in-out 1;
}

.link-generator-input-wrap--magalu {
    border-color: var(--brand-magalu);
    box-shadow: 0 0 0 0.2rem rgba(0, 134, 255, 0.18);
    animation: link-generator-pulse 1.4s ease-in-out 1;
}

.link-generator-input-wrap--kabum {
    border-color: var(--brand-kabum);
    box-shadow: 0 0 0 0.2rem rgba(255, 101, 0, 0.22);
    animation: link-generator-pulse 1.4s ease-in-out 1;
}

.link-generator-input-wrap--casasbahia {
    border-color: var(--brand-casasbahia);
    box-shadow: 0 0 0 0.2rem rgba(227, 6, 19, 0.22);
    animation: link-generator-pulse 1.4s ease-in-out 1;
}

@keyframes link-generator-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.005); }
}

.link-generator-submit {
    font-weight: 700;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.link-generator-accounts {
    padding: 0.85rem 1rem;
    border-radius: 0.85rem;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.link-generator-preview {
    background: rgba(13, 110, 253, 0.06);
    border: 1px dashed rgba(13, 110, 253, 0.25);
}

.link-generator-result {
    border-radius: 1.25rem;
    overflow: hidden;
    background: linear-gradient(160deg, #ffffff 0%, #f0f7ff 100%);
    border: 2px solid rgba(13, 110, 253, 0.18);
    animation: link-generator-result-in 0.35s ease-out;
}

@keyframes link-generator-result-in {
    from {
        opacity: 0;
        transform: translateY(0.75rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.link-generator-result-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    background: rgba(25, 135, 84, 0.12);
    color: #198754;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.link-generator-result-check {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(25, 135, 84, 0.15);
    color: #198754;
    font-size: 1.25rem;
    font-weight: 700;
}

.product-preview-card {
    display: flex;
    align-items: stretch;
    gap: 0.9rem;
    padding: 0.85rem 1rem;
    border-radius: 0.9rem;
    background: #fff;
    border: 1px solid rgba(13, 110, 253, 0.18);
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
}

.product-preview-card--compact {
    align-items: center;
    padding: 0.55rem 0.75rem;
    gap: 0.65rem;
}

.product-preview-thumb {
    width: 4.5rem;
    height: 4.5rem;
    object-fit: cover;
    border-radius: 0.7rem;
    background: #f1f3f5;
    flex-shrink: 0;
}

.product-preview-thumb--sm {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.45rem;
}

.product-image-preview-box {
    width: 96px;
    height: 96px;
    border-radius: 0.75rem;
    border: 1px solid rgba(15, 23, 42, 0.12);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8f9fa;
    flex-shrink: 0;
}

.product-image-preview-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-image-preview-placeholder {
    font-size: 0.7rem;
    color: #6c757d;
    text-align: center;
    padding: 0.35rem;
    line-height: 1.2;
}

.product-image-preview-box--sm {
    width: 40px;
    height: 40px;
    border-radius: 0.45rem;
}

.product-image-preview-box--sm .product-image-preview-placeholder {
    font-size: 0.5rem;
    padding: 0.15rem;
}

.product-preview-price-input {
    max-width: 8.5rem;
}

.btn-icon {
    width: 2rem;
    height: 2rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.btn-icon .bi {
    font-size: 0.95rem;
}

.link-row-stack {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.link-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 2.6rem;
    padding: 0.4rem 0.7rem;
    border-radius: 0.65rem;
    background: #fff;
    border: 1px solid rgba(13, 110, 253, 0.18);
}

.link-row--shopee {
    border-color: rgba(238, 77, 45, 0.3);
}

.link-row--ofertio {
    border-color: rgba(13, 110, 253, 0.28);
}

.link-row-meta {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
}

.link-row-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6c757d;
}

.link-row-url {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.8rem;
    font-weight: 600;
    color: #0b5ed7;
}

.link-row-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    flex-shrink: 0;
}

.product-preview-title {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    color: #212529;
}

.product-preview-price,
.product-history-price {
    font-size: 1.05rem;
    font-weight: 800;
    color: #198754;
}

.link-generator-result-url-wrap {
    padding: 0.85rem 1rem;
    border-radius: 0.85rem;
    background: #fff;
    border: 2px solid rgba(13, 110, 253, 0.45);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.12), inset 0 1px 2px rgba(0, 0, 0, 0.04);
}

.link-generator-result-url {
    display: block;
    width: 100%;
    font-size: 0.95rem;
    line-height: 1.45;
    word-break: break-all;
    color: #0b5ed7;
    font-weight: 700;
}

.link-choice-card {
    height: 100%;
    padding: 1rem 1.1rem 1.1rem;
    border-radius: 1rem;
    background: #fff;
    border: 1px solid rgba(13, 110, 253, 0.18);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.link-choice-card--shopee {
    border-color: rgba(238, 77, 45, 0.35);
    background: linear-gradient(180deg, #fff8f6 0%, #fff 70%);
}

.link-choice-card--ofertio {
    border-color: rgba(13, 110, 253, 0.28);
}

.link-choice-card-header {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.link-choice-icon {
    font-size: 1.35rem;
    line-height: 1;
}

.link-choice-title {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0 0 0.15rem;
}

.link-choice-hint {
    font-size: 0.8rem;
    color: #6c757d;
}

.btn-outline-orange {
    color: #ee4d2d;
    border-color: #ee4d2d;
    background: #fff;
}

.btn-outline-orange:hover,
.btn-outline-orange:focus {
    color: #fff;
    background: #ee4d2d;
    border-color: #ee4d2d;
}

.link-generator-result-actions .btn {
    font-weight: 700;
    border-radius: 0.85rem;
}

.link-generator-share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.link-generator-share-icon {
    width: 1.15rem;
    height: 1.15rem;
    fill: currentColor;
    flex-shrink: 0;
}

.marketplace-chip-row {
    display: flex;
    gap: 0.65rem;
    overflow-x: auto;
    padding-bottom: 0.35rem;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

.marketplace-chip {
    flex: 0 0 auto;
    min-width: 7.5rem;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 0.75rem 0.65rem;
    border-radius: 0.9rem;
    border: 2px solid rgba(0, 0, 0, 0.08);
    background: #fff;
    opacity: 0.72;
    filter: grayscale(0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, filter 0.2s ease;
}

.marketplace-chip-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: #fff;
}

.marketplace-chip-name {
    font-size: 0.72rem;
    font-weight: 700;
    text-align: center;
    line-height: 1.2;
    color: #212529;
}

.marketplace-chip-tag {
    font-size: 0.62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6c757d;
}

.marketplace-chip-tag--muted {
    color: #adb5bd;
}

.marketplace-chip-status {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: #198754;
    box-shadow: 0 0 0 0.15rem rgba(25, 135, 84, 0.25);
}

.marketplace-chip--shopee .marketplace-chip-icon {
    background: var(--brand-shopee);
    color: #fff;
}

.marketplace-chip--tiktok .marketplace-chip-icon {
    background: var(--brand-tiktok);
    color: #fff;
    box-shadow: inset 0 -2px 0 var(--brand-tiktok-accent);
}

.marketplace-chip--amazon .marketplace-chip-icon {
    background: var(--brand-amazon);
    color: #fff;
}

.marketplace-chip--mercadolivre .marketplace-chip-icon {
    background: var(--brand-mercadolivre);
    color: var(--brand-mercadolivre-text);
    box-shadow: inset 0 0 0 1px var(--brand-mercadolivre-border);
}

.marketplace-chip--magalu .marketplace-chip-icon {
    background: var(--brand-magalu);
    color: #fff;
}

.marketplace-chip--kabum .marketplace-chip-icon {
    background: var(--brand-kabum);
    color: #fff;
}

.marketplace-chip--casasbahia .marketplace-chip-icon {
    background: var(--brand-casasbahia);
    color: #fff;
}

.marketplace-chip--connected {
    opacity: 1;
    filter: none;
}

.marketplace-chip--detected {
    opacity: 1;
    filter: none;
    transform: translateY(-2px);
    animation: marketplace-chip-detected 1.2s ease-in-out 1;
}

.marketplace-chip--shopee.marketplace-chip--detected,
.marketplace-chip--shopee.marketplace-chip--connected {
    border-color: var(--brand-shopee);
    box-shadow: 0 0.45rem 1.1rem rgba(238, 77, 45, 0.25);
}

.marketplace-chip--tiktok.marketplace-chip--detected,
.marketplace-chip--tiktok.marketplace-chip--connected {
    border-color: var(--brand-tiktok-accent);
    box-shadow: 0 0.45rem 1.1rem rgba(254, 44, 85, 0.25);
}

.marketplace-chip--amazon.marketplace-chip--detected,
.marketplace-chip--amazon.marketplace-chip--connected {
    border-color: var(--brand-amazon);
    box-shadow: 0 0.45rem 1.1rem rgba(255, 153, 0, 0.28);
}

.marketplace-chip--mercadolivre.marketplace-chip--detected,
.marketplace-chip--mercadolivre.marketplace-chip--connected {
    border-color: var(--brand-mercadolivre-border);
    box-shadow: 0 0.45rem 1.1rem rgba(201, 162, 39, 0.32);
}

.marketplace-chip--magalu.marketplace-chip--detected,
.marketplace-chip--magalu.marketplace-chip--connected {
    border-color: var(--brand-magalu);
    box-shadow: 0 0.45rem 1.1rem rgba(0, 134, 255, 0.25);
}

.marketplace-chip--kabum.marketplace-chip--detected,
.marketplace-chip--kabum.marketplace-chip--connected {
    border-color: var(--brand-kabum);
    box-shadow: 0 0.45rem 1.1rem rgba(255, 101, 0, 0.28);
}

.marketplace-chip--casasbahia.marketplace-chip--detected,
.marketplace-chip--casasbahia.marketplace-chip--connected {
    border-color: var(--brand-casasbahia);
    box-shadow: 0 0.45rem 1.1rem rgba(227, 6, 19, 0.28);
}

.marketplace-chip--coming-soon {
    opacity: 0.55;
}

@keyframes marketplace-chip-detected {
    0%, 100% { transform: translateY(-2px); }
    50% { transform: translateY(-4px); }
}

@media (min-width: 576px) {
    .marketplace-chip-row {
        flex-wrap: wrap;
        overflow-x: visible;
        justify-content: center;
    }

    .marketplace-chip {
        min-width: 8.5rem;
    }
}

.public-converter-shell {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

.public-converter-header {
    padding: 0.4rem 0;
}

.public-converter-main {
    flex: 1 1 auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 0.65rem 0 1rem;
}

.legal-shell {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

.legal-header,
.legal-footer {
    padding: 0.6rem 0;
}

.legal-nav a,
.legal-links a {
    text-decoration: none;
}

.legal-main {
    flex: 1 1 auto;
    padding: 1.25rem 0.75rem 2rem;
}

.legal-doc {
    max-width: 52rem;
    margin: 0 auto;
    line-height: 1.65;
}

.legal-doc h1 {
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.legal-doc h2 {
    font-size: 1.15rem;
    font-weight: 600;
    margin-top: 1.75rem;
}

.legal-doc h3 {
    font-size: 1rem;
    font-weight: 600;
    margin-top: 1rem;
}

.legal-doc .legal-updated {
    color: var(--bs-secondary-color);
    font-size: 0.9rem;
}

.public-converter-card {
    width: 100%;
    max-width: 640px;
}

.public-converter-card .card-body {
    padding: 0.85rem 1rem 0.95rem;
}

.public-converter-card .form-control,
.public-converter-card .btn {
    padding-top: 0.32rem;
    padding-bottom: 0.32rem;
}

.public-converter-title {
    margin: 0 0 0.2rem;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.25;
}

.public-converter-lead {
    margin: 0 0 0.55rem;
    color: #6c757d;
    font-size: 0.82rem;
    line-height: 1.3;
}

.public-converter-label {
    margin-bottom: 0.25rem;
    font-size: 0.92rem;
    font-weight: 600;
}

.public-converter-input {
    margin-bottom: 0.55rem;
}

.public-converter-results {
    margin-top: 0.7rem;
}

.public-converter-platforms {
    gap: 0.35rem;
    margin-bottom: 0.55rem;
}

.public-converter-platforms .marketplace-chip {
    flex: 0 0 auto;
    flex-direction: column;
    min-width: 4.4rem;
    max-width: 5.2rem;
    padding: 0.28rem 0.35rem 0.22rem;
    gap: 0.12rem;
    border-radius: 0.55rem;
    border-width: 1px;
    box-shadow: none;
}

.public-converter-platforms .marketplace-chip-icon {
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 0.3rem;
    font-size: 0.48rem;
}

.public-converter-platforms .marketplace-chip-name {
    font-size: 0.58rem;
    line-height: 1.15;
}

.public-converter-platforms .marketplace-chip-status {
    width: 0.32rem;
    height: 0.32rem;
    box-shadow: none;
}

.public-converter-platforms .marketplace-chip-tag {
    font-size: 0.5rem;
}

.public-converter-platforms .marketplace-chip.marketplace-chip--connected,
.public-converter-platforms .marketplace-chip.marketplace-chip--detected {
    box-shadow: none;
    transform: none;
    animation: none;
}

.link-history-section {
    max-width: 52rem;
}

.link-history-filters .btn {
    min-width: 5.5rem;
    font-weight: 600;
}

.link-history-empty {
    border-radius: 1rem;
}

.link-history-card {
    border-radius: 1rem;
}

.link-history-clicks {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(13, 110, 253, 0.08);
}

.link-history-clicks-value {
    font-size: 1.25rem;
    font-weight: 800;
    color: #0d6efd;
    line-height: 1;
}

.link-history-clicks-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #495057;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.link-history-table thead th {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6c757d;
    border-bottom-width: 1px;
    white-space: nowrap;
}

.link-history-table tbody td {
    vertical-align: middle;
}

.link-history-clicks-inline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(13, 110, 253, 0.1);
    color: #0d6efd;
    font-weight: 800;
    font-size: 0.85rem;
}

.link-history-view-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 600;
    border-radius: 999px;
    white-space: nowrap;
}

.link-history-view-btn .bi {
    font-size: 1rem;
    line-height: 1;
}

.link-generator-result {
    animation: link-result-highlight 1.1s ease;
}

@keyframes link-result-highlight {
    0% {
        box-shadow: 0 0 0 0 rgba(13, 110, 253, 0.35);
    }

    70% {
        box-shadow: 0 0 0 0.55rem rgba(13, 110, 253, 0);
    }

    100% {
        box-shadow: 0 0.35rem 1rem rgba(15, 23, 42, 0.08);
    }
}

.commission-link-picker .commission-link-dropdown {
    position: absolute;
    inset: calc(100% + 0.15rem) 0 auto 0;
    width: 100%;
    max-height: 16rem;
    overflow-y: auto;
    z-index: 20;
}

.commission-link-picker .commission-link-item {
    white-space: normal;
}

.group-multiselect {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    min-height: 3rem;
    padding: 0.45rem 0.6rem;
    border: 1px solid #ced4da;
    border-radius: 0.5rem;
    background: #fff;
}

.group-multiselect-input {
    flex: 1 1 10rem;
    min-width: 8rem;
    border: 0;
    outline: none;
    background: transparent;
}

.group-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: #212529;
    color: #fff;
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
    font-size: 0.8rem;
}

.group-chip-id {
    font-size: 0.7rem;
    opacity: 0.75;
    font-family: ui-monospace, Consolas, monospace;
}

.group-chip-remove {
    width: 0.55rem;
    height: 0.55rem;
    opacity: 0.85;
}

.group-multiselect-dropdown {
    position: absolute;
    inset: calc(100% + 0.2rem) 0 auto 0;
    max-height: 16rem;
    overflow-y: auto;
    z-index: 25;
}

.badge.bg-fire {
    background: linear-gradient(90deg, #ff6a00, #ff1e56);
    color: #fff;
}

.offer-card-blur {
    filter: blur(8px);
    pointer-events: none;
    user-select: none;
}

@media (min-width: 992px) {
    .portal-sidebar {
        position: sticky;
        top: 0;
        align-self: flex-start;
        max-height: 100vh;
        overflow-y: auto;
    }
}

/* ===== Master Console: identidade preta/laranja (Fases 42 e 45) =====
   O shell usa data-bs-theme="dark"; aqui só ajustamos a paleta slate + laranja #FF9900. */
.master-shell {
    --tf-master-bg: #0f172a;
    --tf-master-surface: #1e293b;
    --tf-master-surface-2: #172033;
    --tf-master-border: #334155;
    --tf-master-text: #e2e8f0;
    --tf-master-muted: #94a3b8;
    --tf-master-accent: #ff9900;
    --tf-master-accent-hover: #ffad33;
    --bs-body-bg: var(--tf-master-bg);
    --bs-body-bg-rgb: 15, 23, 42;
    --bs-body-color: var(--tf-master-text);
    --bs-body-color-rgb: 226, 232, 240;
    --bs-emphasis-color: #ffffff;
    --bs-secondary-color: var(--tf-master-muted);
    --bs-secondary-bg: var(--tf-master-surface);
    --bs-tertiary-bg: var(--tf-master-surface-2);
    --bs-border-color: var(--tf-master-border);
    --bs-primary: #ff9900;
    --bs-primary-rgb: 255, 153, 0;
    --bs-primary-text-emphasis: #ffc266;
    --bs-primary-bg-subtle: rgba(255, 153, 0, 0.12);
    --bs-primary-border-subtle: rgba(255, 153, 0, 0.4);
    --bs-link-color: #ffad33;
    --bs-link-color-rgb: 255, 173, 51;
    --bs-link-hover-color: #ffc266;
    --bs-link-hover-color-rgb: 255, 194, 102;
    --bs-focus-ring-color: rgba(255, 153, 0, 0.35);
    background: var(--tf-master-bg);
    color: var(--tf-master-text);
}

.master-header {
    position: relative;
    z-index: 1050;
    background: #020617;
    color: #fff;
    border-bottom: 3px solid var(--tf-master-accent);
}

.master-brand {
    color: #fff;
    font-weight: 700;
    font-size: 1.1rem;
    letter-spacing: 0.02em;
}

.master-brand i,
.master-brand span {
    color: var(--tf-master-accent);
    font-weight: 600;
}

.master-brand:hover {
    color: #fff;
}

.master-sidebar {
    background: #020617;
    border-right: 1px solid #1e293b;
    padding: 0.75rem 0.5rem;
    display: flex;
    gap: 0.25rem;
    overflow-x: auto;
}

.master-nav-link {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.55rem 0.75rem;
    border-radius: 0.5rem;
    color: #cbd5e1;
    text-decoration: none;
    white-space: nowrap;
    font-size: 0.92rem;
}

.master-nav-link:hover {
    background: rgba(255, 153, 0, 0.1);
    color: #fff;
}

.master-nav-link.active {
    background: var(--tf-master-accent);
    color: #020617;
    font-weight: 600;
}

@media (min-width: 992px) {
    .master-nav-sublink {
        padding-left: 2rem;
        font-size: 0.86rem;
    }
}

.master-sidebar-footer {
    display: none;
    color: #64748b;
    padding: 0.75rem;
    margin-top: auto;
}

.master-main {
    background: var(--tf-master-bg);
}

.master-main h1,
.master-main .h3 {
    color: #fff;
}

.master-main .card {
    --bs-card-bg: var(--tf-master-surface);
    --bs-card-border-color: var(--tf-master-border);
    --bs-card-cap-bg: var(--tf-master-surface-2);
    --bs-card-cap-color: #fff;
    --bs-card-color: var(--tf-master-text);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) !important;
}

.master-main .card-header {
    border-bottom: 1px solid var(--tf-master-border);
    border-left: 3px solid var(--tf-master-accent);
}

.master-main .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--tf-master-text);
    --bs-table-border-color: var(--tf-master-border);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
    --bs-table-hover-bg: rgba(255, 153, 0, 0.06);
    --bs-table-hover-color: #fff;
}

.master-main .table-light,
.master-main .table > thead {
    --bs-table-bg: var(--tf-master-surface-2);
    --bs-table-color: var(--tf-master-muted);
    --bs-table-border-color: var(--tf-master-border);
}

.master-main .table > thead th {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-bottom: 2px solid var(--tf-master-accent);
}

.master-main .table-secondary {
    --bs-table-bg: rgba(255, 153, 0, 0.08);
    --bs-table-color: #fff;
    --bs-table-border-color: var(--tf-master-border);
}

.master-main .form-control,
.master-main .form-select {
    background-color: var(--tf-master-surface-2);
    border-color: var(--tf-master-border);
    color: #fff;
}

.master-main .form-control:focus,
.master-main .form-select:focus {
    border-color: var(--tf-master-accent);
    box-shadow: 0 0 0 0.2rem rgba(255, 153, 0, 0.25);
}

.master-main .form-check-input:checked {
    background-color: var(--tf-master-accent);
    border-color: var(--tf-master-accent);
}

.master-shell .btn-primary {
    --bs-btn-color: #020617;
    --bs-btn-bg: #ff9900;
    --bs-btn-border-color: #ff9900;
    --bs-btn-hover-color: #020617;
    --bs-btn-hover-bg: #ffad33;
    --bs-btn-hover-border-color: #ffad33;
    --bs-btn-active-color: #020617;
    --bs-btn-active-bg: #e68a00;
    --bs-btn-active-border-color: #e68a00;
    --bs-btn-disabled-color: #020617;
    --bs-btn-disabled-bg: #ff9900;
    --bs-btn-disabled-border-color: #ff9900;
    font-weight: 600;
}

.master-shell .btn-outline-primary {
    --bs-btn-color: #ff9900;
    --bs-btn-border-color: #ff9900;
    --bs-btn-hover-color: #020617;
    --bs-btn-hover-bg: #ff9900;
    --bs-btn-hover-border-color: #ff9900;
    --bs-btn-active-color: #020617;
    --bs-btn-active-bg: #e68a00;
    --bs-btn-active-border-color: #e68a00;
    --bs-btn-disabled-color: #ff9900;
    --bs-btn-disabled-border-color: #ff9900;
}

.master-main .text-bg-primary {
    color: #020617 !important;
    background-color: #ff9900 !important;
}

.master-main .text-bg-light {
    color: var(--tf-master-text) !important;
    background-color: #334155 !important;
}

.master-main .bg-primary {
    background-color: #ff9900 !important;
}

.master-main .dashboard-page .dashboard-stat-card {
    background: var(--tf-master-surface);
}

@media (min-width: 992px) {
    .master-sidebar {
        flex-direction: column;
        width: 250px;
        min-height: calc(100vh - 58px);
        overflow-x: visible;
    }

    .master-sidebar-footer {
        display: block;
    }
}

/* ===== Matriz de menus: drag & drop (Fase 46) ===== */
.menu-dnd-help {
    padding: 0.6rem 0.85rem;
    border: 1px dashed var(--tf-master-border, #334155);
    border-radius: 0.5rem;
    color: var(--tf-master-muted, #94a3b8);
}

.menu-matrix .menu-grip-col {
    width: 2rem;
}

.menu-matrix tr[draggable="true"] {
    cursor: grab;
}

.menu-matrix tr[draggable="true"]:active {
    cursor: grabbing;
}

.menu-grip {
    color: var(--tf-master-muted, #94a3b8);
    font-size: 1rem;
}

.menu-matrix tr.menu-dragging {
    opacity: 0.45;
}

.menu-matrix tr.menu-drop-before > td {
    box-shadow: inset 0 3px 0 #ff9900;
}

.menu-matrix tr.menu-drop-after > td {
    box-shadow: inset 0 -3px 0 #ff9900;
}

.menu-matrix tr.menu-drop-into > td {
    box-shadow: inset 0 0 0 9999px rgba(255, 153, 0, 0.18);
}

.menu-matrix tr.menu-drop-into > td:first-child {
    box-shadow: inset 3px 0 0 #ff9900, inset 0 0 0 9999px rgba(255, 153, 0, 0.18);
}

.menu-folder-modal {
    background: rgba(2, 6, 23, 0.65);
}

.ofertio-tooltip .tooltip-inner {
    max-width: 300px;
    white-space: pre-line;
    text-align: left;
}

.cursor-pointer {
    cursor: pointer;
    user-select: none;
}

.score-badge {
    border: 0;
}

.score-badge:hover {
    filter: brightness(0.95);
}

.score-badge:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.offer-gallery-trigger {
    position: relative;
    display: flex;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

.offer-gallery-trigger:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.offer-gallery-count {
    position: absolute;
    right: 2px;
    bottom: 2px;
    padding: 0 3px;
    border-radius: 0.3rem;
    background: rgba(15, 23, 42, 0.7);
    color: #fff;
    font-size: 0.55rem;
    line-height: 1.3;
}

.offer-gallery-stage {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 240px;
    background: #f8f9fa;
    border-radius: 0.5rem;
}

.offer-gallery-main {
    max-width: 100%;
    max-height: 65vh;
    object-fit: contain;
}

.offer-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: 0.9;
}

.offer-gallery-nav--prev {
    left: 0.5rem;
}

.offer-gallery-nav--next {
    right: 0.5rem;
}

.offer-gallery-thumb {
    width: 56px;
    height: 56px;
    padding: 2px;
    border: 2px solid transparent;
    border-radius: 0.4rem;
    background: #fff;
}

.offer-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.offer-gallery-thumb.active {
    border-color: var(--bs-primary);
}

/* Buscar Ofertas: cabeçalho, busca e filtros compactos para a vitrine aparecer sem rolagem */
.busca-page .busca-header {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.75rem;
    margin-bottom: 0.5rem;
}

.busca-page .busca-toolbar {
    margin-bottom: 0.5rem;
}

.busca-page .busca-filter-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    margin-top: 0.375rem;
}

.busca-page .busca-status-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem;
    margin-bottom: 0.5rem;
    font-size: 0.8rem;
}

/* Combo multisseleção (MultiSelectDropdown) */
.multiselect {
    position: relative;
    display: inline-block;
}

.multiselect-toggle {
    white-space: nowrap;
}

.multiselect-caret {
    font-size: 0.7rem;
}

.multiselect .multiselect-menu {
    position: absolute;
    top: calc(100% + 0.25rem);
    left: 0;
    z-index: 1045;
    width: max-content;
    min-width: 16rem;
    max-width: min(24rem, 92vw);
    padding: 0.5rem;
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color);
    border-radius: 0.625rem;
}

.multiselect .multiselect-options {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    max-height: 16rem;
    overflow-y: auto;
    border-radius: 0.375rem;
}

.multiselect-options:focus {
    outline: none;
}

.multiselect-options:focus-visible {
    box-shadow: 0 0 0 0.15rem rgba(var(--bs-primary-rgb), 0.25);
}

.multiselect .multiselect-option {
    display: flex;
    flex: 0 0 auto;
    flex-direction: row;
    align-items: center;
    width: 100%;
    margin: 0;
    gap: 0.5rem;
    padding: 0.3rem 0.4rem;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    cursor: pointer;
    user-select: none;
}

.multiselect-option:hover {
    background: var(--bs-tertiary-bg, #f1f5f9);
}

.multiselect-option .form-check-input {
    flex: 0 0 auto;
    float: none;
    margin: 0;
}

.multiselect-option.is-active {
    background: rgba(var(--bs-primary-rgb), 0.12);
}

.multiselect-options:focus .multiselect-option.is-active {
    box-shadow: inset 2px 0 0 var(--bs-primary);
}

.multiselect-option.is-selected {
    font-weight: 600;
}

.multiselect-option-label {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
}

.multiselect-hint {
    padding: 0.25rem 0.4rem;
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
}

.multiselect-actions {
    display: flex;
    justify-content: space-between;
    margin-top: 0.25rem;
    padding-top: 0.25rem;
    border-top: 1px solid var(--bs-border-color);
}

.multiselect-actions .btn {
    padding: 0.125rem 0.25rem;
    font-size: 0.8rem;
    text-decoration: none;
}
/* Tablet e celular: o menu ancora na barra de filtros (centralizada) para não vazar na horizontal */
@media (max-width: 991.98px) {
    .busca-page .busca-filter-bar {
        position: relative;
    }

    .busca-page .multiselect {
        position: static;
    }

    .busca-page .multiselect .multiselect-menu {
        left: 50%;
        transform: translateX(-50%);
        max-width: min(24rem, 100%);
    }
}

@media (max-width: 575.98px) {
    .busca-page .multiselect .multiselect-menu {
        left: 0;
        right: 0;
        transform: none;
        width: auto;
        min-width: 0;
        max-width: none;
    }
}