:root {  --bg: #0b0f14;  --fg: #d6e2ff;  --muted: #8aa0c7;  --panel: #101826;  --border: #1f2a3d;  --accent: #6aa9ff;  --danger: #ff6a6a;  --ok: #7dff9a;  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;}* { box-sizing: border-box; }html, body { height: 100%; }body {  margin: 0;  background: var(--bg);  color: var(--fg);  font-family: var(--mono);}.topbar {  display: flex;  gap: 12px;  align-items: center;  justify-content: space-between;  padding: 10px 12px;  border-bottom: 1px solid var(--border);  background: #0a0f18;}.brand { font-weight: 700; letter-spacing: 0.5px; }.controls button {  margin-right: 6px;  background: transparent;  border: 1px solid var(--border);  color: var(--fg);  padding: 6px 10px;  border-radius: 6px;  cursor: pointer;}.controls button:hover { border-color: var(--accent); }.layout {  display: grid;  grid-template-columns: 1.1fr 1.6fr 1fr;  gap: 10px;  padding: 10px;  height: calc(100% - 52px);}.panel {  background: var(--panel);  border: 1px solid var(--border);  border-radius: 10px;  overflow: hidden;  display: flex;  flex-direction: column;  min-height: 0;}.panel-title {  padding: 8px 10px;  border-bottom: 1px solid var(--border);  color: var(--muted);  font-size: 12px;}.mapView {  margin: 0;  padding: 10px;  white-space: pre;  font-size: 14px;  line-height: 1.2;  overflow: auto;  flex: 1;}.mapHeader {  display: flex;  gap: 10px;  align-items: center;  justify-content: space-between;  padding: 8px 10px;  border-bottom: 1px solid var(--border);}.mapRoomTitle {  color: var(--fg);  font-size: 12px;}.mapButtons button {  margin-left: 6px;  background: transparent;  border: 1px solid var(--border);  color: var(--fg);  padding: 4px 8px;  border-radius: 6px;  cursor: pointer;  font-size: 12px;}.mapButtons button:hover { border-color: var(--accent); }.mapButtons button[disabled] { opacity: 0.5; cursor: default; }.mapLegend {  margin: 0;  padding: 10px;  border-top: 1px solid var(--border);  color: var(--muted);  white-space: pre;  font-size: 12px;  line-height: 1.2;}.mapPlayer {  color: var(--accent);  font-weight: 700;}.mapMonster {  color: #ff6a6a;  font-weight: 700;}.mapViewSecondary {  margin-top: 8px;  padding-top: 8px;  border-top: 1px solid var(--border);}.utilityView {  padding: 10px;  font-size: 13px;  line-height: 1.4;}.utilitySectionTitle {  font-weight: 700;  margin-bottom: 6px;}.utilityList {  margin: 0;  padding-left: 18px;}.utilityEmpty {  color: var(--muted);}.logView {  padding: 10px;  overflow-y: auto;  flex: 1;}.logLine { margin-bottom: 10px; }.logMeta { color: var(--muted); font-size: 12px; margin-bottom: 2px; }.logText { white-space: pre-wrap; }.statusView { padding: 10px; }.kv { display: flex; justify-content: space-between; margin-bottom: 6px; }.k { color: var(--muted); }.v { color: var(--fg); }.commandForm {  display: flex;  gap: 8px;  padding: 10px;  border-top: 1px solid var(--border);}.prompt { color: var(--accent); }#commandInput {  width: 100%;  background: transparent;  border: 1px solid var(--border);  color: var(--fg);  padding: 8px 10px;  border-radius: 8px;  outline: none;}#commandInput:focus { border-color: var(--accent); }.chips { padding: 10px; display: flex; flex-wrap: wrap; gap: 6px; }.chip {  border: 1px solid var(--border);  padding: 4px 8px;  border-radius: 999px;  cursor: pointer;  color: var(--fg);  background: transparent;  font-size: 12px;}.chip:hover { border-color: var(--accent); }.siteFooter {  margin-top: 12px;  padding: 10px 12px;  border-top: 1px solid var(--border);  color: var(--muted);  font-size: 12px;}.statusDanger {  color: #ff3030;  font-weight: 700;}.mapMarker {  font-weight: 700;  color: cyan;  text-decoration: underline;}.mapCorpse {  color: red;  font-weight: 700;}.logImportant {  color: hotpink;  font-weight: 700;}@media (max-width: 1100px) {  .layout { grid-template-columns: 1fr; height: auto; }}