/*
 * Rapporto di giornata — veste dell'APP (la veste stampata sta in app/views/pdf/pdf.css:
 * stesso markup, due fogli, perche' un CSS servito all'app che imposta il font del body
 * sovrascriverebbe Inter ovunque).
 *
 * Taglio EDITORIALE, scelto con Mattias: copertina tipografica, il testo che racconta la
 * giornata, poi le tabelle. Niente card, niente icone, niente barre colorate — qui
 * l'eleganza e' la tipografia e lo spazio bianco, e ogni decorazione in piu' toglierebbe
 * autorevolezza a un documento che finisce in mano al titolare.
 *
 * Regola CSS: una property per riga, niente eccezioni.
 */

.rpt-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin: 1rem 0 1.5rem;
}

.rpt-download {
  margin-left: auto;
}

/* Il foglio: bianco, stretto, centrato. Deve somigliare a quello che esce stampato. */
.rpt-doc {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-small);
  padding: 3rem 3.25rem;
  max-width: 52rem;
}

.rpt-doc-head {
  border-bottom: 2px solid var(--navy);
  padding-bottom: 1.25rem;
  margin-bottom: 2rem;
}

.rpt-kicker {
  margin: 0 0 0.75rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--navy);
}

.rpt-name {
  margin: 0;
  font-size: 2.1rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.rpt-date {
  margin: 0.25rem 0 0;
  font-size: 0.95rem;
  color: var(--gray-text);
}

/* L'apertura scritta: piu' grande del resto, perche' e' quello che si legge davvero. */
.rpt-summary {
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.65;
}

/* L'analisi: rientrata e con un filetto, cosi' si distingue dal racconto senza urlare. */
.rpt-analysis {
  margin: 1rem 0 0;
  padding-left: 1rem;
  border-left: 3px solid var(--azure);
  font-size: 0.98rem;
  line-height: 1.6;
  color: var(--gray-text);
}

.rpt-section {
  margin-top: 2.5rem;
}

.rpt-section h2 {
  margin: 0 0 0.35rem;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--navy);
}

.rpt-hint {
  margin: 0 0 0.75rem;
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--gray-text);
}

.rpt-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.rpt-table th {
  padding: 0.4rem 0.5rem;
  border-bottom: 1px solid var(--navy);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gray-text);
  text-align: left;
}

.rpt-table td {
  padding: 0.5rem;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}

/* I numeri si incolonnano a destra in cifre tabellari: e' l'unico modo per confrontarli
   a colpo d'occhio scorrendo una colonna. */
.rpt-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.rpt-table th.rpt-num {
  text-align: right;
}

/* L'unico rosso del documento, e serve: un ordine non prelevato e' merce non ordinata. */
.rpt-warn {
  color: var(--danger);
  font-weight: 600;
}

.rpt-note {
  font-size: 0.78rem;
  color: var(--gray-text);
}

.rpt-quotes {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rpt-quotes li {
  display: flex;
  gap: 0.75rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid var(--border);
  font-size: 0.9rem;
}

.rpt-quote-time {
  color: var(--gray-text);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.rpt-quote-text {
  font-style: italic;
}

@media (max-width: 48rem) {
  .rpt-doc {
    padding: 1.5rem 1.25rem;
  }

  .rpt-name {
    font-size: 1.5rem;
  }

  .rpt-download {
    margin-left: 0;
  }
}
