/* ============================================================
   QUARTZ — Design System para relatórios Serasa (PF/PJ)
   Estética: Apple-like / luxury-refined / minimal sofisticado.
   Escopado a [data-qz] para conviver com VS2 e demais estilos.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@600;700;800&family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&display=swap');

[data-qz] {
    /* ---------- Tipografia ---------- */
    --qz-font-display: 'Manrope', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --qz-font-body:    'Geist', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --qz-font-mono:    'Geist Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

    --qz-display-2xl: 3.5rem;     /* 56 */
    --qz-display-xl:  2.5rem;     /* 40 */
    --qz-display:     2rem;       /* 32 */
    --qz-title:       1.5rem;     /* 24 */
    --qz-subtitle:    1.125rem;   /* 18 */
    --qz-body-lg:     1.0625rem;  /* 17 */
    --qz-body:        0.9375rem;  /* 15 */
    --qz-caption:     0.8125rem;  /* 13 */
    --qz-micro:       0.6875rem;  /* 11 */

    --qz-leading-tight: 1.1;
    --qz-leading-snug:  1.2;
    --qz-leading-base:  1.4;
    --qz-leading-relaxed: 1.55;

    --qz-track-display: -0.025em;
    --qz-track-title:   -0.012em;
    --qz-track-body:    0;
    --qz-track-caps:    0.06em;

    /* ---------- Cores ---------- */
    --qz-ink:        #0B0B0F;     /* Texto primário */
    --qz-ink-2:      #3C3C43;     /* Secundário */
    --qz-ink-3:      #86868B;     /* Caption */
    --qz-ink-4:      #C7C7CC;     /* Disabled */
    --qz-paper:      #FBFBFD;     /* Background página */
    --qz-surface:    #FFFFFF;     /* Cards */
    --qz-surface-2:  #F5F5F7;     /* Subtle alt */
    --qz-line:       #D2D2D7;     /* Border principal */
    --qz-line-soft:  #E8E8ED;     /* Divisórias internas */

    --qz-accent:     #0066CC;     /* Apple blue */
    --qz-accent-soft: #E8F0FA;
    --qz-success:    #34C759;
    --qz-success-soft: #E8F7EC;
    --qz-warn:       #FF9F0A;
    --qz-warn-soft:  #FFF4E0;
    --qz-danger:     #FF3B30;
    --qz-danger-soft: #FFE5E3;
    --qz-info:       #5AC8FA;
    --qz-info-soft:  #E5F6FE;

    /* Score ramp A→G (gradiente perceptual) */
    --qz-score-a: #34C759;
    --qz-score-b: #A6D77A;
    --qz-score-c: #D7C84E;
    --qz-score-d: #FF9F0A;
    --qz-score-e: #FF7A2D;
    --qz-score-f: #FF5436;
    --qz-score-g: #FF3B30;

    /* ---------- Espaçamento (8pt grid) ---------- */
    --qz-1:  0.25rem;   /* 4 */
    --qz-2:  0.5rem;    /* 8 */
    --qz-3:  0.75rem;   /* 12 */
    --qz-4:  1rem;      /* 16 */
    --qz-5:  1.5rem;    /* 24 */
    --qz-6:  2rem;      /* 32 */
    --qz-7:  3rem;      /* 48 */
    --qz-8:  4rem;      /* 64 */
    --qz-9:  6rem;      /* 96 */
    --qz-10: 8rem;      /* 128 */

    /* ---------- Border / Radius ---------- */
    --qz-radius-sm:   8px;
    --qz-radius-md:   14px;
    --qz-radius-lg:   22px;
    --qz-radius-xl:   28px;
    --qz-radius-pill: 999px;

    /* ---------- Shadow (multi-layer, Apple-like) ---------- */
    --qz-shadow-1: 0 1px 2px rgba(15, 15, 20, 0.04), 0 0 0 1px rgba(15, 15, 20, 0.04);
    --qz-shadow-2: 0 4px 14px rgba(15, 15, 20, 0.06), 0 1px 3px rgba(15, 15, 20, 0.04);
    --qz-shadow-3: 0 24px 60px rgba(15, 15, 20, 0.08), 0 8px 20px rgba(15, 15, 20, 0.05);
    --qz-ring:     0 0 0 4px rgba(0, 102, 204, 0.18);

    /* ---------- Motion ---------- */
    --qz-ease:        cubic-bezier(0.32, 0.72, 0, 1);
    --qz-ease-spring: cubic-bezier(0.5, 1.8, 0.4, 1);
    --qz-dur-fast:    120ms;
    --qz-dur-base:    220ms;
    --qz-dur-slow:    360ms;
    --qz-dur-reveal:  520ms;

    /* ---------- Layout ---------- */
    --qz-page-pad-x: clamp(1.5rem, 4vw, 3rem);
    --qz-page-max:   1120px;

    /* Base inheritance */
    font-family: var(--qz-font-body);
    color: var(--qz-ink);
    background: var(--qz-paper);
    font-size: var(--qz-body);
    line-height: var(--qz-leading-relaxed);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    font-feature-settings: 'kern' 1, 'ss01' 1, 'cv01' 1, 'cv11' 1;
    font-variant-numeric: tabular-nums;
}

/* ============================================================
   Reset escopado — não derrama em outros componentes
   ============================================================ */
[data-qz] *,
[data-qz] *::before,
[data-qz] *::after {
    box-sizing: border-box;
}

[data-qz] h1,
[data-qz] h2,
[data-qz] h3,
[data-qz] h4,
[data-qz] h5,
[data-qz] h6,
[data-qz] p,
[data-qz] ul,
[data-qz] ol,
[data-qz] dl,
[data-qz] figure {
    margin: 0;
    padding: 0;
}

[data-qz] ul,
[data-qz] ol {
    list-style: none;
}

[data-qz] a {
    color: var(--qz-accent);
    text-decoration: none;
    text-underline-offset: 3px;
    transition: color var(--qz-dur-fast) var(--qz-ease);
}

[data-qz] a:hover {
    text-decoration: underline;
}

[data-qz] button {
    font: inherit;
    color: inherit;
    background: none;
    border: 0;
    cursor: pointer;
}

[data-qz] svg {
    display: block;
}

[data-qz] :focus-visible {
    outline: 0;
    box-shadow: var(--qz-ring);
    border-radius: var(--qz-radius-sm);
}

/* ============================================================
   Tipografia — classes utilitárias (display/title/body/caption/micro)
   ============================================================ */
[data-qz] .qz-display-2xl {
    font-family: var(--qz-font-display);
    font-size: var(--qz-display-2xl);
    font-weight: 800;
    line-height: var(--qz-leading-tight);
    letter-spacing: var(--qz-track-display);
    color: var(--qz-ink);
}

[data-qz] .qz-display-xl {
    font-family: var(--qz-font-display);
    font-size: var(--qz-display-xl);
    font-weight: 800;
    line-height: var(--qz-leading-tight);
    letter-spacing: var(--qz-track-display);
    color: var(--qz-ink);
}

[data-qz] .qz-display {
    font-family: var(--qz-font-display);
    font-size: var(--qz-display);
    font-weight: 700;
    line-height: var(--qz-leading-snug);
    letter-spacing: -0.018em;
    color: var(--qz-ink);
}

[data-qz] .qz-title {
    font-family: var(--qz-font-display);
    font-size: var(--qz-title);
    font-weight: 700;
    line-height: var(--qz-leading-snug);
    letter-spacing: var(--qz-track-title);
    color: var(--qz-ink);
}

[data-qz] .qz-subtitle {
    font-family: var(--qz-font-body);
    font-size: var(--qz-subtitle);
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.005em;
    color: var(--qz-ink);
}

[data-qz] .qz-body-lg {
    font-family: var(--qz-font-body);
    font-size: var(--qz-body-lg);
    font-weight: 400;
    line-height: var(--qz-leading-relaxed);
    color: var(--qz-ink);
}

[data-qz] .qz-body {
    font-family: var(--qz-font-body);
    font-size: var(--qz-body);
    font-weight: 400;
    line-height: var(--qz-leading-relaxed);
    color: var(--qz-ink);
}

[data-qz] .qz-caption {
    font-family: var(--qz-font-body);
    font-size: var(--qz-caption);
    font-weight: 400;
    line-height: var(--qz-leading-base);
    letter-spacing: 0.01em;
    color: var(--qz-ink-3);
}

[data-qz] .qz-micro {
    font-family: var(--qz-font-body);
    font-size: var(--qz-micro);
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: var(--qz-track-caps);
    text-transform: uppercase;
    color: var(--qz-ink-3);
}

[data-qz] .qz-mono {
    font-family: var(--qz-font-mono);
    font-variant-numeric: tabular-nums slashed-zero;
    letter-spacing: -0.005em;
}

[data-qz] .qz-secondary { color: var(--qz-ink-2); }
[data-qz] .qz-muted     { color: var(--qz-ink-3); }
[data-qz] .qz-disabled  { color: var(--qz-ink-4); }

/* ============================================================
   Layout utilities (spacing helpers)
   ============================================================ */
[data-qz] .qz-stack > * + * { margin-top: var(--qz-stack-gap, var(--qz-4)); }
[data-qz] .qz-stack-sm     { --qz-stack-gap: var(--qz-2); }
[data-qz] .qz-stack-md     { --qz-stack-gap: var(--qz-4); }
[data-qz] .qz-stack-lg     { --qz-stack-gap: var(--qz-6); }
[data-qz] .qz-stack-xl     { --qz-stack-gap: var(--qz-8); }

[data-qz] .qz-row {
    display: flex;
    gap: var(--qz-row-gap, var(--qz-4));
    align-items: center;
}

[data-qz] .qz-row-baseline { align-items: baseline; }
[data-qz] .qz-row-between  { justify-content: space-between; }

/* Page container */
[data-qz] .qz-container {
    max-width: var(--qz-page-max);
    margin-inline: auto;
    padding-inline: var(--qz-page-pad-x);
}

/* ============================================================
   Status pills
   ============================================================ */
[data-qz] .qz-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--qz-2);
    padding: 4px 10px;
    border-radius: var(--qz-radius-pill);
    font-family: var(--qz-font-body);
    font-size: var(--qz-micro);
    font-weight: 600;
    letter-spacing: var(--qz-track-caps);
    text-transform: uppercase;
    line-height: 1.4;
    border: 1px solid transparent;
}

[data-qz] .qz-pill::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.85;
}

[data-qz] .qz-pill-success { background: var(--qz-success-soft); color: var(--qz-success); }
[data-qz] .qz-pill-warn    { background: var(--qz-warn-soft);    color: var(--qz-warn); }
[data-qz] .qz-pill-danger  { background: var(--qz-danger-soft);  color: var(--qz-danger); }
[data-qz] .qz-pill-info    { background: var(--qz-info-soft);    color: var(--qz-info); }
[data-qz] .qz-pill-neutral { background: var(--qz-surface-2);    color: var(--qz-ink-2); }

[data-qz] .qz-pill-flat { padding: 2px 8px; border: 1px solid var(--qz-line); background: transparent; color: var(--qz-ink-2); }
[data-qz] .qz-pill-flat::before { display: none; }

/* ============================================================
   Motion utilities — reveal stagger
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
    [data-qz] .qz-reveal {
        opacity: 0;
        transform: translateY(8px);
        animation: qz-reveal var(--qz-dur-reveal) var(--qz-ease) both;
    }

    [data-qz] .qz-reveal:nth-child(2) { animation-delay: 40ms; }
    [data-qz] .qz-reveal:nth-child(3) { animation-delay: 80ms; }
    [data-qz] .qz-reveal:nth-child(4) { animation-delay: 120ms; }
    [data-qz] .qz-reveal:nth-child(5) { animation-delay: 160ms; }
    [data-qz] .qz-reveal:nth-child(6) { animation-delay: 200ms; }
    [data-qz] .qz-reveal:nth-child(7) { animation-delay: 240ms; }
    [data-qz] .qz-reveal:nth-child(8) { animation-delay: 280ms; }
}

@keyframes qz-reveal {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   Card primitives — usados pelos componentes
   ============================================================ */
[data-qz] .qz-card {
    background: var(--qz-surface);
    border: 1px solid var(--qz-line);
    border-radius: var(--qz-radius-md);
    padding: var(--qz-5);
    box-shadow: var(--qz-shadow-1);
    transition: box-shadow var(--qz-dur-base) var(--qz-ease), transform var(--qz-dur-base) var(--qz-ease);
}

[data-qz] .qz-card-elevated {
    box-shadow: var(--qz-shadow-2);
}

[data-qz] .qz-card-hero {
    box-shadow: var(--qz-shadow-3);
    border-radius: var(--qz-radius-lg);
    padding: var(--qz-7);
}

[data-qz] .qz-divider {
    height: 1px;
    background: var(--qz-line-soft);
    border: 0;
    margin: 0;
}

/* ============================================================
   Print / PDF resilience (não usado em produção PDF — QuestPDF é nativo,
   mas garante que se alguém imprimir o navegador, ainda fica decente)
   ============================================================ */
@media print {
    [data-qz] {
        background: white;
    }
    [data-qz] .qz-card,
    [data-qz] .qz-card-hero {
        box-shadow: none;
        border: 1px solid var(--qz-line);
    }
    [data-qz] .qz-reveal {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}

/* ============================================================
   COMPONENTES — usados por Qz*.razor
   ============================================================ */

/* ---------- QzPage ---------- */
.qz-page {
    min-height: 100%;
    background: var(--qz-paper);
    padding-block: var(--qz-7) var(--qz-9);
}

/* ---------- QzHero ---------- */
.qz-hero {
    padding-block: var(--qz-8) var(--qz-7);
    background:
        radial-gradient(circle at 0% 0%, rgba(0, 102, 204, 0.04), transparent 55%),
        radial-gradient(circle at 100% 0%, rgba(90, 200, 250, 0.05), transparent 50%),
        var(--qz-paper);
    border-bottom: 1px solid var(--qz-line-soft);
}

.qz-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: var(--qz-7);
    align-items: end;
}

@media (max-width: 880px) {
    .qz-hero-grid {
        grid-template-columns: 1fr;
        gap: var(--qz-5);
    }
}

.qz-hero-content > * + * { margin-top: var(--qz-3); }

.qz-hero-content .qz-display-xl {
    margin-block: 0 var(--qz-2);
}

.qz-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--qz-3);
    align-items: center;
    margin-top: var(--qz-4);
}

.qz-hero-right {
    display: flex;
    justify-content: flex-end;
    align-items: end;
}

@media (max-width: 880px) {
    .qz-hero-right {
        justify-content: flex-start;
    }
}

/* ---------- QzSection ---------- */
.qz-section {
    padding-block: var(--qz-8) var(--qz-7);
    border-top: 1px solid var(--qz-line);
    position: relative;
}

/* Marca o início de cada seção com uma faixa preta curta — Apple-editorial */
.qz-section::before {
    content: '';
    position: absolute;
    top: -1px;
    left: var(--qz-page-pad-x);
    width: var(--qz-7);
    height: 2px;
    background: var(--qz-ink);
    border-radius: 999px;
}

.qz-section:first-of-type {
    border-top: 0;
    padding-top: var(--qz-7);
}

.qz-section:first-of-type::before {
    display: none;
}

.qz-section-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--qz-5);
    margin-bottom: var(--qz-6);
}

.qz-section-heading { flex: 1 1 auto; min-width: 0; }

.qz-section-eyebrow {
    color: var(--qz-ink);
    font-weight: 700;
    font-size: 0.75rem;
    letter-spacing: 0.1em;
}

.qz-section-desc { max-width: 60ch; }

.qz-section-action {
    flex: 0 0 auto;
}

.qz-section-body > * + * { margin-top: var(--qz-5); }

/* ---------- QzCard ---------- */
.qz-card-header {
    margin-bottom: var(--qz-4);
}

.qz-card-body > * + * { margin-top: var(--qz-4); }

.qz-card-footer {
    margin-top: var(--qz-5);
    padding-top: var(--qz-4);
    border-top: 1px solid var(--qz-line-soft);
}

.qz-card-subtle {
    background: var(--qz-surface-2);
    border-color: transparent;
    box-shadow: none;
}

.qz-card-hero {
    background:
        linear-gradient(180deg, var(--qz-surface), var(--qz-surface)) padding-box,
        linear-gradient(180deg, rgba(0, 102, 204, 0.18), rgba(0, 102, 204, 0)) border-box;
    border: 1px solid transparent;
}

/* ---------- QzKeyValue ---------- */
.qz-kv {
    display: flex;
    flex-direction: column;
    gap: var(--qz-2);
}

.qz-kv-compact { gap: var(--qz-1); }

.qz-kv-label {
    color: var(--qz-ink-3);
}

.qz-kv-value {
    font-family: var(--qz-font-body);
    font-size: var(--qz-body);
    font-weight: 500;
    line-height: 1.45;
    color: var(--qz-ink);
    word-break: break-word;
}

.qz-kv-emphasis {
    font-size: var(--qz-subtitle);
    font-weight: 600;
}

.qz-kv-empty {
    color: var(--qz-ink-4);
    font-weight: 400;
}

.qz-kv-inline {
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--qz-4);
    padding-block: var(--qz-3);
    border-bottom: 1px solid var(--qz-line-soft);
}

.qz-kv-inline:last-child {
    border-bottom: 0;
}

/* ---------- QzList / QzListItem ---------- */
.qz-list {
    display: flex;
    flex-direction: column;
}

.qz-list-bordered {
    background: var(--qz-surface);
    border: 1px solid var(--qz-line);
    border-radius: var(--qz-radius-md);
    box-shadow: var(--qz-shadow-1);
    overflow: hidden;
}

.qz-list-item {
    display: flex;
    align-items: flex-start;
    gap: var(--qz-4);
    padding-block: var(--qz-4);
    padding-inline: 0;
    border-bottom: 1px solid var(--qz-line-soft);
}

.qz-list-bordered .qz-list-item {
    padding-inline: var(--qz-5);
}

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

.qz-li-leading {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--qz-ink-2);
}

.qz-li-body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--qz-1);
}

.qz-li-title { color: var(--qz-ink); font-weight: 500; }
.qz-li-sub { color: var(--qz-ink-3); }

.qz-li-trailing {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: var(--qz-2);
    color: var(--qz-ink-2);
    font-variant-numeric: tabular-nums;
}

/* ---------- QzStatusPill (extension) ---------- */
.qz-pill-nodot::before { display: none; }

/* ---------- QzEmptyState ---------- */
.qz-empty {
    display: flex;
    align-items: center;
    gap: var(--qz-4);
    padding: var(--qz-5) var(--qz-5);
    border: 1px dashed var(--qz-line);
    border-radius: var(--qz-radius-md);
    background: var(--qz-surface-2);
    color: var(--qz-ink-3);
}

.qz-empty-positive { color: var(--qz-success); border-color: rgba(52, 199, 89, 0.35); background: rgba(52, 199, 89, 0.04); }
.qz-empty-info     { color: var(--qz-info); border-color: rgba(90, 200, 250, 0.35); background: rgba(90, 200, 250, 0.04); }

.qz-empty-glyph { flex: 0 0 auto; line-height: 0; }
.qz-empty-text { flex: 1 1 auto; min-width: 0; }
.qz-empty-title { color: var(--qz-ink-2); font-weight: 500; }

/* ---------- QzMetricTile ---------- */
.qz-metric {
    background: var(--qz-surface);
    border: 1px solid var(--qz-line);
    border-radius: var(--qz-radius-md);
    padding: var(--qz-5);
    display: flex;
    flex-direction: column;
    gap: var(--qz-2);
    box-shadow: var(--qz-shadow-1);
    transition: transform var(--qz-dur-base) var(--qz-ease), box-shadow var(--qz-dur-base) var(--qz-ease);
}

.qz-metric:hover {
    transform: translateY(-1px);
    box-shadow: var(--qz-shadow-2);
}

.qz-metric-label { color: var(--qz-ink-3); }

.qz-metric-value-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--qz-3);
}

.qz-metric-value {
    font-family: var(--qz-font-display);
    font-size: var(--qz-display);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: var(--qz-ink);
    margin: 0;
}

.qz-metric.qz-metric-success .qz-metric-value { color: var(--qz-success); }
.qz-metric.qz-metric-warn    .qz-metric-value { color: var(--qz-warn); }
.qz-metric.qz-metric-danger  .qz-metric-value { color: var(--qz-danger); }
.qz-metric.qz-metric-info    .qz-metric-value { color: var(--qz-accent); }

.qz-metric-pill { flex: 0 0 auto; }
.qz-metric-sub { color: var(--qz-ink-3); }

.qz-metric-footer {
    margin-top: var(--qz-3);
    padding-top: var(--qz-3);
    border-top: 1px solid var(--qz-line-soft);
}

/* ---------- Charts (SVG containers) ---------- */
.qz-gauge,
.qz-payment-bars,
.qz-neg-dist,
.qz-inquiry-timeline {
    display: block;
    width: 100%;
    max-width: 100%;
    line-height: 0;
}

.qz-gauge { max-width: 360px; margin-inline: auto; }

.qz-gauge svg,
.qz-payment-bars svg,
.qz-neg-dist svg,
.qz-inquiry-timeline svg {
    width: 100%;
    height: auto;
    display: block;
}

@media (prefers-reduced-motion: no-preference) {
    .qz-gauge { animation: qz-reveal var(--qz-dur-reveal) var(--qz-ease) both; }
    .qz-payment-bars { animation: qz-reveal var(--qz-dur-reveal) var(--qz-ease) both; animation-delay: 60ms; }
    .qz-neg-dist { animation: qz-reveal var(--qz-dur-reveal) var(--qz-ease) both; animation-delay: 120ms; }
    .qz-inquiry-timeline { animation: qz-reveal var(--qz-dur-reveal) var(--qz-ease) both; animation-delay: 180ms; }
}

/* ---------- Layout grids para conteúdo de cards Serasa ---------- */
.qz-kv-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--qz-5) var(--qz-6);
}

.qz-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--qz-5);
}

.qz-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--qz-5);
}

@media (max-width: 880px) {
    .qz-grid-3 { grid-template-columns: 1fr; }
    .qz-grid-2 { grid-template-columns: 1fr; }
    .qz-kv-grid { grid-template-columns: 1fr; gap: var(--qz-4); }
}

@media (max-width: 1080px) {
    .qz-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.qz-neg-summary {
    display: grid;
    grid-template-columns: minmax(140px, 220px) 1fr;
    gap: var(--qz-6);
    align-items: center;
}

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

/* ============================================================
   POLISH / EDGE CASES
   ============================================================ */

/* Smooth scroll para anchors internos (cards de resumo → seções) */
[data-qz] {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    [data-qz] {
        scroll-behavior: auto;
    }
}

/* Selection: paleta consistente com accent */
[data-qz] ::selection {
    background: rgba(0, 102, 204, 0.18);
    color: var(--qz-ink);
}

/* Hover state sutil para .qz-list-item interativos (futuro: cards clicáveis) */
[data-qz] .qz-list-item.is-interactive {
    cursor: pointer;
    transition: background-color var(--qz-dur-fast) var(--qz-ease);
}
[data-qz] .qz-list-item.is-interactive:hover {
    background-color: var(--qz-surface-2);
}

/* ============================================================
   COLLAPSIBLE — cards expansíveis (anotações negativas, listas longas)
   ============================================================ */
[data-qz] .qz-collapsible {
    background: var(--qz-surface);
    border: 1px solid var(--qz-line);
    border-radius: var(--qz-radius-md);
    box-shadow: var(--qz-shadow-1);
    overflow: hidden;
}
[data-qz] .qz-collapsible-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--qz-4);
    padding: var(--qz-4) var(--qz-5);
    background: transparent;
    border: 0;
    color: inherit;
    text-align: left;
    cursor: pointer;
    font: inherit;
    transition: background-color var(--qz-dur-fast) var(--qz-ease);
}
[data-qz] .qz-collapsible-toggle:hover {
    background: var(--qz-surface-2);
}
[data-qz] .qz-collapsible-header {
    flex: 1;
    min-width: 0;
}
[data-qz] .qz-collapsible-chevron {
    flex: 0 0 auto;
    color: var(--qz-ink-3);
    transition: transform var(--qz-dur-base) var(--qz-ease);
    display: inline-flex;
    align-items: center;
}
[data-qz] .qz-collapsible.is-open .qz-collapsible-chevron {
    transform: rotate(180deg);
}
[data-qz] .qz-collapsible-body {
    padding: var(--qz-4) var(--qz-5) var(--qz-5);
    border-top: 1px solid var(--qz-line-soft);
}

/* Print: garante que cards não cortem entre páginas */
@media print {
    [data-qz] .qz-card,
    [data-qz] .qz-metric,
    [data-qz] .qz-list-item {
        break-inside: avoid;
        page-break-inside: avoid;
    }
    [data-qz] .qz-section {
        break-before: auto;
        page-break-before: auto;
    }
}

/* Fallback para containers vazios (defensive) */
[data-qz] .qz-section-body:empty,
[data-qz] .qz-card-body:empty,
[data-qz] .qz-list:empty {
    display: none;
}

/* Numbers tabular em toda parte sensível por default em [data-qz] já está
   no root inherited (font-variant-numeric: tabular-nums) — duplica para
   garantir em casos onde browser desabilita pela combinação de specs. */
[data-qz] .qz-mono,
[data-qz] .qz-kv-value,
[data-qz] .qz-metric-value,
[data-qz] .qz-li-trailing {
    font-variant-numeric: tabular-nums;
}

/* ===========================================================
   Cover (capa pág. 1) — Quartz
   =========================================================== */
[data-qz] .qz-cover {
    background: var(--qz-paper);
    padding: var(--qz-8) var(--qz-7);
    border-bottom: 1px solid var(--qz-line-soft);
    page-break-after: always;
}
[data-qz] .qz-cover-rule {
    width: var(--qz-7);
    height: 3px;
    background: var(--qz-ink);
    margin-bottom: var(--qz-4);
}
[data-qz] .qz-cover-eyebrow {
    color: var(--qz-ink);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin: 0 0 var(--qz-3) 0;
}
[data-qz] .qz-cover-title {
    margin: 0;
    line-height: var(--qz-leading-tight);
}
[data-qz] .qz-cover-subtitle {
    color: var(--qz-ink-2);
    margin: var(--qz-2) 0 0 0;
}
[data-qz] .qz-cover-status {
    margin-top: var(--qz-5);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--qz-3);
}
[data-qz] .qz-cover-kpis {
    margin-top: var(--qz-8);
}
[data-qz] .qz-kpi-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--qz-4);
}
@media (min-width: 880px) {
    [data-qz] .qz-kpi-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
[data-qz] .qz-kpi-tile {
    background: var(--qz-surface);
    border: 1px solid var(--qz-line);
    border-radius: var(--qz-radius-md);
    box-shadow: var(--qz-shadow-1);
    padding: var(--qz-5);
    min-height: 130px;
    display: flex;
    flex-direction: column;
    gap: var(--qz-2);
}
[data-qz] .qz-kpi-tile .qz-kpi-label {
    color: var(--qz-ink-3);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: var(--qz-micro);
    font-weight: 600;
}
[data-qz] .qz-kpi-tile .qz-kpi-value {
    font-family: var(--qz-font-display);
    font-size: var(--qz-display);
    font-weight: 700;
    color: var(--qz-ink);
    line-height: var(--qz-leading-snug);
    font-variant-numeric: tabular-nums;
}
[data-qz] .qz-kpi-tile .qz-kpi-sublabel {
    color: var(--qz-ink-3);
    font-size: var(--qz-caption);
}

/* ===========================================================
   Table of Contents (pág. 2) — Quartz
   =========================================================== */
[data-qz] .qz-toc {
    padding: var(--qz-7) var(--qz-7) var(--qz-6) var(--qz-7);
    border-bottom: 1px solid var(--qz-line-soft);
    page-break-after: always;
}
[data-qz] .qz-toc-rule {
    width: var(--qz-7);
    height: 2px;
    background: var(--qz-ink);
    margin-bottom: var(--qz-4);
}
[data-qz] .qz-toc-eyebrow {
    color: var(--qz-ink);
    font-weight: 700;
    letter-spacing: 0.1em;
    margin: 0 0 var(--qz-1) 0;
}
[data-qz] .qz-toc-title {
    margin: 0 0 var(--qz-5) 0;
}
[data-qz] .qz-toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
[data-qz] .qz-toc-item {
    display: flex;
    align-items: center;
    gap: var(--qz-3);
    padding: var(--qz-2) 0;
    border-bottom: 1px solid var(--qz-line-soft);
}
[data-qz] .qz-toc-number {
    color: var(--qz-ink-3);
    width: 36px;
    flex-shrink: 0;
}
[data-qz] .qz-toc-link {
    color: var(--qz-ink);
    text-decoration: none;
    flex: 1;
    transition: color var(--qz-dur-fast) var(--qz-ease);
}
[data-qz] .qz-toc-link:hover {
    color: var(--qz-accent);
}
[data-qz] .qz-toc-link-static {
    color: var(--qz-ink);
    flex: 1;
}
