/* Bombo design system — Violet Bloom. Generated by src/ui_theme.js. */
:root, html {
  --bg: #f7f4fd;
  --bg-elev: #ffffff;
  --bg-soft: #f1ebfc;
  --bg-sunken: #ebe2f9;
  --border: #ded4f1;
  --border-strong: #c2b1e6;
  --text: #251b36;
  --text-dim: #6f6190;
  --text-faint: #8b7fab;
  --accent: #a855f7;
  --accent-text: #7e22ce;
  --accent-fg: #1c0430;
  --accent-soft: rgba(168,85,247,0.14);
  --accent-glow: 0 4px 18px rgba(168,85,247,0.18);
  --success: #15803d;
  --success-soft: rgba(21,128,61,0.12);
  --warning: #9a6407;
  --warning-soft: rgba(154,100,7,0.12);
  --danger: #b91c1c;
  --danger-soft: rgba(185,28,28,0.12);
  --gold: #b45309;
  --info: #7e22ce;
  --link: #7e22ce;
  --radius: 12px;
  --radius-sm: 8px;
  --radius-lg: 16px;
  --shadow: 0 4px 16px rgba(60,30,120,0.10);
  --shadow-lg: 0 12px 30px rgba(60,30,120,0.14);
  --font: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --mono: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace;
  --scheme: light;
  --icon-opacity: 0.9;
  --bg-base: var(--bg);
  --bg-dark: var(--bg);
  --bg-primary: var(--bg);
  --bg-color: var(--bg);
  --bg-card: var(--bg-elev);
  --bg-card-hover: var(--bg-soft);
  --bg-surface: var(--bg-elev);
  --card-bg: var(--bg-elev);
  --code-bg: var(--bg-soft);
  --table-hover: var(--bg-soft);
  --card-border: var(--border);
  --bg-card-border: var(--border);
  --border-color: var(--border);
  --text-primary: var(--text);
  --text-main: var(--text);
  --text-bright: var(--text);
  --text-secondary: var(--text-dim);
  --text-muted: var(--text-dim);
  --muted: var(--text-dim);
  --subtext: var(--text-dim);
  --primary: var(--accent);
  --primary-hover: var(--accent-text);
  --accent-base: var(--accent);
  --accent-hover: var(--accent-text);
  --accent-purple: var(--accent);
  --purple: var(--accent);
  --green: var(--success);
  --red: var(--danger);
  --pink: var(--accent);
  --rose: var(--danger);
  --sky: var(--info);
  --cyan: var(--info);
  --amber: var(--warning);
  --glass-blur: blur(14px);
  --accent-gradient: linear-gradient(135deg, var(--accent), var(--accent-text));
}
:root[data-theme="dark"], html[data-theme="dark"] {
  --bg: #121824;
  --bg-elev: #1a2230;
  --bg-soft: #202a3a;
  --bg-sunken: #0d121c;
  --border: #2b374a;
  --border-strong: #3b4a61;
  --text: #e6edf6;
  --text-dim: #93a4bb;
  --text-faint: #7b8ba3;
  --accent: #c084fc;
  --accent-text: #d8b4fe;
  --accent-fg: #26083f;
  --accent-soft: rgba(192,132,252,0.20);
  --accent-glow: 0 0 26px rgba(192,132,252,0.22);
  --success: #2ea043;
  --success-soft: rgba(46,160,67,0.16);
  --warning: #d29922;
  --warning-soft: rgba(210,153,34,0.16);
  --danger: #f85149;
  --danger-soft: rgba(248,81,73,0.16);
  --gold: #e3b341;
  --info: #c084fc;
  --link: #d8b4fe;
  --radius: 10px;
  --radius-sm: 7px;
  --radius-lg: 14px;
  --shadow: 0 6px 20px rgba(0,0,0,0.35);
  --shadow-lg: 0 16px 40px rgba(0,0,0,0.45);
  --font: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --mono: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace;
  --scheme: dark;
  --icon-opacity: 1;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #121824;
    --bg-elev: #1a2230;
    --bg-soft: #202a3a;
    --bg-sunken: #0d121c;
    --border: #2b374a;
    --border-strong: #3b4a61;
    --text: #e6edf6;
    --text-dim: #93a4bb;
    --text-faint: #7b8ba3;
    --accent: #c084fc;
    --accent-text: #d8b4fe;
    --accent-fg: #26083f;
    --accent-soft: rgba(192,132,252,0.20);
    --accent-glow: 0 0 26px rgba(192,132,252,0.22);
    --success: #2ea043;
    --success-soft: rgba(46,160,67,0.16);
    --warning: #d29922;
    --warning-soft: rgba(210,153,34,0.16);
    --danger: #f85149;
    --danger-soft: rgba(248,81,73,0.16);
    --gold: #e3b341;
    --info: #c084fc;
    --link: #d8b4fe;
    --radius: 10px;
    --radius-sm: 7px;
    --radius-lg: 14px;
    --shadow: 0 6px 20px rgba(0,0,0,0.35);
    --shadow-lg: 0 16px 40px rgba(0,0,0,0.45);
    --font: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
    --mono: 'JetBrains Mono', 'SFMono-Regular', Consolas, monospace;
    --scheme: dark;
    --icon-opacity: 1;
  }
}
body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;color-scheme:var(--scheme);}
:root[data-theme="dark"] body{color-scheme:dark;}
:root[data-theme="dark"] img{filter:none;}

/* ---- icons ---- */
.ico{display:inline-block;vertical-align:-0.16em;flex:none;opacity:var(--icon-opacity);}
.ico-lg{width:22px;height:22px;}
.ico-xl{width:30px;height:30px;}
.ico-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;
  border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-soft);color:var(--text-dim);
  cursor:pointer;transition:color .15s ease,border-color .15s ease;}
.ico-btn:hover{color:var(--accent-text);border-color:var(--border-strong);}
.ico-btn:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}

/* Theme toggle injected by /theme.js */
#bombo-theme-toggle{margin-left:8px;}
#bombo-theme-toggle.ico-float{position:fixed;top:14px;right:16px;z-index:90;margin:0;
  box-shadow:var(--shadow);background:var(--bg-elev);}
:root[data-theme="light"] #bombo-theme-toggle .i-sun{display:none;}
:root[data-theme="dark"] #bombo-theme-toggle .i-moon{display:none;}

/* ---- shared primitives (used by the rebuilt shell) ---- */
.bd-nav{position:sticky;top:0;z-index:60;background:color-mix(in srgb, var(--bg-elev) 88%, transparent);
  backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border);}
.bd-nav-inner{max-width:1180px;margin:0 auto;padding:0 22px;display:flex;align-items:center;gap:20px;height:60px;}
.bd-brand{font-weight:800;letter-spacing:.14em;font-size:15px;color:var(--text);text-decoration:none;}
.bd-brand i{color:var(--accent);font-style:normal;}
.bd-links{display:flex;gap:19px;margin-left:8px;flex:1;flex-wrap:wrap;}
.bd-links a{color:var(--text-dim);font-size:14px;font-weight:500;text-decoration:none;}
.bd-links a:hover,.bd-links a.active{color:var(--text);}
.bd-right{display:flex;align-items:center;gap:10px;margin-left:auto;}
.bd-btn{display:inline-flex;align-items:center;gap:7px;font-family:inherit;font-size:14px;font-weight:600;
  padding:9px 15px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;
  background:var(--bg-soft);color:var(--text);text-decoration:none;transition:filter .15s ease;white-space:nowrap;}
.bd-btn:hover{filter:brightness(1.08);text-decoration:none;}
.bd-btn-primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);}
.bd-btn-ghost{background:transparent;color:var(--text-dim);border-color:var(--border);}
.bd-btn-ghost:hover{color:var(--text);}
.bd-btn-sm{padding:6px 11px;font-size:13px;}
.bd-badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid var(--border-strong);
  background:var(--bg-soft);color:var(--text-dim);}
.bd-badge-ok{background:var(--success-soft);color:var(--success);border-color:color-mix(in srgb,var(--success) 45%,transparent);}
.bd-badge-warn{background:var(--warning-soft);color:var(--warning);border-color:color-mix(in srgb,var(--warning) 45%,transparent);}
.bd-badge-danger{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent);}
.bd-badge-info{background:var(--accent-soft);color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 45%,transparent);}
.bd-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);}
.bd-wrap{max-width:1180px;margin:0 auto;padding:0 22px;}
.bd-foot{border-top:1px solid var(--border);margin-top:46px;padding:24px 0 44px;color:var(--text-dim);font-size:13px;}
.bd-foot a{color:var(--accent-text);}
a{color:var(--accent-text);}
::selection{background:var(--accent-soft);color:var(--text);}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
::-webkit-scrollbar{width:11px;height:11px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:3px solid var(--bg);}
::-webkit-scrollbar-thumb:hover{background:var(--accent);}
