:root {
  /* Valori di riserva: quelli veri arrivano da «Aspetto e personalizzazione» (base.html) */
  --primario: #2f6b25;
  --primario-scuro: #234f1c;
  --primario-chiaro: #e8f0e1;
  --testo-primario: #ffffff;
  --barra: #234f1c;
  --testo-barra: #ffffff;
  --fondo: #f5f6f1;
  --bordo: #dfe3d6;
  --raggio: .5rem;
  --bs-primary: var(--primario);
  --bs-link-color: var(--primario);
  --bs-link-hover-color: var(--primario-scuro);
  --bs-border-radius: var(--raggio);
  --bs-border-radius-sm: calc(var(--raggio) * .6);
  --bs-border-radius-lg: calc(var(--raggio) * 1.3);
}

body { background: var(--fondo); }
.barra { background: var(--barra); }
.barra .nav-link, .barra .navbar-brand, .barra .dropdown-toggle { color: var(--testo-barra); }
.barra .nav-link:hover, .barra .nav-link:focus { color: var(--testo-barra); opacity: .8; }
.esci-barra { color: var(--testo-barra); border-color: var(--testo-barra); }
.icona-nav { height: 40px; width: 40px; object-fit: contain; flex-shrink: 0; border-radius: 50%; }
.logo-accesso { height: 150px; width: auto; max-width: 85%; object-fit: contain; }
@media (min-width: 768px) { .logo-accesso { height: 170px; } }
.pagina-accesso { margin-top: 8vh; }
.logo-nav { height: 30px; width: auto; flex-shrink: 0; max-width: 120px; object-fit: contain; background: #fff; border-radius: 4px; padding: 2px; }

h1, .h1 { font-size: 1.5rem; font-weight: 600; }
h2, .h2 { font-size: 1.15rem; font-weight: 600; }

.card { border-color: var(--bordo); }
.card-header { background: #fff; font-weight: 600; }

.btn-primary { --bs-btn-color: var(--testo-primario); --bs-btn-bg: var(--primario); --bs-btn-border-color: var(--primario); --bs-btn-hover-color: var(--testo-primario); --bs-btn-hover-bg: var(--primario-scuro); --bs-btn-hover-border-color: var(--primario-scuro); --bs-btn-active-color: var(--testo-primario); --bs-btn-active-bg: var(--primario-scuro); --bs-btn-active-border-color: var(--primario-scuro); --bs-btn-disabled-bg: var(--primario); --bs-btn-disabled-border-color: var(--primario); }
.btn-outline-primary { --bs-btn-color: var(--primario); --bs-btn-border-color: var(--primario); --bs-btn-hover-color: var(--testo-primario); --bs-btn-hover-bg: var(--primario); --bs-btn-hover-border-color: var(--primario); --bs-btn-active-color: var(--testo-primario); --bs-btn-active-bg: var(--primario-scuro); --bs-btn-active-border-color: var(--primario-scuro); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--primario); --bs-nav-pills-link-active-color: var(--testo-primario); --bs-nav-link-color: var(--primario); }
.form-check-input:checked { background-color: var(--primario); border-color: var(--primario); }
.form-control:focus, .form-select:focus { border-color: var(--primario); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--primario) 25%, transparent); }
.page-link { color: var(--primario); }
a { color: var(--primario); }

.num, td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.table { --bs-table-bg: #fff; }
.table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; color: #5f6b58; font-weight: 600; white-space: nowrap; }
.table tfoot td { font-weight: 600; background: var(--primario-chiaro); }
.tabelle-compatte .table > :not(caption) > * > * { padding-top: .3rem; padding-bottom: .3rem; }
body:not(.tabelle-compatte) .table > :not(caption) > * > * { padding-top: .6rem; padding-bottom: .6rem; }
tr.cliccabile { cursor: pointer; }

.kpi { background: #fff; border: 1px solid var(--bordo); border-radius: var(--raggio); padding: .9rem 1rem; height: 100%; }
.kpi .etichetta { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: #5f6b58; }
.kpi .valore { font-size: 1.45rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.kpi .sotto { font-size: .85rem; color: #5f6b58; }

.badge-stato { font-weight: 500; }
.stato-pagata { background: #d7ecd0; color: #234f1c; }
.stato-parziale { background: #fff1c2; color: #6b5200; }
.stato-aperta { background: #e3e8f3; color: #2c3e66; }
.stato-scaduta { background: #f8d7cf; color: #8a2c10; }
.stato-nota { background: #ece3f5; color: #4b2a6b; }

/* Maschera fattura */
.tabella-righe { min-width: 1250px; }
.tabella-righe td { vertical-align: top; padding: .3rem .25rem; }
.tabella-righe .form-control, .tabella-righe .form-select { font-size: .85rem; }
.tabella-righe .calcolato { background: var(--primario-chiaro); font-variant-numeric: tabular-nums; text-align: right; font-size: .85rem; padding: .3rem .4rem; border-radius: .25rem; min-height: 31px; }
.tabella-righe tr.eliminata { opacity: .4; }
.tabella-righe .riga-dettaglio td { border-top: 0; padding-top: 0; }
.w-colli { width: 80px; } .w-peso { width: 100px; } .w-prezzo { width: 105px; } .w-small { width: 76px; } .w-unita { width: 84px; }
.info-lotto { font-size: .78rem; }
.totali-fattura { font-variant-numeric: tabular-nums; }
.totali-fattura .grande { font-size: 1.4rem; font-weight: 700; }
.campo-nascosto { display: none !important; }

.filtri { background: #fff; border: 1px solid var(--bordo); border-radius: var(--raggio); padding: .75rem; }
.errorlist { color: #b02a37; list-style: none; padding: 0; margin: .25rem 0 0; font-size: .85rem; }

@media print {
  .navbar, .filtri, .btn, .no-stampa { display: none !important; }
  body { background: #fff; }
}

.angoli-vivi .card, .angoli-vivi .btn, .angoli-vivi .form-control, .angoli-vivi .form-select, .angoli-vivi .badge,
.angoli-vivi .alert, .angoli-vivi .dropdown-menu, .angoli-vivi .kpi, .angoli-vivi .filtri { border-radius: 0 !important; }

/* Pagina aspetto */
.tema-scelta { border: 2px solid var(--bordo); border-radius: var(--raggio); background: #fff; padding: .5rem; cursor: pointer; text-align: left; width: 100%; }
.tema-scelta:hover, .tema-scelta:focus { border-color: var(--primario); }
.tema-campioni { display: flex; gap: 4px; margin-bottom: .35rem; }
.tema-campioni span { width: 26px; height: 26px; border-radius: 50%; border: 1px solid rgba(0,0,0,.15); }
.form-control-color { width: 4rem; height: 2.4rem; }
.anteprima-barra { background: var(--barra); color: var(--testo-barra); padding: .6rem .9rem; border-radius: var(--raggio) var(--raggio) 0 0; font-weight: 600; }
.anteprima-corpo { background: var(--fondo); padding: .9rem; border: 1px solid var(--bordo); border-top: 0; border-radius: 0 0 var(--raggio) var(--raggio); }

/* Gestione utenti */
.password-temporanea { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.6rem; letter-spacing: .08em; background: var(--primario-chiaro); padding: .6rem 1rem; border-radius: var(--raggio); display: inline-block; user-select: all; }

/* Barra del menu compatta: niente voci su due righe */
.barra .nav-link { white-space: nowrap; }
@media (min-width: 992px) {
  .barra .navbar-nav .nav-link { padding-left: .45rem; padding-right: .45rem; font-size: .93rem; }
  .barra .nome-barra { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-block; vertical-align: middle; }
}
@media (min-width: 992px) and (max-width: 1399.98px) {
  .barra .navbar-nav .nav-link .bi { display: none; }
}

/* Presenze */
.navigatore-data { max-width: 420px; }
.scheda-presenza { border-left: 4px solid var(--bordo); }
.scheda-presenza.bordo-presente { border-left-color: #2e8b3d; }
.scheda-presenza.bordo-assente { border-left-color: #c2571a; }
.barra-salva { position: sticky; bottom: 0; display: flex; gap: .5rem; flex-wrap: wrap; padding: .75rem 0 calc(.75rem + env(safe-area-inset-bottom, 0px)); background: var(--fondo); margin-top: 1rem; z-index: 5; }
.griglia-mese { font-size: .8rem; }
.griglia-mese th, .griglia-mese td { text-align: center; padding: .25rem .2rem !important; white-space: nowrap; }
.griglia-mese th.nome, .griglia-mese td.nome { text-align: left; position: sticky; left: 0; background: #fff; z-index: 1; min-width: 150px; }
.griglia-mese td.cella a { display: block; color: inherit; text-decoration: none; min-width: 2.2rem; border-radius: 3px; }
.griglia-mese td.cella a:hover { outline: 1px solid var(--primario); }
.griglia-mese .festivo { background: #f1f1ee; }
.griglia-mese .fuori { background: repeating-linear-gradient(45deg, #f6f6f6, #f6f6f6 4px, #ececec 4px, #ececec 8px); }
.griglia-mese .ass { color: #8a2c10; font-weight: 600; }
.griglia-mese .oggi { box-shadow: inset 0 0 0 2px var(--primario); }
.legenda-presenze span { white-space: nowrap; }


/* ---------------- registro modifiche */
.badge.azione-C { background: #d8efd3; color: #1d5a14; }
.badge.azione-M { background: #fff0c2; color: #6b4e00; }
.badge.azione-E { background: #f8d7da; color: #842029; }
.operazione-allarme { border-left: 3px solid #dc3545; padding-left: .5rem; }
.operazione details summary { cursor: pointer; color: var(--primario); }
.dettaglio-modifica { border-top: 1px dashed var(--bordo); padding-top: .4rem; margin-top: .4rem; }
.tabella-campi { font-size: .85em; max-width: 760px; }
.tabella-campi td, .tabella-campi th { padding: .15rem .4rem; }
.tabella-campi td:first-child { width: 32%; }
.valore-prima { color: #9b2c2c; text-decoration: line-through; text-decoration-color: rgba(155, 44, 44, .45); }
.valore-dopo { color: #1d5a14; font-weight: 600; }


/* Accessibilità: grigio dei pulsanti secondari più scuro (contrasto almeno 4,5:1 sullo sfondo) */
.btn-outline-secondary { --bs-btn-color: #50575e; --bs-btn-border-color: #6c757d; --bs-btn-hover-bg: #50575e; --bs-btn-hover-border-color: #50575e; }
.text-muted, .form-text { color: #5c636a !important; }
.table-responsive, th { position: relative; }

/* Telefono: pulsanti e campi alti almeno 44px, comodi da toccare anche in campo */
@media (max-width: 768px) {
  main .btn, main .form-control, main .form-select { min-height: 44px; }
  main .btn { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; }
  main .form-control-sm, main .form-select-sm { min-height: 40px; }
  .scheda-presenza a.fw-semibold { display: inline-block; padding: 8px 0; }
}

/* Telefono: le righe di fattura e carico diventano schede, un campo sotto l'altro con la sua etichetta */
@media (max-width: 768px) {
  .tabella-maschera thead { display: none; }
  .tabella-maschera, .tabella-maschera tbody { display: block; width: 100%; min-width: 0 !important; }
  .tabella-maschera .input-group { width: 100% !important; }
  .tabella-maschera tr { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; padding: 12px; }
  .tabella-maschera tbody + tbody tr:first-child, .tabella-maschera tr.riga-carico + tr.riga-carico { border-top: 2px solid var(--bordo, #dcddd9); }
  .tabella-maschera td { display: block; border: 0; padding: 0 !important; min-width: 0 !important; width: auto !important; }
  .tabella-maschera td.pieno { grid-column: 1 / -1; }
  .tabella-maschera td[data-etichetta]::before { content: attr(data-etichetta); display: block; font-size: 12px; font-weight: 600; color: #5c636a; margin-bottom: 3px; }
  .tabella-maschera td:last-child:not([data-etichetta]) { grid-column: 1 / -1; text-align: right; }
  .tabella-maschera td:empty { display: none; }
  .tabella-maschera .calcolato, .tabella-maschera .out-netto { font-size: 1.05rem; }
}
