:root {
  --bg: #0d1117;
  --panel: #151b23;
  --panel2: #1f2937;
  --text: #e5e7eb;
  --muted: #9ca3af;
  --accent: #60a5fa;
  --danger: #f87171;
  --good: #34d399;
  --warn: #fbbf24;
  --border: #303846;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: var(--accent); }
input, textarea, select, button { font: inherit; }
button { background: var(--accent); color: #07111f; border: 0; padding: 9px 12px; border-radius: 8px; font-weight: 700; cursor: pointer; }
button.secondary { background: var(--panel2); color: var(--text); border: 1px solid var(--border); }
button.danger { background: var(--danger); color: #1b0b0b; }
input, textarea, select { width: 100%; background: #0b1220; color: var(--text); border: 1px solid var(--border); border-radius: 8px; padding: 10px; }
textarea { min-height: 80px; resize: vertical; }
.small { color: var(--muted); font-size: 0.88rem; }
.login-wrap { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.card { background: var(--panel); border: 1px solid var(--border); border-radius: 14px; padding: 18px; box-shadow: 0 8px 30px #0005; }
.login-card { width: min(560px, 100%); }
.row { display: flex; gap: 10px; align-items: center; }
.stack { display: grid; gap: 12px; }
.topbar { height: 56px; display: flex; align-items: center; justify-content: space-between; padding: 0 16px; border-bottom: 1px solid var(--border); background: #0b1220; position: sticky; top:0; z-index: 4; }
.brand { font-weight: 800; letter-spacing: .4px; }
.grid { display: grid; grid-template-columns: 310px minmax(430px, 1fr) 330px; gap: 12px; padding: 12px; }
.panel { background: var(--panel); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.panel h2 { font-size: 1rem; margin: 0; padding: 12px 14px; border-bottom: 1px solid var(--border); background: #111827; }
.panel-content { padding: 12px; display: grid; gap: 10px; }
.story { min-height: calc(100vh - 88px); display: flex; flex-direction: column; }
.story-log { flex: 1; overflow: auto; max-height: calc(100vh - 290px); padding: 12px; display: grid; gap: 10px; }
.event { background: #0b1220; border: 1px solid var(--border); border-radius: 10px; padding: 10px; white-space: pre-wrap; }
.event-title { font-weight: 800; margin-bottom: 4px; color: #dbeafe; }
.event-meta { font-size: .78rem; color: var(--muted); margin-top: 8px; }
.action-box { border-top: 1px solid var(--border); padding: 12px; display: grid; gap: 8px; }
.kv { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; border-bottom: 1px solid #ffffff12; padding-bottom: 6px; }
.badge { display: inline-block; background: var(--panel2); border: 1px solid var(--border); border-radius: 999px; padding: 2px 8px; font-size: .78rem; color: var(--muted); }
.hpbar { height: 8px; background: #2b1111; border-radius: 99px; overflow: hidden; }
.hpbar > div { height: 100%; background: var(--good); }
.tabs { display:flex; gap: 6px; padding: 8px; border-bottom: 1px solid var(--border); background: #111827; flex-wrap: wrap; }
.tab { background: var(--panel2); color: var(--text); border: 1px solid var(--border); padding: 6px 9px; border-radius: 8px; cursor:pointer; }
.tab.active { background: var(--accent); color: #07111f; }
.tabpage { display:none; }
.tabpage.active { display:grid; gap: 10px; }
.private { border-left: 3px solid var(--warn); }
.public { border-left: 3px solid var(--good); }
.admin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 12px; }
pre { white-space: pre-wrap; background: #0b1220; padding: 12px; border-radius: 10px; border: 1px solid var(--border); }
@media (max-width: 1100px) { .grid { grid-template-columns: 1fr; } .story-log { max-height: 60vh; } .admin-grid { grid-template-columns: 1fr; } }
