:root {
  --bg-dark: #0a0a0a;
  --bg-panel: rgba(255, 115, 0, 0.1);
  --accent: #ff6600;
  --accent-glow: 0 0 12px #ff6600cc;
  --text-main: #e6e6e6;
  --text-fade: #999;
  --font-console: "IBM Plex Mono", monospace;
}

body {
  margin: 0;
  background: var(--bg-dark);
  color: var(--text-main);
  font-family: var(--font-console);
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

#chat {
  width: 95%;
  max-width: 900px;
  height: 95vh;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--accent);
  border-radius: 10px;
  box-shadow: var(--accent-glow);
  background: linear-gradient(180deg, rgba(255,102,0,0.05) 0%, rgba(0,0,0,0.9) 100%);
  overflow: hidden;
}

/* Header sections */
#model-select, #session-select, #status {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-bottom: 1px solid var(--accent);
  background-color: rgba(255, 102, 0, 0.05);
}
#status {
  justify-content: flex-start;
  border-top: 1px solid var(--accent);
}

label, select, button {
  font-family: var(--font-console);
  font-size: 0.9rem;
  color: var(--text-main);
  background: transparent;
  border: 1px solid var(--accent);
  border-radius: 4px;
  padding: 4px 8px;
}

button:hover, select:hover {
  box-shadow: 0 0 8px var(--accent);
  cursor: pointer;
}

/* Chat area */
#messages {
  flex: 1;
  padding: 16px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  scroll-behavior: smooth;
}

/* Messages */
.msg {
  max-width: 80%;
  padding: 10px 14px;
  border-radius: 8px;
  line-height: 1.4;
  word-wrap: break-word;
  box-shadow: 0 0 8px rgba(255,102,0,0.2);
}
.msg.user {
  align-self: flex-end;
  background: rgba(255,102,0,0.15);
  border: 1px solid var(--accent);
}
.msg.assistant {
  align-self: flex-start;
  background: rgba(255,102,0,0.08);
  border: 1px solid rgba(255,102,0,0.5);
}
.msg.system {
  align-self: center;
  font-size: 0.8rem;
  color: var(--text-fade);
}

/* Input bar */
#input {
  display: flex;
  border-top: 1px solid var(--accent);
  background: rgba(255, 102, 0, 0.05);
  padding: 10px;
}
#userInput {
  flex: 1;
  background: transparent;
  color: var(--text-main);
  border: 1px solid var(--accent);
  border-radius: 4px;
  padding: 8px;
}
#sendBtn {
  margin-left: 8px;
}

/* Relay status dot */
#status {
  display: flex;
  align-items: center;
  margin: 10px 0;
  gap: 8px;
  font-family: monospace;
  color: #f5f5f5;
}

#status-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
}

@keyframes pulseGreen {
  0% { box-shadow: 0 0 5px #00ff66; opacity: 0.9; }
  50% { box-shadow: 0 0 20px #00ff99; opacity: 1; }
  100% { box-shadow: 0 0 5px #00ff66; opacity: 0.9; }
}

.dot.ok {
  background: #00ff66;
  animation: pulseGreen 2s infinite ease-in-out;
}

/* Offline state stays solid red */
.dot.fail {
  background: #ff3333;
  box-shadow: 0 0 10px #ff3333;
}


/* Dropdown (session selector) styling */
select {
  background-color: #1a1a1a;
  color: #f5f5f5;
  border: 1px solid #b84a12;
  border-radius: 6px;
  padding: 4px 6px;
  font-size: 14px;
}

select option {
  background-color: #1a1a1a;
  color: #f5f5f5;
}

/* Hover/focus for better visibility */
select:focus,
select:hover {
  outline: none;
  border-color: #ff7a33;
  background-color: #222;
}
