:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme: dark;
  --bg:#0b0f14;
  --panel:#121821;
  --panel2:#171f2a;
  --line:#263242;
  --text:#edf3f8;
  --muted:#92a0af;
  --accent:#dfe9f2;
  --accentText:#10151b;
  --good:#82d6a3;
  --goodBg:#173326;
  --human:#8cc8ff;
  --humanBg:#132d43;
  --warn:#f3cf7c;
  --warnBg:#382e16;
  --bad:#ffaaa7;
  --badBg:#3b1d1f;
}

* { box-sizing:border-box; }
body {
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at 15% -10%, #1a2532 0, transparent 35%),
    radial-gradient(circle at 90% 0%, #172130 0, transparent 30%),
    var(--bg);
  color:var(--text);
}
button,input,select { font:inherit; }
button { cursor:pointer; }
button:disabled { opacity:.55; cursor:not-allowed; }

.shell { width:min(1180px, calc(100% - 32px)); margin:0 auto; padding:34px 0 70px; }
.hidden { display:none !important; }
.muted { color:var(--muted); }
.small { font-size:13px; }
.eyebrow { color:#738399; font-size:11px; letter-spacing:.22em; font-weight:700; }

.topbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:20px;
}
.topbar h1 { margin:3px 0 4px; font-size:30px; }

.login-card {
  width:min(520px,100%);
  margin:12vh auto 0;
  background:rgba(18,24,33,.94);
  border:1px solid var(--line);
  border-radius:24px;
  padding:34px;
  box-shadow:0 24px 70px rgba(0,0,0,.3);
}
.login-card h1 { margin:12px 0 6px; }
.brand-mark {
  display:grid;
  place-items:center;
  width:46px;height:46px;
  border-radius:14px;
  background:var(--accent);
  color:var(--accentText);
  font-weight:900;
  font-size:22px;
}
.login-form { display:flex; gap:10px; margin-top:20px; }
.login-form input { flex:1; }
.msg { color:var(--bad); min-height:20px; }

.panel {
  background:rgba(18,24,33,.93);
  border:1px solid var(--line);
  border-radius:20px;
  padding:20px;
  margin-top:18px;
}
.panel-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.panel h2 { margin:0 0 5px; font-size:20px; }

.guide {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:18px;
}
.guide-item {
  background:rgba(18,24,33,.72);
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
}
.guide-item strong,.guide-item span { display:block; }
.guide-item strong { font-size:13px; margin-bottom:5px; }
.guide-item span { color:var(--muted); font-size:12px; line-height:1.45; }

.invite-grid {
  display:grid;
  grid-template-columns:1.4fr .8fr auto;
  gap:12px;
  align-items:end;
  margin-top:16px;
}
.invite-grid label { display:grid; gap:6px; }
.invite-grid label span { color:var(--muted); font-size:12px; }
.invite-result {
  display:flex;
  gap:12px;
  align-items:center;
  margin-top:14px;
  padding:12px;
  border-radius:14px;
  background:#0d131b;
  border:1px solid var(--line);
}
.invite-result pre { flex:1; margin:0; }

input,select {
  width:100%;
  background:#0c1219;
  color:var(--text);
  border:1px solid #314052;
  border-radius:10px;
  padding:10px 11px;
  outline:none;
}
input:focus,select:focus { border-color:#71849b; box-shadow:0 0 0 3px rgba(113,132,155,.13); }

.btn {
  border:1px solid #344356;
  border-radius:10px;
  padding:9px 12px;
  min-height:38px;
  background:#1a2430;
  color:var(--text);
}
.btn:hover { filter:brightness(1.08); }
.btn.primary { background:var(--accent); color:var(--accentText); border-color:transparent; font-weight:700; }
.btn.ghost { background:#18212c; }
.btn.danger { background:var(--badBg); color:#ffd0ce; border-color:#69363b; }
.btn.human { background:var(--humanBg); color:#bde1ff; border-color:#2c6389; font-weight:700; }

.bot-grid { display:grid; gap:14px; margin-top:16px; }
.bot-card {
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,#151c25,#111821);
  padding:18px;
}
.bot-title-row {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
}
.bot-title-row h3 { margin:0 0 5px; font-size:20px; }

.status-pill {
  flex:none;
  border-radius:999px;
  padding:6px 9px;
  font-size:11px;
  font-weight:700;
  border:1px solid var(--line);
}
.status-pill.ok { color:var(--good); background:var(--goodBg); border-color:#28543d; }
.status-pill.human { color:var(--human); background:var(--humanBg); border-color:#27506f; }
.status-pill.wait,.status-pill.warn { color:var(--warn); background:var(--warnBg); border-color:#665224; }
.status-pill.bad { color:var(--bad); background:var(--badBg); border-color:#643135; }
.status-pill.off { color:#9da8b4; background:#1a2028; }

.controls-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.control-group {
  border:1px solid #263343;
  background:#0e151e;
  border-radius:15px;
  padding:14px;
}
.home-group { grid-column:1/-1; }
.control-head { display:flex; justify-content:space-between; margin-bottom:10px; }
.control-head h4 { margin:0 0 3px; font-size:15px; }
.state-line { color:var(--muted); font-size:12px; }

.action-row {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  min-height:46px;
  border-top:1px solid #202b39;
  padding:9px 0;
}
.action-row:first-of-type { border-top:0; }
.action-label { width:72px; color:#c9d2dc; font-size:13px; font-weight:650; }
.interval-box {
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--muted);
  font-size:12px;
}
.interval-box input { width:90px; padding:8px; }
.home-actions .btn { flex:0 0 auto; }
.mini-note { color:var(--muted); font-size:12px; line-height:1.55; margin:7px 0 10px; }

.owner-box {
  margin-top:14px;
  padding:14px;
  border-radius:15px;
  background:#121d28;
  border:1px dashed #39506a;
}
.owner-box h4 { margin:0 0 5px; }
.owner-box .btn { margin-right:8px; margin-top:4px; }

.auth-box {
  margin:10px 0 0;
  background:#091017;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px;
  white-space:pre-wrap;
  word-break:break-word;
}
.offline-note,.protocol-note {
  margin-top:13px;
  border-radius:12px;
  padding:10px 12px;
  font-size:12px;
}
.offline-note { background:#0d141d; color:var(--muted); }
.protocol-note { background:#2c2615; color:#e4ca8a; }

.admin-emergency {
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #273443;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}

@media (max-width:850px) {
  .guide { grid-template-columns:repeat(2,1fr); }
  .invite-grid { grid-template-columns:1fr 1fr; }
  .invite-grid .btn { grid-column:1/-1; }
}
@media (max-width:680px) {
  .shell { width:min(100% - 20px,1180px); padding-top:18px; }
  .topbar { align-items:flex-start; }
  .guide { grid-template-columns:1fr; }
  .controls-grid { grid-template-columns:1fr; }
  .home-group { grid-column:auto; }
  .action-label { width:100%; }
  .login-form { flex-direction:column; }
  .invite-grid { grid-template-columns:1fr; }
  .invite-result { align-items:stretch; flex-direction:column; }
  .admin-emergency { align-items:flex-start; flex-direction:column; }
}

.stance-group { grid-column:1/-1; }

.teleport-group { grid-column:1/-1; }


.auth-card { width:min(560px,100%); }
.auth-tabs {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  padding:5px;
  margin:20px 0 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#0c1219;
}
.auth-tab {
  border:0;
  border-radius:8px;
  padding:10px 12px;
  background:transparent;
  color:var(--muted);
}
.auth-tab.active {
  background:var(--accent);
  color:var(--accentText);
  font-weight:750;
}
.auth-form {
  display:grid;
  gap:12px;
}
.auth-form label,.account-grid label {
  display:grid;
  gap:6px;
}
.auth-form label span,.account-grid label span {
  color:var(--muted);
  font-size:12px;
}
.account-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:15px;
  align-items:end;
}
.account-grid > .btn { min-height:42px; }
@media (max-width:900px) {
  .account-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:620px) {
  .account-grid { grid-template-columns:1fr; }
}


.auth-card-inline {
  margin-top:12px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#0c1219;
  display:grid;
  gap:10px;
}
.auth-step-title {
  font-size:13px;
  font-weight:750;
}
.auth-wait {
  color:var(--muted);
}
.device-code-row {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.device-code {
  font-size:20px;
  font-weight:800;
  letter-spacing:.08em;
  padding:9px 12px;
  border-radius:9px;
  border:1px solid var(--line);
  background:#080c11;
  user-select:all;
}
.power-box {
  display:grid;
  gap:10px;
}
.power-state {
  width:max-content;
  padding:5px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  font-size:12px;
}
.power-state.on { font-weight:750; }
.power-state.off { color:var(--muted); }


.live-notice {
  margin:12px 0;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#0c1219;
  font-weight:650;
}
.live-notice.ok { border-color:rgba(109,214,157,.35); }
.live-notice.bad { border-color:rgba(255,112,112,.45); }
.activity-log {
  display:grid;
  gap:7px;
  max-height:320px;
  overflow:auto;
}
.activity-item {
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:9px 0;
  border-bottom:1px solid var(--line);
}
.activity-item:last-child { border-bottom:0; }
.activity-text { font-size:13px; }
.activity-time { font-size:11px; color:var(--muted); white-space:nowrap; }

.auth-link-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:8px;
  align-items:center;
}
.auth-link-input {
  width:100%;
  min-width:0;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:12px;
}
.auth-status-line {
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:9px;
}
.auth-dot {
  width:8px;
  height:8px;
  border-radius:50%;
  display:inline-block;
}
.auth-dot.wait { background:currentColor; }
.auth-success {
  padding:11px 12px;
  border:1px solid rgba(109,214,157,.35);
  border-radius:9px;
  font-weight:700;
}
.auth-error {
  padding:11px 12px;
  border:1px solid rgba(255,112,112,.45);
  border-radius:9px;
}
@media (max-width:720px) {
  .auth-link-row { grid-template-columns:1fr; }
  .activity-item { display:block; }
  .activity-time { margin-top:4px; }
}


/* v0.7.1: Microsoft bind card stays visually stable during polling */
.auth-card-inline {
  min-height: 250px;
}
.auth-link-input,
.device-code {
  transition: none !important;
}
.auth-status-line {
  min-height: 44px;
}

/* v0.9.0: overview-first UI */
body.detail-open { overflow:hidden; }

.overview-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:18px;
  margin:18px 0 12px;
}
.overview-head h2 { margin:0 0 5px; font-size:20px; }
.overview-summary {
  flex:none;
  color:var(--muted);
  font-size:12px;
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(18,24,33,.76);
}
.bot-overview-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:14px;
}
.bot-overview-card {
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,#151c25,#111821);
  padding:17px;
  cursor:pointer;
  min-height:230px;
  transition:transform .12s ease,border-color .12s ease,background .12s ease;
  outline:none;
}
.bot-overview-card:hover,
.bot-overview-card:focus-visible {
  transform:translateY(-2px);
  border-color:#496078;
  background:linear-gradient(180deg,#18222d,#121a24);
}
.overview-card-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.overview-card-head h3 { margin:0 0 5px; font-size:20px; }
.mine-badge {
  display:inline-flex;
  align-items:center;
  width:max-content;
  color:#bcd4e8;
  background:#14283a;
  border:1px solid #294b68;
  border-radius:999px;
  padding:3px 7px;
  font-size:10px;
  font-weight:700;
}
.zone-primary {
  margin-top:17px;
  padding:13px 14px;
  border:1px solid #314256;
  border-radius:13px;
  background:#0c131c;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.zone-primary .zone-label { color:var(--muted); font-size:11px; }
.zone-primary strong { font-size:17px; }
.overview-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:9px;
}
.detail-stat {
  min-width:0;
  border:1px solid #233040;
  border-radius:11px;
  padding:10px 11px;
  background:#0d141d;
}
.detail-stat-label,
.detail-stat-value { display:block; }
.detail-stat-label { color:var(--muted); font-size:10px; margin-bottom:4px; }
.detail-stat-value { font-size:12px; overflow-wrap:anywhere; }
.detail-stat.compat { border-color:#665224; background:#241f12; }
.detail-stat.zone { border-color:#35546d; background:#101d28; }
.overview-card-foot {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:13px;
  padding-top:11px;
  border-top:1px solid #202b39;
}
.open-detail-hint { color:#cbd7e1; font-size:12px; font-weight:650; }

.platform-settings { margin-top:24px; }
.platform-settings > summary {
  cursor:pointer;
  font-weight:700;
  list-style:none;
}
.platform-settings > summary::-webkit-details-marker { display:none; }
.platform-settings > summary::after { content:'＋'; float:right; color:var(--muted); }
.platform-settings[open] > summary::after { content:'－'; }
.settings-body { margin-top:16px; border-top:1px solid var(--line); }
.settings-section { padding:18px 0; border-bottom:1px solid var(--line); }
.settings-section:last-child { border-bottom:0; padding-bottom:0; }
.settings-section h2 { margin:0 0 5px; }

.bot-detail-overlay {
  position:fixed;
  inset:0;
  z-index:1000;
  background:var(--bg);
  display:flex;
  flex-direction:column;
}
.bot-detail-topbar {
  flex:none;
  min-height:66px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:16px;
  padding:12px max(16px,calc((100vw - 1180px)/2));
  background:rgba(11,15,20,.96);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(14px);
}
.bot-detail-title { font-size:15px; font-weight:800; text-align:center; }
.detail-topbar-spacer { min-width:1px; }
.bot-detail-scroll { flex:1; min-height:0; overflow:auto; }
.bot-detail-content {
  width:min(1180px,calc(100% - 32px));
  margin:0 auto;
  padding:24px 0 70px;
}
.detail-hero,
.detail-section {
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(18,24,33,.93);
  padding:18px;
  margin-bottom:14px;
}
.detail-hero-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
}
.detail-hero h2 { margin:3px 0 7px; font-size:28px; }
.detail-stat-grid,
.protocol-meta-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin-top:16px;
}
.detail-section h3 { margin:0 0 10px; font-size:18px; }
.detail-copy,
.detail-subnote,
.diagnostic-line {
  color:var(--muted);
  font-size:12px;
  line-height:1.55;
}
.detail-subnote { margin-top:12px; }
.diagnostic-line {
  margin-top:9px;
  padding:9px 10px;
  border:1px solid #2d3a49;
  border-radius:10px;
  background:#0c1219;
  overflow-wrap:anywhere;
}
.detail-warning { margin:0 0 14px; }
.detail-section .owner-box { margin-top:10px; }
.detail-section > .owner-box:first-of-type { margin-top:0; }

@media (max-width:760px) {
  .overview-head { display:block; }
  .overview-summary { width:max-content; max-width:100%; margin-top:10px; border-radius:12px; }
  .bot-overview-grid { grid-template-columns:1fr; }
  .detail-stat-grid,
  .protocol-meta-grid { grid-template-columns:1fr 1fr; }
  .bot-detail-topbar {
    grid-template-columns:auto 1fr;
    padding:10px;
  }
  .bot-detail-title { text-align:right; overflow:hidden; text-overflow:ellipsis; }
  .detail-topbar-spacer { display:none; }
  .bot-detail-content { width:min(100% - 20px,1180px); padding-top:14px; }
}

@media (max-width:480px) {
  .overview-facts,
  .detail-stat-grid,
  .protocol-meta-grid { grid-template-columns:1fr; }
}
.detail-live-notice {
  flex:none;
  z-index:2;
  width:min(1180px,calc(100% - 32px));
  margin:10px auto 0;
}

/* v0.10.0: theme switch, card-level human login, visual polish */
:root {
  --glass: rgba(18,24,33,.93);
  --glass-strong: rgba(18,24,33,.96);
  --input-bg: #0c1219;
  --inner-bg: #0d141d;
  --card-start: #151c25;
  --card-end: #111821;
  --card-hover-start: #18222d;
  --card-hover-end: #121a24;
  --soft-line: #202b39;
  --field-line: #314052;
  --button-bg: #1a2430;
  --button-ghost: #18212c;
  --banner-overlay-a: rgba(8,13,19,.38);
  --banner-overlay-b: rgba(8,13,19,.84);
  --banner-text: #f4f8fb;
  --shadow: 0 24px 70px rgba(0,0,0,.30);
}

:root[data-theme="light"] {
  color-scheme: light;
  --bg:#eef3f7;
  --panel:#ffffff;
  --panel2:#f6f8fb;
  --line:#d7e0e8;
  --text:#17212b;
  --muted:#667789;
  --accent:#203a52;
  --accentText:#ffffff;
  --good:#26734a;
  --goodBg:#e7f6ed;
  --human:#17689e;
  --humanBg:#e6f3fd;
  --warn:#8a650d;
  --warnBg:#fff5d9;
  --bad:#a33434;
  --badBg:#fdeaea;
  --glass:rgba(255,255,255,.92);
  --glass-strong:rgba(255,255,255,.96);
  --input-bg:#ffffff;
  --inner-bg:#f7f9fb;
  --card-start:#ffffff;
  --card-end:#f6f8fb;
  --card-hover-start:#ffffff;
  --card-hover-end:#eef4f8;
  --soft-line:#dce4eb;
  --field-line:#becbd6;
  --button-bg:#edf2f6;
  --button-ghost:#f4f7f9;
  --banner-overlay-a:rgba(255,255,255,.20);
  --banner-overlay-b:rgba(20,40,58,.66);
  --banner-text:#ffffff;
  --shadow:0 18px 55px rgba(35,55,72,.12);
}

:root[data-theme="light"] body {
  background:
    radial-gradient(circle at 15% -10%, #dbe8f2 0, transparent 35%),
    radial-gradient(circle at 90% 0%, #e5eef5 0, transparent 30%),
    var(--bg);
}

.theme-toggle {
  position:fixed;
  top:16px;
  right:16px;
  z-index:1200;
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:36px;
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--glass-strong);
  color:var(--text);
  box-shadow:0 8px 24px rgba(0,0,0,.10);
  backdrop-filter:blur(12px);
}
.theme-toggle:hover { transform:translateY(-1px); }
.theme-toggle-icon { font-size:14px; line-height:1; }
#themeToggleText { font-size:12px; font-weight:750; }

.harbor-banner {
  position:relative;
  min-height:145px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:22px;
  margin:4px 0 22px;
  background:
    linear-gradient(100deg,var(--banner-overlay-b),var(--banner-overlay-a)),
    url('/assets/server-scene.png') center 43% / cover no-repeat;
  box-shadow:var(--shadow);
}
.harbor-banner::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 30%,rgba(8,13,19,.26));
  pointer-events:none;
}
.harbor-banner-copy {
  position:relative;
  z-index:1;
  width:min(650px,90%);
  min-height:145px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:5px;
  padding:22px 24px;
  color:var(--banner-text);
  text-shadow:0 2px 16px rgba(0,0,0,.50);
}
.harbor-banner-copy .eyebrow { color:rgba(255,255,255,.75); }
.harbor-banner-copy strong { font-size:21px; letter-spacing:.02em; }
.harbor-banner-copy span { font-size:12px; color:rgba(255,255,255,.82); }

.overview-card-actions {
  display:flex;
  justify-content:flex-end;
  margin-top:11px;
}
.card-manual-login {
  min-height:34px;
  padding:7px 11px;
  font-size:12px;
  border-radius:999px;
}
.human-online-note {
  width:max-content;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--human) 35%, var(--line));
  background:var(--humanBg);
  color:var(--human);
  font-size:12px;
  font-weight:800;
}

/* Route old hard-coded dark surfaces through theme-aware values. */
.login-card,
.panel,
.detail-hero,
.detail-section { background:var(--glass); box-shadow:var(--shadow); }
.bot-overview-card,
.bot-card { background:linear-gradient(180deg,var(--card-start),var(--card-end)); }
.bot-overview-card:hover,
.bot-overview-card:focus-visible { background:linear-gradient(180deg,var(--card-hover-start),var(--card-hover-end)); }
input,select,
.auth-tabs,
.auth-card-inline,
.live-notice,
.diagnostic-line,
.invite-result { background:var(--input-bg); }
input,select { border-color:var(--field-line); }
.btn { background:var(--button-bg); border-color:var(--line); }
.btn.ghost { background:var(--button-ghost); }
.control-group,
.zone-primary,
.detail-stat,
.offline-note { background:var(--inner-bg); border-color:var(--line); }
.overview-card-foot,
.action-row { border-color:var(--soft-line); }
.owner-box { background:color-mix(in srgb, var(--humanBg) 38%, var(--panel)); border-color:color-mix(in srgb, var(--human) 35%, var(--line)); }
.bot-detail-topbar { background:var(--glass-strong); }
.overview-summary { background:var(--glass); }
.auth-box { background:var(--input-bg); }
.device-code { background:var(--inner-bg); }
.action-label,.open-detail-hint { color:var(--text); }
.mine-badge {
  color:var(--human);
  background:var(--humanBg);
  border-color:color-mix(in srgb, var(--human) 35%, var(--line));
}
.detail-stat.compat { background:var(--warnBg); border-color:color-mix(in srgb, var(--warn) 35%, var(--line)); }
.detail-stat.zone { background:color-mix(in srgb, var(--humanBg) 55%, var(--panel)); border-color:color-mix(in srgb, var(--human) 30%, var(--line)); }
.protocol-note { background:var(--warnBg); color:var(--warn); }
.btn.human { color:var(--human); border-color:color-mix(in srgb, var(--human) 42%, var(--line)); }
.btn.danger { color:var(--bad); border-color:color-mix(in srgb, var(--bad) 38%, var(--line)); }
.status-pill.ok { border-color:color-mix(in srgb, var(--good) 35%, var(--line)); }
.status-pill.human { border-color:color-mix(in srgb, var(--human) 35%, var(--line)); }
.status-pill.wait,.status-pill.warn { border-color:color-mix(in srgb, var(--warn) 35%, var(--line)); }
.status-pill.bad { border-color:color-mix(in srgb, var(--bad) 35%, var(--line)); }
.status-pill.off { color:var(--muted); background:var(--panel2); }
.eyebrow { color:color-mix(in srgb, var(--muted) 82%, var(--text)); }

@media (max-width:680px) {
  .theme-toggle { top:10px; right:10px; }
  #themeToggleText { display:none; }
  .theme-toggle { width:38px; padding:7px; justify-content:center; }
  .harbor-banner { min-height:120px; border-radius:17px; }
  .harbor-banner-copy { min-height:120px; padding:17px; }
  .harbor-banner-copy strong { font-size:17px; }
}


/* v0.10.1: precise offline states + real Xianxinggang photo gallery */
.harbor-banner {
  background: #0b1118;
  isolation:isolate;
}
.harbor-slideshow,
.harbor-slide {
  position:absolute;
  inset:0;
}
.harbor-slideshow { z-index:0; overflow:hidden; }
.harbor-slide {
  opacity:0;
  background-position:center;
  background-size:cover;
  transform:scale(1.025);
  animation:harborScene 42s infinite;
}
.harbor-slide:nth-child(1){ animation-delay:0s; }
.harbor-slide:nth-child(2){ animation-delay:7s; }
.harbor-slide:nth-child(3){ animation-delay:14s; }
.harbor-slide:nth-child(4){ animation-delay:21s; }
.harbor-slide:nth-child(5){ animation-delay:28s; }
.harbor-slide:nth-child(6){ animation-delay:35s; }
@keyframes harborScene {
  0% { opacity:0; transform:scale(1.025); }
  4% { opacity:1; }
  15% { opacity:1; transform:scale(1.055); }
  19% { opacity:0; }
  100% { opacity:0; }
}
.harbor-banner::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(100deg,var(--banner-overlay-b),var(--banner-overlay-a));
  pointer-events:none;
}
.harbor-banner::after { z-index:1; }
.harbor-banner-copy { z-index:2; }
.harbor-banner-tag {
  position:absolute;
  z-index:2;
  right:16px;
  bottom:14px;
  padding:5px 8px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(5,10,16,.42);
  color:rgba(255,255,255,.82);
  font-size:10px;
  letter-spacing:.08em;
  backdrop-filter:blur(8px);
}
@media (prefers-reduced-motion:reduce) {
  .harbor-slide { animation:none; opacity:0; transform:none; }
  .harbor-slide:first-child { opacity:1; }
}

.overview-card-scene {
  height:58px;
  margin:13px -5px 0;
  border:1px solid var(--line);
  border-radius:12px;
  background-position:center;
  background-size:cover;
  position:relative;
  overflow:hidden;
}
.overview-card-scene::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(5,10,16,.28),rgba(5,10,16,.04),rgba(5,10,16,.28));
}
:root[data-theme="light"] .overview-card-scene::after {
  background:linear-gradient(90deg,rgba(255,255,255,.18),rgba(255,255,255,.02),rgba(255,255,255,.18));
}

.detail-hero { overflow:hidden; }

.detail-status-card {
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--glass);
  padding:18px;
  margin-bottom:14px;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.detail-status-card::before {
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--muted);
}
.detail-status-card.state-bot_online::before { background:var(--good); }
.detail-status-card.state-human_online::before { background:var(--human); }
.detail-status-card.state-microsoft_required::before,
.detail-status-card.state-microsoft_mismatch::before,
.detail-status-card.state-protocol_repairing::before { background:var(--warn); }
.detail-status-card.state-launch_failed::before { background:var(--bad); }
.detail-status-card.state-manual_stopped::before,
.detail-status-card.state-never_online::before,
.detail-status-card.state-account_disabled::before { background:var(--muted); }
.detail-status-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.detail-status-head h3 { margin:3px 0 0; font-size:22px; }
.detail-status-copy {
  margin:12px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.65;
}
.status-meta-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:14px;
}
.status-error-line,
.status-stage-line {
  margin-top:10px;
  padding:10px 12px;
  border-radius:11px;
  font-size:12px;
  overflow-wrap:anywhere;
}
.status-error-line {
  color:var(--bad);
  border:1px solid color-mix(in srgb,var(--bad) 30%,var(--line));
  background:color-mix(in srgb,var(--badBg) 70%,var(--panel));
}
.status-stage-line {
  color:var(--muted);
  border:1px solid var(--line);
  background:var(--inner-bg);
}
.detail-status-card.state-human_online {
  background:linear-gradient(135deg,color-mix(in srgb,var(--humanBg) 72%,var(--panel)),var(--glass));
}
.detail-status-card.state-manual_stopped {
  background:linear-gradient(135deg,color-mix(in srgb,var(--panel2) 75%,var(--panel)),var(--glass));
}

@media (max-width:850px) {
  .status-meta-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:560px) {
  .overview-card-scene { height:48px; }
  .status-meta-grid { grid-template-columns:1fr; }
  .detail-status-head { align-items:flex-start; flex-direction:column; }
}

/* v0.10.2: swipeable Xianxinggang gallery + per-player Minecraft models */
.harbor-showcase {
  margin:4px 0 22px;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--glass);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.harbor-showcase-head,
.harbor-showcase-foot {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.harbor-showcase-head { padding:17px 18px 11px; }
.harbor-showcase-head > div:first-child {
  display:grid;
  gap:3px;
}
.harbor-showcase-head strong { font-size:20px; }
.harbor-showcase-head span,
.harbor-showcase-foot { color:var(--muted); font-size:12px; }
.harbor-carousel-controls { display:flex; gap:7px; flex:none; }
.harbor-carousel-arrow {
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--button-ghost);
  color:var(--text);
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:transform .12s ease,border-color .12s ease,background .12s ease;
}
.harbor-carousel-arrow:hover { transform:translateY(-1px); border-color:#607a95; background:var(--button-bg); }
.harbor-carousel-track {
  display:flex;
  gap:12px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:18px;
  padding:2px 18px 8px;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.harbor-carousel-track::-webkit-scrollbar { display:none; }
.harbor-showcase-card {
  --scene:none;
  position:relative;
  flex:0 0 min(78%,780px);
  height:260px;
  scroll-snap-align:center;
  overflow:hidden;
  border-radius:18px;
  border:1px solid color-mix(in srgb,var(--line) 72%,transparent);
  background-image:
    linear-gradient(180deg,rgba(5,10,16,.03) 25%,rgba(5,10,16,.78) 100%),
    var(--scene);
  background-size:cover;
  background-position:center;
  box-shadow:0 12px 30px rgba(0,0,0,.16);
  transform:scale(.985);
  opacity:.76;
  transition:transform .24s ease,opacity .24s ease,border-color .24s ease;
}
.harbor-showcase-card.active {
  transform:scale(1);
  opacity:1;
  border-color:color-mix(in srgb,var(--human) 28%,var(--line));
}
.harbor-card-copy {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:22px;
  color:#fff;
  display:grid;
  gap:4px;
  text-shadow:0 2px 16px rgba(0,0,0,.72);
}
.harbor-card-copy span { font-size:11px; letter-spacing:.12em; opacity:.78; }
.harbor-card-copy strong { font-size:20px; max-width:620px; }
.harbor-carousel-dots {
  min-height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:2px 14px 4px;
}
.harbor-carousel-dot {
  width:6px;
  height:6px;
  padding:0;
  border:0;
  border-radius:999px;
  background:color-mix(in srgb,var(--muted) 48%,transparent);
  transition:width .18s ease,background .18s ease;
}
.harbor-carousel-dot.active { width:22px; background:var(--human); }
.harbor-showcase-foot {
  padding:7px 18px 14px;
  border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);
}

.bot-overview-grid {
  grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
}
.player-overview-card {
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  gap:15px;
  padding:14px;
  min-height:270px;
  overflow:hidden;
  position:relative;
}
.player-overview-card::before {
  content:'';
  position:absolute;
  inset:auto -80px -100px auto;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--human) 9%,transparent),transparent 68%);
  pointer-events:none;
}
.player-model-stage {
  position:relative;
  min-height:240px;
  border:1px solid var(--line);
  border-radius:15px;
  overflow:hidden;
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--humanBg) 44%,var(--inner-bg)),var(--inner-bg));
  display:flex;
  justify-content:center;
  align-items:flex-end;
  isolation:isolate;
}
.player-model-stage::before {
  content:'';
  position:absolute;
  left:12%; right:12%; bottom:19px;
  height:16px;
  border-radius:50%;
  background:rgba(0,0,0,.26);
  filter:blur(5px);
  z-index:0;
}
.player-model-glow {
  position:absolute;
  width:140px;
  height:190px;
  left:50%;
  top:48%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--human) 20%,transparent),transparent 68%);
  filter:blur(2px);
  z-index:0;
}
.player-model-image {
  position:relative;
  z-index:2;
  display:block;
  width:auto;
  max-width:96px;
  height:208px;
  object-fit:contain;
  image-rendering:pixelated;
  filter:drop-shadow(0 10px 12px rgba(0,0,0,.32));
  transform:translateY(2px);
  transition:transform .18s ease;
}
.player-overview-card:hover .player-model-image,
.player-overview-card:focus-visible .player-model-image { transform:translateY(-2px) scale(1.025); }
.player-model-fallback {
  position:absolute;
  z-index:1;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:70px; height:70px;
  border-radius:16px;
  border:1px solid var(--line);
  background:var(--panel2);
  display:grid;
  place-items:center;
  color:var(--muted);
  font-weight:850;
  font-size:20px;
  letter-spacing:.08em;
}
.player-model-stage.model-loaded .player-model-fallback { display:none; }
.player-model-caption {
  position:absolute;
  z-index:3;
  left:8px; right:8px; bottom:7px;
  text-align:center;
  color:color-mix(in srgb,var(--muted) 78%,var(--text));
  font-size:8px;
  letter-spacing:.15em;
  font-weight:800;
}
.player-card-content {
  min-width:0;
  display:flex;
  flex-direction:column;
}
.player-card-identity { min-width:0; }
.player-card-identity h3 { overflow-wrap:anywhere; }
.player-overview-card .zone-primary { margin-top:13px; }
.player-overview-card .overview-facts { margin-top:8px; }
.player-overview-card .detail-stat { padding:9px 10px; }
.player-overview-card .overview-card-actions { margin-top:9px; }
.player-overview-card .overview-card-foot { margin-top:auto; padding-top:10px; }

@media (max-width:760px) {
  .harbor-showcase-card { flex-basis:88%; height:220px; }
  .harbor-card-copy { padding:17px; }
  .harbor-card-copy strong { font-size:17px; }
  .harbor-showcase-foot span:last-child { display:none; }
  .bot-overview-grid { grid-template-columns:1fr; }
}
@media (max-width:520px) {
  .harbor-showcase { border-radius:17px; }
  .harbor-showcase-head { padding:14px 14px 9px; }
  .harbor-carousel-track { padding-left:14px; padding-right:14px; gap:9px; }
  .harbor-showcase-card { flex-basis:92%; height:190px; border-radius:14px; }
  .harbor-carousel-arrow { width:34px; height:34px; }
  .player-overview-card { grid-template-columns:84px minmax(0,1fr); gap:11px; min-height:245px; padding:11px; }
  .player-model-stage { min-height:220px; border-radius:13px; }
  .player-model-image { max-width:74px; height:184px; }
  .overview-card-head { gap:7px; }
  .overview-card-head h3 { font-size:17px; }
  .status-pill { font-size:10px; }
  .player-overview-card .overview-facts { grid-template-columns:1fr; }
  .player-overview-card .overview-facts .detail-stat:nth-child(4) { display:none; }
  .overview-card-foot { flex-direction:column; align-items:flex-start; gap:4px; }
}
@media (prefers-reduced-motion:reduce) {
  .harbor-showcase-card,
  .player-model-image { transition:none; }
  .harbor-carousel-track { scroll-behavior:auto; }
}


/* v0.10.3: CSP-safe harbor gallery + compact Minecraft avatar cards */
.harbor-showcase-card {
  background:var(--panel2);
}
.harbor-showcase-card > img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  z-index:0;
}
.harbor-showcase-card::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(5,10,16,.03) 25%,rgba(5,10,16,.78) 100%);
  z-index:1;
  pointer-events:none;
}
.harbor-card-copy { z-index:2; }

.player-overview-card {
  grid-template-columns:96px minmax(0,1fr);
  min-height:220px;
  align-items:start;
}
.player-avatar-stage {
  width:96px;
  height:112px;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--humanBg) 55%,var(--inner-bg)),var(--inner-bg));
  display:grid;
  place-items:center;
  position:relative;
  overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.player-avatar-stage::after {
  content:'';
  position:absolute;
  left:14px;
  right:14px;
  bottom:8px;
  height:10px;
  border-radius:50%;
  background:rgba(0,0,0,.2);
  filter:blur(5px);
}
.player-avatar-image {
  width:78px;
  height:78px;
  object-fit:contain;
  image-rendering:pixelated;
  position:relative;
  z-index:2;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.28));
}
.player-avatar-fallback {
  position:absolute;
  z-index:1;
  width:62px;
  height:62px;
  border-radius:14px;
  border:1px solid var(--line);
  background:var(--panel2);
  color:var(--muted);
  display:grid;
  place-items:center;
  font-weight:850;
  letter-spacing:.08em;
}
.player-avatar-stage.avatar-loaded .player-avatar-fallback { display:none; }
.player-card-content { min-height:190px; }

@media (max-width:520px) {
  .player-overview-card { grid-template-columns:74px minmax(0,1fr); min-height:215px; }
  .player-avatar-stage { width:74px; height:88px; border-radius:14px; }
  .player-avatar-image { width:62px; height:62px; }
  .player-avatar-fallback { width:52px; height:52px; }
}


/* v0.10.4: horizontal-only harbor carousel + compact player overview cards */
.bot-overview-grid {
  gap:12px;
  grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
}
.player-overview-card {
  grid-template-columns:72px minmax(0,1fr);
  gap:12px;
  padding:12px 13px;
  min-height:0;
  align-items:start;
}
.player-overview-card::before {
  width:150px;
  height:150px;
  inset:auto -60px -70px auto;
}
.player-avatar-stage {
  width:72px;
  height:72px;
  border-radius:14px;
}
.player-avatar-stage::after {
  left:12px;
  right:12px;
  bottom:5px;
  height:7px;
}
.player-avatar-image {
  width:60px;
  height:60px;
  filter:drop-shadow(0 5px 7px rgba(0,0,0,.24));
}
.player-avatar-fallback {
  width:52px;
  height:52px;
  border-radius:11px;
  font-size:14px;
}
.player-card-content { min-height:0; }
.player-overview-card .overview-card-head {
  align-items:center;
  gap:8px;
}
.player-overview-card .overview-card-head h3 {
  margin:0;
  font-size:19px;
  line-height:1.2;
}
.player-overview-card .status-pill {
  padding:5px 8px;
  font-size:10px;
}
.player-overview-card .mine-badge { margin-top:4px; }
.player-overview-card .zone-primary {
  margin-top:9px;
  padding:9px 11px;
  border-radius:11px;
}
.player-overview-card .zone-primary strong { font-size:15px; }
.player-overview-card .overview-facts {
  margin-top:7px;
  gap:7px;
}
.player-overview-card .detail-stat {
  padding:7px 9px;
  border-radius:10px;
}
.player-overview-card .detail-stat-label {
  margin-bottom:2px;
  font-size:9px;
}
.player-overview-card .detail-stat-value {
  font-size:11px;
  line-height:1.25;
}
.player-overview-card .overview-card-actions { margin-top:7px; }
.player-overview-card .overview-card-foot {
  margin-top:7px;
  padding-top:7px;
  gap:8px;
}
.player-overview-card .overview-card-foot .small,
.player-overview-card .open-detail-hint { font-size:10px; }
.harbor-carousel-track { scroll-behavior:smooth; }

@media (max-width:520px) {
  .bot-overview-grid { grid-template-columns:1fr; }
  .player-overview-card {
    grid-template-columns:62px minmax(0,1fr);
    gap:9px;
    padding:10px;
    min-height:0;
  }
  .player-avatar-stage { width:62px; height:62px; border-radius:12px; }
  .player-avatar-image { width:52px; height:52px; }
  .player-avatar-fallback { width:46px; height:46px; }
  .player-overview-card .overview-card-head { align-items:flex-start; }
  .player-overview-card .overview-card-head h3 { font-size:16px; }
  .player-overview-card .overview-facts { grid-template-columns:1fr 1fr; }
  .player-overview-card .overview-facts .detail-stat:nth-child(4) { display:block; }
  .player-overview-card .overview-card-foot {
    flex-direction:row;
    align-items:center;
    gap:6px;
  }
}


/* v0.10.5: balanced full-width player card layout */
.player-overview-card {
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  grid-template-areas:
    "avatar head"
    "zone zone"
    "facts facts"
    "actions actions"
    "foot foot";
  column-gap:11px;
  row-gap:8px;
  padding:11px 12px;
  min-height:0;
  align-items:center;
}
.player-overview-card .player-avatar-stage { grid-area:avatar; width:64px; height:64px; border-radius:13px; align-self:start; }
.player-overview-card .player-avatar-image { width:54px; height:54px; }
.player-overview-card .player-avatar-fallback { width:46px; height:46px; border-radius:10px; font-size:13px; }
.player-overview-card .player-card-content { display:contents; min-height:0; }
.player-overview-card .overview-card-head { grid-area:head; min-width:0; align-self:start; display:flex; align-items:flex-start; justify-content:space-between; gap:8px; padding-top:1px; }
.player-overview-card .player-card-identity { min-width:0; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.player-overview-card .player-card-identity h3 { margin:0; font-size:18px; line-height:1.15; overflow-wrap:anywhere; }
.player-overview-card .mine-badge { margin:0; padding:2px 6px; font-size:9px; line-height:1.35; flex:none; }
.player-overview-card .status-pill { flex:none; padding:5px 8px; font-size:10px; line-height:1.2; }
.player-overview-card .zone-primary { grid-area:zone; margin:0; min-height:42px; padding:8px 10px; border-radius:10px; gap:10px; }
.player-overview-card .zone-primary .zone-label { font-size:10px; flex:none; }
.player-overview-card .zone-primary strong { min-width:0; font-size:15px; line-height:1.15; text-align:right; overflow-wrap:anywhere; }
.player-overview-card .overview-facts { grid-area:facts; margin:0; display:grid; grid-template-columns:minmax(84px,.72fr) minmax(0,1.28fr); gap:7px; }
.player-overview-card .detail-stat { min-width:0; min-height:48px; padding:7px 9px; border-radius:10px; display:flex; flex-direction:column; justify-content:center; }
.player-overview-card .detail-stat-label { margin-bottom:2px; font-size:9px; line-height:1.15; }
.player-overview-card .detail-stat-value { font-size:11px; line-height:1.25; overflow-wrap:anywhere; }
.player-overview-card .overview-facts .detail-stat:nth-child(2) .detail-stat-value { font-size:10.5px; font-variant-numeric:tabular-nums; white-space:nowrap; letter-spacing:-.015em; }
.player-overview-card .overview-card-actions { grid-area:actions; margin:0; min-height:0; justify-content:flex-end; }
.player-overview-card .card-manual-login { min-height:32px; padding:6px 10px; font-size:11px; }
.player-overview-card .overview-card-foot { grid-area:foot; margin:0; padding-top:7px; gap:8px; min-width:0; }
.player-overview-card .overview-card-foot .small { min-width:0; font-size:10px; overflow-wrap:anywhere; }
.player-overview-card .open-detail-hint { flex:none; font-size:10px; white-space:nowrap; }
@media (max-width:520px) {
  .player-overview-card { grid-template-columns:56px minmax(0,1fr); column-gap:9px; row-gap:7px; padding:10px; }
  .player-overview-card .player-avatar-stage { width:56px; height:56px; border-radius:11px; }
  .player-overview-card .player-avatar-image { width:48px; height:48px; }
  .player-overview-card .player-avatar-fallback { width:42px; height:42px; }
  .player-overview-card .player-card-identity h3 { font-size:16px; }
  .player-overview-card .overview-facts { grid-template-columns:minmax(76px,.68fr) minmax(0,1.32fr); gap:6px; }
  .player-overview-card .overview-facts .detail-stat:nth-child(2) .detail-stat-value { font-size:10px; white-space:normal; }
  .player-overview-card .overview-card-foot { flex-direction:row; align-items:center; }
}
/* /v0.10.5 */

/* v0.11.0 member review entry */
.topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.review-nav-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--badBg);color:var(--bad);font-size:10px;font-weight:900}.public-entry-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding-top:14px;border-top:1px solid var(--line)}.public-status-link{color:var(--muted);font-size:12px;text-decoration:none}.public-status-link:hover{color:var(--text)}
@media(max-width:680px){.topbar-actions{justify-content:flex-end}.public-entry-actions{align-items:stretch;flex-direction:column}.public-status-link{text-align:center;padding:7px}}

/* V1 town portal navigation */
.town-workbench-link {
  position:fixed;
  z-index:120;
  top:18px;
  left:18px;
  display:inline-flex;
  align-items:center;
  padding:9px 14px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--text);
  background:var(--glass);
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  backdrop-filter:blur(14px);
  font-size:12px;
  font-weight:600;
  text-decoration:none;
}

.town-workbench-link:hover {
  border-color:rgba(125,188,255,.45);
  transform:translateY(-1px);
}

@media(max-width:720px) {
  .town-workbench-link {
    top:12px;
    left:12px;
    padding:7px 11px;
    font-size:11px;
  }
}


/* Account management moved to V1 town workspace */
#accountBox {
  display:none !important;
}


/* Account management has moved to /v1-preview/account/ */
#accountBox {
  display:none !important;
}



/* ========================================================
   XGG BEDROCK BREAKER WEB CONTROL V1
   ======================================================== */

.breaker-section {
  overflow:hidden;
}

.breaker-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:8px;
}

.breaker-head h3 {
  margin:3px 0 0;
}

.breaker-summary {
  flex:none;
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--inner-bg);
}

.breaker-angle-box {
  margin-top:16px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--inner-bg);
}

.breaker-subtitle {
  margin-bottom:10px;
  font-size:13px;
  font-weight:800;
}

.breaker-angle-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.breaker-angle-grid label {
  display:grid;
  gap:6px;
}

.breaker-angle-grid label > span {
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}

.breaker-angle-grid input {
  width:100%;
  min-height:40px;
}

.breaker-angle-actions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

.breaker-switch-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}

.breaker-switch-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:62px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--inner-bg);
}

.breaker-switch-copy {
  min-width:0;
}

.breaker-switch-title {
  display:block;
  font-size:13px;
  font-weight:750;
  line-height:1.35;
}

.breaker-toggle {
  position:relative;
  flex:0 0 auto;
  width:48px;
  height:27px;
  cursor:pointer;
}

.breaker-toggle input {
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  pointer-events:none;
}

.breaker-toggle-slider {
  position:absolute;
  inset:0;
  border:1px solid var(--field-line);
  border-radius:999px;
  background:var(--button-ghost);
  transition:
    background .18s ease,
    border-color .18s ease,
    opacity .18s ease;
}

.breaker-toggle-slider::after {
  content:'';
  position:absolute;
  top:3px;
  left:3px;
  width:19px;
  height:19px;
  border-radius:50%;
  background:var(--muted);
  transition:
    transform .18s ease,
    background .18s ease;
}

.breaker-toggle input:checked + .breaker-toggle-slider {
  background:
    color-mix(
      in srgb,
      var(--good) 22%,
      var(--inner-bg)
    );
  border-color:
    color-mix(
      in srgb,
      var(--good) 58%,
      var(--line)
    );
}

.breaker-toggle input:checked + .breaker-toggle-slider::after {
  transform:translateX(21px);
  background:var(--good);
}

.breaker-toggle.busy {
  opacity:.55;
  pointer-events:none;
}

.breaker-master-box {
  margin-top:14px;
  padding:4px 12px 0;
  border:1px solid
    color-mix(
      in srgb,
      var(--human) 35%,
      var(--line)
    );
  border-radius:14px;
  background:
    color-mix(
      in srgb,
      var(--humanBg) 25%,
      var(--inner-bg)
    );
}

.breaker-master-box .breaker-switch-row {
  padding-left:0;
  padding-right:0;
  border:0;
  background:transparent;
}

.breaker-master-box .breaker-switch-title {
  font-size:15px;
}

@media (max-width:760px) {
  .breaker-switch-grid {
    grid-template-columns:1fr;
  }

  .breaker-angle-grid {
    grid-template-columns:1fr 1fr;
  }

  .breaker-head {
    display:block;
  }

  .breaker-summary {
    display:inline-block;
    margin-top:8px;
  }
}

@media (max-width:480px) {
  .breaker-angle-grid {
    grid-template-columns:1fr;
  }

  .breaker-angle-actions .btn {
    width:100%;
  }
}
