/* Módulo finanzas (M14, M15, M16, D05, D06) · prefijo fin- */

/* Selector de periodo en cabecera */
.fin-period { min-width: 190px; }
.fin-period label { font-size: var(--text-xs); }

/* Listas compactas en paneles */
.fin-list { list-style: none; margin: 0; padding: 0; }
.fin-list li { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--color-border); }
.fin-list li:last-child { border-bottom: 0; }
.fin-list li > div:first-child { min-width: 0; }
.fin-list-title { display: block; font-weight: var(--weight-medium); overflow-wrap: anywhere; }
.fin-list-title a { color: var(--color-text); }
.fin-list-amt { font-variant-numeric: tabular-nums; font-weight: var(--weight-medium); white-space: nowrap; }
.fin-list-side { display: flex; flex-direction: column; align-items: flex-end; gap: var(--space-2); }

/* Recorrido R08 */
.fin-route { margin: 0; padding-left: 1.4em; display: grid; gap: var(--space-3); }
.fin-route li { padding-left: var(--space-1); }
.fin-route .h-link-btn { padding: 0; font-size: inherit; }

/* Vista previa de documento */
.fin-doc-small { font-size: 11px; color: #555; margin-top: 6px; line-height: 1.5; }
.fin-doc-meta { text-align: right; }
.fin-doc-meta p { margin: 2px 0; }
.fin-doc-parties { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 8px; }
.fin-doc-label { font-size: 11px; color: #555; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 4px; }

/* Editor de borrador */
.fin-lines { min-width: 640px; }
.fin-lines td { vertical-align: middle; }
.fin-in-concept { width: 100%; min-width: 220px; }
.fin-in-num { width: 7.5em; text-align: right; font-variant-numeric: tabular-nums; }
.fin-in-vat { width: 5.5em; }
.fin-totals { display: grid; gap: var(--space-2); font-variant-numeric: tabular-nums; }
.fin-totals div { display: flex; justify-content: space-between; gap: var(--space-3); }
.fin-totals .is-total { border-top: 1px solid var(--color-border); padding-top: var(--space-2); font-weight: var(--weight-semibold); font-size: var(--text-section); }
.fin-errs { margin: var(--space-1) 0 0; padding-left: 1.2em; }

/* Diálogos con cálculo */
.fin-calc { margin-top: var(--space-4); padding: var(--space-4); background: var(--color-surface-subtle); border: 1px solid var(--color-border); border-radius: var(--radius-panel); display: grid; gap: var(--space-3); }
.fin-fieldset { border: 1px solid var(--color-border); border-radius: var(--radius-control); padding: var(--space-3) var(--space-4); margin: var(--space-4) 0 0; display: grid; gap: var(--space-2); }
.fin-fieldset legend { font-size: var(--text-sm); font-weight: var(--weight-medium); padding: 0 var(--space-1); }
.fin-check { display: flex; align-items: center; gap: var(--space-2); min-height: 32px; }
.fin-rline { display: grid; grid-template-columns: 1fr auto; gap: var(--space-1) var(--space-3); align-items: center; }
.fin-rline .h-sub { grid-column: 1 / -1; }
.fin-h3 { font-size: var(--text-base); font-weight: var(--weight-semibold); margin: var(--space-5) 0 var(--space-2); }
.fin-h3:first-child { margin-top: 0; }
.fin-alloc td { vertical-align: middle; }
.fin-diff { margin: var(--space-3) 0 0; font-size: var(--text-sm); font-variant-numeric: tabular-nums; }

/* Textos auxiliares */
.fin-counts { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-4); font-size: var(--text-sm); }
.fin-mono { letter-spacing: .01em; font-size: .92em; }
.fin-err { display: block; max-width: 38ch; font-size: var(--text-xs); color: var(--color-text); }
.fin-row-actions { flex-wrap: nowrap; gap: var(--space-1); }
.fin-sum { margin: var(--space-3) 0; font-size: var(--text-sm); font-variant-numeric: tabular-nums; }
.fin-neg { color: var(--color-danger); }
.fin-total-row th, .fin-total-row td { font-weight: var(--weight-semibold); border-top: 1px solid var(--color-text); }
.fin-reparto { color: var(--color-primary-text); }

/* Cuentas bancarias */
.fin-accs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-3); margin-bottom: var(--space-5); }
.fin-acc { padding: var(--space-4); margin: 0; display: grid; gap: var(--space-1); align-content: start; }
.fin-acc header { display: flex; justify-content: space-between; align-items: center; gap: var(--space-2); }
.fin-acc-name { font-weight: var(--weight-semibold); }
.fin-acc-bal { font-size: var(--text-title); font-weight: var(--weight-semibold); font-variant-numeric: tabular-nums; margin: var(--space-1) 0 0; }
.fin-acc p { margin: 0; }

/* Conciliación */
.fin-concil { display: grid; grid-template-columns: minmax(240px, 320px) minmax(0, 1fr); gap: var(--space-4); align-items: start; margin-bottom: var(--space-5); }
.fin-concil-list { display: grid; gap: var(--space-2); max-height: 640px; overflow: auto; padding-right: var(--space-1); }
.fin-concil-list > p { margin: 0 0 var(--space-1); }
.fin-mov { display: grid; gap: var(--space-1); text-align: left; width: 100%; padding: var(--space-3); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-control); color: var(--color-text); font: inherit; cursor: pointer; }
.fin-mov:hover { border-color: var(--color-control-border); }
.fin-mov.is-active { border-color: var(--color-primary); box-shadow: inset 3px 0 0 var(--color-primary); background: var(--color-primary-soft); }
.fin-mov:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.fin-mov-top { display: flex; justify-content: space-between; gap: var(--space-2); font-size: var(--text-xs); color: var(--color-text-muted); }
.fin-mov-top strong { font-size: var(--text-sm); color: var(--color-text); font-variant-numeric: tabular-nums; }
.fin-mov-top strong.fin-neg { color: var(--color-danger); }
.fin-mov-concept { font-size: var(--text-sm); font-weight: var(--weight-medium); overflow-wrap: anywhere; }
.fin-mov-meta { display: flex; gap: var(--space-2); align-items: center; }
.fin-concil-detail { margin: 0; min-width: 0; }
.fin-cands { min-width: 560px; }
.fin-cands td { vertical-align: middle; }
.fin-concil-actions { margin-top: var(--space-4); flex-wrap: wrap; }

@media (max-width: 900px) {
  .fin-concil { grid-template-columns: 1fr; }
  .fin-concil-list { max-height: 320px; }
}
@media (max-width: 600px) {
  .fin-doc-parties { grid-template-columns: 1fr; }
  .fin-doc-meta { text-align: left; }
  .fin-period { min-width: 0; width: 100%; }
  .fin-list li { padding: var(--space-3); }
  .fin-row-actions { flex-wrap: wrap; }
}
