/* ==========================================================
   Solstitium v36.2 — Dashboard refine safe
   Base: v36.1. Scope rigoroso: solo #dashboard.
   Obiettivo: togliere colonna bassa stretta, azioni hero in riga,
   status più pulito, eventi/prenotazioni più compatti.
   ========================================================== */

#dashboard .container {
  width: min(1180px, calc(100vw - 48px)) !important;
  max-width: 1180px !important;
}

/* Hero più basso e azioni rapide realmente in una riga su desktop. */
#dashboard .sol-service-hero {
  grid-template-columns: 260px minmax(0, 1fr) !important;
  min-height: 112px !important;
  padding: 14px 16px !important;
  gap: 14px !important;
}

#dashboard .sol-service-copy h2 {
  font-size: clamp(24px, 2vw, 31px) !important;
}

#dashboard .sol-service-copy p {
  font-size: 10px !important;
}

#dashboard .sol-service-actions {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 8px !important;
  align-items: stretch !important;
}

#dashboard .sol-action-card {
  min-height: 74px !important;
  padding: 8px 9px !important;
}

#dashboard .sol-action-card span {
  width: 22px !important;
  height: 22px !important;
  margin-bottom: 5px !important;
  font-size: 12px !important;
  border-radius: 8px !important;
}

#dashboard .sol-action-card strong {
  font-size: 10.2px !important;
  line-height: 1.08 !important;
}

#dashboard .sol-action-card small {
  margin-top: 3px !important;
  font-size: 8.4px !important;
  line-height: 1.15 !important;
}

/* Status live: diventa una striscia compatta, niente testo che spancia. */
#dashboard .status-grid {
  grid-template-columns: 1.05fr repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

#dashboard .status-card {
  min-height: 62px !important;
  padding: 9px 10px !important;
}

#dashboard .status-wide {
  min-height: 62px !important;
}

#dashboard .status-head {
  align-items: center !important;
  gap: 6px !important;
}

#dashboard .status-title {
  font-size: 10px !important;
  line-height: 1.05 !important;
  max-width: 74px !important;
}

#dashboard #status-badge {
  max-width: 58px !important;
  padding: 3px 6px !important;
  font-size: 8px !important;
}

#dashboard .status-desc {
  display: none !important;
}

#dashboard .status-value {
  font-size: 22px !important;
}

#dashboard .status-kicker,
#dashboard .status-sub {
  font-size: 8.8px !important;
}

/* KPI ancora più regolari. */
#dashboard .kpi-card,
#dashboard .sol-strip-card {
  min-height: 56px !important;
}

#dashboard .kpi-value,
#dashboard .sol-strip-card strong {
  font-size: 21px !important;
}

/* Pannelli eventi: niente scatole enormi quando vuote, scroll più civile quando pieni. */
#dashboard .panel-grid {
  gap: 10px !important;
}

#dashboard .panel {
  padding: 11px !important;
}

#dashboard .panel-body.empty {
  min-height: 66px !important;
}

#dashboard #box-eventi-oggi,
#dashboard #box-prossimi-eventi {
  max-height: 205px !important;
  scrollbar-width: thin !important;
  scrollbar-color: rgba(255, 222, 139, .5) rgba(0,0,0,.18) !important;
}

#dashboard #box-eventi-oggi::-webkit-scrollbar,
#dashboard #box-prossimi-eventi::-webkit-scrollbar,
#dashboard #box-prossime-pren::-webkit-scrollbar {
  width: 7px !important;
}

#dashboard #box-eventi-oggi::-webkit-scrollbar-track,
#dashboard #box-prossimi-eventi::-webkit-scrollbar-track,
#dashboard #box-prossime-pren::-webkit-scrollbar-track {
  background: rgba(0,0,0,.18) !important;
  border-radius: 999px !important;
}

#dashboard #box-eventi-oggi::-webkit-scrollbar-thumb,
#dashboard #box-prossimi-eventi::-webkit-scrollbar-thumb,
#dashboard #box-prossime-pren::-webkit-scrollbar-thumb {
  background: rgba(255, 222, 139, .46) !important;
  border-radius: 999px !important;
}

/* Riga bassa: area + prossime prenotazioni davvero in orizzontale. */
#dashboard .panel-grid:has(#contatori-area) {
  grid-template-columns: minmax(0, 1.5fr) minmax(300px, .8fr) !important;
  align-items: stretch !important;
}

#dashboard #contatori-area {
  width: 100% !important;
  min-width: 0 !important;
  align-self: stretch !important;
}

#dashboard #contatori-area > .sol-v34-area-grid,
#dashboard #contatori-area > .sol-v35-area-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

#dashboard #contatori-area .sol-v34-area-card,
#dashboard #contatori-area .sol-v35-area-card {
  min-width: 0 !important;
  min-height: 58px !important;
  padding: 8px !important;
  border-radius: 11px !important;
  display: grid !important;
  grid-template-columns: 1fr auto auto !important;
  grid-template-areas:
    "title title title"
    "left mid right" !important;
  gap: 4px 7px !important;
  align-items: end !important;
  overflow: hidden !important;
}

#dashboard #contatori-area .sol-v34-area-card > strong,
#dashboard #contatori-area .sol-v35-area-card > strong {
  grid-area: title !important;
  font-size: 9.6px !important;
  line-height: 1.05 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

#dashboard #contatori-area .sol-v34-area-card div,
#dashboard #contatori-area .sol-v35-area-card span,
#dashboard #contatori-area .sol-v35-area-card b {
  min-width: 0 !important;
}

#dashboard #contatori-area .sol-v34-area-card span,
#dashboard #contatori-area .sol-v35-area-card span {
  font-size: 7.8px !important;
  line-height: 1.05 !important;
}

#dashboard #contatori-area .sol-v34-area-card b,
#dashboard #contatori-area .sol-v35-area-card b {
  font-size: 16px !important;
  line-height: .95 !important;
}

#dashboard #contatori-area .sol-v34-area-total {
  grid-column: span 2 !important;
  min-height: 58px !important;
  padding: 8px 10px !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  align-items: center !important;
}

#dashboard #contatori-area .sol-v34-area-total span {
  font-size: 8px !important;
}

#dashboard #contatori-area .sol-v34-area-total b {
  font-size: 18px !important;
}

#dashboard #contatori-area > .sol-v35-empty,
#dashboard #contatori-area > .sol-v34-empty {
  width: 100% !important;
  min-height: 92px !important;
  display: grid !important;
  place-items: center !important;
  text-align: center !important;
}

#dashboard #box-prossime-pren {
  min-height: 118px !important;
  max-height: 205px !important;
  scrollbar-width: thin !important;
  scrollbar-color: rgba(255, 222, 139, .5) rgba(0,0,0,.18) !important;
}

#dashboard #box-prossime-pren.empty,
#dashboard #box-prossime-pren .sol-v35-empty,
#dashboard #box-prossime-pren .sol-v34-empty {
  min-height: 72px !important;
}

/* Data servizio più compatta e attaccata alla dashboard, non dispersa in fondo. */
#dashboard .sol-service-date-row,
#dashboard .date-row,
#dashboard .dashboard-date-row {
  min-height: 0 !important;
}

@media (max-width: 1180px) {
  #dashboard .sol-service-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  #dashboard .sol-service-hero {
    grid-template-columns: 250px minmax(0, 1fr) !important;
  }
}

@media (max-width: 900px) {
  #dashboard .sol-service-hero,
  #dashboard .panel-grid:has(#contatori-area) {
    grid-template-columns: 1fr !important;
  }

  #dashboard #contatori-area > .sol-v34-area-grid,
  #dashboard #contatori-area > .sol-v35-area-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  #dashboard .status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 620px) {
  #dashboard .container {
    width: calc(100vw - 20px) !important;
  }

  #dashboard .sol-service-actions,
  #dashboard #contatori-area > .sol-v34-area-grid,
  #dashboard #contatori-area > .sol-v35-area-grid,
  #dashboard .status-grid {
    grid-template-columns: 1fr !important;
  }
}
