:root{
    --font-sans:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

    /* Cores: assets/css/theme.css (claro padrão + data-theme="dark") */

    /* Escala tipográfica — px fixo (teto 15px; 14 / 13 / 12) */
    --text-2xs:10px;
    --text-xs:11px;
    --text-sm:12px;
    --text-base:13px;
    --text-md:14px;
    --text-lg:14px;
    --text-xl:15px;
    --text-2xl:15px;

    /*
     * Hierarquia tipográfica (app inteiro):
     * 15px — títulos de página, heróis, valores em destaque (--text-xl, --text-2xl, --type-hero)
     * 14px — subtítulos de seção, labels fortes (--text-md, --text-lg)
     * 13px — corpo, valores métricos (--text-base, --type-value)
     * 12px — legendas, descrições (--text-sm)
     * 11px / 10px — metadados, eyebrows (--text-xs, --text-2xs)
     */
    --leading-snug:1.3;
    --leading-normal:1.45;
    --leading-relaxed:1.5;

    --space-1:4px;
    --space-2:8px;
    --space-3:12px;
    --space-4:14px;
    --space-5:16px;

    --font-normal:400;
    --font-medium:500;
    --font-semibold:600;
    --font-bold:700;

    /* Escala tipográfica métrica — px fixo (compacta, uniforme em todo o app) */
    --type-label:10px;
    --type-caption:10px;
    --type-value:13px;
    --type-desc:11px;
    --type-section:13px;
    --type-hero:15px;
    --value-md-size:var(--type-value);
    --value-md-line-height:1.15;

    /* Aliases legados do dashboard */
    --dash-type-label:var(--type-label);
    --dash-type-caption:var(--type-caption);
    --dash-type-value:var(--type-value);
    --dash-type-desc:var(--type-desc);
    --dash-type-section:var(--type-section);
    --dash-type-hero:var(--type-hero);

    --radius-card:16px;
    --radius-small:10px;
    --dash-radius-xl:18px;
    --dash-radius-lg:14px;
    --dash-radius-md:12px;
    --dash-radius-sm:10px;
    --radius:var(--radius-card);
}

*,*::before,*::after{
    box-sizing:border-box;
}

html,body{
    margin:0;
    padding:0;
}

html{
    font-family:var(--font-sans);
    font-size:100%;
    text-size-adjust:100%;
}

body{
    font-family:var(--font-sans);
    font-size:var(--text-sm);
    font-weight:var(--font-normal);
    line-height:var(--leading-normal);
    color:var(--text-main);
    background:var(--bg-page);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}

button,
input,
select,
textarea{
    font-family:inherit;
    font-size:var(--text-sm);
    line-height:var(--leading-snug);
}

label,
small{
    font-size:var(--text-sm);
    line-height:var(--leading-snug);
}

p{
    margin:0 0 .75em;
    line-height:var(--leading-relaxed);
}

p:last-child{
    margin-bottom:0;
}

h1,h2,h3,h4,h5,h6{
    margin:0 0 .35em;
    color:var(--text-main);
    font-weight:var(--font-semibold);
    line-height:var(--leading-tight);
    letter-spacing:0;
}

h1{font-size:var(--text-2xl);}
h2{font-size:var(--text-lg);}
h3{font-size:var(--text-md);}
h4{font-size:var(--text-base);}
h5,h6{font-size:var(--text-sm);}

strong,b{
    font-weight:var(--font-semibold);
}

a{
    text-decoration:none;
    color:inherit;
}

.app-shell{
    display:flex;
    min-height:100vh;
}

.app-main{
    flex:1;
    min-width:0;
    max-width:none;
    margin:0;
    padding:0 12px 14px;
}

.success{
    color:var(--success);
}

.app-footer{
    padding:14px 4px 0;
    color:var(--text-muted);
    font-size:var(--text-sm);
    line-height:var(--leading-normal);
}

/* Superfície padrão */
.card-surface,
.page-head,
.select-clean,
.user-mini-card{
    background:var(--gradient-card);
    border:1px solid var(--border-soft);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow-card);
}

/* Tabelas compartilhadas */
:is(.dashboard-table-wrap, .contas-table-wrap, .venda-table-wrap, .metas-table-wrap, .ponto-table-wrap){
    overflow:auto;
    border:1px solid var(--border-soft);
    border-radius:var(--radius-card);
    background:var(--bg-card-dark);
    box-shadow:var(--shadow-card);
}

:is(.dashboard-table, .contas-table, .venda-table, .metas-table, .ponto-table){
    width:100%;
    border-collapse:separate;
    border-spacing:0;
}

:is(.dashboard-table, .contas-table, .venda-table, .metas-table, .ponto-table) thead th{
    background:var(--bg-secondary);
    color:var(--text-muted);
    font-size:var(--text-xs);
    font-weight:var(--font-semibold);
    letter-spacing:.05em;
    line-height:var(--leading-snug);
    text-transform:uppercase;
    padding:11px 14px;
    border-bottom:1px solid var(--border-soft);
    text-align:left;
    vertical-align:middle;
}

:is(.dashboard-table, .contas-table, .venda-table, .metas-table, .ponto-table) thead th small{
    display:block;
    margin-top:2px;
    font-size:var(--text-2xs);
    font-weight:var(--font-medium);
    letter-spacing:0;
    text-transform:none;
    color:var(--text-faint);
}

:is(.dashboard-table, .contas-table, .venda-table, .metas-table, .ponto-table) tbody td{
    padding:11px 14px;
    border-bottom:1px solid var(--border-soft);
    color:var(--text-secondary);
    font-size:var(--text-sm);
    line-height:var(--leading-snug);
    background:var(--bg-card-dark);
    vertical-align:middle;
}

:is(.dashboard-table, .contas-table, .venda-table, .metas-table, .ponto-table) tbody tr:hover td{
    background:var(--bg-hover);
}

:is(.dashboard-table, .contas-table, .venda-table, .metas-table, .ponto-table) :is(.is-num, [class*="money"], [class*="valor"], td.num){
    text-align:right;
    font-variant-numeric:tabular-nums;
}

/* ——— Harmonização global de tipografia ——— */

/* Rótulos / eyebrow / caps — 10px */
.app-main :is(
    .page-eyebrow,
    .card-label,
    .kpi-card-title,
    .kpi-card-eyebrow,
    .meta-dia-v3-label,
    .sales-mini-title,
    .sales-mini-label,
    .commission-box-category,
    .commission-box-amount-label,
    .commission-bonus-card-label,
    .dashboard-hero-eyebrow,
    .dashboard-kpi-label,
    .category-box-item small,
    .category-box-row span,
    .category-box-projection span,
    .category-box-group-title,
    .category-box-hero-copy span,
    .meta-dia-v3-item small,
    .team-day-metric small,
    .team-day-progress-head span,
    .team-day-month-summary__row small,
    .summary-progress-main span,
    .kpi-card-foot span,
    .contas-field label,
    .rx-label,
    .rx-ring__label,
    .campaign-command-kicker span,
    .campaign-signal-label,
    .campaign-mini-trend-head span,
    .ranking-podium-copy span,
    .ranking-chaser-card .ranking-row-points span,
    [class$="__label"],
    [class$="-metric-label"]
){
    font-size:var(--type-caption);
    font-weight:var(--font-semibold);
    line-height:var(--leading-snug);
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--text-secondary);
}

/* Números métricos — 13px uniforme */
.app-main :is(
    .value-md,
    .sales-mini-value,
    .kpi-card-value,
    .dashboard-kpi-value,
    .meta-dia-v3-item strong,
    .meta-dia-v3-gauge-center strong,
    .team-day-metric strong,
    .team-day-progress-head strong,
    .team-day-month-summary__row strong,
    .category-box-row strong,
    .category-box-projection strong,
    .category-box-item strong,
    .category-box-foot-head strong,
    .category-box-hero-copy strong,
    .summary-progress-main strong,
    .summary-bars-stat strong,
    .summary-bars-value,
    .commission-box-value-row strong,
    .commission-bonus-inline strong,
    .commission-inline-text,
    .campaign-signal-value,
    .ranking-podium-score strong,
    .ranking-chaser-card .ranking-row-points strong,
    .counter-money,
    .counter-money-inline,
    .counter-money-plain,
    .counter-int,
    .counter-number,
    .counter-percent,
    [class$="__value"],
    [class$="-metric-value"],
    [class$="-metric__value"]
){
    font-size:var(--type-value);
    font-weight:var(--font-bold);
    line-height:var(--value-md-line-height);
    letter-spacing:0;
    font-variant-numeric:tabular-nums;
}

/* Destaques principais — 15px (meta do dia, heróis de card) */
.app-main :is(
    .meta-dia-v3-title,
    .campaign-progress-copy > strong,
    [class*="hero"][class$="__value"]
){
    font-size:var(--type-hero);
    font-weight:var(--font-bold);
    line-height:1.15;
    letter-spacing:0;
    font-variant-numeric:tabular-nums;
}

/* Texto secundário / descrições */
.app-main :is(
    .muted-line,
    .page-head-subtitle,
    .dashboard-hero-text,
    .kpi-card > .muted-line,
    .sales-mini-sub,
    .dashboard-kpi-note,
    .meta-dia-v3-sub,
    .team-day-head-copy,
    .rx-copy,
    .comprador-factor-card p,
    .comprador-summary-card p,
    .campaign-progress-status,
    .campaign-signal p,
    .campaign-mini-trend-head strong,
    .ranking-podium-copy small,
    .ranking-chaser-card .product-row-copy span,
    .ranking-mini-copy span
){
    font-size:var(--text-sm);
    line-height:var(--leading-relaxed);
    color:var(--text-secondary);
}

/* Títulos de seção em cards */
.app-main :is(
    .section-head h3,
    .summary-card-clean h3,
    .sales-panel-head h3,
    .rx-title,
    .category-box-head h4,
    .campaign-progress-title,
    .ranking-chaser-card .product-row-copy strong
){
    font-size:var(--text-md);
    font-weight:var(--font-semibold);
    line-height:1.2;
    letter-spacing:0;
    color:var(--text-main);
}

/* Badges e pills — legíveis e sem quebrar */
.app-main :is(
    .sales-mini-delta,
    .category-box-badge,
    .commission-box-status,
    .commission-box-caption-pill,
    .meta-dia-v3-status,
    .sales-panel-badge,
    .rx-pill,
    .dashboard-chip,
    .representantes-pill,
    .campaign-signal-value-row .commission-box-caption-pill,
    .ranking-podium-score span
){
    font-size:var(--text-xs);
    font-weight:var(--font-semibold);
    line-height:1.2;
}

/* Rodapés de KPI / metadados */
.app-main :is(.kpi-card-foot strong, .kpi-card-foot span:last-child){
    font-size:var(--text-xs);
    font-weight:var(--font-semibold);
}

/* Nomes em tabelas e listas — permitir quebra */
.app-main :is(
    .team-day-row-head strong,
    .rx-seller strong,
    .rx-top-seller strong,
    .comprador-lab-title-row strong,
    .user-mini-card strong,
    .ranking-mini-copy strong
){
    font-size:var(--text-sm);
    font-weight:var(--font-semibold);
    line-height:var(--leading-snug);
    overflow-wrap:anywhere;
    word-break:break-word;
}

.app-main :is(
    .team-day-row-head strong,
    .rx-seller strong
){
    white-space:normal;
}

/* Sidebar — leitura confortável */
.minia-sidebar__label{
    font-size:var(--text-sm);
    font-weight:var(--font-medium);
    line-height:var(--leading-snug);
}

.minia-sidebar__section-title{
    font-size:var(--text-xs);
    font-weight:var(--font-semibold);
}

.minia-sidebar__sublink{
    font-size:var(--text-xs);
    line-height:var(--leading-snug);
}

/* Inputs e selects do topo */
.select-clean,
.dashboard-input,
.dashboard-select{
    font-size:var(--text-sm);
    font-weight:var(--font-medium);
}

:is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea){
    background:var(--bg-card-dark);
    color:var(--text-main);
    border:1px solid var(--border-soft);
    border-radius:var(--radius-small);
}

:is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea)::placeholder{
    color:var(--text-muted);
}

:is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea):focus{
    outline:none;
    border-color:var(--accent-cyan);
    box-shadow:var(--shadow-cyan);
}

html[data-theme="dark"] :is(.select-clean, select){
    color-scheme:dark;
    accent-color:var(--accent-cyan, #17C3FF);
}

html[data-theme="dark"] :is(.select-clean, select) option{
    background:var(--bg-card-dark);
    color:var(--text-main);
}

.scroll-surface{
    scrollbar-width:thin;
    scrollbar-color:color-mix(in srgb,var(--text-muted) 55%,transparent) color-mix(in srgb,var(--bg-secondary) 55%,transparent);
}

.scroll-surface::-webkit-scrollbar{
    width:7px;
}

.scroll-surface::-webkit-scrollbar-track{
    background:color-mix(in srgb,var(--bg-secondary) 45%,transparent);
    border-radius:999px;
    margin:4px 0;
}

.scroll-surface::-webkit-scrollbar-thumb{
    background:color-mix(in srgb,var(--text-muted) 70%,var(--bg-secondary));
    border-radius:999px;
    border:2px solid transparent;
    background-clip:padding-box;
}

.scroll-surface::-webkit-scrollbar-thumb:hover{
    background:color-mix(in srgb,var(--accent-cyan, #17C3FF) 35%,var(--text-muted));
}

html[data-theme="dark"] .scroll-surface{
    scrollbar-color:color-mix(in srgb,var(--accent-cyan, #17C3FF) 42%,var(--text-muted)) color-mix(in srgb,var(--bg-secondary) 72%,transparent);
}

html[data-theme="dark"] .scroll-surface::-webkit-scrollbar-track{
    background:color-mix(in srgb,var(--bg-secondary) 68%,transparent);
}

html[data-theme="dark"] .scroll-surface::-webkit-scrollbar-thumb{
    background:color-mix(in srgb,var(--accent-cyan, #17C3FF) 34%,var(--text-muted));
}

html[data-theme="dark"] .scroll-surface::-webkit-scrollbar-thumb:hover{
    background:color-mix(in srgb,var(--accent-cyan, #17C3FF) 58%,var(--text-muted));
}

html.global-lgpd-lock,
body.global-lgpd-lock{
    overflow:hidden;
}

.global-lgpd-modal{
    position:fixed;
    inset:0;
    z-index:9800;
    display:grid;
    place-items:center;
    padding:20px;
    background:rgba(3,12,32,.72);
    backdrop-filter:blur(10px);
}

.global-lgpd-dialog{
    position:relative;
    z-index:1;
    width:min(100%, 620px);
    display:grid;
    gap:16px;
    padding:22px;
    border:1px solid var(--border-soft,#D8E6F3);
    border-radius:var(--dash-radius-xl,18px);
    background:var(--gradient-card,#fff);
    color:var(--text-main,#1B2340);
    box-shadow:0 28px 80px rgba(0,22,68,.28);
    pointer-events:auto;
}

.global-lgpd-icon{
    width:48px;
    height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid color-mix(in srgb,var(--accent-cyan,#17C3FF) 28%,transparent);
    border-radius:14px;
    background:color-mix(in srgb,var(--accent-cyan,#17C3FF) 12%,transparent);
    color:var(--accent-cyan,#0EA5E9);
}

.global-lgpd-icon svg{
    width:27px;
    height:27px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.global-lgpd-copy{
    display:grid;
    gap:8px;
}

.global-lgpd-copy span{
    width:max-content;
    padding:5px 10px;
    border-radius:999px;
    background:var(--bg-soft,#F3F5FA);
    color:var(--primary-dark,#3B6CF9);
    font-size:var(--text-xs);
    font-weight:var(--font-bold);
    line-height:1;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.global-lgpd-copy h2{
    margin:0;
    font-size:var(--text-xl);
    font-weight:var(--font-bold);
    line-height:var(--leading-tight);
    color:var(--text-main,#1B2340);
}

.global-lgpd-copy p{
    margin:0;
    color:var(--text-secondary,#6F7A94);
    font-size:var(--text-sm);
    line-height:var(--leading-relaxed);
}

.global-term-document{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:12px !important;
    padding:10px 12px;
    border:1px solid color-mix(in srgb,var(--primary) 24%,var(--border-soft));
    border-radius:9px;
    background:color-mix(in srgb,var(--primary) 7%,var(--bg-card));
}

.global-term-document strong{
    color:var(--text-main);
    font-size:.82rem;
}

.global-term-document a{
    flex:0 0 auto;
    color:var(--primary);
    font-size:.78rem;
    font-weight:800;
    text-decoration:none;
}

.global-lgpd-feedback{
    margin:0;
    padding:10px 12px;
    border-radius:12px;
    font-size:var(--text-sm);
    line-height:var(--leading-relaxed);
}

.global-lgpd-feedback--error{
    border:1px solid color-mix(in srgb,var(--danger,#FF4D4F) 28%,transparent);
    background:color-mix(in srgb,var(--danger,#FF4D4F) 10%,transparent);
    color:var(--danger,#FF4D4F);
}

.global-lgpd-feedback--success{
    border:1px solid color-mix(in srgb,var(--success,#16A34A) 28%,transparent);
    background:color-mix(in srgb,var(--success,#16A34A) 10%,transparent);
    color:var(--success,#16A34A);
}

.global-lgpd-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}

.global-lgpd-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 14px;
    border:1px solid transparent;
    border-radius:12px;
    font-size:var(--text-sm);
    font-weight:var(--font-bold);
    line-height:1;
    cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.global-lgpd-button:hover{
    transform:translateY(-1px);
}

.global-lgpd-button:focus-visible{
    outline:none;
    box-shadow:0 0 0 4px rgba(23,195,255,.18);
}

.global-lgpd-button--primary{
    background:var(--gradient-main,linear-gradient(135deg,#17C3FF 0%,#0061FF 55%,#0047C2 100%));
    color:#fff;
    box-shadow:var(--shadow-cyan,0 12px 26px rgba(0,97,255,.18));
}

.global-lgpd-button--secondary{
    border-color:var(--border-soft,#D8E6F3);
    background:var(--bg-card-dark,#fff);
    color:var(--text-main,#1B2340);
}

.global-lgpd-button--danger{
    border-color:color-mix(in srgb,var(--danger,#FF4D4F) 28%,transparent);
    background:color-mix(in srgb,var(--danger,#FF4D4F) 10%,transparent);
    color:var(--danger,#FF4D4F);
}

@media (max-width:1100px){
    .app-main{
        padding:0 12px 18px;
    }
}

@media (max-width:760px){
    html{
        font-size:100%;
    }

    .global-lgpd-modal{
        align-items:end;
        padding:14px;
    }

    .global-lgpd-dialog{
        padding:18px;
        border-radius:16px;
    }

    .global-lgpd-actions{
        align-items:stretch;
        justify-content:stretch;
    }

    .global-lgpd-button{
        width:100%;
    }
}
