/* Taxa de depreciação por NCM: one reading column that scrolls inside the work area above the
   footer. The page structure (task page, footer, run status, table frame) is shared: app-shell.css.
   The scrollbar's gutter is reserved, so a result that makes the column scroll shifts nothing. */
.ncm-depreciacao .lookup { flex: 1; min-height: 0; overflow-y: auto; scrollbar-gutter: stable; padding: var(--space-6) var(--space-5) var(--space-7); }
.ncm-depreciacao .lookup-content { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); width: min(100%, 760px); margin: 0 auto; }
.ncm-depreciacao .card { padding: var(--space-4) var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.ncm-depreciacao label { display: block; margin-bottom: var(--space-2); font-size: var(--text-13); font-weight: var(--weight-semibold); }
.ncm-depreciacao .note { color: var(--ink-muted); font-size: var(--text-13); line-height: 1.65; }

/* Search: one field; results follow the typing. */
.ncm-depreciacao :is(input, textarea) { width: 100%; min-width: 0; border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--surface); color: var(--ink); font: var(--text-14)/1.5 var(--font-sans); }
.ncm-depreciacao input { min-height: 44px; padding: 0 var(--space-3); }
.ncm-depreciacao :is(input, textarea)::placeholder { color: var(--ink-muted); opacity: 1; }
.ncm-depreciacao input:disabled { background: var(--surface-sunken); color: var(--ink-muted); }
.ncm-depreciacao .entry-error { margin-top: var(--space-3); }

/* Result: the rate first, then the row it comes from and its notes. */
.ncm-depreciacao .result { display: grid; gap: var(--space-2); }
.ncm-depreciacao .rate { font: var(--weight-medium) var(--text-32)/1.2 var(--font-display); font-variant-numeric: tabular-nums; }
.ncm-depreciacao .rate strong { font-weight: inherit; }
.ncm-depreciacao .rows { display: grid; margin: 0; padding: 0; list-style: none; }
.ncm-depreciacao .rows li { display: grid; gap: var(--space-1); padding: var(--space-3) 0; border-bottom: 1px solid var(--line); }
.ncm-depreciacao .rows li:last-child { padding-bottom: 0; border-bottom: 0; }
.ncm-depreciacao .rows strong { font-weight: var(--weight-semibold); }
.ncm-depreciacao .rows .rate { font-size: var(--text-20); }

/* Question: a composer whose border turns ink on focus, then the answer below it. */
.ncm-depreciacao .composer { padding: var(--space-3) var(--space-4); border: 1px solid var(--line-strong); border-radius: var(--radius-lg); background: var(--surface); }
.ncm-depreciacao .composer:hover { border-color: var(--ink-muted); }
.ncm-depreciacao .composer:focus-within { border-color: var(--ink); }
.ncm-depreciacao .composer textarea { display: block; padding: 0; border: 0; resize: vertical; }
.ncm-depreciacao .composer textarea:focus-visible { outline: none; }
.ncm-depreciacao .composer textarea:disabled { background: transparent; color: var(--ink-muted); }
.ncm-depreciacao .composer-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-2) var(--space-3); margin-top: var(--space-2); }
.ncm-depreciacao .composer-actions .run-status { margin-right: auto; }
.ncm-depreciacao .question-status { color: var(--ink-muted); font-size: var(--text-12); }
.ncm-depreciacao .question-status:not(:empty) { margin-top: var(--space-2); }
.ncm-depreciacao .asked { margin-bottom: var(--space-3); color: var(--ink-muted); font-size: var(--text-13); white-space: pre-wrap; }
.ncm-depreciacao .answer .content { font-size: var(--text-14); line-height: 1.65; }
.ncm-depreciacao .answer .content :is(p, ul, ol, pre, table, h1, h2, h3, h4) { margin: 0; }
.ncm-depreciacao .answer .content > * + * { margin-top: var(--space-3); }
.ncm-depreciacao .answer .content :is(ul, ol) { padding-left: var(--space-5); }
.ncm-depreciacao .answer .content :is(h1, h2, h3, h4) { font-size: var(--text-16); line-height: 1.4; }
.ncm-depreciacao .answer .content a { color: var(--info); text-decoration: underline; text-underline-offset: 3px; }
.ncm-depreciacao .answer .content code { font: var(--text-13) var(--font-mono); }
.ncm-depreciacao .answer .content pre { overflow-x: auto; padding: var(--space-3); border-radius: var(--radius-md); background: var(--paper); }
.ncm-depreciacao .answer .content table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; font-size: var(--text-13); font-variant-numeric: tabular-nums; }

/* Situational rules and the full table stay in one compact reference group. */
.ncm-depreciacao .reference-details { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.ncm-depreciacao .source-note { margin-top: var(--space-3); }
.ncm-depreciacao .source-note a { color: inherit; text-underline-offset: 3px; }
.ncm-depreciacao .disclosure summary { padding: var(--space-1) 0; font-size: var(--text-14); font-weight: var(--weight-semibold); cursor: pointer; }
.ncm-depreciacao .disclosure > p { margin-bottom: var(--space-3); font-size: var(--text-14); line-height: 1.65; }
.ncm-depreciacao .table-frame { max-height: min(70vh, 640px); margin: var(--space-2) 0 0; }
.ncm-depreciacao .full-table { min-width: 560px; }
.ncm-depreciacao .full-table :is(.ncm, .num) { white-space: nowrap; }
.ncm-depreciacao .full-table th.num { text-align: right; }
.ncm-depreciacao .full-table .chapter th { background: var(--surface-sunken); font-weight: var(--weight-semibold); }
.ncm-depreciacao .table-notes { margin: var(--space-4) 0 0; padding-left: var(--space-5); color: var(--ink-muted); font-size: var(--text-13); line-height: 1.65; }

@media (max-width: 720px) {
  .ncm-depreciacao .lookup { padding-inline: var(--space-3); }
}
@media (max-width: 600px) {
  .ncm-depreciacao .disclosure summary { box-sizing: border-box; min-height: 44px; padding-block: 11px; line-height: 22px; }
  .ncm-depreciacao .lookup { padding-block: var(--space-5) var(--space-6); }
  .ncm-depreciacao .lookup-content { gap: var(--space-4); }
  .ncm-depreciacao .card { padding: var(--space-4); }
  .ncm-depreciacao :is(input, textarea) { font-size: var(--text-16); }
  .ncm-depreciacao .rate { font-size: var(--text-24); }
}
