@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("/fonts/plus-jakarta-sans-400.woff2") format("woff2"); } @font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("/fonts/plus-jakarta-sans-500.woff2") format("woff2"); } @font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("/fonts/plus-jakarta-sans-600.woff2") format("woff2"); } @font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("/fonts/plus-jakarta-sans-700.woff2") format("woff2"); } @font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 800; font-display: swap; src: url("/fonts/plus-jakarta-sans-800.woff2") format("woff2"); } :root { color-scheme: light; /* Surfaces */ --bg: #f7f9fc; --bg-accent: #eef1f5; --panel: #ffffff; --panel-subtle: #f7f9fc; --panel-strong: #f1f5f9; --surface-soft: #f2f7fd; --overlay: rgba(24, 34, 47, 0.42); --topbar-bg: rgba(255, 255, 255, 0.94); /* Lines */ --line: #e2e8f0; --line-strong: #cbd5e1; /* Text */ --heading: #101828; --text: #0f1720; --text-soft: #344054; --muted: #64748b; --muted-2: #94a3b8; /* Brand */ --brand: #2563eb; --brand-strong: #1d4ed8; --brand-2: #38bdf8; --grad: linear-gradient(135deg, #38bdf8 0%, #2563eb 55%, #1e40af 100%); --brand-tint: #eaf2fd; --brand-tint-border: #c7dcf9; --brand-tint-text: #1e3a8a; /* Semantic */ --good: #167447; --good-tint: #eaf6ef; --good-border: #c1e1cf; --warn: #a15c07; --warn-tint: #fcf4e4; --warn-border: #e7d09e; --danger: #b42318; --danger-tint: #fcefec; --danger-border: #eecac3; --danger-text: #8f2f27; /* Accent (collectibles / craft) */ --purple: #6a4fa3; --purple-tint: #f4effb; --purple-border: #dcd0f0; --purple-text: #5a4590; /* Inputs & controls */ --input-bg: #ffffff; --btn-bg: #ffffff; --btn-text: #29323d; --btn-hover: #f4f7fa; --switch-track: #c8d0d6; /* Code / JSON blocks */ --code-bg: #1b2733; --code-text: #d6e3ef; --code-border: #2b3a49; /* Sidebar */ --sidebar: #08080e; --sidebar-soft: #12121a; --sidebar-line: #222228; --sidebar-row: #17171f; --sidebar-text: #c6d0dc; --sidebar-muted: #8fa0b4; --sidebar-faint: #8492a6; --sidebar-heading: #ffffff; /* Effects */ --focus: rgba(37, 99, 235, 0.16); --shadow: 0 28px 70px -36px rgba(5, 5, 8, 0.35); --shadow-sm: 0 2px 10px rgba(24, 39, 56, 0.05); --shadow-brand: 0 8px 22px rgba(37, 99, 235, 0.22); --hero-glow: rgba(37, 99, 235, 0.14); --hero-grid: rgba(5, 5, 8, 0.04); /* Radii */ --radius-xs: 8px; --radius-sm: 9px; --radius: 11px; --radius-lg: 14px; } [data-theme="dark"] { color-scheme: dark; --bg: #0f141a; --bg-accent: #131a22; --panel: #171f28; --panel-subtle: #1c2530; --panel-strong: #212c38; --surface-soft: #1a232d; --overlay: rgba(5, 8, 12, 0.62); --topbar-bg: rgba(21, 28, 36, 0.86); --line: #29333f; --line-strong: #38434f; --heading: #eef3f8; --text: #d5dde6; --text-soft: #c2ccd6; --muted: #98a4b1; --muted-2: #6d7885; --brand: #5b9dff; --brand-strong: #7db4ff; --brand-2: #7cd1fb; --brand-tint: #142a4a; --brand-tint-border: #24466e; --brand-tint-text: #9dc3f5; --good: #47c281; --good-tint: #12301f; --good-border: #245639; --warn: #e0aa4d; --warn-tint: #322810; --warn-border: #574413; --danger: #e6695c; --danger-tint: #35201d; --danger-border: #5c332d; --danger-text: #f0a49b; --purple: #ac90e2; --purple-tint: #221b31; --purple-border: #3d3357; --purple-text: #c9b6ef; --input-bg: #131a22; --btn-bg: #1e2731; --btn-text: #dbe2ea; --btn-hover: #26313d; --switch-track: #3a454f; --code-bg: #0c1218; --code-text: #cdd9e5; --code-border: #232f3b; --sidebar: #10151b; --sidebar-soft: #1c242f; --sidebar-line: #262f3a; --sidebar-row: #161d25; --sidebar-text: #cbd4de; --sidebar-muted: #7c8794; --sidebar-faint: #6f7b88; --sidebar-heading: #f0f4f8; --focus: rgba(91, 157, 255, 0.24); --shadow: 0 16px 40px rgba(0, 0, 0, 0.46); --shadow-sm: 0 2px 12px rgba(0, 0, 0, 0.38); --shadow-brand: 0 8px 22px rgba(91, 157, 255, 0.26); --hero-glow: rgba(91, 157, 255, 0.25); --hero-grid: rgba(255, 255, 255, 0.04); } * { box-sizing: border-box; } html, body, #root { min-height: 100%; } body { margin: 0; color: var(--text); background: var(--bg); font: 13px/1.45 "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; transition: background-color 200ms ease, color 200ms ease; } button, input, select, textarea { font: inherit; } a { color: inherit; text-decoration: none; } .shell { display: grid; min-height: 100vh; grid-template-columns: 232px minmax(0, 1fr); } .sidebar { position: sticky; top: 0; display: flex; height: 100vh; flex-direction: column; gap: 16px; overflow-y: auto; padding: 18px 12px; color: var(--sidebar-text); background: var(--sidebar); border-right: 1px solid var(--sidebar-line); } .brand { display: flex; align-items: center; gap: 10px; min-height: 42px; padding: 0 4px; } .brand.compact { justify-content: center; } .brand-mark { display: grid; width: 34px; height: 34px; border-radius: 50%; overflow: hidden; place-items: center; } .brand-mark img { display: block; width: 100%; height: 100%; object-fit: cover; } .brand strong { display: block; font-size: 14px; line-height: 1.1; } .brand small { display: block; margin-top: 3px; color: var(--sidebar-muted); font-size: 11px; } .sidebar-label { padding: 0 8px; color: var(--sidebar-faint); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; } .sidebar-api-layer, .sidebar-build { font-weight: 500; text-transform: none; font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; opacity: 0.7; } .nav-list { display: grid; gap: 4px; } .nav-section { display: grid; gap: 4px; } .nav-section-toggle { display: grid; grid-template-columns: 18px minmax(0, 1fr) 16px; width: 100%; min-height: 38px; align-items: center; gap: 9px; padding: 0 10px; color: var(--sidebar-muted); background: transparent; border: 1px solid transparent; border-radius: var(--radius-sm); cursor: pointer; font-size: 12px; font-weight: 800; text-align: left; transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease; } .nav-section-toggle:hover, .nav-section.active .nav-section-toggle { color: var(--sidebar-heading); background: var(--sidebar-soft); border-color: #34404d; } .nav-section-chevron { justify-self: end; color: var(--sidebar-muted); transition: transform 140ms ease; } .nav-section.open .nav-section-chevron { transform: rotate(180deg); } .nav-children { display: grid; gap: 4px; padding: 2px 0 2px 18px; } .nav-item { display: grid; grid-template-columns: 18px minmax(0, 1fr); min-height: 38px; align-items: center; gap: 9px; padding: 0 10px; color: var(--sidebar-text); border: 1px solid transparent; border-radius: var(--radius-sm); transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease; } .nav-dot { width: 6px; height: 6px; justify-self: center; background: var(--sidebar-faint); border-radius: 999px; } .nav-item:hover, .nav-item.active { color: var(--sidebar-heading); background: var(--sidebar-soft); border-color: #34404d; } .nav-item.active .nav-dot { background: var(--brand); } .sidebar-status { display: grid; gap: 7px; margin-top: auto; } .runtime-row { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; min-height: 32px; align-items: center; gap: 7px; padding: 0 8px; color: var(--sidebar-text); background: var(--sidebar-row); border: 1px solid #27313c; border-radius: var(--radius-sm); } .runtime-row strong { color: var(--sidebar-heading); font-size: 11px; } .workspace { min-width: 0; } .topbar { position: sticky; z-index: 20; top: 0; display: flex; min-height: 66px; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 24px; background: var(--topbar-bg); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); } .topbar h1 { margin: 2px 0 0; color: var(--heading); font-size: 20px; line-height: 1.2; } .topbar-actions, .page-actions, .section-action, .entity-badges, .row-actions, .modal-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; } .theme-toggle { display: inline-grid; width: 34px; height: 34px; place-items: center; color: var(--muted); background: var(--panel-subtle); border: 1px solid var(--line); border-radius: 999px; cursor: pointer; transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease; } .theme-toggle:hover { color: var(--brand); border-color: var(--brand-tint-border); background: var(--brand-tint); } .theme-toggle:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; } .actor-pill { display: inline-flex; min-height: 30px; align-items: center; padding: 0 10px; color: var(--text-soft); background: var(--panel-subtle); border: 1px solid var(--line); border-radius: 999px; } .content { display: grid; gap: 16px; padding: 18px 24px 30px; } .eyebrow { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; }