/* ==========================================================================
   ADM, ambiti disciplinari (griglia, ricerca, pagina dell'ambito).
   ========================================================================== */

.ambx-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px 40px; flex-wrap: wrap; }
.ambx-title { display: flex; gap: 22px; align-items: center; }
.ambx-title-img { flex: none; width: 88px; height: 88px; object-fit: contain; padding: 8px; border: 1.5px solid var(--ink); background: #fff; }
.lang-switch { display: inline-flex; border: 1.5px solid var(--ink); border-radius: 4px; overflow: hidden; background: #fff; }
.lang-switch a { padding: 8px 14px; color: var(--ink); font-family: var(--f-display); font-size: 14px; font-weight: 600; text-decoration: none; }
.lang-switch a + a { border-left: 1.5px solid var(--ink); }
.lang-switch a[aria-current] { background: var(--ink); color: #fff; }
.ambx-body { padding: 40px 0 24px; }
.ambx-note { color: var(--muted); }
.ambx-h2 { margin: 0 0 8px; padding-bottom: 8px; border-bottom: 1.5px solid var(--ink); font-size: 1.4rem; font-weight: 700; }

/* Griglia */
.ambx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.ambx-card { display: flex; gap: 16px; align-items: center; height: 100%; padding: 20px; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: #fff; color: inherit; text-decoration: none; transition: background-color .15s; }
.ambx-card:hover { background: var(--teal-soft); color: inherit; }
.ambx-img { flex: none; display: grid; place-items: center; width: 64px; height: 64px; }
.ambx-img img { width: 100%; height: 100%; object-fit: contain; }
.ambx-img i { font-size: 32px; color: var(--teal-dark); }
.ambx-card-text b { display: block; font-family: var(--f-display); font-size: 17px; line-height: 1.25; color: var(--ink); }
.ambx-card-text small { display: block; margin-top: 4px; color: var(--muted); font-size: 14px; font-variant-numeric: tabular-nums; }

/* Ricerca */
.ambx-search { margin-bottom: 32px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.ambx-search summary { display: flex; align-items: center; gap: 10px; padding: 16px 20px; cursor: pointer; font-family: var(--f-display); font-weight: 600; color: var(--ink); }
.ambx-search summary span { margin-left: auto; color: var(--muted); font-family: var(--f-text); font-weight: 400; font-size: 14px; }
.ambx-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 18px; padding: 4px 20px 20px; }
.ambx-form label { margin: 0; }
.ambx-form label span { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 600; color: var(--ink); }
.ambx-form input, .ambx-form select { width: 100%; padding: 9px 11px; border: 1.5px solid var(--line); border-radius: 4px; background: #fff; font: inherit; font-size: 15px; }
.ambx-form input:focus, .ambx-form select:focus { outline: none; border-color: var(--teal); box-shadow: 0 0 0 3px var(--teal-soft); }
.ambx-form-actions { grid-column: 1 / -1; display: flex; gap: 16px; align-items: center; }
.ambx-form-actions a { font-weight: 600; }

/* Pubblicazioni */
.pubx-list { list-style: none; margin: 0; padding: 0; }
.pubx { max-width: 900px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.pubx-meta { display: flex; gap: 14px; margin: 0 0 4px; font-size: 14px; color: var(--muted); }
.pubx-meta span:first-child { color: var(--teal-dark); font-weight: 600; }
.pubx-title { margin: 0 0 4px; font-size: 1.1rem; font-weight: 700; line-height: 1.35; }
.pubx-title a { color: var(--ink); text-decoration: none; }
.pubx-title a:hover { color: var(--teal-dark); text-decoration: underline; text-underline-offset: 3px; }
.pubx-title .bi { font-size: 12px; color: var(--graphite); }
.pubx-authors, .pubx-source { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.pubx-fields { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.pubx-fields a { padding: 2px 10px; border-radius: 999px; background: var(--teal-soft); color: var(--teal-dark); font-size: 13px; font-weight: 600; text-decoration: none; }
.pubx-fields a:hover { background: var(--teal-dark); color: #fff; }
.pubx-abstract { margin-top: 8px; font-size: 15px; }
.pubx-abstract summary { width: max-content; color: var(--teal-dark); font-weight: 600; cursor: pointer; }
.pubx-abstract p { margin: 8px 0 0; padding-left: 14px; border-left: 2px solid var(--teal); line-height: 1.6; }
.pubx-kw { border: 0 !important; padding-left: 14px !important; color: var(--muted); }

.ambx-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; max-width: 900px; margin-top: 28px; font-family: var(--f-display); }
.ambx-pager > a { font-weight: 600; text-decoration: none; }
.ambx-pager ol { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.ambx-pager li a, .ambx-pager li span { display: grid; place-items: center; min-width: 38px; height: 38px; padding: 0 8px; border: 1px solid var(--line); border-radius: 4px; color: var(--ink); text-decoration: none; }
.ambx-pager li span[aria-current] { background: var(--ink); border-color: var(--ink); color: #fff; }
.ambx-pager .gap { align-self: center; color: var(--muted); }

/* Pagina dell'ambito */
.ambx-tabs { display: flex; flex-wrap: wrap; margin-top: 28px; margin-bottom: -44px; border-bottom: 1.5px solid var(--ink); }
.ambx-tabs a { display: inline-flex; gap: 6px; align-items: center; margin-bottom: -1.5px; padding: 10px 15px; border: 1.5px solid transparent; border-bottom: 0; border-radius: 4px 4px 0 0; color: var(--ink); font-family: var(--f-display); font-weight: 600; text-decoration: none; }
.ambx-tabs a span { padding: 0 7px; border-radius: 999px; background: var(--paper); color: var(--muted); font-size: 12px; }
.ambx-tabs a:hover { color: var(--teal-dark); }
.ambx-tabs a[aria-current] { border-color: var(--ink); background: #fff; }
.ambx-prose { max-width: 75ch; }
.ambx-group + .ambx-group { margin-top: 32px; }
.ambx-group h2 { margin: 0 0 6px; padding-bottom: 6px; border-bottom: 1.5px solid var(--ink); font-size: 1.15rem; font-weight: 700; }
.ambx-items { list-style: none; margin: 0; padding: 0; }
.ambx-items li { padding: 14px 0; border-bottom: 1px solid var(--line); }
.ambx-items h3 { margin: 0 0 6px; font-size: 1.05rem; font-weight: 700; }
.ambx-items h3 a { color: var(--ink); }
.ambx-items h3 .bi { font-size: 12px; color: var(--graphite); }
.ambx-item-meta { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; font-size: 15px; }
.ambx-item-meta small { color: var(--muted); font-size: 13px; }
.ambx-item-text { margin: 0; max-width: 75ch; color: var(--text); }
.ambx-other { margin-top: 56px; padding-top: 20px; border-top: 1px solid var(--line); }
.ambx-other h2 { margin: 0 0 10px; font-size: 1rem; font-weight: 700; color: var(--muted); }
.ambx-other ul { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.ambx-other a { display: inline-block; padding: 4px 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); font-size: 14px; text-decoration: none; }
.ambx-other a:hover { border-color: var(--ink); }

@media (max-width: 991.98px) {
  .ambx-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .ambx-form { grid-template-columns: minmax(0, 1fr); }
  .ambx-title { flex-direction: column; align-items: flex-start; gap: 12px; }
  .ambx-title-img { width: 64px; height: 64px; }
  .ambx-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .ambx-tabs a { flex: none; }
  .ambx-pager { justify-content: center; }
}

/* Area soci: classificazione e schede del referente */
.ambx-filter { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.ambx-filter a { padding: 6px 14px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: 14px; font-weight: 600; text-decoration: none; }
.ambx-filter a[aria-current] { background: var(--ink); border-color: var(--ink); color: #fff; }
.ambx-mine .pubx { scroll-margin-top: calc(var(--header-h) + 20px); }
.ambx-mine .pubx.is-todo .pubx-meta span:first-child { color: #b7791f; }
.ambx-assign { margin-top: 10px; }
.ambx-assign summary { width: max-content; max-width: 100%; color: var(--teal-dark); font-weight: 600; cursor: pointer; }
.ambx-assign form { margin-top: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); }
.ambx-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 6px 20px; margin-bottom: 14px; }
.ambx-checks label { display: flex; gap: 8px; align-items: flex-start; font-size: 15px; line-height: 1.35; }
.ambx-checks input { flex: none; width: 17px; height: 17px; margin-top: 2px; accent-color: var(--teal-dark); }
.ambx-listhead { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.ambx-listhead .area-note { margin: 0; }
.ambx-chip { padding: 1px 9px; border-radius: 999px; background: var(--teal-soft); color: var(--teal-dark); font-size: 13px; font-weight: 600; }
.ambx-delete { margin-top: 16px; }
.area-field textarea { width: 100%; padding: 10px 12px; border: 1.5px solid var(--line); border-radius: 4px; font: inherit; font-size: 16px; }

/* Schede collegate all'ambito: insegnamenti, laboratori, master, spin-off */
.sch-toolbar { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; margin-bottom: 22px; }
.sch-toolbar > p { margin: 0; color: var(--muted); font-size: 15px; }
.sch-filter { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; margin: 0; }
.sch-filter label { margin: 0; font-family: var(--f-display); font-size: 14px; font-weight: 600; color: var(--ink); }
.sch-filter select { min-width: 280px; max-width: 100%; padding: 9px 36px 9px 12px; border: 1.5px solid var(--ink); border-radius: 4px; background: #fff; font: inherit; font-size: 15px; color: var(--ink); }
.sch-filter select:focus { outline: none; box-shadow: 0 0 0 3px var(--teal-soft); }
.sch-filter-go { padding: 9px 16px; font-size: 14px; }
/* Con JavaScript attivo la scelta si applica subito, senza pulsante. */
.js .sch-filter-go { display: none; }
.sch-toolbar { justify-content: space-between; }
.sch-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 16px; }
.sch-card { display: flex; flex-direction: column; padding: 20px 22px; border: 1px solid var(--line); border-top: 3px solid var(--teal); border-radius: 6px; background: #fff; }
.sch-uni { display: flex; gap: 6px; align-items: baseline; margin: 0 0 6px; color: var(--teal-dark); font-family: var(--f-display); font-size: 13px; font-weight: 600; }
.sch-card h3 { margin: 0 0 14px; font-size: 1.15rem; font-weight: 700; line-height: 1.3; color: var(--ink); }
/* Dati dell'insegnamento come celle di un cartiglio */
.sch-specs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--ink); border-left: 1px solid var(--line); }
.sch-specs > div { padding: 7px 10px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sch-specs > div.is-wide { grid-column: 1 / -1; }
.sch-specs dt { font-size: 11px; font-weight: 500; color: var(--muted); line-height: 1.2; }
.sch-specs dd { margin: 2px 0 0; font-family: var(--f-display); font-size: 15px; font-weight: 600; color: var(--ink); line-height: 1.3; }
.sch-text { margin: 0; color: var(--text); font-size: 15px; line-height: 1.6; }
.sch-more { margin-top: 6px; }
.sch-more summary { width: max-content; color: var(--teal-dark); font-size: 14px; font-weight: 600; cursor: pointer; }
.sch-card:has(.sch-more[open]) > .sch-text { display: none; }
.sch-more p { margin-top: 8px; }
.sch-foot { margin-top: auto; padding-top: 14px; }
.sch-link { display: inline-flex; gap: 6px; align-items: center; font-weight: 600; font-size: 15px; }
.sch-link .bi { font-size: 12px; }
.sch-also { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
.sch-also label { margin: 0; color: var(--muted); font-size: 13px; }
.sch-also select { flex: 1 1 200px; min-width: 0; padding: 6px 30px 6px 10px; border: 1px solid var(--line-strong, #cbd3db); border-radius: 4px; background: #fff; font: inherit; font-size: 14px; color: var(--ink); }
.sch-also select:focus { outline: none; border-color: var(--teal); box-shadow: 0 0 0 3px var(--teal-soft); }
.sch-also .sch-filter-go { padding: 6px 12px; font-size: 13px; }
@media (max-width: 575.98px) {
  .sch-filter, .sch-filter select { width: 100%; min-width: 0; }
  .sch-grid { grid-template-columns: minmax(0, 1fr); }
  .sch-card { padding: 16px; }
  .sch-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Area soci: riquadri delle voci del referente */
.sch-fields { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 14px; }
.sch-actions { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding-top: 12px; border-top: 1px solid var(--line); }
.sch-actions .btn-adm { padding: 8px 14px; font-size: 14px; }
