/* ==========================================================================
   Gefahrenradar · Schiessbetrieb je Region        rundum.dog · Ph2.4 (#1349)
   --------------------------------------------------------------------------
   Scope:  ALLES unter [data-rd-schiessradar]. Kein globaler Reset, keine @font-face,
           keine externe Anfrage. EINE bewusste Ausnahme ganz am Dateiende:
           `.rd-schiess-sec` — die Sektions-Hülle im Kanton-Template, die nur diese
           Datei kollabieren lassen kann (Begründung dort).
   Tokens: --rd-* aus dem Live-Theme (rundum.css, Sync-Ziel von design-tokens.json
           v3.2.0). Jeder Token hat einen Literal-Fallback, damit das Modul auch
           standalone im Harness korrekt aussieht.
   Latte:  rd-system--kanton-pillar.css — .info-box (Karte), .qa (Akzent-Kante
           links), .grounding-note (gestrichelte Quellen-Notiz). Das Widget ist
           ein Buerger dieses Systems, kein Fremdkoerper mit eigener Sprache.
   Ampel:  KEINE. Die Ph2-Daten tragen keine Stufe (bewusst, s. Plan Ph2.2) —
           also gibt es hier auch keine erfundene 1-4-Skala.
   ========================================================================== */

[data-rd-schiessradar]{
  /* Theme-Token erben, Literal als Fallback (standalone-faehig) */
  --rds-bg:            var(--rd-bg-soft, #FFFFFF);
  --rds-flaeche:       var(--rd-bg, #FDFAF6);
  --rds-flaeche-alt:   var(--rd-bg-alt, #F4EDE4);
  --rds-text:          var(--rd-text, #1A1A1A);
  --rds-text-2:        var(--rd-text-secondary, #595959);
  --rds-text-3:        var(--rd-text-tertiary, #666666);
  --rds-accent:        var(--rd-accent, #9A5526);
  --rds-accent-stark:  var(--rd-accent-strong, #944F22);
  --rds-border:        var(--rd-border, #E5DDD7);
  --rds-border-stark:  var(--rd-border-strong, #CDBFB3);

  /* Warn-Familie: exakt die Subtype-Token des Theme, nicht neu erfunden */
  --rds-warn-bg:       var(--rd-subtype-warn-bg, #F7E6C8);
  --rds-warn-fg:       var(--rd-subtype-warn-fg, #7B5516);
  --rds-warn-border:   var(--rd-subtype-warn-border, #ECD2A3);
  /* Ruhe-Familie: Natur-Subtype (Waldgruen, kein grelles Gruen) */
  --rds-ruhe-bg:       var(--rd-subtype-nature-bg, #E7EDDF);
  --rds-ruhe-fg:       var(--rd-subtype-nature-fg, #3A4E28);
  --rds-ruhe-border:   var(--rd-subtype-nature-border, #CCDCBC);

  --rds-font:          var(--rd-font-body, "Inter", system-ui, -apple-system, sans-serif);
  --rds-mono:          var(--rd-font-mono, "IBM Plex Mono", ui-monospace, monospace);
  --rds-r-sm:          var(--rd-r-sm, 8px);
  --rds-r-md:          var(--rd-r-md, 12px);
  --rds-pill:          var(--rd-r-pill, 9999px);
  --rds-shadow:        var(--rd-shadow-sm, 0 1px 2px rgba(20,19,17,.04), 0 2px 6px rgba(20,19,17,.04));
  --rds-read:          var(--rd-read, 68ch);

  font-family: var(--rds-font);
  color: var(--rds-text);
  max-width: 780px;
}
[data-rd-schiessradar] *{ box-sizing: border-box; }

/* --- Kopf ---------------------------------------------------------------- */
[data-rd-schiessradar] .rds-kicker{
  font-family: var(--rds-mono); font-size: 12px; letter-spacing: .04em;
  text-transform: uppercase; color: var(--rds-accent-stark);
  margin: 0 0 6px; display: inline-flex; align-items: center; gap: 8px;
}
[data-rd-schiessradar] .rds-kicker i{
  width: 7px; height: 7px; border-radius: var(--rds-pill);
  background: var(--rds-accent); display: inline-block; flex: none;
}
[data-rd-schiessradar] .rds-h{
  font-size: clamp(21px, 3.4vw, 26px); font-weight: 700; line-height: 1.18;
  margin: 0 0 6px; letter-spacing: -.01em; text-wrap: balance;
}
[data-rd-schiessradar] .rds-lead{
  margin: 0; color: var(--rds-text-2); max-width: var(--rds-read); font-size: 15.5px;
}

/* --- Status-Karte ("das Eine") ------------------------------------------- */
[data-rd-schiessradar] .rds-status{
  margin: 16px 0 0; padding: 15px 17px;
  background: var(--rds-bg); border: 1px solid var(--rds-border);
  border-left: 3px solid var(--rds-border-stark);   /* .qa-Idiom des Theme */
  border-radius: var(--rds-r-md); box-shadow: var(--rds-shadow);
}
[data-rd-schiessradar] .rds-status__top{ display: flex; align-items: flex-start; gap: 11px; }
[data-rd-schiessradar] .rds-status__ico{ flex: none; margin-top: 1px; }
[data-rd-schiessradar] .rds-status__t{
  margin: 0; font-size: 17.5px; font-weight: 700; line-height: 1.25;
}
[data-rd-schiessradar] .rds-status__sub{
  margin: 3px 0 0; font-family: var(--rds-mono); font-size: 12.5px; color: var(--rds-text-3);
}
[data-rd-schiessradar] .rds-status__hint{
  margin: 11px 0 0; padding-top: 10px; border-top: 1px solid var(--rds-border);
  font-size: 14px; color: var(--rds-text-2); max-width: var(--rds-read);
}

/* Zustand: heute Betrieb gemeldet — Warn-Familie */
[data-rd-schiessradar] .rds-status.is-heute{
  background: var(--rds-warn-bg); border-color: var(--rds-warn-border);
  border-left-color: var(--rds-warn-fg);
}
[data-rd-schiessradar] .rds-status.is-heute .rds-status__t,
[data-rd-schiessradar] .rds-status.is-heute .rds-status__ico{ color: var(--rds-warn-fg); }
[data-rd-schiessradar] .rds-status.is-heute .rds-status__sub{ color: var(--rds-warn-fg); opacity: .85; }
[data-rd-schiessradar] .rds-status.is-heute .rds-status__hint{ border-top-color: var(--rds-warn-border); color: #6A4A13; }

/* Zustand: heute nichts, spaeter schon — neutral, bewusst NICHT gruen */
[data-rd-schiessradar] .rds-status.is-kommend{ border-left-color: var(--rds-accent); }
[data-rd-schiessradar] .rds-status.is-kommend .rds-status__ico{ color: var(--rds-accent-stark); }

/* Zustand: im ganzen Fenster keine Meldung — Ruhe-Familie */
[data-rd-schiessradar] .rds-status.is-frei{
  background: var(--rds-ruhe-bg); border-color: var(--rds-ruhe-border);
  border-left-color: var(--rds-ruhe-fg);
}
[data-rd-schiessradar] .rds-status.is-frei .rds-status__t,
[data-rd-schiessradar] .rds-status.is-frei .rds-status__ico{ color: var(--rds-ruhe-fg); }
[data-rd-schiessradar] .rds-status.is-frei .rds-status__sub{ color: var(--rds-ruhe-fg); opacity: .85; }

/* --- Fail-visible Banner (veraltet / Fehler) ----------------------------- */
[data-rd-schiessradar] .rds-banner{
  display: flex; gap: 11px; align-items: flex-start; margin: 16px 0 0;
  background: var(--rds-warn-bg); border: 1px solid var(--rds-warn-border);
  border-radius: var(--rds-r-sm); padding: 13px 15px;
}
[data-rd-schiessradar] .rds-banner__ico{ flex: none; color: var(--rds-warn-fg); margin-top: 1px; }
[data-rd-schiessradar] .rds-banner__t{ margin: 0 0 2px; font-weight: 700; font-size: 14.5px; color: var(--rds-warn-fg); }
[data-rd-schiessradar] .rds-banner__d{ margin: 0; font-size: 14px; color: var(--rds-text-2); max-width: var(--rds-read); }

/* Veraltete Daten werden gezeigt, aber sichtbar zurueckgenommen —
   nie stumm als aktuell ausgeben. */
[data-rd-schiessradar] .rds-veraltet{ opacity: .55; filter: grayscale(.7); }

/* --- Tage + Plaetze ------------------------------------------------------ */
[data-rd-schiessradar] .rds-tage{ margin: 20px 0 0; }
[data-rd-schiessradar] .rds-tage__h{
  font-size: 15px; font-weight: 700; margin: 0 0 12px;
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
}
[data-rd-schiessradar] .rds-tage__h span{
  font-family: var(--rds-mono); font-size: 12px; font-weight: 400; color: var(--rds-text-3);
}
[data-rd-schiessradar] .rds-tag{ margin: 0 0 14px; }
[data-rd-schiessradar] .rds-tag__d{
  font-family: var(--rds-mono); font-size: 12.5px; color: var(--rds-text-3);
  margin: 0 0 6px 2px; letter-spacing: .02em;
}
[data-rd-schiessradar] .rds-tag__d b{ color: var(--rds-text); font-weight: 600; }
[data-rd-schiessradar] .rds-tag.is-heute .rds-tag__d b{ color: var(--rds-warn-fg); }

[data-rd-schiessradar] .rds-platz{
  background: var(--rds-bg); border: 1px solid var(--rds-border);
  border-radius: var(--rds-r-sm); padding: 11px 13px; margin: 0 0 7px;
}
[data-rd-schiessradar] .rds-platz__n{
  margin: 0; font-size: 15px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere;
}
[data-rd-schiessradar] .rds-zeiten{
  display: flex; flex-wrap: wrap; gap: 5px; margin: 7px 0 0; padding: 0; list-style: none;
}
[data-rd-schiessradar] .rds-zeiten li{
  font-family: var(--rds-mono); font-size: 12.5px; line-height: 1.2;
  background: var(--rds-flaeche-alt); border: 1px solid var(--rds-border);
  border-radius: var(--rds-pill); padding: 5px 10px; color: var(--rds-text);
}
[data-rd-schiessradar] .rds-zeiten li.is-ohne{
  background: transparent; border-style: dashed; color: var(--rds-text-3);
}
[data-rd-schiessradar] .rds-platz__q{
  margin: 7px 0 0; font-size: 12.5px; color: var(--rds-text-3); overflow-wrap: anywhere;
}
[data-rd-schiessradar] .rds-platz__q b{ font-weight: 500; color: var(--rds-text-3); }

/* --- Weitere Tage (eingeklappt) ------------------------------------------ */
[data-rd-schiessradar] .rds-mehr{
  border: 1px solid var(--rds-border); border-radius: var(--rds-r-sm);
  background: var(--rds-flaeche); margin: 4px 0 0;
}
[data-rd-schiessradar] .rds-mehr > summary{
  list-style: none; cursor: pointer; min-height: 44px;
  display: flex; align-items: center; gap: 9px; padding: 10px 13px;
  font-size: 14.5px; font-weight: 600; color: var(--rds-accent-stark);
}
[data-rd-schiessradar] .rds-mehr > summary::-webkit-details-marker{ display: none; }
[data-rd-schiessradar] .rds-mehr > summary:focus-visible{ outline: 2px solid var(--rds-accent); outline-offset: -2px; border-radius: var(--rds-r-sm); }
[data-rd-schiessradar] .rds-mehr__chev{ flex: none; transition: transform .2s cubic-bezier(.23,1,.32,1); }
[data-rd-schiessradar] .rds-mehr[open] .rds-mehr__chev{ transform: rotate(180deg); }
[data-rd-schiessradar] .rds-mehr__body{ padding: 2px 13px 8px; }
[data-rd-schiessradar] .rds-mehr__zahl{ font-family: var(--rds-mono); font-size: 12px; font-weight: 400; color: var(--rds-text-3); }

/* --- Quelle + Stand (OGD-Pflicht, in JEDEM Zustand sichtbar) ------------- */
[data-rd-schiessradar] .rds-quelle{
  display: flex; gap: 10px; align-items: flex-start; margin: 18px 0 0;
  background: var(--rds-bg); border: 1px dashed var(--rds-border-stark);
  border-radius: var(--rds-r-sm); padding: 11px 14px;
  font-family: var(--rds-mono); font-size: 11.5px; line-height: 1.65;
  color: var(--rds-text-2); max-width: var(--rds-read);
}
[data-rd-schiessradar] .rds-quelle__ico{ flex: none; color: var(--rds-text-3); margin-top: 2px; }
[data-rd-schiessradar] .rds-quelle b{ color: var(--rds-accent-stark); font-weight: 700; }
[data-rd-schiessradar] .rds-quelle a{ color: var(--rds-accent-stark); text-decoration: underline; }
[data-rd-schiessradar] .rds-quelle a:hover{ text-decoration: none; }
[data-rd-schiessradar] .rds-quelle p{ margin: 0; }
[data-rd-schiessradar] .rds-quelle p + p{ margin-top: 4px; }

/* --- Ladezustand --------------------------------------------------------- */
[data-rd-schiessradar] .rds-laedt{
  margin: 16px 0 0; padding: 15px 17px;
  border: 1px dashed var(--rds-border); border-radius: var(--rds-r-md);
  font-family: var(--rds-mono); font-size: 13px; color: var(--rds-text-3);
}

@media (prefers-reduced-motion: reduce){
  [data-rd-schiessradar] *{ transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* --------------------------------------------------------------------------
   Sektions-Hülle im Kanton-Hub (taxonomy-standort-kanton.php)
   --------------------------------------------------------------------------
   Eine `.rd-grid-sec` bringt live 64 px Polsterung oben UND unten mit (am
   Objekt gemessen, nicht geschätzt). Rendert das Modul nichts — kein JS,
   blockierter Abruf, oder Selbst-Entfernung auf einer Seite ohne Kantonsbezug —
   bliebe genau dieses 128-px-Band als leerer Kasten stehen. Das ist der Fehler,
   den das ganze Widget vermeiden soll, nur eine Ebene höher.

   Anker ist `.rds-kopf`: den schreibt das Modul als ERSTES, schon im
   Ladezustand. Also sichtbar ab dem Moment, in dem etwas zu zeigen ist, und
   kein Nachrutschen des Layouts nach dem Abruf.
   -------------------------------------------------------------------------- */
.rd-schiess-sec:not(:has(.rds-kopf)){ display: none; }

/* Und derselbe Zustand eine Ebene höher: kollabiert die Sektion, muss auch ihr
   Sprungziel in der Quick-Nav verschwinden. Sonst bliebe ein Link stehen, der
   ins Nichts springt — die Nav und die Sektion sind Geschwister unter <main>,
   deshalb trägt das :has() am gemeinsamen Vorfahren. (Carla-Finding 3) */
[data-rd-kanton-hub]:not(:has(.rds-kopf)) .rd-quicknav__link[href="#schiessen-h"]{ display: none; }
