/* ============================================================
   Time — by Local Connect
   Master Stylesheet
   ============================================================ */

:root {
  --bg: #0a0a0f;
  --surface: #12121a;
  --surface2: #1a1a25;
  --border: #2a2a3a;
  --text: #e0e0e8;
  --text-dim: #6a6a7a;
  --accent: #4a9eff;
  --amber: #ffaa33;
  --green: #33ff88;
  --red: #ff3355;
  --cyan: #33ffee;
  --blue: #4a9eff;
}

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

html, body {
  height: 100%;
  background: var(--bg);
  color: var(--text);
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
}

#app {
  width: 100vw;
  height: 100vh;
  position: relative;
}

/* ---- Settings Panel ---- */
.settings-panel {
  position: fixed;
  top: 0; right: 0;
  width: 340px; height: 100vh;
  background: var(--surface);
  border-left: 1px solid var(--border);
  z-index: 1000;
  padding: 2rem;
  transform: translateX(0);
  transition: transform 0.3s ease;
  overflow-y: auto;
}
.settings-panel.hidden { transform: translateX(100%); }
.settings-close {
  position: absolute; top: 1rem; right: 1rem;
  background: none; border: none; color: var(--text-dim);
  font-size: 1.5rem; cursor: pointer;
}
.settings-panel h2 {
  font-size: 1.1rem; font-weight: 600; margin-bottom: 1.5rem;
  color: var(--text);
}
.settings-grid {
  display: flex; flex-direction: column; gap: 1rem;
}
.settings-grid label {
  display: flex; flex-direction: column; gap: 0.3rem;
  font-size: 0.8rem; color: var(--text-dim); text-transform: uppercase;
  letter-spacing: 0.05em;
}
.settings-grid input, .settings-grid select {
  background: var(--bg); border: 1px solid var(--border);
  color: var(--text); padding: 0.6rem 0.8rem; border-radius: 6px;
  font-size: 0.95rem; font-family: 'JetBrains Mono', monospace;
}
.settings-grid input:focus, .settings-grid select:focus {
  outline: none; border-color: var(--accent);
}
.settings-actions { margin-top: 2rem; display: flex; gap: 0.8rem; }
.btn-primary, .btn-secondary {
  padding: 0.6rem 1.2rem; border-radius: 6px; font-size: 0.85rem;
  cursor: pointer; border: none; font-weight: 500;
}
.btn-primary { background: var(--accent); color: #fff; }
.btn-secondary { background: var(--surface2); color: var(--text); border: 1px solid var(--border); }

/* ---- Landing Page ---- */
.landing {
  width: 100%; height: 100%;
  overflow-y: auto; overflow-x: hidden;
  padding: 0;
}
.landing-hero {
  text-align: center;
  padding: 4rem 2rem 2rem;
}
.landing-hero h1 {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 300;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  background: linear-gradient(135deg, #fff 0%, #6a6a8a 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.landing-hero p {
  color: var(--text-dim);
  font-size: 1rem;
  margin-top: 0.8rem;
  letter-spacing: 0.05em;
}

.mode-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.5rem;
  padding: 2rem clamp(1rem, 4vw, 4rem) 4rem;
  max-width: 1600px;
  margin: 0 auto;
}

.mode-card {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.mode-card:hover {
  transform: translateY(-4px);
  border-color: var(--accent);
  box-shadow: 0 8px 32px rgba(74, 158, 255, 0.1);
}

.mode-card-preview {
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.mode-card-info {
  padding: 1rem 1.2rem;
  border-top: 1px solid var(--border);
}
.mode-card-info h3 {
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 0.3rem;
}
.mode-card-info p {
  font-size: 0.78rem;
  color: var(--text-dim);
  line-height: 1.4;
}
.mode-card-tag {
  display: inline-block;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.15rem 0.5rem;
  border-radius: 3px;
  margin-top: 0.5rem;
  font-weight: 600;
}
.tag-broadcast { background: rgba(74,158,255,0.15); color: var(--accent); }
.tag-ham { background: rgba(255,170,51,0.15); color: var(--amber); }
.tag-utility { background: rgba(51,255,136,0.15); color: var(--green); }

.landing-footer {
  text-align: center;
  padding: 2rem;
  color: var(--text-dim);
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  opacity: 0.6;
}
.landing-footer a { color: var(--text-dim); text-decoration: none; }

.landing-section-title {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--text-dim);
  padding: 1rem clamp(1rem, 4vw, 4rem) 0;
  max-width: 1600px;
  margin: 0 auto;
}

/* ---- Clock Mode Container ---- */
.clock-container {
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  position: relative;
  overflow: hidden;
}

.clock-back {
  position: fixed;
  top: 1rem; left: 1rem;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  color: var(--text-dim);
  padding: 0.4rem 0.8rem;
  border-radius: 6px;
  font-size: 0.8rem;
  cursor: pointer;
  z-index: 100;
  opacity: 0;
  transition: opacity 0.3s ease;
  font-family: 'Inter', sans-serif;
}
.clock-container:hover .clock-back { opacity: 1; }

.clock-label {
  position: fixed;
  bottom: 1rem; left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.15);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-family: 'Inter', sans-serif;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.clock-container:hover .clock-label { opacity: 1; }

/* ---- Mode-Specific Previews ---- */
.preview-broadcast {
  background: radial-gradient(circle, #141428 0%, #0a0a14 100%);
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
}

.preview-time {
  font-family: 'Orbitron', sans-serif;
  font-size: 2.5rem;
  font-weight: 300;
}
.preview-time.amber { color: var(--amber); text-shadow: 0 0 30px rgba(255,170,51,0.3); }
.preview-time.green { color: var(--green); text-shadow: 0 0 30px rgba(51,255,136,0.3); }
.preview-time.blue { color: var(--accent); text-shadow: 0 0 30px rgba(74,158,255,0.3); }
.preview-time.red { color: var(--red); text-shadow: 0 0 30px rgba(255,51,85,0.3); }
.preview-time.white { color: #fff; }
.preview-time.nixie { color: #ff8830; text-shadow: 0 0 40px rgba(255,136,48,0.5), 0 0 80px rgba(255,100,20,0.2); }

/* ---- Canvas Modes ---- */
.clock-canvas {
  width: 100%;
  height: 100%;
}

/* ---- Broadcast Clock ---- */
.broadcast-clock {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(ellipse at center, #10102a 0%, #08081a 60%, #050510 100%);
}
.broadcast-clock canvas { max-width: 90vmin; max-height: 90vmin; }

/* ---- Studio LED ---- */
.studio-led {
  width: 100%; height: 100%;
  background: #050505;
  display: flex; align-items: center; justify-content: center;
  flex-direction: column; gap: 1rem;
}

/* ---- Analogue ---- */
.analogue-clock {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(ellipse at center, #1a1a2a 0%, #0a0a14 100%);
}

/* ---- Flip Clock ---- */
.flip-clock {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(180deg, #1a1a1a 0%, #111 100%);
  gap: clamp(0.5rem, 2vw, 2rem);
}
.flip-group {
  display: flex; gap: clamp(0.2rem, 0.5vw, 0.5rem);
}
.flip-separator {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(3rem, 10vw, 8rem);
  color: #555;
  display: flex; align-items: center;
  padding: 0 0.2rem;
}
.flip-card {
  position: relative;
  width: clamp(60px, 12vw, 140px);
  height: clamp(80px, 16vw, 190px);
  perspective: 400px;
}
.flip-card-inner {
  width: 100%; height: 100%;
  position: relative;
}
.flip-top, .flip-bottom {
  position: absolute; left: 0; right: 0;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(3rem, 10vw, 8rem);
  font-weight: 700;
  color: #e8e8e8;
}
.flip-top {
  top: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #222 100%);
  border-radius: 8px 8px 0 0;
  border-bottom: 1px solid #111;
  align-items: flex-end;
  padding-bottom: 0;
  line-height: 0;
}
.flip-top span { transform: translateY(50%); }
.flip-bottom {
  bottom: 0; height: 50%;
  background: linear-gradient(180deg, #1e1e1e 0%, #1a1a1a 100%);
  border-radius: 0 0 8px 8px;
  align-items: flex-start;
  padding-top: 0;
  line-height: 0;
}
.flip-bottom span { transform: translateY(-50%); }

.flip-card .flip-anim {
  position: absolute; left: 0; right: 0; top: 0; height: 50%;
  overflow: hidden;
  display: flex; align-items: flex-end; justify-content: center;
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(3rem, 10vw, 8rem);
  font-weight: 700;
  color: #e8e8e8;
  background: linear-gradient(180deg, #2a2a2a 0%, #222 100%);
  border-radius: 8px 8px 0 0;
  transform-origin: bottom;
  line-height: 0;
  z-index: 2;
  backface-visibility: hidden;
}
.flip-card .flip-anim span { transform: translateY(50%); }
.flip-card .flip-anim.flipping {
  animation: flipDown 0.6s ease-in-out forwards;
}
@keyframes flipDown {
  0% { transform: rotateX(0deg); }
  100% { transform: rotateX(-180deg); }
}

/* ---- Minimal ---- */
.minimal-clock {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  flex-direction: column;
  background: var(--bg);
}
.minimal-time {
  font-family: 'Inter', sans-serif;
  font-size: clamp(6rem, 20vw, 20rem);
  font-weight: 200;
  letter-spacing: -0.02em;
  color: #fff;
  line-height: 1;
}
.minimal-seconds {
  font-family: 'Inter', sans-serif;
  font-size: clamp(1.5rem, 5vw, 4rem);
  font-weight: 200;
  color: rgba(255,255,255,0.2);
  margin-top: 0.5rem;
}
.minimal-date {
  font-family: 'Inter', sans-serif;
  font-size: clamp(0.8rem, 2vw, 1.2rem);
  font-weight: 300;
  color: rgba(255,255,255,0.1);
  margin-top: 1rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

/* ---- Nixie ---- */
.nixie-clock {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  flex-direction: column;
  background: radial-gradient(ellipse at center, #1a1008 0%, #0d0906 60%, #080604 100%);
  gap: 2rem;
}
.nixie-tubes {
  display: flex;
  gap: clamp(0.3rem, 1vw, 1rem);
  align-items: center;
}
.nixie-tube {
  position: relative;
  width: clamp(50px, 10vw, 120px);
  height: clamp(80px, 16vw, 200px);
  background: linear-gradient(180deg, rgba(40,25,15,0.6) 0%, rgba(20,12,6,0.8) 100%);
  border: 1px solid rgba(255,140,40,0.1);
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.nixie-tube::before {
  content: '';
  position: absolute; inset: 2px;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(255,255,255,0.03) 0%, transparent 40%);
  pointer-events: none;
}
.nixie-tube::after {
  content: '';
  position: absolute;
  bottom: -10px; left: 50%; transform: translateX(-50%);
  width: 60%; height: 20px;
  background: radial-gradient(ellipse, rgba(255,120,20,0.15) 0%, transparent 70%);
  pointer-events: none;
}
.nixie-digit {
  font-family: 'Share Tech Mono', monospace;
  font-size: clamp(2.5rem, 8vw, 7rem);
  color: #ff8830;
  text-shadow:
    0 0 10px rgba(255,136,48,0.8),
    0 0 30px rgba(255,100,20,0.5),
    0 0 60px rgba(255,80,10,0.3),
    0 0 100px rgba(255,60,0,0.15);
  position: relative;
  z-index: 1;
}
.nixie-colon {
  display: flex; flex-direction: column; gap: clamp(0.5rem, 2vw, 1.5rem);
  padding: 0 0.2rem;
}
.nixie-dot {
  width: clamp(6px, 1.2vw, 12px);
  height: clamp(6px, 1.2vw, 12px);
  background: #ff8830;
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(255,136,48,0.8), 0 0 25px rgba(255,100,20,0.4);
}
.nixie-date {
  font-family: 'Share Tech Mono', monospace;
  font-size: clamp(0.7rem, 1.5vw, 1.1rem);
  color: rgba(255,140,50,0.25);
  letter-spacing: 0.15em;
}

/* ---- Shack Clock ---- */
.shack-clock {
  width: 100%; height: 100%;
  background: #0a0e08;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr auto auto;
  padding: clamp(1rem, 3vw, 2.5rem);
  font-family: 'JetBrains Mono', monospace;
  position: relative;
  overflow: hidden;
}
.shack-clock::before {
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0,0,0,0.15) 2px,
    rgba(0,0,0,0.15) 4px
  );
  pointer-events: none;
  z-index: 1;
}
.shack-callsign {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(1.5rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: 0.15em;
  text-align: center;
  z-index: 2;
}
.shack-callsign.amber { color: var(--amber); text-shadow: 0 0 20px rgba(255,170,51,0.4); }
.shack-callsign.green { color: var(--green); text-shadow: 0 0 20px rgba(51,255,136,0.4); }

.shack-utc-block {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  z-index: 2;
}
.shack-utc-label {
  font-size: clamp(0.7rem, 1.5vw, 1rem);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  opacity: 0.5;
}
.shack-utc-time {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(4rem, 14vw, 12rem);
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
  letter-spacing: 0.02em;
}
.shack-utc-time.amber { color: var(--amber); text-shadow: 0 0 40px rgba(255,170,51,0.3); }
.shack-utc-time.green { color: var(--green); text-shadow: 0 0 40px rgba(51,255,136,0.3); }

.shack-info-row {
  display: flex;
  justify-content: center;
  gap: clamp(1rem, 4vw, 3rem);
  flex-wrap: wrap;
  z-index: 2;
}
.shack-info-item {
  text-align: center;
}
.shack-info-label {
  font-size: clamp(0.6rem, 1.2vw, 0.8rem);
  letter-spacing: 0.25em;
  text-transform: uppercase;
  opacity: 0.5;
  margin-bottom: 0.2em;
}
.shack-info-value {
  font-family: 'Share Tech Mono', 'JetBrains Mono', monospace;
  font-size: clamp(1rem, 2.5vw, 1.6rem);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.shack-info-value.amber { color: var(--amber); }
.shack-info-value.green { color: var(--green); }

.shack-date {
  text-align: center;
  font-size: clamp(0.7rem, 1.5vw, 1rem);
  opacity: 0.4;
  z-index: 2;
  margin-top: 0.5rem;
}

/* ---- Contest Clock ---- */
.contest-clock {
  width: 100%; height: 100%;
  background: #080808;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  font-family: 'Orbitron', sans-serif;
  padding: 2rem;
  gap: 1rem;
}
.contest-utc {
  font-size: clamp(5rem, 16vw, 14rem);
  font-weight: 900;
  color: #fff;
  line-height: 1;
  letter-spacing: 0.05em;
}
.contest-row {
  display: flex; gap: clamp(1rem, 4vw, 4rem);
  flex-wrap: wrap; justify-content: center;
}
.contest-stat {
  text-align: center;
  padding: 0.8rem 1.5rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  min-width: 120px;
}
.contest-stat-label {
  font-size: 0.6rem;
  letter-spacing: 0.2em;
  color: var(--text-dim);
  margin-bottom: 0.3rem;
  font-family: 'Inter', sans-serif;
}
.contest-stat-value {
  font-size: clamp(1.2rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--green);
}
.contest-qso-btn {
  background: rgba(51,255,136,0.1);
  border: 1px solid rgba(51,255,136,0.3);
  color: var(--green);
  padding: 0.8rem 2rem;
  border-radius: 8px;
  font-family: 'Orbitron', sans-serif;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.2s;
  margin-top: 0.5rem;
}
.contest-qso-btn:hover {
  background: rgba(51,255,136,0.2);
  border-color: var(--green);
}

/* ---- Propagation Clock ---- */
.prop-clock {
  width: 100%; height: 100%;
  background: #080810;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr auto;
  padding: 1.5rem;
  gap: 1rem;
  font-family: 'JetBrains Mono', monospace;
}
.prop-time-block {
  grid-column: 1 / -1;
  display: flex; justify-content: center; gap: 3rem;
  flex-wrap: wrap;
}
.prop-time-item { text-align: center; }
.prop-time-label {
  font-size: 0.65rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--text-dim);
}
.prop-time-value {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700; color: #fff;
}
.prop-map {
  grid-column: 1 / -1;
  background: rgba(255,255,255,0.02);
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  min-height: 200px;
}
.prop-map canvas { width: 100%; height: 100%; }
.prop-solar {
  grid-column: 1 / -1;
  display: flex; justify-content: center; gap: 2rem;
  flex-wrap: wrap;
}
.prop-solar-item {
  text-align: center;
  padding: 0.5rem 1rem;
  background: rgba(255,255,255,0.02);
  border: 1px solid var(--border);
  border-radius: 6px;
}
.prop-solar-label {
  font-size: 0.6rem; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--text-dim);
}
.prop-solar-value {
  font-size: 1.2rem; font-weight: 600; color: var(--amber);
}
.prop-band-bar {
  display: flex; gap: 4px; align-items: flex-end;
}
.prop-band {
  display: flex; flex-direction: column; align-items: center;
  font-size: 0.55rem; color: var(--text-dim);
}
.prop-band-indicator {
  width: 20px; height: 20px; border-radius: 3px;
  margin-top: 2px;
}
.prop-band-good { background: var(--green); box-shadow: 0 0 8px rgba(51,255,136,0.4); }
.prop-band-fair { background: var(--amber); box-shadow: 0 0 8px rgba(255,170,51,0.4); }
.prop-band-poor { background: var(--red); box-shadow: 0 0 8px rgba(255,51,85,0.4); }

/* ---- World Clock ---- */
.world-clock {
  width: 100%; height: 100%;
  background: var(--bg);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 1fr 1fr;
  align-content: center;
  align-items: stretch; justify-items: center;
  gap: clamp(1rem, 2vh, 2rem);
  padding: clamp(1.5rem, 3vh, 3rem) clamp(2rem, 3vw, 4rem);
}
.world-column {
  text-align: center;
  padding: clamp(2rem, 4vh, 4rem) clamp(1.5rem, 2vw, 3rem);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  width: 100%;
  max-width: 400px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.world-city {
  font-size: clamp(0.8rem, 1.2vw, 1.2rem);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--text-dim);
  margin-bottom: 0.8rem;
}
.world-time-value {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(2.5rem, 5vw, 5rem);
  font-weight: 600;
  color: #fff;
}
.world-date-value {
  font-size: clamp(0.7rem, 1vw, 1rem);
  color: var(--text-dim);
  margin-top: 0.5rem;
}
.world-offset {
  font-size: clamp(0.7rem, 1vw, 0.95rem);
  color: var(--accent);
  margin-top: 0.3rem;
}

/* ---- Countdown ---- */
.countdown-clock {
  width: 100%; height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: var(--bg);
  gap: 1rem;
}
.countdown-target-label {
  font-size: 0.8rem;
  color: var(--text-dim);
  letter-spacing: 0.1em;
}
.countdown-digits {
  display: flex; gap: 1rem; align-items: baseline;
  flex-wrap: wrap; justify-content: center;
}
.countdown-unit {
  text-align: center;
}
.countdown-value {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(3rem, 10vw, 8rem);
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.countdown-label {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--text-dim);
  margin-top: 0.3rem;
}
.countdown-urgent .countdown-value { color: var(--red); }
.countdown-warning .countdown-value { color: var(--amber); }

/* ---- Binary ---- */
.binary-clock {
  width: 100%; height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: var(--bg);
  gap: clamp(1.5rem, 3vh, 3rem);
}
.binary-row {
  display: flex; gap: clamp(1.5rem, 4vw, 4rem);
  align-items: center;
}
.binary-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: clamp(1.2rem, 2.5vw, 2rem);
  color: var(--text-dim);
  width: clamp(50px, 7vw, 90px);
  text-align: right;
  margin-right: 0.5rem;
}
.binary-col {
  display: flex; flex-direction: column;
  gap: clamp(1rem, 2vw, 2rem);
  align-items: center;
}
.binary-led {
  width: clamp(40px, 9vw, 100px);
  height: clamp(40px, 9vw, 100px);
  border-radius: 50%;
  transition: all 0.3s ease;
}
.binary-led.on {
  background: var(--accent);
  box-shadow: 0 0 12px rgba(74,158,255,0.6), 0 0 24px rgba(74,158,255,0.2);
}
.binary-led.off {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
}
.binary-digit-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: clamp(0.8rem, 1.5vw, 1.4rem);
  color: var(--text-dim);
}
.binary-decimal {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(4rem, 10vw, 9rem);
  color: rgba(255,255,255,0.15);
  margin-top: 1rem;
}

/* ---- Spectrum ---- */
.spectrum-clock {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  flex-direction: column;
}
.spectrum-time {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(5rem, 16vw, 14rem);
  font-weight: 700;
  line-height: 1;
  transition: color 0.5s ease;
}
.spectrum-bar {
  width: 80%;
  height: 4px;
  border-radius: 2px;
  margin-top: 2rem;
  transition: background 0.5s ease;
}

/* ---- Pomodoro ---- */
.pomodoro-clock {
  width: 100%; height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: var(--bg);
  gap: 1.5rem;
}
.pomodoro-ring {
  position: relative;
  width: clamp(280px, 65vmin, 650px);
  height: clamp(280px, 65vmin, 650px);
}
.pomodoro-ring svg {
  width: 100%; height: 100%;
  transform: rotate(-90deg);
}
.pomodoro-ring-bg { fill: none; stroke: var(--surface2); stroke-width: 6; }
.pomodoro-ring-progress { fill: none; stroke-width: 6; stroke-linecap: round; transition: stroke-dashoffset 1s linear; }
.pomodoro-center {
  position: absolute; inset: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
}
.pomodoro-time {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(2.5rem, 8vw, 5rem);
  font-weight: 700;
  color: #fff;
}
.pomodoro-phase {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--text-dim);
  margin-top: 0.3rem;
}
.pomodoro-controls {
  display: flex; gap: 1rem;
}
.pomodoro-btn {
  padding: 0.6rem 1.5rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font-size: 0.85rem;
  cursor: pointer;
  font-family: 'Inter', sans-serif;
  transition: all 0.2s;
}
.pomodoro-btn:hover { background: var(--surface2); border-color: var(--accent); }
.pomodoro-btn.active { background: var(--accent); color: #fff; border-color: var(--accent); }
.pomodoro-session-dots {
  display: flex; gap: 0.5rem;
}
.pomodoro-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--surface2);
  border: 1px solid var(--border);
}
.pomodoro-dot.done { background: var(--accent); border-color: var(--accent); }
.pomodoro-dot.active { border-color: var(--accent); box-shadow: 0 0 8px rgba(74,158,255,0.4); }

/* ---- Theme Overrides ---- */
/* ---- Sync Indicator ---- */
.sync-indicator {
  position: fixed;
  bottom: 0.8rem; right: 0.8rem;
  display: flex; align-items: center; gap: 0.35rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.55rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-dim);
  z-index: 50;
  opacity: 0.4;
  transition: opacity 0.3s ease;
  cursor: default;
  padding: 0.3rem 0.5rem;
  background: rgba(0,0,0,0.3);
  border-radius: 4px;
}
.sync-indicator:hover { opacity: 1; }
.sync-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}

[data-theme="amber"] { --accent: #ffaa33; }
[data-theme="green"] { --accent: #33ff88; }
[data-theme="blue"] { --accent: #4a9eff; }
[data-theme="red"] { --accent: #ff3355; }
[data-theme="cyan"] { --accent: #33ffee; }

/* Shack name label */
.shack-name {
  font-family: 'Share Tech Mono', monospace;
  font-size: clamp(0.7rem, 1.5vw, 1rem);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0.35;
  text-align: center;
  margin-top: -0.5rem;
  z-index: 2;
}
/* Shack date bigger */
.shack-date {
  font-family: 'Share Tech Mono', monospace !important;
  font-size: clamp(0.7rem, 1.5vw, 1rem) !important;
  opacity: 0.35 !important;
}

/* Fixed-width digit spans for stable time display */
.shack-digit {
  display: inline-block;
  width: 0.75em;
  text-align: center;
}
.shack-colon {
  display: inline-block;
  width: 0.35em;
  text-align: center;
  opacity: 0.7;
}


/* Shack world clocks row */
.shack-world-row {
  display: flex;
  justify-content: center;
  gap: clamp(1.5rem, 5vw, 4rem);
  flex-wrap: wrap;
  z-index: 2;
  padding: 0.5rem 0;
  border-top: 1px solid rgba(255,170,51,0.1);
  margin-top: 0.3rem;
}
.shack-world-item {
  text-align: center;
}
.shack-world-label {
  font-size: clamp(0.5rem, 0.9vw, 0.65rem);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0.35;
  margin-bottom: 0.15em;
}
.shack-world-time {
  font-family: 'Share Tech Mono', 'JetBrains Mono', monospace;
  font-size: clamp(0.85rem, 1.8vw, 1.3rem);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.shack-world-time.amber { color: var(--amber); opacity: 0.7; }
.shack-world-time.green { color: var(--green); opacity: 0.7; }

/* ============================================================
   SHACK CLOCK — Ham Radio Enhanced Panels
   ============================================================ */

/* Theme accent variables for shack */
.shack-theme-amber { --shack-accent: #ffaa33; --shack-dim: rgba(255,170,51,0.4); --shack-bg: #0a0e08; --shack-red: #ff3355; }
.shack-theme-green { --shack-accent: #33ff88; --shack-dim: rgba(51,255,136,0.4); --shack-bg: #080e08; --shack-red: #ff3355; }
.shack-theme-blue { --shack-accent: #4a9eff; --shack-dim: rgba(74,158,255,0.4); --shack-bg: #080a0e; --shack-red: #ff3355; }
.shack-theme-red { --shack-accent: #ff3355; --shack-dim: rgba(255,51,85,0.4); --shack-bg: #0e0808; --shack-red: #ff3355; }
.shack-theme-cyan { --shack-accent: #33ffee; --shack-dim: rgba(51,255,238,0.4); --shack-bg: #080e0d; --shack-red: #ff3355; }

.shack-clock {
  background: var(--shack-bg, #0a0e08) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  padding: clamp(0.8rem, 2vw, 2rem) !important;
  gap: 0.5rem !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  height: 100% !important;
  width: 100% !important;
}

.shack-clock .shack-callsign { color: var(--shack-accent); text-shadow: 0 0 20px var(--shack-dim); }
.shack-clock .shack-utc-label { color: var(--shack-accent); opacity: 0.5; }
.shack-clock .shack-utc-time { color: var(--shack-accent); text-shadow: 0 0 40px var(--shack-dim); }
.shack-clock .shack-info-value { color: var(--shack-accent); }
.shack-clock .shack-world-time { color: var(--shack-accent); opacity: 0.7; }

/* Compact mode */
.shack-compact .shack-callsign { font-size: clamp(1rem, 2.5vw, 1.8rem) !important; }
.shack-compact .shack-utc-time { font-size: clamp(2.5rem, 8vw, 6rem) !important; }
.shack-compact .shack-panel { padding: 0.4rem 0.6rem !important; }
.shack-compact .shack-panel-title { font-size: 0.55rem !important; }

/* Core section */
.shack-core {
  text-align: center;
  z-index: 2;
}

/* Settings gear */
.shack-gear {
  position: fixed;
  top: 1rem;
  right: 1rem;
  font-size: 1.5rem;
  cursor: pointer;
  z-index: 500;
  opacity: 0;
  transition: opacity 0.3s ease;
  filter: grayscale(1) brightness(0.6);
}
.shack-clock:hover .shack-gear,
.shack-gear:hover { opacity: 1; filter: none; }

/* Settings panel */
.shack-settings-overlay {
  position: fixed;
  top: 0; right: 0;
  width: 340px;
  height: 100vh;
  background: #111318;
  border-left: 1px solid rgba(255,255,255,0.1);
  z-index: 1000;
  overflow-y: auto;
  transition: transform 0.3s ease;
}
.shack-settings-overlay.hidden { transform: translateX(100%); }
.shack-settings-inner { padding: 1.5rem; }
.shack-settings-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 1.5rem;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.9rem;
  color: var(--shack-accent, #ffaa33);
}
.shack-settings-close {
  background: none; border: none; color: #888; font-size: 1.2rem; cursor: pointer;
}
.shack-settings-body label {
  display: flex; flex-direction: column; gap: 0.25rem;
  font-size: 0.7rem; color: #888; text-transform: uppercase; letter-spacing: 0.05em;
  margin-bottom: 0.8rem;
}
.shack-settings-body input[type="text"],
.shack-settings-body select {
  background: #0a0a10; border: 1px solid #333; color: #eee;
  padding: 0.5rem; border-radius: 4px;
  font-family: 'JetBrains Mono', monospace; font-size: 0.85rem;
}
.shack-settings-body input:focus, .shack-settings-body select:focus {
  outline: none; border-color: var(--shack-accent, #ffaa33);
}
.shack-settings-toggles {
  display: flex; flex-direction: column; gap: 0.6rem;
  margin: 1rem 0;
  padding: 0.8rem;
  background: rgba(255,255,255,0.02);
  border-radius: 6px;
}
.shack-toggle {
  display: flex !important; flex-direction: row !important; align-items: center; gap: 0.6rem;
  font-size: 0.8rem !important; color: #ccc !important;
  text-transform: none !important; letter-spacing: 0 !important;
  cursor: pointer;
}
.shack-toggle input[type="checkbox"] {
  width: 16px; height: 16px; accent-color: var(--shack-accent, #ffaa33);
}
.shack-settings-actions {
  display: flex; gap: 0.6rem; margin-top: 1rem;
}
.shack-btn-apply {
  flex: 1; padding: 0.6rem; border: none; border-radius: 4px;
  background: var(--shack-accent, #ffaa33); color: #000; font-weight: 600;
  cursor: pointer; font-size: 0.85rem;
}
.shack-btn-share {
  padding: 0.6rem 1rem; border: 1px solid #444; border-radius: 4px;
  background: transparent; color: #ccc; cursor: pointer; font-size: 0.85rem;
}

/* Panels container */
.shack-panels {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  justify-content: center;
  z-index: 2;
  width: 100%;
  max-width: 900px;
}

/* Individual panel */
.shack-panel {
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 6px;
  padding: 0.6rem 0.8rem;
  font-family: 'JetBrains Mono', 'Share Tech Mono', monospace;
  font-size: 0.75rem;
  color: var(--shack-accent, #ffaa33);
  min-width: 200px;
  flex: 1;
  max-width: 420px;
}
.shack-panel-title {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.6rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0.5;
  margin-bottom: 0.4rem;
}

/* FT8/WSPR */
.ft8-row {
  display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.3rem;
}
.ft8-label {
  font-size: 0.65rem; width: 35px; text-align: right; opacity: 0.6;
}
.ft8-bar-wrap {
  flex: 1; height: 8px; background: rgba(255,255,255,0.05); border-radius: 4px; overflow: hidden;
}
.ft8-bar {
  height: 100%; border-radius: 4px;
  background: var(--shack-accent, #ffaa33);
  transition: width 0.2s linear;
}
.ft8-bar.wspr { background: #9966ff; }
.ft8-countdown {
  font-size: 0.7rem; width: 28px; text-align: right;
  font-variant-numeric: tabular-nums;
}
.ft8-seq {
  font-size: 0.6rem; opacity: 0.35; text-align: center; margin-top: 0.2rem;
}

/* Band Conditions */
.bands-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
  gap: 4px;
}
.band-item {
  text-align: center; padding: 3px; background: rgba(0,0,0,0.3); border-radius: 3px;
}
.band-name { font-size: 0.6rem; opacity: 0.5; }
.band-cond { font-size: 0.65rem; font-weight: 600; }
.band-good { color: #33ff88; }
.band-fair { color: #ffaa33; }
.band-poor { color: #ff3355; }
.bands-indices {
  font-size: 0.6rem; opacity: 0.5; text-align: center; margin-top: 0.3rem;
  letter-spacing: 0.05em;
}
.bands-time-label {
  font-size: 0.55rem; opacity: 0.3; text-align: center; margin-top: 0.1rem;
}

/* Solar Panel */
.solar-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px;
}
.solar-item {
  text-align: center; padding: 4px; background: rgba(0,0,0,0.3); border-radius: 3px;
}
.solar-label { font-size: 0.55rem; opacity: 0.4; }
.solar-val { font-size: 0.85rem; font-weight: 600; }
.solar-k-0, .solar-k-1, .solar-k-2 { color: #33ff88; }
.solar-k-3, .solar-k-4 { color: #ffaa33; }
.solar-k-5, .solar-k-6, .solar-k-7, .solar-k-8, .solar-k-9 { color: #ff3355; }
.solar-aurora {
  text-align: center; margin-top: 0.4rem; padding: 3px 8px;
  border-radius: 3px; font-size: 0.65rem; font-weight: 600;
}
.solar-aurora.aurora-no { background: rgba(255,255,255,0.03); color: #888; }
.solar-aurora.aurora-yes { background: rgba(51,255,136,0.15); color: #33ff88; text-shadow: 0 0 8px rgba(51,255,136,0.3); }

/* Satellite passes */
.sat-pass {
  padding: 4px 0; border-bottom: 1px solid rgba(255,255,255,0.04);
}
.sat-pass:last-child { border: none; }
.sat-name { font-weight: 600; font-size: 0.75rem; }
.sat-detail { font-size: 0.6rem; opacity: 0.5; }
.sat-soon { background: rgba(255,170,51,0.08); border-radius: 3px; padding: 4px; }
.sat-soon .sat-name { color: #ffaa33; }
.sat-none { opacity: 0.4; font-size: 0.7rem; text-align: center; }

/* DX Cluster ticker */
.shack-dx-ticker {
  width: 100%;
  max-width: 900px;
  z-index: 2;
  background: rgba(0,0,0,0.3);
  border: 1px solid rgba(255,255,255,0.04);
  border-radius: 6px;
  padding: 0.4rem 0.6rem;
  font-family: 'JetBrains Mono', monospace;
}
.shack-dx-label {
  font-family: 'Orbitron', sans-serif;
  font-size: 0.55rem;
  letter-spacing: 0.2em;
  opacity: 0.4;
  margin-bottom: 0.3rem;
}
.shack-dx-spots {
  max-height: 120px;
  overflow-y: auto;
  font-size: 0.65rem;
}
.dx-spot {
  display: flex; gap: 0.5rem; padding: 2px 0;
  border-bottom: 1px solid rgba(255,255,255,0.02);
  white-space: nowrap;
  overflow: hidden;
}
.dx-freq { width: 55px; font-variant-numeric: tabular-nums; }
.dx-call { width: 75px; font-weight: 600; }
.dx-spotter { width: 80px; opacity: 0.5; }
.dx-time { width: 40px; opacity: 0.3; }
.dx-comment { opacity: 0.3; overflow: hidden; text-overflow: ellipsis; }
.dx-hf .dx-call { color: #33ff88; }
.dx-vhf .dx-call { color: #4a9eff; }
.dx-uhf .dx-call { color: #aa66ff; }
.dx-placeholder { opacity: 0.3; font-size: 0.7rem; text-align: center; padding: 0.5rem; }

/* BBC Pips indicator */
.shack-pips-indicator {
  z-index: 2;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.75rem;
  min-height: 1.2em;
}
.pips-countdown { color: var(--shack-accent, #ffaa33); opacity: 0.7; }
.pips-now { color: #33ff88; font-weight: 700; animation: pipFlash 0.5s ease infinite; }
@keyframes pipFlash { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }

/* QSO Log Panel */
.shack-qso-panel {
  position: fixed;
  bottom: 0; left: 0;
  width: 100%;
  max-width: 500px;
  background: #0d0d12;
  border-top: 1px solid rgba(255,255,255,0.08);
  border-right: 1px solid rgba(255,255,255,0.08);
  border-radius: 0 8px 0 0;
  z-index: 500;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.75rem;
}
.shack-qso-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.5rem 0.8rem;
  background: rgba(255,255,255,0.03);
  font-family: 'Orbitron', sans-serif;
  font-size: 0.6rem;
  letter-spacing: 0.15em;
  color: var(--shack-accent, #ffaa33);
}
.shack-qso-form {
  display: flex; gap: 4px; padding: 0.5rem 0.6rem;
  flex-wrap: wrap;
}
.qso-input {
  background: #080810; border: 1px solid #333; color: var(--shack-accent, #ffaa33);
  padding: 4px 6px; border-radius: 3px; font-size: 0.7rem;
  font-family: 'JetBrains Mono', monospace;
}
.qso-input:focus { outline: none; border-color: var(--shack-accent, #ffaa33); }
#qso-call { width: 90px; }
#qso-band, #qso-mode { width: 60px; }
.qso-rst { width: 45px; }
.qso-log-btn {
  background: var(--shack-accent, #ffaa33); color: #000; border: none;
  padding: 4px 12px; border-radius: 3px; font-weight: 700;
  cursor: pointer; font-size: 0.7rem;
}
.shack-qso-list {
  max-height: 100px; overflow-y: auto;
  padding: 0 0.6rem;
}
.qso-entry {
  display: flex; gap: 0.5rem; padding: 2px 0;
  border-bottom: 1px solid rgba(255,255,255,0.03);
  font-size: 0.65rem;
}
.qso-e-call { font-weight: 600; width: 80px; color: var(--shack-accent, #ffaa33); }
.qso-e-band { width: 40px; opacity: 0.6; }
.qso-e-mode { width: 35px; opacity: 0.6; }
.qso-e-rst { width: 45px; opacity: 0.4; }
.qso-e-time { opacity: 0.3; }
.shack-qso-footer {
  display: flex; gap: 0.5rem; padding: 0.4rem 0.6rem;
}
.qso-export-btn, .qso-clear-btn {
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1);
  color: #aaa; padding: 3px 8px; border-radius: 3px;
  font-size: 0.6rem; cursor: pointer;
}

/* Scrollbar styling for shack panels */
.shack-dx-spots::-webkit-scrollbar,
.shack-qso-list::-webkit-scrollbar,
.shack-clock::-webkit-scrollbar {
  width: 4px;
}
.shack-dx-spots::-webkit-scrollbar-thumb,
.shack-qso-list::-webkit-scrollbar-thumb,
.shack-clock::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.1); border-radius: 2px;
}

/* Mobile stacking */
@media (max-width: 600px) {
  .shack-panels { flex-direction: column; }
  .shack-panel { max-width: none; }
  .shack-qso-panel { max-width: 100%; }
  .shack-dx-ticker { max-width: 100%; }
}


/* ============================================================
   RAYNET Emergency Communications Clock
   ============================================================ */
.raynet-clock {
  width: 100%; height: 100%;
  background: #0a0c0a;
  display: flex; flex-direction: column;
  padding: clamp(0.8rem, 1.5vh, 1.5rem) clamp(1rem, 2vw, 2rem);
  gap: clamp(0.4rem, 0.8vh, 0.8rem);
  overflow-y: auto;
  font-family: 'JetBrains Mono', 'Share Tech Mono', monospace;
  color: #e0e0e0;
}

/* Header */
.raynet-header {
  display: flex; justify-content: space-between; align-items: center;
}
.raynet-logo { display: flex; align-items: center; gap: 0.8rem; }
.raynet-logo-icon { font-size: clamp(1.5rem, 3vw, 2.5rem); }
.raynet-logo-title {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(1.2rem, 2.5vw, 2rem);
  font-weight: 700;
  color: #ffc107;
  letter-spacing: 0.2em;
  text-shadow: 0 0 20px rgba(255,193,7,0.3);
}
.raynet-logo-sub {
  font-size: clamp(0.5rem, 0.9vw, 0.75rem);
  color: rgba(255,193,7,0.5);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.raynet-status {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(0.7rem, 1.2vw, 1rem);
  font-weight: 600;
  padding: 0.4rem 1.2rem;
  border: 2px solid;
  border-radius: 6px;
  letter-spacing: 0.15em;
  display: flex; align-items: center; gap: 0.5rem;
}
.raynet-status-dot {
  width: 8px; height: 8px; border-radius: 50%;
  animation: raynet-pulse 2s ease-in-out infinite;
}
@keyframes raynet-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

/* Event banner */
.raynet-event {
  text-align: center;
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(0.8rem, 1.5vw, 1.2rem);
  font-weight: 600;
  color: #ffc107;
  letter-spacing: 0.2em;
  padding: 0.3rem;
  border-top: 1px solid rgba(255,193,7,0.2);
  border-bottom: 1px solid rgba(255,193,7,0.2);
}

/* Main UTC time */
.raynet-time-block { text-align: center; }
.raynet-utc-label {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(0.6rem, 1vw, 0.9rem);
  color: rgba(255,193,7,0.5);
  letter-spacing: 0.3em;
}
.raynet-utc {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(3rem, 10vw, 8rem);
  font-weight: 700;
  color: #ffc107;
  text-shadow: 0 0 30px rgba(255,193,7,0.4), 0 0 60px rgba(255,193,7,0.15);
  line-height: 1;
}
.raynet-digit { display: inline-block; }
.raynet-colon { opacity: 0.6; }
.raynet-local-row {
  display: flex; align-items: center; justify-content: center;
  gap: clamp(1rem, 3vw, 3rem);
  margin-top: 0.2rem;
}
.raynet-local-label {
  font-size: clamp(0.6rem, 0.9vw, 0.8rem);
  color: rgba(76,175,80,0.6);
  letter-spacing: 0.15em;
}
.raynet-local-time {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(1rem, 2vw, 1.5rem);
  color: #4caf50;
}
.raynet-date {
  font-size: clamp(0.6rem, 1vw, 0.85rem);
  color: rgba(255,255,255,0.3);
}

/* Info cards */
.raynet-info-grid {
  display: flex; flex-wrap: wrap;
  gap: clamp(0.4rem, 0.8vw, 0.8rem);
  justify-content: center;
}
.raynet-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,193,7,0.15);
  border-radius: 8px;
  padding: clamp(0.4rem, 0.8vh, 0.8rem) clamp(0.8rem, 1.5vw, 1.5rem);
  text-align: center;
  min-width: 100px;
}
.raynet-card-label {
  font-size: clamp(0.5rem, 0.7vw, 0.65rem);
  color: rgba(255,193,7,0.5);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 0.2rem;
}
.raynet-card-value {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(0.9rem, 1.5vw, 1.3rem);
  font-weight: 600;
  color: #e0e0e0;
}
.raynet-call { color: #ffc107 !important; font-size: clamp(1.1rem, 2vw, 1.6rem) !important; }
.raynet-opname { font-weight: 400; font-size: 0.8em; color: rgba(255,255,255,0.5); }

/* Panels */
.raynet-panels {
  display: flex; gap: clamp(0.5rem, 1vw, 1rem);
  flex-wrap: wrap;
}
.raynet-panel {
  flex: 1; min-width: 250px;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,193,7,0.1);
  border-radius: 8px;
  padding: clamp(0.5rem, 1vh, 1rem);
}
.raynet-panel-title {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(0.55rem, 0.8vw, 0.7rem);
  color: rgba(255,193,7,0.5);
  letter-spacing: 0.15em;
  margin-bottom: 0.5rem;
}
.raynet-solar-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 0.4rem;
}
.rsi { text-align: center; }
.rsl { display: block; font-size: clamp(0.5rem, 0.7vw, 0.6rem); color: rgba(255,255,255,0.4); text-transform: uppercase; }
.rsv { display: block; font-family: 'Orbitron', sans-serif; font-size: clamp(0.9rem, 1.3vw, 1.2rem); color: #ffc107; }
.raynet-aurora { text-align: center; font-size: clamp(0.55rem, 0.8vw, 0.7rem); color: rgba(255,255,255,0.4); margin-top: 0.3rem; }

.raynet-bands-grid { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.rb-item {
  display: flex; align-items: center; gap: 0.4rem;
  background: rgba(255,255,255,0.03);
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
}
.rb-name { font-size: clamp(0.6rem, 0.9vw, 0.8rem); color: rgba(255,255,255,0.5); }
.rb-cond { font-size: clamp(0.6rem, 0.9vw, 0.8rem); font-weight: 600; }
.rb-good { color: #4caf50; }
.rb-fair { color: #ff9800; }
.rb-poor { color: #f44336; }
.raynet-bands-label { font-size: clamp(0.5rem, 0.7vw, 0.6rem); color: rgba(255,255,255,0.3); margin-top: 0.3rem; }

/* World clocks row */
.raynet-world {
  display: flex; justify-content: center;
  gap: clamp(1rem, 3vw, 3rem);
  flex-wrap: wrap;
}
.raynet-world-item { text-align: center; }
.raynet-world-label { display: block; font-size: clamp(0.5rem, 0.7vw, 0.6rem); color: rgba(255,255,255,0.3); text-transform: uppercase; letter-spacing: 0.1em; }
.raynet-world-time { display: block; font-family: 'Orbitron', sans-serif; font-size: clamp(0.9rem, 1.5vw, 1.3rem); color: rgba(255,193,7,0.6); }

/* Message log */
.raynet-log {
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,193,7,0.1);
  border-radius: 8px;
  padding: clamp(0.4rem, 0.8vh, 0.8rem);
  flex: 1;
  min-height: 80px;
  display: flex; flex-direction: column;
}
.raynet-log-header {
  display: flex; justify-content: space-between; align-items: center;
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(0.55rem, 0.8vw, 0.7rem);
  color: rgba(255,193,7,0.5);
  letter-spacing: 0.15em;
  margin-bottom: 0.4rem;
}
.raynet-log-count { color: rgba(255,255,255,0.3); }
.raynet-log-form {
  display: flex; gap: 0.3rem; margin-bottom: 0.4rem;
}
.raynet-input {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,193,7,0.2);
  border-radius: 4px;
  color: #e0e0e0;
  font-family: 'JetBrains Mono', monospace;
  font-size: clamp(0.6rem, 0.9vw, 0.8rem);
  padding: 0.3rem 0.5rem;
  outline: none;
}
.raynet-input:focus { border-color: #ffc107; }
.raynet-input-sm { width: 80px; }
.raynet-input-lg { flex: 1; }
.raynet-log-btn {
  background: rgba(255,193,7,0.15);
  border: 1px solid #ffc107;
  color: #ffc107;
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(0.55rem, 0.8vw, 0.7rem);
  padding: 0.3rem 0.8rem;
  border-radius: 4px;
  cursor: pointer;
  letter-spacing: 0.1em;
}
.raynet-log-btn:hover { background: rgba(255,193,7,0.3); }
.raynet-log-list {
  flex: 1;
  overflow-y: auto;
  max-height: 150px;
}
.raynet-msg {
  display: flex; gap: 0.5rem; align-items: baseline;
  padding: 0.15rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.03);
  font-size: clamp(0.55rem, 0.8vw, 0.7rem);
}
.raynet-msg-time { color: rgba(255,255,255,0.3); white-space: nowrap; }
.raynet-msg-from { color: #ffc107; font-weight: 600; white-space: nowrap; min-width: 60px; }
.raynet-msg-text { flex: 1; color: #e0e0e0; }
.raynet-msg-pri { font-size: 0.5rem; letter-spacing: 0.1em; opacity: 0.5; }
.msg-flash { background: rgba(244,67,54,0.1); }
.msg-flash .raynet-msg-pri { color: #f44336; opacity: 1; }
.msg-immediate { background: rgba(255,152,0,0.08); }
.msg-immediate .raynet-msg-pri { color: #ff9800; opacity: 1; }
.msg-priority .raynet-msg-pri { color: #2196f3; opacity: 0.8; }

/* Footer */
.raynet-footer {
  display: flex; justify-content: space-between; align-items: center;
  font-size: clamp(0.5rem, 0.8vw, 0.7rem);
}
.raynet-elapsed {
  font-family: 'Orbitron', sans-serif;
  color: rgba(76,175,80,0.6);
  letter-spacing: 0.1em;
}

/* RAYNET Settings Panel */
.raynet-gear {
  position: fixed;
  top: 1rem; right: 1rem;
  font-size: 1.5rem;
  cursor: pointer;
  z-index: 500;
  opacity: 0;
  transition: opacity 0.3s ease;
  filter: grayscale(1) brightness(0.6);
}
.raynet-clock:hover .raynet-gear,
.raynet-gear:hover { opacity: 1; filter: none; }

.raynet-settings-overlay {
  position: fixed;
  top: 0; right: 0;
  width: 340px;
  height: 100vh;
  background: #111318;
  border-left: 1px solid rgba(255,193,7,0.15);
  z-index: 1000;
  overflow-y: auto;
  transition: transform 0.3s ease;
}
.raynet-settings-overlay.hidden { transform: translateX(100%); }
.raynet-settings-inner { padding: 1.5rem; }
.raynet-settings-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 1.5rem;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.9rem;
  color: #ffc107;
}
.raynet-settings-close {
  background: none; border: 1px solid rgba(255,255,255,0.1);
  color: #888; font-size: 1rem; cursor: pointer;
  width: 28px; height: 28px; border-radius: 4px;
  display: flex; align-items: center; justify-content: center;
}
.raynet-settings-close:hover { color: #fff; border-color: rgba(255,255,255,0.3); }
.raynet-settings-body label {
  display: block; margin-bottom: 0.8rem;
  font-size: 0.7rem; color: rgba(255,255,255,0.5);
  text-transform: uppercase; letter-spacing: 0.1em;
}
.raynet-settings-body input[type="text"],
.raynet-settings-body select {
  display: block; width: 100%; margin-top: 0.3rem;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,193,7,0.2);
  border-radius: 6px;
  color: #e0e0e0;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.85rem;
  padding: 0.5rem 0.6rem;
  outline: none;
}
.raynet-settings-body input:focus,
.raynet-settings-body select:focus { border-color: #ffc107; }
.raynet-settings-toggles { margin: 1rem 0; }
.raynet-toggle {
  display: flex !important; align-items: center; gap: 0.5rem;
  margin-bottom: 0.5rem;
  font-size: 0.75rem !important; color: rgba(255,255,255,0.6) !important;
  text-transform: none !important; letter-spacing: 0 !important;
  cursor: pointer;
}
.raynet-toggle input[type="checkbox"] {
  width: 16px; height: 16px; accent-color: #ffc107;
}
.raynet-settings-actions {
  display: flex; gap: 0.5rem; margin-top: 1rem;
}
.raynet-btn-apply, .raynet-btn-share {
  flex: 1; padding: 0.6rem;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.7rem;
  border-radius: 6px;
  cursor: pointer;
  letter-spacing: 0.05em;
}
.raynet-btn-apply {
  background: rgba(255,193,7,0.15); border: 1px solid #ffc107; color: #ffc107;
}
.raynet-btn-apply:hover { background: rgba(255,193,7,0.3); }
.raynet-btn-share {
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.15); color: rgba(255,255,255,0.6);
}
.raynet-btn-share:hover { background: rgba(255,255,255,0.1); }

/* RAYNET Dual Callsigns */
.raynet-calls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.8rem, 2vw, 2rem);
}
.raynet-call-block { text-align: center; }
.raynet-call-label {
  font-size: clamp(0.5rem, 0.8vw, 0.7rem);
  color: rgba(255,193,7,0.4);
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.raynet-call-big {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(1.8rem, 4vw, 3.5rem);
  font-weight: 700;
  color: #ffc107;
  letter-spacing: 0.1em;
  text-shadow: 0 0 25px rgba(255,193,7,0.3);
  line-height: 1.1;
}
.raynet-call-ctrl {
  color: #4caf50;
  text-shadow: 0 0 25px rgba(76,175,80,0.3);
}
.raynet-call-sep {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  color: rgba(255,255,255,0.1);
  font-weight: 300;
}

/* Glasgow & Clyde RAYNET Branding */
.raynet-clock {
  background: #05070d !important;
}
.raynet-logo-title {
  font-family: 'Orbitron', sans-serif;
  font-size: clamp(1rem, 2vw, 1.6rem) !important;
  font-weight: 600 !important;
  color: #2ec4b6 !important;
  letter-spacing: 0.15em !important;
  text-shadow: 0 0 20px rgba(46,196,182,0.2) !important;
}
.raynet-logo-raynet {
  color: #f3a712;
  text-shadow: 0 0 20px rgba(243,167,18,0.3);
}
.raynet-logo-sub {
  color: rgba(46,196,182,0.4) !important;
}
.raynet-header {
  border-bottom: 1px solid rgba(46,196,182,0.1);
  padding-bottom: clamp(0.3rem, 0.6vh, 0.6rem);
}
/* Status badges — keep existing colours but refine borders */
.raynet-status {
  border-width: 1px !important;
}
/* Cards — teal accent borders */
.raynet-card {
  border-color: rgba(46,196,182,0.12) !important;
}
.raynet-card-label {
  color: rgba(46,196,182,0.45) !important;
}
/* Event banner — teal borders */
.raynet-event {
  border-color: rgba(46,196,182,0.15) !important;
  color: #2ec4b6 !important;
}
/* Panels — teal accents */
.raynet-panel {
  border-color: rgba(46,196,182,0.1) !important;
}
.raynet-panel-title {
  color: rgba(46,196,182,0.45) !important;
}
/* UTC label */
.raynet-utc-label {
  color: rgba(46,196,182,0.4) !important;
}
/* Message log */
.raynet-log {
  border-color: rgba(46,196,182,0.1) !important;
}
.raynet-log-header {
  color: rgba(46,196,182,0.45) !important;
}
.raynet-input {
  border-color: rgba(46,196,182,0.2) !important;
}
.raynet-input:focus {
  border-color: #2ec4b6 !important;
}
.raynet-log-btn {
  background: rgba(46,196,182,0.1) !important;
  border-color: #2ec4b6 !important;
  color: #2ec4b6 !important;
}
.raynet-log-btn:hover {
  background: rgba(46,196,182,0.25) !important;
}
/* World clocks — teal labels */
.raynet-world-label {
  color: rgba(46,196,182,0.35) !important;
}
.raynet-world-time {
  color: rgba(243,167,18,0.6) !important;
}
/* Footer */
.raynet-elapsed {
  color: rgba(46,196,182,0.5) !important;
}
/* Solar values in amber */
.rsv { color: #f3a712 !important; }
.rsl { color: rgba(46,196,182,0.4) !important; }
.raynet-aurora { color: rgba(46,196,182,0.4) !important; }
/* Band labels */
.rb-name { color: rgba(148,163,184,0.6) !important; }
.raynet-bands-label { color: rgba(46,196,182,0.3) !important; }
/* Settings panel branding */
.raynet-settings-overlay {
  border-left-color: rgba(46,196,182,0.15) !important;
}
.raynet-settings-header {
  color: #2ec4b6 !important;
}
.raynet-settings-body input[type="text"],
.raynet-settings-body select {
  border-color: rgba(46,196,182,0.2) !important;
}
.raynet-settings-body input:focus,
.raynet-settings-body select:focus {
  border-color: #2ec4b6 !important;
}
.raynet-btn-apply {
  background: rgba(46,196,182,0.1) !important;
  border-color: #2ec4b6 !important;
  color: #2ec4b6 !important;
}
.raynet-btn-apply:hover {
  background: rgba(46,196,182,0.25) !important;
}
.raynet-toggle input[type="checkbox"] {
  accent-color: #2ec4b6 !important;
}
/* Net call stays amber, ctrl stays green */
.raynet-call-big { color: #f3a712 !important; text-shadow: 0 0 25px rgba(243,167,18,0.3) !important; }
.raynet-call-ctrl { color: #2ec4b6 !important; text-shadow: 0 0 25px rgba(46,196,182,0.3) !important; }
.raynet-call-label { color: rgba(46,196,182,0.35) !important; }
/* Message from callsign in amber */
.raynet-msg-from { color: #f3a712 !important; }

.raynet-call-name {
  font-family: 'JetBrains Mono', monospace;
  font-size: clamp(0.6rem, 1vw, 0.85rem);
  color: rgba(148,163,184,0.5);
  margin-top: 0.1rem;
}

/* RAYNET Font Scaling Fix — fullscreen readability */

/* Header */
.raynet-logo-title {
  font-size: clamp(1.2rem, 2.5vw, 2rem) !important;
}
.raynet-logo-sub {
  font-size: clamp(0.6rem, 1.1vw, 0.9rem) !important;
}
.raynet-status {
  font-size: clamp(0.8rem, 1.5vw, 1.2rem) !important;
  padding: 0.5rem 1.5rem !important;
}
.raynet-status-dot {
  width: 10px !important; height: 10px !important;
}

/* Callsign labels */
.raynet-call-label {
  font-size: clamp(0.7rem, 1.2vw, 1rem) !important;
}
.raynet-call-big {
  font-size: clamp(2.2rem, 5vw, 4.5rem) !important;
}
.raynet-call-name {
  font-size: clamp(0.8rem, 1.3vw, 1.1rem) !important;
}
.raynet-call-sep {
  font-size: clamp(2rem, 4vw, 3.5rem) !important;
}

/* Event banner */
.raynet-event {
  font-size: clamp(0.9rem, 1.8vw, 1.4rem) !important;
  padding: 0.5rem !important;
}

/* UTC time — already big, just ensure */
.raynet-utc {
  font-size: clamp(4rem, 12vw, 10rem) !important;
}
.raynet-utc-label {
  font-size: clamp(0.8rem, 1.3vw, 1.1rem) !important;
  letter-spacing: 0.4em !important;
}

/* Local time row */
.raynet-local-label {
  font-size: clamp(0.7rem, 1.1vw, 0.95rem) !important;
}
.raynet-local-time {
  font-size: clamp(1.3rem, 2.5vw, 2rem) !important;
}
.raynet-date {
  font-size: clamp(0.8rem, 1.3vw, 1.1rem) !important;
}

/* Info cards */
.raynet-info-grid {
  gap: clamp(0.5rem, 1vw, 1rem) !important;
}
.raynet-card {
  padding: clamp(0.5rem, 1vh, 1rem) clamp(1rem, 2vw, 2rem) !important;
}
.raynet-card-label {
  font-size: clamp(0.6rem, 0.9vw, 0.8rem) !important;
}
.raynet-card-value {
  font-size: clamp(1.1rem, 1.8vw, 1.6rem) !important;
}

/* Panels — Band Conditions + Solar */
.raynet-panels {
  gap: clamp(0.6rem, 1.2vw, 1.2rem) !important;
}
.raynet-panel {
  padding: clamp(0.6rem, 1.2vh, 1.2rem) !important;
}
.raynet-panel-title {
  font-size: clamp(0.7rem, 1vw, 0.9rem) !important;
  margin-bottom: 0.6rem !important;
}

/* Band conditions */
.rb-item {
  padding: 0.3rem 0.8rem !important;
  border-radius: 6px !important;
}
.rb-name {
  font-size: clamp(0.8rem, 1.2vw, 1.1rem) !important;
}
.rb-cond {
  font-size: clamp(0.8rem, 1.2vw, 1.1rem) !important;
}
.raynet-bands-grid {
  gap: 0.6rem !important;
}
.raynet-bands-label {
  font-size: clamp(0.6rem, 0.9vw, 0.8rem) !important;
  margin-top: 0.5rem !important;
}

/* Solar data */
.raynet-solar-grid {
  gap: 0.6rem !important;
}
.rsl {
  font-size: clamp(0.6rem, 0.9vw, 0.8rem) !important;
}
.rsv {
  font-size: clamp(1.1rem, 1.6vw, 1.5rem) !important;
}
.raynet-aurora {
  font-size: clamp(0.7rem, 1vw, 0.9rem) !important;
  margin-top: 0.5rem !important;
}

/* World clocks */
.raynet-world {
  gap: clamp(1.5rem, 4vw, 4rem) !important;
}
.raynet-world-label {
  font-size: clamp(0.6rem, 0.9vw, 0.8rem) !important;
}
.raynet-world-time {
  font-size: clamp(1.2rem, 2vw, 1.8rem) !important;
}

/* Message log */
.raynet-log-header {
  font-size: clamp(0.65rem, 1vw, 0.85rem) !important;
}
.raynet-log-count {
  font-size: clamp(0.6rem, 0.9vw, 0.8rem) !important;
}
.raynet-input {
  font-size: clamp(0.7rem, 1.1vw, 0.95rem) !important;
  padding: 0.4rem 0.6rem !important;
}
.raynet-log-btn {
  font-size: clamp(0.65rem, 1vw, 0.85rem) !important;
  padding: 0.4rem 1rem !important;
}
.raynet-msg {
  font-size: clamp(0.65rem, 1vw, 0.85rem) !important;
  padding: 0.25rem 0 !important;
}

/* Footer */
.raynet-elapsed {
  font-size: clamp(0.7rem, 1.1vw, 0.95rem) !important;
}
.raynet-footer {
  font-size: clamp(0.6rem, 1vw, 0.85rem) !important;
  padding-top: 0.3rem !important;
  border-top: 1px solid rgba(46,196,182,0.08);
}

/* Fixed-width time displays — use min-width containers instead of per-digit */
.raynet-utc, .shack-utc-time {
  font-variant-numeric: tabular-nums !important;
  font-feature-settings: "tnum" 1 !important;
  letter-spacing: 0.02em !important;
}
.raynet-digit, .shack-digit {
  display: inline-block !important;
}
.raynet-colon, .shack-colon {
  opacity: 0.6;
  display: inline-block !important;
  padding: 0 0.02em !important;
}
.raynet-local-time, .shack-info-value,
.prop-time-value, .contest-utc, .world-time-value,
.countdown-value, .pomodoro-time {
  font-variant-numeric: tabular-nums !important;
  font-feature-settings: "tnum" 1 !important;
}

/* RAYNET Log Footer */
.raynet-log-footer {
  display: flex; gap: 0.5rem;
  margin-top: 0.4rem;
  padding-top: 0.4rem;
  border-top: 1px solid rgba(46,196,182,0.08);
}
.raynet-log-action {
  font-family: 'JetBrains Mono', monospace;
  font-size: clamp(0.6rem, 0.9vw, 0.8rem);
  padding: 0.3rem 0.8rem;
  border-radius: 4px;
  cursor: pointer;
  background: rgba(46,196,182,0.08);
  border: 1px solid rgba(46,196,182,0.2);
  color: rgba(46,196,182,0.7);
}
.raynet-log-action:hover {
  background: rgba(46,196,182,0.15);
  color: #2ec4b6;
}
.raynet-log-danger {
  background: rgba(244,67,54,0.08) !important;
  border-color: rgba(244,67,54,0.2) !important;
  color: rgba(244,67,54,0.5) !important;
}
.raynet-log-danger:hover {
  background: rgba(244,67,54,0.15) !important;
  color: #f44336 !important;
}


/* ============================================================
   MODE: Scoreboard
   ============================================================ */
.scoreboard-wrap {
  width: 100vw; height: 100vh;
  background: #0a0a0f;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  font-family: 'Orbitron', monospace;
  color: #fff; gap: 2rem;
}
.scoreboard-header {
  display: flex; align-items: center; gap: 2rem;
}
.scoreboard-period {
  font-size: clamp(1rem, 3vw, 2rem);
  color: #ffaa33; cursor: pointer;
}
.scoreboard-clock {
  font-size: clamp(2rem, 8vw, 6rem);
  font-variant-numeric: tabular-nums;
  color: #fff;
}
.scoreboard-clock-btns { display: flex; gap: 0.5rem; }
.scoreboard-clock-btns button {
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2);
  color: #fff; padding: 0.5rem 1rem; border-radius: 6px; cursor: pointer;
  font-size: clamp(0.8rem, 2vw, 1.2rem);
}
.scoreboard-teams {
  display: flex; align-items: center; gap: clamp(1rem, 4vw, 4rem);
}
.scoreboard-team { text-align: center; }
.scoreboard-team-name {
  font-size: clamp(0.8rem, 2.5vw, 1.5rem);
  color: #ffaa33; text-transform: uppercase;
  letter-spacing: 0.2em; margin-bottom: 0.5rem;
}
.scoreboard-score {
  font-size: clamp(4rem, 15vw, 12rem);
  font-weight: 900; font-variant-numeric: tabular-nums;
  line-height: 1;
}
.scoreboard-score-btns { display: flex; gap: 0.5rem; justify-content: center; margin-top: 0.5rem; }
.scoreboard-score-btns button {
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2);
  color: #fff; width: 3rem; height: 3rem; border-radius: 50%;
  font-size: 1.5rem; cursor: pointer;
}
.scoreboard-vs {
  font-size: clamp(1rem, 3vw, 2rem);
  color: rgba(255,255,255,0.3);
}
.sb-inc, .sb-dec { font-family: inherit; }

/* ============================================================
   MODE: Meeting Timer
   ============================================================ */
.meeting-wrap {
  width: 100vw; height: 100vh;
  background: #0a0a0f;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  font-family: 'Orbitron', monospace;
  color: #fff; gap: 1.5rem;
}
.meeting-title {
  font-size: clamp(1rem, 3vw, 2rem);
  color: rgba(255,255,255,0.6);
  text-transform: uppercase; letter-spacing: 0.3em;
}
.meeting-remaining {
  font-size: clamp(4rem, 18vw, 14rem);
  font-weight: 700; font-variant-numeric: tabular-nums;
  color: #33ff88; transition: color 0.5s;
}
.meeting-overtime {
  animation: meeting-flash 0.5s infinite alternate;
}
@keyframes meeting-flash {
  from { opacity: 1; }
  to { opacity: 0.4; }
}
.meeting-progress-bar {
  width: 60vw; max-width: 600px; height: 8px;
  background: rgba(255,255,255,0.1); border-radius: 4px;
  overflow: hidden;
}
.meeting-progress-fill {
  height: 100%; width: 0%;
  background: #33ff88; border-radius: 4px;
  transition: width 1s linear, background 0.5s;
}
.meeting-label {
  font-size: clamp(0.7rem, 1.5vw, 1rem);
  color: rgba(255,255,255,0.4);
  text-transform: uppercase; letter-spacing: 0.3em;
}

/* ============================================================
   MODE: Kitchen Timer
   ============================================================ */
.kitchen-wrap {
  width: 100vw; height: 100vh;
  background: #0a0a0f;
  display: grid; grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 1px; padding: 1px;
  font-family: 'Orbitron', monospace;
}
.kitchen-timer {
  background: #111118;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 0.5rem; padding: 1rem;
}
.kitchen-timer-name {
  font-size: clamp(0.6rem, 1.5vw, 0.9rem);
  color: rgba(255,255,255,0.4);
  text-transform: uppercase; letter-spacing: 0.2em;
}
.kitchen-timer-display {
  font-size: clamp(2rem, 8vw, 5rem);
  font-weight: 700; color: #fff;
  font-variant-numeric: tabular-nums;
}
.kitchen-timer-btns { display: flex; gap: 0.5rem; }
.kitchen-timer-btns button {
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2);
  color: #fff; padding: 0.4rem 0.8rem; border-radius: 6px; cursor: pointer;
  font-size: clamp(0.8rem, 1.5vw, 1.2rem); font-family: inherit;
}
.kitchen-presets { display: flex; gap: 0.3rem; flex-wrap: wrap; justify-content: center; }
.kitchen-presets button {
  background: rgba(74,158,255,0.15); border: 1px solid rgba(74,158,255,0.3);
  color: #4a9eff; padding: 0.2rem 0.5rem; border-radius: 4px;
  cursor: pointer; font-size: clamp(0.5rem, 1vw, 0.7rem);
  font-family: 'Orbitron', monospace;
}
.kitchen-alarm { animation: kitchen-alarm-flash 0.3s infinite alternate; }
@keyframes kitchen-alarm-flash {
  from { background: #111118; }
  to { background: #3a1010; }
}

/* ============================================================
   MODE: Sundial
   ============================================================ */
.sundial-wrap {
  width: 100vw; height: 100vh;
  background: radial-gradient(ellipse at center, #1a1408, #0a0a0f);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
}
#sundial-svg {
  width: min(80vw, 80vh); height: min(80vw, 80vh);
}
.sundial-info {
  font-family: 'Playfair Display', serif;
  font-size: clamp(0.7rem, 1.5vw, 1rem);
  color: #c8a050; margin-top: 1rem; opacity: 0.7;
}

/* ============================================================
   MODE: Colour Field
   ============================================================ */
.colour-wrap {
  width: 100vw; height: 100vh;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.1s;
}
.colour-time {
  font-family: 'Inter', 'Orbitron', sans-serif;
  font-size: clamp(4rem, 15vw, 12rem);
  font-weight: 200;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 2px 20px rgba(0,0,0,0.3);
}

/* ============================================================
   MODE: NOC Dashboard
   ============================================================ */
.noc-wrap {
  width: 100vw; height: 100vh;
  background: #0a0c0a;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  font-family: 'JetBrains Mono', 'Orbitron', monospace;
  color: #33ff88; gap: 0.8rem; padding: 1rem;
  box-sizing: border-box;
}
.noc-header {
  width: 100%;
  text-align: center;
}
.noc-title {
  font-size: clamp(0.6rem, 1.5vw, 1rem);
  letter-spacing: 0.3em;
  color: #ffaa33; text-transform: uppercase;
}
.noc-time {
  font-size: clamp(3rem, 12vw, 8rem);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: #33ff88;
  text-shadow: 0 0 30px rgba(51,255,136,0.3);
}
.noc-date {
  font-size: clamp(0.6rem, 1.2vw, 0.9rem);
  color: rgba(51,255,136,0.4);
}
.noc-grid {
  display: flex; gap: 1rem; flex-wrap: wrap;
  justify-content: center; width: 100%;
  max-width: 800px;
}
.noc-panel {
  background: rgba(51,255,136,0.05);
  border: 1px solid rgba(51,255,136,0.15);
  border-radius: 6px; padding: 0.8rem;
  flex: 1; min-width: 200px;
}
.noc-wide { flex-basis: 100%; text-align: center; }
.noc-panel-title {
  font-size: 0.6rem;
  color: #ffaa33; letter-spacing: 0.2em;
  margin-bottom: 0.5rem; text-transform: uppercase;
}
.noc-host {
  font-size: clamp(0.6rem, 1vw, 0.8rem);
  padding: 0.2rem 0;
  display: flex; align-items: center; gap: 0.5rem;
}
.noc-host-indicator { font-size: 0.6rem; }
.noc-host-ms {
  margin-left: auto;
  color: rgba(51,255,136,0.6);
  font-variant-numeric: tabular-nums;
}
.noc-bar-row {
  display: flex; align-items: center; gap: 0.5rem;
  margin-bottom: 0.3rem;
}
.noc-bar-label {
  font-size: 0.55rem;
  color: rgba(255,170,51,0.6);
  width: 2.5rem;
}
.noc-bar-track {
  flex: 1; height: 8px;
  background: rgba(255,255,255,0.05);
  border-radius: 4px; overflow: hidden;
}
.noc-bar-fill {
  height: 100%; border-radius: 4px;
  transition: width 0.3s;
}
.noc-uptime {
  font-size: clamp(1.2rem, 3vw, 2rem);
  font-variant-numeric: tabular-nums;
  color: #33ff88;
}
.noc-ticker {
  font-size: clamp(0.5rem, 1vw, 0.7rem);
  color: rgba(51,255,136,0.4);
  letter-spacing: 0.1em;
}


/* ============================================================
   MODE: Word Clock
   ============================================================ */
.word-clock-container {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: #0a0a0f;
}
.word-grid {
  display: grid;
  grid-template-columns: repeat(11, 1fr);
  gap: clamp(4px, 0.8vw, 12px);
  padding: clamp(16px, 3vw, 48px);
  max-width: 90vh;
}
.word-letter {
  font-family: 'Inter', 'Helvetica Neue', sans-serif;
  font-size: clamp(1.2rem, 4vw, 3.5rem);
  font-weight: 700;
  text-align: center;
  line-height: 1;
  transition: color 0.5s ease, text-shadow 0.5s ease;
  font-variant-numeric: tabular-nums;
}
.word-letter.dim {
  color: rgba(255,255,255,0.06);
}
.word-letter.active {
  color: #ffffff;
  text-shadow: 0 0 20px rgba(255,255,255,0.4), 0 0 40px rgba(255,255,255,0.15);
}

/* ============================================================
   MODE: Matrix Rain
   ============================================================ */
#matrix-canvas {
  background: #000;
  display: block;
}

/* ============================================================
   MODE: Retro Terminal
   ============================================================ */
.terminal-crt {
  width: 100%; height: 100%;
  background: #0a120a;
  border-radius: 20px;
  position: relative;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  box-shadow: inset 0 0 80px rgba(0,255,0,0.03), inset 0 0 200px rgba(0,0,0,0.5);
}
.terminal-scanlines {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(
    0deg,
    rgba(0,255,0,0.015) 0px,
    rgba(0,255,0,0.015) 1px,
    transparent 1px,
    transparent 3px
  );
  pointer-events: none;
  z-index: 2;
}
.terminal-content {
  font-family: 'Courier New', 'Fira Mono', monospace;
  color: #33ff33;
  text-align: center;
  z-index: 1;
  padding: clamp(16px, 4vw, 48px);
}
.terminal-header {
  font-size: clamp(0.7rem, 1.5vw, 1.2rem);
  opacity: 0.5;
  margin-bottom: 2rem;
  letter-spacing: 0.15em;
}
.terminal-time {
  font-size: clamp(3rem, 12vw, 10rem);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 20px rgba(51,255,51,0.5), 0 0 60px rgba(51,255,51,0.2);
  letter-spacing: 0.05em;
}
.terminal-date {
  font-size: clamp(0.8rem, 2vw, 1.4rem);
  opacity: 0.6;
  margin-top: 0.5rem;
}
.terminal-sep {
  opacity: 0.2;
  margin: 1.5rem 0;
  font-size: clamp(0.5rem, 1vw, 0.9rem);
}
.terminal-msg {
  font-size: clamp(0.7rem, 1.5vw, 1.1rem);
  opacity: 0.7;
  min-height: 1.5em;
}
.terminal-cursor {
  display: inline-block;
  font-size: clamp(1rem, 2vw, 1.5rem);
  animation: termBlink 1s step-end infinite;
  margin-top: 1rem;
}
@keyframes termBlink {
  50% { opacity: 0; }
}

/* ============================================================
   MODE: Tidal Clock
   ============================================================ */
.tidal-container {
  width: 100%; height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: linear-gradient(180deg, #0a0f1a 0%, #0a1628 50%, #0d1f3c 100%);
  gap: clamp(8px, 2vh, 24px);
  padding: clamp(16px, 3vw, 48px);
}
.tidal-header {
  font-family: Orbitron, sans-serif;
  font-size: clamp(0.7rem, 1.5vw, 1.2rem);
  color: #4a9eff;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}
.tidal-location {
  font-family: 'Fira Mono', monospace;
  font-size: clamp(0.6rem, 1vw, 0.9rem);
  color: rgba(74,158,255,0.4);
  letter-spacing: 0.1em;
}
.tidal-time {
  font-family: Orbitron, sans-serif;
  font-size: clamp(2.5rem, 8vw, 7rem);
  font-weight: 700;
  color: #ffffff;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 30px rgba(74,158,255,0.3);
}
.tidal-viz {
  display: flex; align-items: center; gap: 2rem;
}
.tidal-bar-wrap {
  display: flex; align-items: center; gap: 1rem;
}
.tidal-bar {
  width: clamp(30px, 4vw, 50px);
  height: clamp(80px, 15vh, 150px);
  background: rgba(74,158,255,0.1);
  border-radius: 8px;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(74,158,255,0.2);
}
.tidal-fill {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(0deg, #1a5fa8, #4a9eff);
  border-radius: 0 0 7px 7px;
  transition: height 1s ease;
}
.tidal-pct {
  font-family: Orbitron, sans-serif;
  font-size: clamp(0.8rem, 1.5vw, 1.2rem);
  color: #4a9eff;
}
.tidal-status {
  font-family: Orbitron, sans-serif;
  font-size: clamp(0.9rem, 2vw, 1.5rem);
  color: #4a9eff;
  letter-spacing: 0.15em;
}
.tidal-info {
  font-family: 'Inter', sans-serif;
  font-size: clamp(0.7rem, 1.5vw, 1.1rem);
  color: rgba(255,255,255,0.5);
}
.tidal-moon {
  font-size: clamp(0.8rem, 1.5vw, 1.1rem);
  color: rgba(255,255,255,0.4);
}
.tidal-moon-icon { font-size: 1.2em; }

/* ============================================================
   MODE: Departure Board
   ============================================================ */
.departures-container {
  width: 100%; height: 100%;
  background: #111111;
  display: flex; flex-direction: column;
  font-family: 'Roboto Mono', 'Courier New', monospace;
  padding: clamp(8px, 2vw, 24px);
}
.departures-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: clamp(8px, 1.5vw, 20px) clamp(12px, 2vw, 24px);
  border-bottom: 2px solid #ffcc00;
}
.departures-logo {
  font-family: Orbitron, sans-serif;
  font-size: clamp(1rem, 2.5vw, 2rem);
  color: #ffcc00;
  font-weight: 700;
  letter-spacing: 0.2em;
}
.departures-clock {
  font-family: Orbitron, sans-serif;
  font-size: clamp(1rem, 2.5vw, 2rem);
  color: #ffffff;
  font-variant-numeric: tabular-nums;
}
.departures-table {
  flex: 1;
  display: flex; flex-direction: column;
  overflow: hidden;
}
.departures-row {
  display: flex;
  padding: clamp(6px, 1vh, 14px) clamp(12px, 2vw, 24px);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  align-items: center;
}
.departures-heading {
  background: rgba(255,204,0,0.08);
  border-bottom: 1px solid rgba(255,204,0,0.2);
}
.departures-heading .dep-col {
  font-size: clamp(0.55rem, 1vw, 0.8rem);
  color: #ffcc00;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 700;
}
.dep-col {
  font-size: clamp(0.7rem, 1.5vw, 1.2rem);
  color: #ffffff;
  font-variant-numeric: tabular-nums;
}
.dep-col.dest { flex: 3; letter-spacing: 0.05em; }
.dep-col.time { flex: 1.5; text-align: center; }
.dep-col.status { flex: 1.5; text-align: center; }
.dep-col.plat { flex: 0.8; text-align: center; }
.dep-col.on-time { color: #33ff88; }

/* ============================================================
   MODE: Astronomy
   ============================================================ */
.astro-container {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, #080818 0%, #10102a 50%, #0a0a20 100%);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: clamp(12px, 2vh, 24px);
  padding: clamp(16px, 3vw, 48px);
}
.astro-header {
  font-family: Orbitron, sans-serif;
  font-size: clamp(0.7rem, 1.5vw, 1.2rem);
  color: #aa88ff;
  letter-spacing: 0.3em;
}
.astro-time {
  font-family: Orbitron, sans-serif;
  font-size: clamp(2.5rem, 8vw, 6rem);
  font-weight: 700;
  color: #ffffff;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 30px rgba(170,136,255,0.3);
}
.astro-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(8px, 1.5vw, 20px);
  width: 100%;
  max-width: 800px;
}
.astro-panel {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(170,136,255,0.15);
  border-radius: 12px;
  padding: clamp(12px, 2vw, 24px);
  text-align: center;
}
.astro-panel-title {
  font-family: Orbitron, sans-serif;
  font-size: clamp(0.5rem, 0.9vw, 0.75rem);
  color: rgba(170,136,255,0.6);
  letter-spacing: 0.2em;
  margin-bottom: 0.8rem;
}
.astro-moon-emoji { font-size: clamp(2rem, 5vw, 4rem); }
.astro-moon-name {
  font-size: clamp(0.7rem, 1.2vw, 1rem);
  color: #ddd;
  margin-top: 0.3rem;
}
.astro-moon-illum {
  font-size: clamp(0.6rem, 1vw, 0.85rem);
  color: rgba(255,255,255,0.4);
  margin-top: 0.2rem;
}
.astro-sid-time {
  font-family: Orbitron, sans-serif;
  font-size: clamp(1rem, 2vw, 1.6rem);
  color: #88ccff;
  font-variant-numeric: tabular-nums;
}
.astro-sid-label {
  font-size: clamp(0.6rem, 1vw, 0.8rem);
  color: rgba(255,255,255,0.3);
  margin-top: 0.3rem;
}
.astro-planet {
  font-size: clamp(0.8rem, 1.3vw, 1.1rem);
  color: #ffcc88;
  margin: 0.3rem 0;
}
.astro-sun-row {
  font-size: clamp(0.7rem, 1.2vw, 1rem);
  color: #ffaa44;
  margin: 0.2rem 0;
}

/* ============================================================
   MODE: Shift Clock
   ============================================================ */
.shift-container {
  width: 100%; height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: clamp(8px, 1.5vh, 20px);
  padding: clamp(16px, 3vw, 48px);
  background: #0a0a0f;
  border: 2px solid transparent;
  border-radius: 16px;
  transition: border-color 0.5s ease, background 0.5s ease;
}
.shift-name {
  font-family: Orbitron, sans-serif;
  font-size: clamp(1.2rem, 3vw, 2.5rem);
  font-weight: 900;
  letter-spacing: 0.3em;
  transition: color 0.5s ease;
}
.shift-time {
  font-family: Orbitron, sans-serif;
  font-size: clamp(1rem, 2vw, 1.8rem);
  color: rgba(255,255,255,0.4);
  font-variant-numeric: tabular-nums;
}
.shift-countdown-label {
  font-family: Orbitron, sans-serif;
  font-size: clamp(0.5rem, 1vw, 0.8rem);
  color: rgba(255,255,255,0.3);
  letter-spacing: 0.3em;
  margin-top: 1rem;
}
.shift-countdown {
  font-family: Orbitron, sans-serif;
  font-size: clamp(3rem, 10vw, 8rem);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  transition: color 0.5s ease;
}
.shift-progress {
  width: 80%;
  max-width: 500px;
  height: clamp(6px, 1vh, 12px);
  background: rgba(255,255,255,0.05);
  border-radius: 6px;
  overflow: hidden;
}
.shift-progress-bar {
  height: 100%;
  border-radius: 6px;
  transition: width 1s linear, background 0.5s ease;
}
.shift-info {
  font-family: 'Fira Mono', monospace;
  font-size: clamp(0.7rem, 1.2vw, 1rem);
  color: rgba(255,255,255,0.3);
}

/* ============================================================
   MODE: Fibonacci Clock
   ============================================================ */
.fib-container {
  width: 100%; height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: #0a0a0f;
  gap: clamp(12px, 2vh, 24px);
  padding: clamp(16px, 3vw, 48px);
}
.fib-clock {
  display: flex; flex-direction: column;
  align-items: center;
  gap: clamp(12px, 2vh, 24px);
}
.fib-grid {
  display: flex;
  gap: clamp(3px, 0.5vw, 6px);
}
.fib-cell {
  border-radius: 8px;
  transition: background 0.6s ease, box-shadow 0.6s ease;
  border: 1px solid rgba(255,255,255,0.08);
}
.fib-5 {
  width: clamp(100px, 25vw, 250px);
  height: clamp(100px, 25vw, 250px);
}
.fib-right {
  display: flex; flex-direction: column;
  gap: clamp(3px, 0.5vw, 6px);
}
.fib-3 {
  width: clamp(60px, 15vw, 150px);
  height: clamp(60px, 15vw, 150px);
}
.fib-bottom-row {
  display: flex;
  gap: clamp(3px, 0.5vw, 6px);
}
.fib-2 {
  width: clamp(38px, 10vw, 96px);
  height: clamp(38px, 10vw, 96px);
}
.fib-ones {
  display: flex; flex-direction: column;
  gap: clamp(3px, 0.5vw, 6px);
}
.fib-1a, .fib-1b {
  width: clamp(18px, 4.5vw, 46px);
  height: clamp(18px, 4.5vw, 46px);
}
.fib-time {
  font-family: Orbitron, sans-serif;
  font-size: clamp(1.2rem, 3vw, 2.5rem);
  color: rgba(255,255,255,0.5);
  font-variant-numeric: tabular-nums;
}
.fib-legend {
  display: flex; gap: 1.5rem; flex-wrap: wrap; justify-content: center;
}
.fib-leg-item {
  display: flex; align-items: center; gap: 0.4rem;
  font-size: clamp(0.6rem, 1vw, 0.85rem);
  color: rgba(255,255,255,0.4);
}
.fib-swatch {
  width: 14px; height: 14px;
  border-radius: 3px;
  display: inline-block;
  border: 1px solid rgba(255,255,255,0.1);
}

/* ============================================================
   MODE: 24 Clock
   ============================================================ */
.tf-container {
  width: 100%; height: 100%;
  background: #000000;
  position: relative;
  overflow: hidden;
}
.tf-scanline {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(
    0deg,
    rgba(255,180,0,0.012) 0px,
    rgba(255,180,0,0.012) 1px,
    transparent 1px,
    transparent 4px
  );
  pointer-events: none;
  z-index: 3;
}
.tf-grid {
  width: 100%; height: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 2px;
  position: relative;
  z-index: 1;
}
.tf-quadrant {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: #000;
  border: 1px solid rgba(255,180,0,0.12);
  padding: clamp(8px, 2vw, 24px);
}
.tf-q1 { border-right-color: rgba(255,180,0,0.2); border-bottom-color: rgba(255,180,0,0.2); }
.tf-q2 { border-left-color: rgba(255,180,0,0.2); border-bottom-color: rgba(255,180,0,0.2); }
.tf-q3 { border-right-color: rgba(255,180,0,0.2); border-top-color: rgba(255,180,0,0.2); }
.tf-q4 { border-left-color: rgba(255,180,0,0.2); border-top-color: rgba(255,180,0,0.2); }
.tf-main-time {
  font-family: Orbitron, sans-serif;
  font-size: clamp(3rem, 10vw, 8rem);
  font-weight: 700;
  color: #ffb400;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  text-shadow: 0 0 30px rgba(255,180,0,0.4), 0 0 60px rgba(255,180,0,0.15);
}
.tf-main-time.tf-tick {
  animation: tfPulse 0.3s ease-out;
}
@keyframes tfPulse {
  0% { text-shadow: 0 0 40px rgba(255,180,0,0.8), 0 0 80px rgba(255,180,0,0.4); color: #ffe066; }
  100% { text-shadow: 0 0 30px rgba(255,180,0,0.4), 0 0 60px rgba(255,180,0,0.15); color: #ffb400; }
}
.tf-label {
  font-family: Orbitron, sans-serif;
  font-size: clamp(0.5rem, 1vw, 0.8rem);
  color: rgba(255,180,0,0.35);
  letter-spacing: 0.3em;
  margin-bottom: 0.5rem;
}
.tf-date {
  font-family: Orbitron, sans-serif;
  font-size: clamp(0.8rem, 2vw, 1.5rem);
  color: #ffb400;
  letter-spacing: -0.01em;
}
.tf-day {
  font-family: Orbitron, sans-serif;
  font-size: clamp(0.6rem, 1.2vw, 1rem);
  color: rgba(255,180,0,0.5);
  letter-spacing: 0.15em;
  margin-top: 0.3rem;
}
.tf-elapsed, .tf-utc {
  font-family: Orbitron, sans-serif;
  font-size: clamp(1.5rem, 4vw, 3.5rem);
  font-weight: 700;
  color: #ffb400;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
