:root {
  --bg: #0b0f14;
  --panel: #121a24;
  --panel-2: #0e151d;
  --row-alt: #0f161f;
  --border: #1d2836;
  --border-2: #26374a;
  --text: #c9d4e0;
  --text-strong: #eef3f8;
  --muted: #7f8ea0;
  --red: #d32f2f;
  --red-2: #e53935;
  --green: #2e7d32;
  --green-2: #43a047;
  --blue: #1565c0;
  --yellow: #f4c542;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  height: 100%;
  background: var(--bg);
  color: var(--text);
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16.5px;
}

button, input, select { font-family: inherit; color: inherit; }

/* ---------------- Topbar ---------------- */
.toplogo {
  width: 100%;
  background: linear-gradient(90deg, #0a0e13 0%, #0d141c 55%, #101a23 100%);
  border-bottom: 1px solid var(--border);
  text-align: center;
  padding: 6px 12px;
  line-height: 0;
}
.toplogo img {
  display: inline-block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 120px;
}
.topbar {
  display: flex;
  align-items: stretch;
  height: 116px;
  background: #2e3740;
  border-bottom: 1px solid var(--border);
  overflow: hidden;
}

.brand {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 22px;
  border-right: 1px solid var(--border);
  min-width: 230px;
}
.brand-logo {
  display: block;
  height: 100px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}
.brand-main { display: flex; align-items: baseline; gap: 10px; }
.brand-call {
  font-size: 36px;
  font-weight: 800;
  letter-spacing: 1px;
  color: #f0a825;
}
.brand-wave { width: 84px; height: 22px; color: #f0a825; }
.brand-sub {
  font-family: "Segoe Script", "Brush Script MT", "Comic Sans MS", cursive;
  font-size: 32px;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: #ffffff;
  line-height: 1;
}
.brand-tags .dot { color: var(--muted); }
.brand-tags {
  display: flex;
  gap: 6px;
  margin-top: 3px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
}
.t-dx { color: #f4c542; }
.t-sota { color: #e53935; }
.t-pota { color: #43a047; }

.brand-title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 22px;
  border-right: 1px solid var(--border);
}
.brand-title h1 {
  margin: 0;
  font-size: 36px;
  font-weight: 800;
  letter-spacing: 1px;
  color: #ffffff;
}
.brand-title h1 span { color: #f0a825; }
.title-sub {
  font-size: 12.5px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 4px;
}
.title-sub i { color: #f0a825; font-style: normal; }

.mainnav {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 14px;
}
.tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 88px;
  height: 62px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--muted);
  font-size: 14px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.tab .ic { font-size: 24px; filter: grayscale(1) brightness(1.6); }
.mainnav a.tab { text-decoration: none; }
.tab:hover { color: var(--text-strong); background: #16202b; }
.tab.active {
  background: var(--red);
  border-color: var(--red-2);
  color: #fff;
  box-shadow: 0 4px 14px rgba(211, 47, 47, 0.4);
}
.tab.active .ic { filter: none; }

.hero {
  position: relative;
  margin-left: auto;
  width: 340px;
  min-width: 200px;
  background:
    radial-gradient(120% 90% at 70% 30%, rgba(240, 168, 37, 0.20), transparent 60%),
    linear-gradient(180deg, #14202b 0%, #0b1119 100%);
  border-left: 1px solid var(--border);
  overflow: hidden;
}
.hero-glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 45% at 62% 42%, rgba(245, 180, 60, 0.35), transparent 70%),
    linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, .55) 100%);
}
.hero-logo {
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  text-align: right;
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.hero-call { font-size: 24px; font-weight: 800; color: #fff; letter-spacing: 1px; }
.hero-place {
  font-family: "Segoe Script", "Brush Script MT", cursive;
  font-size: 26px;
  color: #f0c46a;
  margin-top: 2px;
}

.topclock {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  padding: 0 24px;
  border-left: 1px solid var(--border);
}
.tc-label {
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
}
.tc-time {
  font-size: 34px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #f8e000;
  font-variant-numeric: tabular-nums;
}

/* ---------------- Filterbar ---------------- */
.filterbar {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  padding: 12px 16px;
  background: #0a0e13;
  border-bottom: 1px solid var(--border);
}
.fg-dxcc .select { margin-top: 2px; }
.fgroup {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 12px;
}
.flabel {
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
}
.pills { display: flex; flex-wrap: wrap; gap: 6px; }
.pill {
  padding: 6px 12px;
  border-radius: 8px;
  background: #1a2634;
  border: 1px solid var(--border-2);
  color: #b9c6d4;
  font-size: 15px;
  cursor: pointer;
  transition: background .12s, border-color .12s, color .12s;
  white-space: nowrap;
}
.pill:hover { background: #223243; color: #fff; }
.pill.active { background: var(--red); border-color: var(--red-2); color: #fff; }
.pill.active.blue { background: var(--blue); border-color: #1976d2; }
.pill.active.sota { background: var(--red); border-color: var(--red-2); }
.pill.active.pota { background: var(--green); border-color: var(--green-2); }
.pill.active.dx { background: var(--yellow); border-color: #d4a017; color: #0b1620; }

/* MODE-Pills: je Mode eigene Farbe (aktiv) */
.pill.active.m-ssb  { background: #4fc3f7; border-color: #4fc3f7; color: #0b1620; }
.pill.active.m-cw   { background: #f4c542; border-color: #f4c542; color: #0b1620; }
.pill.active.m-ft8  { background: #26c6da; border-color: #26c6da; color: #0b1620; }
.pill.active.m-ft4  { background: #9575cd; border-color: #9575cd; color: #fff; }
.pill.active.m-rtty { background: #ef5350; border-color: #ef5350; color: #fff; }
.pill.active.m-psk  { background: #ec407a; border-color: #ec407a; color: #fff; }
.pill.active.m-am   { background: #ffa726; border-color: #ffa726; color: #0b1620; }
.pill.active.m-fm   { background: #66bb6a; border-color: #66bb6a; color: #0b1620; }

/* MODE-Spalte: gleiche Farben wie die Pills, gefüllt mit dunkelgrauer Schrift */
.mode-badge.m-ssb  { background: #4fc3f7; border-color: #4fc3f7; color: #333; }
.mode-badge.m-cw   { background: #f4c542; border-color: #f4c542; color: #333; }
.mode-badge.m-ft8  { background: #26c6da; border-color: #26c6da; color: #333; }
.mode-badge.m-ft4  { background: #9575cd; border-color: #9575cd; color: #333; }
.mode-badge.m-rtty { background: #ef5350; border-color: #ef5350; color: #333; }
.mode-badge.m-psk  { background: #ec407a; border-color: #ec407a; color: #333; }
.mode-badge.m-am   { background: #ffa726; border-color: #ffa726; color: #333; }
.mode-badge.m-fm   { background: #66bb6a; border-color: #66bb6a; color: #333; }

/* ---------------- Layout ---------------- */
.layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  padding: 14px 16px 20px;
  align-items: start;
}

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

.panel {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
  box-shadow: var(--shadow);
}
.panel-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: #aab8c7;
  margin-bottom: 12px;
}
.ph-ic { font-size: 18px; }

.search {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #0b131b;
  border: 1px solid var(--border-2);
  border-radius: 9px;
  padding: 9px 11px;
}
.search .s-ic { opacity: .6; }
.search input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--text-strong);
  font-size: 16px;
}
.search input::placeholder { color: #5f6f80; }

.select {
  width: 100%;
  background: #0b131b;
  border: 1px solid var(--border-2);
  border-radius: 9px;
  padding: 10px 12px;
  color: var(--text);
  font-size: 16px;
  outline: none;
  cursor: pointer;
}
.select:focus { border-color: #33506e; }

.switch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 2px;
  cursor: pointer;
  user-select: none;
}
.switch + .switch { border-top: 1px solid #16202b; }
.sw-l { display: flex; align-items: center; gap: 10px; color: #c2cedb; font-size: 16px; }
.sw-flag { font-size: 20.5px; }
.sw-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px; height: 20px;
  border-radius: 6px;
  font-size: 14.5px;
  color: #fff;
}
.sw-tag.sota { background: var(--red); }
.sw-tag.pota { background: var(--green); }
.switch input { display: none; }
.slider {
  width: 42px; height: 22px;
  background: #2a3644;
  border-radius: 20px;
  position: relative;
  transition: background .15s;
  flex-shrink: 0;
}
.slider::after {
  content: "";
  position: absolute;
  top: 2px; left: 2px;
  width: 18px; height: 18px;
  background: #8fa0b2;
  border-radius: 50%;
  transition: transform .15s, background .15s;
}
.switch input:checked + .slider { background: var(--red); }
.switch input:checked + .slider::after { transform: translateX(20px); background: #fff; }

/* ---------------- Content / table ---------------- */
.content {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.content-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  background: #0d141c;
}
.ch-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 20.5px;
  font-weight: 700;
  letter-spacing: .5px;
  color: var(--text-strong);
}
.ch-ic { color: #f0a825; }
.ch-status { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--muted); }
.ch-status .sep { opacity: .4; }
.dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.dot.on { background: #34d058; box-shadow: 0 0 8px rgba(52, 208, 88, .8); }
.dot.off { background: #d33; box-shadow: 0 0 8px rgba(221, 51, 51, .7); }

.table-wrap { max-height: calc(100vh - 84px - 96px - 120px); overflow-y: auto; }
.spot-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
}
.spot-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  text-align: left;
  padding: 11px 14px;
  background: #0f1720;
  color: #94a4b6;
  font-size: 13px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  border-bottom: 1px solid var(--border-2);
  font-weight: 700;
}
.spot-table tbody td {
  padding: 9px 14px;
  border-bottom: 1px solid #131d28;
  white-space: nowrap;
}
.spot-table tbody tr:nth-child(even) { background: var(--row-alt); }
.spot-table tbody tr:hover { background: #17232f; }

.c-time { width: 70px; }
.c-call { width: 1%; }
.c-spotter { width: 110px; }
.c-freq { width: 1%; }
.c-band { width: 1%; }
.c-mode { width: 1%; }
.c-tags { width: 190px; }
.c-comment { width: 100%; }
.c-date { width: 92px; }

.cell-time { color: #9fb0c1; font-variant-numeric: tabular-nums; }
.cell-date { color: var(--muted); font-variant-numeric: tabular-nums; }
.age {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 5px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  color: #fff;
  border: 1px solid var(--border-2);
  border-radius: 4px;
  vertical-align: middle;
  font-variant-numeric: tabular-nums;
}
.age:empty { display: none; }
.cell-spotter { color: #b9c6d4; font-weight: 600; letter-spacing: .3px; }
.cell-call { color: var(--yellow); font-weight: 700; letter-spacing: .3px; }
.cell-freq { color: #cdd9e5; font-weight: 600; font-variant-numeric: tabular-nums; }
.cell-band { color: #9fd0ff; font-weight: 600; }
.cell-mode { color: #9fd0ff; font-weight: 600; }
.mode-badge {
  display: inline-block;
  color: #9fd0ff;
  border: 1px solid var(--border-2);
  border-radius: 4px;
  padding: 1px 6px;
  line-height: 1.3;
  vertical-align: middle;
  font-weight: 600;
}
.cell-comment { color: #93a3b4; max-width: 360px; overflow: hidden; text-overflow: ellipsis; }

.land { display: inline-flex; align-items: center; gap: 8px; color: #cbd6e2; }
.flag { font-size: 19px; line-height: 1; }

.dxcc-code {
  display: inline-block;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: .5px;
  color: #fff;
  border: 1px solid var(--border-2);
  border-radius: 4px;
  padding: 1px 5px;
  vertical-align: middle;
}

.call-link { color: inherit; text-decoration: none; }
.call-link:hover { text-decoration: underline; }
.ref-link { color: inherit; text-decoration: none; }
.ref-link:hover { text-decoration: underline; }

.tag {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .8px;
  margin-right: 6px;
  color: #fff;
}
.tag.sota { background: var(--red); }
.tag.pota { background: var(--green); }
.ref { color: #93a3b4; font-size: 14.5px; font-variant-numeric: tabular-nums; }

tr.row-new { animation: flash 2.6s ease-out; }
@keyframes flash {
  0%   { background: rgba(211, 47, 47, 0.55); }
  30%  { background: rgba(211, 47, 47, 0.35); }
  100% { background: transparent; }
}

.empty-hint { padding: 40px; text-align: center; color: var(--muted); }

/* scrollbars */
.table-wrap::-webkit-scrollbar { width: 10px; }
.table-wrap::-webkit-scrollbar-track { background: #0b1119; }
.table-wrap::-webkit-scrollbar-thumb { background: #24313f; border-radius: 6px; }

@media (max-width: 1100px) {
  .filterbar { grid-template-columns: 1fr 1fr; }
  .layout { grid-template-columns: 1fr; }
  .hero { display: none; }
}

/* =======================================================================
   Mobile / Tablet  (<= 820px)  – reine Darstellung, keine Logik
   ======================================================================= */
html, body { max-width: 100%; }
body { overflow-x: clip; }

.mobilebar { display: none; }

@media (max-width: 820px) {

  /* ---- Kompakter Header ---- */
  .topbar {
    flex-wrap: wrap;
    height: auto;
    padding: 8px 10px 6px;
    gap: 4px 8px;
    align-items: center;
  }
  .brand { min-width: 0; padding: 4px 8px; border-right: none; }
  .brand-logo { height: 64px; }
  .toplogo { padding: 5px 10px; }
  .toplogo img { max-height: 76px; }
  .brand-call { font-size: 24px; }
  .brand-wave { width: 46px; height: 15px; }
  .brand-sub { font-size: 22px; }
  .brand-tags { font-size: 11px; letter-spacing: 1.5px; gap: 6px; }
  .brand-title {
    padding: 4px 10px;
    border-right: none;
    border-left: 1px solid var(--border);
  }
  .brand-title h1 { font-size: 24px; }
  .title-sub { font-size: 9px; letter-spacing: 1.8px; margin-top: 2px; }

  .mainnav {
    order: 3;
    width: 100%;
    padding: 2px 0 0;
    gap: 4px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .mainnav::-webkit-scrollbar { display: none; }
  .tab {
    flex: 0 0 auto;
    min-width: 68px;
    height: 48px;
    font-size: 11.5px;
    letter-spacing: 0.8px;
  }
  .tab .ic { font-size: 19px; }

  .topclock {
    order: 2;
    margin-left: auto;
    padding: 2px 10px;
    border-left: none;
  }
  .tc-label { font-size: 9.5px; letter-spacing: 1.2px; }
  .tc-time { font-size: 24px; }

  /* ---- Mobile Steuerleiste (Filter ein-/ausklappen) ---- */
  .mobilebar {
    display: flex;
    align-items: center;
    gap: 10px;
    position: sticky;
    top: 0;
    z-index: 30;
    padding: 9px 12px;
    background: #0c131b;
    border-bottom: 1px solid var(--border);
  }
  .filter-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 16px;
    border-radius: 10px;
    border: 1px solid var(--border-2);
    background: #1a2634;
    color: #dbe6f1;
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
  }
  .filter-toggle .ft-ic { font-size: 19px; }
  .filter-toggle[aria-expanded="true"] {
    background: var(--red);
    border-color: var(--red-2);
    color: #fff;
  }
  .mb-hint { color: var(--muted); font-size: 13px; }

  /* standardmäßig eingeklappt, bis .filters-open gesetzt ist */
  body:not(.filters-open) .filterbar,
  body:not(.filters-open) .sidebar { display: none; }

  /* ---- Filterleiste: Gruppen untereinander, Pills wischbar ---- */
  .filterbar {
    display: block;
    padding: 10px;
    gap: 10px;
  }
  .fgroup { margin-bottom: 10px; border-radius: 10px; }
  .fgroup:last-child { margin-bottom: 0; }
  .flabel { margin-bottom: 6px; }
  .pills {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
  }
  .pills::-webkit-scrollbar { display: none; }
  .pill {
    flex: 0 0 auto;
    padding: 10px 16px;
    font-size: 16.5px;
    border-radius: 9px;
  }

  /* ---- Sidebar / Bedienelemente touchfreundlich ---- */
  .layout { display: block; padding: 10px; }
  .sidebar { margin-bottom: 12px; gap: 10px; }
  .panel { padding: 14px; }
  .panel-head { margin-bottom: 10px; }
  .search { padding: 12px; }
  .search input { font-size: 19px; }
  .select { padding: 13px 12px; font-size: 19px; }
  .switch { padding: 12px 2px; }
  .sw-l { font-size: 18px; }
  .slider { width: 50px; height: 28px; }
  .slider::after { width: 24px; height: 24px; }
  .switch input:checked + .slider::after { transform: translateX(22px); }

  /* ---- Status kompakt ---- */
  .content-head {
    padding: 10px 12px;
    gap: 4px 10px;
    flex-wrap: wrap;
  }
  .ch-title { font-size: 18px; }
  .ch-status { font-size: 13px; gap: 6px; flex-wrap: wrap; }
  #status-text {
    max-width: 58vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* ---- Tabelle -> Karten ---- */
  .table-wrap { max-height: none; overflow: visible; }
  .spot-table { display: block; width: 100%; }
  .spot-table thead { display: none; }
  .spot-table tbody { display: block; }

  .spot-table tbody tr,
  .spot-table tbody tr:nth-child(even) {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-areas:
      "call call call call time time"
      "freq freq band band mode mode"
      "spotter spotter spotter spotter spotter spotter"
      "tags tags tags tags tags tags"
      "comment comment comment comment comment comment"
      "date date date date date date";
    gap: 8px 10px;
    align-items: center;
    margin: 0 0 10px;
    padding: 12px 14px;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: var(--shadow);
  }
  .spot-table tbody tr:hover { background: var(--panel); }
  .spot-table tbody td {
    padding: 0;
    border: none;
    background: transparent;
    white-space: normal;
    min-width: 0;
  }

  .cell-call {
    grid-area: call;
    font-size: 26px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0.5px;
    color: var(--yellow);
    overflow-wrap: anywhere;
  }
  .cell-time {
    grid-area: time;
    justify-self: end;
    font-size: 15.5px;
    font-weight: 600;
    color: var(--muted);
  }

  .cell-freq, .cell-band, .cell-mode {
    background: #0d151e;
    border: 1px solid var(--border-2);
    border-radius: 8px;
    padding: 6px 4px;
    text-align: center;
    font-weight: 700;
    font-size: 16.5px;
  }
  .mode-badge {
    border: none;
    padding: 0;
    border-radius: 0;
    color: inherit;
    font-size: inherit;
  }
  .cell-freq::before, .cell-band::before, .cell-mode::before {
    display: block;
    font-size: 11px;
    letter-spacing: 1px;
    font-weight: 600;
    color: var(--muted);
    margin-bottom: 2px;
  }
  .cell-freq { grid-area: freq; }
  .cell-band { grid-area: band; }
  .cell-mode { grid-area: mode; }
  .cell-freq::before { content: "FREQ"; }
  .cell-band::before { content: "BAND"; }
  .cell-mode::before { content: "MODE"; }
  .cell-freq::after { content: " MHz"; font-size: 12px; font-weight: 600; color: var(--muted); }

  .cell-spotter {
    grid-area: spotter;
    font-size: 16px;
    font-weight: 600;
    color: #c2cedb;
    overflow-wrap: anywhere;
  }
  .cell-spotter::before { content: "Spotter: "; color: var(--muted); font-weight: 500; }
  .cell-country {
    grid-area: country;
    justify-self: end;
    text-align: right;
    font-size: 15.5px;
    overflow-wrap: anywhere;
  }
  .cell-country .land { justify-content: flex-end; gap: 6px; }
  .cell-country .flag { font-size: 18px; }

  .cell-tags {
    grid-area: tags;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
  }
  .cell-tags:empty { display: none; }
  .cell-tags .tag { margin-right: 0; padding: 4px 12px; font-size: 14.5px; border-radius: 7px; }
  .cell-tags .ref { font-size: 15px; overflow-wrap: anywhere; }

  .cell-comment {
    grid-area: comment;
    display: block;
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    font-size: 15px;
    color: #93a3b4;
    overflow-wrap: anywhere;
  }
  .cell-comment::before {
    content: "Comments: ";
    color: var(--muted);
    font-size: 13px;
  }
  .cell-comment:empty { display: none; }
  .cell-date {
    grid-area: date;
    justify-self: end;
    font-size: 14.5px;
    color: var(--muted);
  }
  .cell-date::before {
    content: "Datum: ";
    color: var(--muted);
  }

  /* Neue Spots weiterhin rot hervorheben (Karten-Hintergrund erhalten) */
  tr.row-new { animation: cardflash 2.6s ease-out; }
  @keyframes cardflash {
    0%   { background: rgba(211, 47, 47, 0.65); border-color: var(--red-2); }
    60%  { background: rgba(211, 47, 47, 0.28); border-color: #5a2326; }
    100% { background: var(--panel); border-color: var(--border); }
  }

  .empty-hint { padding: 28px 14px; }
}

@media (max-width: 420px) {
  .cell-call { font-size: 24px; }
  .cell-freq, .cell-band, .cell-mode { font-size: 15.5px; }
  .ch-title { font-size: 16.5px; }
}

