/* ============================================================
   RTP KEPO88 - Mission Control / Intel Ops
   ============================================================ */

:root {
  /* Surfaces */
  --bg-0: #050807;
  --bg-1: #0a100c;
  --bg-2: #111a14;
  --line: #1e2e24;
  --line-hot: rgba(47, 191, 113, .4);

  /* Signal colors */
  --sig: #2cff7e;
  --sig-dim: #159a52;
  --amber: #ffb300;
  --red: #ff3b4e;
  --cyan: #3bd4ff;

  /* CTA - affiliate only */
  --gold: #ffc531;
  --gold-2: #ffdb70;

  /* Text */
  --text-hi: #e9f6ee;
  --text-lo: #7e9c8b;

  --stamp: rgba(255, 59, 78, .14);

  --font-mono: ui-monospace, "Cascadia Mono", "SF Mono", "Roboto Mono", Consolas, Menlo, monospace;
  --font-sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --wrap: 1240px;
  --header-h: 92px;
  --radius: 4px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  background-color: var(--bg-0);
  background-image:
    repeating-linear-gradient(0deg, rgba(30, 46, 36, .30) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(90deg, rgba(30, 46, 36, .30) 0 1px, transparent 1px 48px);
  color: var(--text-hi);
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  padding-bottom: 40px;
}

/* Scanline overlay - fixed, static, composited once */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 60;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(0, 0, 0, .5) 0 1px, transparent 1px 3px);
  opacity: .035;
}

img { max-width: 100%; display: block; }
a { color: var(--cyan); text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: none; cursor: pointer; }
.hidden { display: none !important; }

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 12px; }

/* ── Panel chrome ─────────────────────────────────────────── */
.panel {
  position: relative;
  background: var(--bg-1);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px 12px 12px;
  margin-bottom: 14px;
}
.panel::before,
.panel::after {
  content: "";
  position: absolute;
  width: 10px; height: 10px;
  border: 1px solid var(--sig-dim);
  pointer-events: none;
}
.panel::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.panel::after { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }

.panel-tab {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--sig);
  margin-bottom: 10px;
}
.panel-tab::before { content: "\25AE"; color: var(--sig-dim); }

/* ── Header ───────────────────────────────────────────────── */
#ops-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(5, 8, 7, .94);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}
#ops-brand-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  max-width: var(--wrap);
  margin: 0 auto;
}
#logo-img { width: 132px; height: auto; }

#ops-cta-daftar {
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--gold), var(--gold-2));
  color: #0b0b0b;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: .1em;
  padding: 9px 16px;
  border-radius: var(--radius);
  white-space: nowrap;
  box-shadow: 0 2px 14px rgba(255, 197, 49, .3);
  transition: transform .15s, box-shadow .15s;
}
#ops-cta-daftar:active { transform: translateY(1px); }

#ops-status {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 12px 7px;
  max-width: var(--wrap);
  margin: 0 auto;
  font-size: 10.5px;
  letter-spacing: .07em;
  color: var(--text-lo);
  overflow-x: auto;
  scrollbar-width: none;
  white-space: nowrap;
}
#ops-status::-webkit-scrollbar { display: none; }
#ops-status > span { display: inline-flex; align-items: center; gap: 5px; }

#uplink-state { color: var(--sig); font-weight: 700; }
#uplink-state.down { color: var(--red); }
#uplink-state .dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 7px currentColor;
  animation: uplink-pulse 2s ease-in-out infinite;
}
@keyframes uplink-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }

#ops-clock { color: var(--text-hi); font-weight: 700; }
#ops-countdown { color: var(--amber); font-weight: 700; }

/* ── Intel ticker ─────────────────────────────────────────── */
#intel-ticker {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid var(--line);
  background: var(--bg-1);
  overflow: hidden;
}
.tick-tag {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  padding: 0 10px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  color: var(--bg-0);
  background: var(--sig-dim);
}
#ticker-track {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  padding: 7px 0;
  position: relative;
}
/* Dua salinan teks berdampingan dalam satu baris; track digeser -50%
   (tepat selebar satu salinan) supaya loop terlihat menyambung. */
#ticker-move {
  display: flex;
  width: max-content;
  animation: ticker-scroll 38s linear infinite;
}
#ticker-move > span {
  flex: 0 0 auto;
  white-space: nowrap;
  padding-right: 60px;
  font-size: 11.5px;
  color: var(--sig);
}
#ticker-track:hover #ticker-move { animation-play-state: paused; }
@keyframes ticker-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ── Banner ───────────────────────────────────────────────── */
#banner-op { position: relative; margin: 14px 0; }
#banner-op img { width: 100%; height: auto; border-radius: var(--radius); border: 1px solid var(--line); }
.banner-caption {
  font-size: 9.5px;
  letter-spacing: .18em;
  color: var(--text-lo);
  text-transform: uppercase;
  margin-top: 5px;
  text-align: right;
}

/* ── Live feed ────────────────────────────────────────────── */
#feed-log {
  list-style: none;
  height: 160px;
  overflow-y: auto;
  font-size: 11.5px;
  line-height: 1.75;
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
}
#feed-log::-webkit-scrollbar { width: 6px; }
#feed-log::-webkit-scrollbar-thumb { background: var(--line); border-radius: 3px; }

#feed-log li {
  display: flex;
  gap: 8px;
  padding: 2px 0;
  border-bottom: 1px dashed rgba(30, 46, 36, .55);
  animation: feed-in .2s ease-out;
}
@keyframes feed-in {
  from { opacity: 0; transform: translateY(-5px); background: rgba(44, 255, 126, .12); }
  to { opacity: 1; transform: none; background: transparent; }
}
.feed-t { color: var(--text-lo); flex-shrink: 0; }
.feed-g { flex-shrink: 0; font-weight: 700; }
.feed-m { color: var(--text-hi); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.feed-up .feed-g, .feed-up .feed-d { color: var(--sig); }
.feed-down .feed-g, .feed-down .feed-d { color: var(--red); }
.feed-peak .feed-g, .feed-peak .feed-d { color: var(--cyan); }
.feed-scan .feed-g, .feed-scan .feed-d { color: var(--text-lo); }
.feed-d { font-weight: 700; flex-shrink: 0; }
.feed-cycle { color: var(--amber) !important; justify-content: center; letter-spacing: .1em; font-weight: 700; }

.feed-cursor {
  display: inline-block;
  width: 7px; height: 12px;
  background: var(--sig);
  margin-left: 6px;
  vertical-align: -1px;
  animation: blink 1.05s steps(2, start) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

/* ── Target board ─────────────────────────────────────────── */
#target-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.target-card {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-left: 2px solid var(--sig);
  border-radius: var(--radius);
  padding: 10px;
}
.target-src { font-size: 9.5px; letter-spacing: .12em; color: var(--text-lo); text-transform: uppercase; }
.target-name {
  font-size: 12.5px;
  font-weight: 700;
  margin: 3px 0 6px;
  color: var(--text-hi);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.target-rtp { font-size: 20px; font-weight: 800; letter-spacing: -.02em; }
.target-rtp.gacor { color: var(--sig); }
.target-rtp.sedang { color: var(--amber); }
.target-rtp.dingin { color: var(--red); }

/* ── Console filters ──────────────────────────────────────── */
.console-label {
  font-size: 9.5px;
  letter-spacing: .16em;
  color: var(--text-lo);
  text-transform: uppercase;
  margin-bottom: 6px;
}
.chip-row {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 6px;
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
}
.chip-row::-webkit-scrollbar { height: 4px; }
.chip-row::-webkit-scrollbar-thumb { background: var(--line); border-radius: 2px; }

#band-chips { margin-bottom: 12px; }

.chip {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 11px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  color: var(--text-lo);
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  cursor: pointer;
  white-space: nowrap;
  transition: color .15s, border-color .15s, background .15s;
}
.chip:hover { color: var(--text-hi); border-color: var(--sig-dim); }
.chip img { height: 15px; width: auto; opacity: .78; }
.chip.active {
  color: var(--bg-0);
  background: var(--sig);
  border-color: var(--sig);
  box-shadow: 0 0 12px rgba(44, 255, 126, .3);
}
.chip.active img { opacity: 1; filter: brightness(0) saturate(0); }

/* ── Signal grid ──────────────────────────────────────────── */
#signal-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-bottom: 14px;
}
#grid-sentinel { height: 40px; }

.sig-card {
  position: relative;
  background: var(--bg-1);
  border: 1px solid var(--line);
  border-left: 2px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  cursor: pointer;
  transition: border-color .15s, transform .15s;
}
.sig-card:hover, .sig-card:focus-visible {
  border-color: var(--sig-dim);
  transform: translateY(-2px);
  outline: none;
}
.sig-card.gacor { border-left-color: var(--sig); }
.sig-card.sedang { border-left-color: var(--amber); }
.sig-card.dingin { border-left-color: var(--red); }

.sig-thumb-wrap { position: relative; aspect-ratio: 1 / 1; background: var(--bg-2); }
.sig-thumb { width: 100%; height: 100%; object-fit: cover; }
.sig-noise {
  display: none;
  width: 100%; height: 100%;
  align-items: center; justify-content: center;
  font-size: 9.5px; letter-spacing: .1em; color: var(--text-lo);
  background: repeating-linear-gradient(45deg, var(--bg-2) 0 3px, var(--bg-1) 3px 6px);
}
.sig-rank {
  position: absolute;
  top: 6px; left: 6px;
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: .08em;
  padding: 2px 6px;
  border-radius: 2px;
  background: rgba(5, 8, 7, .85);
  border: 1px solid var(--sig-dim);
  color: var(--sig);
}
.sig-body { padding: 8px 9px 10px; }
.sig-name {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--text-hi);
  margin-bottom: 7px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sig-bars { display: flex; gap: 3px; align-items: flex-end; height: 16px; margin-bottom: 7px; }
.sig-bars i {
  flex: 1;
  background: var(--line);
  border-radius: 1px;
  transform-origin: bottom;
}
.sig-bars i:nth-child(1) { height: 40%; }
.sig-bars i:nth-child(2) { height: 55%; }
.sig-bars i:nth-child(3) { height: 70%; }
.sig-bars i:nth-child(4) { height: 85%; }
.sig-bars i:nth-child(5) { height: 100%; }
.sig-card.gacor .sig-bars i.on { background: var(--sig); box-shadow: 0 0 5px rgba(44, 255, 126, .55); }
.sig-card.sedang .sig-bars i.on { background: var(--amber); }
.sig-card.dingin .sig-bars i.on { background: var(--red); }
.sig-bars.grow i.on { animation: bar-grow .35s ease-out backwards; }
@keyframes bar-grow { from { transform: scaleY(.1); opacity: .3; } }

.sig-readout { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.sig-pct { font-size: 17px; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.sig-card.gacor .sig-pct { color: var(--sig); }
.sig-card.sedang .sig-pct { color: var(--amber); }
.sig-card.dingin .sig-pct { color: var(--red); }

.sig-delta { font-size: 10px; font-weight: 700; font-variant-numeric: tabular-nums; }
.sig-delta.up { color: var(--sig); }
.sig-delta.down { color: var(--red); }
.sig-delta.flat { color: var(--text-lo); }

.sig-badge {
  display: block;
  margin-top: 6px;
  font-size: 8.5px;
  font-weight: 800;
  letter-spacing: .1em;
  padding: 3px 0;
  text-align: center;
  border-radius: 2px;
}
.sig-card.gacor .sig-badge { color: var(--sig); background: rgba(44, 255, 126, .1); }
.sig-card.sedang .sig-badge { color: var(--amber); background: rgba(255, 179, 0, .1); }
.sig-card.dingin .sig-badge { color: var(--red); background: rgba(255, 59, 78, .1); }

.grid-empty { grid-column: 1 / -1; text-align: center; padding: 26px 10px; color: var(--text-lo); font-size: 12px; }
.grid-error { color: var(--red); }

/* ── Dossier modal ────────────────────────────────────────── */
#dossier-overlay {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(2, 4, 3, .82);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  display: none;
  align-items: flex-end;
  justify-content: center;
}
#dossier-overlay.open { display: flex; }

#dossier-sheet {
  position: relative;
  width: 100%;
  max-width: 480px;
  max-height: 92vh;
  overflow-y: auto;
  background: var(--bg-1);
  border: 1px solid var(--sig-dim);
  border-radius: var(--radius) var(--radius) 0 0;
  padding: 16px 14px 22px;
  animation: sheet-up .22s ease-out;
}
@keyframes sheet-up { from { transform: translateY(22px); opacity: 0; } }

#dossier-close {
  position: absolute;
  top: 10px; right: 12px;
  font-size: 16px;
  color: var(--text-lo);
  line-height: 1;
  padding: 4px;
}
#dossier-close:hover { color: var(--red); }

.dossier-head {
  font-size: 9.5px;
  letter-spacing: .16em;
  color: var(--sig);
  text-transform: uppercase;
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
  margin-bottom: 12px;
}
.dossier-stamp {
  position: absolute;
  top: 42px; right: 14px;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: .12em;
  color: var(--stamp);
  border: 3px solid var(--stamp);
  padding: 2px 10px;
  transform: rotate(-11deg);
  pointer-events: none;
}

#dossier-subject { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; }
#dossier-thumb-wrap {
  position: relative;
  width: 74px; height: 74px;
  flex-shrink: 0;
  border: 1px solid var(--line);
  background: var(--bg-2);
}
#dossier-thumb-wrap::before,
#dossier-thumb-wrap::after {
  content: "";
  position: absolute;
  width: 9px; height: 9px;
  border: 1px solid var(--sig);
}
#dossier-thumb-wrap::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
#dossier-thumb-wrap::after { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }
#dossier-thumb { width: 100%; height: 100%; object-fit: cover; }

.dossier-kv { font-size: 9.5px; letter-spacing: .12em; color: var(--text-lo); text-transform: uppercase; }
#dossier-name { font-size: 15px; font-weight: 800; color: var(--text-hi); margin-bottom: 4px; line-height: 1.25; }
#dossier-source { font-size: 11px; color: var(--cyan); }

#dossier-gauge-row { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
#gauge { display: flex; gap: 2px; flex: 1; height: 22px; }
#gauge i { flex: 1; background: var(--line); border-radius: 1px; }
#gauge i.on.gacor { background: var(--sig); box-shadow: 0 0 6px rgba(44, 255, 126, .5); }
#gauge i.on.sedang { background: var(--amber); }
#gauge i.on.dingin { background: var(--red); }
#gauge-pct { font-size: 26px; font-weight: 900; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
#gauge-pct.gacor { color: var(--sig); }
#gauge-pct.sedang { color: var(--amber); }
#gauge-pct.dingin { color: var(--red); }

.radar {
  width: 30px; height: 30px;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid var(--sig-dim);
  background: conic-gradient(from 0deg, transparent 0deg 300deg, rgba(44, 255, 126, .45) 360deg);
  animation: radar-spin 4s linear infinite;
}
@keyframes radar-spin { to { transform: rotate(360deg); } }

#dossier-status { margin-bottom: 4px; font-size: 10px; font-weight: 800; letter-spacing: .1em; }
#dossier-status.gacor { color: var(--sig); }
#dossier-status.sedang { color: var(--amber); }
#dossier-status.dingin { color: var(--red); }
#dossier-updated { font-size: 10px; color: var(--text-lo); margin-bottom: 14px; }

.dossier-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--line);
  font-size: 11.5px;
}
.dossier-row .k { color: var(--text-lo); letter-spacing: .08em; font-size: 9.5px; text-transform: uppercase; }
.dossier-row .v { color: var(--text-hi); font-weight: 700; text-align: right; }
.dossier-row .v.hot { color: var(--sig); }

.dossier-sub {
  font-size: 9.5px;
  letter-spacing: .16em;
  color: var(--sig);
  text-transform: uppercase;
  margin: 16px 0 8px;
}
#directive-list { display: grid; gap: 6px; }
.directive {
  display: flex;
  gap: 9px;
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 8px 10px;
  font-size: 11.5px;
}
.directive .n { color: var(--sig-dim); font-weight: 800; flex-shrink: 0; }
.directive .t { color: var(--text-hi); }

#dossier-cta {
  display: block;
  margin-top: 18px;
  padding: 14px 0;
  text-align: center;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .12em;
  color: #0b0b0b;
  background: linear-gradient(135deg, var(--gold), var(--gold-2));
  border-radius: var(--radius);
  box-shadow: 0 4px 20px rgba(255, 197, 49, .35);
}

/* ── SEO article ──────────────────────────────────────────── */
#intel-article { margin-top: 22px; }
.ia-sec { margin-bottom: 18px; }
.ia-badge {
  display: inline-block;
  font-size: 9.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--sig);
  border: 1px solid var(--sig-dim);
  border-radius: 2px;
  padding: 3px 9px;
  margin-bottom: 10px;
}
#intel-article h1 {
  font-size: clamp(19px, 4.6vw, 27px);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -.02em;
  color: var(--text-hi);
  margin-bottom: 8px;
}
#intel-article h2 {
  font-size: clamp(14px, 3.2vw, 17px);
  font-weight: 700;
  color: var(--sig);
  margin-bottom: 12px;
  line-height: 1.35;
}
#intel-article p {
  font-family: var(--font-sans);
  font-size: 13.5px;
  line-height: 1.72;
  color: var(--text-lo);
  margin-bottom: 11px;
  max-width: 72ch;
}
#intel-article p em { color: var(--cyan); font-style: italic; }

#ops-metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.metric {
  background: var(--bg-1);
  border: 1px solid var(--line);
  border-top: 2px solid var(--sig-dim);
  border-radius: var(--radius);
  padding: 11px 10px;
  text-align: center;
}
.metric-v { font-size: 14px; font-weight: 800; color: var(--sig); letter-spacing: -.01em; }
.metric-l { font-size: 9.5px; letter-spacing: .1em; color: var(--text-lo); text-transform: uppercase; margin-top: 3px; }

#access-box {
  background: var(--bg-1);
  border: 1px solid var(--gold);
  border-radius: var(--radius);
  padding: 14px 12px;
}
#access-box .title {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  color: var(--gold);
  text-align: center;
  margin-bottom: 10px;
}
#access-box .row {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  padding: 6px 0;
  border-bottom: 1px dashed var(--line);
  color: var(--text-lo);
}
#access-box .row:last-child { border-bottom: 0; }
#access-box .row span:last-child { color: var(--text-hi); font-weight: 700; }

#faq-list { display: grid; gap: 7px; }
.faq-item { background: var(--bg-1); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.faq-q {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  text-align: left;
  padding: 11px 12px;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-hi);
}
.faq-q .ic { color: var(--sig); flex-shrink: 0; transition: transform .2s; }
.faq-item.open .faq-q .ic { transform: rotate(45deg); }
.faq-a {
  display: none;
  padding: 0 12px 12px;
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 1.7;
  color: var(--text-lo);
}
.faq-item.open .faq-a { display: block; }

#field-reports { display: grid; gap: 8px; }
.report {
  background: var(--bg-1);
  border: 1px solid var(--line);
  border-left: 2px solid var(--cyan);
  border-radius: var(--radius);
  padding: 11px 12px;
}
.report-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.report-name { font-size: 11px; font-weight: 800; color: var(--cyan); letter-spacing: .06em; }
.report-stars { font-size: 11px; color: var(--amber); }
.report-text { font-family: var(--font-sans); font-size: 13px; line-height: 1.65; color: var(--text-lo); margin-bottom: 6px; }
.report-date { font-size: 9.5px; color: var(--text-lo); opacity: .7; letter-spacing: .08em; }

#seo-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 12px; }
.seo-col { display: flex; flex-direction: column; gap: 5px; }
.seo-title {
  font-size: 9.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--sig);
  border-bottom: 1px solid var(--line);
  padding-bottom: 5px;
  margin-bottom: 3px;
}
.seo-col a { font-size: 11.5px; color: var(--text-lo); transition: color .15s; }
.seo-col a:hover { color: var(--sig); }

/* ── Footer ───────────────────────────────────────────────── */
#site-footer {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  text-align: center;
}
#footer-updated { font-size: 10.5px; color: var(--text-lo); letter-spacing: .06em; margin-bottom: 12px; }
#footer-btns { display: flex; gap: 10px; justify-content: center; margin-bottom: 14px; }
.footer-btn {
  flex: 1;
  max-width: 190px;
  padding: 12px 0;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .12em;
  border-radius: var(--radius);
}
.footer-btn.masuk { color: var(--gold); border: 1px solid var(--gold); }
.footer-btn.daftar { background: linear-gradient(135deg, var(--gold), var(--gold-2)); color: #0b0b0b; }
.copyright { font-size: 10px; color: var(--text-lo); opacity: .65; letter-spacing: .08em; }

/* ── Responsive ───────────────────────────────────────────── */
@media (min-width: 480px) {
  #signal-grid { grid-template-columns: repeat(3, 1fr); }
  #ops-metrics { grid-template-columns: repeat(4, 1fr); }
  #seo-links { grid-template-columns: repeat(4, 1fr); }
}

@media (min-width: 768px) {
  body { font-size: 13.5px; }
  #logo-img { width: 160px; }
  #feed-log { height: 200px; }
  #field-reports { grid-template-columns: repeat(2, 1fr); }
  .chip-row { flex-wrap: wrap; overflow-x: visible; }
}

@media (min-width: 1024px) {
  #signal-grid { grid-template-columns: repeat(4, 1fr); gap: 12px; }
  #feed-log { height: 220px; }
  .panel { padding: 16px 16px 14px; }
  #target-cards { gap: 12px; }
  #field-reports { grid-template-columns: repeat(3, 1fr); }
  #dossier-overlay { align-items: center; }
  #dossier-sheet { border-radius: var(--radius); max-height: 88vh; }
}

@media (min-width: 1280px) {
  #signal-grid { grid-template-columns: repeat(5, 1fr); }
}

/* ── Reduced motion / low-end ─────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  #ticker-track { overflow-x: auto; }
  #ticker-move { animation: none; }
  #ticker-move > span:nth-child(2) { display: none; }
  .radar { animation: none; }
  .sig-card:hover { transform: none; }
}

html.low-end .sig-bars.grow i.on,
html.low-end #feed-log li { animation: none; }
html.low-end .radar { animation: none; }
html.low-end body::after { display: none; }
