/* Aspetto ripreso dalla proposta grafica: verde #1E5B47, IBM Plex Sans */
:root, html[data-theme="light"] {
  --primary: #1E5B47;
  --secondary: #1E5B47;
  --accent: #DDEFE5;
  --primary-fg: #FFFFFF;
  --header-color: #FFFFFF;
  --header-branding-color: #FFFFFF;
  --header-bg: #1E5B47;
  --header-link-color: #FFFFFF;
  --breadcrumbs-bg: #2F7A5F;
  --link-fg: #1E5B47;
  --link-hover-color: #123A2D;
  --link-selected-fg: #123A2D;
  --button-bg: #1E5B47;
  --button-hover-bg: #123A2D;
  --default-button-bg: #1E5B47;
  --default-button-hover-bg: #123A2D;
  --selected-row: #F2F7F4;
  --font-family-primary: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-family-monospace: "IBM Plex Mono", ui-monospace, monospace;
}
body { background: var(--body-bg); }
#site-name .ambiente { font-size: 12px; font-weight: 500; background: rgba(255,255,255,.18); padding: 2px 8px; border-radius: 999px; margin-left: 8px; }
.crm-nav { display: flex; flex-wrap: wrap; gap: 4px; background: #1E5B47; padding: 0 32px 8px; }
.crm-nav a { color: #FFFFFF !important; text-decoration: none; padding: 8px 12px; border-radius: 6px; font-weight: 500; font-size: 14px; }
.crm-nav a:hover { background: rgba(255,255,255,.18); }

.pri-badge { display: inline-block; min-width: 30px; text-align: center; border-radius: 6px; padding: 3px 8px;
  font-family: var(--font-family-monospace); font-size: 13px; font-weight: 500; }
.pri-badge.pri-vuota { background: #ECEDEA; color: #3F4743; }
.pri-badge.pri-grande { font-size: 18px; padding: 6px 12px; }
.pri-label { font-size: 12px; color: #4F5853; }
.stato-badge { display: inline-block; border-radius: 999px; padding: 3px 10px; font-size: 12px; font-weight: 600; }
.stato-dett { font-size: 11px; color: #5A635E; }
a.chip { display: inline-block; background: #F3F4F1; border: 1px solid #DADDD6; border-radius: 6px; padding: 1px 7px;
  font-size: 12px; color: #1C2420; margin: 1px 0; text-decoration: none; }

.scheda-testata { background: #FFFFFF; border: 1px solid #DADDD6; border-radius: 10px; padding: 18px 22px; margin: 0 0 18px;
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; align-items: flex-start; }
.scheda-id { font-family: var(--font-family-monospace); font-size: 13px; color: #5A635E; }
.scheda-nome { font-size: 24px; font-weight: 700; line-height: 1.2; margin: 4px 0; color: #1C2420; }
.scheda-sotto { font-size: 14px; color: #4F5853; margin-bottom: 8px; }
.scheda-badge .pri-label { font-size: 15px; font-weight: 600; color: #1C2420; margin-right: 10px; }
.scheda-azioni a { display: inline-block; border: 1px solid #1E5B47; color: #1E5B47; border-radius: 8px; padding: 8px 14px;
  font-weight: 600; text-decoration: none; margin-left: 6px; }
.scheda-azioni a:hover { background: #E3EFE9; }
.eliminata-avviso { background: #5A5F5C; color: #FFFFFF; padding: 8px 12px; border-radius: 8px; margin-bottom: 12px; font-weight: 600; }

.scheda-tel { font-size: 14px; margin-bottom: 8px; }
.scheda-tel .tel { display: inline-block; margin-right: 14px; }

/* pagina iniziale */
.cruscotto { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-bottom: 24px; }
.cruscotto .riquadro { background: var(--body-bg); border: 1px solid var(--hairline-color); border-radius: 10px; padding: 14px 16px; }
.cruscotto h2 { margin: 0 0 10px; font-size: 15px; }
.cruscotto ul.numeri { list-style: none; margin: 0; padding: 0; }
.cruscotto ul.numeri li { list-style: none; padding: 0; margin: 0; border-bottom: 1px solid var(--hairline-color); }
.cruscotto ul.numeri a, .cruscotto ul.numeri a span { text-decoration: none; }
.cruscotto ul.numeri a:hover span { text-decoration: underline; }
.cruscotto ul.numeri a { display: flex; align-items: center; gap: 12px; padding: 7px 2px; text-decoration: none; color: var(--body-fg); }
.cruscotto ul.numeri strong { min-width: 42px; text-align: right; font-size: 18px; color: var(--link-fg); }
.cruscotto li.allarme strong { color: #B4441B; }
.cruscotto li.zero strong { color: var(--body-quiet-color); }

table.modifiche td, table.modifiche th { padding: 6px 10px; vertical-align: top; }
table.modifiche .prima { color: #8E2B22; }
table.modifiche .dopo { color: #1E5B47; font-weight: 600; }
textarea.elenco-email { width: 100%; min-height: 160px; font-family: var(--font-family-monospace); font-size: 13px; }

/* --- modifiche del 28/10 ---------------------------------------------------------- */
/* n. 1: filtri compatti nella colonna "Filtra": una riga per argomento */
#changelist-filter { min-width: 270px; }
#changelist-filter .filtro-compatto { display: flex; align-items: center; gap: 8px; padding: 5px 12px; margin: 0;
  border-bottom: 1px solid var(--hairline-color); position: relative; }
#changelist-filter .fc-titolo { flex: 0 0 92px; font-size: 12px; font-weight: 600; color: var(--body-quiet-color); }
#changelist-filter details.fc-menu > summary::before, #changelist-filter details.fc-menu[open] > summary::before { content: none; }
#changelist-filter details.fc-menu { flex: 1; min-width: 0; border: 0; margin: 0; padding: 0; }
#changelist-filter details.fc-menu > summary { list-style: none; cursor: pointer; border: 1px solid var(--border-color); border-radius: 6px;
  padding: 4px 24px 4px 8px; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; position: relative;
  background: var(--body-bg); color: var(--body-fg); }
#changelist-filter details.fc-menu > summary::-webkit-details-marker { display: none; }
#changelist-filter details.fc-menu > summary::after { content: "▾"; position: absolute; right: 8px; top: 3px; color: var(--body-quiet-color); }
#changelist-filter details.fc-menu > summary.attivo { border-color: var(--primary); background: var(--accent); font-weight: 600; }
#changelist-filter .fc-opzioni { position: absolute; z-index: 20; right: 12px; left: 112px; margin-top: 4px; background: var(--body-bg);
  border: 1px solid var(--border-color); border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.15); padding: 8px; }
#changelist-filter .fc-opzioni label { display: flex; align-items: center; gap: 6px; padding: 3px 4px; font-size: 13px; cursor: pointer; }
#changelist-filter .fc-opzioni label:hover { background: var(--darkened-bg); }
#changelist-filter .fc-voci { max-height: 260px; overflow-y: auto; border-top: 1px solid var(--hairline-color); margin-top: 4px; padding-top: 4px; }
#changelist-filter .fc-applica { margin-top: 8px; width: 100%; padding: 6px; border: 0; border-radius: 6px; background: var(--button-bg);
  color: var(--button-fg); font-weight: 600; cursor: pointer; }
#changelist-filter .fc-priority .fc-intervallo { display: flex; align-items: center; gap: 6px; flex: 1; font-size: 13px; }
#changelist-filter .fc-priority input { width: 34px; padding: 3px 4px; text-align: center; font-family: var(--font-family-monospace); }
#changelist-filter .fc-priority .fc-applica { width: auto; margin: 0; padding: 4px 10px; }
#changelist-filter select.fc-select { flex: 1; min-width: 0; font-size: 13px; }

/* n. 2: stato relazione e propensione nella testata, sotto "Modifiche" */
.scheda-azioni { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.testata-campi { display: flex; flex-direction: column; gap: 6px; background: var(--darkened-bg); border-radius: 8px; padding: 8px 10px; }
.testata-campo { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 13px; }
.testata-campo label, .testata-campo .etichetta { font-weight: 600; color: var(--body-quiet-color); }
.testata-campo select { min-width: 170px; }

/* n. 3: attività/azioni in ritardo in rosso */
.flag-ritardo { display: inline-block; background: #B4441B; color: #FFFFFF; border-radius: 6px; padding: 2px 8px; font-size: 12px; font-weight: 600; }
tr:has(.flag-ritardo) > td { background: #FBE4E1 !important; }

/* n. 4, 7, 9: dettaglio a richiesta */
details.dettaglio { margin-top: 6px; border: 0; padding: 0; }
details.dettaglio > summary { cursor: pointer; color: var(--link-fg); font-weight: 600; font-size: 13px; display: inline-block;
  border: 1px solid var(--link-fg); border-radius: 6px; padding: 3px 10px; }
table.diario-tab { margin-top: 8px; width: 100%; }
table.diario-tab td, table.diario-tab th { padding: 4px 8px; font-size: 12px; vertical-align: top; }
.gestione { display: flex; flex-direction: column; gap: 6px; }
.gestione .pulsante-contatto { align-self: flex-start; padding: 6px 14px; border-radius: 8px; font-weight: 600; }
.gestione .etichetta, .prossima-azione .etichetta { display: inline-block; min-width: 120px; font-weight: 600; color: var(--body-quiet-color); }
.ultimo-contatto { background: var(--accent); border-radius: 6px; padding: 6px 10px; color: #1C2420; }
.ultimo-contatto.vuoto { background: transparent; padding: 0; color: var(--body-quiet-color); }
.gestione details ul { margin: 6px 0 0; padding-left: 18px; }

/* n. 5: fonte dei contatti del centro nascosta, visibile con "Dettaglio" */
fieldset.inline-contatti td.field-ro_fonte, fieldset.inline-contatti th.column-ro_fonte { display: none; }
fieldset.inline-contatti td.original p { display: none; }
fieldset.inline-contatti tr.has_original td { padding-top: 8px; }
.barra-dettaglio { padding: 6px 10px; }
.barra-dettaglio .button { padding: 4px 12px; }
.pannello-fonte { margin-top: 6px; background: var(--darkened-bg); border-radius: 6px; padding: 8px 12px; font-size: 13px; }
.pannello-fonte ul { margin: 0; padding-left: 18px; }

/* n. 24: "Non contattare" sotto la propensione nella testata */
.non-contattare-avviso { margin-top: 4px; background: #B4441B; color: #FFFFFF; border-radius: 6px; padding: 5px 10px;
  font-size: 13px; font-weight: 700; letter-spacing: .02em; max-width: 320px; }

/* n. 19: collegamenti inattivi in grigio, menu Azioni */
.flag-inattivo { display: inline-block; background: #ECEDEA; color: #3F4743; border-radius: 999px; padding: 2px 9px; font-size: 12px; font-weight: 600; }
tr:has(.flag-inattivo) > td { background: #F3F4F1; color: #5A635E; }
tr:has(.flag-inattivo) td.field-ro_persona a, tr:has(.flag-inattivo) td.field-ro_centro a { color: #5A635E; }
select.azione-legame { min-width: 170px; }

/* n. 10: sigla dell'operatore */
.sigla-op { display: inline-block; min-width: 26px; text-align: center; font-family: var(--font-family-monospace); font-size: 12px;
  font-weight: 600; background: var(--darkened-bg); border-radius: 5px; padding: 2px 5px; cursor: help; }

/* n. 11, 13, 14: barra fissa della scheda con Salva / Registra contatto / Modifiche / Storia */
.barra-fissa { position: sticky; top: 0; z-index: 30; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 8px 16px; background: var(--body-bg); border: 1px solid var(--hairline-color); border-radius: 10px; padding: 8px 14px;
  margin: 0 0 12px; box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.barra-titolo { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.barra-titolo strong { font-size: 17px; }
.barra-id { font-family: var(--font-family-monospace); font-size: 12px; color: var(--body-quiet-color); }
.barra-badge .stato-dett, .barra-badge br { display: none; }
/* n. 20: didascalia della priority accanto al codice, accorciata se lunga (testo completo al passaggio del mouse) */
.barra-badge .pri-label { display: inline-block; max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  vertical-align: middle; font-size: 13px; font-weight: 600; color: var(--body-fg); margin-right: 6px; cursor: help; }
.barra-pulsanti { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.barra-pulsanti .button, .barra-pulsanti input[type=submit] { padding: 8px 14px; border-radius: 8px; font-weight: 600; margin: 0; }
.barra-pulsanti .barra-secondario { background: var(--body-bg); color: var(--link-fg); border: 1px solid var(--link-fg); }
.barra-pulsanti .barra-secondario:hover { background: var(--accent); }
.barra-pulsanti .barra-contatto { background: #1A4E85; color: #FFFFFF; }

/* n. 16: schede bloccate (99) in grigio scuro con lucchetto */
.bloccata-avviso { background: #3A3F3C; color: #FFFFFF; padding: 8px 12px; border-radius: 8px; margin-bottom: 12px; font-weight: 600; }
.flag-bloccata { display: inline-flex; vertical-align: -2px; }
#result_list tr:has(.flag-bloccata) > td, #result_list tr:has(.flag-bloccata) > th { background: #3A3F3C !important; color: #FFFFFF; }
#result_list tr:has(.flag-bloccata) a { color: #FFFFFF; }
#result_list tr:has(.flag-bloccata) .stato-dett, #result_list tr:has(.flag-bloccata) .pri-label { color: #DADDD6; }

/* n. 17: discipline e interessi */
/* n. 18: discipline e interessi nella testata della scheda */
.testata-principale { flex: 1 1 520px; min-width: 0; }
.testata-discipline { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--hairline-color); font-size: 14px; }
.testata-discipline > .etichetta { display: inline-block; min-width: 150px; font-weight: 600; color: var(--body-quiet-color); }
.modifica-discipline { margin-top: 6px; }
.modifica-discipline[open] { background: var(--darkened-bg); border-radius: 8px; padding: 8px 12px 12px; }
.campo-discipline { margin-top: 10px; }
.campo-discipline > .etichetta { font-weight: 600; margin-bottom: 4px; }
.campo-discipline .related-widget-wrapper { width: 100%; display: block; }
.field-discipline_praticate .flex-container, .field-interessi .flex-container { display: block; }
.field-discipline_praticate .related-widget-wrapper, .field-interessi .related-widget-wrapper { width: 100%; }
div#id_discipline_praticate { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 4px 0 0; }
div#id_interessi { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px 24px; width: 100%; margin: 4px 0 0; }
div#id_interessi > div > label { display: block; float: none; width: auto; padding: 0 0 4px; margin: 0 0 2px; font-weight: 700;
  color: var(--body-quiet-color); border-bottom: 1px solid var(--hairline-color); }
div#id_discipline_praticate label, div#id_interessi > div > div label { display: flex; align-items: center; gap: 6px; float: none;
  width: auto; padding: 2px 0; margin: 0; font-weight: 400; cursor: pointer; }
div#id_discipline_praticate input, div#id_interessi input { margin: 0; }
.discipline-col { font-size: 12px; cursor: help; }
.scelte-autorizzazioni, ul.scelte-autorizzazioni { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 4px 18px; margin: 0; padding: 0; }
.scelte-autorizzazioni li { list-style: none; }

@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) tr:has(.flag-ritardo) > td { background: #4A2620 !important; }
  html:not([data-theme="light"]) .ultimo-contatto:not(.vuoto) { color: #F3F4F1; background: #2A3A32; }
}
html[data-theme="dark"] tr:has(.flag-ritardo) > td { background: #4A2620 !important; }
html[data-theme="dark"] .ultimo-contatto:not(.vuoto) { color: #F3F4F1; background: #2A3A32; }

@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) .scheda-testata { background: #1F2622; border-color: #3A433E; }
  html:not([data-theme="light"]) .scheda-nome { color: #F3F4F1; }
  html:not([data-theme="light"]) .scheda-sotto, html:not([data-theme="light"]) .pri-label { color: #C9CDC5; }
  html:not([data-theme="light"]) .scheda-badge .pri-label { color: #F3F4F1; }
  html:not([data-theme="light"]) a.chip { background: #2A322E; color: #F3F4F1; border-color: #3A433E; }
}
html[data-theme="dark"] .scheda-testata { background: #1F2622; border-color: #3A433E; }
html[data-theme="dark"] .scheda-nome { color: #F3F4F1; }
html[data-theme="dark"] .scheda-sotto, html[data-theme="dark"] .pri-label { color: #C9CDC5; }
html[data-theme="dark"] a.chip { background: #2A322E; color: #F3F4F1; border-color: #3A433E; }
