/* =========================================================================
   Tema HubLEM (ADR-260)
   Riprende l'aspetto del gestionale HubLEM in uso: testo in maiuscolo e in
   grassetto, sfondo grigio chiaro, tendina chiara con il logo nero, pulsanti
   neri e bianchi molto arrotondati con ombra, campi arrotondati con bordo
   spesso, card arrotondate, badge a pillola e schede grigie a segmenti.
   Caricato dopo Bootstrap e app.css: sovrascrive solo l'aspetto.
   ========================================================================= */

/* Carattere dell'applicazione: Inter (ADR-266), variabile 100-900, incluso
   nel gestionale (licenza SIL OFL in static/vendor/inter/4.1/). */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../vendor/inter/4.1/InterVariable.woff2") format("woff2");
}

:root {
  --hl-font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif,
             "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --hl-fg: #0a0a0a;
  --hl-heading: #111827;
  --hl-muted: #6b7280;
  --hl-muted-strong: #4b5563;
  --hl-border: #e5e5e5;
  --hl-border-strong: #e5e7eb;
  --hl-surface: #ffffff;
  --hl-page: #f9fafb;
  --hl-soft: #f3f4f6;
  --hl-black: #000000;
  --hl-black-soft: #171717;
  --hl-focus: #3b82f6;
  --hl-shadow-btn: 0 2px 8px -2px rgba(0, 0, 0, .12);
  --hl-shadow-btn-hover: 0 6px 16px -4px rgba(0, 0, 0, .2);
  --hl-shadow-card: 0 4px 12px -2px rgba(0, 0, 0, .08);
  --hl-shadow-card-hover: 0 12px 28px -4px rgba(0, 0, 0, .15);

  --app-sidebar-width: 16rem;
  --app-navbar-height: 4.3rem;

  --bs-body-font-family: var(--hl-font);
  --bs-body-color: var(--hl-fg);
  --bs-body-color-rgb: 10, 10, 10;
  --bs-emphasis-color: var(--hl-fg);
  --bs-secondary-color: var(--hl-muted);
  --bs-tertiary-bg: var(--hl-page);
  --bs-border-color: var(--hl-border);
  --bs-border-radius: .75rem;
  --bs-border-radius-sm: .5rem;
  --bs-border-radius-lg: 1rem;
  --bs-border-radius-xl: 1.5rem;
  --bs-primary: var(--hl-black-soft);
  --bs-primary-rgb: 23, 23, 23;
  --bs-primary-bg-subtle: var(--hl-soft);
  --bs-primary-text-emphasis: var(--hl-fg);
  --bs-link-color: #2563eb;
  --bs-link-color-rgb: 37, 99, 235;
  --bs-link-hover-color: #1d4ed8;
  --bs-link-hover-color-rgb: 29, 78, 216;
  --bs-focus-ring-color: rgba(59, 130, 246, .25);
}

/* --- Testo: maiuscolo e grassetto come HubLEM ----------------------------- */
body.app-body,
body.app-body * {
  text-transform: uppercase;
}
/* Dati tecnici e testi che devono restare come sono. */
body.app-body :is(code, pre, kbd, samp, .audit-json, .font-monospace, .text-none, .text-none *) {
  text-transform: none;
}
body.app-body {
  font-family: var(--hl-font);
  font-feature-settings: "cv11", "ss01";
  color: var(--hl-fg);
  background-color: var(--hl-surface);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
/* Cifre della stessa larghezza: importi e quantita' allineati in colonna. */
body.app-body :is(table, .hub-stat__value, .metric-card__value) { font-variant-numeric: tabular-nums; }
body.app-body :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .fw-semibold, .fw-bold) {
  font-weight: 700;
  letter-spacing: .025em;
  color: var(--hl-heading);
}
body.app-body .text-body-secondary,
body.app-body .text-muted { color: var(--hl-muted) !important; }

/* --- Struttura ------------------------------------------------------------ */
.app-content { background-color: var(--hl-page); }
.app-footer { background-color: var(--hl-surface); border-top-color: var(--hl-border-strong); }

/* Titolo della pagina: text-3xl font-bold text-gray-900 + sottotitolo grigio. */
.app-page-header { margin-bottom: 1.5rem !important; }
.app-page-title {
  font-size: 1.875rem;
  line-height: 2.25rem;
  font-weight: 700;
  letter-spacing: .025em;
  color: var(--hl-heading);
  margin: 0;
}
.app-page-header .small,
.app-page-header .text-body-secondary { color: #4b5563 !important; font-size: .875rem; margin-top: .25rem; }
.breadcrumb { font-size: .75rem; font-weight: 600; --bs-breadcrumb-divider-color: #9ca3af; }
.breadcrumb a { color: var(--hl-muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--hl-fg); }

/* --- Tendina: chiara, logo nero, gruppi piccoli in grigio ----------------- */
.app-sidebar {
  width: var(--app-sidebar-width);
  background: linear-gradient(180deg, #ffffff 0%, #f9fafb 100%);
  color: #3f3f46;
  border-right: 1px solid var(--hl-border-strong);
}
.app-sidebar__brand {
  height: auto;
  padding: 1.5rem;
  border-bottom: 1px solid var(--hl-border-strong);
}
.app-sidebar__brand a { color: var(--hl-heading); }
.app-sidebar__brand a:hover { opacity: .8; }
.app-sidebar__logo {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: .5rem;
  background: var(--hl-black);
  color: #fff;
  font-size: 1.35rem;
}
.app-sidebar__title { font-weight: 700; font-size: 1rem; line-height: 1.25; color: var(--hl-heading); display: block; }
.app-sidebar__subtitle { display: block; font-size: .75rem; color: var(--hl-muted); font-weight: 400; }
.app-sidebar__brand .btn { box-shadow: none; }

.app-sidebar__company { padding: .85rem 1.25rem .25rem; }
.app-sidebar__company .fw-semibold { color: var(--hl-heading); font-size: .85rem; }

.app-sidebar__search {
  margin: .5rem .75rem .75rem;
  border: 2px solid var(--hl-border);
  border-radius: .75rem;
  background: #fff;
  color: var(--hl-muted);
}
.app-sidebar__search:focus-within { border-color: var(--hl-focus); box-shadow: 0 0 0 3px rgba(59, 130, 246, .1); }
.app-sidebar__search input { color: var(--hl-fg); font-weight: 600; }
.app-sidebar__search input::placeholder { color: #9ca3af; }
.app-sidebar__search button { color: var(--hl-muted); }
.app-sidebar__search kbd { background: var(--hl-soft); color: var(--hl-muted); }

.app-sidebar__nav { padding: .25rem .5rem .75rem; scrollbar-color: #d1d5db transparent; }

.app-sidebar__eyebrow {
  color: var(--hl-muted-strong);
  font-size: .625rem;
  font-weight: 700;
  letter-spacing: .05em;
  margin-bottom: .25rem;
}
.app-sidebar__home { border-bottom: 0; padding-bottom: .25rem; margin-bottom: .25rem; }
.app-sidebar__home > .app-sidebar__eyebrow { padding: .375rem .75rem; }

.app-sidebar__section { margin: 0 0 .25rem; }
.app-sidebar__section > summary {
  color: var(--hl-muted-strong);
  font-size: .625rem;
  font-weight: 700;
  letter-spacing: .05em;
  padding: .375rem .75rem;
  border-radius: .375rem;
  gap: .5rem;
}
.app-sidebar__section > summary > i:first-child { display: none; }
.app-sidebar__section > summary:hover { background: #f9fafb; }
.app-sidebar__section[open] > summary,
.app-sidebar__section.is-current > summary { color: var(--hl-fg); }
.app-sidebar__chevron { font-size: .6rem; color: var(--hl-muted); }
.app-sidebar__section > ul { border-left: 0; margin: .25rem 0 .5rem; padding-left: 0; }

.app-sidebar .nav-link {
  color: #3f3f46;
  font-size: .875rem;
  font-weight: 500;
  padding: .5rem .75rem;
  border-radius: .5rem;
  margin: 0 0 .25rem;
  gap: .75rem;
  align-items: center;
  transition: background-color .2s ease;
}
.app-sidebar .nav-link i { width: 1rem; font-size: 1rem; opacity: 1; color: #3f3f46; }
.app-sidebar .nav-link:hover { background-color: var(--hl-soft); color: var(--hl-fg); }
.app-sidebar .nav-link.active {
  background-color: var(--hl-soft);
  color: var(--hl-fg);
  box-shadow: none;
  font-weight: 700;
}
.app-sidebar .nav-link.active i { color: var(--hl-fg); }
.app-sidebar :is(a, button, summary):focus-visible { outline: 2px solid var(--hl-focus); outline-offset: -2px; }
.app-sidebar__empty { color: var(--hl-muted); }

.app-sidebar__footer {
  padding: 1rem;
  border-top: 1px solid var(--hl-border-strong);
  color: var(--hl-muted);
}
.app-sidebar__user { display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem; min-width: 0; }
.app-sidebar__user-avatar {
  width: 2rem; height: 2rem; border-radius: 50%; background: #111827; color: #fff;
  display: inline-flex; align-items: center; justify-content: center; font-weight: 500; font-size: .85rem; flex-shrink: 0;
}
.app-sidebar__user-name { font-weight: 500; color: var(--hl-heading); font-size: .875rem; }
.app-sidebar__user-mail { font-size: .75rem; color: var(--hl-muted); }
.app-sidebar__logout {
  width: 100%;
  color: #dc2626 !important;
  border: 1px solid #fecaca !important;
  background: #fff !important;
}
.app-sidebar__logout:hover { background: #fef2f2 !important; color: #b91c1c !important; }

/* --- Barra in alto: bianca, titolo «HUB AZIENDALE» ------------------------- */
.app-navbar {
  height: var(--app-navbar-height);
  padding: 1rem 1.5rem;
  background-color: #fff;
  border-bottom: 1px solid var(--hl-border-strong);
}
.app-navbar__title {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: .025em;
  color: var(--hl-heading);
  text-decoration: none;
  margin: 0;
}
.app-navbar__title:hover { opacity: .8; color: var(--hl-heading); }
.app-avatar { background-color: #111827; }

/* --- Pulsanti: arrotondati, grassetto, ombra, sollevati al passaggio ------ */
.btn {
  --bs-btn-font-weight: 700;
  --bs-btn-font-size: .875rem;
  --bs-btn-padding-y: .5rem;
  --bs-btn-padding-x: 1rem;
  --bs-btn-border-radius: 1rem;
  min-height: 2.25rem;
  box-shadow: var(--hl-shadow-btn);
  transition: transform .2s cubic-bezier(.4, 0, .2, 1), box-shadow .2s cubic-bezier(.4, 0, .2, 1),
              background-color .2s ease, color .2s ease, border-color .2s ease;
}
.btn:hover:not(:disabled):not(.disabled) { transform: translateY(-2px); box-shadow: var(--hl-shadow-btn-hover); }
.btn:active:not(:disabled) { transform: translateY(0); }
.btn-sm { --bs-btn-padding-y: .3rem; --bs-btn-padding-x: .75rem; --bs-btn-font-size: .75rem; --bs-btn-border-radius: .75rem; min-height: 2rem; }
.btn-lg { --bs-btn-border-radius: 1rem; min-height: 2.75rem; }
.btn-link { box-shadow: none; text-decoration: none; }
.btn-link:hover:not(:disabled) { transform: none; box-shadow: none; }
.btn-close { box-shadow: none; min-height: 0; }

.btn-primary, .btn-dark {
  --bs-btn-color: #fff; --bs-btn-bg: #000; --bs-btn-border-color: #000;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #262626; --bs-btn-hover-border-color: #262626;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #171717; --bs-btn-active-border-color: #171717;
  --bs-btn-disabled-bg: #525252; --bs-btn-disabled-border-color: #525252;
}
.btn-secondary, .btn-light {
  --bs-btn-color: var(--hl-black-soft); --bs-btn-bg: #f5f5f5; --bs-btn-border-color: #f5f5f5;
  --bs-btn-hover-color: var(--hl-black-soft); --bs-btn-hover-bg: #e5e5e5; --bs-btn-hover-border-color: #e5e5e5;
  --bs-btn-active-bg: #e5e5e5; --bs-btn-active-border-color: #e5e5e5; --bs-btn-active-color: var(--hl-black-soft);
}
.btn-outline-primary, .btn-outline-secondary, .btn-outline-dark {
  --bs-btn-color: var(--hl-fg); --bs-btn-bg: #fff; --bs-btn-border-color: var(--hl-border);
  --bs-btn-hover-color: var(--hl-fg); --bs-btn-hover-bg: #f5f5f5; --bs-btn-hover-border-color: var(--hl-border);
  --bs-btn-active-color: var(--hl-fg); --bs-btn-active-bg: #f5f5f5; --bs-btn-active-border-color: #d4d4d4;
  --bs-btn-disabled-color: #a3a3a3; --bs-btn-disabled-bg: #fff; --bs-btn-disabled-border-color: var(--hl-border);
}
.btn-success {
  --bs-btn-bg: #16a34a; --bs-btn-border-color: #16a34a; --bs-btn-hover-bg: #15803d; --bs-btn-hover-border-color: #15803d;
  --bs-btn-active-bg: #166534; --bs-btn-active-border-color: #166534;
}
.btn-danger {
  --bs-btn-bg: #dc2626; --bs-btn-border-color: #dc2626; --bs-btn-hover-bg: #b91c1c; --bs-btn-hover-border-color: #b91c1c;
  --bs-btn-active-bg: #991b1b; --bs-btn-active-border-color: #991b1b;
}
.btn-warning {
  --bs-btn-color: #fff; --bs-btn-bg: #ea580c; --bs-btn-border-color: #ea580c; --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #c2410c; --bs-btn-hover-border-color: #c2410c;
}
.btn-outline-danger {
  --bs-btn-color: #dc2626; --bs-btn-bg: #fff; --bs-btn-border-color: #fecaca;
  --bs-btn-hover-color: #b91c1c; --bs-btn-hover-bg: #fef2f2; --bs-btn-hover-border-color: #fecaca;
}
.btn-outline-success {
  --bs-btn-color: #16a34a; --bs-btn-bg: #fff; --bs-btn-border-color: #bbf7d0;
  --bs-btn-hover-color: #15803d; --bs-btn-hover-bg: #f0fdf4; --bs-btn-hover-border-color: #bbf7d0;
}
.btn-outline-warning {
  --bs-btn-color: #c2410c; --bs-btn-bg: #fff; --bs-btn-border-color: #fed7aa;
  --bs-btn-hover-color: #9a3412; --bs-btn-hover-bg: #fff7ed; --bs-btn-hover-border-color: #fed7aa;
}
.btn-outline-info {
  --bs-btn-color: #2563eb; --bs-btn-bg: #eff6ff; --bs-btn-border-color: #bfdbfe;
  --bs-btn-hover-color: #1d4ed8; --bs-btn-hover-bg: #dbeafe; --bs-btn-hover-border-color: #bfdbfe;
}

/* --- Campi: arrotondati, bordo spesso, testo in grassetto ----------------- */
.form-control, .form-select {
  border: 2px solid var(--hl-border);
  border-radius: .75rem;
  font-weight: 600;
  min-height: 2.25rem;
  font-size: .875rem;
  color: var(--hl-fg);
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);
}
.form-control:focus, .form-select:focus {
  border-color: var(--hl-focus);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .1);
}
.form-control-sm, .form-select-sm { border-radius: .6rem; min-height: 2rem; }
.form-control::placeholder { color: #9ca3af; font-weight: 500; }
.form-label, .col-form-label { font-weight: 700; font-size: .8rem; color: #374151; margin-bottom: .35rem; }
.form-text { color: var(--hl-muted); font-size: .75rem; }
.form-check-input { border: 2px solid #d4d4d4; }
.form-check-input:checked { background-color: #000; border-color: #000; }
.form-check-input:focus { border-color: var(--hl-focus); box-shadow: 0 0 0 3px rgba(59, 130, 246, .1); }
.form-check-label { font-weight: 600; font-size: .875rem; }
.input-group-text { border: 2px solid var(--hl-border); border-radius: .75rem; background: var(--hl-soft); font-weight: 700; }
.invalid-feedback { font-weight: 600; }

/* --- Card: molto arrotondate, bordo doppio, ombra leggera ----------------- */
.card {
  --bs-card-border-width: 2px;
  --bs-card-border-color: var(--hl-border-strong);
  --bs-card-border-radius: 1.5rem;
  --bs-card-inner-border-radius: calc(1.5rem - 2px);
  --bs-card-cap-bg: transparent;
  --bs-card-cap-padding-y: 1rem;
  --bs-card-cap-padding-x: 1.25rem;
  --bs-card-spacer-y: 1.25rem;
  --bs-card-spacer-x: 1.25rem;
  box-shadow: var(--hl-shadow-card);
  overflow: hidden;
}
.card-header { font-weight: 700; color: var(--hl-heading); border-bottom: 1px solid var(--hl-border-strong); }
.card-footer { background: #fafafa; border-top: 1px solid var(--hl-border-strong); }
a.card { transition: transform .3s cubic-bezier(.4, 0, .2, 1), box-shadow .3s cubic-bezier(.4, 0, .2, 1); }
a.card:hover { transform: translateY(-4px); box-shadow: var(--hl-shadow-card-hover); }
.card.border-primary { --bs-card-border-color: #bfdbfe; }

/* --- Tabelle: testo piccolo, intestazioni grigie, righe con bordo --------- */
.table {
  --bs-table-bg: transparent;
  --bs-table-hover-bg: #f9fafb;
  --bs-table-striped-bg: #fafafa;
  --bs-table-border-color: var(--hl-border-strong);
  font-size: .875rem;
  margin-bottom: 0;
}
.table > :not(caption) > * > * { padding: .75rem .75rem; }
.table > thead > tr > th, .table > thead th {
  color: #737373;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .03em;
  background: #fafafa;
  border-bottom: 1px solid var(--hl-border-strong);
  white-space: nowrap;
}
.table-hover > tbody > tr:hover > * { --bs-table-bg-state: #f9fafb; }
.table-responsive { border-radius: inherit; }

/* --- Badge a pillola, colori tenui come HubLEM ----------------------------- */
.badge {
  --bs-badge-font-size: .72rem;
  --bs-badge-font-weight: 700;
  --bs-badge-padding-y: .3rem;
  --bs-badge-padding-x: .65rem;
  border-radius: 9999px;
  letter-spacing: .02em;
}
.text-bg-primary, .text-bg-dark { background-color: #171717 !important; color: #fafafa !important; }
.text-bg-secondary { background-color: #f3f4f6 !important; color: #374151 !important; }
.text-bg-success { background-color: #dcfce7 !important; color: #166534 !important; }
.text-bg-danger { background-color: #fee2e2 !important; color: #991b1b !important; }
.text-bg-warning { background-color: #fef3c7 !important; color: #92400e !important; }
.text-bg-info { background-color: #dbeafe !important; color: #1e40af !important; }
.text-bg-light { background-color: #f9fafb !important; color: #374151 !important; border: 1px solid var(--hl-border-strong); }
.badge.rounded-pill.text-bg-danger { background-color: #dc2626 !important; color: #fff !important; }

/* --- Schede e pillole: barra grigia a segmenti, attiva bianca -------------- */
.nav-tabs, .nav-pills {
  background: var(--hl-soft);
  border: 0;
  border-radius: .75rem;
  padding: .25rem;
  gap: .25rem;
}
.nav-tabs .nav-link, .nav-pills .nav-link {
  border: 0;
  border-radius: .75rem;
  color: var(--hl-muted-strong);
  font-weight: 700;
  font-size: .75rem;
  padding: .55rem .9rem;
}
.nav-tabs .nav-link:hover, .nav-pills .nav-link:hover { color: var(--hl-fg); background: rgba(255, 255, 255, .6); }
.nav-tabs .nav-link.active, .nav-pills .nav-link.active, .nav-pills .show > .nav-link {
  background: #fff;
  color: var(--hl-fg);
  box-shadow: var(--hl-shadow-btn);
}

/* --- Avvisi, menu, finestre, paginazione ----------------------------------- */
.alert { border-width: 2px; border-radius: 1rem; font-weight: 600; font-size: .875rem; }
.alert-secondary { background: #f9fafb; border-color: var(--hl-border-strong); color: #374151; }
.alert-info { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }
.alert-success { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.alert-warning { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.alert-danger { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.dropdown-menu {
  border: 1px solid var(--hl-border-strong);
  border-radius: 1rem;
  box-shadow: 0 12px 28px -4px rgba(0, 0, 0, .15);
  padding: .4rem;
  font-size: .875rem;
}
.dropdown-item { border-radius: .6rem; font-weight: 600; padding: .45rem .75rem; }
.dropdown-item.active, .dropdown-item:active { background: var(--hl-soft); color: var(--hl-fg); }
.modal-content { border: 0; border-radius: 1.5rem; }
.pagination { --bs-pagination-border-radius: .75rem; gap: .25rem; }
.page-link { border-radius: .75rem !important; border: 2px solid var(--hl-border); color: var(--hl-fg); font-weight: 700; font-size: .8rem; }
.page-item.active .page-link { background: #000; border-color: #000; color: #fff; }
.list-group { --bs-list-group-border-radius: 1rem; --bs-list-group-border-color: var(--hl-border-strong); }
.progress { border-radius: 9999px; background: var(--hl-soft); }

/* --- Card degli indicatori e pannelli di sezione -------------------------- */
.metric-card { border-radius: 1.5rem; }
.metric-card__value { font-weight: 700; }
.metric-card__label { font-weight: 700; font-size: .75rem; color: var(--hl-muted); }
.section-panel-card { border-radius: 1.5rem; }
.section-panel-card__icon { background: var(--hl-soft); color: var(--hl-fg); border-radius: .75rem; }

/* --- Pagine pubbliche (accesso) ------------------------------------------- */
.app-public { background: var(--hl-page); }
.login-card { border: 2px solid var(--hl-border-strong) !important; border-radius: 1.5rem; box-shadow: var(--hl-shadow-card-hover); }
.login-logo { background: #000; border-radius: .75rem; }

/* --- Schermi piccoli: come HubLEM, pulsanti comodi da toccare ------------- */
@media (max-width: 767.98px) {
  .app-navbar { padding: .75rem 1rem; height: auto; min-height: 3.75rem; }
  .app-navbar__title { font-size: 1rem; }
  .app-page-title { font-size: 1.5rem; line-height: 2rem; }
  .btn { min-height: 2.75rem; }
  .form-control, .form-select { font-size: 16px; }
  .card { --bs-card-border-radius: 1rem; --bs-card-inner-border-radius: calc(1rem - 2px); box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .1); }
}

@media print {
  body.app-body, body.app-body * { text-transform: none; }
  .card { box-shadow: none; }
}

/* =========================================================================
   Tendina leggibile e colori delle azioni (ADR-261)
   Sezioni piu' grandi e distanziate delle voci interne, voci rientrate con
   una linea guida; colori dei pulsanti come HubLEM: verde per confermare,
   rosso per eliminare, blu per le azioni operative, arancione per modificare.
   ========================================================================= */
:root { --app-sidebar-width: 17rem; }

.app-sidebar__nav { padding: .5rem .75rem 1rem; }
.app-sidebar__section { margin: 0; padding: .2rem 0; }
.app-sidebar__section + .app-sidebar__section { border-top: 1px solid #f1f2f4; }
.app-sidebar__section > summary {
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: #111827;
  padding: .7rem .75rem;
  border-radius: .6rem;
  line-height: 1.25;
}
.app-sidebar__section > summary:hover { background: var(--hl-soft); }
.app-sidebar__section[open] > summary,
.app-sidebar__section.is-current > summary { color: #000; background: #f9fafb; }
.app-sidebar__chevron { font-size: .7rem; color: #6b7280; }
.app-sidebar__section > ul {
  margin: .2rem 0 .6rem .95rem;
  padding-left: .55rem;
  border-left: 2px solid #eceef1;
}
.app-sidebar .nav-link {
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .02em;
  color: #4b5563;
  padding: .5rem .7rem;
  margin: 0 0 .2rem;
  line-height: 1.3;
}
.app-sidebar .nav-link i { font-size: .95rem; color: #6b7280; }
.app-sidebar .nav-link:hover { color: #0a0a0a; }
.app-sidebar .nav-link:hover i { color: #0a0a0a; }
.app-sidebar .nav-link.active { background: #111827; color: #fff; font-weight: 700; }
.app-sidebar .nav-link.active i { color: #fff; }
/* Panoramica e Le mie attivita' in cima: voci piene, etichetta come le sezioni. */
.app-sidebar__home { padding: .2rem 0 .5rem; margin-bottom: .3rem; border-bottom: 1px solid #f1f2f4; }
.app-sidebar__home > .app-sidebar__eyebrow { font-size: .82rem; font-weight: 700; letter-spacing: .04em; color: #111827; padding: .6rem .75rem .35rem; }
.app-sidebar__home .nav-link { font-size: .8rem; color: #374151; }

/* Pulsanti blu pieni per le azioni operative (blue-600 di HubLEM). */
.btn-info {
  --bs-btn-color: #fff; --bs-btn-bg: #2563eb; --bs-btn-border-color: #2563eb;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #1d4ed8; --bs-btn-hover-border-color: #1d4ed8;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #1e40af; --bs-btn-active-border-color: #1e40af;
}
.btn-success { --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff; }
.btn-danger { --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff; }
/* Riquadri evidenziati con i fondi tenui di HubLEM. */
.bg-success-subtle { background-color: #f0fdf4 !important; }
.bg-danger-subtle { background-color: #fef2f2 !important; }
.bg-warning-subtle { background-color: #fff7ed !important; }
.bg-info-subtle, .bg-primary-subtle { background-color: #eff6ff !important; }
.text-success { color: #16a34a !important; }
.text-danger { color: #dc2626 !important; }
.text-warning { color: #ea580c !important; }
.text-info { color: #2563eb !important; }

/* =========================================================================
   Tipografia della tendina (ADR-266)
   Con i pesi veri di Inter: titoli delle sezioni nitidi e voci leggibili.
   ========================================================================= */
.app-sidebar,
.app-sidebar .nav-link,
.app-sidebar__section > summary,
.app-sidebar__eyebrow,
.app-sidebar__search input,
.app-navbar__title {
  font-family: "Inter", var(--hl-font);
  font-feature-settings: "cv11", "ss01";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
.app-sidebar__section > summary,
.app-sidebar__home > .app-sidebar__eyebrow {
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: .06em;
  color: #111827;
}
.app-sidebar .nav-link { font-size: .74rem; font-weight: 500; letter-spacing: .03em; color: #4b5563; }
.app-sidebar .nav-link.active { font-weight: 600; }
.app-sidebar__home .nav-link { font-size: .78rem; font-weight: 500; }
.app-sidebar__title { font-weight: 700; letter-spacing: .03em; }
.app-navbar__title { font-weight: 700; letter-spacing: .04em; }
