/* Liquidazioni agenzie: panoramica, coda «Da richiedere», registro e scadenzario. Si appoggia a settlements*.css e usa solo i token di app.css (temi chiaro e scuro). */

/* ---- Indicatori della panoramica ---- */
.ags-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.ags-kpis .dash-kpi-items { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.ags-kpis a.dash-kpi { text-decoration: none; }
.ags-kpis a.dash-kpi:hover { background: var(--surface); border-color: var(--border-strong, var(--border)); }
@media (max-width: 900px) {
  .ags-kpis { grid-template-columns: minmax(0, 1fr); }
}

/* Importi scaduti: il testo dice «scadute», il colore lo rinforza. */
.ags-overdue { color: var(--danger); font-weight: 600; }

/* Nome di un'agenzia con il segno di archiviata. */
.ags-agency { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }

/* Saldo di una posizione di un'agenzia: D = da richiedere (importo positivo), A = richiesto in eccesso. */
.ags-saldo.side-D .balance-amount { color: var(--accent); }
.ags-saldo.side-A .balance-amount { color: var(--warn); }
.ags-saldo.side-PARI .balance-amount { color: var(--muted); }

/* Riepilogo sopra una tabella: totali dare/avere, residuo per classe di scadenza. */
.ags-totals { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; margin: 0 0 10px; padding: 8px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-2); font-size: 13px; font-variant-numeric: tabular-nums; }
.ags-totals-saldo { display: inline-flex; align-items: center; gap: 8px; }
.ags-totals-saldo .balance-cell { align-items: flex-start; }

/* Operazione stornata nel registro: resta leggibile ma in secondo piano. */
tr.ags-reversed td { color: var(--muted); }
tr.ags-reversed td .op-badge { opacity: 0.75; }

/* ---- Coda «Da richiedere» ---- */
.ags-section { border-left: 4px solid var(--border); }
.ags-section.tone-danger { border-left-color: var(--danger); }
.ags-section.tone-warn { border-left-color: var(--warn); }
.ags-section.tone-orange { border-left-color: var(--orange); }
.ags-section.tone-accent { border-left-color: var(--accent); }
.ags-section.tone-purple { border-left-color: var(--purple); }
.ags-section .card-header { flex-wrap: wrap; gap: 6px 12px; }
.ags-section td > button.small, .ags-section td > a.button.small, .ags-candidate-head > a.button { white-space: nowrap; }

/* Perché una riga è bloccata o superata: motivi in elenco, dettagli a richiesta. */
.ags-reasons ul, .ags-reasons-list { margin: 0; padding-left: 16px; font-size: 13px; }
.ags-reasons li, .ags-reasons-list li { overflow-wrap: anywhere; }
.ags-reasons details { margin-top: 4px; font-size: 12.5px; }
.ags-reasons details summary { cursor: pointer; color: var(--muted); }

/* Un blocco per agenzia × società con le sue posizioni. */
.ags-candidates { display: flex; flex-direction: column; gap: 14px; }
.ags-candidate { min-width: 0; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.ags-candidate .table-wrap { margin-top: 10px; }
.ags-candidate-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
.ags-candidate-who { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; flex: 1 1 260px; min-width: 0; }
.ags-candidate-seller { display: inline-flex; flex-direction: column; min-width: 0; }
.ags-figures { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 0; font-variant-numeric: tabular-nums; }
.ags-figures dt { color: var(--faint); font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; }
.ags-figures dd { margin: 0; }
.button.disabled { opacity: 0.5; cursor: not-allowed; }

@media (max-width: 760px) {
  .ags-candidate-head { align-items: flex-start; }
  .ags-totals { gap: 4px 14px; }
}

/* Campi di ricerca delle barre dei filtri: abbastanza larghi da leggere il suggerimento. */
.ags-ledger .rep-field input[type="search"], .ags-schedule .rep-field input[type="search"] { min-width: 220px; }
