/* WorkBuddy2API palette and layout shared by gateway and upstream views. */
:root {
  --bg:#0c0e14; --bg-soft:#14171f; --card:#14171f; --card-hover:#1a1e28;
  --border:#262c3a; --text:#e8ebf2; --text-dim:#a8b0c2; --text-faint:#6b7488;
  --accent:#5b7cfa; --accent-soft:rgba(91,124,250,.13); --green:#3ddc97; --orange:#f5b544; --red:#f0655f;
  --radius:10px; --shadow:none; --wb-mono:ui-monospace,'Cascadia Mono',Consolas,monospace;
  color-scheme:dark;
}
html.light {
  --bg:#f4f5f8; --bg-soft:#fff; --card:#fff; --card-hover:#f8f9fb; --border:#e2e5ec;
  --text:#14171f; --text-dim:#545c6e; --text-faint:#8b93a5; --accent:#3d5fe0; --accent-soft:rgba(61,95,224,.09);
  --green:#0f9d63; --orange:#b47611; --red:#cf3b34; color-scheme:light;
}
[hidden] {display:none!important}
:focus-visible {outline:2px solid var(--accent);outline-offset:3px}
.wb-console {font-size:13px;line-height:1.55}
.wb-console .wb-sidebar {width:208px;padding:0;background:var(--card);height:100dvh;overflow:hidden;position:sticky;top:0;flex-shrink:0;z-index:80}
.wb-brand {display:flex;flex-direction:column;gap:3px;padding:20px 18px 16px;color:var(--text);border-bottom:1px solid var(--border);flex:none}
.wb-brand strong {font-size:15px;font-weight:650;letter-spacing:-.2px}
.wb-brand span {font-size:11px;color:var(--text-faint)}
.wb-navigation {padding:8px;overflow:auto;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.wb-group-title {display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:transparent;padding:9px 11px 6px;margin-top:6px;color:var(--text-faint);font:inherit;font-size:11px;cursor:pointer;text-align:left}
.wb-chevron {display:inline-flex;transition:transform .15s}
.wb-chevron.expanded {transform:rotate(90deg)}
.wb-group-title svg {width:12px;height:12px}
.wb-nav-link {display:flex;gap:10px;align-items:center;padding:7px 11px;min-height:34px;margin:2px 0;border-radius:7px;color:var(--text-dim);font-size:13px;white-space:nowrap;transition:background .12s,color .12s}
.wb-nav-link svg {width:15px;height:15px;flex:none;opacity:.85}
.wb-nav-link:hover {color:var(--text);background:var(--card-hover)}
.wb-nav-link.is-active {color:var(--accent);background:var(--accent-soft);font-weight:550}
.wb-nav-link small {margin-left:auto;color:var(--text-faint)}
.wb-console .wb-side-foot {margin:0;padding:12px 16px;border-top:1px solid var(--border);flex:none}
.wb-balance {display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;color:var(--text-faint);margin-bottom:9px}
.wb-balance strong {color:var(--orange);font:600 13px var(--wb-mono);font-variant-numeric:tabular-nums}
.wb-service-state {display:flex;align-items:center;gap:6px;color:var(--text-faint);font-size:10px}
.wb-service-state i {width:6px;height:6px;border-radius:50%;background:var(--text-faint);flex:none}
.wb-service-state i.online {background:var(--green)}
.wb-service-state i.offline {background:var(--red)}
.wb-build {margin-left:auto;max-width:87px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--wb-mono)}
.wb-console .wb-topbar {height:60px;padding:0 24px;background:var(--card);backdrop-filter:none;gap:12px;z-index:50}
.wb-location {display:flex;align-items:center;gap:14px;min-width:0}
.wb-location strong {font-size:14px;white-space:nowrap;font-weight:650}
.wb-uptime {color:var(--text-faint);font:11px var(--wb-mono);white-space:nowrap}
.wb-top-actions {display:flex;align-items:center;gap:10px;margin-left:auto;flex:none}
.wb-top-actions svg {width:15px;height:15px;flex:none}
.wb-console .btn {padding:6px 11px;border-radius:6px;font-size:12px;min-height:31px}
.wb-console .wb-icon-button {width:32px;padding:6px;justify-content:center;background:transparent}
.wb-console .wb-user-chip {gap:7px;margin-left:4px;font-size:12px;display:flex}
.wb-console .avatar {width:26px;height:26px;border-radius:6px;font-size:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.wb-console .uname {max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wb-console .role-badge {font-size:9px;letter-spacing:.4px;background:var(--accent-soft);color:var(--accent);padding:1px 5px;border-radius:3px}
.wb-logout {border:0;background:transparent;color:var(--text-faint);font:inherit;font-size:12px;cursor:pointer;padding:6px 0 6px 3px}
.wb-logout:hover {color:var(--text)}
.wb-console .wb-console-content {padding:22px 24px 60px;max-width:1560px;margin:0 auto;width:100%;min-width:0}
.wb-console .page-head {margin-bottom:18px}
.wb-console .page-title {font-size:17px;font-weight:650}
.wb-console .page-desc {font-size:12px;color:var(--text-faint);margin-top:4px}
.wb-console .card {padding:16px;border-radius:10px;box-shadow:none}
.wb-console .card:hover {border-color:var(--border)}
.wb-console .stat-value {font:650 26px var(--wb-mono);letter-spacing:-.7px;line-height:1.3}
.wb-console .stat-label {font-size:12px;color:var(--text-dim)}
.wb-console .stat-sub {font-size:11px;color:var(--text-faint)}
.wb-console .input {font-size:12px;border-radius:6px;padding:7px 10px;background:var(--card-hover)}
.wb-console .tbl {font-size:12px}
.wb-console .tbl th {font-size:11px;color:var(--text-faint);padding:9px 12px}
.wb-console .tbl td {padding:11px 12px}
.wb-console .badge {font-size:11px;border-radius:5px;padding:2px 7px}
.wb-console .mini-v {font:650 22px var(--wb-mono);line-height:1.45}
.wb-console .mini {background:var(--card-hover)!important;border-radius:7px!important}
.wb-console .mini-l {font-size:11px;color:var(--text-faint)}
.wb-console .modal {border-radius:12px}
/* Native upstream workspace follows the same single-shell navigation. */
.wb-console .wb-workspace {
  --wb-bg:var(--bg); --wb-surface:var(--card); --wb-raised:var(--card-hover); --wb-border:var(--border); --wb-text:var(--text); --wb-muted:var(--text-faint); --wb-accent:var(--accent);
  color:var(--text);font:inherit;
}
.wb-console .wb-head,.wb-console .wb-toolbar {display:none}
.wb-tools-nav {display:none}
.wb-tools-only .wb-tools-nav {display:flex;gap:12px;border-bottom:1px solid var(--border);margin-bottom:18px}
.wb-tools-only .wb-metrics,.wb-tools-only .wb-health {display:none}
.wb-console .wb-workspace.wb-tools-only {padding-bottom:0}
.wb-console .wb-metrics {gap:12px;margin-bottom:16px}
.wb-console .wb-metric {border-radius:8px;padding:14px 16px;background:var(--card-hover);box-shadow:none}
.wb-console .wb-metric-value {font:650 26px var(--wb-mono);margin:5px 0;letter-spacing:-.7px}
.wb-console .wb-metric-top {font-size:12px}
.wb-console .wb-metric small {font-size:11px}
.wb-console .wb-button {border-radius:6px;padding:6px 11px;font-size:12px}
.wb-console .wb-primary {background:var(--accent);color:#fff;border-color:var(--accent)}
.wb-console .wb-account-card,.wb-console .wb-panel-card {border-radius:10px;box-shadow:none}
.wb-console .wb-table-head {padding:14px 16px;gap:12px}
.wb-console .wb-table-head h2 {font-size:14px}
.wb-console .wb-table-head p {font-size:11px}
.wb-console .wb-account-table {font-size:12px}
.wb-console .wb-account-table th {font-size:11px;padding:10px 12px}
.wb-console .wb-account-table td {padding:11px 12px}
.wb-console .wb-table-foot {font-size:11px;padding:10px 16px}
.wb-console .wb-badge {font-size:11px;border-radius:5px}
.wb-console .wb-panel-card {border:0;background:transparent;overflow:visible}
.wb-console .wb-frame {width:100%;background:transparent;border-radius:0}
.wb-console .wb-footer {font-size:11px;padding:10px 0;color:var(--text-faint)}
.wb-console .wb-frame-only .wb-metrics,.wb-console .wb-frame-only .wb-health {display:none}
.wb-console .wb-login-dialog,.wb-console .wb-edit-dialog {--wb-text:var(--text);--wb-muted:var(--text-faint);--wb-raised:var(--card-hover);--wb-border:var(--border);--wb-accent:var(--accent);background:var(--card);color:var(--text)}
.wb-console .wb-access-note {border-radius:8px;margin-bottom:16px;font-size:12px}
/* Tables scroll inside their card, keeping the page width stable. */
.wb-console .card:has(>table.tbl) {overflow-x:auto}
.wb-console .sum-grid {grid-template-columns:repeat(4,minmax(0,1fr))}
.wb-console .sum-card {background:var(--card-hover);border-color:var(--border)}
.wb-console .sum-v {color:var(--text);font-family:var(--wb-mono)}
.wb-console .sum-k {color:var(--text-faint)}
.wb-console .filter-card label {color:var(--text-dim)}
.wb-console .menu-btn {display:none}
@media(min-width:1600px) {.wb-console .wb-console-content {max-width:1640px}}
@media(max-width:1100px) {.wb-uptime {display:none}.wb-top-actions {gap:8px}.wb-console .uname {max-width:75px}}
@media(max-width:800px) {
  .wb-console .wb-sidebar {position:fixed;left:-208px;top:0;z-index:200;transition:left .2s}
  .wb-console .wb-sidebar.open {left:0}
  .wb-console .wb-side-mask {position:fixed;inset:0;border:0;background:rgba(0,0,0,.55);z-index:190}
  .wb-console .menu-btn {display:inline-flex;padding:6px;background:transparent}
  .wb-console .wb-topbar {padding:0 14px;gap:10px}
  .wb-console .wb-console-content {padding:16px 14px 40px}
  .wb-console .wb-user-chip .uname,.wb-console .wb-user-chip .role-badge {display:none}
  .wb-console .wb-user-chip {margin-left:0}
  .wb-console .wb-metrics {grid-template-columns:repeat(2,minmax(0,1fr))}
  .wb-console .wb-table-head {flex-wrap:wrap}
  .wb-console .wb-table-controls {flex-wrap:wrap;max-width:100%}
  .wb-console .sum-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px) {
  .wb-console .wb-location strong {font-size:12px}
  .wb-console .wb-user-chip {display:none}
  .wb-console .wb-top-actions {gap:6px}
  .wb-console .wb-refresh span {display:none}
  .wb-console .wb-refresh {width:31px;padding:6px;justify-content:center}
  .wb-console .btn {padding:6px 8px;font-size:11px}
  .wb-console .wb-scan-login svg {display:none}
  .wb-console .wb-metric {padding:12px}
  .wb-console .wb-metric-value {font-size:23px}
  .wb-console .cols-4,.wb-console .cols-3,.wb-console .cols-2 {grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce) {.wb-console * {transition:none!important;animation:none!important}}
.wb-console .wb-workspace {max-height:none;overflow:visible;max-width:none;margin:0;padding:0 0 24px}
.wb-console .wb-dialog {--wb-bg:var(--card)}
/* Admin dashboard: responsive chart rows and six compact user metrics. */
@media(max-width:1000px) {
  .wb-console .grid[data-v-47496efa][style*="2fr 1fr"] {grid-template-columns:minmax(0,1fr)!important}
  .wb-console .grid.cols-3[data-v-47496efa] {grid-template-columns:repeat(2,minmax(0,1fr))}
  .wb-console .grid[data-v-47496efa][style*="repeat(6"] {grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:600px) {
  .wb-console .grid.cols-3[data-v-47496efa] {grid-template-columns:minmax(0,1fr)}
  .wb-console .grid.cols-4[data-v-47496efa] {grid-template-columns:repeat(2,minmax(0,1fr))}
  .wb-console .grid.cols-2[data-v-47496efa] {grid-template-columns:minmax(0,1fr)}
  .wb-console .grid.cols-2[data-v-47496efa]:has(>.mini) {grid-template-columns:repeat(2,minmax(0,1fr))}
  .wb-console .grid[data-v-47496efa][style*="repeat(6"] {grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .wb-console .page-head {gap:12px;flex-wrap:wrap}
}

/* Match the legacy light selectors so dialogs inherit the unified palette. */
html.light .wb-console .wb-workspace,html.light .wb-console .wb-dialog {--wb-bg:var(--card);--wb-raised:var(--card-hover);--wb-border:var(--border);--wb-text:var(--text);--wb-muted:var(--text-faint);--wb-accent:var(--accent)}

@media(max-width:800px) {
  .wb-console .wb-console-content .row {flex-wrap:wrap;max-width:100%}
  .wb-console .wb-console-content .row>.input {min-width:0;max-width:100%}
}

.wb-console .menu-btn svg {width:16px;height:16px;flex:none}
@media(max-width:800px) {.wb-console .menu-btn {width:32px;height:32px;flex:none;justify-content:center}}
@media(max-width:1000px) {.wb-console .grid.cols-6 {grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px) {
  .wb-console .grid.cols-6 {grid-template-columns:repeat(2,minmax(0,1fr))}
  .wb-console .grid.cols-3[data-v-47496efa]:has(>.mini) {grid-template-columns:repeat(3,minmax(0,1fr))}
}
