/*
  TED Monitor — stile "operativo compatto".
  Regole (da impeccable.style, modalità "Operate"): un solo colore d'accento, grigi neutri,
  righe dense, codici e query in monospace, stato scritto a parole, contrasto AA,
  niente card annidate né ombre larghe. Bootstrap resta la base: qui si sovrascrivono i token.
*/
:root {
    --tm-accento: #0f766e;          /* verde petrolio: azioni principali e "nuove gare" */
    --tm-accento-scuro: #115e59;
    --tm-accento-tenue: #e6f2f1;
    --tm-testo: #18181b;
    --tm-testo-2: #52525b;          /* testo secondario: 7,6:1 su bianco */
    --tm-bordo: #e4e4e7;
    --tm-sfondo: #fafafa;
    --tm-sfondo-intestazione: #f4f4f5;
    --tm-errore: #b91c1c;
    --tm-font: "Source Sans 3", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, sans-serif;
    --tm-mono: "JetBrains Mono", "Cascadia Mono", Consolas, ui-monospace, monospace;

    --bs-body-font-family: var(--tm-font);
    --bs-body-color: var(--tm-testo);
    --bs-body-bg: var(--tm-sfondo);
    --bs-border-color: var(--tm-bordo);
    --bs-secondary-color: var(--tm-testo-2);
    --bs-link-color: var(--tm-accento);
    --bs-link-color-rgb: 15, 118, 110;
    --bs-link-hover-color: var(--tm-accento-scuro);
    --bs-link-hover-color-rgb: 17, 94, 89;
    --bs-primary: var(--tm-accento);
    --bs-primary-rgb: 15, 118, 110;
    --bs-border-radius: 4px;
    --bs-border-radius-sm: 3px;
    --bs-border-radius-lg: 6px;
    --bs-focus-ring-color: rgba(15, 118, 110, .25);
}

html { font-size: 15px; }

/* Icone Lucide inline: grandi quanto il testo, allineate alla linea di base, tratto sottile */
.icona { width: 1.1em; height: 1.1em; stroke-width: 1.75; vertical-align: -0.2em; flex-shrink: 0; }
.btn .icona { margin-right: .3rem; }
.btn-sm .icona { width: 1em; height: 1em; }
.nav-link .icona { margin-right: .35rem; }
body { line-height: 1.5; -webkit-font-smoothing: antialiased; }

h1, .h1 { font-size: 1.4rem; font-weight: 600; margin: 0; text-wrap: balance; }
h2, .h2 { font-size: 1.05rem; font-weight: 600; margin: 1.5rem 0 .5rem; }
.text-muted, .text-secondary { color: var(--tm-testo-2) !important; }
.mono { font-family: var(--tm-mono); font-size: .82rem; }

/* INIZIO BARRA IN ALTO */
.barra {
    background: #fff;
    border-bottom: 1px solid var(--tm-bordo);
}
.barra .navbar-brand { font-weight: 600; font-size: 1rem; color: var(--tm-testo); }
.barra .nav-link { color: var(--tm-testo-2); padding: .9rem .75rem !important; border-bottom: 2px solid transparent; }
.barra .nav-link:hover { color: var(--tm-testo); }
.barra .nav-link.active { color: var(--tm-accento); border-bottom-color: var(--tm-accento); }
.barra .utente { color: var(--tm-testo-2); font-size: .9rem; }
/* FINE BARRA IN ALTO */

.intestazione-pagina {
    display: flex; flex-wrap: wrap; gap: .75rem; align-items: center;
    margin: 1.75rem 0 1rem;
}
.intestazione-pagina .azioni { margin-left: auto; display: flex; gap: .5rem; align-items: center; }

/* INIZIO PULSANTI: un solo pulsante pieno per pagina, gli altri neutri */
.btn { font-size: .9rem; padding: .3rem .8rem; }
.btn-sm { font-size: .82rem; padding: .2rem .6rem; }
.btn-primary {
    --bs-btn-bg: var(--tm-accento); --bs-btn-border-color: var(--tm-accento);
    --bs-btn-hover-bg: var(--tm-accento-scuro); --bs-btn-hover-border-color: var(--tm-accento-scuro);
    --bs-btn-active-bg: var(--tm-accento-scuro); --bs-btn-active-border-color: var(--tm-accento-scuro);
    --bs-btn-disabled-bg: var(--tm-accento); --bs-btn-disabled-border-color: var(--tm-accento);
}
.btn-neutro {
    --bs-btn-color: var(--tm-testo); --bs-btn-bg: #fff; --bs-btn-border-color: #d4d4d8;
    --bs-btn-hover-color: var(--tm-testo); --bs-btn-hover-bg: var(--tm-sfondo-intestazione); --bs-btn-hover-border-color: #a1a1aa;
    --bs-btn-active-bg: #e4e4e7; --bs-btn-active-border-color: #a1a1aa;
}
.btn-pericolo {
    --bs-btn-color: var(--tm-errore); --bs-btn-bg: #fff; --bs-btn-border-color: #e7c4c4;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--tm-errore); --bs-btn-hover-border-color: var(--tm-errore);
}
/* FINE PULSANTI */

/* INIZIO TABELLE DENSE */
.tabella {
    background: #fff;
    border: 1px solid var(--tm-bordo);
    border-radius: 4px;
    overflow-x: auto;
}
.tabella table { width: 100%; margin: 0; border-collapse: collapse; font-size: .93rem; }
.tabella th {
    background: var(--tm-sfondo-intestazione);
    color: var(--tm-testo-2);
    font-weight: 600; font-size: .8rem;
    padding: .4rem .7rem; text-align: left; white-space: nowrap;
}
.tabella td { padding: .5rem .7rem; border-top: 1px solid var(--tm-bordo); vertical-align: top; }
.tabella tr.spenta td { color: var(--tm-testo-2); }
.tabella .nome { font-weight: 600; }
.tabella .azioni { text-align: right; white-space: nowrap; }
/* FINE TABELLE DENSE */

/* Stato scritto a parole: il colore rafforza, non sostituisce il testo */
.stato-ok { color: var(--tm-accento); }
.stato-neutro { color: var(--tm-testo-2); }
.stato-errore { color: var(--tm-errore); }

/* INIZIO PANNELLI E FORM */
.pannello {
    background: #fff;
    border: 1px solid var(--tm-bordo);
    border-radius: 4px;
    padding: 1rem 1.15rem;
}
.pannello > h2:first-child, .pannello > h3:first-child { margin-top: 0; }
.sezione-form { font-size: .95rem; font-weight: 600; margin: 1.5rem 0 .6rem; padding-top: 1rem; border-top: 1px solid var(--tm-bordo); }
.form-label { font-weight: 600; font-size: .88rem; margin-bottom: .25rem; }
.form-control, .form-select { font-size: .93rem; border-color: #d4d4d8; }
.form-control:focus, .form-select:focus { border-color: var(--tm-accento); box-shadow: 0 0 0 3px var(--bs-focus-ring-color); }
.form-check-input:checked { background-color: var(--tm-accento); border-color: var(--tm-accento); }
.form-text { font-size: .82rem; color: var(--tm-testo-2); }
.ricerca-veloce { max-width: 260px; }
/* FINE PANNELLI E FORM */

.query-ted {
    font-family: var(--tm-mono); font-size: .8rem; word-break: break-word;
    background: var(--tm-sfondo-intestazione); border-radius: 4px; padding: .5rem .7rem;
}
.avviso { padding: .6rem 0; }
.avviso + .avviso { border-top: 1px solid var(--tm-bordo); }

/* Messaggi: sfondo tenue, testo scuro della stessa famiglia */
.alert { border-radius: 4px; padding: .6rem .9rem; font-size: .93rem; }
.alert-success { background: var(--tm-accento-tenue); border-color: #b9dcd8; color: var(--tm-accento-scuro); }
.alert-danger { background: #fdf0f0; border-color: #f0caca; color: #8f1a1a; }
.alert-warning { background: #fdf6e7; border-color: #f1dfb4; color: #6b4a0b; }

/* Riepilogo errori del form: nascosto quando non ci sono errori */
.validation-summary-valid { display: none; }
.validation-summary-errors ul { margin: 0; padding-left: 1.1rem; }

/* INIZIO RICERCA AVANZATA (stessa struttura del sito TED) */
.campo-ricerca { background: var(--tm-sfondo-intestazione); }
.criteri .accordion-item { border-color: var(--tm-bordo); }
.criteri .accordion-button { font-weight: 600; font-size: .95rem; padding: .7rem 1rem; color: var(--tm-testo); background: #fff; box-shadow: none; }
.criteri .accordion-button:not(.collapsed) { background: #fff; color: var(--tm-testo); border-bottom: 1px solid var(--tm-bordo); }
.criteri .accordion-button:focus { box-shadow: 0 0 0 3px var(--bs-focus-ring-color); }
.criteri .accordion-body { padding: 1rem; }
.conteggio {
    margin-left: .5rem; min-width: 1.4rem; padding: 0 .4rem; border-radius: 3px;
    background: var(--tm-accento-tenue); color: var(--tm-accento-scuro); font-size: .78rem; text-align: center;
}
.anteprima-fissa { position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; }

.campo-multiplo .selettore { font-size: .93rem; text-align: left; }
.campo-multiplo .selettore .riepilogo { color: var(--tm-testo-2); }
.campo-multiplo .elenco-opzioni { width: 100%; min-width: 280px; max-height: 320px; overflow-y: auto; padding: .5rem; }
.campo-multiplo .opzione { display: flex; gap: .5rem; align-items: baseline; padding: .25rem .35rem; border-radius: 3px; cursor: pointer; font-size: .9rem; }
.campo-multiplo .opzione:hover { background: var(--tm-sfondo-intestazione); }
.campo-multiplo .etichette { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .35rem; }
.etichetta-valore {
    display: inline-flex; align-items: center; gap: .3rem;
    background: var(--tm-sfondo-intestazione); border: 1px solid var(--tm-bordo); border-radius: 3px;
    padding: .05rem .2rem .05rem .45rem; font-size: .84rem;
}
.etichetta-valore .rimuovi { border: 0; background: none; color: var(--tm-testo-2); line-height: 1; padding: 0 .2rem; font-size: 1rem; }
.etichetta-valore .rimuovi:hover { color: var(--tm-errore); }
/* FINE RICERCA AVANZATA */

/* Pagine senza login */
.accesso { max-width: 400px; margin: 4rem auto 2rem; }
.accesso .marchio { font-weight: 600; font-size: 1.05rem; margin-bottom: 1rem; }
