*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; min-height: 100vh; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif;
  background: #0b1220;
  color: #e2e8f0;
}

/* --- Login --- */
.auth-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(ellipse at 30% 20%, #1e1b4b 0%, #0b1220 55%, #050816 100%);
}
.auth-card {
  width: 360px;
  background: rgba(15, 23, 42, 0.78);
  border: 1px solid #312e81;
  border-radius: 14px;
  padding: 36px 32px 28px;
  box-shadow: 0 18px 60px rgba(99, 102, 241, 0.18);
  backdrop-filter: blur(8px);
}
.auth-title {
  margin: 0;
  font-size: 22px;
  font-weight: 800;
  text-align: center;
  letter-spacing: 0.04em;
  background: linear-gradient(90deg, #a5b4fc, #f0abfc, #fbcfe8);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.auth-sub {
  margin: 4px 0 22px;
  text-align: center;
  font-size: 11.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #94a3b8;
}
.auth-card form { display: flex; flex-direction: column; gap: 10px; }
.auth-card label { font-size: 12px; color: #cbd5e1; }
.auth-card input[type="password"] {
  width: 100%;
  padding: 10px 12px;
  background: #0b1220;
  color: #e2e8f0;
  border: 1px solid #334155;
  border-radius: 8px;
  font-size: 14px;
}
.auth-card input:focus {
  outline: none;
  border-color: #818cf8;
  box-shadow: 0 0 0 3px rgba(129, 140, 248, 0.18);
}
.auth-card button {
  margin-top: 6px;
  padding: 10px 14px;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: pointer;
}
.auth-card button:hover { filter: brightness(1.1); }
.auth-error {
  background: rgba(239, 68, 68, 0.12);
  color: #fca5a5;
  border: 1px solid rgba(239, 68, 68, 0.35);
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 12.5px;
}

/* --- Room --- */
.room-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.room-bar {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 20px;
  border-bottom: 1px solid #1e293b;
  background: #0f172a;
}
.brand { font-weight: 700; letter-spacing: 0.04em; }
.status {
  font-size: 12.5px;
  color: #94a3b8;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid #1e293b;
}
.status[data-kind="ok"] { color: #6ee7b7; border-color: #065f46; background: rgba(16, 185, 129, 0.08); }
.status[data-kind="warn"] { color: #fcd34d; border-color: #78350f; background: rgba(245, 158, 11, 0.08); }
.status[data-kind="error"] { color: #fca5a5; border-color: #7f1d1d; background: rgba(239, 68, 68, 0.10); }
.logout {
  margin-left: auto;
  color: #94a3b8;
  text-decoration: none;
  font-size: 12.5px;
}
.logout:hover { color: #e2e8f0; }

.room-grid {
  flex: 1;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 16px;
  padding: 16px 20px;
}
.video-frame {
  display: flex;
  flex-direction: column;
  background: #050816;
  border: 1px solid #1e293b;
  border-radius: 12px;
  overflow: hidden;
  position: relative;
}
.video-frame h2 {
  margin: 0;
  padding: 8px 12px;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #94a3b8;
  background: #0b1220;
  border-bottom: 1px solid #1e293b;
}
.video-frame video {
  flex: 1;
  width: 100%;
  background: #000;
  object-fit: cover;
  min-height: 280px;
}
.video-meta {
  padding: 6px 12px;
  font-size: 11.5px;
  color: #94a3b8;
  background: #0b1220;
  border-top: 1px solid #1e293b;
}

.room-controls {
  display: flex;
  gap: 10px;
  padding: 14px 20px 20px;
  border-top: 1px solid #1e293b;
  background: #0f172a;
  justify-content: center;
}
.btn {
  appearance: none;
  background: #1e293b;
  color: #e2e8f0;
  border: 1px solid #334155;
  border-radius: 999px;
  padding: 9px 18px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  letter-spacing: 0.02em;
}
.btn:hover:not(:disabled) { background: #334155; }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn.primary {
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  border-color: transparent;
  color: #fff;
}
.btn.danger {
  background: rgba(239, 68, 68, 0.18);
  border-color: rgba(239, 68, 68, 0.4);
  color: #fca5a5;
}
.btn.danger:hover:not(:disabled) { background: rgba(239, 68, 68, 0.28); }
.btn.on {
  background: rgba(16, 185, 129, 0.18);
  border-color: rgba(16, 185, 129, 0.45);
  color: #6ee7b7;
}

@media (max-width: 800px) {
  .room-grid { grid-template-columns: 1fr; }
}
