/* ---------- tema ---------- */
:root {
  --bs-primary: #1f4e79;
  --bs-primary-rgb: 31, 78, 121;
  --bs-link-color: #1f4e79;
  --bs-link-color-rgb: 31, 78, 121;
  --bs-link-hover-color: #163a5a;
  --bs-link-hover-color-rgb: 22, 58, 90;
  --mark-bg: #fff2a8;
  --brand-grad: linear-gradient(135deg, #1f4e79, #2f80c3);
}
[data-bs-theme="dark"] {
  --bs-link-color: #7fb4e6;
  --bs-link-color-rgb: 127, 180, 230;
  --bs-link-hover-color: #a9cdf0;
  --bs-link-hover-color-rgb: 169, 205, 240;
  --mark-bg: #6b5a00;
}
.btn-primary { --bs-btn-bg: #1f4e79; --bs-btn-border-color: #1f4e79; --bs-btn-hover-bg: #163a5a; --bs-btn-hover-border-color: #163a5a; --bs-btn-active-bg: #123049; --bs-btn-active-border-color: #123049; }
.text-primary-emphasis { color: #1f4e79 !important; }
[data-bs-theme="dark"] .text-primary-emphasis { color: #7fb4e6 !important; }
.page-item.active .page-link { background: #1f4e79; border-color: #1f4e79; }
.form-check-input:checked { background-color: #1f4e79; border-color: #1f4e79; }

body { font-size: .95rem; }
mark { background: var(--mark-bg); padding: 0 .12em; border-radius: .2em; box-shadow: 0 0 0 1px rgba(0,0,0,.05); }
kbd { font-size: .8em; }
.min-w-0 { min-width: 0; }

/* ---------- brand ---------- */
.brand-mark { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 9px; background: var(--brand-grad); color: #fff; font-size: 1rem; box-shadow: 0 2px 6px rgba(31,78,121,.35); }
.brand-mark-lg { width: 64px; height: 64px; border-radius: 18px; font-size: 1.8rem; }

/* ---------- login ---------- */
.login-bg { background: radial-gradient(1200px 600px at 10% 10%, #e8f0f8, transparent), radial-gradient(900px 500px at 90% 90%, #dfe9f3, transparent), #f4f6f9; }
[data-bs-theme="dark"] .login-bg { background: radial-gradient(1200px 600px at 10% 10%, #1b2a3a, transparent), #0f1720; }
.login-card { width: 100%; max-width: 420px; border-radius: 1rem; animation: sali .45s ease-out both; }

/* ---------- ricerca ---------- */
.search-box .input-group-lg > .form-control { font-size: 1.05rem; }
.search-box .input-group { box-shadow: 0 6px 20px rgba(31,78,121,.10); border-radius: .5rem; }
.search-box .form-control:focus, .search-box .form-select:focus { box-shadow: none; border-color: #1f4e79; }
.filtri-card { position: sticky; top: 4.5rem; }
.badge-sigla { font-size: .68em; letter-spacing: .02em; min-width: 2.2em; }
.risultato { padding: .8rem 1rem; transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease; position: relative; }
.risultato:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,.08); z-index: 2; }
.risultato.cliccabile { cursor: pointer; }
.risultato-oggetto { max-width: 100%; }
.risultato .azioni { opacity: 0; transition: opacity .15s; }
.risultato:hover .azioni, .risultato:focus-within .azioni { opacity: 1; }
@media (hover: none) { .risultato .azioni { opacity: 1; } }
.risultati .risultato { animation: sali .35s ease-out both; }
.risultati .risultato:nth-child(1) { animation-delay: .02s } .risultati .risultato:nth-child(2) { animation-delay: .05s } .risultati .risultato:nth-child(3) { animation-delay: .08s }
.risultati .risultato:nth-child(4) { animation-delay: .11s } .risultati .risultato:nth-child(5) { animation-delay: .14s } .risultati .risultato:nth-child(6) { animation-delay: .17s }
.risultati .risultato:nth-child(7) { animation-delay: .20s } .risultati .risultato:nth-child(8) { animation-delay: .23s } .risultati .risultato:nth-child(n+9) { animation-delay: .26s }
@keyframes sali { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .risultati .risultato, .login-card { animation: none; } .risultato:hover { transform: none; } }
.dir-icon { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 1rem; }
.dir-inviata { background: rgba(31,78,121,.12); color: #1f4e79; }
.dir-ricevuta { background: rgba(25,135,84,.12); color: #198754; }
[data-bs-theme="dark"] .dir-inviata { color: #7fb4e6; } [data-bs-theme="dark"] .dir-ricevuta { color: #5fd39a; }
.snippet { font-size: .86rem; color: var(--bs-body-color); line-height: 1.35; }
.snippet-allegato { border-left: 3px solid rgba(31,78,121,.35); padding-left: .5rem; }

/* ---------- messaggio ---------- */
.messaggio-card { border-radius: .75rem; overflow: hidden; }
.intestazioni dt { font-weight: 500; color: var(--bs-secondary-color); }
.intestazioni dd { margin-bottom: .15rem; word-break: break-word; }
.corpo-testo { white-space: pre-wrap; word-wrap: break-word; font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-size: .95rem; line-height: 1.5; }
.corpo-compatto { max-height: 26rem; overflow: hidden; position: relative; }
.corpo-compatto.aperto { max-height: none; }
.corpo-compatto:not(.aperto)::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4rem; background: linear-gradient(transparent, var(--bs-card-bg, var(--bs-body-bg))); pointer-events: none; }
.html-frame { width: 100%; min-height: 70vh; border: 1px solid var(--bs-border-color); border-radius: .5rem; background: #fff; }
.sticky-side { position: sticky; top: 4.5rem; }
.thread-list { max-height: calc(100vh - 9rem); overflow-y: auto; }
.thread-list .list-group-item.active { background: #1f4e79; border-color: #1f4e79; }
.allegato-chip .btn { border-color: var(--bs-border-color); }
.allegato-chip .btn:hover { border-color: #1f4e79; }

/* ---------- cronologia ---------- */
.barra { position: relative; display: flex; height: 1.35rem; background: var(--bs-tertiary-bg); border-radius: .35rem; overflow: hidden; }
.barra-inv { background: #1f4e79; transition: width .6s ease; } .barra-ric { background: #198754; transition: width .6s ease; }
.barra-n { position: absolute; right: .5rem; top: 0; line-height: 1.35rem; font-size: .8rem; color: var(--bs-body-color); font-variant-numeric: tabular-nums; }
.legenda-inv { color: #1f4e79 } .legenda-ric { color: #198754 }

/* ---------- barra di caricamento ---------- */
#barra-carico { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: var(--brand-grad); z-index: 2000; transition: width .3s ease, opacity .3s; opacity: 0; }
#barra-carico.attiva { opacity: 1; }

/* ---------- modali ---------- */
.modal-anteprima .modal-body { max-height: 75vh; overflow: auto; }
.modal-allegato .modal-body { padding: 0; background: var(--bs-tertiary-bg); }
.modal-allegato iframe { width: 100%; height: 80vh; border: 0; background: #fff; }
.modal-allegato img { max-width: 100%; max-height: 80vh; display: block; margin: 0 auto; }
.modal-allegato .non-anteprima { padding: 3rem 1rem; text-align: center; }

/* ---------- stampa ---------- */
@media print {
  .no-print, nav.navbar, footer, .nav-tabs { display: none !important; }
  .card { border: 0 !important; box-shadow: none !important; }
  .corpo-compatto { max-height: none !important; } .corpo-compatto::after { display: none !important; }
  .html-frame { min-height: 0; height: auto; }
  body { font-size: 11pt; }
  a[href]::after { content: none !important; }
}

/* ---------- ricerca su schermi piccoli ---------- */
@media (max-width: 575.98px) {
  .search-box .input-group { flex-wrap: wrap; box-shadow: none; }
  .search-box .input-group > .input-group-text { display: none; }
  .search-box .input-group > .form-control { flex: 1 1 100%; border-radius: .5rem !important; margin-bottom: .5rem; box-shadow: 0 6px 20px rgba(31,78,121,.10); }
  .search-box .input-group > .form-select { flex: 1 1 auto; width: auto !important; border-radius: .5rem 0 0 .5rem !important; }
  .search-box .input-group > .btn { border-radius: 0 .5rem .5rem 0 !important; }
  .risultato .azioni { position: static; }
}
.badge-conv { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); border: 1px solid var(--bs-border-color); font-weight: 400; }

/* ---------- riquadro archivio ---------- */
.archivio-voci .list-group-item { background: transparent; border-color: var(--bs-border-color-translucent); color: var(--bs-body-color); }
.archivio-voci .list-group-item:hover { background: var(--bs-tertiary-bg); color: #1f4e79; }
[data-bs-theme="dark"] .archivio-voci .list-group-item:hover { color: #7fb4e6; }
.archivio-voci .list-group-item:last-child { border-bottom: 0; }

/* ================= casella di posta (tre riquadri) ================= */
.vista-posta main { display: flex; flex-direction: column; min-height: 0; }
.mail-app { display: flex; height: calc(100vh - 57px); min-height: 0; }
.mail-nav { width: 240px; flex: 0 0 240px; overflow-y: auto; border-right: 1px solid var(--bs-border-color); background: var(--bs-tertiary-bg); padding: .5rem 0; }
.mail-nav-sezione { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); padding: .75rem 1rem .25rem; font-weight: 600; }
.mail-cartella { display: flex; align-items: center; gap: .6rem; padding: .4rem 1rem; color: var(--bs-body-color); text-decoration: none; border-left: 3px solid transparent; font-size: .92rem; }
.mail-cartella i { width: 1.1rem; text-align: center; color: var(--bs-secondary-color); }
.mail-cartella i.punto { font-size: .6rem; }
.mail-cartella span { flex: 1 1 auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mail-cartella em { font-style: normal; font-size: .78rem; color: var(--bs-secondary-color); font-variant-numeric: tabular-nums; }
.mail-cartella:hover { background: rgba(31,78,121,.08); }
.mail-cartella.attiva { background: rgba(31,78,121,.14); border-left-color: #1f4e79; font-weight: 600; }
.mail-cartella.attiva i, .mail-cartella.attiva em { color: #1f4e79; }
[data-bs-theme="dark"] .mail-cartella.attiva i, [data-bs-theme="dark"] .mail-cartella.attiva em { color: #7fb4e6; }
.mail-main { flex: 1 1 auto; display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.mail-cerca { padding: .6rem .75rem; border-bottom: 1px solid var(--bs-border-color); background: var(--bs-body-bg); }
.mail-cerca .input-group { box-shadow: 0 2px 10px rgba(31,78,121,.08); border-radius: .5rem; }
.mail-cerca .form-control:focus { box-shadow: none; border-color: var(--bs-border-color); }
.opzioni-ricerca { border-radius: .5rem; }
.mail-panes { flex: 1 1 auto; display: flex; min-height: 0; }
.mail-list { width: 440px; flex: 0 0 440px; display: flex; flex-direction: column; border-right: 1px solid var(--bs-border-color); min-height: 0; }
@media (min-width: 1600px) { .mail-list { width: 520px; flex-basis: 520px; } }
.mail-list-testa, .mail-list-piede { display: flex; align-items: center; gap: .5rem; padding: .4rem .75rem; border-bottom: 1px solid var(--bs-border-color); font-size: .88rem; background: var(--bs-body-bg); }
.mail-list-piede { border-bottom: 0; border-top: 1px solid var(--bs-border-color); justify-content: center; }
.mail-righe { flex: 1 1 auto; overflow-y: auto; }
.mail-riga { display: flex; gap: .7rem; padding: .55rem .75rem; border-bottom: 1px solid var(--bs-border-color-translucent); color: var(--bs-body-color); text-decoration: none; transition: background .1s; }
.mail-riga:hover { background: var(--bs-tertiary-bg); }
.mail-riga.attiva { background: rgba(31,78,121,.12); box-shadow: inset 3px 0 0 #1f4e79; }
.mail-riga-corpo { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: .1rem; }
.mail-riga-1 { display: flex; align-items: baseline; gap: .5rem; }
.mail-mitt { font-weight: 600; font-size: .92rem; flex: 1 1 auto; }
.mail-data { font-size: .78rem; color: var(--bs-secondary-color); white-space: nowrap; }
.mail-ogg { font-size: .9rem; }
.mail-snip { font-size: .82rem; color: var(--bs-secondary-color); }
.mail-riga-3 { display: flex; align-items: center; gap: .3rem; font-size: .75rem; margin-top: .15rem; min-height: 1.1rem; }
.avatar { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-weight: 600; font-size: .85rem; letter-spacing: .02em; text-transform: uppercase; }
.avatar-lg { width: 48px; height: 48px; font-size: 1rem; }
.avatar-io { background: #1f4e79; } .avatar-altro { background: #6c757d; }
.avatar.bg-warning { color: #3b2f00; }
.mail-read { flex: 1 1 auto; overflow-y: auto; min-width: 0; background: var(--bs-body-bg); }
.mail-read-vuoto { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--bs-secondary-color); text-align: center; padding: 2rem; }
.pannello { padding: 1rem 1.25rem 2rem; max-width: 1100px; }
.pannello-barra { display: flex; align-items: center; gap: .5rem; margin-bottom: .75rem; }
.pannello-oggetto { font-size: 1.35rem; font-weight: 600; margin: 0 0 .75rem; line-height: 1.3; }
.pannello-testata { display: flex; gap: .8rem; align-items: flex-start; padding-bottom: .75rem; border-bottom: 1px solid var(--bs-border-color); }
.pannello-testata .dettagli-toggle { font-size: .8rem; }
.pannello-allegati { display: flex; flex-wrap: wrap; gap: .5rem; padding: .75rem 0; border-bottom: 1px solid var(--bs-border-color); }
.allegato-card { display: flex; align-items: stretch; border: 1px solid var(--bs-border-color); border-radius: .5rem; background: var(--bs-tertiary-bg); max-width: 100%; transition: box-shadow .12s, border-color .12s; }
.allegato-card:hover { border-color: #1f4e79; box-shadow: 0 3px 10px rgba(0,0,0,.08); }
.allegato-apri { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: .6rem; align-items: center; padding: .4rem .7rem; color: var(--bs-body-color); text-decoration: none; min-width: 0; max-width: 340px; }
.allegato-apri i { grid-row: 1 / span 2; }
.allegato-nome { font-size: .86rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.allegato-info { font-size: .74rem; color: var(--bs-secondary-color); }
.allegato-dl { display: flex; align-items: center; padding: 0 .6rem; border-left: 1px solid var(--bs-border-color); color: var(--bs-secondary-color); }
.allegato-dl:hover { color: #1f4e79; background: var(--bs-body-bg); border-radius: 0 .5rem .5rem 0; }
.pannello-occorrenze { padding: .6rem 0; border-bottom: 1px solid var(--bs-border-color); }
.pannello-corpo { padding: 1rem 0; }
.pannello-corpo .html-frame { min-height: 60vh; }
.pannello-thread { border-top: 1px solid var(--bs-border-color); padding-top: .75rem; }
.thread-riga { display: flex; align-items: center; gap: .5rem; padding: .3rem .5rem; border-radius: .35rem; color: var(--bs-body-color); text-decoration: none; font-size: .86rem; }
.thread-riga:hover { background: var(--bs-tertiary-bg); }
.thread-riga.attiva { background: rgba(31,78,121,.12); font-weight: 600; }
@media (max-width: 991.98px) {
  .mail-app { height: auto; flex-direction: column; }
  .mail-nav { width: auto; flex: none; border-right: 0; border-bottom: 1px solid var(--bs-border-color); display: flex; flex-wrap: nowrap; overflow-x: auto; gap: .3rem; padding: .4rem .5rem; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .mail-nav::-webkit-scrollbar { display: none; }
  .mail-cartella { flex: 0 0 auto; }
  .mail-panes { flex-direction: column; }
  .mail-nav-sezione { display: none; }
  .mail-cartella { padding: .25rem .6rem; border: 1px solid var(--bs-border-color); border-radius: 1rem; font-size: .8rem; }
  .mail-cartella span { max-width: 11rem; } .mail-cartella em { display: none; }
  .mail-list { width: 100%; flex: 1 1 auto; min-width: 0; border-right: 0; }
  .mail-read { display: none; }
  .mail-righe { overflow: visible; }
}
@media (max-width: 575.98px) { .mail-cerca .input-group { flex-wrap: nowrap; } .mail-cerca .input-group > .form-control { flex: 1 1 auto; margin-bottom: 0; } }

.corpo-citato { color: var(--bs-secondary-color); border-left: 3px solid var(--bs-border-color); padding-left: .75rem; }
.citazione-toggle { border-radius: 1rem; font-size: .8rem; }
@media print { .corpo-citato { display: block !important; } .collapse:not(.show) { display: block !important; } }
