:root[data-theme="dark"] {
  --bg: #0D0F0B;
  --surface: #171A12;
  --line: #2E3326;
  --ink: #B8B6A8;
  --ink-soft: #83816F;
  --forest: #5C9152;
  --forest-soft: #182417;
  --rust: #B06B52;
  --rust-soft: #271510;
  --gold: #B69A55;
  --gold-soft: #241E0E;
}

:root {
  --bg: #EDEDE3;
  --surface: #F8F7F1;
  --line: #CBC4AC;
  --ink: #22271B;
  --ink-soft: #565A44;
  --forest: #2E4A29;
  --forest-soft: #E1E9D9;
  --rust: #8B3A2C;
  --rust-soft: #F2E0D8;
  --gold: #93711F;
  --gold-soft: #F0E6C7;
  --header-bg: #253A21;
  --header-ink: #F6F4EA;
  --radius: 10px;
  --mono: "SFMono-Regular", Consolas, Menlo, monospace;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }

html, body {
  overscroll-behavior-y: none; /* niente «tirare giù» che sposta l'intestazione e la barra, né ricarica a sorpresa */
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  -webkit-tap-highlight-color: transparent;
}

body {
  padding-bottom: calc(64px + env(safe-area-inset-bottom));
  min-height: 100vh;
}

header.app-header {
  background: var(--header-bg);
  color: var(--header-ink);
  padding: 14px 16px calc(14px + env(safe-area-inset-top)) 16px;
  padding-top: max(14px, env(safe-area-inset-top));
  position: sticky;
  top: 0;
  z-index: 20;
}

.app-header .top-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  row-gap: 2px;
}

.app-header h1 {
  margin: 0;
  font-size: 20px;
  letter-spacing: 0.02em;
}

.app-header .brand {
  display: flex;
  align-items: center;
  gap: 8px;
}

.app-header .brand-icon {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  flex-shrink: 0;
}

.app-header .app-version {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  color: #D9B65C;
  align-self: flex-end;
  margin-bottom: 3px;
}

@keyframes versionBlink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.15; }
}
.app-header .app-version.version-blink {
  animation: versionBlink 0.8s ease-in-out 6;
}

.app-header .app-version-badge {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #D9B65C;
  border: 1px solid #D9B65C;
  border-radius: 4px;
  padding: 1px 5px;
  align-self: flex-end;
  margin-bottom: 3px;
  margin-left: 4px;
  opacity: 0;
  transition: opacity 0.6s ease;
}
.app-header .app-version-badge.show { opacity: 1; }

.header-right {
  display: flex;
  align-items: center;
  position: relative;
}
.header-right-top {
  display: flex;
  align-items: center;
  gap: 18px;
}

.sos-arm-hint {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 8px;
  width: 210px;
  background: var(--rust);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  padding: 9px 11px;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.35);
  z-index: 25;
  pointer-events: none;
}
.sos-arm-hint.hidden { display: none; }

.sos-btn {
  background: var(--rust);
  color: #fff;
  border: none;
  border-radius: 7px;
  padding: 5px 10px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.theme-toggle-btn {
  color: var(--header-ink);
  background: transparent;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 8px;
  width: 34px;
  height: 34px;
  font-size: 16px;
  cursor: pointer;
  margin-right: 6px;
  flex-shrink: 0;
}

.sos-sheet h3 { color: var(--rust); }

.confirm-message {
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--ink);
  white-space: pre-line;
}

.sos-warning {
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--rust);
  background: var(--rust-soft);
  border-radius: 8px;
  padding: 9px 11px;
  margin-bottom: 14px;
}

.sos-action { margin-top: 4px; }

.sos-note {
  font-size: 12px;
  line-height: 1.4;
  color: var(--ink-soft);
  margin: 6px 0 14px 0;
}

.sos-status {
  font-size: 13px;
  line-height: 1.4;
  margin-bottom: 4px;
}
.sos-status.err { color: var(--rust); }
.sos-status.ok { color: var(--forest); }

/* Testo del messaggio SOS mostrato a schermo: serve a poterlo leggere e
   dettare al telefono, quindi carattere a larghezza fissa e ben leggibile. */
.sos-text {
  font-family: var(--mono);
  font-size: 12.5px;
  line-height: 1.5;
  margin: 6px 0 10px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--bg);
  border: 1px solid var(--line);
  user-select: text;
  -webkit-user-select: text;
  word-break: break-word;
}

.app-header .ref {
  font-family: var(--mono);
  font-size: 11px;
  opacity: 0.7;
  margin-left: auto;
  white-space: nowrap;
}

.app-header .date-row {
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.app-header .date-row input[type="date"] {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.25);
  color: var(--header-ink);
  border-radius: 8px;
  padding: 6px 8px;
  font-family: var(--sans);
  font-size: 14px;
}

.app-header .today-btn {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.3);
  color: var(--header-ink);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 13px;
}

.astro-meteo-row {
  margin-top: 6px;
  padding: 0;
}
.astro-meteo-inner {
  display: flex;
  align-items: center;
  gap: 0;
  background: rgba(255,255,255,0.05);
  border: 0.5px solid rgba(255,255,255,0.15);
  border-radius: 8px;
  padding: 6px 12px;
  min-height: 34px;
}
.astro-meteo-inner .am-block {
  display: flex;
  align-items: center;
  gap: 7px;
  flex: 1;
  min-width: 0;
}
.astro-meteo-inner .am-icon { font-size: 20px; flex-shrink: 0; }
.astro-meteo-inner .am-label { color: var(--header-ink); font-size: 11.5px; font-weight: 500; line-height: 1.3; }
.astro-meteo-inner .am-sub { color: rgba(255,255,255,0.45); font-size: 9.5px; line-height: 1.2; }
.astro-meteo-inner .am-sep {
  width: 0.5px;
  align-self: stretch;
  background: rgba(255,255,255,0.2);
  margin: 0 12px;
  flex-shrink: 0;
}

main {
  padding: 14px 14px 24px 14px;
  max-width: 640px;
  margin: 0 auto;
}

.disclaimer-gate {
  position: fixed;
  inset: 0;
  background: var(--header-bg);
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.disclaimer-gate.hidden { display: none; }

.disclaimer-card {
  background: var(--surface);
  border-radius: 14px;
  padding: 22px 20px;
  max-width: 420px;
  max-height: 88vh;
  overflow-y: auto;
  color: var(--ink);
}

.disclaimer-card h2 {
  margin: 0 0 12px 0;
  font-size: 18px;
}

.disclaimer-card p {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-soft);
  margin: 0 0 12px 0;
}

.disclaimer-card .btn {
  margin-top: 6px;
  margin-bottom: 0;
}

.hunt-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 12px;
}
.hunt-tabs[hidden] { display: none; }

.hunt-tabs .subtab,
.hunt-tabs .hunt-tab {
  flex: 1;
  background: var(--surface);
  border: 1px solid var(--line);
  color: var(--ink-soft);
  border-radius: 8px;
  padding: 9px 4px;
  font-size: 13px;
  font-weight: 600;
  position: relative;
}

.hunt-tabs .subtab.active,
.hunt-tabs .hunt-tab.active {
  background: var(--forest);
  border-color: var(--forest);
  color: #fff;
}

.hunt-tabs .hunt-tab .dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
  margin-left: 5px;
}

.hunt-tabs .hunt-tab.active .dot {
  background: #fff;
}

.altitude-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 10px 12px;
  margin-bottom: 14px;
  font-size: 13.5px;
  color: var(--ink-soft);
}

.altitude-toggle input { width: 18px; height: 18px; }

.hunt-section {
  margin-bottom: 22px;
}

.hunt-section h2 {
  font-size: 14px;
  text-transform: none;
  letter-spacing: 0.01em;
  color: var(--ink-soft);
  border-bottom: 1px solid var(--line);
  padding-bottom: 6px;
  margin: 0 0 10px 0;
  display: flex;
  justify-content: space-between;
}

.hunt-section h2 .badge-active {
  font-family: var(--mono);
  font-size: 11px;
  background: var(--forest-soft);
  color: var(--forest);
  padding: 2px 7px;
  border-radius: 20px;
}

.cat-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 11px 12px;
  margin-bottom: 8px;
}

.cat-card .row1 {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
}

.cat-card .titles { flex: 1; min-width: 0; }

.cat-card .species {
  font-weight: 600;
  font-size: 15px;
}

.cat-card .category {
  font-size: 13px;
  color: var(--ink-soft);
  margin-top: 1px;
}

.status-pill {
  font-size: 11.5px;
  font-family: var(--mono);
  white-space: nowrap;
  padding: 3px 8px;
  border-radius: 20px;
  flex-shrink: 0;
}
.status-open { background: var(--forest-soft); color: var(--forest); }
.status-closed { background: var(--rust-soft); color: var(--rust); }
.status-check { background: var(--gold-soft); color: var(--gold); }
.status-unlocked { background: var(--forest); color: #FFFFFF; font-weight: 600; }

.cat-card.unlocked {
  border: 2px solid var(--forest);
  padding: 10px 11px;
  box-shadow: 0 0 0 3px var(--forest-soft);
}

.cat-card .unlock-banner {
  margin-top: 7px;
  font-size: 13px;
  font-weight: 600;
  color: var(--forest);
  background: var(--forest-soft);
  border-radius: 6px;
  padding: 7px 9px;
}

.cat-card .meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 7px;
  font-size: 12px;
  color: var(--ink-soft);
  font-family: var(--mono);
}

.cat-card .note {
  margin-top: 7px;
  font-size: 12.5px;
  color: var(--gold);
  background: var(--gold-soft);
  border-radius: 6px;
  padding: 6px 8px;
  line-height: 1.35;
}

.cat-card .zona-box {
  margin-top: 7px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 6px 9px;
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--ink-soft);
}
.cat-card .zona-box summary {
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
}
.cat-card .zona-box > div { margin-top: 5px; }
.zona-box.tardo-info {
  margin: 0 0 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 9px 12px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ink-soft);
}
.zona-box.tardo-info summary { font-weight: 600; color: var(--ink); cursor: pointer; }
.zona-box.tardo-info > div { margin-top: 6px; }
.zona-box.tardo-info .tardo-fonte { font-size: 11.5px; font-style: italic; }
.piano-tardo summary .status-pill { margin-left: 6px; font-size: 11px; vertical-align: 1px; }
.piano-tardo .piano-valido { color: var(--ink); }
.piano-tardo .piano-legenda { font-size: 12px; }
.piano-tardo .piano-distretto { border-top: 1px solid var(--line); padding-top: 6px; margin-top: 8px; }
.piano-tardo .piano-distretto.mio { background: var(--forest-soft); border-radius: 6px; padding: 6px 8px; }
.piano-tardo .piano-nome { font-weight: 700; color: var(--ink); }
.piano-tardo .piano-riga { margin-top: 4px; }
.piano-tardo .piano-descr { font-size: 12px; }
.piano-tardo .piano-num { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-variant-numeric: tabular-nums; }
.piano-tardo .piano-num .status-pill { font-size: 11px; padding: 1px 7px; }
.cat-card .zona-box .zona-chiuso {
  color: var(--rust);
  background: var(--rust-soft);
  border-radius: 5px;
  padding: 5px 7px;
  font-weight: 600;
}

.cat-card .reg-btn {
  margin-top: 8px;
  border: 1px solid var(--forest);
  color: var(--forest);
  background: transparent;
  border-radius: 7px;
  padding: 6px 10px;
  font-size: 13px;
}
.cat-card .reg-btn:disabled {
  opacity: 0.35;
}

nav.tabbar {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: var(--surface);
  border-top: 1px solid var(--line);
  display: flex;
  padding-bottom: env(safe-area-inset-bottom);
  z-index: 20;
}

nav.tabbar button {
  flex: 1;
  background: none;
  border: none;
  padding: 10px 0 8px 0;
  font-size: 12px;
  color: var(--ink-soft);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}

nav.tabbar button .icon { font-size: 19px; display: flex; align-items: center; justify-content: center; height: 24px; }

nav.tabbar button.active { color: var(--forest); font-weight: 600; }

.view { display: none; }
.view.active { display: block; }

.hidden { display: none !important; }

.fab {
  position: fixed;
  right: 18px;
  bottom: calc(74px + env(safe-area-inset-bottom));
  width: 54px; height: 54px;
  border-radius: 50%;
  background: var(--forest);
  color: #fff;
  border: none;
  font-size: 26px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.25);
  z-index: 19;
}

.log-item {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 10px 12px;
  margin-bottom: 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.log-item .info .date { font-family: var(--mono); font-size: 12px; color: var(--ink-soft); }
.log-item .info .sp { font-weight: 600; font-size: 14.5px; margin-top: 1px; }
.log-item .info .cat { font-size: 12.5px; color: var(--ink-soft); }
.log-item .log-extra {
  margin-top: 5px;
  font-size: 12px;
}
.log-item .log-extra summary {
  color: var(--forest);
  font-weight: 600;
  cursor: pointer;
}
.log-item .log-extra div {
  margin-top: 3px;
  color: var(--ink-soft);
}
.log-item .log-actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-shrink: 0;
}
.log-item button.del {
  background: none; border: 1px solid var(--rust); color: var(--rust);
  border-radius: 6px; padding: 5px 9px; font-size: 12px;
}
.log-item button.edit {
  background: none; border: 1px solid var(--forest); color: var(--forest);
  border-radius: 6px; padding: 5px 9px; font-size: 12px;
}

.log-photo-row { margin-top: 6px; }
.log-photo-thumb {
  display: block;
  max-width: 100%;
  max-height: 220px;
  border-radius: 8px;
  border: 1px solid var(--line);
  cursor: pointer;
}

.lightbox-backdrop {
  align-items: center;
  justify-content: center;
  background: rgba(10, 14, 8, 0.92);
}

.easteregg-backdrop {
  align-items: center;
  justify-content: center;
  background: rgba(10, 14, 8, 0.92);
  z-index: 60;
  cursor: pointer;
  transition: opacity 0.6s ease;
}
.easteregg-backdrop.fading { opacity: 0; }
.easteregg-sheet {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 0 24px;
}
.easteregg-sheet img {
  max-width: 88vw;
  max-height: 70vh;
  object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.5);
}
.easteregg-caption {
  color: #F6F4EA;
  font-family: var(--sans);
  font-weight: 600;
  font-size: 15px;
  text-align: center;
}
.lightbox-img {
  max-width: 92vw;
  max-height: 88vh;
  object-fit: contain;
  border-radius: 10px;
  display: block;
}

.modal-photo-preview {
  display: block;
  width: 100%;
  height: auto;
  max-height: 380px;
  object-fit: contain;
  background: var(--bg);
  border-radius: 8px;
  border: 1px solid var(--line);
  margin-bottom: 8px;
}

.chart-box {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 10px 10px 8px 10px;
  margin-bottom: 8px;
  background: var(--surface);
}
.chart-svg { width: 100%; height: auto; display: block; }
.chart-xlabels {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--ink-soft);
  margin-top: 2px;
  padding: 0 2px;
}
.chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}
.chart-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--ink);
}
.chart-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  display: inline-block;
}

.stats-highlights {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}
.stat-box {
  flex: 1;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px 8px;
  text-align: center;
}
.stat-box .num {
  font-family: var(--mono);
  font-size: 24px;
  font-weight: 700;
  color: var(--forest);
}
.stat-box .lbl {
  font-size: 11.5px;
  color: var(--ink-soft);
  margin-top: 2px;
}

.stats-bars { margin-bottom: 8px; }
.stat-bar-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.stat-bar-label {
  width: 40%;
  flex-shrink: 0;
  font-size: 13px;
  color: var(--ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.stat-bar-track {
  flex: 1;
  height: 10px;
  background: var(--line);
  border-radius: 5px;
  overflow: hidden;
}
.stat-bar-fill {
  height: 100%;
  background: var(--forest);
  border-radius: 5px;
}
.stat-bar-count {
  width: 22px;
  flex-shrink: 0;
  text-align: right;
  font-family: var(--mono);
  font-size: 12.5px;
  color: var(--ink-soft);
}

.privacy-note {
  margin-top: 16px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--ink-soft);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 10px 12px;
}

.aperto-ora-box {
  border: 1px solid var(--forest);
  border-radius: var(--radius);
  padding: 12px 14px;
  margin-bottom: 14px;
  background: var(--forest-soft);
}
.aperto-ora-box summary {
  font-size: 14px;
  font-weight: 700;
  color: var(--forest);
  cursor: pointer;
}
.aperto-ora-box.nessuna { border-color: var(--rust); background: var(--rust-soft); }
.aperto-ora-box.nessuna summary { color: var(--rust); }
.aperto-ora-empty {
  margin-top: 8px;
  font-size: 13px;
  color: var(--ink-soft);
}
.aperto-ora-group { margin-top: 10px; }
.aperto-ora-tipo {
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--ink-soft);
  margin-bottom: 3px;
}
.aperto-ora-riga {
  font-size: 13.5px;
  color: var(--ink);
  padding: 2px 0;
}
.aperto-ora-quota {
  font-size: 12px;
  font-weight: 600;
  color: var(--forest);
  white-space: nowrap;
}
.aperto-ora-libere {
  font-size: 13px;
  color: var(--ink-soft);
  padding: 4px 0 2px;
  line-height: 1.45;
}
.aperto-ora-libere b { color: var(--ink); font-weight: 600; }
.aperto-ora-piano {
  font-size: 12.5px;
  color: var(--forest);
  padding: 4px 0 2px;
  cursor: pointer;
  text-decoration: underline dotted;
}
.aperto-ora-piano.avviso { color: var(--rust); font-weight: 600; }
.aperto-ora-verifica {
  font-size: 11.5px;
  color: var(--gold);
  font-weight: 600;
}

.summary-caps {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.summary-caps .cap-chip {
  font-family: var(--mono);
  font-size: 11.5px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 5px 10px;
  color: var(--ink-soft);
}

.summary-caps .caps-tutte { flex-basis: 100%; }
.summary-caps .caps-tutte summary { font-size: 12.5px; font-weight: 600; color: var(--ink-soft); cursor: pointer; padding: 2px 0; }
.summary-caps .caps-tutte-lista { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }

.section-title {
  font-size: 15px;
  font-weight: 600;
  margin: 18px 0 8px 0;
}

.info-box {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px 14px;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--ink-soft);
  margin-bottom: 14px;
}

.demo-video-wrap {
  position: relative;
  width: 160px;
  max-width: 100%;
  margin: 6px auto 4px auto;
}
.demo-video {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  border-radius: 8px;
  background: #000;
}
.demo-video-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 18px;
  line-height: 1;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 5;
  cursor: pointer;
}
.demo-video-wrap:fullscreen .demo-video-close,
.demo-video-wrap:-webkit-full-screen .demo-video-close {
  display: flex;
}
.demo-video-wrap:fullscreen,
.demo-video-wrap:-webkit-full-screen {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
}
.demo-video-wrap:fullscreen .demo-video,
.demo-video-wrap:-webkit-full-screen .demo-video {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.demo-video-caption {
  text-align: center;
  font-size: 12px;
  color: var(--ink-soft);
  margin-bottom: 10px;
}

.info-box b { color: var(--ink); }

.btn {
  display: block;            /* vale anche per <label class="btn"> (importa file) e <a class="btn"> (email) */
  text-align: center;
  text-decoration: none;
  font-family: var(--sans);
  line-height: 1.25;
  cursor: pointer;
  background: var(--forest);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 14px;
  width: 100%;
  margin-bottom: 8px;
}
.btn.secondary {
  background: transparent;
  border: 1px solid var(--line);
  color: var(--ink);
}
.btn.danger {
  background: transparent;
  border: 1px solid var(--rust);
  color: var(--rust);
}

input[type="file"] { display: none; }

.search-row {
  margin-bottom: 12px;
}
.search-row input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  font-size: 14px;
  background: var(--surface);
  color: var(--ink);
}

/* Modal */
.modal-backdrop {
  position: fixed; inset: 0;
  background: rgba(20,24,15,0.45);
  display: none;
  align-items: flex-end;
  z-index: 30;
}
.modal-backdrop.active { display: flex; }
.modal-sheet {
  background: var(--bg);
  width: 100%;
  border-radius: 16px 16px 0 0;
  padding: 18px 16px calc(20px + env(safe-area-inset-bottom)) 16px;
  max-height: 85vh;
  overflow-y: auto;
}
.modal-sheet h3 { margin: 0 0 12px 0; font-size: 16px; }
.modal-sheet label {
  display: block;
  font-size: 12.5px;
  color: var(--ink-soft);
  margin: 10px 0 4px 0;
}
.modal-sheet select,
.modal-sheet input[type="date"],
.modal-sheet input[type="text"] {
  width: 100%;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 14px;
  background: var(--surface);
  color: var(--ink);
}
.modal-actions {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}
.modal-actions .btn { margin-bottom: 0; }

.changelog-box, .fonti-box {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px 14px;
  margin-bottom: 14px;
  background: var(--surface);
}
.changelog-box summary, .fonti-box summary {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
}
.changelog-row {
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ink-soft);
}
.changelog-row b {
  font-family: var(--mono);
  color: var(--forest);
}

.app-credit {
  text-align: center;
  color: var(--ink-soft);
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: 0.02em;
  margin: 20px 0 8px 0;
}

.disclaimer-credit {
  text-align: center;
  color: var(--ink-soft);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.02em;
  margin: 4px 0 14px 0;
}

.modal-link {
  font-size: 13px;
  color: var(--forest);
  font-weight: 600;
  margin: 2px 0 10px 0;
  cursor: pointer;
}

.weight-row {
  display: flex;
  gap: 8px;
}
.weight-row input[type="number"] {
  flex: 1;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 14px;
  background: var(--surface);
  color: var(--ink);
}
.weight-row select {
  width: 110px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 14px;
  background: var(--surface);
  color: var(--ink);
}

.contingente-box {
  margin-top: 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 12.5px;
}

.contingente-box .cline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.contingente-box .cstatus {
  font-family: var(--mono);
  font-weight: 600;
}
.contingente-box .cstatus.livello-alto { color: var(--forest); }
.contingente-box .cstatus.livello-medio { color: var(--gold); }
.contingente-box .cstatus.livello-basso,
.contingente-box .cstatus.chiuso { color: var(--rust); }

.contingente-box .cbar {
  height: 5px;
  border-radius: 3px;
  background: var(--line);
  margin: 6px 0 5px 0;
  overflow: hidden;
}
.contingente-box .cbar-fill {
  height: 100%;
  background: var(--forest);
}
.contingente-box .cbar-fill.livello-medio { background: var(--gold); }
.contingente-box .cbar-fill.livello-basso,
.contingente-box .cbar-fill.chiuso { background: var(--rust); }

.contingente-box .csource {
  color: var(--ink-soft);
  font-size: 11px;
}

.contingente-box.stale {
  border-color: var(--gold);
  background: var(--gold-soft);
}
.contingente-box.stale .csource { color: var(--gold); }

.install-banner {
  position: fixed;
  left: 10px;
  right: 10px;
  bottom: calc(72px + env(safe-area-inset-bottom));
  max-width: 620px;
  margin: 0 auto;
  z-index: 25;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--header-bg);
  color: var(--header-ink);
  border-radius: 12px;
  padding: 12px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
}
.install-banner.hidden { display: none; }
.install-btn[hidden] { display: none; }
#installHint { color: rgba(246,244,234,0.85); }
#installHint b { display: inline; font-size: inherit; margin: 0; color: #fff; }
.passi-ios { margin: 6px 0 0 18px; padding: 0; }
.passi-ios li { margin: 4px 0; }
.ico-cond { width: 17px; height: 17px; vertical-align: -3px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.freccia-ios { position: fixed; z-index: 40; font-size: 38px; line-height: 1; color: #D9B65C; text-shadow: 0 2px 6px rgba(0,0,0,0.45); animation: salta-giu 1s ease-in-out infinite; }
.freccia-ios[hidden] { display: none; }
.freccia-ios.giu { bottom: calc(4px + env(safe-area-inset-bottom)); left: 50%; margin-left: -19px; }
.freccia-ios.su { top: 6px; right: 64px; animation-name: salta-su; }
@keyframes salta-giu { 50% { transform: translateY(8px); } }
@keyframes salta-su { 0%, 100% { transform: rotate(180deg); } 50% { transform: rotate(180deg) translateY(8px); } }

.install-icon {
  width: 40px;
  height: 40px;
  border-radius: 9px;
  flex-shrink: 0;
}

.install-text {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  line-height: 1.35;
}
.install-text b {
  display: block;
  font-size: 14px;
  margin-bottom: 2px;
}
.install-text span { color: rgba(246,244,234,0.82); }

.install-actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-shrink: 0;
}
.install-btn {
  display: inline-block;
  text-align: center;
  text-decoration: none;
  background: #D9B65C;
  color: var(--header-bg);
  border: none;
  border-radius: 7px;
  padding: 8px 14px;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
}
.install-later {
  background: transparent;
  color: var(--header-ink);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 7px;
  padding: 6px 10px;
  font-family: var(--sans);
  font-size: 12px;
}

.empty-state {
  text-align: center;
  color: var(--ink-soft);
  padding: 40px 20px;
  font-size: 14px;
}
.empty-state-compact {
  text-align: center;
  color: var(--ink-soft);
  padding: 10px 0;
  font-size: 13.5px;
}

::-webkit-scrollbar { width: 0; height: 0; }

/* ---------- Dove mi trovo: bandite e distretto ---------- */
.dove-box {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px 14px;
  margin-bottom: 14px;
  background: var(--surface);
}
.dove-box > summary {
  font-size: 14px;
  font-weight: 700;
  color: var(--forest);
  cursor: pointer;
}
.dove-box .dove-btn { margin: 12px 0 6px 0; }
.dove-box .dove-link { margin: 8px 0 0 0; font-size: 13px; }
.dove-titolo {
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--ink-soft);
  margin: 14px 0 5px 0;
}
.dove-sotto { font-size: 13px; color: var(--ink); margin-top: 8px; }
.dove-nota { font-size: 12.5px; color: var(--ink-soft); margin-top: 6px; line-height: 1.4; }
.dove-avviso { color: var(--gold); font-weight: 600; }
.dove-fonte { font-size: 11.5px; color: var(--ink-soft); margin-top: 8px; line-height: 1.4; }
.dove-bandita {
  font-size: 13.5px;
  color: var(--ink);
  border-radius: 8px;
  padding: 8px 10px;
  margin-top: 6px;
  border-left: 4px solid var(--line);
  background: var(--bg);
}
.dove-bandita.dove-dentro { border-left-color: var(--rust); background: var(--rust-soft); }
.dove-bandita.dove-verifica { border-left-color: var(--gold); background: var(--gold-soft); }
.dove-bandita.dove-libera { border-left-color: var(--forest); background: var(--forest-soft); }
.dove-nome { font-weight: 700; }
.dove-tipo { font-weight: 400; font-size: 12px; color: var(--ink-soft); }
.dove-desc { margin-top: 5px; font-size: 12px; color: var(--ink-soft); }
.dove-desc summary { cursor: pointer; font-weight: 600; }
.dove-desc > div { margin-top: 4px; line-height: 1.4; }
.dove-altre { margin-top: 8px; font-size: 12.5px; color: var(--ink-soft); }
.dove-altre summary { cursor: pointer; font-weight: 600; }
.dove-specie {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  font-size: 13.5px;
  color: var(--ink);
  margin-top: 8px;
}
.dove-box a:not(.btn) { color: var(--forest); font-weight: 600; }

/* Caccia bassa: sottoschede Prove cani e Da sapere */
.bassa-panel .section-title { margin-top: 18px; }
.prova-status {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 12px 14px;
  margin-bottom: 6px;
}
.prova-status.ok { background: var(--forest-soft); border-color: var(--forest); }
.prova-status-title { font-size: 15px; font-weight: 700; margin-bottom: 3px; }
.prova-status-sub { font-size: 13.5px; color: var(--ink-soft); line-height: 1.45; }
.prova-warn {
  margin-top: 8px;
  background: var(--gold-soft);
  border: 1px solid var(--gold);
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1.4;
  color: var(--ink);
}
.prova-suggerimento { font-size: 12.5px; color: var(--ink-soft); margin: -4px 0 8px 0; }
.prova-finestra {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 11px 12px;
  margin-bottom: 8px;
}
.prova-finestra-titolo { font-weight: 700; font-size: 14.5px; }
.prova-finestra-regola { font-size: 13px; color: var(--ink-soft); margin: 2px 0 9px 0; line-height: 1.4; }
.prova-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.prova-chip {
  background: var(--bg);
  border: 1px solid var(--line);
  color: var(--ink);
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 12.5px;
  font-weight: 600;
}
.prova-chip.past { opacity: 0.5; position: relative; overflow: hidden; }
.prova-chip.past::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to bottom right, transparent calc(50% - 1px), currentColor calc(50% - 1px), currentColor calc(50% + 1px), transparent calc(50% + 1px));
}
.prova-chip.ecc { border-style: dashed; border-color: var(--gold); }
.prova-chip.sel { background: var(--forest); border-color: var(--forest); color: #fff; opacity: 1; }
.prova-nota { font-size: 12.5px; color: var(--ink-soft); line-height: 1.4; margin: 2px 0 8px 0; }

.info-item-title { font-weight: 700; font-size: 14.5px; margin-bottom: 3px; }
.info-item-art { font-family: var(--mono); font-size: 11.5px; font-weight: 400; color: var(--ink-soft); white-space: nowrap; }
.info-item-text { font-size: 13.5px; line-height: 1.5; color: var(--ink); }
.info-item-multa { font-size: 12.5px; color: var(--rust); margin-top: 5px; font-weight: 600; }

.dasapere-scad {
  display: flex;
  gap: 11px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 10px 12px;
  margin-bottom: 8px;
}
.dasapere-scad.past { opacity: 0.5; }
.dasapere-scad.next { border-color: var(--forest); background: var(--forest-soft); }
.dasapere-data { min-width: 38px; text-align: center; }
.dasapere-gg { font-size: 20px; font-weight: 700; line-height: 1.1; }
.dasapere-mese { font-size: 11.5px; text-transform: uppercase; color: var(--ink-soft); }
.dasapere-testo { font-size: 13.5px; line-height: 1.45; color: var(--ink); }
.dasapere-meta { font-size: 12px; color: var(--ink-soft); margin-top: 3px; }

.info-item-link {
  display: inline-block;
  margin: 6px 0 0 0;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--forest);
}

.modal-obbligo-online {
  background: var(--gold-soft);
  border: 1px solid var(--gold);
  border-radius: 8px;
  padding: 9px 11px;
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--ink);
  margin: -8px 0 10px 0;
}
.modal-obbligo-online a {
  display: block;
  margin-top: 4px;
  font-weight: 600;
  color: var(--forest);
}

/* ---------- Soglia pre-allarme bandite (Impostazioni) ---------- */
.soglia-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 8px;
  border: 2px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  text-align: center;
  transition: border-color 0.15s, background 0.15s;
}
.soglia-btn input[type="radio"] { display: none; }
.soglia-btn small { font-size: 11.5px; font-weight: 400; color: var(--ink-soft); }
.soglia-btn.attiva {
  border-color: var(--forest);
  background: var(--forest-soft, rgba(37,58,33,0.08));
  color: var(--forest);
}
.soglia-btn.attiva small { color: var(--forest); }

/* ---------- FAB menu (Quick Log) ---------- */
.fab-menu-backdrop {
  position: fixed; inset: 0; z-index: 18;
  background: transparent;
}
.fab-menu {
  position: fixed;
  right: 14px;
  bottom: calc(138px + env(safe-area-inset-bottom));
  z-index: 20;
  flex-direction: column;
  gap: 10px;
  align-items: flex-end;
}
.fab-menu:not([hidden]) { display: flex; }
.fab-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--surface);
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 10px 16px 10px 12px;
  box-shadow: 0 3px 12px rgba(0,0,0,0.18);
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
}
.fab-menu-icon { font-size: 22px; }
.fab-menu-label {
  display: flex;
  flex-direction: column;
  gap: 1px;
  text-align: left;
}
.fab-menu-label small {
  font-size: 11.5px;
  font-weight: 400;
  color: var(--ink-soft);
}

/* ---------- Quick Log modal ---------- */
.quick-type-row {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
}
.quick-type-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 10px 6px;
  border: 2px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  font-size: 20px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.quick-type-btn span {
  font-size: 12px;
  font-weight: 600;
  color: var(--ink);
}
.quick-type-btn.active {
  border-color: var(--forest);
  background: var(--forest-soft, rgba(37,58,33,0.08));
}
.quick-type-btn.active span { color: var(--forest); }

.quick-gps-status {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 8px 12px;
  margin-bottom: 12px;
  font-size: 13px;
  color: var(--ink-soft);
}
.quick-gps-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--ink-soft);
  flex-shrink: 0;
  transition: background 0.3s;
}
.quick-gps-dot.ok { background: #4caf50; }
.quick-gps-dot.error { background: var(--rust); }

/* ---------- Card punti rapidi nel registro ---------- */
.log-item.quick-point {
  border-style: dashed;
  border-color: var(--forest);
  opacity: 0.92;
}
.log-item.quick-point .log-type-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  margin-bottom: 3px;
}
.badge-abbattimento { background: rgba(37,58,33,0.12); color: var(--forest); }
.badge-anschluss    { background: rgba(120,80,40,0.12); color: #7a5028; }
.badge-luogo        { background: rgba(180,140,0,0.13); color: #7a6000; }
.log-item.quick-point .sp { color: var(--ink-soft); font-style: italic; }

/* ---------- Banner "da completare" ---------- */
.quick-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  background: var(--gold-soft, #fffbe6);
  border: 1.5px solid var(--gold, #e6c200);
  border-radius: var(--radius);
  padding: 10px 14px;
  margin-bottom: 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}
.quick-banner button {
  background: none;
  border: 1px solid var(--gold, #e6c200);
  border-radius: 8px;
  padding: 4px 10px;
  font-size: 12px;
  color: var(--ink);
  cursor: pointer;
  white-space: nowrap;
}

/* ---------- Icona beccaccia: inverte in tema scuro per evitare il bordo bianco ---------- */
:root[data-theme="dark"] .fab-beccaccia-img {
  filter: invert(1);
}

/* ---------- Calendario della stagione (compatto) ---------- */
.cal-box {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 0 12px;
  margin-bottom: 10px;
}
.cal-box > summary {
  cursor: pointer;
  font-weight: 700;
  font-size: 14.5px;
  padding: 11px 0;
}
.cal-box[open] > summary { padding-bottom: 6px; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; margin-bottom: 8px; }
.cal-dow { font-size: 10.5px; text-align: center; color: var(--ink-soft); font-weight: 600; }
.cal-month { grid-column: 1 / -1; font-size: 12.5px; font-weight: 700; margin-top: 6px; color: var(--ink); }
.cal-gap { grid-column: 1 / -1; text-align: center; font-size: 11px; color: var(--ink-soft); line-height: 1; }
.cal-day {
  height: 30px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: transparent;
  color: var(--ink-soft);
  font-size: 12px;
  font-family: inherit;
}
.cal-day.out { visibility: hidden; }
.cal-day.open { background: var(--forest-soft); border-color: var(--forest); color: var(--ink); font-weight: 700; }
.cal-day.prov { background: var(--gold-soft); border-color: var(--gold); border-style: dashed; color: var(--ink); font-weight: 700; }
.cal-day.today { box-shadow: 0 0 0 2px var(--gold); }
.cal-day.past { opacity: 0.5; position: relative; overflow: hidden; }
.cal-day.past::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to bottom right, transparent calc(50% - 1px), currentColor calc(50% - 1px), currentColor calc(50% + 1px), transparent calc(50% + 1px));
}
.cal-day.past.sel { opacity: 1; }
.cal-day.sel { background: var(--forest); border-color: var(--forest); color: #fff; }
.cal-legend { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 11.5px; color: var(--ink-soft); margin-bottom: 8px; }
.cal-legend i { display: inline-block; width: 11px; height: 11px; border-radius: 3px; border: 1px solid var(--line); vertical-align: -1px; margin-right: 4px; }
.cal-legend i.open { background: var(--forest-soft); border-color: var(--forest); }
.cal-legend i.prov { background: var(--gold-soft); border-color: var(--gold); border-style: dashed; }
.cal-legend i.today { box-shadow: 0 0 0 2px var(--gold); }
.cal-legend i.past { opacity: 0.5; background: linear-gradient(135deg, transparent 45%, var(--ink-soft) 46%, var(--ink-soft) 54%, transparent 55%); }
.cal-rimasti { font-size: 12.5px; font-weight: 600; color: var(--forest); margin: 2px 0 8px; }
.cal-badge { display: inline-block; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--gold); background: var(--gold-soft); border: 1px solid var(--gold); border-radius: 999px; padding: 1px 7px; margin-left: 4px; vertical-align: 1px; }
.cal-nota { font-size: 12.5px; line-height: 1.4; color: var(--ink); background: var(--gold-soft); border-left: 4px solid var(--gold); border-radius: 6px; padding: 7px 9px; margin-bottom: 10px; }

/* Torna al punto */
.torna-bussola {
  position: relative; width: 220px; height: 220px; margin: 6px auto 10px;
  border-radius: 50%; border: 3px solid var(--line); background: var(--surface);
}
.torna-n { position: absolute; top: 6px; left: 50%; transform: translateX(-50%); font-size: 12px; font-weight: 700; color: var(--rust); }
.torna-freccia { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--forest); transition: transform .25s, opacity .3s; }
.torna-freccia[hidden] { display: none; }
.torna-freccia svg { width: 110px; height: 150px; }
.no-gps {
  display: block; width: fit-content; margin: 0 auto 8px; padding: 3px 12px; border-radius: 999px;
  background: #C62828; color: #fff; font-size: 13px; font-weight: 800; letter-spacing: 0.08em;
  animation: noGpsBlink 1s steps(2, start) infinite;
}
.no-gps[hidden] { display: none; }
@keyframes noGpsBlink { 50% { opacity: 0.25; } }
@media (prefers-reduced-motion: reduce) { .no-gps { animation: none; } }
.torna-dist.vecchia { opacity: 0.4; }
.torna-dist { text-align: center; font-size: 38px; font-weight: 700; color: var(--forest); line-height: 1.1; }
.torna-info { text-align: center; color: var(--ink-soft); margin-top: 6px; min-height: 2.6em; }
#tornaMappe { text-align: center; text-decoration: none; }
#tornaNota { text-align: center; }

/* Spazio in fondo all'elenco: l'ultima voce si può scorrere sopra il pulsante + */
#logList { padding-bottom: 80px; }

/* Punti rapidi: la nota fa da titolo nella lista */
.log-item.quick-point .sp.quick-note { color: var(--ink); font-style: normal; font-weight: 600; font-size: 1.05em; overflow-wrap: anywhere; }
.log-item.quick-point .quick-sub { color: var(--ink-soft); font-size: 0.9em; }

/* Promemoria backup: un po' di aria prima del pulsante «Esporta» */
#backupReminder { margin-bottom: 14px; }

/* Alba e tramonto: riquadro a parte sotto luna e meteo, con barra della luce del giorno.
   Sta fuori dall'header fisso, quindi scorre via con la pagina. */
.sole-row {
  /* fascia sotto l'header fisso, dello stesso colore: scorre via con la pagina */
  background: var(--header-bg);
  padding: 0 16px 14px;
}
/* con la fascia della luce sotto, l'header riduce lo spazio in fondo */
header.app-header:has(+ .sole-row:not([hidden])) { padding-bottom: 8px; }
.sole-inner {
  background: rgba(255,255,255,0.05);
  border: 0.5px solid rgba(255,255,255,0.15);
  border-radius: 8px;
  padding: 8px 12px;
}
.sole-inner .am-sun { display: flex; align-items: center; gap: 12px; }
.sole-inner .sun-end { display: flex; flex-direction: column; align-items: center; line-height: 1.15; min-width: 52px; }
.sole-inner .sun-end b { color: var(--header-ink); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.sole-inner .sun-l { color: rgba(255,255,255,0.5); font-size: 8.5px; text-transform: uppercase; letter-spacing: 0.08em; }
.sole-inner .sun-mid { flex: 1; min-width: 0; text-align: center; }
.sole-inner .sun-bar {
  position: relative;
  height: 4px;
  margin: 8px 8px 5px;
  border-radius: 2px;
  background: linear-gradient(90deg, #d9803a 0%, #f2c14e 50%, #d9803a 100%);
  opacity: 0.9;
}
.sole-inner .sun-dot {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  font-size: 15px;
  line-height: 1;
  filter: drop-shadow(0 0 4px rgba(242,193,78,0.7));
}
.sole-inner .sun-dur { color: rgba(255,255,255,0.55); font-size: 9.5px; }

/* Notte rossa: schermo solo rosso, per non rovinare la vista al buio.
   Le scritte tenui si schiariscono un po' perché restino leggibili. */
/* Il filtro rosso va su ogni elemento in cima alla pagina, non su <html>: su iPhone e Samsung un filtro
   sulla pagina intera non arriva a intestazione, menu e pulsanti (fissi) e restavano verdi. */
html.notte-rossa body > *:not(svg):not(script):not(style) { filter: url(#filtro-rosso); }
html.notte-rossa, html.notte-rossa body { background-color: #070000; }
html.notte-rossa {
  --ink: #D6D4C6;
  --ink-soft: #AEAC9A;
  --line: #4A503C;
}
/* Impostazioni → Aspetto: scelta del tema e programmazione */
/* Scelta del tema su una sola riga: quattro caselle uguali, icona sopra e nome sotto */
.tema-segmentato { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-bottom: 14px; }
.tema-segmentato.due { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tema-segmentato.due span { min-height: 38px; padding: 4px 2px; font-size: 13px; }
.tema-segmentato label { position: relative; display: block; cursor: pointer; }
.tema-segmentato input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; pointer-events: none; }
.tema-segmentato span {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  min-height: 56px; padding: 7px 2px;
  border: 1px solid var(--line); border-radius: 8px;
  background: var(--surface); color: var(--ink);
  font-size: 12px; line-height: 1.1; text-align: center;
}
.reg-filtro { margin: 4px 0 12px; }
.reg-filtro[hidden] { display: none; }
.reg-filtro small { font-size: 12px; color: var(--ink-soft); }
.tema-segmentato .ico { font-size: 19px; line-height: 1; height: 22px; display: flex; align-items: center; }
.tema-segmentato .ico-notte { width: 22px; height: 22px; vertical-align: baseline; }
.tema-segmentato input:checked + span {
  border-color: var(--forest); background: var(--forest-soft); color: var(--forest);
  box-shadow: inset 0 0 0 1px var(--forest);
}
.tema-segmentato input:focus-visible + span { outline: 2px solid var(--forest); outline-offset: 2px; }
.notte-prog { flex-direction: column; align-items: flex-start; gap: 8px; }
.notte-prog select,
.notte-prog input[type="time"] {
  width: auto;
  height: auto;
  font: inherit;
  padding: 7px 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--ink);
}
.notte-prog select { max-width: 100%; }

/* Icona «luna e stella rossa» (pulsante del tema e scelta in Impostazioni) */
.ico-notte { width: 1.25em; height: 1.25em; vertical-align: -0.25em; }
.theme-toggle-btn .ico-notte { width: 1.6em; height: 1.6em; vertical-align: middle; }

.offline-bar {
  margin: 0 0 10px; padding: 7px 10px; border-radius: 8px;
  background: rgba(255,255,255,0.1); border-left: 4px solid var(--gold);
  color: var(--header-ink); font-size: 12.5px; line-height: 1.4;
}
.offline-bar.ok { border-left-color: #6FAE6F; }

/* Avviso: data o ora del telefono non coincidono con quelle svizzere */
.orologio-avviso {
  margin: 12px 16px 0; padding: 10px 12px;
  background: var(--rust-soft); border-left: 4px solid var(--rust); border-radius: 8px;
  color: var(--ink); font-size: 13px; line-height: 1.45;
}
.orologio-avviso .btn { margin: 8px 0 0; }

/* Finestra con i dettagli del meteo */
.astro-meteo-inner #meteoBlock { cursor: pointer; }
.astro-meteo-inner .am-chev { margin-left: auto; padding-left: 6px; font-size: 22px; line-height: 1; color: rgba(255,255,255,0.55); flex-shrink: 0; }
/* la finestra occupa tutto lo spazio sotto la barra con luna e meteo (altezza fissa: cambiando giorno non si restringe) */
.meteo-sheet { height: calc(100vh - var(--meteo-top, 28vh)); max-height: calc(100vh - var(--meteo-top, 28vh)); min-height: 0; }
@supports (height: 100dvh) { .meteo-sheet { height: calc(100dvh - var(--meteo-top, 28vh)); max-height: calc(100dvh - var(--meteo-top, 28vh)); } }
#meteoCorpo.carico { opacity: .45; transition: opacity .15s; }
.meteo-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.meteo-head h3 { margin: 0; font-size: 15.5px; display: flex; align-items: center; gap: 4px; flex: 1; min-width: 0; }
.m-g-testo { flex: 1; text-align: center; min-width: 0; }
.m-g { background: none; border: 1px solid var(--line); color: var(--ink); width: 32px; height: 32px; border-radius: 8px; font-size: 20px; line-height: 1; cursor: pointer; flex-shrink: 0; padding: 0; }
.m-g:disabled { opacity: .3; cursor: default; }
.m-rel { text-align: center; margin: -2px 0 10px; }
.m-rel .m-pill { display: inline-block; padding: 3px 14px; border-radius: 999px; background: var(--forest-soft); color: var(--forest); border: 0; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.m-rel .m-pill.passato { background: var(--gold-soft); color: var(--gold); }
.m-rel[hidden] { display: none; }
.meteo-close { background: transparent; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); width: 34px; height: 34px; font-size: 15px; cursor: pointer; }
.m-avviso { font-size: 13px; color: var(--ink-soft); padding: 8px 2px; }
.m-ore { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 8px; margin-bottom: 8px; scrollbar-width: thin; }
.m-ora { flex: 0 0 54px; text-align: center; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 6px 2px; font-size: 11.5px; line-height: 1.35; color: var(--ink); }
.m-ora.ora-attuale { border-color: var(--forest); box-shadow: inset 0 0 0 1px var(--forest); }
.m-ora-h { font-weight: 700; color: var(--ink-soft); }
.m-ora-ico { font-size: 19px; line-height: 1.3; }
.m-ora-t { font-weight: 700; font-size: 13px; }
.m-ora-p, .m-ora-v { color: var(--ink-soft); white-space: nowrap; }
.m-freccia { display: inline-block; font-weight: 700; }
.m-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.m-box { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; min-width: 0; }
.m-box-t { font-size: 11.5px; color: var(--ink-soft); font-weight: 600; }
.m-box-v { font-size: 16px; font-weight: 700; margin: 2px 0; color: var(--ink); }
.m-box-s { font-size: 11.5px; color: var(--ink-soft); line-height: 1.3; }
.m-nota { font-size: 11.5px; color: var(--ink-soft); line-height: 1.4; }
.m-nowrap { white-space: nowrap; }

.reg-fonti { margin: 8px 0 0; padding-left: 18px; font-size: 13.5px; line-height: 1.45; }
.reg-fonti li { margin-bottom: 5px; }
.reg-fonti-box { margin-top: 8px; }
.reg-fonti-box summary { cursor: pointer; font-weight: 600; font-size: 13.5px; color: var(--forest); }
.quick-edit { margin: 4px 0; }
.quick-edit-input { font-family: inherit; width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink); font-size: 15px; }
.quick-edit-btns { display: flex; gap: 8px; margin-top: 6px; }
.log-item.quick-point.quick-done { border-style: solid; }
.m-luogo { font-size: 13.5px; line-height: 1.4; margin: 0 2px 10px; }
.m-luogo span { color: var(--ink-soft); font-size: 12.5px; }
.m-luogo .m-posbtn { margin-top: 8px; padding: 7px 12px; font-size: 13px; background: none; border: 1px solid var(--forest); color: var(--forest); border-radius: 6px; }
.m-luogo .m-posbtn:disabled { opacity: .6; }
.m-luogo .m-poserr { margin-top: 6px; color: var(--rust); font-size: 12.5px; }

/* ===== Stile «Taccuino» (scelta in Impostazioni → Aspetto; html[data-stile="taccuino"]) ===== */
html[data-stile="taccuino"] {
  --bg: #D9C7A0; --surface: #F2E6C8; --line: #8C7550; --ink: #33281A; --ink-soft: #66543A;
  --forest: #3F5230; --forest-soft: #E3E3BE; --rust: #9A3B22; --rust-soft: #EBCFB9;
  --gold: #8A5E10; --gold-soft: #EFDDA3; --header-bg: #3A2D20; --header-ink: #F3E8CB; --radius: 2px;
  --sans: "Bitstream Charter", "Charis SIL", "Iowan Old Style", "Palatino Linotype", Georgia, "Liberation Serif", serif;
  --carta: url("data:image/png;base64,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");
}
html[data-stile="taccuino"][data-theme="dark"] {
  --bg: #17120D; --surface: #241C13; --line: #6B5A3E; --ink: #E9DDC0; --ink-soft: #A8966F;
  --forest: #6E8A52; --forest-soft: #26301D; --rust: #D2704C; --rust-soft: #3A1F15;
  --gold: #D2A94A; --gold-soft: #33280F; --header-bg: #0F0B07; --header-ink: #EBDFC3;
}
html[data-stile="taccuino"] body {
  background-image: var(--carta);
}
/* intestazione: marrone sobrio, filetto sottile */
html[data-stile="taccuino"] header.app-header,
html[data-stile="taccuino"] .sole-row { border-bottom: 1px solid #C9B27A; }
html[data-stile="taccuino"] header.app-header:has(+ .sole-row:not([hidden])) { border-bottom: 0; }
html[data-stile="taccuino"][data-theme="dark"] header.app-header,
html[data-stile="taccuino"][data-theme="dark"] .sole-row { border-bottom-color: #6B5A3E; }
html[data-stile="taccuino"] .app-header h1 { font-style: italic; font-weight: 600; letter-spacing: .02em; }
html[data-stile="taccuino"] .app-header .brand-icon { border-radius: 4px; }
html[data-stile="taccuino"] .app-header .app-version { font-family: var(--sans); font-style: italic; }
html[data-stile="taccuino"] .sos-btn { border-radius: 3px; letter-spacing: .08em; }
html[data-stile="taccuino"] .astro-meteo-inner,
html[data-stile="taccuino"] .sole-inner { border-radius: 3px; border: 1px solid rgba(201, 178, 122, .55); }
html[data-stile="taccuino"] .app-header input[type="date"],
html[data-stile="taccuino"] .app-header .today-btn,
html[data-stile="taccuino"] .theme-toggle-btn { border-radius: 3px; }
html[data-stile="taccuino"] .app-header .ref { font-style: italic; font-family: var(--sans); }

/* titoli e schede: carta semplice, filetto sottile */
html[data-stile="taccuino"] .section-title,
html[data-stile="taccuino"] .hunt-section h2 { font-style: italic; font-size: 17px; }
html[data-stile="taccuino"] .modal-sheet h3,
html[data-stile="taccuino"] .meteo-head h3 { font-style: italic; }
html[data-stile="taccuino"] .cat-card,
html[data-stile="taccuino"] .log-item,
html[data-stile="taccuino"] .info-box,
html[data-stile="taccuino"] .stat-box,
html[data-stile="taccuino"] .cal-box,
html[data-stile="taccuino"] .aperto-ora-box,
html[data-stile="taccuino"] .dove-box,
html[data-stile="taccuino"] .contingente-box,
html[data-stile="taccuino"] .m-box,
html[data-stile="taccuino"] .m-ora {
  border: 1px solid var(--line); border-radius: 3px; box-shadow: 0 1px 2px rgba(60, 40, 15, .15);
}
html[data-stile="taccuino"][data-theme="dark"] .cat-card,
html[data-stile="taccuino"][data-theme="dark"] .log-item,
html[data-stile="taccuino"][data-theme="dark"] .info-box { box-shadow: none; }
html[data-stile="taccuino"] .cat-card .species { font-size: 18px; font-weight: 700; }
html[data-stile="taccuino"] .cat-card .category { font-style: italic; }

/* etichette di stato: sobrie, in corsivo */
html[data-stile="taccuino"] .status-pill {
  background: transparent !important; border: 1.5px solid currentColor; border-radius: 3px;
  font-style: italic; font-weight: 700; padding: 3px 9px;
}
html[data-stile="taccuino"] .status-open { color: var(--forest); }
html[data-stile="taccuino"] .status-closed { color: var(--rust); }
html[data-stile="taccuino"] .status-check { color: var(--gold); }
html[data-stile="taccuino"] .m-rel .m-pill { border-radius: 3px; font-style: italic; text-transform: none; letter-spacing: .03em; font-size: 14px; }

/* schede e barra in basso */
html[data-stile="taccuino"] .hunt-tabs .hunt-tab,
html[data-stile="taccuino"] .hunt-tabs .subtab { border-radius: 3px; }
html[data-stile="taccuino"] nav.tabbar { background: #E4D3A8; border-top: 1px solid var(--line); }
html[data-stile="taccuino"][data-theme="dark"] nav.tabbar { background: #0F0B07; }
html[data-stile="taccuino"] nav.tabbar button.active { color: var(--rust); }

/* pulsanti, finestre, campi */
html[data-stile="taccuino"] .btn,
html[data-stile="taccuino"] .tema-segmentato label span,
html[data-stile="taccuino"] .cal-day,
html[data-stile="taccuino"] .cap-chip,
html[data-stile="taccuino"] .m-g,
html[data-stile="taccuino"] .meteo-close { border-radius: 3px; }
html[data-stile="taccuino"] .fab { background: var(--rust); }
html[data-stile="taccuino"] .modal-sheet,
html[data-stile="taccuino"] .meteo-sheet { border-radius: 3px; border-top: 1px solid var(--line); }
html[data-stile="taccuino"] input[type="text"],
html[data-stile="taccuino"] input[type="search"],
html[data-stile="taccuino"] select,
html[data-stile="taccuino"] textarea { border-radius: 3px; font-family: var(--sans); }
html[data-stile="taccuino"] a { color: #7A4A1E; }
html[data-stile="taccuino"][data-theme="dark"] a { color: #C9B27A; }

/* indicatore «tira giù per aggiornare» (la pagina non si muove) */
.tira-agg {
  position: fixed; top: calc(env(safe-area-inset-top) + 6px); left: 50%; z-index: 60;
  width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: var(--surface); color: var(--ink-soft); border: 1px solid var(--line); font-size: 22px; line-height: 1;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .3); pointer-events: none; opacity: .92;
}
.tira-agg[hidden] { display: none; }
.tira-agg.pronto { color: var(--forest); border-color: var(--forest); }

/* con una finestra aperta la pagina dietro non scorre (niente testo che si muove dietro) */
html:has(.modal-backdrop.active, .fab-menu-backdrop:not([hidden]), .lightbox-backdrop.active) { overflow: hidden; }
.meteo-sheet, .modal-sheet { overscroll-behavior: contain; }

/* nome dello stile «Tradizione» in un carattere da libro antico (IM Fell, licenza OFL; solo le lettere di «Tradizione») */
@font-face { font-family: "IM Fell Tradizione"; font-style: italic; font-display: swap; src: url("../fonts/im-fell-tradizione.woff2") format("woff2"); }
.tema-segmentato input[value="taccuino"] + span { font-family: "IM Fell Tradizione", Georgia, serif; font-style: italic; font-size: 16px; }

/* il puntino della «i» di cacciaTI è il pallino dorato della montagna del logo */
.pall { position: relative; display: inline-block; }
.pall::after {
  content: ""; position: absolute; left: 50%; bottom: .89em; width: .2em; height: .2em; margin-left: -.1em;
  border-radius: 50%; background: #C8982A;
}
html[data-stile="taccuino"] .pall::after { margin-left: -.06em; }

/* Calendario sul telefono e «Consiglia cacciaTI» */
.cal-ics, .prova-ics { margin-top: 12px; width: 100%; }
.consiglia-box { text-align: center; }
.consiglia-box .btn { margin-top: 12px; width: 100%; }
.consiglia-alt { display: flex; gap: 10px; }
.consiglia-alt .btn { flex: 1; }
.consiglia-qr { display: block; margin: 16px auto 6px; width: 180px; height: 180px; background: #fff; padding: 8px; border-radius: 6px; }
.consiglia-url { font-size: 12px; color: var(--ink-soft); word-break: break-all; }

/* Finestra della luna */
.luna-sheet #lunaCorpo { overflow-y: auto; }
.luna-tit { margin: 14px 2px 8px; }
.luna-riga { font-size: 13.5px; line-height: 1.45; margin: 0 2px 8px; color: var(--ink); }
.luna-fase { display: flex; align-items: center; gap: 12px; font-size: 13.5px; line-height: 1.45; margin: 0 2px 10px; }
.luna-ico { font-size: 44px; line-height: 1; }
.luna-prossime { display: grid; gap: 6px; font-size: 13.5px; margin: 0 2px 6px; }
.luna-prossime small { color: var(--ink-soft); }
.luna-ore .luna-g { font: inherit; font-size: 11.5px; cursor: pointer; }

/* Ricerca di un luogo nel meteo */
.m-cerca { margin: 0 2px 12px; }
.m-cerca-in { width: 100%; box-sizing: border-box; padding: 9px 12px; font: inherit; font-size: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink); }
.m-cerca-ris { margin-top: 6px; font-size: 13px; color: var(--ink-soft); }
.m-cerca-voce { display: block; width: 100%; text-align: left; padding: 8px 10px; margin-top: 4px; font: inherit; font-size: 13.5px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
.m-luogo .m-tornagps { margin-top: 8px; padding: 7px 12px; font-size: 13px; background: none; border: 1px solid var(--forest); color: var(--forest); border-radius: 6px; }
.m-cerca-voce small { display: block; color: var(--ink-soft); font-size: 12px; margin-top: 1px; }

/* Menu «Altro» delle voci del Registro: tiene corte le schede (Condividi, Modifica, Elimina) */
.azioni-menu summary { list-style: none; cursor: pointer; text-align: center; background: none; border: 1px solid var(--line); color: var(--ink-soft); border-radius: 6px; padding: 5px 9px; font-size: 12px; font-weight: 600; }
.azioni-menu summary::-webkit-details-marker { display: none; }
.azioni-menu[open] summary { border-color: var(--forest); color: var(--forest); }
.azioni-lista { display: flex; flex-direction: column; gap: 6px; }

/* Scelta di cosa condividere */
#condividiBackdrop .btn { display: block; width: 100%; margin-top: 10px; text-align: center; }
#condividiBackdrop .btn small { display: block; font-size: 12px; font-weight: 400; opacity: .8; margin-top: 2px; }
.azioni-menu[open] > summary { display: none; }
.log-item button.azioni-chiudi { background: none; border: 1px solid var(--line); color: var(--ink-soft); border-radius: 6px; padding: 5px 9px; font-size: 12px; font-weight: 600; }

/* Direzione di fuga dell'Anschuss */
.quick-fuga { margin: 0 0 12px; }
.quick-fuga[hidden] { display: none; }
.fuga-tit { font-size: 13px; font-weight: 600; color: var(--ink); margin-bottom: 6px; }
.fuga-tit small { font-weight: 400; color: var(--ink-soft); }
.fuga-riga { display: flex; align-items: center; gap: 14px; }
.fuga-rosa { display: grid; grid-template-columns: repeat(3, 42px); grid-template-rows: repeat(3, 42px); gap: 4px; flex-shrink: 0; }
.fuga-btn, .fuga-bussola { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 8px; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; padding: 0; }
.fuga-btn.sel { background: var(--forest); border-color: var(--forest); color: #fff; }
.fuga-bussola { font-size: 20px; border-radius: 50%; border-color: var(--forest); }
.fuga-info { font-size: 13px; line-height: 1.4; color: var(--ink-soft); height: 134px; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; overflow: hidden; flex: 1; min-width: 0; }
.fuga-info b { color: var(--ink); font-size: 14px; }
.quick-fuga-riga { color: var(--rust) !important; font-weight: 600; }
.torna-fuga { color: var(--rust); font-weight: 700; }
.torna-fuga-freccia { display: inline-block; font-size: 1.3em; line-height: 1; }
.fuga-info.fuga-attesa { background: var(--forest-soft); border: 2px solid var(--forest); border-radius: 10px; padding: 6px 12px; color: var(--ink); font-size: 14px; }
.fuga-attesa b { font-size: 16px; color: var(--forest); white-space: nowrap; }
.fuga-conta { display: block; font-size: 26px; font-weight: 700; color: var(--forest); margin: 2px 0; white-space: nowrap; }
.fuga-live { display: block; font-size: 14px; color: var(--ink-soft); white-space: nowrap; }
.fuga-live b { font-size: 14px; color: var(--ink); }
.torna-schermo { font-size: 12px; color: var(--ink-soft); text-align: center; margin: 4px 0 8px; }
@media (max-width: 350px) {
  .fuga-riga { gap: 8px; }
  .fuga-rosa { grid-template-columns: repeat(3, 38px); grid-template-rows: repeat(3, 38px); }
  .fuga-info { height: 122px; font-size: 12px; }
  .fuga-attesa b { font-size: 14px; }
  .fuga-conta { font-size: 20px; }
  .fuga-live { font-size: 12px; }
  .fuga-info.fuga-attesa { padding: 4px 8px; }
}

/* Fonti e dati */
.fonti-box #fontiCorpo { font-size: 13.5px; line-height: 1.5; padding-top: 4px; }
.fonti-tit { font-weight: 700; color: var(--forest); margin: 12px 0 3px; }
.fonti-lista { margin: 0; padding-left: 18px; }
.fonti-lista li { margin: 3px 0; }
.fonti-nota { color: var(--ink-soft); font-size: 12.5px; margin-top: 3px; }

/* Avviso «Novità» in cima alla scheda Caccia (data/avvisi.json) */
.avviso-novita {
  position: relative;
  margin: 0 0 12px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--gold);
  background: var(--gold-soft);
  border-radius: var(--radius);
  padding: 10px 36px 11px 12px;
  font-size: 13.5px;
  line-height: 1.4;
  color: var(--ink);
  touch-action: pan-y; /* lo scorrimento verticale resta della pagina, quello laterale chiude l'avviso */
}
.avviso-novita .avviso-tit { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 9px; font-weight: 700; font-size: 14.5px; }
.avviso-novita .avviso-timbro {
  display: inline-block;
  border: 1.5px solid var(--rust);
  color: var(--rust);
  border-radius: 999px;
  padding: 1px 8px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transform: rotate(-3deg);
}
.avviso-novita .avviso-data { font-size: 11.5px; color: var(--ink-soft); margin: 1px 0 4px; }
.avviso-novita ul { margin: 4px 0 8px; padding-left: 18px; }
.avviso-novita li { margin: 2px 0; }
.avviso-novita .avviso-x {
  position: absolute; top: 6px; right: 6px;
  border: 0; background: transparent; color: var(--ink-soft);
  font-size: 17px; line-height: 1; padding: 6px 8px; cursor: pointer;
}
.avviso-novita .avviso-bott { display: flex; flex-wrap: wrap; gap: 8px; }
.avviso-novita .avviso-bott button {
  border: 1px solid var(--forest); background: var(--forest); color: #fff;
  border-radius: 8px; padding: 7px 11px; font-size: 13px; cursor: pointer;
}
.avviso-novita .avviso-bott button.sec { background: transparent; color: var(--forest); }
