:root { --bg: #0a0a0a; --bg-2: #141414; --fg: #e8e8e8; --fg-dim: #888; --accent: #fff; --border: #222; --error: #ff6b6b; font-family: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace; } * { box-sizing: border-box; } body { background: var(--bg); color: var(--fg); margin: 0; min-height: 100vh; } .mono { font-family: inherit; } .topbar { padding: 16px 24px; border-bottom: 1px solid var(--border); } .brand-name { font-weight: 600; } .brand-sub { color: var(--fg-dim); margin-left: 8px; } .grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 16px; padding: 16px 24px; min-height: calc(100vh - 60px); } .pane { display: flex; flex-direction: column; gap: 8px; } .pane-header { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; color: var(--fg-dim); } .model-indicator, .loading-indicator { font-size: 12px; color: var(--fg-dim); } textarea#tools { flex: 1; min-height: 400px; background: var(--bg-2); color: var(--fg); border: 1px solid var(--border); border-radius: 4px; padding: 12px; font-size: 13px; resize: none; } input#query { background: var(--bg-2); color: var(--fg); border: 1px solid var(--border); border-radius: 4px; padding: 10px 12px; font-size: 14px; } .result-pane { flex: 1; background: var(--bg-2); border: 1px solid var(--border); border-radius: 4px; padding: 12px; font-size: 13px; white-space: pre-wrap; word-break: break-word; margin: 0; overflow: auto; } .result-pane.error { color: var(--error); } .examples { display: flex; gap: 8px; flex-wrap: wrap; } .example-chip { background: transparent; color: var(--fg); border: 1px solid var(--border); border-radius: 999px; padding: 4px 12px; font-size: 12px; cursor: pointer; transition: opacity 120ms ease-in-out; } .example-chip:hover:not(:disabled) { background: var(--bg-2); } .example-chip:disabled, input#query:disabled, textarea#tools:disabled { opacity: 0.4; cursor: not-allowed; } /* Subtle pulse on the status text while model is loading or generating. */ .loading-indicator.busy { animation: pulse 1.2s ease-in-out infinite; } @keyframes pulse { 0%, 100% { opacity: 0.55; } 50% { opacity: 1; } } .error-inline { color: var(--error); font-size: 12px; margin-top: 4px; }