:root { color: #182233; background: #eef2f6; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } * { box-sizing: border-box; } body { margin: 0; min-width: 320px; } button, input, select, textarea { font: inherit; } button { min-height: 40px; padding: 0 15px; border: 0; border-radius: 6px; background: #176b6c; color: #fff; font-weight: 750; cursor: pointer; } button:disabled { cursor: wait; opacity: 0.6; } #app { min-height: 100vh; padding: 14px; } .app-shell { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 12px; width: min(1360px, 100%); min-height: calc(100vh - 28px); margin: 0 auto; } .topbar { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding: 8px 0 14px; border-bottom: 1px solid #c7d2df; } h1, h2, p { margin: 0; } h1 { font-size: 34px; line-height: 1; letter-spacing: 0; } h2 { font-size: 15px; line-height: 1.2; color: #3f5064; } #model-label { margin-top: 7px; color: #5d6c7f; overflow-wrap: anywhere; } .status-stack { display: flex; flex-wrap: wrap; justify-content: end; gap: 8px; max-width: 680px; } .status { min-height: 34px; max-width: 260px; padding: 7px 10px; border: 1px solid #b7c4d3; border-radius: 6px; background: #fff; color: #314155; overflow-wrap: anywhere; } .layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 12px; min-height: 0; } .chat-panel, .side-panel { min-height: 0; } .chat-panel { display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 12px; } .chat-scroll { min-height: 420px; max-height: calc(100vh - 214px); overflow: auto; padding: 18px; border: 1px solid #c1ccda; border-radius: 8px; background: #fbfcfe; } .empty-chat { display: grid; align-content: center; gap: 10px; min-height: 320px; color: #4c5d72; text-align: center; } .empty-chat h2 { font-size: 24px; color: #182233; } .message { display: grid; gap: 7px; width: min(760px, 92%); margin-bottom: 14px; padding: 12px 14px; border: 1px solid #c4ceda; border-radius: 8px; background: #fff; } .message.user { margin-left: auto; border-color: #99bfbd; background: #e9f7f4; } .message.assistant { border-color: #c4ceda; } .message.tool { width: min(820px, 96%); margin-left: 24px; background: #f5f7fa; } .message.error { border-color: #d99a9a; background: #fff4f4; } .message-label { color: #5e6e82; font-size: 12px; font-weight: 800; text-transform: uppercase; } .message-body { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.48; } .message-code, pre { margin: 0; white-space: pre-wrap; overflow: auto; overflow-wrap: anywhere; line-height: 1.45; } .message-code { max-height: 240px; padding: 10px; border-radius: 6px; background: #182233; color: #e9eef5; } .tool-call { display: grid; gap: 6px; padding: 10px; border: 1px solid #d1dae5; border-radius: 6px; background: #f7f9fc; } .tool-name { color: #315f63; font-weight: 800; } .tool-call code { white-space: pre-wrap; overflow-wrap: anywhere; } .composer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: end; padding: 10px; border: 1px solid #c1ccda; border-radius: 8px; background: #fff; } textarea { width: 100%; min-height: 64px; max-height: 180px; resize: vertical; padding: 12px; border: 1px solid #b8c5d4; border-radius: 6px; background: #fff; color: #152033; line-height: 1.45; } .composer-actions { display: flex; gap: 8px; } #demo-prompt { background: #4f5f73; } .side-panel { display: grid; align-content: start; gap: 12px; } .control-group { display: grid; gap: 10px; padding: 12px; border: 1px solid #c1ccda; border-radius: 8px; background: #fff; } label { display: grid; gap: 6px; color: #526173; font-size: 13px; font-weight: 700; } select, input { width: 100%; height: 40px; padding: 0 10px; border: 1px solid #b8c5d4; border-radius: 6px; background: #fff; color: #152033; } .compact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } .button-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; } #reset-sandbox, #use-test-model { background: #4f5f73; } #files, #event-log { min-height: 150px; max-height: 230px; padding: 10px; border: 1px solid #d1dae5; border-radius: 6px; background: #f7f9fc; color: #243248; } #event-log { max-height: 270px; } .model-gate { position: fixed; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(20, 31, 45, 0.46); z-index: 20; } .model-gate.hidden { display: none; } .model-dialog { display: grid; gap: 16px; width: min(540px, 100%); padding: 22px; border-radius: 8px; background: #fff; box-shadow: 0 24px 80px rgba(17, 27, 42, 0.22); } .eyebrow { margin-bottom: 7px; color: #176b6c; font-size: 12px; font-weight: 850; text-transform: uppercase; } .model-dialog h2 { font-size: 24px; color: #172033; } .dialog-copy { margin-top: 8px; color: #526173; line-height: 1.5; } .dialog-actions { display: flex; flex-wrap: wrap; gap: 10px; } .dialog-options { display: grid; gap: 10px; color: #526173; } #gate-status { min-height: 22px; overflow-wrap: anywhere; } @media (max-width: 900px) { #app { padding: 10px; } .topbar { align-items: stretch; flex-direction: column; } .status-stack { justify-content: start; } .layout { grid-template-columns: 1fr; } .chat-scroll { min-height: 360px; max-height: none; } .composer { grid-template-columns: 1fr; } .composer-actions { justify-content: end; } }