:root {
  --rmdv-bg: #0f172a;
  --rmdv-card: #1e293b;
  --rmdv-accent: #3b82f6;
  --rmdv-accent-hover: #2563eb;
  --text-main: #f8fafc;
  --text-muted: #94a3b8;
  --rmdv-green: #22c55e;
  --rmdv-orange: #f97316;
}
body {
  font-family: 'Inter', sans-serif;
  background-color: var(--rmdv-bg);
  color: var(--text-main);
  background-image: radial-gradient(circle at 10% 20%, rgba(37,99,235,.12) 0%, transparent 22%),
                    radial-gradient(circle at 90% 80%, rgba(37,99,235,.08) 0%, transparent 25%);
  min-height: 100vh;
}
h1,h2,h3,h4,h5,h6,.brand { font-family:'Montserrat',sans-serif; letter-spacing:-.5px; }
.navbar-glass {
  background: rgba(15,23,42,.85);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.card-tech {
  background-color: var(--rmdv-card);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 14px;
}
.btn-tech {
  background: linear-gradient(135deg, var(--rmdv-accent) 0%, var(--rmdv-accent-hover) 100%);
  border: none; color:#fff; font-weight:600; border-radius:10px; transition:all .3s ease;
}
.btn-tech:hover { box-shadow:0 0 15px rgba(59,130,246,.5); color:#fff; }
.text-accent { color: var(--rmdv-accent); }
.text-green { color: var(--rmdv-green) !important; }
.text-muted2 { color: var(--text-muted); }
.form-control, .form-select {
  background-color:#243047; border:1px solid rgba(255,255,255,.1); color:var(--text-main);
}
.form-control:focus, .form-select:focus {
  background-color:#243047; color:var(--text-main); border-color:var(--rmdv-accent);
  box-shadow:0 0 0 .2rem rgba(59,130,246,.25);
}

/* Panel RX — verde vidrio (glassmorphism) */
.rx-panel {
  border:1px solid rgba(34,197,94,.18); border-radius:12px; padding:1rem 1.25rem;
  background:rgba(34,197,94,.05); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  transition:all .25s ease;
}
.rx-panel.active {
  border-color: var(--rmdv-green);
  box-shadow:0 0 22px rgba(34,197,94,.45);
  background:rgba(34,197,94,.16);
}
.rx-dot { width:10px; height:10px; border-radius:50%; background:var(--text-muted); display:inline-block; }
.rx-panel.active .rx-dot { background:var(--rmdv-green); box-shadow:0 0 8px var(--rmdv-green); animation:pulse 1s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.4} }

/* Botón PTT */
.ptt-btn {
  width:100%; padding:1.4rem; border-radius:14px; border:2px solid rgba(255,255,255,.1);
  background:#243047; color:var(--text-main); font-family:'Montserrat'; font-weight:700;
  font-size:1.3rem; letter-spacing:1px; transition:all .12s ease; user-select:none; cursor:pointer;
}
.ptt-btn:disabled { opacity:.45; cursor:not-allowed; }
.ptt-btn.tx {
  background:linear-gradient(135deg,#b06a1e,#8a4f14); border-color:#a86420;
  box-shadow:0 0 14px rgba(176,106,30,.4); transform:scale(.99);
}
.ptt-btn.busy { background:linear-gradient(135deg,#7f1d1d,#991b1b); border-color:#b91c1c; }

/* Log */
.lh-row { display:flex; justify-content:space-between; align-items:center; padding:.5rem .25rem;
          border-bottom:1px solid rgba(255,255,255,.05); font-size:.92rem; }
.lh-row:last-child{border-bottom:none}
/* "Últimos escuchados": altura fija ~5 filas con scroll, para que no se estire la pantalla */
#log { max-height: 210px; overflow-y: auto; }
.lh-ts { color:var(--text-muted); font-variant-numeric:tabular-nums; font-size:.82rem; }
.form-range::-webkit-slider-thumb{background:var(--rmdv-accent)}
.form-range::-moz-range-thumb{background:var(--rmdv-accent)}
.auth-wrap { max-width:420px; margin:0 auto; }
