:root {
  color-scheme: dark;
  --ink: #f2eee3;
  --muted: #9c9a92;
  --line: #302d25;
  --line-strong: #4b4330;
  --surface: #111318;
  --surface-muted: #171a20;
  --surface-raised: #1c2027;
  --canvas: #090b0e;
  --login-bg: #0c0e12;
  --nav: #07090c;
  --nav-muted: #8d8d89;
  --nav-accent: #d6ae48;
  --accent: #d6ae48;
  --accent-dark: #b98a25;
  --accent-soft: #2a2518;
  --accent-contrast: #0c0d0f;
  --hot: #e7c96f;
  --input-border: #3a372f;
  --success: #43c982;
  --success-soft: #15271f;
  --danger: #ff626d;
  --danger-soft: #321b20;
  --warn: #e0a23e;
  --warn-soft: #302416;
  --notice-bg: #211d14;
  --notice-ink: #d8c68f;
  --shadow: rgba(0, 0, 0, .55);
  --glow: rgba(214, 174, 72, .2);
  --radius: 4px;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  color: var(--ink);
  background: var(--canvas);
}

:root[data-theme="cyber"] {
  --ink: #e8fffd;
  --muted: #86a8b1;
  --line: #20364b;
  --line-strong: #2e6072;
  --surface: #0a1120;
  --surface-muted: #0e182a;
  --surface-raised: #122039;
  --canvas: #050814;
  --login-bg: #060b18;
  --nav: #030611;
  --nav-muted: #7497a4;
  --nav-accent: #19e6d1;
  --accent: #19e6d1;
  --accent-dark: #0eb8ad;
  --accent-soft: #0b2b31;
  --accent-contrast: #041013;
  --hot: #ff4fb3;
  --input-border: #27455b;
  --success: #1dffc3;
  --success-soft: #0a302d;
  --danger: #ff4f91;
  --danger-soft: #35152c;
  --warn: #ffc857;
  --warn-soft: #302817;
  --notice-bg: #111b32;
  --notice-ink: #9fece4;
  --shadow: rgba(0, 0, 0, .65);
  --glow: rgba(25, 230, 209, .24);
  --radius: 2px;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; color: var(--ink); background: var(--canvas); }
button, input, select, textarea { font: inherit; letter-spacing: 0; }
button { cursor: pointer; }
button:focus-visible, .nav-button:focus-visible, .table-action:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
button:disabled { cursor: not-allowed; opacity: .5; }
.hidden { display: none !important; }

.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(340px, 42%) 1fr; background: var(--login-bg); }
.login-brand { position: relative; padding: clamp(40px, 8vw, 110px); display: flex; flex-direction: column; justify-content: center; gap: 18px; overflow: hidden; color: var(--ink); background: var(--nav); border-right: 1px solid var(--line-strong); }
.login-brand::before, .login-brand::after { content: ""; position: absolute; pointer-events: none; }
.login-brand::before { width: 180px; height: 1px; right: 40px; top: 80px; background: var(--accent); box-shadow: 0 8px 0 var(--line-strong), 0 16px 0 var(--line); }
.login-brand::after { width: 110px; height: 110px; right: 56px; bottom: 54px; border: 1px solid var(--line-strong); transform: rotate(45deg); }
.brand-mark { width: 62px; height: 62px; display: grid; place-items: center; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); background: var(--accent-soft); font: 700 28px Georgia, serif; box-shadow: 0 0 24px var(--glow); }
.brand-mark.small { width: 34px; height: 34px; font-size: 17px; box-shadow: none; }
.login-brand h1 { margin: 0; font-size: 40px; font-weight: 650; }
.login-brand p { margin: 0; color: var(--nav-muted); font-size: 15px; }
.system-state { margin-top: 48px; color: var(--nav-muted); font-size: 12px; }
.system-state span, .status-dot { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 3px var(--success-soft); }
.login-main { display: grid; place-items: center; padding: 34px; }
.login-form { width: min(420px, 100%); }
.portal-identity { display: flex; align-items: center; justify-content: space-between; margin-bottom: 38px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.portal-identity strong { color: var(--accent); }
.portal-identity span { color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }
.login-form header { margin-bottom: 28px; }
.eyebrow, #page-kicker { margin: 0 0 6px; color: var(--accent); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.login-form h2 { margin: 0 0 8px; font-size: 27px; }
.login-form header p:last-child { margin: 0; color: var(--muted); }
label { display: grid; gap: 7px; margin-bottom: 15px; color: var(--ink); font-size: 12px; font-weight: 650; }
input, select, textarea { width: 100%; min-height: 40px; border: 1px solid var(--input-border); border-radius: var(--radius); outline: none; padding: 9px 11px; color: var(--ink); background: var(--surface-muted); }
input:hover, select:hover, textarea:hover { border-color: var(--line-strong); }
input:focus, select:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--glow); }
textarea { min-height: 90px; resize: vertical; }
.primary, .ghost, .danger, .table-action { min-height: 38px; border: 1px solid transparent; border-radius: var(--radius); padding: 8px 14px; }
.primary { color: var(--accent-contrast); background: var(--accent); border-color: var(--accent); font-weight: 700; }
.primary:hover { background: var(--hot); border-color: var(--hot); }
.ghost { color: var(--ink); background: var(--surface-muted); border-color: var(--line); }
.ghost:hover { color: var(--accent); border-color: var(--accent); }
.danger { color: white; background: var(--danger); }
.wide { width: 100%; margin-top: 8px; }
.form-error { min-height: 20px; margin: 4px 0; color: var(--danger); font-size: 12px; }
.demo-accounts { margin-top: 26px; padding-top: 15px; display: grid; gap: 7px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.demo-accounts button { width: max-content; border: 0; padding: 1px 0; color: var(--accent); background: transparent; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 232px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; color: var(--ink); background: var(--nav); border-right: 1px solid var(--line); }
.sidebar-brand { height: 72px; padding: 0 20px; display: flex; align-items: center; gap: 11px; border-bottom: 1px solid var(--line); }
.sidebar-brand strong { font-size: 15px; }
#nav { padding: 14px 9px; display: grid; gap: 2px; overflow-y: auto; }
.nav-button { width: 100%; min-height: 42px; display: flex; align-items: center; gap: 10px; border: 0; border-radius: var(--radius); padding: 9px 11px; color: var(--nav-muted); background: transparent; text-align: left; }
.nav-button:hover { color: var(--ink); background: var(--surface-muted); }
.nav-button.active { color: var(--ink); background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); }
.nav-icon { width: 22px; color: var(--nav-accent); font-weight: 750; text-align: center; }
.sidebar-foot { margin-top: auto; padding: 16px 20px; border-top: 1px solid var(--line); color: var(--nav-muted); font-size: 11px; }
.sidebar-foot small { display: block; margin-top: 8px; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.workspace { min-width: 0; }
.topbar { min-height: 72px; display: flex; align-items: center; gap: 16px; padding: 11px 26px; background: var(--surface); border-bottom: 1px solid var(--line); }
.topbar h1 { margin: 0; font-size: 20px; font-weight: 650; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.tenant-expiry { max-width: 285px; overflow: hidden; border: 1px solid var(--line-strong); border-left: 2px solid var(--accent); padding: 6px 9px; color: var(--notice-ink); background: var(--surface-muted); font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.tenant-expiry.expired { border-left-color: var(--danger); color: var(--danger); }
.announcement-bell { position: relative; }
.announcement-bell > .icon-button { position: relative; }
.announcement-unread-count { position: absolute; top: -5px; right: -5px; min-width: 16px; height: 16px; display: grid; place-items: center; border: 2px solid var(--surface); border-radius: 50%; padding: 0 3px; color: #fff; background: var(--danger); font-size: 9px; font-weight: 800; line-height: 1; }
.announcement-inbox { position: absolute; z-index: 12; top: calc(100% + 9px); right: 0; width: min(390px, calc(100vw - 24px)); max-height: min(520px, calc(100vh - 92px)); overflow: auto; border: 1px solid var(--line-strong); box-shadow: 0 16px 42px var(--shadow); background: var(--surface); }
.announcement-inbox > header { min-height: 46px; display: flex; align-items: center; justify-content: space-between; padding: 6px 8px 6px 13px; border-bottom: 1px solid var(--line); }
.announcement-inbox > header strong { font-size: 13px; }
.announcement-inbox > header .icon-button { width: 30px; height: 30px; font-size: 17px; }
.announcement-message { padding: 13px; border-bottom: 1px solid var(--line); background: var(--surface); }
.announcement-message:last-child { border-bottom: 0; }
.announcement-message header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.announcement-message strong { font-size: 12px; line-height: 1.45; }
.announcement-message small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; }
.announcement-message p { margin: 9px 0 11px; white-space: pre-wrap; color: var(--ink); font-size: 12px; line-height: 1.65; }
.announcement-message .table-action { color: var(--accent); }
.announcement-empty { padding: 32px 16px; color: var(--muted); font-size: 12px; text-align: center; }
.sync-state { color: var(--muted); font-size: 11px; }
.icon-button { width: 38px; height: 38px; border: 1px solid var(--line); border-radius: var(--radius); padding: 0; color: var(--ink); background: var(--surface-muted); font-size: 20px; }
#menu-button { display: none; }
.theme-picker { width: auto; margin: 0; padding: 5px 8px; display: flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink); background: var(--surface-muted); }
.theme-picker select { width: 86px; min-height: 24px; border: 0; padding: 1px 18px 1px 0; background: transparent; box-shadow: none; font-size: 11px; }
.theme-swatch { width: 17px; height: 17px; flex: 0 0 17px; border-radius: 50%; border: 1px solid var(--line-strong); background: var(--accent); box-shadow: inset 7px 0 0 var(--nav); }
.content { max-width: 1620px; margin: 0 auto; padding: 24px 26px 48px; }
.content:focus { outline: none; }
.section-head { margin-bottom: 16px; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.section-head h2 { margin: 0 0 5px; font-size: 17px; }
.section-head p { margin: 0; color: var(--muted); font-size: 12px; }
.actions, .row-actions { display: flex; flex-wrap: wrap; gap: 5px; }
.expiry-shortcuts { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.expiry-shortcuts .ghost { min-width: 58px; min-height: 32px; padding: 5px 9px; }
.buyin-error { display: inline-block; max-width: 230px; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
.financial-risk-detail { display: inline-block; max-width: 220px; overflow: hidden; color: var(--muted); line-height: 1.45; text-overflow: ellipsis; vertical-align: middle; white-space: nowrap; }

.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); margin-bottom: 22px; border: 1px solid var(--line); background: var(--surface); }
.metric { min-height: 106px; padding: 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.metric:nth-child(4n) { border-right: 0; }
.metric p, .console-stat p { margin: 0 0 12px; color: var(--muted); font-size: 11px; }
.metric strong { font-size: 23px; font-weight: 650; }
.metric small { display: block; margin-top: 8px; color: var(--muted); }
.panel { margin-top: 20px; }

.console-toolbar { display: flex; align-items: flex-end; gap: 8px; margin-bottom: 14px; padding: 12px; border: 1px solid var(--line); background: var(--surface); }
.console-toolbar label { width: 220px; margin: 0; }
.console-toolbar input { min-height: 36px; }
.console-refresh { margin-left: auto; padding-bottom: 9px; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }
.console-heading { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 18px; border: 1px solid var(--line); border-bottom: 0; background: var(--surface-raised); }
.console-heading h2 { display: inline; margin: 0 0 0 10px; font-size: 18px; }
.console-heading p { margin: 7px 0 0; color: var(--muted); font-size: 11px; }
.console-live { color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; font-weight: 800; }
.console-live i { display: inline-block; width: 6px; height: 6px; margin-right: 5px; border-radius: 50%; background: var(--success); box-shadow: 0 0 9px var(--success); }
.console-actions { display: flex; align-items: center; gap: 20px; }
.console-actions > div { min-width: 80px; }
.console-actions small, .console-balance small { display: block; margin-bottom: 3px; color: var(--muted); font-size: 10px; }
.console-actions strong { font-size: 20px; }
.console-balance { text-align: right; }
.console-balance strong { color: var(--accent); font-size: 24px; }
.proxy-wallet { display: flex; align-items: center; justify-content: flex-end; gap: 14px; min-width: 272px; padding: 8px 0 8px 16px; border-left: 1px solid var(--line); }
.proxy-wallet small { display: block; margin-bottom: 3px; color: var(--muted); font-size: 10px; }
.proxy-wallet strong { display: block; color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 20px; line-height: 1.15; }
.proxy-wallet span { display: block; max-width: 180px; margin-top: 5px; color: var(--muted); font-size: 10px; line-height: 1.3; }
.proxy-withdraw-button { min-width: 82px; min-height: 36px; }
.proxy-withdrawal-panel { margin-top: 20px; }
.console-metrics { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); border: 1px solid var(--line); background: var(--surface); }
.console-stat { position: relative; min-height: 98px; padding: 17px 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; }
.console-stat:nth-child(4n) { border-right: 0; }
.console-stat strong { position: relative; z-index: 1; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 21px; font-weight: 650; }
.console-stat strong.negative { color: var(--danger); }
.console-stat span { position: absolute; right: 12px; bottom: 12px; width: 24px; height: 2px; background: var(--accent); opacity: .55; }

/* 实时控制台按查询、运行状态和经营分组组织，保持高密度运营视图。 */
.operations-console { display: grid; gap: 12px; }
.operations-filter { margin: 0; align-items: center; padding: 11px 13px; background: var(--surface-raised); }
.console-filter-fields { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(190px, 230px)); gap: 8px; }
.operations-filter .console-filter-fields label { width: auto; margin: 0; color: var(--muted); font-size: 10px; }
.operations-filter .console-filter-fields input { min-height: 36px; color: var(--ink); font-size: 11px; }
.console-toolbar-buttons { display: flex; align-self: flex-end; gap: 7px; }
.console-toolbar-buttons button { min-height: 36px; white-space: nowrap; }
.console-refresh-info { min-width: 188px; margin-left: auto; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 12px; padding-left: 16px; border-left: 1px solid var(--line); }
.console-refresh-info > span { color: var(--muted); font-size: 10px; font-weight: 700; }
.console-refresh-info > span i { width: 6px; height: 6px; margin-right: 5px; display: inline-block; border-radius: 50%; background: var(--success); box-shadow: 0 0 8px color-mix(in srgb, var(--success) 65%, transparent); }
.console-refresh-info strong { color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 15px; text-align: right; }
.console-refresh-info small { grid-column: 1 / -1; color: var(--muted); font-size: 9px; white-space: nowrap; }
.console-status-band { min-height: 102px; display: grid; grid-template-columns: minmax(240px, 1.2fr) minmax(390px, 1.4fr) auto; align-items: center; gap: 20px; padding: 16px 18px; border: 1px solid var(--line); background: var(--surface); }
.console-range-copy h2 { display: inline; margin: 0 0 0 9px; font-size: 17px; }
.console-range-copy p { margin: 8px 0 0; color: var(--muted); font-size: 10px; }
.console-runtime-stats { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(130px, 1fr)); border-left: 1px solid var(--line); }
.console-runtime-stats > div { min-width: 0; padding: 4px 16px; border-right: 1px solid var(--line); }
.console-runtime-stats small { display: block; margin-bottom: 7px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.console-runtime-stats strong { color: var(--ink); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 22px; }
.console-runtime-stats span { margin-left: 5px; color: var(--muted); font-size: 9px; }
.console-sync-button { min-height: 40px; white-space: nowrap; }
.console-metric-groups { border: 1px solid var(--line); background: var(--surface); }
.console-metric-group { display: grid; grid-template-columns: 176px minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.console-metric-group:last-child { border-bottom: 0; }
.console-metric-group > header { padding: 17px 16px; border-right: 1px solid var(--line); background: var(--surface-raised); }
.console-metric-group > header > div { display: flex; align-items: center; gap: 9px; }
.console-metric-group > header span { color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; font-weight: 800; }
.console-metric-group > header h3 { margin: 0; font-size: 13px; }
.console-metric-group > header p { margin: 9px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.console-metric-group .console-metrics { grid-template-columns: repeat(5, minmax(118px, 1fr)); border: 0; }
.console-metric-group .console-stat { min-height: 104px; padding: 16px; border-bottom: 0; }
.console-metric-group .console-stat:last-child { border-right: 0; }
.console-metric-group .console-stat:nth-child(4n) { border-right: 1px solid var(--line); }
.console-metric-group .console-stat:nth-child(5n) { border-right: 0; }
.console-metric-group .console-metrics.six-columns { grid-template-columns: repeat(6, minmax(118px, 1fr)); }
.console-metric-group .console-metrics.six-columns .console-stat:nth-child(5n) { border-right: 1px solid var(--line); }
.console-metric-group .console-metrics.six-columns .console-stat:nth-child(6n) { border-right: 0; }
.console-metric-group .console-stat p { margin-bottom: 10px; }
.console-metric-group .console-stat strong { display: block; overflow: hidden; font-size: 18px; text-overflow: ellipsis; white-space: nowrap; }
.console-metric-group .console-stat small { position: relative; z-index: 1; display: block; margin-top: 7px; overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.console-metric-group .console-stat.unavailable strong { color: var(--muted); font-family: inherit; font-size: 15px; }
.console-metric-group .console-stat.unavailable span { background: var(--line-strong); }
.console-metric-group[data-tone="game"] > header span { color: var(--success); }
.console-metric-group[data-tone="game"] .console-stat span { background: var(--success); }
.console-metric-group[data-tone="income"] > header span { color: var(--hot); }
.console-metric-group[data-tone="income"] .console-stat span { background: var(--hot); }

/* 牌局项目栏采用一局一行的横向信息条，便于快速扫描和对比。 */
.console-projects { border: 1px solid var(--line); background: var(--surface); }
.console-projects-head { min-height: 68px; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); background: var(--surface-raised); }
.console-projects-head > div:first-child { display: flex; align-items: center; gap: 10px; }
.console-section-index { color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 9px; font-weight: 800; }
.console-projects-head h3 { margin: 0; font-size: 14px; }
.console-projects-head p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.console-project-tabs { display: flex; border: 1px solid var(--line-strong); background: var(--surface-muted); }
.console-project-tab { min-height: 32px; padding: 0 13px; border: 0; border-right: 1px solid var(--line-strong); color: var(--muted); background: transparent; font-size: 11px; font-weight: 700; white-space: nowrap; }
.console-project-tab:last-child { border-right: 0; }
.console-project-tab b { margin-left: 5px; color: inherit; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.console-project-tab.active { color: var(--accent-contrast); background: var(--accent); }
.console-project-grid { display: grid; padding: 0; }
.console-project-card { min-width: 0; min-height: 132px; padding: 0; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); align-items: stretch; gap: 0; border-bottom: 1px solid var(--line); border-left: 3px solid var(--line-strong); background: var(--surface-muted); }
.console-project-card:last-child { border-bottom: 0; }
.console-project-card.is-live { border-left-color: var(--success); }
.console-project-card.is-ended { border-left-color: var(--line-strong); }
.console-project-summary { min-width: 0; padding: 14px; display: grid; grid-template-columns: minmax(112px, .8fr) minmax(0, 1.2fr); align-items: center; gap: 12px 14px; }
.console-project-card-head, .console-project-name { min-width: 0; }
.console-project-state { display: block; margin-bottom: 6px; color: var(--success); font-size: 9px; font-weight: 800; }
.console-project-card.is-ended .console-project-state { color: var(--muted); }
.console-project-card-head strong { display: block; overflow: hidden; color: var(--ink); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.console-project-card h4 { display: -webkit-box; margin: 0; overflow: hidden; color: var(--ink); font-size: 12px; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.console-project-name small { display: -webkit-box; margin-top: 6px; overflow: hidden; color: var(--muted); font-size: 9px; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.console-project-tags { min-width: 0; display: flex; flex-wrap: wrap; gap: 5px; grid-column: 1 / -1; }
.console-project-tags span { padding: 5px 7px; border: 1px solid var(--line); color: var(--muted); font-size: 9px; white-space: nowrap; }
.console-project-facts { min-width: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; grid-column: 1 / -1; }
.console-project-facts div { min-width: 0; }
.console-project-facts dt { color: var(--muted); font-size: 9px; }
.console-project-facts dd { margin: 4px 0 0; overflow-wrap: anywhere; color: var(--ink); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; line-height: 1.35; }
.console-room-countdown { color: var(--success) !important; font-size: 14px !important; font-weight: 800; }
.console-project-chat { min-width: 0; border-left: 1px solid var(--line); background: var(--surface); }
.console-project-chat > header { min-width: 0; min-height: 42px; padding: 9px 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line); background: var(--surface-raised); }
.console-project-chat > header > div { display: flex; align-items: center; gap: 7px; min-width: 0; }
.console-project-chat > header strong { overflow: hidden; color: var(--ink); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.console-project-chat > header small { margin-left: 2px; color: var(--success); font-size: 8px; }
.console-chat-count { flex: 0 0 auto; color: var(--muted); font: 700 9px ui-monospace, SFMono-Regular, Menlo, monospace; }
.console-chat-pulse { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 3px color-mix(in srgb, var(--success) 16%, transparent); }
.console-project-chat ol { height: 108px; margin: 0; padding: 4px 0; overflow: auto; list-style: none; overscroll-behavior: contain; }
.console-chat-message { min-width: 0; display: flex; align-items: flex-start; gap: 8px; padding: 6px 12px; border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent); }
.console-chat-message:last-child { border-bottom: 0; }
.console-chat-avatar { width: 22px; height: 22px; flex: 0 0 22px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--accent); background: var(--accent-soft); font-size: 9px; font-weight: 800; }
.console-chat-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.console-chat-message-body { min-width: 0; flex: 1; }
.console-chat-meta { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.console-chat-meta strong { overflow: hidden; color: var(--ink); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.console-chat-meta time { flex: 0 0 auto; color: var(--muted); font-size: 8px; }
.console-chat-message p { margin: 3px 0 0; overflow-wrap: anywhere; color: var(--muted); font-size: 10px; line-height: 1.4; }
.console-project-chat .console-project-chat-empty { min-height: 92px; display: flex; align-items: center; justify-content: center; gap: 6px; color: var(--muted); font-size: 10px; }
.console-project-chat-empty span { color: var(--success); font-size: 13px; }
.console-project-chat-ended { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-left: 1px solid var(--line); background: var(--surface); }
.console-project-chat-ended > div { min-width: 0; display: flex; align-items: center; gap: 9px; }
.console-chat-archive-icon { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid var(--line-strong); color: var(--accent); background: var(--accent-soft); font-size: 14px; }
.console-project-chat-ended strong, .console-project-chat-ended small { display: block; }
.console-project-chat-ended strong { color: var(--ink); font-size: 11px; }
.console-project-chat-ended small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.console-project-chat-ended .table-action { flex: 0 0 auto; min-height: 31px; color: var(--accent); border-color: var(--line-strong); }
.console-chat-history-head { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border: 1px solid var(--line); background: var(--surface-muted); }
.console-chat-history-head strong, .console-chat-history-head small, .console-chat-history-state { display: block; }
.console-chat-history-head strong { color: var(--ink); font-size: 13px; }
.console-chat-history-head small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.console-chat-history-state { margin-bottom: 4px; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .04em; }
.console-chat-history-progress { min-height: 46px; padding: 7px 10px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-right: 1px solid var(--line); border-left: 1px solid var(--line); background: var(--surface-raised); }
.console-chat-history-progress small, .console-chat-history-progress span { color: var(--muted); font-size: 9px; }
.console-chat-history-progress button { min-height: 30px; padding: 6px 10px; font-size: 10px; }
.console-chat-history-list { max-height: min(56vh, 520px); margin: 0; padding: 7px 0; overflow: auto; border: 1px solid var(--line); border-top: 0; list-style: none; background: var(--surface); }
.console-chat-history-list .console-chat-message { padding: 10px 14px; }
.console-chat-history-list .console-chat-avatar { width: 28px; height: 28px; flex-basis: 28px; font-size: 10px; }
.console-chat-history-list .console-chat-message p { font-size: 11px; line-height: 1.5; }
.console-chat-history-list .console-project-chat-empty { min-height: 150px; }

/* 统一保护横条中的动态文本，字段变长时换行而不是覆盖相邻内容。 */
.console-project-card, .console-project-summary, .console-project-chat, .console-project-chat-ended { overflow: hidden; }
.console-project-tags span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.console-project-empty { min-height: 116px; padding: 24px 16px; display: grid; place-content: center; gap: 6px; color: var(--muted); text-align: center; }
.console-project-empty strong { color: var(--ink); font-size: 12px; }
.console-project-empty small { font-size: 10px; }

.table-wrap { width: 100%; max-height: calc(100vh - 220px); overflow: auto; border: 1px solid var(--line); background: var(--surface); }
table { width: 100%; min-width: 760px; border-collapse: collapse; }
th, td { padding: 10px 12px; border-bottom: 1px solid var(--line); color: var(--ink); text-align: left; white-space: nowrap; font-size: 12px; }
th { position: sticky; top: 0; z-index: 1; color: var(--muted); background: var(--surface-raised); font-size: 10px; text-transform: uppercase; }
th:last-child { right: 0; z-index: 3; box-shadow: -1px 0 0 var(--line); }
td:last-child { position: sticky; right: 0; z-index: 2; background: var(--surface); box-shadow: -1px 0 0 var(--line); }
tbody tr:nth-child(even), tbody tr:nth-child(even) td:last-child { background: var(--surface-muted); }
tbody tr:hover, tbody tr:hover td:last-child { background: var(--accent-soft); }
.empty { padding: 44px !important; color: var(--muted); text-align: center; }
.badge { min-height: 23px; display: inline-flex; align-items: center; border: 1px solid var(--line-strong); border-radius: 2px; padding: 2px 7px; color: var(--accent); background: var(--accent-soft); font-size: 10px; font-weight: 700; }
.badge.warn { color: var(--warn); background: var(--warn-soft); border-color: var(--warn); }
.badge.off { color: var(--danger); background: var(--danger-soft); border-color: var(--danger); }
.table-action { min-height: 29px; padding: 4px 9px; color: var(--ink); background: var(--surface-raised); border-color: var(--line); font-size: 11px; }
.table-action:hover { color: var(--accent); border-color: var(--accent); }
.table-action.danger-text { color: var(--danger); }
#member-table .table-wrap { max-height: calc(100vh - 304px); }
#member-table table { min-width: 1500px; }
#member-table th, #member-table td { padding: 7px 9px; }
#member-table td { height: 47px; }
#member-table th:first-child, #member-table td:first-child { width: 38px; padding-inline: 10px 5px; text-align: center; }
#member-table th:last-child { right: auto; box-shadow: none; }
#member-table td:last-child { position: static; box-shadow: none; }
#member-table td:last-child { min-width: 229px; }
#member-table .avatar { width: 30px; height: 30px; flex-basis: 30px; }
#member-table small { font-size: 9px; }
.member-checkbox { width: 15px; height: 15px; min-height: 0; margin: 0; padding: 0; accent-color: var(--accent); cursor: pointer; }
.member-balance-copy { position: relative; min-width: 112px; display: grid; gap: 3px; border: 1px solid transparent; border-radius: 3px; padding: 4px 28px 4px 6px; color: var(--ink); background: transparent; text-align: left; }
.member-balance-copy strong, .member-balance-copy small { display: block; }
.member-balance-copy small { color: var(--muted); }
.member-balance-copy span { position: absolute; top: 50%; right: 5px; padding-left: 5px; border-left: 1px solid var(--line); color: var(--accent); font-size: 8px; font-weight: 800; transform: translateY(-50%); opacity: .72; }
.member-balance-copy:hover { border-color: var(--accent); background: var(--accent-soft); }
.member-balance-copy:hover span { opacity: 1; }
.member-balance-actions { flex-wrap: wrap; justify-content: flex-end; }
.member-balance-actions > span { min-width: 58px; color: var(--muted); font-size: 10px; text-align: right; }
.member-balance-actions button { min-height: 34px; padding-block: 6px; }
.member-action-grid { width: 204px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.member-action-grid.proxy-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); width: 204px; }
.member-action { min-width: 0; min-height: 25px; padding: 3px 4px; border: 1px solid var(--line-strong); border-radius: 3px; color: var(--accent); background: var(--surface-raised); font-size: 10px; font-weight: 700; line-height: 1; white-space: nowrap; }
.member-action:hover { border-color: var(--accent); background: var(--accent-soft); }
.member-action.income { color: var(--success); border-color: color-mix(in srgb, var(--success) 55%, var(--line)); background: var(--success-soft); }
.member-action.withdraw { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 55%, var(--line)); background: var(--danger-soft); }
.member-action.more { color: var(--muted); }
.member-action.details { color: var(--ink); border-color: var(--accent); background: var(--accent-soft); }
.toolbar { margin-bottom: 11px; display: flex; align-items: center; gap: 8px; }
.toolbar input { width: min(360px, 100%); }
.member-filters { margin-bottom: 12px; display: grid; grid-template-columns: minmax(260px, 2fr) repeat(3, minmax(140px, 1fr)) auto; align-items: end; gap: 8px; }
.member-filters label { margin: 0; }
.member-filters button { min-height: 38px; }
.notice { margin-bottom: 16px; padding: 12px 14px; border: 1px solid var(--line); border-left: 3px solid var(--accent); color: var(--notice-ink); background: var(--notice-bg); font-size: 12px; }
.announcement-content { max-height: 46vh; overflow: auto; margin: 0; white-space: pre-wrap; color: var(--ink); font-size: 14px; line-height: 1.75; }
.announcement-meta { margin: 0 0 12px; color: var(--muted); font-size: 11px; }
.detail-band { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-bottom: 20px; border: 1px solid var(--line); background: var(--line); }
.detail-band > div { padding: 15px; background: var(--surface); }
.detail-band small, .summary-item small { display: block; margin-bottom: 6px; color: var(--muted); }
.detail-band strong { font-size: 15px; }
.member-name { display: grid; grid-template-columns: 32px 1fr; align-items: center; gap: 8px; }
.avatar { position: relative; width: 36px; height: 36px; display: grid; flex: 0 0 36px; place-items: center; overflow: hidden; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--accent); background: var(--accent-soft); font-weight: 750; }
.avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: var(--surface); }
.sub-account { color: var(--muted); font-size: 10px; }
.member-modal-profile { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border: 1px solid var(--line); background: var(--surface-muted); }
.member-modal-profile small { display: block; margin-top: 4px; color: var(--muted); }
.fund-tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); border: 1px solid var(--line-strong); background: var(--surface-muted); }
.fund-tab { min-height: 40px; padding: 8px 10px; border: 0; border-right: 1px solid var(--line); color: var(--muted); background: transparent; font-size: 12px; font-weight: 700; }
.fund-tab:last-child { border-right: 0; }
.fund-tab:hover { color: var(--accent); background: var(--accent-soft); }
.fund-tab.active { color: var(--accent-contrast); background: var(--accent); }
.fund-tab.income.active { color: #07150d; background: var(--success); }
.fund-tab.withdraw.active { color: #24080c; background: var(--danger); }
.fund-status { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.fund-status > div { min-height: 58px; padding: 9px 10px; border: 1px solid var(--line); background: var(--surface-muted); }
.fund-status small { display: block; margin-bottom: 6px; color: var(--muted); font-size: 10px; }
.fund-status strong { color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.fund-status .fund-buyin { border-color: color-mix(in srgb, var(--success) 50%, var(--line)); background: var(--success-soft); }
.fund-status .fund-buyin strong { color: var(--success); }
.amount-input { min-height: 46px; display: flex; align-items: center; gap: 9px; padding: 0 12px; border: 1px solid var(--input-border); border-radius: var(--radius); background: var(--surface-muted); }
.amount-input:focus-within { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-soft); }
.amount-input span { color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 17px; font-weight: 800; }
.amount-input input { min-height: 40px; flex: 1; padding: 0; border: 0; background: transparent; box-shadow: none; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 17px; font-weight: 700; }
.amount-input input:focus { outline: none; }
.quick-amounts { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.quick-amounts > span { margin-right: 3px; color: var(--muted); font-size: 11px; font-weight: 700; }
.quick-amount { min-width: 54px; min-height: 28px; padding: 3px 8px; border: 1px solid var(--line-strong); border-radius: 3px; color: var(--accent); background: var(--surface-muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; }
.quick-amount:hover { border-color: var(--accent); color: var(--accent-contrast); background: var(--accent); }
.fund-preview { min-height: 36px; padding: 9px 11px; border-left: 2px solid var(--accent); color: var(--notice-ink); background: var(--notice-bg); font-size: 12px; }
.summary-strip { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 8px; margin: 11px 0 16px; }
.summary-item { padding: 12px 14px; border: 1px solid var(--line); background: var(--surface); }
.summary-item strong { color: var(--accent); font-size: 17px; }
.member-detail-profile { display: flex; align-items: center; gap: 11px; padding: 11px 13px; border: 1px solid var(--line); background: var(--surface-muted); }
.member-detail-profile small { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; }
.member-history-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); background: var(--surface); }
.member-history-summary > div { min-width: 0; padding: 12px 14px; border-right: 1px solid var(--line); }
.member-history-summary > div:last-child { border-right: 0; }
.member-history-summary small { display: block; margin-bottom: 7px; color: var(--muted); font-size: 10px; }
.member-history-summary strong { display: block; overflow: hidden; color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
.agent-detail-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.member-history-table .table-wrap { max-height: min(430px, calc(100vh - 360px)); }
.member-history-table table { min-width: 1080px; }
.member-history-pages { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.member-history-pages span { color: var(--muted); font-size: 11px; }
.agent-detail-section { margin-top: 18px; }

/* 开房设置采用整页工作台，结构参考演示系统但沿用当前主题变量。 */
.room-workbench { border: 1px solid var(--line); background: var(--surface); }
.workbench-head { min-height: 88px; padding: 18px 22px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); background: var(--surface-raised); }
.workbench-head h2 { margin: 0 0 6px; font-size: 20px; }
.workbench-head p { margin: 0; color: var(--muted); font-size: 11px; }
.workbench-head .eyebrow { margin-bottom: 5px; color: var(--accent); }
.workbench-section { padding: 22px; border-bottom: 1px solid var(--line); }
.workbench-section h3 { margin: 0 0 20px; display: flex; align-items: center; gap: 10px; color: var(--ink); font-size: 14px; }
.workbench-section h3::before { content: ""; width: 24px; height: 1px; background: var(--accent); }
.section-title-row { margin-bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.section-title-row h3 { margin-bottom: 0; }
.template-count { color: var(--muted); font-size: 11px; }
.template-control-section { padding-block: 18px; background: var(--surface-muted); }
.template-control-grid { display: grid; grid-template-columns: minmax(300px, 1.5fr) minmax(220px, 1fr) minmax(220px, 1fr); align-items: end; gap: 14px; }
.template-control-grid label { margin: 0; }
.template-picker select { font-weight: 700; }
.settings-grid { display: grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: 16px 24px; }
.settings-grid.compact-grid { grid-template-columns: repeat(3, minmax(190px, 1fr)); align-items: end; }
.settings-grid label, .field-group { margin: 0; }
.wide-field { grid-column: span 2; }
.field-group { display: grid; gap: 7px; color: var(--ink); font-size: 12px; font-weight: 650; }
.segmented { width: max-content; max-width: 100%; display: inline-grid; grid-auto-flow: column; border: 1px solid var(--line-strong); background: var(--surface-muted); }
.segmented label { margin: 0; display: block; }
.segmented input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; pointer-events: none; }
.segmented span { min-width: 86px; min-height: 40px; padding: 8px 17px; display: grid; place-items: center; border-right: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.segmented label:last-child span { border-right: 0; }
.segmented input:checked + span { color: var(--accent-contrast); background: var(--accent); font-weight: 750; }
.segmented input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.segmented.compact-segments { width: 100%; grid-auto-flow: column; grid-template-columns: repeat(8, minmax(48px, 1fr)); }
.segmented.compact-segments span { min-width: 0; padding-inline: 8px; }
.switch-grid { display: grid; grid-template-columns: repeat(3, minmax(190px, 1fr)); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.setting-switch { min-height: 54px; margin: 0; padding: 11px 14px; display: flex; grid-template-columns: none; align-items: center; justify-content: space-between; gap: 14px; background: var(--surface-muted); font-weight: 600; }
.setting-switch input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; pointer-events: none; }
.setting-switch i { position: relative; width: 40px; height: 22px; flex: 0 0 40px; border: 1px solid var(--line-strong); border-radius: 12px; background: #444750; transition: .16s ease; }
.setting-switch i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: #f7f7f4; transition: .16s ease; }
.setting-switch input:checked + i { border-color: var(--accent); background: var(--accent); }
.setting-switch input:checked + i::after { left: 21px; background: var(--accent-contrast); }
.setting-switch input:focus-visible + i { outline: 2px solid var(--accent); outline-offset: 2px; }
.setting-switch input:disabled + i { opacity: .45; }
.greeting-visibility { min-height: 72px; padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid var(--line); background: var(--surface-muted); }
.greeting-visibility > div { min-width: 0; display: grid; gap: 3px; }
.greeting-visibility span { color: var(--accent); font-size: 10px; font-weight: 750; }
.greeting-visibility strong { color: var(--ink); font-size: 13px; }
.greeting-visibility small { color: var(--muted); font-size: 10px; font-weight: 500; line-height: 1.35; }
.greeting-toggle { margin: 0; display: inline-flex; align-items: center; justify-content: flex-end; gap: 9px; color: var(--muted); cursor: pointer; user-select: none; }
.greeting-toggle input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; pointer-events: none; }
.greeting-toggle i { position: relative; width: 42px; height: 24px; flex: 0 0 42px; border: 1px solid var(--line-strong); border-radius: 5px; background: #3c4049; transition: background .16s ease, border-color .16s ease; }
.greeting-toggle i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 3px; background: #f2f2ed; box-shadow: 0 1px 2px rgb(0 0 0 / 28%); transition: transform .16s ease, background .16s ease; }
.greeting-toggle b { min-width: 38px; color: var(--muted); font-size: 10px; text-align: right; }
.greeting-toggle input:checked + i { border-color: var(--accent); background: var(--accent); }
.greeting-toggle input:checked + i::after { transform: translateX(18px); background: var(--accent-contrast); }
.greeting-toggle input:checked ~ b { color: var(--accent); }
.greeting-toggle input:focus-visible + i { outline: 2px solid var(--accent); outline-offset: 2px; }
.greeting-toggle input:disabled + i { opacity: .45; }
.setting-readout { min-height: 54px; padding: 10px 12px; display: grid; gap: 6px; border: 1px solid var(--line); background: var(--surface-muted); }
.setting-readout span { color: var(--muted); font-size: 10px; }
.setting-readout strong { color: var(--accent); font-size: 12px; }
.auto-open-section { padding-block: 18px; }
.auto-open-layout { display: grid; grid-template-columns: minmax(230px, .7fr) minmax(0, 2.3fr); gap: 12px; }
.auto-open-toggle { min-width: 0; border: 1px solid var(--line-strong); background: var(--surface-muted); }
.auto-open-toggle .setting-switch { border-bottom: 1px solid var(--line); background: transparent; }
.auto-open-toggle p { min-height: 38px; margin: 0; padding: 9px 14px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.auto-open-facts { min-width: 0; display: grid; grid-template-columns: minmax(112px, .7fr) minmax(130px, .8fr) minmax(160px, 1fr) minmax(240px, 1.8fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.auto-open-facts .setting-readout { min-width: 0; border: 0; }
.result-readout strong { overflow: hidden; color: var(--ink); text-overflow: ellipsis; white-space: nowrap; }
.auto-state-badge { padding: 5px 8px; border: 1px solid var(--line-strong); color: var(--muted); background: var(--surface-muted); font-size: 10px; font-weight: 750; }
.auto-state-badge[data-state="ACTIVE"], .auto-state-badge[data-state="RUNNING"] { border-color: var(--success); color: var(--success); }
.auto-state-badge[data-state="RETRY_WAIT"], .auto-state-badge[data-state="FAILED"] { border-color: var(--danger); color: var(--danger); }
.fixed-rule { border-color: var(--line-strong); }
.fixed-rule strong { color: var(--success); }
.range-field { min-height: 86px; display: grid; gap: 9px; align-content: center; }
.range-field > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--ink); font-size: 12px; font-weight: 650; }
.range-field output { color: var(--accent); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.range-field input[type="range"] { min-height: 24px; padding: 0; border: 0; background: transparent; box-shadow: none; accent-color: var(--accent); }
.dual-range { position: relative; height: 26px; }
.dual-range::before { content: ""; position: absolute; top: 11px; left: 0; right: 0; height: 3px; background: var(--line-strong); }
.dual-range input[type="range"] { position: absolute; inset: 0; width: 100%; pointer-events: none; }
.dual-range input[type="range"]::-webkit-slider-thumb { pointer-events: auto; }
.dual-range input[type="range"]::-moz-range-thumb { pointer-events: auto; }
.range-scale { display: flex; justify-content: space-between; color: var(--muted); font-size: 10px; }
.section-note { margin: 14px 0 0; color: var(--muted); font-size: 11px; }
.template-drawer { margin-top: 16px; border: 1px solid var(--line); }
.template-drawer p { margin: 0; padding: 16px; color: var(--muted); font-size: 12px; }
.template-row { width: 100%; min-height: 58px; padding: 10px 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: var(--surface-muted); text-align: left; }
.template-row:last-child { border-bottom: 0; }
.template-row:hover { background: var(--accent-soft); }
.template-row strong, .template-row small { display: block; }
.template-row small { margin-top: 5px; color: var(--muted); }
.template-run-state { min-width: 190px; margin-left: auto; text-align: right; }
.template-run-state b { color: var(--accent); font-size: 11px; font-weight: 700; }
.template-run-state em { display: block; max-width: 260px; margin-top: 4px; overflow: hidden; color: var(--danger); font-size: 10px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.workbench-actions { position: sticky; bottom: 0; z-index: 3; min-height: 70px; padding: 14px 22px; display: flex; align-items: center; justify-content: flex-end; gap: 8px; border-top: 1px solid var(--line-strong); background: rgba(17, 19, 24, .96); box-shadow: 0 -10px 28px var(--shadow); }
:root[data-theme="cyber"] .workbench-actions { background: rgba(10, 17, 32, .96); }
.workbench-actions .form-error { margin: 0 auto 0 0; }

dialog { width: min(610px, calc(100vw - 28px)); border: 1px solid var(--line-strong); border-radius: var(--radius); padding: 0; color: var(--ink); background: var(--surface); box-shadow: 0 26px 80px var(--shadow); }
dialog.wide-modal { width: min(1180px, calc(100vw - 28px)); }
dialog.fund-modal { width: min(640px, calc(100vw - 28px)); }
dialog::backdrop { background: rgba(0, 0, 0, .72); }
dialog form > header, dialog form > footer { display: flex; align-items: center; padding: 15px 18px; border-bottom: 1px solid var(--line); }
dialog form > header { background: var(--surface-raised); }
dialog form > header h2 { margin: 0; font-size: 17px; }
dialog form > header button { margin-left: auto; }
dialog form > footer { justify-content: flex-end; gap: 8px; border: 0; border-top: 1px solid var(--line); }
.modal-body { padding: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.modal-body label { margin: 0; }
.modal-body .full { grid-column: 1 / -1; }
.modal-body > * { min-width: 0; }
.modal-body .table-wrap { max-width: 100%; min-width: 0; }
.ranking-period { color: var(--muted); font-size: 11px; }
.ranking-summary { width: 100%; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.ranking-summary .summary-item { min-width: 0; }
.ranking-summary .summary-item { background: var(--surface-muted); }
.ranking-player { min-width: 150px; display: flex; align-items: center; gap: 9px; }
.ranking-player .avatar { width: 30px; height: 30px; flex-basis: 30px; font-size: 11px; }
.ranking-player strong, .ranking-player small { display: block; }
.ranking-player small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.positive { color: var(--success); }
.negative { color: var(--danger); }
#modal-error { padding: 0 18px; }
.toast { position: fixed; right: 20px; bottom: 20px; z-index: 10; max-width: 360px; border: 1px solid var(--line-strong); border-left: 3px solid var(--accent); border-radius: var(--radius); padding: 11px 15px; color: var(--ink); background: var(--surface-raised); box-shadow: 0 12px 36px var(--shadow); opacity: 0; transform: translateY(10px); pointer-events: none; transition: .18s ease; }
.toast.show { opacity: 1; transform: translateY(0); }

:root[data-theme="cyber"] .sidebar, :root[data-theme="cyber"] .topbar, :root[data-theme="cyber"] .console-heading { box-shadow: 0 0 18px var(--glow); }
:root[data-theme="cyber"] .nav-button.active { border-right: 1px solid var(--hot); }
:root[data-theme="cyber"] .console-stat:nth-child(3n) span { background: var(--hot); }
:root[data-theme="cyber"] .console-live { color: var(--hot); }

@media (max-width: 980px) {
  .metric-grid, .console-metrics { grid-template-columns: repeat(2, 1fr); }
  .metric:nth-child(2n), .console-stat:nth-child(2n) { border-right: 0; }
  .console-toolbar { flex-wrap: wrap; }
  .console-refresh { width: 100%; margin-left: 0; padding: 2px 0 0; }
  .detail-band { grid-template-columns: 1fr; }
  .settings-grid, .settings-grid.compact-grid, .switch-grid { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
  .template-control-grid { grid-template-columns: 1fr 1fr; }
  .template-picker { grid-column: 1 / -1; }
  .auto-open-layout { grid-template-columns: 1fr; }
  .auto-open-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .member-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .member-filters label:first-child { grid-column: 1 / -1; }
  .console-status-band { grid-template-columns: 1fr auto; }
  .console-runtime-stats { grid-row: 2; grid-column: 1 / -1; border-top: 1px solid var(--line); border-left: 0; padding-top: 12px; }
  .console-metric-group { grid-template-columns: 142px minmax(0, 1fr); }
  .console-metric-group .console-metrics { grid-template-columns: repeat(3, minmax(118px, 1fr)); }
  .console-metric-group .console-stat:nth-child(3n) { border-right: 0; }
  .console-metric-group .console-stat:nth-child(n + 4) { border-top: 1px solid var(--line); }
  .console-metric-group .console-metrics.six-columns { grid-template-columns: repeat(3, minmax(118px, 1fr)); }
  .console-project-card { grid-template-columns: minmax(0, 1.15fr) minmax(240px, .85fr); }
  .console-project-facts { padding-top: 10px; border-top: 1px solid var(--line); }
}

@media (max-width: 560px) {
  .greeting-visibility { align-items: flex-start; flex-direction: column; gap: 12px; }
  .greeting-toggle { width: 100%; justify-content: flex-start; }
  .greeting-toggle b { text-align: left; }
}

@media (max-width: 720px) {
  .login-shell { grid-template-columns: 1fr; }
  .login-brand { min-height: 205px; padding: 28px; justify-content: flex-start; }
  .login-brand::before { right: 24px; top: 40px; width: 100px; }
  .login-brand::after { display: none; }
  .login-brand h1 { font-size: 29px; }
  .system-state { margin-top: 8px; }
  .login-main { padding: 26px 19px 40px; }
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; z-index: 5; width: 232px; transform: translateX(-100%); transition: transform .18s ease; }
  .sidebar.open { transform: translateX(0); }
  #menu-button { display: block; }
  .topbar { padding: 9px 12px; gap: 9px; }
  .topbar-actions { gap: 6px; }
  .tenant-expiry { display: none; }
  .announcement-inbox { position: fixed; top: 62px; right: 12px; }
  .sync-state { display: none; }
  .theme-picker { padding: 4px 6px; }
  .theme-picker select { width: 86px; }
  .content { padding: 18px 12px 36px; }
  .section-head { align-items: flex-start; flex-direction: column; }
  .metric-grid, .console-metrics { grid-template-columns: 1fr 1fr; }
  .metric, .console-stat { min-height: 92px; padding: 14px; }
  .metric strong, .console-stat strong { font-size: 19px; }
  .console-toolbar { align-items: stretch; }
  .console-toolbar label { width: calc(50% - 4px); }
  .console-heading { align-items: flex-start; flex-direction: column; }
  .proxy-wallet { width: 100%; justify-content: space-between; padding: 12px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .console-actions { width: 100%; justify-content: space-between; gap: 10px; }
  .operations-filter { display: grid; grid-template-columns: 1fr auto; }
  .console-filter-fields { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .console-toolbar-buttons { align-self: center; }
  .console-refresh-info { min-width: 135px; margin-left: 0; padding-left: 10px; }
  .console-refresh-info small { overflow: hidden; text-overflow: ellipsis; }
  .console-status-band { grid-template-columns: 1fr auto; gap: 14px; padding: 14px; }
  .console-runtime-stats { gap: 0; }
  .console-runtime-stats > div { padding: 4px 10px; }
  .console-runtime-stats small { overflow: hidden; text-overflow: ellipsis; }
  .console-runtime-stats strong { font-size: 19px; }
  .console-metric-group { grid-template-columns: 1fr; }
  .console-metric-group > header { padding: 12px 14px; border-right: 0; border-bottom: 1px solid var(--line); }
  .console-metric-group > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .console-metric-group > header p { margin: 0; text-align: right; }
  .console-metric-group .console-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .console-metric-group .console-stat { min-height: 94px; padding: 14px; }
  .console-metric-group .console-stat:nth-child(3n) { border-right: 1px solid var(--line); }
  .console-metric-group .console-stat:nth-child(2n) { border-right: 0; }
  .console-metric-group .console-stat:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .console-metric-group .console-metrics.six-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .console-projects-head { align-items: flex-start; flex-direction: column; }
  .console-project-tabs { width: 100%; }
  .console-project-tab { flex: 1; }
  .console-project-card { grid-template-columns: 1fr; }
  .console-project-summary { padding: 12px; grid-template-columns: minmax(0, 1fr) auto; }
  .console-project-name { grid-column: 1 / -1; padding-top: 10px; border-top: 1px solid var(--line); }
  .console-project-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .console-project-chat, .console-project-chat-ended { border-top: 1px solid var(--line); border-left: 0; }
  .console-project-chat-ended { min-height: 70px; }
  .console-project-chat-ended > div { min-width: 0; }
  .console-project-chat-ended .table-action { padding-inline: 10px; }
  .summary-strip { grid-template-columns: repeat(2, 1fr); }
  .member-filters { grid-template-columns: 1fr; }
  .member-filters label:first-child { grid-column: auto; }
  .member-balance-actions { width: 100%; justify-content: flex-start; }
  .member-balance-actions > span { width: 100%; text-align: left; }
  .modal-body { grid-template-columns: 1fr; }
  .modal-body .full { grid-column: auto; }
  .fund-status { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .member-history-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .member-history-summary > div:nth-child(2n) { border-right: 0; }
  .member-history-summary > div:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .fund-tabs { grid-auto-flow: initial; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fund-tab:nth-child(2n) { border-right: 0; }
  .fund-tab:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .quick-amounts > span { width: 100%; }
  .workbench-head { align-items: flex-start; flex-direction: column; padding: 16px; }
  .workbench-section { padding: 18px 14px; }
  .settings-grid, .settings-grid.compact-grid, .switch-grid { grid-template-columns: 1fr; }
  .template-control-grid, .auto-open-facts { grid-template-columns: 1fr; }
  .template-picker { grid-column: auto; }
  .wide-field { grid-column: auto; }
  .segmented { width: 100%; grid-template-columns: repeat(3, 1fr); grid-auto-flow: row; }
  .segmented span { min-width: 0; padding-inline: 8px; }
  .segmented.compact-segments { grid-template-columns: repeat(4, 1fr); grid-auto-flow: row; }
  .workbench-actions { padding: 10px 12px; flex-wrap: wrap; }
  .workbench-actions .form-error { width: 100%; }
  .workbench-actions button { flex: 1 1 auto; }
  .template-row { align-items: flex-start; flex-wrap: wrap; }
  .template-run-state { width: 100%; min-width: 0; margin-left: 0; text-align: left; }
}

/* 粉紫玻璃主题：不改变业务结构，只重塑全局信息层级和交互表面。 */
:root[data-theme="petalglass"] {
  color-scheme: light;
  --ink: #382840;
  --muted: #796b82;
  --line: rgba(136, 91, 153, .18);
  --line-strong: rgba(128, 75, 147, .34);
  --surface: rgba(255, 255, 255, .52);
  --surface-muted: rgba(255, 251, 255, .64);
  --surface-raised: rgba(255, 255, 255, .78);
  --canvas: #f7f1fa;
  --login-bg: #f7f1fa;
  --nav: rgba(253, 247, 255, .68);
  --nav-muted: #766980;
  --nav-accent: #9c57bd;
  --accent: #9a51bd;
  --accent-dark: #813fa4;
  --accent-soft: rgba(180, 112, 203, .14);
  --accent-contrast: #fffaff;
  --hot: #de79ad;
  --input-border: rgba(141, 91, 159, .26);
  --success: #2b9b78;
  --success-soft: rgba(55, 163, 127, .12);
  --danger: #d85677;
  --danger-soft: rgba(216, 86, 119, .1);
  --warn: #b67824;
  --warn-soft: rgba(201, 146, 49, .12);
  --notice-bg: rgba(255, 247, 253, .7);
  --notice-ink: #705176;
  --shadow: rgba(107, 63, 126, .16);
  --glow: rgba(176, 104, 202, .2);
  --radius: 12px;
}

:root[data-theme="petalglass"] body {
  background: #f7f1fa;
}

:root[data-theme="petalglass"] .login-shell {
  min-height: 100vh;
  padding: 16px;
  gap: 16px;
  background: #f7f1fa;
}

:root[data-theme="petalglass"] .login-brand,
:root[data-theme="petalglass"] .login-form,
:root[data-theme="petalglass"] .sidebar,
:root[data-theme="petalglass"] .topbar,
:root[data-theme="petalglass"] .console-toolbar,
:root[data-theme="petalglass"] .console-heading,
:root[data-theme="petalglass"] .console-projects,
:root[data-theme="petalglass"] .table-wrap,
:root[data-theme="petalglass"] .room-workbench,
:root[data-theme="petalglass"] dialog {
  border-color: rgba(255, 255, 255, .82);
  box-shadow: 0 16px 38px var(--shadow), inset 0 1px 0 rgba(255, 255, 255, .78);
  backdrop-filter: blur(20px) saturate(1.12);
  -webkit-backdrop-filter: blur(20px) saturate(1.12);
}

:root[data-theme="petalglass"] .login-brand {
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 18px;
  color: var(--ink);
  background: rgba(250, 239, 250, .64);
}

:root[data-theme="petalglass"] .login-brand::before {
  top: 72px;
  background: var(--hot);
  box-shadow: 0 8px 0 rgba(154, 81, 189, .22), 0 16px 0 rgba(154, 81, 189, .1);
}

:root[data-theme="petalglass"] .login-brand::after { border-color: rgba(154, 81, 189, .24); }
:root[data-theme="petalglass"] .login-brand p,
:root[data-theme="petalglass"] .system-state { color: var(--nav-muted); }

:root[data-theme="petalglass"] .brand-mark {
  border-color: rgba(255, 255, 255, .92);
  color: #fff;
  background: #b462c7;
  box-shadow: 0 10px 24px rgba(175, 91, 192, .22), inset 0 1px 0 rgba(255, 255, 255, .45);
}

:root[data-theme="petalglass"] .login-main { padding: 34px; }
:root[data-theme="petalglass"] .login-form {
  padding: clamp(26px, 4vw, 42px);
  border: 1px solid rgba(255, 255, 255, .84);
  border-radius: 18px;
  background: rgba(255, 255, 255, .54);
}

:root[data-theme="petalglass"] input,
:root[data-theme="petalglass"] select,
:root[data-theme="petalglass"] textarea {
  border-color: rgba(158, 103, 175, .22);
  background: rgba(255, 255, 255, .62);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72);
}

:root[data-theme="petalglass"] input:hover,
:root[data-theme="petalglass"] select:hover,
:root[data-theme="petalglass"] textarea:hover { border-color: rgba(154, 81, 189, .48); }

:root[data-theme="petalglass"] input:focus,
:root[data-theme="petalglass"] select:focus,
:root[data-theme="petalglass"] textarea:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(180, 104, 202, .14), inset 0 1px 0 rgba(255, 255, 255, .88);
}

:root[data-theme="petalglass"] .primary {
  border-color: #a858c4;
  color: #fff;
  background: #a858c4;
  box-shadow: 0 7px 16px rgba(168, 88, 196, .19), inset 0 1px 0 rgba(255, 255, 255, .28);
}

:root[data-theme="petalglass"] .primary:hover { border-color: var(--hot); background: var(--hot); }
:root[data-theme="petalglass"] .ghost,
:root[data-theme="petalglass"] .icon-button,
:root[data-theme="petalglass"] .theme-picker,
:root[data-theme="petalglass"] .table-action {
  border-color: rgba(139, 91, 157, .18);
  background: rgba(255, 255, 255, .48);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .68);
}

:root[data-theme="petalglass"] .ghost:hover,
:root[data-theme="petalglass"] .icon-button:hover,
:root[data-theme="petalglass"] .table-action:hover {
  color: var(--accent-dark);
  border-color: rgba(154, 81, 189, .48);
  background: rgba(255, 255, 255, .76);
}

:root[data-theme="petalglass"] .app-shell { grid-template-columns: 248px minmax(0, 1fr); }
:root[data-theme="petalglass"] .workspace { padding-top: 12px; }
:root[data-theme="petalglass"] .sidebar {
  top: 12px;
  height: calc(100vh - 24px);
  margin: 12px 0 12px 12px;
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 16px;
  background: rgba(253, 247, 255, .68);
}

:root[data-theme="petalglass"] .sidebar-brand { border-bottom-color: var(--line); }
:root[data-theme="petalglass"] #nav { padding: 14px 11px; gap: 5px; }
:root[data-theme="petalglass"] .nav-button { border-radius: 9px; }
:root[data-theme="petalglass"] .nav-button:hover { color: var(--ink); background: rgba(255, 255, 255, .5); }
:root[data-theme="petalglass"] .nav-button.active {
  color: #7c3d9b;
  background: rgba(255, 255, 255, .72);
  box-shadow: inset 3px 0 0 var(--accent), 0 6px 15px rgba(128, 70, 151, .08);
}

:root[data-theme="petalglass"] .topbar {
  position: sticky;
  z-index: 4;
  top: 12px;
  min-height: 64px;
  margin: 0 12px 0 0;
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 16px;
  background: rgba(255, 255, 255, .58);
}

:root[data-theme="petalglass"] .content { padding-top: 22px; }
:root[data-theme="petalglass"] .tenant-expiry,
:root[data-theme="petalglass"] .notice,
:root[data-theme="petalglass"] .fund-preview {
  border-color: rgba(176, 105, 197, .2);
  border-left-color: var(--accent);
  background: rgba(255, 250, 255, .58);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .68);
}

:root[data-theme="petalglass"] .metric-grid,
:root[data-theme="petalglass"] .console-metrics,
:root[data-theme="petalglass"] .detail-band,
:root[data-theme="petalglass"] .member-history-summary,
:root[data-theme="petalglass"] .switch-grid,
:root[data-theme="petalglass"] .auto-open-facts {
  border-color: rgba(144, 93, 162, .17);
  border-radius: 14px;
  background: rgba(255, 255, 255, .42);
  box-shadow: 0 12px 26px rgba(108, 68, 124, .06), inset 0 1px 0 rgba(255, 255, 255, .66);
  overflow: hidden;
}

:root[data-theme="petalglass"] .metric,
:root[data-theme="petalglass"] .console-stat,
:root[data-theme="petalglass"] .detail-band > div,
:root[data-theme="petalglass"] .member-history-summary > div,
:root[data-theme="petalglass"] .setting-switch,
:root[data-theme="petalglass"] .auto-open-facts .setting-readout {
  background: rgba(255, 255, 255, .33);
}

:root[data-theme="petalglass"] .console-toolbar,
:root[data-theme="petalglass"] .console-heading,
:root[data-theme="petalglass"] .console-projects,
:root[data-theme="petalglass"] .room-workbench,
:root[data-theme="petalglass"] .table-wrap {
  border-radius: 14px;
  background: rgba(255, 255, 255, .48);
  overflow: hidden;
}

:root[data-theme="petalglass"] .console-heading,
:root[data-theme="petalglass"] .console-projects-head,
:root[data-theme="petalglass"] .workbench-head,
:root[data-theme="petalglass"] dialog form > header {
  background: rgba(255, 255, 255, .52);
}

:root[data-theme="petalglass"] .console-project-card,
:root[data-theme="petalglass"] .console-project-chat,
:root[data-theme="petalglass"] .console-project-chat-ended,
:root[data-theme="petalglass"] .template-row,
:root[data-theme="petalglass"] .template-control-section,
:root[data-theme="petalglass"] .setting-readout,
:root[data-theme="petalglass"] .auto-open-toggle,
:root[data-theme="petalglass"] .greeting-visibility,
:root[data-theme="petalglass"] .member-modal-profile,
:root[data-theme="petalglass"] .member-detail-profile,
:root[data-theme="petalglass"] .fund-status > div {
  background: rgba(255, 255, 255, .37);
}

:root[data-theme="petalglass"] .console-project-card:hover,
:root[data-theme="petalglass"] .template-row:hover { background: rgba(255, 255, 255, .62); }

:root[data-theme="petalglass"] .console-project-tabs,
:root[data-theme="petalglass"] .segmented,
:root[data-theme="petalglass"] .fund-tabs {
  border-radius: 10px;
  background: rgba(255, 255, 255, .4);
  overflow: hidden;
}

:root[data-theme="petalglass"] .badge,
:root[data-theme="petalglass"] .auto-state-badge {
  border-radius: 999px;
  background: rgba(255, 255, 255, .52);
}

:root[data-theme="petalglass"] .workbench-actions {
  border-top-color: rgba(144, 93, 162, .2);
  background: rgba(255, 249, 255, .86);
  box-shadow: 0 -12px 28px rgba(116, 75, 131, .09);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

:root[data-theme="petalglass"] dialog {
  border-color: rgba(255, 255, 255, .86);
  background: rgba(255, 250, 255, .86);
}

:root[data-theme="petalglass"] dialog::backdrop { background: rgba(82, 44, 91, .2); backdrop-filter: blur(4px); }
:root[data-theme="petalglass"] .toast {
  border-left-color: var(--accent);
  border-color: rgba(255, 255, 255, .82);
  background: rgba(255, 250, 255, .86);
  box-shadow: 0 15px 34px rgba(107, 63, 126, .2);
  backdrop-filter: blur(16px);
}

:root[data-theme="petalglass"] .theme-swatch[data-theme="petalglass"] {
  border-color: rgba(255, 255, 255, .82);
  background: #b462c7;
  box-shadow: inset 7px 0 0 #f3b6d6, 0 2px 7px rgba(165, 83, 190, .25);
}

@media (max-width: 720px) {
  :root[data-theme="petalglass"] .app-shell { grid-template-columns: minmax(0, 1fr); }
  :root[data-theme="petalglass"] .login-shell { padding: 10px; gap: 10px; }
  :root[data-theme="petalglass"] .login-brand { min-height: 184px; border-radius: 14px; }
  :root[data-theme="petalglass"] .login-main { padding: 12px 4px 26px; }
  :root[data-theme="petalglass"] .login-form { padding: 24px 18px; border-radius: 14px; }
  :root[data-theme="petalglass"] .workspace { width: 100%; min-width: 0; padding-top: 8px; }
  :root[data-theme="petalglass"] .sidebar { top: 10px; width: min(280px, calc(100vw - 24px)); height: calc(100vh - 20px); margin: 10px 0 10px 10px; }
  :root[data-theme="petalglass"] .topbar { top: 8px; margin: 0 8px; border-radius: 12px; }
  :root[data-theme="petalglass"] .content { padding: 16px 10px 34px; }
  :root[data-theme="petalglass"] .table-wrap { overflow: auto; }

  .topbar {
    min-height: 0;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    align-items: center;
  }
  .topbar > div:nth-child(2) { min-width: 0; }
  .topbar h1 { overflow: hidden; font-size: 18px; text-overflow: ellipsis; white-space: nowrap; }
  .topbar-actions { grid-column: 1 / -1; width: 100%; margin-left: 0; justify-content: flex-end; flex-wrap: wrap; }
  .topbar-actions .theme-picker { margin-right: auto; }
  #menu-button, #logout-button { min-height: 40px; }

  .operations-filter { grid-template-columns: minmax(0, 1fr); }
  .console-filter-fields, .console-toolbar-buttons, .console-refresh-info { grid-column: 1; width: 100%; }
  .console-toolbar-buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .console-refresh-info { min-width: 0; margin-left: 0; padding: 10px 0 0; border-top: 1px solid var(--line); border-left: 0; }

  .table-wrap { max-height: calc(100dvh - 210px); overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  th:last-child { right: auto; }
  td:last-child { position: static; box-shadow: none; }
  .table-action, .member-action, .quick-amount, .console-project-tab { min-height: 40px; }

  dialog, dialog.wide-modal, dialog.fund-modal { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  dialog form { max-height: calc(100dvh - 18px); display: flex; flex-direction: column; }
  .modal-body { overflow-y: auto; }
  .toast { right: 8px; bottom: 8px; left: 8px; max-width: none; }
}

@media (max-width: 560px) {
  .console-filter-fields { grid-template-columns: 1fr; }
  .console-status-band { grid-template-columns: minmax(0, 1fr); }
  .console-runtime-stats { grid-row: auto; grid-column: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .console-sync-button { width: 100%; }
  .console-metric-group > header { align-items: flex-start; flex-direction: column; }
  .console-metric-group > header p { text-align: left; }
}

@media (max-width: 360px) {
  .topbar-actions { gap: 4px; }
  .theme-picker .theme-swatch { display: none; }
  .theme-picker select { width: 72px; }
  #logout-button { padding-inline: 10px; }
}
