:root{--color-bg: #000;--color-bg-panel: #060606;--color-bg-input: #0d0d0d;--color-bg-card: #1a1a1a;--color-bg-modal: #1e1e1e;--color-text: #fff;--color-text-secondary: #bbb;--color-text-muted: #888;--color-text-dim: #555;--color-text-dimmer: #444;--color-text-dimmest: #333;--color-accent: #E0FE44;--color-accent-hover: #eaff66;--color-accent-glow: rgba(224, 254, 68, .22);--color-accent-subtle: rgba(224, 254, 68, .03);--color-blue: #79c0ff;--color-green: #7ee787;--color-red: #ff7b72;--color-orange: #f0883e;--color-string: #a5d6ff;--color-border: #111;--color-border-light: #1a1a1a;--color-border-medium: #2a2a2a;--color-border-input: #222;--color-border-modal: #333;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 14px;--radius-full: 999px;--font-system: -apple-system, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", "Menlo", monospace;--font-display: "Sharp Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--nav-height: 80px;--left-panel-width: 35%}@font-face{font-family:Sharp Grotesk;src:local("Sharp Grotesk"),url(/fonts/sharp-grotesk/SharpGrotesk-SemiBoldItalic20.otf) format("opentype");font-weight:600;font-style:italic;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-system);height:100vh;overflow:hidden;display:flex;flex-direction:column}#app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.page-scrollable{flex:1;overflow-y:auto;display:flex;flex-direction:column}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#222;border-radius:2px}*{scrollbar-width:thin;scrollbar-color:#222 transparent}::selection{background:#e0fe4440;color:#fff}a{color:inherit;text-decoration:none}@keyframes chipIn{0%{opacity:0;transform:scale(.88) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes chipPulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes postPulse{0%,to{box-shadow:0 0 #e0fe4400}50%{box-shadow:0 0 0 7px #e0fe4438}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.4}}
