:root {
  color-scheme: dark;
  background: var(--deep);
  --cream: #f6eedb;
  --gold: #eacb85;
  --muted: #c1baa7;
  --deep: #171e14;
  --house-panel: #252d20;
  --house-line: #eacb8545;
  --house-field: #151d13;
  --house-control: #303829;
  --house-dialog: #20281d;
  --house-backdrop: #091008b8;
  --house-error: #ffc6af;
  --house-radius: 12px;
  --house-sans: system-ui, -apple-system, "PingFang SC", sans-serif;
  --serif: "Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", SimSun, serif;
}
body.house-theme {
  margin: 0;
  min-height: 100svh;
  font-family: var(--house-sans);
  background: var(--deep);
  color: var(--cream);
}
.house-theme *, .house-theme *::before, .house-theme *::after { box-sizing: border-box; }
.house-theme :where(a) { color: var(--gold); text-underline-offset: .18em; }
.house-back { display: inline-flex; align-items: center; min-height: 44px; color: var(--muted); text-decoration: none; }
.house-back:hover { color: var(--cream); text-decoration: underline; }
body.house-theme [hidden] { display: none !important; }
.house-theme :focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.house-theme .shell { width: min(1180px, calc(100% - 36px)); margin: 0 auto; padding: 32px 0 46px; }
.house-theme .topbar { flex-wrap: wrap; align-items: center; gap: 16px; padding-bottom: 22px; border-bottom: 1px solid var(--house-line); margin-bottom: 24px; }
.house-theme .eyebrow { color: var(--gold); font-size: 12px; font-weight: 650; letter-spacing: .16em; }
.house-theme h1 { font: 700 clamp(30px, 5vw, 50px)/1.2 var(--serif); color: var(--cream); text-shadow: none; }
.house-theme h2 { font: 700 22px/1.3 var(--serif); }
.house-theme .panel, .house-theme .hall, .house-theme .cabinet,
.house-theme .management-item, .house-theme .compact-item, .house-theme .session-pill {
  border: 1px solid var(--house-line); border-radius: var(--house-radius); background: var(--house-panel); box-shadow: none;
}
.house-theme .management-item, .house-theme .compact-item { background: #1b2318; }
.house-theme .session-pill strong, .house-theme .panel-title span, .house-theme .marquee strong { color: var(--gold); }
.house-theme input:not([type="checkbox"], [type="radio"]), .house-theme select, .house-theme textarea {
  min-width: 0; border: 1px solid var(--house-line); border-radius: 8px; background: var(--house-field); color: var(--cream);
}
.house-theme :is(input, select, textarea):focus { outline-color: var(--gold); }
.house-theme input:is([type="checkbox"], [type="radio"]) { width: auto; accent-color: var(--gold); }
.house-theme input[type="file"]::file-selector-button {
  margin-inline-end: 8px; padding: 6px 10px; border: 1px solid var(--house-line);
  border-radius: 6px; background: var(--house-control); color: var(--cream); font: inherit; cursor: pointer;
}
.house-theme label:has(> input:is([type="checkbox"], [type="radio"])) { display: flex; align-items: center; }
.house-theme .chat-messages, .house-theme .chat-message {
  border: 1px solid var(--house-line); border-radius: 8px; background: var(--house-field); color: var(--cream);
}
.house-theme button, .house-theme .file-button, .house-theme .account-nav a, .house-theme .house-nav a,
.house-theme .management-actions a {
  background: var(--house-control); border: 1px solid var(--house-line); border-radius: 999px; color: var(--cream);
  box-shadow: none; text-shadow: none; min-height: 38px; padding: 8px 14px; text-decoration: none;
}
.house-theme button:hover:not(:disabled), .house-theme button:active:not(:disabled) { transform: none; box-shadow: none; }
.house-theme button:hover:not(:disabled), .house-theme .house-nav a:hover, .house-theme .management-actions a:hover { border-color: var(--gold); }
.house-theme button.primary, .house-theme button[aria-pressed="true"] {
  background: var(--gold); color: #252719; border-color: #f5dca1;
}
.house-theme button.danger, .house-theme .login-error { color: var(--house-error); }
.house-theme :is(.muted, label, dt, .management-item span, .chat-message > span) { color: var(--muted); }
.house-theme :is(dd, .marquee span) { color: var(--cream); }
.house-theme .management-item strong, .house-theme .role-login-links a { color: var(--gold); }
.house-theme .role-login-links, .house-theme .metrics div { border-color: var(--house-line); color: var(--muted); }
.house-theme .login-modal-backdrop, .house-theme .login-modal-backdrop:hover:not(:disabled) {
  background: var(--house-backdrop); border: 0; border-radius: 0; padding: 0; box-shadow: none;
}
.house-theme .login-dialog { background: var(--house-dialog); max-height: calc(100dvh - 40px); overflow: auto; }
.house-theme :is(pre, .marquee, .cabinet-footer, .utility-row) {
  border-color: var(--house-line); background: var(--house-field); color: var(--muted);
}
.house-theme pre { border-width: 1px; border-radius: 8px; overflow-wrap: anywhere; }
.house-theme .marquee span { text-shadow: none; }
.house-theme .runtime-link { color: var(--gold); }
.house-theme .chat-message.mine { background: var(--house-panel); }
.house-nav { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.console-tabs { margin-bottom: 20px; }
.console-notice { min-height: 1.6em; margin-bottom: 12px; color: var(--gold); }
.house-theme .admin-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.house-theme .admin-grid .tenant-list-panel, .house-theme .admin-grid .timeline-panel { grid-column: 1 / -1; }
.house-theme .admin-shell > .panel + .panel { margin-top: 16px; }
.house-theme [data-console-login] { width: min(100%, 440px); grid-column: 1 / -1; }
.house-theme .management-list .management-item { grid-template-columns: minmax(0, 1fr); }
.house-theme .management-list .management-item.compact { grid-template-columns: minmax(0, 1fr) auto; }
.house-theme .tenant-actions { display: grid; gap: 10px; padding-top: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.house-theme details > summary { cursor: pointer; padding: 8px 0; color: var(--gold); }
.house-theme .house-confirm, .house-confirm {
  width: min(420px, calc(100vw - 32px)); color: var(--cream); background: var(--house-dialog);
  border: 1px solid var(--house-line); border-radius: var(--house-radius); padding: 24px;
}
.house-confirm::backdrop { background: var(--house-backdrop); backdrop-filter: blur(5px); }
.house-confirm h2 { margin: 0; font: 700 24px/1.2 var(--serif); }
.house-confirm p { margin: 12px 0 20px; }
.house-confirm form { display: flex; gap: 10px; justify-content: flex-end; }
.house-confirm button { border: 1px solid var(--house-line); border-radius: 8px; padding: 8px 15px; background: var(--house-control); color: var(--cream); }
.house-confirm button.primary { margin: 0; width: auto; background: var(--gold); color: #252719; }

.house-theme[data-view="owner"] .admin-grid { grid-template-columns: minmax(0, 1fr); }
[data-view="owner"] .admin-grid > .panel { min-width: 0; }
[data-view="owner"] .panel-title { flex-wrap: wrap; align-items: center; gap: 12px; }
[data-view="owner"] .panel-title h2 { margin: 0; }
[data-view="owner"] .owner-actions,
[data-view="owner"] .hall-editor-toolbar,
[data-view="owner"] .chat-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
[data-view="owner"] .owner-actions :is(a, button),
[data-view="owner"] .management-actions :is(a, button) { min-height: 44px; }
[data-view="owner"] .owner-actions a {
  display: inline-flex; align-items: center; padding-inline: 12px; color: var(--gold);
  text-underline-offset: 4px;
}
.house-theme[data-view="owner"] .management-list .owner-machine-row {
  grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 14px 16px;
}
[data-view="owner"] .owner-machine-row strong { overflow-wrap: anywhere; }
.house-theme[data-view="owner"] .owner-dialog {
  box-sizing: border-box; width: min(480px, calc(100% - 24px)); max-height: calc(100dvh - 24px);
  overflow: auto; padding: clamp(16px, 4vw, 24px);
}
[data-view="owner"] .owner-dialog > form, [data-view="owner"] .owner-odds form {
  display: grid; justify-content: stretch; gap: 14px;
}
[data-view="owner"] .owner-dialog p { margin: 0; overflow-wrap: anywhere; }
[data-view="owner"] .owner-dialog [role="status"]:empty { display: none; }
[data-view="owner"] .owner-dialog [role="status"] { color: var(--gold); }
[data-view="owner"] .owner-dialog > .owner-actions, [data-view="owner"] .owner-dialog form > .owner-actions {
  justify-content: flex-end;
}
[data-view="owner"] #owner-machine-settings { display: grid; gap: 16px; margin-block: 16px; }
[data-view="owner"] .owner-odds { display: grid; gap: 10px; border-top: 1px solid var(--house-line); padding-top: 14px; }
[data-view="owner"] .owner-odds button { justify-self: start; }
[data-view="owner"] :is(#owner-invite-form, #owner-invite-result) {
  display: flex; flex-wrap: wrap; align-items: end; gap: 10px;
}
[data-view="owner"] :is(#owner-invite-form, #owner-invite-result) label { flex: 1 1 200px; min-width: 0; }
[data-view="owner"] #owner-invite-form p { flex-basis: 100%; margin: 0; color: var(--muted); }
@media (max-width: 560px) {
  .house-theme[data-view="owner"] .management-list .owner-machine-row { grid-template-columns: minmax(0, 1fr); }
  [data-view="owner"] .owner-machine-row .management-actions { justify-content: flex-start; }
}
@media (max-width: 760px) {
  .house-theme .shell { width: calc(100% - 26px); padding-top: 19px; }
  .house-theme .admin-grid { grid-template-columns: minmax(0, 1fr); }
  .house-theme .account-nav { margin-left: 0; flex-wrap: wrap; }
  .house-theme .topbar { align-items: flex-start; }
  .house-theme .management-list .management-item.compact { grid-template-columns: minmax(0, 1fr); }
  .house-theme .topbar .account-nav { justify-content: flex-start; }
}
