:root { --bg: #000; --fg: #ffd400; --w: #fff; }
* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body {
  background: var(--bg);
  color: var(--fg);
  font: 20px/1.4 system-ui, Arial, sans-serif;
}
main {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: calc(100% - 48px);
  padding: 0 12px 12px;
}
header { padding: 10px 12px 0; }
h1 { font-size: 1.1rem; margin: 0; color: var(--w); }
#prompt { font-size: 1.7rem; font-weight: 700; margin: 4px 0 0; }

button, input {
  font: inherit;
  border-radius: 16px;
}
#talk {
  min-height: 120px;
  font-size: 2.4rem;
  font-weight: 800;
  background: var(--fg);
  color: #000;
  border: 4px solid var(--w);
  cursor: pointer;
}
#talk.listening { background: #ff3b30; color: #fff; }

#status {
  min-height: 3.2em;
  font-size: 1.35rem;
  color: var(--w);
  border-left: 6px solid var(--fg);
  padding-left: 10px;
}

.row { display: flex; gap: 12px; }
.row button, #textForm button {
  flex: 1;
  min-height: 64px;
  font-size: 1.3rem;
  font-weight: 700;
  background: #000;
  color: var(--fg);
  border: 3px solid var(--fg);
  cursor: pointer;
}
#stop { color: #ff6b6b; border-color: #ff6b6b; }

#map {
  flex: 1;
  min-height: 280px;
  border: 4px solid var(--fg);
  border-radius: 12px;
}

#textForm label { display: block; margin-bottom: 6px; color: var(--w); }
#textInput {
  flex: 3;
  min-height: 64px;
  padding: 0 14px;
  font-size: 1.3rem;
  background: #111;
  color: var(--w);
  border: 3px solid var(--w);
}
.note { font-size: 0.9rem; color: #bbb; margin: 0; }

:focus-visible { outline: 5px solid #00e5ff; outline-offset: 3px; }
[hidden] { display: none !important; }
