/* ========= FW2 – Light UI (Clean & Optimized) ========= */
:root{
  --fw-ink:#0f1e2e;
  --fw-sub:#6b7280;
  --fw-line:rgba(15,23,42,.10);
  --fw-softshadow:0 2px 8px rgba(15,23,42,.08), 0 4px 16px rgba(15,23,42,.04);
  --fw-card:#fff;
  --ok:#16a34a;
  --warn:#f59e0b;
  --alert:#dc2626;
}

/* Smooth Scroll für Anchor-Links */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}

/* ---------- Grundlayout ---------- */
.fw2-container{
  max-width:1100px; margin:0 auto; padding:16px; width:100%;
  color:var(--fw-ink);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-feature-settings:"ss01","cv02","cv10";
  color-scheme:light;
  overflow-x:hidden;
}
.fw2-container, .fw2-container *{ box-sizing:border-box; }
.fw2-container svg, .fw2-container img{ max-width:100%; height:auto; display:block; }

/* ---------- Quick-Pills ---------- */
.fw2-top{ display:grid; gap:8px; }
.fw2-upd{ font-size:.9rem; color:var(--fw-sub); margin-bottom:8px; }
.fw2-upd b{ font-weight:600; color:var(--fw-ink); }

.fw2-pills{
  display:grid; gap:8px;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:start;
}
@media (max-width:900px){ .fw2-pills{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

.pill{
  position:relative; min-height:80px;
  background:var(--fw-card); border:1px solid var(--fw-line);
  border-radius:12px; box-shadow:var(--fw-softshadow);
  padding:12px 16px;
  display:flex; flex-direction:column; justify-content:flex-start; align-items:flex-start;
  overflow:hidden;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

/* Hover-Effekt für klickbare Pills */
a:has(.pill):hover .pill {
  background-color: #f8fafc;
  border-color: rgba(15,23,42,.15);
  cursor: pointer;
}

/* Hover-Effekt für Pills mit inline background-color (Bus, LOWS↔LOWK, etc.) */
a:has(.pill):hover .pill[style*="background-color"] {
  opacity: 0.85;
  filter: brightness(0.95);
  background-color: inherit !important;
  border-color: rgba(15,23,42,.2) !important;
}

.pill .row{ display:flex; align-items:center; gap:8px; margin-bottom:0px; }
.pill .ico{ width:20px; height:20px; opacity:.75; }
.pill .k{ font-size:.86rem; font-weight:600; color:var(--fw-sub); line-height:1; }
.pill .v, .pill .sub{
  display:block; margin-left:30px; line-height:1.15;
}
.pill .v{ margin-top:2px; font-size:1.12rem; font-weight:500; }
.pill .sub{ 
  margin-top:2px; 
  font-size:.95rem; 
  color:#6b7280; 
  word-break:break-word;
  hyphens:auto;
  overflow-wrap:break-word;
  white-space:normal;
}

/* Kleinere Schrift für .sub auf mobilen Geräten */
@media (max-width:680px){ 
  .pill .sub{ font-size:.78rem; }
}

/* Bus-Pill als Link: Hover-Effekt (nur Cursor, keine Bewegung) */
a:has(.pill--bus) {
  display: block;
}
a:has(.pill--bus):hover {
  opacity: 0.95;
}
a:has(.pill--bus) .pill--bus {
  cursor: pointer;
}

/* TRA Ampelsystem: Grün (open) → Gelb (≥15min) → Orange (<15min) → Rot (closed) */
.pill--tra.is-open{ background:#ecfdf5; border-color:#a7f3d0; }
.pill--tra.is-warn-yellow{ background:#fefce8; border-color:#fef08a; }
.pill--tra.is-warn-orange{ background:#fff7ed; border-color:#fed7aa; }
.pill--tra.is-closed{ background:#fef2f2; border-color:#fecaca; }

.pill--tra .v{ color:#065f46; }
.pill--tra.is-warn-yellow .v{ color:#713f12; }
.pill--tra.is-warn-orange .v{ color:#7c2d12; }
.pill--tra.is-closed .v{ color:#7f1d1d; }

/* ---------- Stations ---------- */
.fw2-stations{
  display:grid; gap:8px;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
@media (max-width:1000px){ .fw2-stations{ grid-template-columns:1fr 1fr; } }
@media (max-width:680px){ .fw2-stations{ grid-template-columns:1fr; } }

.st{
  background:var(--fw-card); border:1px solid #d1d5db;
  border-radius:12px; box-shadow:var(--fw-softshadow);
  padding:0;
  overflow:hidden;
  position:relative;
  transition:box-shadow 0.3s ease, border-color 0.3s ease;
}
/* Soaring Active: Blue glow effect */
.st.soaring-active{
  box-shadow:0 0 16px rgba(59, 130, 246, 0.4), var(--fw-softshadow);
  border-color:#60a5fa;
}
.st-head{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:12px 16px; cursor:pointer;
  transition:background-color .2s ease;
  background:#fff;
  border-bottom:1px solid #e5e7eb;
  position:relative;
}
.st-head:hover{ background:#f9fafb; }
.st .name{ font-weight:500; color:#3a4451; font-size:16px; }

.st-body{
  padding:8px 16px 14px;
}

/* Toggle-Icon für Stationsboxen (nur mobil) */
.st-head .toggle-icon{
  display:none;
  width:20px;
  height:20px;
  transition:transform 0.3s ease;
  color:#6b7280;
}
@media (max-width:680px){
  .st-head .toggle-icon{
    display:block;
  }
  .st[aria-expanded="false"] .toggle-icon{
    transform:rotate(-90deg);
  }
}

/* Transitions für Stationsboxen (mobil einklappbar) */
@media (max-width:680px){
  .st-body{
    overflow:hidden;
    transition: max-height 0.3s ease, padding 0.3s ease, opacity 0.3s ease;
    max-height: 2000px;
  }
  .st[aria-expanded="false"] .st-body{
    max-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    opacity: 0;
  }
}
.st .meta{ display:flex; align-items:center; gap:8px; color:#8893a2; }
.st .sep{ opacity:.5; }

.st-collapsed-wind{
  display:none;
  align-items:center;
  gap:4px;
  font-size:13px;
  font-weight:500;
  white-space:nowrap;
  color:#3a4451;
}

.st-collapsed-arrow{
  width:16px;
  height:16px;
  display:inline-block;
  transition:transform 0.3s ease;
}

@media (max-width:680px){
  .st[aria-expanded="false"] .st-collapsed-wind{
    display:inline-flex;
  }
}

.tag--flow{ padding:.18rem .55rem; border-radius:999px; font-size:.8rem; line-height:1; }
.tag--calm{ background:#eef7ee; color:#176b2a; }
.tag--quiet{ background:#f0f9ff; color:#0c4a6e; }
.tag--steady{ background:#f0fdf4; color:#166534; }
.tag--laminar{ background:#e6f4ff; color:#0b63b6; }
.tag--gusty{ background:#ffecec; color:#b60b0b; }
.tag--turbulent{ background:#fef3c7; color:#92400e; }
.tag--strong{ background:#fff7ed; color:#c2410c; }
.tag--too-strong{ background:#fee2e2; color:#991b1b; }
.tag--storm{ background:#fde2e2; color:#991b1b; }
.tag--soaring{ background:#dbeafe; color:#1e40af; padding:.18rem .55rem; border-radius:999px; font-size:.8rem; line-height:1; }

.trend b{ font-weight:700; }
.trend--v b{ color:#16a34a; }
.trend--d b{ color:#475569; }

/* Windline Link Styling */
.windline-link {
  display: block;
  text-decoration: none;
  color: inherit;
  margin-top: 8px;
  padding: 8px;
  margin: 0 -8px;
  border-radius: 8px;
  transition: background-color 0.2s ease;
}
.windline-link:hover {
  background-color: #f8fafc;
  cursor: pointer;
}

.windline{ display:flex; align-items:center; gap:10px; }
.ico-wind{ width:26px; height:26px; opacity:.85; }

/* Windwerte als klickbarer Link */
.windvals-link {
  text-decoration: none;
  color: inherit;
  display: block;
  padding: 4px 8px;
  margin: -4px -8px;
  border-radius: 8px;
  transition: background-color 0.2s ease, transform 0.1s ease;
}

.windvals-link:hover {
  background-color: rgba(15, 23, 42, 0.04);
  cursor: pointer;
}

.windvals-link:active {
  transform: scale(0.98);
}

.windvals .now{ 
  font-size:2.6rem; 
  font-weight:200; 
  line-height:1;
}
.windvals .now b{ font-weight:200; }
.windvals .gusts{
  font-size:14px;
  font-weight:400;
  color:#6b7280;
  margin-top:4px;
  line-height:1.2;
}
.windvals .minline{
  font-size:14px;
  font-weight:400;
  color:#6b7280;
  margin-top:0px;
  line-height:1.2;
}
.windvals .gusts b,
.windvals .minline b{
  font-weight:400;
}

.st-div{ border:0; height:1px; background:var(--fw-line); margin:12px 0; }
.st-foot{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.dir{ display:flex; align-items:center; gap:8px; color:#1f2937; }
.dir .dir-arrow{ 
  width:22px !important; 
  height:22px !important; 
  opacity:.85; 
  transform-origin:50% 50%;
  flex-shrink:0;
}

.temps{ text-align:right; }
.temps .t{ font-size:28px; font-weight:200; color:#111827; }
.temps .t b, .temps .t strong{ font-weight:200 !important; }
.temps .c{ font-size:15px; font-weight:400; color:#6b7280; margin-top:2px; }
.temps .c b{ font-weight:400; }

/* Mobil einklappen */
@media (max-width:680px){
  .st-body{
    overflow:hidden;
    transition: max-height 0.3s ease, padding 0.3s ease, opacity 0.3s ease;
    max-height: 2000px;
  }
  .st[aria-expanded="false"] .st-body{
    max-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    opacity: 0;
  }
}

/* ---------- Wetterkarten ---------- */
.fw2-meteo{ 
  display:grid; 
  grid-template-columns:1fr; 
  gap:18px;
  margin-top: 8px;
  width: 100%;
  max-width: 100%;
}
.card, .fw2-subsection{
  background:var(--fw-card); border:1px solid #d1d5db;
  border-radius:12px; box-shadow:var(--fw-softshadow);
  overflow:hidden;
  width: 100%;
  max-width: 100%;
}
.fw2-subheader{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 20px; cursor:pointer; user-select:none;
  background:#fff;
  transition:background-color 0.2s ease;
  border-bottom:1px solid #e5e7eb;
}
.fw2-subheader:hover{
  background:#f9fafb;
}
.fw2-subheader .header-left{
  display:flex;
  align-items:center;
  gap:10px;
}
.fw2-subheader .ico{ width:22px; height:22px; }
.fw2-subheader h3{ margin:0; font-size:16px; font-weight:500; color:#3a4451; }
.fw2-subheader .toggle-icon{
  width:20px;
  height:20px;
  transition:transform 0.3s ease;
  color:#6b7280;
  flex-shrink:0;
}
.fw2-subsection[aria-expanded="false"] .toggle-icon{
  transform:rotate(-90deg);
}

/* Transitions für Cloudbase/DHV Sections */
.fw2-subcontent{
  overflow:hidden;
  transition: max-height 0.3s ease, padding 0.3s ease, opacity 0.3s ease;
  max-height: 2000px;
  padding:18px 18px 16px;
}
.fw2-subsection[aria-expanded="false"] .fw2-subcontent{ 
  max-height: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  opacity: 0;
}

.chip{
  background:#f6f8fb; border:1px solid rgba(15,23,42,.06);
  border-radius:10px; padding:10px 12px;
  display:flex; align-items:center; justify-content:space-between;
  color:#334155; font-weight:600;
}
.met-row{ display:grid; gap:10px; grid-template-columns:1fr 1fr 1fr; }
@media (max-width:700px){ .met-row{ grid-template-columns:1fr !important; } }
.met-row .chip:last-child .k{ display:none; }
.met-row .chip:last-child{ justify-content:center; }

/* Chart soll volle Breite nutzen, nicht im Grid */
.met-row .fw2-chart-scroll {
  grid-column: 1 / -1;
  margin-top: 10px;
}

/* DHV Text */
.dhv { 
  padding: 16px 20px;
  background: #fff;
  border-radius: 8px;
}

.dhv .meta { 
  color: #111827;
  font-weight: 600;
  margin-bottom: 12px;
  font-size: 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e5e7eb;
}

.dhv .body { 
  line-height: 1.6;
  color: #374151;
  font-size: 13px;
  margin-bottom: 12px;
}

.dhv .line { 
  margin: 8px 0;
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 6px 10px;
  background: #f9fafb;
  border-radius: 6px;
}

.dhv .line .label { 
  color: #6b7280;
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  min-width: 80px;
  flex-shrink: 0;
}

.dhv .line .val {
  color: #111827;
  font-size: 13px;
  font-weight: 500;
  flex: 1;
}

/* ---------- Titel & Spacings ---------- */
.fw2-page #primary.site-main{ min-height:auto !important; padding-top:.1rem !important; }
.fw2-page .entry-content{ margin-top:0 !important; padding-top:0 !important; }
.fw2-page .entry-content > *:first-child{ margin-top:.15rem !important; }

.fw2-title,
.fw2-page .entry-content h2.fw2-title{
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
  font-weight:300; letter-spacing:-0.02em; color:#1a1a1a;
  font-size:clamp(1.8rem,4vw,2.4rem);
  line-height:1.1; display:inline-block;
  margin:0 0 .5rem !important; padding:20px 0 2px 0;
  border-bottom:1px solid rgba(0,0,0,0.05); width:fit-content;
}
@media (max-width:680px){
  .fw2-title,
  .fw2-page .entry-content h2.fw2-title{ font-size:1.7rem; padding-bottom:1px; }
}

/* ========================================
   OLD WIND-CHARTS STYLES - DEPRECATED
   ======================================== */

.fw2-windcard{
  margin-bottom:1.5rem;
  background:var(--fw-card); border:1px solid var(--fw-line);
  border-radius:12px; box-shadow:var(--fw-softshadow);
  overflow:hidden; max-width:100%;
}
.fw2-windcard .fw2-subheader{
  display:flex; align-items:center; justify-content:space-between;
  background:#f8fafc; padding:.75rem 1rem; cursor:grab;
  border-bottom:1px solid rgba(0,0,0,0.05); user-select:none;
  transition:background-color .15s ease;
}
.fw2-windcard .fw2-subheader:hover{ background:#eef2f7; }
.fw2-windcard .fw2-subheader:active{ cursor:grabbing; }
.fw2-windcard .fw2-subheader h3{
  font-size:1.1rem; font-weight:500; margin:0; color:#111;
}
.fw2-windcard[data-open="false"] .fw2-subcontent{ display:none; }

.fw2-chart-scroll{
  overflow:hidden;
  -webkit-overflow-scrolling:touch;
  border-top:1px solid rgba(15,23,42,.06);
  background:#fff; border-radius:10px;
}
.fw2-chart{
  width:100%; height:260px;
}
@media (max-width:700px){ .fw2-chart{ height:240px; } }

/* Plotly Fix */
.fw2-chart .js-plotly-plot,
.fw2-chart .plot-container,
.fw2-chart .main-svg{ max-width:100% !important; }

/* ---------- Chart-Legenden ---------- */
.fw2-legend-wrap{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; flex-wrap:wrap; padding:6px 10px;
  background:#fafbfc; border-bottom:1px solid rgba(0,0,0,0.05);
}
.fw2-legend-above, .fw2-legend-below{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:8px 14px; margin:0; font-size:.92rem; color:#222;
}
.fw2-legend-item{
  display:inline-flex; align-items:center; gap:6px;
  margin:0; line-height:1.2; cursor:pointer;
}
.fw2-legend-swatch{
  width:12px; height:12px; border-radius:2px;
  display:inline-block; background:#64748b;
}
.fw2-legend-toolbar .fw2-rangebtn{
  border:1px solid rgba(0,0,0,.12); border-radius:8px;
  padding:.25rem .5rem; background:#fff;
  cursor:pointer; font-size:.9rem;
}
.fw2-legend-toolbar .fw2-rangebtn.is-active{
  background:#111; color:#fff; border-color:#111;
}
@media (max-width:700px){
  .fw2-legend-wrap{ flex-direction:column; align-items:flex-start; gap:8px; }
  .fw2-legend-toolbar{ order:2 !important; }
  .fw2-legend-above{ order:1 !important; }
  .fw2-legend-item{ font-size:12px; line-height:1.1; }
}

/* ========================================
   OLD WIND SECTION STYLES - DEPRECATED
   ======================================== */
.fw2-windgrid{ display:grid; gap:16px; grid-template-columns:1fr; } /* auch Desktop 1 Spalte */
.fw2-windcard{
  margin-bottom:1.5rem;
  border:1px solid rgba(0,0,0,0.05);
  border-radius:12px; background:#fff; overflow:hidden;
  max-width:100%;
}

/* ---------- DnD-Feedback (optional) ---------- */
.is-chosen{ opacity:.9; }
.is-dragging{ background:#f8fafc !important; }
.fw2-drop-placeholder{
  height:12px; margin:6px 0; border-radius:8px;
  background:rgba(15,23,42,.10);
}

/* ========================================
   WINDGRAPHEN SECTION - NEU
   ======================================== */

.fw2-wind-section {
  margin-top: 8px;
  width: 100%;
  max-width: 100%;
}

.fw2-wind-section .fw2-title {
  margin-bottom: 12px !important;
}

.wind-graphs-container {
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.04);
  overflow: hidden;
  display: grid;
  gap: 16px;
  padding: 16px 0;
  width: 100%;
  max-width: 100%;
}

.wind-graph-card {
  border-bottom: none;
  margin: 0 16px;
}

.wind-graph-card:last-child {
  border-bottom: none;
}

.wind-graph-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  background: #fff;
  cursor: pointer;
  transition: background-color 0.2s;
  border-bottom: 1px solid #e5e7eb;
}

.wind-graph-header:hover {
  background: #f9fafb;
}

.wind-graph-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  color: #3a4451;
}

.wind-graph-header .toggle-icon {
  transition: transform 0.3s;
}

.wind-graph-card[aria-expanded="false"] .toggle-icon {
  transform: rotate(-90deg);
}

.wind-graph-content {
  max-height: 0;
  padding: 0 20px;
  transition: max-height 0.3s ease, padding 0.3s ease;
  overflow: hidden;
}

.wind-graph-card[aria-expanded="true"] .wind-graph-content {
  max-height: 2000px;
  padding: 20px;
}

.wind-graph-controls {
  margin-bottom: 12px;
}

.cloudbase-card .wind-graph-controls,
.foehn-card .wind-graph-controls {
  margin-bottom: 8px;
}

.time-range-control {
  margin-bottom: 16px;
}

.time-range-control label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #6b7280;
  margin-bottom: 8px;
}

.time-range-buttons {
  display: flex;
  gap: 8px;
}

.time-btn {
  padding: 6px 16px;
  border: 1px solid #d1d5db;
  background: #f3f4f6;
  color: #6b7280;
  border-radius: 6px;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s;
}

.time-btn:hover {
  background: #e5e7eb;
  border-color: #9ca3af;
  color: #374151;
}

.time-btn.active {
  background: #3b82f6;
  color: #fff;
  border-color: #3b82f6;
}

.legend-control {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
  opacity: 0.5;
  background: #f9fafb;
}

.legend-item.active {
  opacity: 1;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

.legend-item:hover {
  background: #f3f4f6;
}

.legend-color {
  display: block;
  width: 16px;
  height: 16px;
  border-radius: 3px;
}

.legend-color-dashed {
  background-image: repeating-linear-gradient(
    90deg,
    currentColor 0px,
    currentColor 4px,
    transparent 4px,
    transparent 8px
  );
  background-color: transparent !important;
}

.legend-label {
  font-size: 14px;
  color: #374151;
  font-weight: 500;
}

.wind-graph-chart {
  background: transparent;
  min-height: 280px;
}

.wind-graph-chart > div {
  width: 100% !important;
}

.wind-graph-chart .js-plotly-plot,
.wind-graph-chart .plot-container,
.wind-graph-chart .plotly {
  width: 100% !important;
  max-width: 100% !important;
}

.chart-placeholder {
  width: 100%;
  height: 280px;
  max-width: 100%;
  overflow: hidden;
}

.wind-graph-chart {
  max-width: 100%;
  overflow: hidden;
}

/* Cloudbase & Föhn als separate Sections */
.cloudbase-card,
.foehn-card {
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.04);
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}

.cloudbase-card .chart-placeholder,
.foehn-card .chart-placeholder {
  height: 300px;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}

.cloudbase-card .wind-graph-chart,
.foehn-card .wind-graph-chart {
  overflow: hidden;
}

/* Höhenlinien-Legende unter dem Chart */
.cloudbase-height-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 8px 0 0 0;
  margin-top: 4px;
  border-top: 1px solid #e5e7eb;
}

.height-legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.height-legend-item .legend-color {
  width: 16px;
  height: 16px;
}

.height-label {
  font-size: 12px;
  color: #6b7280;
  font-weight: 400;
}

/* Nur BEVOR Plotly geladen ist, zeige "Lädt..." Text */
.chart-placeholder:empty {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9ca3af;
  font-size: 14px;
}

.chart-placeholder:empty::before {
  content: 'Chart wird geladen...';
}

/* Mobile Optimierung */
@media (max-width: 768px) {
  .fw2-container {
    padding: 6px;
    max-width: 100vw;
    overflow-x: hidden;
    box-sizing: border-box;
  }
  
  .fw2-wind-section {
    max-width: 100%;
    overflow: hidden;
  }
  
  .wind-graphs-container {
    max-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
  }
  
  .wind-graph-card {
    max-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
  }
  
  .wind-graph-content {
    max-height: 0 !important;
    padding: 0 10px !important;
    max-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
  }
  
  .wind-graph-card[aria-expanded="true"] .wind-graph-content {
    max-height: 1500px !important;
    padding: 10px !important;
  }
  
  .wind-graph-header {
    padding: 12px 16px;
  }
  
  .legend-control {
    gap: 1px;
    row-gap: 1px;
    max-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
  }
  
  .legend-item {
    padding: 2px 6px;
    gap: 3px;
  }
  
  .legend-label {
    font-size: 11px;
  }
  
  .legend-color {
    width: 10px;
    height: 10px;
  }
  
  .time-btn {
    padding: 5px 12px;
    font-size: 13px;
  }
  
  .wind-graph-chart {
    padding: 4px;
    min-height: 250px;
    max-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
  }
  
  .chart-placeholder {
    height: 250px;
    max-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
  }
  
  .cloudbase-card .chart-placeholder,
  .foehn-card .chart-placeholder {
    height: 250px;
    min-height: 250px;
  }
  
  .wind-graph-chart .js-plotly-plot,
  .wind-graph-chart .plotly,
  .wind-graph-chart .plot-container {
    max-width: 100% !important;
    overflow: hidden !important;
  }
  
  .wind-graph-controls {
    max-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
    margin-bottom: 2px;
  }
  
  .time-range-control {
    margin-bottom: 2px;
  }
  
  .time-range-control label {
    margin-bottom: 2px;
  }
  
  .time-range-buttons {
    max-width: 100%;
    overflow: hidden;
  }
  
  .cloudbase-height-legend {
    flex-direction: column;
    gap: 1px;
    padding: 2px 0 0 0;
    margin-top: 0;
  }
}

/* ==========================================
   WEBCAM SECTION
   ========================================== */

.fw2-webcam-section {
  margin: 8px 0 0 0;
  display: grid;
  gap: 16px;
  width: 100%;
  max-width: 100%;
}

/* ==========================================
   PANOMAX SECTION (deprecated - jetzt in webcam-section)
   ========================================== */

.fw2-panomax-section {
  margin: 8px 0 0 0;
  width: 100%;
  max-width: 100%;
}

.panomax-card {
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.04);
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}

.panomax-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  cursor: pointer;
  user-select: none;
  background: #fff;
  transition: background-color 0.2s;
  border-bottom: 1px solid #e5e7eb;
}

.panomax-header:hover {
  background: #f9fafb;
}

.panomax-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  color: #3a4451;
  display: flex;
  align-items: center;
  gap: 8px;
}

.panomax-header h3 svg {
  flex-shrink: 0;
}

.panomax-header .toggle-icon {
  transition: transform 0.3s ease;
}

.panomax-card[aria-expanded="false"] .panomax-header .toggle-icon {
  transform: rotate(-90deg);
}

.panomax-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
  padding: 0;
}

.panomax-card[aria-expanded="true"] .panomax-content {
  max-height: 800px;
  padding: 20px;
}

.panomax-iframe-container {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
  height: 0;
  overflow: hidden;
  background: #000;
  border-radius: 4px;
}

.panomax-iframe-container iframe,
.panomax-iframe-container video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

.panomax-loading {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 14px;
}

.panomax-error {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #ef4444;
  font-size: 14px;
  text-align: center;
}

.webcam-card {
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.04);
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}

/* Cloudbase Card - gleiche Struktur wie Webcam */
.cloudbase-card {
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.04);
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}

.cloudbase-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  cursor: pointer;
  user-select: none;
  background: #fff;
  transition: background-color 0.2s;
  border-bottom: 1px solid #e5e7eb;
}

.cloudbase-header:hover {
  background: #f9fafb;
}

.cloudbase-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  color: #3a4451;
  display: flex;
  align-items: center;
  gap: 8px;
}

.cloudbase-header .toggle-icon {
  transition: transform 0.3s ease;
}

.cloudbase-card[aria-expanded="false"] .cloudbase-header .toggle-icon {
  transform: rotate(-90deg);
}

.cloudbase-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  padding: 12px 20px 0 20px;
}

.cloudbase-card[aria-expanded="true"] .cloudbase-content {
  max-height: 2000px;
  padding: 12px 20px 20px 20px;
  overflow: visible;
}

.cloudbase-controls {
  margin-bottom: 8px;
}

.cloudbase-chart {
  background: transparent;
  min-height: 320px;
  position: relative;
}

.cloudbase-chart .chart-placeholder {
  height: 320px;
  overflow: visible;
  width: 100%;
  max-width: 100%;
}

.cloudbase-height-legend {
  margin-top: 2px;
}

/* Pressure Card - gleiche Struktur wie Cloudbase/Webcam */
.pressure-card {
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.04);
  overflow: hidden;
  width: 100%;
  max-width: 100%;
}

.pressure-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  cursor: pointer;
  user-select: none;
  background: #fff;
  transition: background-color 0.2s;
  border-bottom: 1px solid #e5e7eb;
}

.pressure-header:hover {
  background: #f9fafb;
}

.pressure-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  color: #3a4451;
  display: flex;
  align-items: center;
  gap: 8px;
}

.pressure-header .toggle-icon {
  transition: transform 0.3s ease;
}

.pressure-card[aria-expanded="false"] .pressure-header .toggle-icon {
  transform: rotate(-90deg);
}

.pressure-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  padding: 12px 20px 0 20px;
}

.pressure-card[aria-expanded="true"] .pressure-content {
  max-height: 2000px;
  padding: 12px 20px 20px 20px;
  overflow: visible;
}

.pressure-controls {
  margin-bottom: 8px;
}

.pressure-chart {
  background: transparent;
  min-height: 320px;
  position: relative;
}

.pressure-chart .chart-placeholder {
  height: 320px;
  overflow: visible;
  width: 100%;
  max-width: 100%;
}

/* Radiation Graph Styles */
.fw2-radiation-section {
  margin-top: 8px;
  width: 100%;
  max-width: 100%;
}

.radiation-card {
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.04);
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  transition: all 0.3s ease;
}

.radiation-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  cursor: pointer;
  user-select: none;
  border-bottom: 1px solid #e5e7eb;
  background: linear-gradient(to bottom, #fafafa, #ffffff);
}

.radiation-header h3 {
  font-size: 16px;
  font-weight: 500;
  color: #3a4451;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.radiation-header h3 svg {
  flex-shrink: 0;
}

.radiation-content {
  padding: 16px 20px 0 20px;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.3s ease;
}

.radiation-card[aria-expanded="true"] .radiation-content {
  max-height: 1000px;
  opacity: 1;
  padding: 16px 20px 20px 20px;
}

.radiation-card[aria-expanded="false"] .toggle-icon {
  transform: rotate(-90deg);
}

.radiation-controls {
  margin-bottom: 12px;
}

.radiation-chart {
  background: transparent;
  min-height: 320px;
  position: relative;
}

.radiation-chart .chart-placeholder {
  height: 320px;
  overflow: visible;
  width: 100%;
  max-width: 100%;
}

/* ========= Thermik-Prognose ========= */
.fw2-thermal-section {
  margin-top: 8px;
  width: 100%;
  max-width: 100%;
}

.thermal-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  transition: all 0.3s ease;
  box-sizing: border-box;
}

.thermal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  cursor: pointer;
  user-select: none;
  border-bottom: 1px solid #e5e7eb;
  background: linear-gradient(to bottom, #fafafa, #ffffff);
  transition: background 0.2s ease;
}

.thermal-header:hover {
  background: linear-gradient(to bottom, #f3f4f6, #fafafa);
}

.thermal-header h3 {
  font-size: 16px;
  font-weight: 400;
  color: #1f2937;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.thermal-header h3 svg {
  flex-shrink: 0;
}

.thermal-header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.thermal-peak-value {
  font-size: 13px;
  color: #059669;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  transition: opacity 0.2s ease;
}

/* Peak-Wert nur im zugeklappten Zustand anzeigen */
.thermal-card[aria-expanded="true"] .thermal-peak-value {
  display: none;
}

.thermal-card .toggle-icon {
  width: 20px;
  height: 20px;
  transition: transform 0.3s ease;
  color: #6b7280;
}

.thermal-card[aria-expanded="false"] .toggle-icon {
  transform: rotate(-90deg);
}

.thermal-content {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.3s ease;
  padding: 0;
}

.thermal-card[aria-expanded="true"] .thermal-content {
  max-height: 2000px;
  opacity: 1;
  padding: 18px;
}

.thermal-grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ========== SoarAlarm Section ========== */
.fw2-soaralarm-section {
  margin-top: 16px; /* Näher an Thermik-Box: 16px statt 24px */
}

.soaralarm-card {
  background: var(--fw-card); /* Weißer Hintergrund zurück */
  border: 1px solid var(--fw-line);
  border-radius: 12px;
  box-shadow: var(--fw-softshadow);
  overflow: hidden; /* Overflow hidden für border-radius */
}

.soaralarm-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  cursor: pointer;
  user-select: none;
  background: linear-gradient(to bottom, #ffffff 0%, #fafbfc 100%);
  border-bottom: 1px solid var(--fw-line);
  border-radius: 12px 12px 0 0; /* Radius oben für Header */
}

.soaralarm-header:hover {
  background: linear-gradient(to bottom, #fafbfc 0%, #f5f7fa 100%);
}

.soaralarm-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  color: var(--fw-ink);
  display: flex;
  align-items: center;
  gap: 8px;
}

.soaralarm-header h3 svg {
  flex-shrink: 0;
  color: #6b7280; /* Gleiche Farbe wie Bus-Icon */
}

/* Bus-Icon und Windrose-Icon beide in grau */
#gaisbergbus-card .soaralarm-header h3 svg {
  color: #6b7280;
}

.soaralarm-card .toggle-icon {
  width: 20px;
  height: 20px;
  transition: transform 0.3s ease;
  color: var(--fw-sub);
}

.soaralarm-card[aria-expanded="false"] .toggle-icon {
  transform: rotate(-90deg);
}

.soaralarm-content {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.3s ease;
  padding: 0;
}

.soaralarm-card[aria-expanded="true"] .soaralarm-content {
  max-height: 800px;
  opacity: 1;
  padding: 18px; /* Padding zurück für Abstand zur Card-Border */
}

/* Bus-Box braucht mehr Höhe für beide Routen */
#gaisbergbus-card[aria-expanded="true"] .soaralarm-content {
  max-height: 1200px;
}

.soaralarm-container {
  width: 100%;
  min-height: auto; /* Auto statt fixe 650px */
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent; /* Kein grauer Hintergrund */
  border-radius: 0;
  position: relative;
  padding: 0; /* Kein Padding - Content padding sorgt für Abstand */
  margin: 0; /* Kein Margin */
}

.soaralarm-placeholder {
  text-align: center;
  padding: 40px;
}

#load-soaralarm-btn {
  transition: all 0.2s ease;
}

#load-soaralarm-btn:hover {
  background: #2563eb !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

#load-soaralarm-btn:active {
  transform: translateY(0);
}

#svg-container {
  background: transparent;
  height: 680px; /* Höher für 3-zeilige Stats-Box */
  width: 600px;
  max-width: 100%;
  margin: 0 auto;
}

#svg-container canvas {
  max-width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.06)); /* Subtile Tiefe */
  border-radius: 4px;
}

#svg-container svg {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
}

@media (max-width: 768px) {
  #svg-container {
    height: auto;
    width: 100%;
    max-width: 100%; /* Volle Breite nutzen */
  }
  
  #svg-container canvas {
    width: 100% !important;
    height: auto !important;
  }
  
  .soaralarm-card[aria-expanded="true"] .soaralarm-content {
    padding: 0; /* Kein Padding - komplett Rand-zu-Rand */
  }
}

.soaralarm-loading {
  color: var(--fw-sub);
  font-size: 0.95rem;
}

.thermal-loading,
.thermal-error {
  text-align: center;
  padding: 40px 20px;
  color: #9ca3af;
}

/* ========================================
   GAISBERGBUS TIMETABLE - PROFESSIONAL DESIGN
   ======================================== */

/* Bus-Content ohne Extra-Padding (weil .soaralarm-content schon Padding hat) */
#gaisbergbus-card .soaralarm-content {
  padding: 0 !important;
}

.bus-timetable {
  padding: 20px 24px;
  background: #ffffff;
}

.bus-route {
  margin-bottom: 28px;
}

.bus-route:last-of-type {
  margin-bottom: 16px;
}

/* Moderne, cleane Route-Überschrift */
.bus-route-title {
  font-size: 13px;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0 0 14px 0;
  padding-bottom: 8px;
  border-bottom: 2px solid #e5e7eb;
}

.bus-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Clean, minimalistisches Design */
.bus-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px;
  background: #fafbfc;
  border-radius: 6px;
  border: 1px solid #f0f1f3;
  transition: all 0.15s ease;
}

.bus-item:hover {
  background: #f5f6f7;
  border-color: #e5e7eb;
  transform: translateX(2px);
}

/* Nächste Abfahrt - dynamische Farbe wie Bus-Pill (grün/gelb/orange/rot) */
.bus-next {
  /* Hintergrundfarbe wird per inline-style gesetzt basierend auf minutes_until */
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.bus-next:hover {
  filter: brightness(0.98);
  border-color: rgba(0, 0, 0, 0.12);
}

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

/* Kleinere, leichtere Zeit - passt besser zu anderen Schriften */
.bus-time-main {
  font-size: 13px;
  font-weight: 500;
  color: #111827;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.2px;
}

.bus-next .bus-time-main {
  color: #1e40af;
  font-weight: 600;
}

/* Dezente Verspätungs-Anzeige */
.bus-delay {
  font-size: 11px;
  font-weight: 600;
  color: #dc2626;
  background: #fef2f2;
  border: 1px solid #fee2e2;
  padding: 2px 8px;
  border-radius: 3px;
  letter-spacing: 0.3px;
}

/* Countdown rechts */
.bus-countdown {
  font-size: 12px;
  color: #9ca3af;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
  text-align: right;
}

.bus-next .bus-countdown {
  color: #3b82f6;
  font-weight: 600;
  font-size: 13px;
}

.bus-now {
  color: #059669;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.5px;
}

/* Dezente Update-Info */
.bus-last-update {
  text-align: center;
  font-size: 11px;
  color: #9ca3af;
  padding-top: 12px;
  margin-top: 12px;
  border-top: 1px solid #f0f1f3;
  font-weight: 500;
}

.bus-no-data,
.bus-error {
  text-align: center;
  padding: 32px 20px;
  color: #9ca3af;
  font-size: 13px;
  font-weight: 500;
}

.bus-error {
  color: #dc2626;
  background: #fef2f2;
  border-radius: 6px;
  margin: 12px;
}

/* Mobile Anpassungen */
@media (max-width: 768px) {
  .bus-timetable {
    padding: 16px 16px;
  }
  
  .bus-route-title {
    font-size: 12px;
    margin-bottom: 12px;
  }
  
  .bus-time-main {
    font-size: 13px;
  }
  
  .bus-countdown {
    font-size: 12px;
  }
  
  .bus-item {
    padding: 16px 14px;
  }
  
  .bus-next .bus-countdown {
    font-size: 13px;
  }
}

/* ========================================
   END GAISBERGBUS TIMETABLE
   ======================================== */

/* Thermik-Index Anzeige */
.thermal-index {
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
  border: 2px solid #86efac;
  border-radius: 12px;
  padding: 14px 16px;
  box-shadow: 0 2px 8px rgba(34, 197, 94, 0.1);
}

.thermal-index.rating-excellent {
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
  border-color: #22c55e;
}

.thermal-index.rating-good {
  background: linear-gradient(135deg, #fefce8 0%, #fef9c3 100%);
  border-color: #eab308;
}

.thermal-index.rating-moderate {
  background: linear-gradient(135deg, #fff7ed 0%, #fed7aa 100%);
  border-color: #f97316;
}

.thermal-index.rating-poor {
  background: linear-gradient(135deg, #fef2f2 0%, #fecaca 100%);
  border-color: #ef4444;
}

.index-header {
  display: flex;
  align-items: center;
  margin-bottom: 0;
}

.index-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.index-title svg {
  flex-shrink: 0;
}

.index-bar-container {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.index-value {
  align-self: flex-end;
  font-size: 18px;
  font-weight: 700;
  color: #1f2937;
}

.index-bar {
  height: 10px;
  background: rgba(0, 0, 0, 0.1);
  border-radius: 5px;
  overflow: hidden;
}

.index-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #22c55e 0%, #16a34a 100%);
  transition: width 0.6s ease;
  border-radius: 5px;
}

.thermal-index.rating-good .index-bar-fill {
  background: linear-gradient(90deg, #eab308 0%, #ca8a04 100%);
}

.thermal-index.rating-moderate .index-bar-fill {
  background: linear-gradient(90deg, #f97316 0%, #ea580c 100%);
}

.thermal-index.rating-poor .index-bar-fill {
  background: linear-gradient(90deg, #ef4444 0%, #dc2626 100%);
}

/* Alte Klassen entfernen */
.index-label,
.index-rating,
.index-rating-inline,
.index-value-row {
  display: none;
}

/* Thermik Zusammenfassung */
.thermal-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 8px 12px;
  background: #f9fafb;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
}

.summary-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: center;
}

.summary-label {
  font-size: 10px;
  color: #6b7280;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.summary-value {
  font-size: 13px;
  color: #1f2937;
  font-weight: 600;
}

/* Bedingungen */
.thermal-conditions h4 {
  font-size: 14px;
  font-weight: 600;
  color: #374151;
  margin: 0 0 12px 0;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.conditions-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.condition-item {
  display: grid;
  grid-template-columns: 24px 1fr auto auto;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 13px;
  transition: all 0.2s ease;
}

.condition-item.good {
  border-color: #86efac;
  background: #f0fdf4;
}

.condition-item.poor {
  border-color: #fecaca;
  background: #fef2f2;
}

.condition-icon {
  font-size: 16px;
}

.condition-label {
  font-weight: 600;
  color: #374151;
  font-size: 12px;
}

.condition-label-link {
  font-weight: 600;
  color: #2563eb;
  font-size: 12px;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.2s ease;
}

.condition-label-link:hover {
  color: #1d4ed8;
  text-decoration: underline;
}

.condition-value {
  color: #1f2937;
  font-weight: 600;
  font-size: 13px;
  text-align: right;
}

.condition-status {
  color: #22c55e;
  font-weight: 700;
  font-size: 14px;
}

.condition-item.poor .condition-status {
  color: #9ca3af;
}

/* Mobile Optimierungen */
@media (max-width: 768px) {
  .fw2-thermal-section {
    margin-top: 6px;
  }
  
  .thermal-header h3 {
    font-size: 15px;
  }
  
  .thermal-peak-value {
    font-size: 12px;
  }
  
  .thermal-card[aria-expanded="true"] .thermal-content {
    padding: 14px;
  }
  
  .thermal-index {
    padding: 16px;
  }
  
  .index-value {
    font-size: 20px;
  }
  
  .index-rating {
    font-size: 14px;
  }
  
  .thermal-summary {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 12px;
  }
  
  .summary-item {
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
  }
  
  .summary-label {
    font-size: 11px;
  }
  
  .summary-value {
    font-size: 13px;
  }
  
  .conditions-grid {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  
  .condition-item {
    padding: 8px 10px;
    font-size: 12px;
  }
  
  .condition-label {
    font-size: 11px;
  }
  
  .condition-value {
    font-size: 12px;
  }
}

/* ========= Föhn-Indikatoren (Mountain Winds) ========= */
.fw2-foehn-indicators-section {
  margin-top: 8px;
  width: 100%;
  max-width: 100%;
}

.foehn-indicators-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  transition: all 0.3s ease;
  box-sizing: border-box;
}

.foehn-indicators-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 18px;
  cursor: pointer;
  user-select: none;
  border-bottom: 1px solid #e5e7eb;
  background: linear-gradient(to bottom, #fafafa, #ffffff);
  transition: background 0.2s ease;
}

.foehn-indicators-header:hover {
  background: linear-gradient(to bottom, #f3f4f6, #fafafa);
}

.foehn-indicators-header h3 {
  font-size: 16px;
  font-weight: 400;
  color: #1f2937;
  margin: 0;
  display: flex;
  align-items: center;
}

.foehn-header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.foehn-update-time {
  font-size: 12px;
  color: #6b7280;
  font-weight: 500;
}

.foehn-indicators-card .toggle-icon {
  width: 20px;
  height: 20px;
  transition: transform 0.3s ease;
  color: #6b7280;
}

.foehn-indicators-card[aria-expanded="false"] .toggle-icon {
  transform: rotate(-90deg);
}

.foehn-indicators-content {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.3s ease;
  padding: 0;
}

.foehn-indicators-card[aria-expanded="true"] .foehn-indicators-content {
  max-height: 2000px;
  opacity: 1;
  padding: 18px;
}

.foehn-indicators-grid {
  margin-bottom: 12px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Moderne Tabellen-Darstellung */
.foehn-table {
  width: 100%;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #e5e7eb;
  box-sizing: border-box;
}

.foehn-table thead {
  background: linear-gradient(to bottom, #f9fafb, #f3f4f6);
}

.foehn-table th {
  padding: 10px 14px;
  text-align: left;
  font-weight: 600;
  color: #6b7280;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 1px solid #e5e7eb;
}

.foehn-table th:nth-child(2),
.foehn-table th:nth-child(3),
.foehn-table th:nth-child(4) {
  text-align: center;
}

.foehn-table tbody tr {
  transition: all 0.15s ease;
}

.foehn-table tbody tr:not(:last-child) {
  border-bottom: 1px solid #f3f4f6;
}

.foehn-table tbody tr:hover {
  background: rgba(59, 130, 246, 0.02);
}

.foehn-table td {
  padding: 11px 14px;
}

.foehn-table td .unit {
  font-size: 9px;
  color: #6b7280;
  font-weight: 400;
  margin-left: 1px;
}

.station-cell {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: nowrap;
}

.station-name {
  font-weight: 600;
  color: #111827;
  font-size: 13.5px;
  white-space: nowrap;
}

.station-country {
  font-size: 9px;
  font-weight: 600;
  color: #6b7280;
  background: rgba(107, 114, 128, 0.08);
  padding: 2px 6px;
  border-radius: 4px;
  letter-spacing: 0.02em;
  white-space: nowrap;
  flex-shrink: 0;
}

.station-age {
  font-size: 9px;
  color: #dc2626;
  font-weight: 600;
  background: rgba(220, 38, 38, 0.08);
  padding: 2px 6px;
  border-radius: 4px;
  white-space: nowrap;
  flex-shrink: 0;
}

.wind-cell {
  text-align: center;
  font-weight: 500;
  color: #374151;
  font-size: 13.5px;
  font-variant-numeric: tabular-nums;
}

.wind-cell strong {
  font-weight: 700;
  color: #111827;
}

.foehn-legend {
  padding: 12px 14px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}

.legend-items {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.foehn-legend .legend-item {
  font-size: 11px;
  padding: 4px 8px;
  border-radius: 5px;
  border: 1px solid rgba(0,0,0,0.08);
  color: #374151;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.legend-label {
  font-size: 11px;
  color: #6b7280;
  font-weight: 500;
  margin-left: 4px;
}

.foehn-no-data {
  text-align: center;
  padding: 40px 20px;
  color: #9ca3af;
}

.foehn-no-data p {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
}

.foehn-loading {
  text-align: center;
  padding: 40px 20px;
  color: #9ca3af;
  font-size: 14px;
  font-weight: 500;
}

/* Mobile Optimierung */
@media (max-width: 700px) {
  .foehn-indicators-header {
    padding: 12px 14px;
  }
  
  .foehn-indicators-header h3 {
    font-size: 15px;
  }
  
  .foehn-update-time {
    font-size: 11px;
  }
  
  .foehn-indicators-card[aria-expanded="true"] .foehn-indicators-content {
    padding: 14px;
  }
  
  .foehn-table {
    font-size: 12px;
    border-radius: 6px;
  }
  
  .foehn-table th {
    padding: 8px 6px;
    font-size: 10px;
  }
  
  .foehn-table td {
    padding: 9px 6px;
  }
  
  .station-cell {
    gap: 5px;
  }
  
  .station-name {
    font-size: 12px;
  }
  
  .station-country {
    font-size: 8px;
    padding: 1px 5px;
  }
  
  .station-age {
    font-size: 8px;
  }
  
  .wind-cell {
    font-size: 12.5px;
  }
  
  .legend-items {
    gap: 5px;
  }
  
  .foehn-legend .legend-item {
    font-size: 10px;
    padding: 3px 6px;
  }
  
  .legend-label {
    font-size: 10px;
    margin-left: 2px;
  }
  
  .foehn-legend {
    padding: 10px 12px;
  }
}

.webcam-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  cursor: pointer;
  user-select: none;
  background: #fff;
  transition: background-color 0.2s;
  border-bottom: 1px solid #e5e7eb;
}

.webcam-header:hover {
  background: #f9fafb;
}

.webcam-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  color: #3a4451;
  display: flex;
  align-items: center;
}

.webcam-header .toggle-icon {
  transition: transform 0.3s ease;
}

.webcam-card[aria-expanded="false"] .webcam-header .toggle-icon {
  transform: rotate(-90deg);
}

.webcam-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
  padding: 0;
}

.webcam-card[aria-expanded="true"] .webcam-content {
  max-height: 800px;
  padding: 20px;
}

.webcam-iframe-container {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 Aspect Ratio */
  height: 0;
  overflow: hidden;
  background: #000;
  border-radius: 4px;
}

.webcam-iframe-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

.webcam-loading {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 14px;
}

/* Mobile Optimierung */
@media (max-width: 768px) {
  .fw2-webcam-section {
    margin: 8px 0;
    gap: 8px;
  }
  
  .wind-graphs-container {
    gap: 8px;
    padding: 8px 0;
  }
  
  .wind-graph-card {
    margin: 0 4px 0 0;
  }
  
  .fw2-panomax-section {
    margin: 8px 0 0 0;
  }
  
  .webcam-header {
    padding: 12px 16px;
  }
  
  .webcam-header h3 {
    font-size: 16px;
  }
  
  .webcam-card[aria-expanded="true"] .webcam-content {
    max-height: 600px;
    padding: 15px;
  }
  
  /* Cloudbase & Pressure Mobile - kein seitlicher Abstand */
  .cloudbase-header,
  .pressure-header {
    padding: 12px 16px;
  }
  
  .cloudbase-content,
  .pressure-content {
    padding: 12px 12px 0 12px;
  }
  
  .cloudbase-card[aria-expanded="true"] .cloudbase-content,
  .pressure-card[aria-expanded="true"] .pressure-content {
    padding: 12px 12px 12px 12px;
  }
  
  /* Charts niedriger auf Mobile */
  .cloudbase-chart {
    min-height: 200px;
  }
  
  .cloudbase-chart .chart-placeholder {
    height: 200px;
  }
  
  .pressure-chart {
    min-height: 200px;
  }
  
  .pressure-chart .chart-placeholder {
    height: 200px;
  }
  
  /* Radiation Graph Mobile */
  .radiation-header {
    padding: 12px 16px;
  }
  
  .radiation-content {
    padding: 12px 12px 0 12px;
  }
  
  .radiation-card[aria-expanded="true"] .radiation-content {
    padding: 12px 12px 12px 12px;
  }
  
  .radiation-chart {
    min-height: 200px;
  }
  
  .radiation-chart .chart-placeholder {
    height: 200px;
  }
  
  .radiation-controls .legend-control {
    gap: 1px;
  }
  
  .radiation-controls .legend-item {
    padding: 1px 4px;
    gap: 2px;
    font-size: 11px;
  }
  
  .radiation-controls .legend-color {
    width: 10px;
    height: 10px;
  }
  
  /* Legenden kompakter auf Mobile */
  .cloudbase-controls .legend-control,
  .pressure-controls .legend-control {
    gap: 1px;
  }
  
  .cloudbase-controls .legend-item,
  .pressure-controls .legend-item {
    padding: 1px 4px;
    gap: 2px;
    font-size: 11px;
    line-height: 1.2;
  }
  
  .cloudbase-controls .legend-color,
  .pressure-controls .legend-color {
    width: 10px;
    height: 10px;
  }
  
  /* Höhen-Legende kompakter */
  .cloudbase-height-legend {
    margin-top: 2px;
  }
  
  .height-legend-item {
    padding: 1px 0;
    font-size: 11px;
    line-height: 1.2;
  }
  
  /* Höhen-Legende kompakter */
  .cloudbase-height-legend {
    margin-top: 4px;
  }
  
  .height-legend-item {
    padding: 2px 0;
    font-size: 12px;
  }
  
  /* Panomax Mobile - viel höher */
  .panomax-iframe-container {
    padding-bottom: 133%; /* Noch höher! 4:3 Portrait Aspect Ratio für mobile */
  }
  
  .panomax-card[aria-expanded="true"] .panomax-content {
    max-height: 1600px; /* Noch mehr Platz! Erhöht auf 1600px für mobile */
  }
  
  /* Panomax Video Mobile - weniger hoch (weniger schwarzer Rand) */
  .panomax-card[data-panomax="gaisberg-video"] .panomax-iframe-container {
    padding-bottom: 75%; /* 4:3 Aspect Ratio - kompakter für Video */
  }
  
  .panomax-card[data-panomax="gaisberg-video"][aria-expanded="true"] .panomax-content {
    max-height: 900px; /* Kleiner als 360° Box */
  }
}

/* ========= Hinweise und Sicherheitsinformationen ========= */
.fw2-info {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.info-card {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 12px;
  padding: 20px 24px;
  box-shadow: 0 1px 3px rgba(59, 130, 246, 0.1);
}

.info-card h3 {
  font-size: 16px;
  font-weight: 600;
  color: #1e40af;
  margin: 0 0 16px 0;
  padding-bottom: 12px;
  border-bottom: 1px solid #bfdbfe;
}

.info-content {
  color: #1e40af;
  font-size: 13px;
  line-height: 1.6;
}

.info-content p {
  margin: 0 0 12px 0;
}

.info-content p:last-child {
  margin-bottom: 0;
}

.info-content strong {
  font-weight: 600;
  color: #1e3a8a;
}

.info-content ul {
  margin: 12px 0;
  padding-left: 24px;
  list-style: disc;
}

.info-content li {
  margin: 6px 0;
}

.warning-card {
  background: #fef3c7;
  border-color: #fde047;
  box-shadow: 0 1px 3px rgba(234, 179, 8, 0.1);
}

.warning-card h3 {
  color: #92400e;
  border-bottom-color: #fde047;
}

.warning-card .info-content {
  color: #78350f;
}

.warning-card .info-content strong {
  color: #92400e;
}

@media (max-width: 768px) {
  .fw2-info {
    margin-top: 24px;
    gap: 12px;
  }
  
  .info-card {
    padding: 16px 18px;
  }
  
  .info-card h3 {
    font-size: 15px;
    margin-bottom: 12px;
  }
  
  .info-content {
    font-size: 12px;
  }
  
  .info-content ul {
    padding-left: 20px;
  }
}

/* ========= Quellenverweise ========= */
.fw2-sources {
  margin-top: 24px;
  padding-bottom: 40px;
}

.sources-card {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 20px 24px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.sources-card h3 {
  font-size: 16px;
  font-weight: 600;
  color: #374151;
  margin: 0 0 16px 0;
  padding-bottom: 12px;
  border-bottom: 1px solid #e5e7eb;
}

.sources-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.source-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  line-height: 1.5;
}

.source-item strong {
  color: #6b7280;
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.source-item span {
  color: #374151;
  font-weight: 400;
}

.source-item a {
  color: #2563eb;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s ease;
}

.source-item a:hover {
  color: #1d4ed8;
  text-decoration: underline;
}

@media (max-width: 768px) {
  .fw2-sources {
    margin-top: 16px;
    padding-bottom: 30px;
  }
  
  .sources-card {
    padding: 16px 18px;
  }
  
  .sources-card h3 {
    font-size: 15px;
    margin-bottom: 12px;
  }
  
  .source-item {
    font-size: 12px;
  }
  
  .source-item strong {
    font-size: 11px;
  }
}
