:root { color-scheme: light dark; }
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
.container { max-width: 1100px; margin: 0 auto; padding: 16px; }

.topbar { border-bottom: 1px solid #ccc; }
.topbar-row { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.brand { font-weight: 800; letter-spacing: .2px; }

.nav { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.nav a { text-decoration: none; padding: 6px 10px; border-radius: 10px; border: 1px solid transparent; }
.nav a:hover { border-color: currentColor; }
.muted { opacity: .75; }

.searchbar { flex: 1; max-width: 420px; }
.searchbar input[type="search"] {
  width: 100%;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid #aaa;
}

.card { border: 1px solid #ccc; border-radius: 14px; padding: 16px; }
.form { display: grid; gap: 12px; max-width: 520px; }
label { display: grid; gap: 6px; }
input, select, button, textarea {
  padding: 10px;
  border-radius: 12px;
  border: 1px solid #aaa;
  font: inherit;
}
button { cursor: pointer; }
.alert { padding: 10px; border-radius: 12px; border: 1px solid #c33; }

.row { display: flex; gap: 10px; align-items: center; }

.table-wrap { overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { padding: 10px; border-bottom: 1px solid #ccc; text-align: left; vertical-align: top; }

.footer { padding-top: 28px; padding-bottom: 28px; }


/* TEMP PER AVATAR */
.avatar-block {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.avatar {
  border-radius: 50%;
  object-fit: cover;
}

.avatar-large {
  width: 96px;
  height: 96px;
  border: 1px solid #ddd;
}

/* === User menu dropdown (temporaneo) === */

.user-menu {
  position: relative;
  display: inline-block;
}

.user-menu-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: none;
  cursor: pointer;
}

.user-menu-toggle .avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
}

.user-menu-dropdown {
  display: none;
  position: absolute;
  right: 0;
  top: 110%;
  min-width: 180px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,.1);
  z-index: 100;
}

.user-menu-dropdown a {
  display: block;
  padding: 10px 12px;
  text-decoration: none;
  color: #333;
}

.user-menu-dropdown a:hover {
  background: #f5f5f5;
}

.user-menu-dropdown hr {
  margin: 6px 0;
  border: none;
  border-top: 1px solid #eee;
}

.user-menu:hover .user-menu-dropdown {
  display: block;
}

.privacy-box {
  margin: 12px 0;
  font-size: 0.95em;
}

.privacy-box input {
  margin-right: 6px;
}

.acf-button-group {
  display: flex;
  gap: 8px;
}

.acf-button-group button {
  padding: 8px 18px;
  border-radius: 6px;
  border: 1px solid #c3c4c7;
  background: #f6f7f7;
  color: #1d2327;
  cursor: pointer;
  font-weight: 500;
  transition: all .15s ease;
}

.acf-button-group button:hover {
  background: #e7f0fa;
  border-color: #2271b1;
}

.acf-button-group button.is-active {
  background: #2271b1;
  border-color: #2271b1;
  color: #fff;
}

tr.row-link {
  cursor: pointer;
}

tr.row-link:hover {
  background-color: #f5f7fa;
}

td.actions {
  white-space: nowrap;
}

.pagination { display:flex; align-items:center; gap:10px; margin-top:12px; }
.pagination .btn { text-decoration:none; padding:8px 12px; border:1px solid #ccc; border-radius:10px; }
.pagination-pages { display:flex; flex-wrap:wrap; align-items:center; }
.pagination-pages .page.current { font-weight:700; }

/* =====================================================
 * FLATPICKR – BASE (comune)
 * ===================================================== */

.flatpickr-calendar {
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0,0,0,.15);
  font-family: inherit;
}

.flatpickr-months {
  border-radius: 10px 10px 0 0;
}

.flatpickr-weekdays {
  padding: 6px 0;
}

.flatpickr-day {
  border-radius: 6px;
  margin: 1px;
}

/* range */
.flatpickr-day.inRange {
  background: rgba(79,124,255,.15);
}

/* =====================================================
 * FLATPICKR – DARK MODE
 * ===================================================== */
@media (prefers-color-scheme: dark) {

  /* struttura */
  .flatpickr-calendar,
  .flatpickr-innerContainer,
  .flatpickr-days,
  .dayContainer {
    background: #2b2f3a !important;
    color: #f1f1f1 !important;
    border-color: #3b3f4a !important;
  }

  /* header mesi */
  .flatpickr-months,
  .flatpickr-month,
  .flatpickr-current-month,
  .flatpickr-monthDropdown-months {
    background: #2b2f3a !important;
    color: #f1f1f1 !important;
  }

  /* frecce */
  .flatpickr-prev-month svg,
  .flatpickr-next-month svg {
    fill: #f1f1f1 !important;
  }

  /* giorni settimana */
  .flatpickr-weekdays {
    background: #2b2f3a;
  }

  .flatpickr-weekday {
    color: #cbd5e1 !important;
  }

  /* giorni */
  .flatpickr-day {
    color: #f1f1f1 !important;
    background: transparent;
  }

  .flatpickr-day.prevMonthDay,
  .flatpickr-day.nextMonthDay {
    color: #9ca3af !important;
  }

  /* hover */
  .flatpickr-day:hover {
    background: #3b3f4a;
  }

  /* selezione */
  .flatpickr-day.selected,
  .flatpickr-day.startRange,
  .flatpickr-day.endRange {
    background: #4f7cff !important;
    color: #ffffff !important;
  }

  .flatpickr-day.today {
    border-color: #4f7cff;
  }
}

/* =====================================================
 * FLATPICKR – LIGHT MODE
 * ===================================================== */
@media (prefers-color-scheme: light) {

  /* struttura */
  .flatpickr-calendar,
  .flatpickr-innerContainer,
  .flatpickr-days,
  .dayContainer {
    background: #ffffff !important;
    color: #111827 !important;
    border-color: #d1d5db !important;
  }

  /* header mesi */
  .flatpickr-months,
  .flatpickr-month,
  .flatpickr-current-month,
  .flatpickr-monthDropdown-months {
    background: #ffffff !important;
    color: #111827 !important;
  }

  /* frecce */
  .flatpickr-prev-month svg,
  .flatpickr-next-month svg {
    fill: #111827 !important;
  }

  /* giorni settimana */
  .flatpickr-weekdays {
    background: #ffffff;
  }

  .flatpickr-weekday {
    color: #374151;
  }

  /* giorni */
  .flatpickr-day {
    color: #111827 !important;
    background: transparent;
  }

  .flatpickr-day.prevMonthDay,
  .flatpickr-day.nextMonthDay {
    color: #9ca3af !important;
  }

  /* hover */
  .flatpickr-day:hover {
    background: #e5e7eb;
  }

  /* selezione */
  .flatpickr-day.selected,
  .flatpickr-day.startRange,
  .flatpickr-day.endRange {
    background: #2563eb !important;
    color: #ffffff !important;
  }

  .flatpickr-day.today {
    border-color: #2563eb;
  }
}

th a {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

th a:hover {
  text-decoration: underline;
}

.pagination {
  display: flex;
  gap: .5rem;
  margin-top: 1rem;
}

.pagination a {
  padding: .25rem .6rem;
  border-radius: 4px;
  text-decoration: none;
  color: inherit;
  border: 1px solid #ccc;
}

.pagination a.active {
  background: #4f7cff;
  color: white;
  border-color: #4f7cff;
}

/* =========================
 * DASHBOARD TABLE – LAYOUT STABILE
 * ========================= */

.dashboard-table {
  table-layout: fixed;
  width: 100%;
  border-collapse: collapse;
}

/* =========================
 * COLONNE A LARGHEZZA FISSA
 * ========================= */

/* Data */
.dashboard-table th:nth-child(1),
.dashboard-table td:nth-child(1) {
  width: 110px;
  white-space: nowrap;
}

/* Ora */
.dashboard-table th:nth-child(2),
.dashboard-table td:nth-child(2) {
  width: 80px;
  white-space: nowrap;
}

/* Tipo */
.dashboard-table th:nth-child(3),
.dashboard-table td:nth-child(3) {
  width: 180px;
  white-space: nowrap;
}

/* Presidente */
.dashboard-table th:nth-child(4),
.dashboard-table td:nth-child(4) {
  width: 220px;
  white-space: nowrap;
}

/* Azioni */
.dashboard-table th:nth-child(6),
.dashboard-table td:nth-child(6) {
  width: 90px;
  text-align: right;
  white-space: nowrap;
}

/* =========================
 * COLONNA ELASTICA (SOLO LEI!)
 * ========================= */

/* Luogo */
.dashboard-table th:nth-child(5),
.dashboard-table td:nth-child(5) {
  width: auto;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* =========================
 * SICUREZZA
 * ========================= */

.dashboard-table td {
  vertical-align: middle;
}

/* =========================
 * SPAZIATURA ORIZZONTALE COLONNE
 * ========================= */

.dashboard-table th,
.dashboard-table td {
  padding: 10px 14px;
}

/* un filo più aria tra Tipo e Presidente */
.dashboard-table th:nth-child(3),
.dashboard-table td:nth-child(3) {
  padding-right: 20px;
}

.dashboard-table th:nth-child(4),
.dashboard-table td:nth-child(4) {
  padding-left: 20px;
}

.dashboard-table tbody tr[data-href] {
  cursor: pointer;
}

.dashboard-table tbody tr[data-href]:hover {
  background-color: var(--row-hover, rgba(0,0,0,0.04));
}