/* =========================================================
   Declaração Anual (DASN-SIMEI) e IRPF do titular — /declaracao
   ========================================================= */
.dc-head { display: flex; flex-direction: column; gap: 12px; }
.dc-years { align-self: stretch; }
.dc-years button { white-space: nowrap; }
.dc-gap { margin-top: 12px !important; }
.dc-gap-link { display: inline-block; margin-top: 14px; }
.dc-copy-card .card-head .link-btn { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }

/* ---------- Herói ---------- */
.dc-hero {
    position: relative; overflow: hidden; border-radius: 24px; padding: 20px; color: #fff;
    background: linear-gradient(145deg, #059669 0%, #047857 100%); box-shadow: var(--shadow-hero);
    display: flex; flex-direction: column;
}
.dc-hero::after {
    content: ""; position: absolute; right: -60px; top: -60px; width: 200px; height: 200px; border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, .18), transparent 70%); pointer-events: none;
}
.dc-hero-late { background: linear-gradient(145deg, #c2413a 0%, #9b2c26 60%, #6d1d19 100%); box-shadow: 0 18px 40px -14px rgba(155, 44, 38, .55); }
.dc-hero-soon { background: linear-gradient(145deg, #d18606 0%, #a86204 60%, #7a4703 100%); box-shadow: 0 18px 40px -14px rgba(168, 98, 4, .55); }
.dc-hero-done { background: linear-gradient(145deg, #1f4d3d 0%, #173a2e 100%); }
.dc-hero-preview { background: linear-gradient(145deg, #1e293b 0%, #0f172a 100%); box-shadow: var(--shadow); }
.dc-hero-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.dc-tag { display: inline-flex; align-items: center; gap: 6px; font-size: calc(13px * var(--fs, 1)); font-weight: 600; opacity: .9; }
.dc-pill { font-size: calc(12px * var(--fs, 1)); font-weight: 700; padding: 5px 10px; border-radius: 999px; background: rgba(255, 255, 255, .18); white-space: nowrap; }
.dc-hero-label { margin-top: 16px !important; font-size: calc(14px * var(--fs, 1)); opacity: .85; }
.dc-hero-value { font-size: calc(40px * var(--fs, 1)); font-weight: 800; letter-spacing: -.02em; line-height: 1.1; margin-top: 2px !important; }
.dc-hero-sub { margin-top: 8px !important; font-size: calc(14px * var(--fs, 1)); opacity: .95; }
.dc-hero-extra { margin-top: 12px !important; padding: 10px 12px; border-radius: 12px; background: rgba(0, 0, 0, .18); font-size: calc(13px * var(--fs, 1)); position: relative; z-index: 1; }

/* ---------- Limite ---------- */
.dc-bar { height: 12px; border-radius: 999px; background: var(--surface-2); overflow: hidden; }
.dc-bar-fill { height: 100%; border-radius: 999px; }
.dc-bar-ok { background: var(--brand); }
.dc-bar-warn { background: var(--amber); }
.dc-bar-bad { background: var(--out); }
.dc-bar-legend { margin: 8px 0 12px !important; font-size: calc(14px * var(--fs, 1)); color: var(--ink-2); }
.dc-notice-bad { background: var(--out-soft); color: var(--ink-2); }
.dc-notice-bad strong { color: var(--out); }

/* ---------- Campos para copiar ---------- */
.dc-fields { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.dc-fields li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.dc-fields li:last-child { border-bottom: 0; }
.dc-field-text { display: flex; flex-direction: column; gap: 2px; flex: 1 1 200px; min-width: 0; }
.dc-field-name { font-size: calc(14px * var(--fs, 1)); font-weight: 650; color: var(--ink); }
.dc-field-hint { font-size: calc(12px * var(--fs, 1)); color: var(--muted); }
.dc-value {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 12px; border-radius: 12px;
    border: 0; background: var(--brand-soft);
    color: var(--brand-strong); font: inherit; font-weight: 800; font-size: calc(15px * var(--fs, 1)); cursor: pointer; white-space: nowrap;
}
.dc-value:active { transform: scale(.98); }
.dc-value-static { cursor: default; background: var(--surface-2); border-color: var(--line); color: var(--ink); }
.dc-total .dc-field-name { color: var(--ink-2); }
.dc-yesno { flex: 0 0 auto; min-width: 150px; }

/* ---------- Entrega ---------- */
.dc-guide li { box-shadow: none; }
.dc-mark { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }

/* ---------- IRPF ---------- */
.dc-irpf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dc-stat-wide { grid-column: 1 / -1; }
.dc-in { color: var(--in); }
.dc-warn { color: var(--amber); }
.dc-math { margin-top: 8px; }
.dc-math th { white-space: normal; }
.dc-math .dc-sum th, .dc-math .dc-sum td { font-weight: 800; color: var(--ink); }
.dc-where { margin-top: 14px; padding: 14px; border-radius: 14px; background: var(--surface-2); font-size: calc(14px * var(--fs, 1)); color: var(--ink-2); }
.dc-where ul { margin: 6px 0 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }

/* ---------- Rodapé ---------- */
.dc-foot { display: flex; flex-direction: column; gap: 6px; font-size: calc(13px * var(--fs, 1)); color: var(--muted); padding: 4px 2px 8px; }
.dc-foot .icon, .dc-deliver .muted-sm .icon { display: inline-block; vertical-align: -2px; }
.dc-sources { font-size: calc(12px * var(--fs, 1)); }

/* Celular: margem entre cartões da coluna única */
@media (max-width: 1023px) {
    .dc-hero + *, .dc-limit, .dc-copy-card, .dc-deliver, .dc-irpf, .dc-foot { margin-top: 16px; }
}

/* Computador: grade de 2 colunas (DASN à esquerda, entrega/IRPF à direita) */
@media (min-width: 1024px) {
    .dc-head { flex-direction: row; align-items: flex-end; justify-content: space-between; }
    .dc-years { align-self: auto; min-width: 360px; }
    .dc-hero-value { font-size: calc(48px * var(--fs, 1)); }
    .app > .dc-hero, .app > .dc-limit { height: 100%; }
    .app > .dc-copy-card, .app > .dc-irpf { align-self: start; }
    /* No computador o IRPF fica ao lado do resumo; o passo a passo vem embaixo, na largura toda */
    .app > .dc-deliver { order: 1; grid-column: 1 / -1; }
    .app > .dc-deliver .dc-guide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .app > .dc-deliver .dc-mark { flex-direction: row; flex-wrap: wrap; align-items: flex-end; }
    .app > .dc-deliver .dc-mark .field-label { flex-basis: 100%; }
    .app > .dc-deliver .dc-mark .input { flex: 1; }
    .app > .dc-deliver .dc-mark .btn { width: auto; }
    .app > .dc-foot { order: 2; grid-column: 1 / -1; }
}

/* Faturou ou declaração zerada */
.dc-kind { display: flex; flex-direction: column; gap: 8px; margin: 14px 0 6px; }
.dc-kind-choice { display: flex; width: 100%; }
.dc-kind-choice button { flex: 1; min-height: 44px; }
.dc-kind + .notice .link { margin-top: 6px; }
