@import 'tailwindcss'; @source '../../../packages/shared/src/components'; @import '../../../packages/shared/src/theme.css'; :root { color: #18202f; background: #f5f7fb; font-family: Inter, 'PingFang SC', 'Microsoft YaHei', system-ui, sans-serif; } * { box-sizing: border-box; } body { margin: 0; } button, input, select, textarea { font: inherit; } .client-auth-shell { display: grid; min-height: 100vh; padding: 24px; background: #f8fafc; color: #111827; place-items: center; } .client-auth-panel { display: grid; width: min(360px, 100%); gap: 16px; padding: 28px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; box-shadow: 0 18px 52px rgb(15 23 42 / 12%); } .client-auth-logo { display: grid; width: 34px; height: 34px; border-radius: 50%; background: #101010; color: #fff; font-size: 12px; font-weight: 800; place-items: center; } .client-auth-panel h1 { margin: 0; font-size: 24px; letter-spacing: 0; } .client-auth-panel p { margin: 6px 0 0; color: #6b7280; font-size: 13px; } .client-auth-panel label { display: grid; gap: 7px; color: #374151; font-size: 13px; font-weight: 700; } .client-auth-panel input { height: 38px; min-width: 0; padding: 0 11px; border: 1px solid #d1d5db; border-radius: 8px; background: #fff; color: #111827; font: inherit; } .client-auth-panel input:focus { border-color: #111827; outline: 2px solid rgb(17 24 39 / 10%); } .client-auth-panel button { height: 38px; border: 0; border-radius: 8px; background: #111827; color: #fff; font-weight: 700; cursor: pointer; } .client-auth-panel button:disabled { cursor: default; opacity: 0.62; } .client-auth-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 4px; border: 1px solid #e5e7eb; border-radius: 8px; background: #f8fafc; } .client-auth-tabs button { background: transparent; color: #4b5563; } .client-auth-tabs button.is-active { background: #111827; color: #fff; } .client-auth-code-row { display: grid; grid-template-columns: minmax(0, 1fr) 104px; gap: 10px; align-items: end; } .client-auth-code-row button { padding: 0 10px; white-space: nowrap; } .client-auth-status { min-height: 18px; overflow-wrap: anywhere; } .launcher-shell { --launcher-sidebar-width: 64px; display: grid; grid-template-columns: var(--launcher-sidebar-width) minmax(0, 1fr); min-height: 100vh; background: #fff; color: #171717; } .launcher-shell.platform-theme { background: var(--platform-body-fill); color: var(--platform-text-strong); } .launcher-shell.platform-theme .launcher-main { background: var(--platform-body-fill); } .launcher-shell.platform-theme .launcher-promo { background: var(--platform-warm-bg); color: var(--platform-warm-text); } .launcher-shell.platform-theme .launcher-promo button { color: var(--platform-warm-text); } .launcher-shell.platform-theme .launcher-countdown { border-color: var(--platform-subpanel-border); background: var(--platform-subpanel-fill); color: var(--platform-text-strong); } .launcher-promo button { border: 0; cursor: pointer; } .launcher-main { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto; align-content: start; min-width: 0; min-height: 100vh; padding: 0 0 42px; overflow: hidden; } .launcher-promo { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 32px; padding: 0 220px 0 24px; background: #dfff4b; color: #111; font-size: 13px; white-space: nowrap; } .launcher-promo strong { font-weight: 700; } .launcher-promo button { padding: 0; background: transparent; color: #111; font-weight: 700; text-decoration: underline; } .launcher-countdown { display: grid; min-width: 18px; height: 20px; padding: 0 5px; border-radius: 7px; background: #fff; place-items: center; } .launcher-account-bar { position: absolute; top: 16px; right: 22px; display: flex; align-items: center; gap: 0; z-index: 2; } .launcher-main-with-promo .launcher-account-bar { top: 44px; } .launcher-project-list-actions { display: flex; align-items: center; gap: 10px; } .launcher-project-create > button { display: grid; border-style: dashed; color: #777; place-items: center; } .launcher-project-thumb { display: grid; place-items: center; } .launcher-project-thumb span { display: grid; width: 54px; height: 54px; border-radius: 14px; background: #fff; color: #f26d2d; font-size: 18px; font-weight: 800; place-items: center; box-shadow: 0 8px 22px rgb(242 109 45 / 16%); } .launcher-page { display: grid; gap: 22px; width: min(1054px, calc(100vw - 122px)); margin: 0 auto; padding: 118px 0 0; } .launcher-page header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; } .launcher-page h1 { margin: 0; color: #111827; font-size: 28px; letter-spacing: 0; } .launcher-page p { margin: 8px 0 0; color: #8b8b8b; font-size: 13px; } .launcher-project-runtime-summary { display: block; margin-top: 5px; color: #687386; font-size: 11px; overflow-wrap: anywhere; } .launcher-page-actions { display: flex; flex-wrap: wrap; gap: 8px; } .launcher-project-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; margin: 16px 0 14px; padding: 12px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; } .launcher-project-form label { display: grid; gap: 6px; min-width: 0; color: #6b7280; font-size: 12px; } .launcher-project-form input { min-width: 0; height: 34px; padding: 0 10px; border: 1px solid #d8dde5; border-radius: 8px; color: #111827; background: #fff; } .launcher-page-actions button, .launcher-page .launcher-project-list-actions button, .launcher-project-table article > button, .launcher-empty-projects button { height: 32px; padding: 0 12px; border: 1px solid #d8dde5; border-radius: 8px; background: #fff; color: #111827; font-size: 12px; } .launcher-page .launcher-project-list-actions button:disabled { cursor: not-allowed; opacity: 0.55; } .launcher-page-actions button:last-child { border-color: #111827; background: #111827; color: #fff; } .launcher-project-table { display: grid; gap: 8px; } .launcher-project-table article { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto auto; align-items: center; gap: 10px; min-height: 62px; padding: 10px 12px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; } .launcher-project-table article > .launcher-project-row-main { display: grid; justify-items: start; height: auto; min-width: 0; padding: 0; border: 0; background: transparent; text-align: left; } .launcher-project-table article strong { display: block; color: #111827; font-size: 14px; } .launcher-project-table article small { display: block; margin-top: 4px; color: #8b8b8b; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .launcher-project-table article span { color: #6b7280; font-size: 12px; white-space: nowrap; } .launcher-empty-projects { display: grid; justify-items: center; gap: 12px; min-height: 220px; padding: 44px; border: 1px dashed #d8dde5; border-radius: 8px; color: #6b7280; } .launcher-empty-projects strong { color: #111827; font-size: 15px; } .launcher-help-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } .launcher-help-cards article { display: grid; min-height: 118px; padding: 18px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; color: #111827; font-size: 14px; font-weight: 700; align-content: end; } .launcher-agent-chat-page { padding-top: 92px; } .launcher-agent-chat-page > header .launcher-project-list-actions button { height: 34px; padding: 0 12px; border: 1px solid #d8dde5; border-radius: 6px; background: #fff; color: #111827; font-size: 12px; white-space: nowrap; } .launcher-agent-chat-page > header .launcher-project-list-actions button:last-child { border-color: #111827; background: #111827; color: #fff; } .launcher-agent-chat-layout { display: grid; grid-template-columns: minmax(220px, 0.3fr) minmax(0, 1fr); align-items: start; gap: 12px; width: 100%; min-width: 0; min-height: min(620px, calc(100vh - 168px)); } .launcher-agent-chat-sidebar, .launcher-agent-chat-main { min-width: 0; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; } .launcher-agent-chat-sidebar { display: grid; align-content: start; gap: 12px; padding: 12px; } .launcher-agent-chat-project { display: grid; gap: 10px; } .launcher-agent-chat-project label { display: grid; gap: 6px; color: #6b7280; font-size: 12px; } .launcher-agent-chat-project input { min-width: 0; height: 34px; padding: 0 10px; border: 1px solid #d8dde5; border-radius: 8px; color: #111827; background: #fff; } .launcher-agent-picker { display: grid; gap: 8px; max-height: 450px; overflow: auto; } .launcher-agent-picker button { display: grid; justify-items: start; gap: 5px; min-width: 0; padding: 10px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; color: #111827; text-align: left; } .launcher-agent-picker .launcher-agent-active { border-color: #8b5cf6; background: #f8f2ff; } .launcher-agent-picker strong, .launcher-agent-picker span, .launcher-agent-picker small { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .launcher-agent-picker strong { font-size: 13px; } .launcher-agent-picker span, .launcher-agent-picker small { color: #6b7280; font-size: 11px; } .launcher-agent-chat-main { display: grid; grid-template-rows: auto auto auto auto clamp(260px, 40vh, 380px) auto; align-content: start; width: 100%; overflow: visible; } .launcher-agent-chat-main > header { display: flex; justify-content: space-between; gap: 12px; padding: 14px; border-bottom: 1px solid #e5e7eb; } .launcher-agent-chat-main h2, .launcher-agent-chat-main p { margin: 0; } .launcher-agent-chat-main h2 { color: #111827; font-size: 16px; } .launcher-agent-chat-main p, .launcher-agent-chat-main small { color: #6b7280; font-size: 12px; } .launcher-agent-session-bar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; min-width: 0; padding: 8px 12px; border-bottom: 1px solid #e5e7eb; background: #f8fafc; } .launcher-agent-session-actions, .launcher-agent-session-list { display: flex; align-items: center; gap: 6px; } .launcher-agent-session-actions button { display: grid; width: 30px; height: 30px; padding: 0; border: 1px solid #d8dde5; border-radius: 6px; background: #fff; color: #374151; place-items: center; } .launcher-agent-session-list { min-width: 0; overflow-x: auto; } .launcher-agent-session-list button { display: flex; flex: 0 0 auto; align-items: center; gap: 7px; max-width: 190px; height: 30px; padding: 0 9px; border: 1px solid #d8dde5; border-radius: 6px; background: #fff; color: #374151; } .launcher-agent-session-list button span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .launcher-agent-session-list button small { flex: 0 0 auto; } .launcher-agent-session-list .launcher-agent-session-active { border-color: #7c3aed; background: #f5f0ff; color: #5b21b6; } .launcher-agent-session-list .launcher-agent-session-archived { border-style: dashed; color: #6b7280; } .launcher-agent-session-status { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .launcher-agent-chat-messages { grid-row: 5; display: grid; align-content: start; gap: 10px; height: clamp(260px, 40vh, 380px); min-height: 260px; max-height: 380px; padding: 14px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; } .launcher-agent-chat-messages .message { max-width: min(720px, 88%); margin: 0; } .launcher-agent-chat-messages .message--user { justify-self: end; } .launcher-agent-chat-waiting { position: sticky; bottom: 0; display: flex; align-items: center; gap: 9px; width: fit-content; max-width: 100%; padding: 9px 11px; border: 1px solid #d8dde5; border-radius: 8px; background: #f8fafc; box-shadow: 0 4px 12px rgb(15 23 42 / 8%); color: #374151; } .launcher-agent-chat-waiting > span { width: 14px; height: 14px; flex: 0 0 auto; border: 2px solid #cbd5e1; border-top-color: #111827; border-radius: 50%; animation: launcher-agent-chat-spin 0.8s linear infinite; } .launcher-agent-chat-waiting strong { display: block; min-width: 0; font-size: 12px; overflow-wrap: anywhere; } .launcher-agent-chat-waiting small { display: block; margin-top: 2px; color: #6b7280; font-size: 11px; } @keyframes launcher-agent-chat-spin { to { transform: rotate(360deg); } } @media (prefers-reduced-motion: reduce) { .launcher-agent-chat-waiting > span, .game-chat-runtime-status[data-tone='active'] .game-chat-runtime-state > span { animation: none; } } .launcher-agent-chat-composer { grid-row: 6; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 12px; border-top: 1px solid #e5e7eb; } .launcher-agent-chat-composer input { min-width: 0; height: 36px; padding: 0 12px; border: 1px solid #d8dde5; border-radius: 8px; color: #111827; background: #fff; } .launcher-agent-chat-composer button { height: 36px; padding: 0 14px; border: 0; border-radius: 8px; background: #111827; color: #fff; } .launcher-agent-chat-mode { display: grid; grid-template-columns: repeat(3, auto); gap: 2px; padding: 2px; border: 1px solid #d8dde5; border-radius: 8px; background: #f3f4f6; } .launcher-agent-chat-mode button { height: 30px; padding: 0 9px; border-radius: 6px; background: transparent; color: #6b7280; font-size: 12px; } .launcher-agent-chat-mode button.is-active { background: #fff; box-shadow: 0 1px 2px rgb(15 23 42 / 10%); color: #111827; } .launcher-agent-goal-composer-summary { min-width: 0; height: 36px; padding: 0 12px; border: 1px solid #d8dde5; border-radius: 8px; background: #f8fafc; color: #44536a; font-size: 12px; line-height: 34px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .launcher-agent-runtime-stack { display: grid; gap: 8px; } .launcher-agent-runtime-stack .agent-runtime-status { margin-top: 0; } .launcher-agent-goal-status { display: grid; gap: 7px; margin: 12px 14px 0; padding: 10px 12px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #111827; } .launcher-agent-goal-status header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; } .launcher-agent-goal-status header > div:first-child, .launcher-agent-goal-copy { display: grid; min-width: 0; gap: 3px; } .launcher-agent-goal-status strong { font-size: 13px; } .launcher-agent-goal-status p, .launcher-agent-goal-status small { margin: 0; color: #647084; font-size: 12px; overflow-wrap: anywhere; } .launcher-agent-goal-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 6px; } .launcher-agent-goal-actions button { display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 9px; border: 1px solid #d8dde5; border-radius: 7px; background: #fff; color: #111827; font-size: 12px; } .launcher-agent-goal-actions button:disabled { background: #eef2f7; color: #9aa3b2; } .agent-llm-warning { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 12px 14px 0; padding: 10px 12px; border: 1px solid #f4c7a1; border-radius: 8px; background: #fff7ed; color: #8a3b12; font-size: 13px; } .agent-llm-warning strong { min-width: 0; font-weight: 700; overflow-wrap: anywhere; } .agent-llm-warning button { flex: 0 0 auto; height: 30px; padding: 0 10px; border: 1px solid #f4c7a1; border-radius: 7px; background: #fff; color: #8a3b12; } .agent-runtime-status { display: grid; gap: 6px; margin: 12px 14px 0; padding: 10px 12px; border: 1px solid #d8dde5; border-radius: 8px; background: #f8fafd; color: #111827; } .agent-conversation-panel > .agent-runtime-status { margin: 0; } .agent-runtime-status header { display: flex; align-items: center; justify-content: space-between; gap: 10px; } .agent-runtime-status .agent-runtime-status-header-actions { display: flex; align-items: center; gap: 8px; min-width: 0; } .agent-runtime-status-header-actions small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .agent-runtime-status .agent-runtime-collapse-toggle { display: grid; width: 28px; height: 28px; flex: 0 0 auto; padding: 0; border: 1px solid #d8dde5; border-radius: 7px; background: #fff; color: #44536a; cursor: pointer; place-items: center; } .agent-runtime-status .agent-runtime-collapse-toggle:hover, .agent-runtime-status .agent-runtime-collapse-toggle:focus-visible { border-color: #aeb8c7; background: #f3f6fa; } .agent-runtime-status .agent-runtime-status-details { display: grid; gap: 6px; } .agent-runtime-status .agent-runtime-actions { display: flex; flex-wrap: wrap; gap: 8px; } .agent-runtime-status .agent-runtime-actions button { height: 28px; padding: 0 10px; border: 1px solid #d8dde5; border-radius: 7px; background: #fff; color: #111827; font-size: 12px; } .agent-runtime-status .agent-runtime-actions button:disabled { color: #9aa3b2; background: #eef2f7; } .agent-runtime-status strong { font-size: 13px; } .agent-runtime-status p, .agent-runtime-status ol { margin: 0; } .agent-runtime-status p, .agent-runtime-status li, .agent-runtime-status small { color: #647084; font-size: 12px; overflow-wrap: anywhere; } .agent-runtime-status ol { display: grid; gap: 3px; padding-left: 18px; } .agent-runtime-status div { display: grid; gap: 3px; } .agent-runtime-status .agent-runtime-event-toggle { justify-self: start; min-height: 24px; padding: 0; border: 0; background: transparent; color: #44536a; font-size: 12px; text-decoration: underline; text-underline-offset: 2px; } .agent-runtime-status .agent-runtime-user-input { display: grid; gap: 10px; padding-top: 10px; border-top: 1px solid #d8dde5; } .agent-runtime-user-input header small { color: #8a3b12; } .agent-runtime-user-input fieldset { display: grid; min-width: 0; gap: 8px; margin: 0; padding: 0; border: 0; } .agent-runtime-user-input legend { padding: 0; color: #111827; font-size: 12px; font-weight: 700; } .agent-runtime-user-input-options { grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: 8px; } .agent-runtime-user-input-options button { display: grid; min-height: 56px; gap: 3px; padding: 8px 10px; border: 1px solid #cfd6e1; border-radius: 7px; background: #fff; color: #111827; text-align: left; cursor: pointer; } .agent-runtime-user-input-options button:hover, .agent-runtime-user-input-options button:focus-visible { border-color: #9da8b8; background: #f5f7fa; } .agent-runtime-user-input-options button[aria-pressed='true'] { border-color: #e46f2c; background: #fff7ed; box-shadow: inset 0 0 0 1px #e46f2c; } .agent-runtime-user-input-options button:disabled { cursor: default; opacity: 0.68; } .agent-runtime-user-input textarea { width: 100%; min-height: 58px; padding: 8px 10px; border: 1px solid #cfd6e1; border-radius: 7px; background: #fff; color: #111827; font: inherit; line-height: 1.45; resize: vertical; } .agent-runtime-user-input textarea:focus-visible { border-color: #e46f2c; outline: 2px solid rgb(228 111 44 / 16%); outline-offset: 1px; } .agent-runtime-user-input .agent-runtime-user-input-submit { justify-self: end; min-height: 32px; padding: 0 12px; border: 1px solid #cf5f22; border-radius: 7px; background: #e46f2c; color: #fff; font-size: 12px; font-weight: 700; } .agent-runtime-user-input .agent-runtime-user-input-submit:disabled { border-color: #cfd6e1; background: #e8ecf2; color: #8b95a5; } .agent-runtime-status .agent-runtime-user-input-missing { padding-top: 8px; border-top: 1px solid #d8dde5; color: #9a3412; } .launcher-project-development { padding-top: 92px; } .launcher-development-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } .launcher-development-grid article, .launcher-development-canvas, .launcher-development-assets { border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; } .launcher-development-grid article { display: grid; align-content: start; gap: 8px; min-height: 108px; padding: 14px; } .launcher-development-grid span, .launcher-development-assets h2 { color: #6b7280; font-size: 12px; font-weight: 500; } .launcher-development-grid strong { min-width: 0; color: #111827; font-size: 15px; overflow-wrap: anywhere; } .launcher-development-grid small { color: #8b8b8b; font-size: 11px; } .launcher-development-canvas { display: grid; min-height: 300px; background: linear-gradient(#f3f4f6 1px, transparent 1px), linear-gradient(90deg, #f3f4f6 1px, transparent 1px), #fff; background-size: 24px 24px; place-items: center; } .launcher-development-canvas > div { display: grid; justify-items: center; gap: 8px; color: #6b7280; } .launcher-development-canvas strong { color: #111827; font-size: 16px; } .launcher-development-assets { display: grid; gap: 8px; padding: 14px; } .launcher-development-assets h2, .launcher-development-assets p { margin: 0; } .launcher-development-assets div { display: grid; grid-template-columns: minmax(0, 0.45fr) minmax(0, 1fr); gap: 12px; min-height: 32px; align-items: center; } .launcher-development-assets span, .launcher-development-assets small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .launcher-development-assets span { color: #111827; font-size: 12px; } .launcher-development-assets small, .launcher-development-assets p { color: #6b7280; font-size: 12px; } .supervisor-chat-only-shell { display: grid; grid-template-rows: 64px minmax(0, 1fr) auto; width: 100%; height: 100vh; min-width: 0; min-height: 480px; overflow: hidden; background: #f5f6f8; color: #111827; } .supervisor-chat-only-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; padding: 0 18px; border-bottom: 1px solid #e1e5eb; background: #fff; } .supervisor-chat-only-header > div, .supervisor-chat-only-header-status { display: flex; align-items: center; min-width: 0; } .supervisor-chat-only-header > div:first-child { gap: 10px; } .supervisor-chat-only-header strong { flex: 0 0 auto; font-size: 15px; } .supervisor-chat-only-header span { min-width: 0; overflow: hidden; color: #6b7280; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; } .supervisor-chat-only-header-status { justify-content: flex-end; gap: 10px; max-width: 52%; } .supervisor-chat-only-header-status button { display: grid; width: 34px; height: 34px; flex: 0 0 auto; padding: 0; border: 1px solid #d8dde5; border-radius: 6px; background: #fff; color: #374151; place-items: center; } .supervisor-chat-only-message-list { display: flex; flex-direction: column; gap: 10px; min-width: 0; min-height: 0; padding: 22px clamp(16px, 4vw, 40px); border: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; } .supervisor-chat-only-message-list .message { display: grid; gap: 5px; align-self: flex-start; width: fit-content; max-width: min(720px, 86%); margin: 0; padding: 10px 12px; border: 1px solid #dfe3e9; border-radius: 8px; background: #fff; color: #263142; line-height: 1.55; } .game-chat-message-text { min-width: 0; white-space: pre-wrap; overflow-wrap: anywhere; } .game-chat-message-time { justify-self: start; color: #98a2b3; font-size: 10px; line-height: 1; } .supervisor-chat-only-message-list .message--user .game-chat-message-time { justify-self: end; } .supervisor-chat-only-message-list .message--user { align-self: flex-end; border-color: #cfd6df; background: #e9edf2; color: #111827; } .supervisor-chat-only-message-list .supervisor-chat-only-stream { border-color: #b9d8c5; } .supervisor-chat-only-waiting { position: static; align-self: flex-start; } .supervisor-chat-only-runtime-controls { align-self: stretch; width: 100%; max-width: 720px; } .supervisor-chat-only-runtime-controls .agent-runtime-user-input { display: grid; gap: 10px; padding: 14px; border: 1px solid #d8dde5; border-radius: 8px; background: #f7f8fa; } .supervisor-chat-only-runtime-controls .agent-runtime-user-input header { display: grid; gap: 3px; } .supervisor-chat-only-runtime-controls .pending-command, .supervisor-chat-only-runtime-controls .agent-runtime-user-input { margin: 0; } .supervisor-chat-only-composer { display: grid; grid-template-columns: minmax(0, 1fr) 42px; align-items: end; gap: 10px; padding: 14px clamp(16px, 4vw, 40px) 18px; border-top: 1px solid #e1e5eb; background: #fff; } .supervisor-chat-only-composer textarea { width: 100%; min-width: 0; height: 74px; max-height: 74px; padding: 11px 12px; overflow-y: auto; resize: none; border: 1px solid #cfd6df; border-radius: 8px; background: #fff; color: #111827; font: inherit; line-height: 1.5; } .supervisor-chat-only-composer textarea:focus-visible { border-color: #6b7280; outline: 2px solid rgb(107 114 128 / 18%); outline-offset: 1px; } .supervisor-chat-only-composer button { display: grid; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 8px; background: #111827; color: #fff; place-items: center; } .supervisor-chat-only-composer button:disabled, .supervisor-chat-only-composer textarea:disabled { cursor: not-allowed; opacity: 0.55; } .game-chat-shell { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; height: 100dvh; min-width: 0; min-height: 480px; overflow: hidden; background: #101827; } .game-chat-shell.has-preview { grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr); } .game-chat-preview { min-width: 0; min-height: 0; overflow: hidden; background: #05070b; } .game-chat-preview iframe { display: block; width: 100%; height: 100%; border: 0; background: #fff; } .game-chat-conversation { height: 100dvh; min-height: 0; } .game-chat-runtime-status { display: grid; grid-template-columns: auto minmax(180px, 1fr) auto auto; align-items: center; gap: 14px; min-width: 0; min-height: 66px; padding: 9px 16px; border-bottom: 1px solid #e1e5eb; background: #f8f9fb; } .game-chat-runtime-state { display: flex; align-items: center; gap: 9px; min-width: 0; } .game-chat-runtime-state > span { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 50%; background: #98a2b3; box-shadow: 0 0 0 4px rgb(152 162 179 / 14%); } .game-chat-runtime-status[data-tone='active'] .game-chat-runtime-state > span { background: #12b76a; box-shadow: 0 0 0 4px rgb(18 183 106 / 14%); } .game-chat-runtime-status[data-tone='warning'] .game-chat-runtime-state > span { background: #f79009; box-shadow: 0 0 0 4px rgb(247 144 9 / 15%); } .game-chat-runtime-status[data-tone='danger'] .game-chat-runtime-state > span { background: #f04438; box-shadow: 0 0 0 4px rgb(240 68 56 / 15%); } .game-chat-runtime-status[data-tone='complete'] .game-chat-runtime-state > span { background: #2e90fa; box-shadow: 0 0 0 4px rgb(46 144 250 / 14%); } .game-chat-runtime-state > div, .game-chat-runtime-now { display: grid; gap: 2px; min-width: 0; } .game-chat-runtime-state strong, .game-chat-runtime-now strong, .game-chat-runtime-now span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .game-chat-runtime-state strong { color: #1d2939; font-size: 12px; } .game-chat-runtime-state time, .game-chat-runtime-now span { color: #667085; font-size: 10px; } .game-chat-runtime-now strong { color: #344054; font-size: 12px; } .game-chat-runtime-meta { display: flex; flex-wrap: wrap; min-width: 0; justify-content: flex-end; gap: 5px; } .game-chat-runtime-meta span { padding: 3px 7px; border-radius: 999px; background: #eaecf0; color: #667085; font-size: 11px; white-space: nowrap; } .game-chat-runtime-meta span[data-tone='warning'] { background: #fef0c7; color: #b54708; } .game-chat-runtime-detail-button { flex: 0 0 auto; min-height: 32px; padding: 0 10px; border: 1px solid #cfd6df; border-radius: 6px; background: #fff; color: #344054; font-size: 11px; white-space: nowrap; } .game-chat-runtime-dialog .game-chat-progress-message { display: grid; width: 100%; gap: 9px; padding: 12px 14px; border: 1px solid #d9e2f0; border-radius: 8px; background: #f7f9fc; color: #344054; } .supervisor-chat-only-message-list .game-chat-stage-record { width: min(92%, 560px); max-width: 560px; border-color: #cfdbea; border-left: 4px solid #667eea; background: #f5f7ff; color: #344054; } .game-chat-progress-message > header { display: grid; gap: 3px; } .game-chat-progress-message > header strong { color: #1f2937; font-size: 13px; } .game-chat-progress-message > header span { color: #667085; font-size: 11px; } .game-chat-progress-summary, .game-chat-progress-evidence p { display: flex; min-width: 0; gap: 8px; margin: 0; font-size: 12px; line-height: 1.45; } .game-chat-progress-summary b, .game-chat-progress-evidence b { flex: 0 0 auto; font-weight: 650; } .game-chat-progress-agents, .game-chat-progress-evidence { display: grid; gap: 5px; min-width: 0; } .game-chat-progress-agents > b { color: #475467; font-size: 11px; } .game-chat-progress-agents > span { overflow-wrap: anywhere; color: #344054; font-size: 12px; line-height: 1.4; } .game-chat-progress-evidence { padding-top: 8px; border-top: 1px solid #e4e9f1; } .game-chat-progress-evidence p[data-tone='pass'] b { color: #067647; } .game-chat-progress-evidence p[data-tone='fail'] b { color: #b42318; } .game-chat-progress-evidence p[data-tone='rework'] b { color: #b54708; } .game-chat-progress-evidence p[data-tone='work'] b { color: #175cd3; } .game-chat-progress-evidence span { min-width: 0; overflow-wrap: anywhere; } .game-chat-runtime-dialog .game-chat-result-images { display: grid; width: 100%; gap: 9px; padding: 12px; border: 1px solid #d9e2f0; border-radius: 8px; background: #f7f9fc; color: #344054; } .game-chat-result-images > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; } .game-chat-result-images > header strong { color: #1f2937; font-size: 13px; } .game-chat-result-images > header span { color: #667085; font-size: 11px; } .game-chat-result-image-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; min-width: 0; } .game-chat-result-image-grid figure { display: grid; min-width: 0; margin: 0; overflow: hidden; border: 1px solid #dce3ed; border-radius: 8px; background: #fff; } .game-chat-result-image-open { display: block; width: 100%; padding: 0; overflow: hidden; border: 0; background: #111827; cursor: zoom-in; } .game-chat-result-image-open:focus-visible { outline: 3px solid #84adff; outline-offset: -3px; } .game-chat-result-image-grid img, .game-chat-result-image-placeholder { width: 100%; aspect-ratio: 16 / 9; background: #111827; } .game-chat-result-image-grid img { display: block; object-fit: contain; } .game-chat-result-image-placeholder { display: grid; color: #cbd5e1; font-size: 12px; place-items: center; } .game-chat-result-image-grid figcaption { display: grid; gap: 2px; min-width: 0; padding: 8px 9px; } .game-chat-result-image-grid figcaption b, .game-chat-result-image-grid figcaption span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .game-chat-result-image-grid figcaption b { color: #344054; font-size: 12px; } .game-chat-result-image-grid figcaption span { color: #667085; font-size: 10px; } .game-chat-runtime-dialog { display: grid; gap: 14px; width: min(840px, 100%); max-height: min(860px, calc(100dvh - 48px)); overflow-y: auto; } .game-chat-runtime-dialog-header { position: sticky; z-index: 1; top: -20px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin: -20px -20px 0; padding: 18px 20px 12px; border-bottom: 1px solid #eaecf0; background: #fff; } .game-chat-runtime-dialog-header > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 7px; min-width: 0; } .game-chat-runtime-dialog-header h2 { width: 100%; margin: 0; } .game-chat-runtime-dialog-header span, .game-chat-runtime-dialog-header time { color: #667085; font-size: 11px; } .game-chat-runtime-dialog-header span[data-tone='active'], .game-chat-runtime-dialog-header span[data-tone='complete'] { color: #067647; } .game-chat-runtime-dialog-header span[data-tone='warning'] { color: #b54708; } .game-chat-runtime-dialog-header span[data-tone='danger'] { color: #b42318; } .game-chat-runtime-dialog-header button { min-height: 32px; flex: 0 0 auto; padding: 0 11px; border: 1px solid #d0d5dd; border-radius: 6px; background: #fff; color: #344054; } .game-chat-runtime-event-list { display: grid; gap: 0; min-width: 0; overflow: hidden; border: 1px solid #e4e7ec; border-radius: 8px; } .game-chat-runtime-event-list > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; background: #f9fafb; } .game-chat-runtime-event-list > header strong { color: #344054; font-size: 12px; } .game-chat-runtime-event-list > header span, .game-chat-runtime-event-list > p { color: #667085; font-size: 11px; } .game-chat-runtime-event-list > p { margin: 0; padding: 12px; } .game-chat-runtime-event-list > div { display: grid; grid-template-columns: 64px 116px minmax(0, 1fr); gap: 9px; min-width: 0; padding: 8px 12px; border-top: 1px solid #eaecf0; color: #475467; font-size: 11px; line-height: 1.45; } .game-chat-runtime-event-list > div time { color: #98a2b3; font-variant-numeric: tabular-nums; } .game-chat-runtime-event-list > div b { overflow: hidden; color: #344054; text-overflow: ellipsis; white-space: nowrap; } .game-chat-runtime-event-list > div span { min-width: 0; overflow-wrap: anywhere; } .game-chat-image-viewer-backdrop { position: fixed; z-index: 280; display: grid; inset: 0; padding: 20px; background: rgb(3 7 18 / 88%); place-items: center; } .game-chat-image-viewer { display: grid; grid-template-rows: auto minmax(0, 1fr); width: min(1180px, 96vw); height: min(820px, 92dvh); min-width: 0; min-height: 0; overflow: hidden; border: 1px solid #334155; border-radius: 12px; background: #0b1220; box-shadow: 0 24px 80px rgb(0 0 0 / 45%); } .game-chat-image-viewer > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; padding: 10px 12px 10px 16px; border-bottom: 1px solid #263244; background: #111827; color: #f8fafc; } .game-chat-image-viewer > header > div:first-child { display: grid; min-width: 0; gap: 2px; } .game-chat-image-viewer > header strong, .game-chat-image-viewer > header span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .game-chat-image-viewer > header strong { font-size: 13px; } .game-chat-image-viewer > header span { color: #94a3b8; font-size: 10px; } .game-chat-image-viewer-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 5px; } .game-chat-image-viewer-actions button { display: grid; width: 32px; height: 32px; padding: 0; border: 1px solid #334155; border-radius: 6px; background: #182235; color: #e2e8f0; cursor: pointer; place-items: center; } .game-chat-image-viewer-actions button:hover:not(:disabled), .game-chat-image-viewer-actions button:focus-visible { border-color: #60a5fa; background: #1e3a5f; outline: 0; } .game-chat-image-viewer-actions button:disabled { cursor: not-allowed; opacity: 0.42; } .game-chat-image-viewer-actions output { width: 48px; color: #cbd5e1; font-size: 11px; text-align: center; } .game-chat-image-viewer-stage { display: grid; min-width: 0; min-height: 0; overflow: hidden; background: linear-gradient(45deg, #101827 25%, transparent 25%), linear-gradient(-45deg, #101827 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #101827 75%), linear-gradient(-45deg, transparent 75%, #101827 75%), #0b1220; background-position: 0 0, 0 8px, 8px -8px, -8px 0; background-size: 16px 16px; cursor: grab; place-items: center; touch-action: none; user-select: none; } .game-chat-image-viewer-stage.is-dragging { cursor: grabbing; } .game-chat-image-viewer-stage img { display: block; max-width: 92%; max-height: 92%; object-fit: contain; pointer-events: none; transform-origin: center; transition: transform 80ms ease-out; user-select: none; } .game-chat-image-viewer-stage.is-dragging img { transition: none; } .game-chat-conversation.supervisor-chat-only-shell { grid-template-rows: 64px auto minmax(0, 1fr) auto; } @media (max-width: 600px) { .supervisor-chat-only-header { padding: 0 12px; } .supervisor-chat-only-header > div:first-child > span { display: none; } .supervisor-chat-only-header-status { max-width: 58%; } .supervisor-chat-only-message-list .message { max-width: 92%; } .supervisor-chat-only-composer { padding-right: 12px; padding-left: 12px; } } @media (max-width: 760px) { .game-chat-shell.has-preview { grid-template-rows: minmax(220px, 42dvh) minmax(0, 1fr); grid-template-columns: minmax(0, 1fr); } .game-chat-conversation { height: auto; min-height: 0; } .game-chat-shell.has-preview .game-chat-conversation { height: 58dvh; } .game-chat-runtime-status { grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; padding: 8px 12px; } .game-chat-runtime-now { grid-row: 2; grid-column: 1 / -1; } .game-chat-runtime-meta { display: none; } .game-chat-runtime-detail-button { grid-column: 3; } .game-chat-runtime-dialog { width: 100%; max-height: 100dvh; border-radius: 0; } .game-chat-runtime-event-list > div { grid-template-columns: 58px minmax(0, 1fr); } .game-chat-runtime-event-list > div span { grid-column: 1 / -1; } .game-chat-runtime-dialog .game-chat-result-image-grid { grid-template-columns: minmax(0, 1fr); } .game-chat-image-viewer-backdrop { padding: 0; } .game-chat-image-viewer { width: 100vw; height: 100dvh; border: 0; border-radius: 0; } .game-chat-image-viewer > header { align-items: flex-start; padding-left: 12px; } .game-chat-image-viewer > header > div:first-child { max-width: 34%; } .game-chat-image-viewer-actions output { width: 42px; } } .project-supervisor-surface { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 280px); gap: 18px; min-width: 0; min-height: 560px; } .project-supervisor-conversation { display: grid; grid-template-rows: minmax(340px, 1fr) auto auto auto; align-content: stretch; gap: 10px; min-width: 0; } .project-supervisor-message-list { min-height: 340px; max-height: calc(100vh - 330px); border-radius: 8px; background: #fff; } .project-supervisor-surface .agent-runtime-status { margin: 0; } .project-supervisor-surface .agent-runtime-status header, .project-supervisor-collaboration header { align-items: center; } .project-runtime-title { display: inline-flex; align-items: center; gap: 7px; min-width: 0; } .project-runtime-live-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #94a3b8; } .project-runtime-live-dot.is-running { background: #22a35a; box-shadow: 0 0 0 4px rgb(34 163 90 / 13%); animation: project-runtime-pulse 1.6s ease-in-out infinite; } .project-runtime-live-dot.is-waiting { background: #df8a16; box-shadow: 0 0 0 4px rgb(223 138 22 / 13%); } .project-runtime-live-dot.is-failed { background: #d64545; box-shadow: 0 0 0 4px rgb(214 69 69 / 13%); } .project-runtime-live-dot.is-completed { background: #2878d4; } @keyframes project-runtime-pulse { 50% { opacity: 0.5; transform: scale(0.82); } } .agent-runtime-status .project-runtime-overview { gap: 5px; padding: 9px 10px; border-radius: 8px; background: #eef4ff; } .project-runtime-overview > span { color: #53657c; font-size: 11px; } .agent-runtime-status .project-runtime-plan-progress { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; } .project-runtime-plan-progress span { color: #53657c; font-size: 10px; } .project-runtime-plan-progress progress { width: 100%; height: 6px; accent-color: #2c73d2; } .agent-runtime-status .project-runtime-professional-list { gap: 7px; padding-top: 7px; border-top: 1px solid #d8dde5; } .project-runtime-professional-list article { display: grid; gap: 4px; padding: 8px 9px; border: 1px solid #dfe5ed; border-left-width: 3px; border-radius: 8px; background: #fff; } .project-runtime-professional-list article.is-running { border-left-color: #22a35a; } .project-runtime-professional-list article.is-waiting { border-left-color: #df8a16; background: #fffaf0; } .project-runtime-professional-list article.is-failed { border-left-color: #d64545; background: #fff7f7; } .project-runtime-professional-list article.is-completed { border-left-color: #2878d4; } .project-runtime-professional-list article > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .project-runtime-professional-list article > header span { color: #475569; font-size: 10px; font-weight: 700; } .project-runtime-professional-list article p { display: -webkit-box; overflow: hidden; color: #334155; font-size: 11px; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .agent-runtime-status .project-runtime-professional-actions { grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 6px; margin-top: 3px; } .project-runtime-professional-actions span { min-width: 0; overflow: hidden; color: #8a5a12; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; } .project-runtime-professional-actions button { height: 25px; padding: 0 8px; border: 1px solid #d8b677; border-radius: 6px; background: #fff; color: #785012; font-size: 10px; } .project-runtime-professional-actions button:last-child { border-color: #2c73d2; background: #2c73d2; color: #fff; } .project-runtime-professional-actions button:disabled { opacity: 0.55; } .agent-runtime-status .project-runtime-error { color: #b42323; } .agent-runtime-status .project-runtime-retry-feedback { display: block; margin-top: 4px; color: #2c5f9f; font-size: 10px; } .agent-runtime-status .project-runtime-recovery { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 7px; padding: 8px; border: 1px solid #efc3bd; border-radius: 8px; background: #fff7f5; } .project-runtime-recovery > span { display: grid; min-width: 0; gap: 2px; color: #7f2f2a; font-size: 11px; } .project-runtime-recovery > span small { color: #775b58; font-size: 10px; } .project-runtime-recovery > button { min-height: 30px; padding: 0 10px; border: 1px solid #d6614f; border-radius: 7px; background: #d6614f; color: #fff; font-size: 10px; font-weight: 700; white-space: nowrap; } .project-runtime-recovery > button:disabled { opacity: 0.58; } .project-runtime-recovery > .project-runtime-retry-feedback { grid-column: 1 / -1; margin: 0; } .agent-runtime-status .project-runtime-pending-command { grid-template-columns: minmax(0, 1fr) auto auto; gap: 6px; margin-top: 4px; padding: 7px; border-radius: 8px; background: #fff8e8; } .agent-runtime-status .project-runtime-pending-command button { height: 28px; padding: 0 9px; font-size: 10px; } .agent-runtime-status .project-runtime-pending-command small { font-size: 10px; } .project-supervisor-composer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; } .project-supervisor-composer textarea { min-width: 0; min-height: 72px; max-height: 180px; padding: 10px 12px; resize: vertical; border: 1px solid #cfd7e6; border-radius: 8px; background: #fff; color: #111827; font: inherit; line-height: 1.5; } .project-supervisor-composer button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 84px; height: 40px; padding: 0 16px; border: 1px solid #1f6feb; border-radius: 8px; background: #1f6feb; color: #fff; } .project-supervisor-composer button:disabled { border-color: #cfd6e1; background: #e8ecf2; color: #8b95a5; } .project-supervisor-workspace-status { color: #7b8492; font-size: 11px; overflow-wrap: anywhere; } .project-supervisor-collaboration { min-width: 0; padding-left: 18px; border-left: 1px solid #e5e7eb; } .project-supervisor-collaboration header { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 8px; } .project-supervisor-collaboration h2, .project-supervisor-collaboration p { margin: 0; } .project-supervisor-collaboration h2 { color: #111827; font-size: 14px; } .project-supervisor-collaboration header small, .project-supervisor-collaboration p { color: #8b8b8b; font-size: 11px; } .project-supervisor-collaboration > div { display: grid; } .project-supervisor-collaboration article { display: grid; gap: 5px; min-width: 0; padding: 10px 0; border-top: 1px solid #eef0f3; } .project-supervisor-collaboration article strong { color: #111827; font-size: 12px; } .project-supervisor-collaboration article span, .project-supervisor-collaboration article small { color: #647084; font-size: 11px; overflow-wrap: anywhere; } .launcher-card-collage { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); gap: 2px; } .launcher-card-collage span:nth-child(1) { background: radial-gradient(circle at 45% 38%, #6b5c43 0 18%, transparent 19%), radial-gradient(circle at 62% 54%, #2f2a23 0 25%, transparent 26%), linear-gradient(135deg, #91a17e, #2c3327); } .launcher-card-collage span:nth-child(2) { background: radial-gradient(circle at 58% 45%, #b28b5a 0 16%, transparent 17%), radial-gradient(circle at 48% 55%, #302114 0 24%, transparent 25%), linear-gradient(135deg, #d9e8ef, #9fb0a0); } .launcher-card-collage span:nth-child(3) { background: radial-gradient(circle at 50% 54%, #eac9c0 0 22%, transparent 23%), linear-gradient(135deg, #f7d9d5, #dab6aa); } .launcher-card-collage span:nth-child(4) { background: radial-gradient(circle at 56% 50%, #32271b 0 22%, transparent 23%), linear-gradient(135deg, #8e6c4e, #2b211b); } .launcher-card-ui > div { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; padding: 16px; background: #fff7f2; } .launcher-card-ui span { border-radius: 4px; background: linear-gradient(#ff8d5c 0 0) 12px 12px / 40px 4px no-repeat, linear-gradient(#ffd4c2 0 0) 12px 24px / 70px 4px no-repeat, linear-gradient(#fee4d8, #fff); box-shadow: inset 0 0 0 1px #fed7c8; } .launcher-card-pattern > div { display: grid; grid-template-columns: repeat(2, 1fr); background: linear-gradient( 45deg, transparent 46%, #fff 46% 54%, transparent 54% ), linear-gradient(135deg, #55405a, #e4b2a7); } .launcher-card-pattern span { display: grid; color: #fff; font-size: 38px; place-items: center; text-shadow: 0 2px 8px rgb(0 0 0 / 18%); } .launcher-card-orange > div { display: grid; grid-template-columns: 1.1fr 1fr; background: #fff8ee; } .launcher-card-orange span:first-child { display: grid; color: #ff7a1a; font-size: 32px; font-weight: 900; place-items: start; padding: 18px; } .launcher-card-orange span:last-child { display: grid; color: #f06d3d; font-size: 96px; font-weight: 900; line-height: 1; place-items: center; } @media (max-width: 760px) { .launcher-main { grid-template-rows: auto auto auto; overflow: visible; } .launcher-promo { justify-content: flex-start; min-height: 38px; padding: 7px 10px; overflow: hidden; font-size: 11px; } .launcher-promo span:not(.launcher-countdown):not(:nth-child(3)):not(:nth-child(6)):not( :nth-child(9) ) { display: none; } .launcher-promo strong { overflow: hidden; text-overflow: ellipsis; } .launcher-account-bar { position: static; justify-content: flex-end; padding: 18px 14px 0; } .launcher-account-bar span { max-width: 148px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .launcher-project-form { grid-template-columns: 1fr; } .launcher-page { width: min(100%, calc(100vw - 76px)); } .launcher-agent-chat-page > header, .launcher-agent-chat-main > header { align-items: stretch; flex-direction: column; gap: 10px; } .launcher-agent-chat-main > header > small { max-width: 100%; overflow-wrap: anywhere; } .launcher-development-grid { grid-template-columns: 1fr; } .launcher-agent-chat-layout { grid-template-columns: 1fr; min-height: auto; } .launcher-agent-picker { max-height: 240px; } .launcher-agent-chat-main { min-height: 620px; } .launcher-agent-chat-composer { grid-template-columns: minmax(0, 1fr) auto; } .launcher-agent-chat-mode { grid-column: 1 / -1; justify-self: start; } .launcher-agent-goal-status header { align-items: stretch; flex-direction: column; } .launcher-agent-goal-actions { justify-content: flex-start; } .agent-runtime-user-input-options { grid-template-columns: 1fr; } .agent-runtime-user-input .agent-runtime-user-input-submit { width: 100%; justify-self: stretch; } .launcher-agent-session-bar { grid-template-columns: auto minmax(0, 1fr); } .launcher-agent-session-status { display: none; } .launcher-development-assets div { grid-template-columns: 1fr; } .project-supervisor-surface { grid-template-columns: 1fr; min-height: auto; } .project-supervisor-conversation { grid-template-rows: minmax(320px, auto) auto auto auto; } .project-supervisor-message-list { max-height: 52vh; } .project-supervisor-composer { grid-template-columns: 1fr; } .project-supervisor-composer button { width: 100%; } .project-supervisor-collaboration { padding: 14px 0 0; border-top: 1px solid #e5e7eb; border-left: 0; } } .launcher-dialog-backdrop { position: fixed; inset: 0; z-index: 200; display: grid; padding: 24px; background: rgb(0 0 0 / 56%); place-items: center; } .launcher-dialog { width: min(420px, 100%); padding: 20px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; color: #171717; box-shadow: 0 18px 52px rgb(0 0 0 / 18%); } .launcher-dialog h2 { margin: 0 0 10px; font-size: 18px; } .launcher-dialog p { margin: 0; color: #6b7280; overflow-wrap: anywhere; } .project-professional-result-dialog { width: min(760px, 100%); max-height: min(760px, calc(100vh - 48px)); overflow: hidden; } .project-professional-result-dialog header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; } .project-professional-result-dialog header button { min-height: 32px; padding: 0 12px; border: 1px solid #e1c8bb; border-radius: 8px; background: #fff; color: #7a4c37; } .project-professional-result-dialog pre { max-height: min(620px, calc(100vh - 170px)); margin: 0; overflow: auto; padding: 16px; border-radius: 10px; background: #f8f2ee; color: #49372f; font: inherit; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; user-select: text; } .launcher-agent-goal-dialog { width: min(560px, 100%); max-height: min(760px, calc(100vh - 48px)); overflow-y: auto; } .launcher-agent-goal-fields { display: grid; gap: 12px; } .launcher-agent-goal-fields label { display: grid; gap: 6px; color: #44536a; font-size: 12px; font-weight: 700; } .launcher-agent-goal-fields textarea { width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid #d8dde5; border-radius: 8px; background: #fff; color: #111827; font: inherit; line-height: 1.5; resize: vertical; } .launcher-agent-goal-fields textarea:focus-visible { border-color: #64748b; outline: 2px solid rgb(100 116 139 / 18%); outline-offset: 1px; } .launcher-dialog .launcher-agent-goal-dialog-error { margin-top: 10px; color: #b42318; font-size: 12px; } .launcher-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; } .launcher-dialog-actions button { height: 34px; padding: 0 14px; border: 1px solid #d1d5db; border-radius: 6px; background: #fff; color: #171717; cursor: pointer; } .launcher-dialog-actions button:last-child { border-color: #111827; background: #111827; color: #fff; } .app-shell { min-height: 100vh; background: #f5f7fb; } .app-shell--user { display: flex; justify-content: center; padding: 24px; } .app-shell--dev { display: grid; grid-template-columns: minmax(360px, 0.85fr) minmax(520px, 1.15fr); gap: 1px; background: #d9dee8; } .chat-pane { display: flex; flex-direction: column; gap: 16px; min-width: 0; padding: 18px; background: #fff; } .app-shell--user .chat-pane { width: min(900px, 100%); min-height: calc(100vh - 48px); border: 1px solid #d9dee8; } .app-shell--dev .chat-pane { min-height: 100vh; } .chat-header, .panel-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .chat-header-title { display: grid; gap: 4px; min-width: 0; } .chat-header-actions { display: flex; flex-wrap: wrap; gap: 8px; } .chat-quick-actions { display: flex; flex-wrap: wrap; gap: 8px; } .panel-header { margin-bottom: 10px; } .panel-actions { display: flex; flex-wrap: wrap; gap: 8px; } .panel-header button, .chat-header button, .chat-quick-actions button, .local-project-form button, .panel-actions select { height: 32px; padding: 0 12px; border: 1px solid #cfd7e6; border-radius: 6px; } .panel-header button, .chat-header button, .chat-quick-actions button, .local-project-form button { color: #fff; background: #1f6feb; } .panel-actions select { background: #fff; } h1, h2, p { margin: 0; } h1 { font-size: 24px; } h2 { margin-bottom: 14px; font-size: 16px; } .chat-header span, .chat-header small, .task-pane span, .log-pane p { color: #647084; } .chat-header small { overflow-wrap: anywhere; } .run-history { display: flex; flex-wrap: wrap; gap: 8px; max-height: 190px; overflow: auto; } .run-history button { display: grid; gap: 2px; min-width: 150px; max-width: 100%; padding: 7px 9px; border: 1px solid #dce3ee; border-radius: 6px; background: #f8fafc; color: #18202f; text-align: left; } .run-history button[aria-current='true'], .trace-history button[aria-current='true'] { border-color: #1f6feb; background: #eef5ff; } .run-history small { color: #647084; overflow-wrap: anywhere; } .run-history-more { align-self: center; } .settings-overlay { position: fixed; inset: 0; z-index: 220; display: grid; place-items: center; padding: 18px; background: rgb(24 32 47 / 36%); } .settings-panel { display: grid; gap: 10px; width: min(920px, 100%); max-height: calc(100vh - 36px); padding: 18px; overflow: auto; border: 1px solid #cfd7e6; background: #fff; } .settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .settings-grid label { display: grid; gap: 6px; min-width: 0; color: #647084; font-size: 13px; } .settings-grid input, .settings-grid select { min-width: 0; height: 36px; padding: 0 10px; border: 1px solid #cfd7e6; border-radius: 6px; color: #18202f; background: #fff; } .settings-checkbox { grid-template-columns: auto 1fr; align-items: center; align-self: end; } .settings-checkbox input { width: 18px; height: 18px; padding: 0; } .runtime-mcp-section { grid-column: 1 / -1; display: grid; gap: 10px; min-width: 0; padding-top: 14px; border-top: 1px solid #e2e7ef; } .runtime-mcp-header, .runtime-mcp-server > header, .runtime-mcp-catalog > header, .runtime-mcp-tools article > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; } .runtime-mcp-header > div, .runtime-mcp-server > header > div { display: grid; gap: 3px; min-width: 0; } .runtime-mcp-header h3 { margin: 0; color: #18202f; font-size: 14px; } .runtime-mcp-header span, .runtime-mcp-server span, .runtime-mcp-catalog span { color: #647084; font-size: 12px; } .runtime-mcp-header button, .runtime-mcp-add button, .runtime-mcp-server > header button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 32px; padding: 0 10px; border: 1px solid #cfd7e6; border-radius: 6px; color: #18202f; background: #fff; } .runtime-mcp-header button:disabled, .runtime-mcp-add button:disabled, .runtime-mcp-server > header button:disabled { color: #97a1b1; background: #f5f7fa; } .runtime-mcp-add { display: grid; grid-template-columns: minmax(0, 1fr) 36px; align-items: end; gap: 8px; } .runtime-mcp-add label { display: grid; gap: 6px; min-width: 0; color: #647084; font-size: 13px; } .runtime-mcp-add input { min-width: 0; height: 36px; padding: 0 10px; border: 1px solid #cfd7e6; border-radius: 6px; color: #18202f; background: #fff; } .runtime-mcp-add button { width: 36px; padding: 0; } .runtime-mcp-list, .runtime-mcp-tools { display: grid; gap: 8px; min-width: 0; } .runtime-mcp-server { min-width: 0; padding: 10px 12px; border: 1px solid #dce3ee; border-radius: 7px; background: #fbfcfe; } .runtime-mcp-server > header strong, .runtime-mcp-catalog strong, .runtime-mcp-tools strong { min-width: 0; color: #18202f; font-size: 13px; overflow-wrap: anywhere; } .runtime-mcp-server > header button { width: 30px; height: 30px; padding: 0; color: #a13737; } .runtime-mcp-state.is-connected { color: #157347; } .runtime-mcp-server details { margin-top: 8px; border-top: 1px solid #e2e7ef; } .runtime-mcp-server summary { padding: 9px 0 1px; color: #475569; font-size: 12px; cursor: pointer; user-select: none; } .runtime-mcp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding-top: 10px; } .runtime-mcp-grid label { display: grid; gap: 6px; min-width: 0; color: #647084; font-size: 13px; } .runtime-mcp-grid input, .runtime-mcp-grid select, .runtime-mcp-grid textarea { min-width: 0; width: 100%; border: 1px solid #cfd7e6; border-radius: 6px; color: #18202f; background: #fff; } .runtime-mcp-grid input, .runtime-mcp-grid select { height: 36px; padding: 0 10px; } .runtime-mcp-grid textarea { min-height: 84px; padding: 8px 10px; resize: vertical; font: 12px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; } .runtime-mcp-grid .settings-checkbox { grid-template-columns: 18px minmax(0, 1fr); align-self: end; min-height: 36px; } .runtime-mcp-grid .settings-checkbox input { width: 18px; height: 18px; padding: 0; } .runtime-mcp-field-wide { grid-column: 1 / -1; } .runtime-mcp-empty { padding: 12px; border: 1px dashed #cfd7e6; border-radius: 6px; color: #647084; font-size: 12px; text-align: center; } .runtime-mcp-catalog { display: grid; gap: 8px; min-width: 0; padding: 10px 12px; border: 1px solid #d7e3da; border-radius: 7px; background: #f8fcf9; } .runtime-mcp-tools article { display: grid; gap: 7px; min-width: 0; padding-top: 8px; border-top: 1px solid #dce8df; } .runtime-mcp-tools pre { max-height: 180px; margin: 0; padding: 8px; overflow: auto; border: 1px solid #dce3ee; border-radius: 6px; color: #263142; background: #fff; font-size: 11px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; } .message-list { flex: 1; border: 1px solid #dde3ee; padding: 14px; overflow: auto; } .message + .message { margin-top: 10px; } .message-history-more { width: 100%; min-height: 32px; margin-bottom: 10px; border: 1px solid #cfd7e6; border-radius: 6px; color: #647084; background: #f8fafd; } .message { overflow-wrap: anywhere; white-space: pre-wrap; } .message--user { color: #1f6feb; } .message-action { min-height: 32px; margin-top: 6px; border: 1px solid #cfd7e6; border-radius: 6px; color: #334155; background: #f8fafd; } .pending-command { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 10px; border: 1px solid #dde3ee; background: #f8fafd; } .pending-command span { display: grid; gap: 3px; min-width: 0; margin-right: auto; color: #647084; } .pending-command small { overflow-wrap: anywhere; font-size: 12px; } .pending-command button { height: 32px; padding: 0 12px; border: 1px solid #cfd7e6; border-radius: 6px; color: #fff; background: #1f6feb; } .composer { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; } .composer input, .composer button, .composer-upload-button { height: 40px; border: 1px solid #cfd7e6; border-radius: 6px; } .composer input { min-width: 0; padding: 0 12px; } .composer button, .composer-upload-button { display: inline-grid; padding: 0 18px; place-items: center; color: #fff; background: #1f6feb; cursor: pointer; } .composer-upload-button input { display: none; } .agent-status-pane { display: grid; gap: 10px; padding-top: 4px; } .agent-status-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; max-height: 220px; overflow: auto; } .agent-status-list button { display: grid; gap: 4px; min-width: 0; padding: 9px; border: 1px solid #dce3ee; border-radius: 6px; background: #fff; color: #18202f; text-align: left; } .agent-status-list span, .agent-status-list small { color: #647084; font-size: 12px; } .agent-status-list small { overflow-wrap: anywhere; } .agent-conversation-panel { display: grid; gap: 10px; width: min(640px, 100%); max-height: calc(100vh - 36px); padding: 18px; overflow: auto; border: 1px solid #cfd7e6; background: #fff; } .agent-conversation-list { min-height: 220px; max-height: 420px; padding: 12px; overflow: auto; border: 1px solid #dde3ee; } .agent-memory-box { display: grid; gap: 6px; max-height: 180px; padding: 10px; overflow: auto; border: 1px solid #dde3ee; background: #f8fafd; } .agent-memory-box pre { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; } .agent-memory-box small button { height: 24px; margin-left: 8px; padding: 0 8px; border: 1px solid #cfd7e6; border-radius: 6px; background: #fff; color: #1f6feb; cursor: pointer; } .agent-conversation-panel .composer { grid-template-columns: minmax(0, 1fr) auto auto auto; } .workspace-panel { display: grid; gap: 12px; width: min(680px, 100%); max-height: calc(100vh - 36px); padding: 18px; overflow: auto; border: 1px solid #cfd7e6; background: #fff; } .workspace-picker { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; } .workspace-picker input, .workspace-picker button, .workspace-list button { min-width: 0; height: 36px; border: 1px solid #cfd7e6; border-radius: 6px; } .workspace-picker input { padding: 0 10px; } .workspace-picker button { padding: 0 14px; color: #fff; background: #1f6feb; } .workspace-list { display: grid; gap: 8px; } .workspace-list button { padding: 0 10px; overflow: hidden; background: #fff; color: #18202f; text-align: left; text-overflow: ellipsis; white-space: nowrap; } .developer-pane { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-content: start; gap: 1px; min-width: 0; background: #d9dee8; } .developer-panel { min-width: 0; padding: 18px; background: #fff; } .developer-panel--wide { grid-column: 1 / -1; } .task-pane article { display: grid; grid-template-columns: 84px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid #edf1f7; } .capability-pane article { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 8px 0; border-bottom: 1px solid #edf1f7; } .capability-pane span { color: #647084; font-size: 12px; } .trace-pane article { display: grid; gap: 4px; padding: 8px 0; border-bottom: 1px solid #edf1f7; } .trace-pane span, .trace-pane small { color: #647084; } .trace-pane small { overflow-wrap: anywhere; font-size: 12px; } .trace-error { margin-bottom: 10px; padding: 8px; border: 1px solid #efb3b3; border-radius: 6px; color: #8a1f1f; background: #fff5f5; overflow-wrap: anywhere; } .trace-artifacts { display: grid; gap: 4px; margin-bottom: 10px; } .trace-task-graph { display: grid; gap: 4px; margin-bottom: 10px; padding: 8px; border: 1px solid #dce3ee; border-radius: 6px; background: #f8fafc; } .trace-history { display: flex; flex-wrap: wrap; gap: 6px; max-height: 180px; margin-bottom: 10px; overflow: auto; } .trace-history button { min-width: 0; max-width: 100%; padding: 5px 8px; overflow-wrap: anywhere; border: 1px solid #cfd7e6; border-radius: 6px; background: #fff; color: #18202f; font-size: 12px; text-align: left; } .asset-pane code { display: block; margin-bottom: 10px; padding: 9px 10px; border: 1px solid #e1e7f0; background: #f8fafd; } .local-project-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-bottom: 10px; } .local-project-form input, .local-project-form button { min-width: 0; height: 36px; border: 1px solid #cfd7e6; border-radius: 6px; } .local-project-form input { padding: 0 10px; } .asset-register-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; } .asset-register-form input, .asset-register-form select, .asset-register-form button { min-width: 0; height: 34px; border: 1px solid #cfd7e6; border-radius: 6px; } .asset-register-form input, .asset-register-form select { padding: 0 10px; } .asset-register-form button { color: #fff; background: #1f6feb; } .status-line, .manifest-path { margin-bottom: 10px; color: #647084; font-size: 13px; } .manifest-path { overflow-wrap: anywhere; } .file-pane input, .file-pane textarea, .memory-pane textarea { display: block; width: 100%; margin-bottom: 10px; padding: 10px; border: 1px solid #cfd7e6; border-radius: 6px; } .file-pane input { height: 36px; } .file-pane textarea, .memory-pane textarea { min-height: 150px; resize: vertical; } .file-list { display: flex; flex-wrap: wrap; gap: 8px; } .file-list button { display: grid; gap: 2px; padding: 6px 10px; border: 1px solid #cfd7e6; border-radius: 6px; background: #fff; text-align: left; } .file-list button small { color: #647084; } .checkpoint-list-item { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border: 1px solid #cfd7e6; border-radius: 6px; background: #fff; } .checkpoint-summary { display: inline-flex; min-width: 160px; flex-direction: column; gap: 2px; } .checkpoint-summary small { color: #64748b; } .limited-command-list { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; } .limited-command-list button { height: 32px; padding: 0 12px; border: 1px solid #cfd7e6; border-radius: 6px; color: #fff; background: #1f6feb; } .project-log-content { max-height: 180px; margin: 0 0 10px; padding: 10px; overflow: auto; border: 1px solid #dde3ee; background: #f8fafd; white-space: pre-wrap; } .preview-frame { display: grid; width: 100%; min-height: 180px; place-items: center; border: 1px solid #cfd7e6; background: #101827; color: #d9e7ff; } iframe.preview-frame { display: block; height: 180px; } @media (max-width: 1100px) { .app-shell--user { padding: 0; } .app-shell--user .chat-pane { min-height: 100vh; border: 0; } .app-shell--dev { grid-template-columns: 1fr; } .developer-pane { grid-template-columns: 1fr; } .developer-panel--wide { grid-column: auto; } .settings-grid { grid-template-columns: 1fr; } .runtime-mcp-grid { grid-template-columns: 1fr; } .runtime-mcp-field-wide { grid-column: auto; } .composer { grid-template-columns: 1fr auto; } .composer-upload-button { grid-column: 1 / -1; } } /* GameAgent V1.0 project workbench */ .game-project-workbench { width: calc(100vw - 72px); max-width: none; gap: 12px; padding-top: 40px; padding-bottom: 0; color: #4b342c; } .launcher-main:has(.game-project-workbench) { padding-bottom: 0; } .game-workbench-layout { position: relative; z-index: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 0.36fr); gap: 12px; height: clamp(560px, calc(100dvh - 206px), 780px); min-width: 0; min-height: 0; } .game-workbench-stage, .game-workbench-chat { min-width: 0; overflow: hidden; border: 1px solid #ead7ce; border-radius: 16px; background: #fffdfa; box-shadow: 0 14px 36px rgb(103 65 48 / 8%); } .game-workbench-stage { position: relative; display: grid; grid-template-rows: auto auto minmax(0, 1fr); } .game-workbench-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 8px 12px; border-bottom: 1px solid #f0dfd7; background: #fff8f4; } .game-workbench-tabs, .game-workbench-view-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; } .game-workbench-tabs { padding: 3px; border-radius: 999px; background: #f3ded3; } .game-workbench-tabs button, .game-workbench-view-actions button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 30px; padding: 0 11px; border: 1px solid transparent; border-radius: 999px; background: transparent; color: #735448; font-size: 12px; cursor: pointer; } .game-workbench-tabs button.is-active, .game-workbench-view-actions button.is-active { border-color: #d7845c; background: #d7845c; color: #fff; } .game-workbench-tabs button:disabled, .game-workbench-tabs button[data-unavailable='true'] { color: #a99086; cursor: not-allowed; opacity: 0.6; } .game-workbench-view-actions button { border-color: #ead6cc; background: #fff; } .game-resource-reorder-status { min-width: 0; color: #9a725f; font-size: 10px; white-space: nowrap; } .game-run-unavailable { margin: 0; padding: 7px 14px; border-bottom: 1px solid #f0dfd7; background: #fffaf0; color: #9b6c45; font-size: 11px; } .game-resource-manager { display: flex; flex-direction: column; min-height: 0; } .game-resource-search { display: flex; align-items: center; gap: 8px; margin: 10px 12px 0; padding: 0 10px; border: 1px solid #ecdcd4; border-radius: 10px; background: #fff; color: #a08073; } .game-resource-search input { width: 100%; min-width: 0; height: 34px; padding: 0; border: 0; outline: 0; background: transparent; color: #50382f; font-size: 12px; } .game-attachment-errors { display: grid; gap: 4px; margin: 8px 12px 0; padding: 8px 10px; border: 1px solid #edc1ad; border-radius: 10px; background: #fff3ed; } .game-attachment-errors p { display: flex; align-items: baseline; gap: 8px; margin: 0; color: #9e4d2f; font-size: 10px; } .game-attachment-errors span { min-width: 0; overflow-wrap: anywhere; } .game-resource-canvas { position: relative; flex: 1; min-height: 0; padding: 12px; overflow: auto; background-color: #fffdfa; background-image: radial-gradient(#eaded8 0.8px, transparent 0.8px); background-size: 18px 18px; } .game-resource-canvas-content { position: relative; display: grid; align-content: start; width: max-content; min-width: 100%; min-height: 100%; } .game-resource-dependency-overlay { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; } .game-resource-dependency-description { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; } .game-resource-dependency-edge, .game-resource-dependency-edge path { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; } .game-resource-dependency-edge--reference { stroke: #c45f20; stroke-width: 2.4px; opacity: 1; } .game-resource-dependency-edge--task path { stroke: #918b87; stroke-width: 1.4px; stroke-dasharray: 4 7; } .game-resource-dependency-edge--task .game-resource-dependency-trunk { stroke-width: 1.7px; opacity: 0.88; } .game-resource-dependency-edge--task .game-resource-dependency-branch { opacity: 0.72; } .game-resource-dependency-edge.is-cyclic, .game-resource-dependency-edge.is-cyclic path { stroke-dashoffset: 4; } .game-resource-dependency-marker--reference path { fill: #c45f20; stroke-linejoin: round; } .game-resource-dependency-marker--task path { fill: #918b87; stroke-linejoin: round; } .game-resource-section { position: relative; z-index: 1; display: grid; gap: 10px; min-width: 620px; padding: 14px 6px 18px; border-bottom: 1px solid #eaded8; } .game-resource-section:last-of-type { border-bottom: 0; } .game-resource-section > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .game-resource-section > header span { display: inline-flex; align-items: center; gap: 6px; color: #725348; font-size: 12px; font-weight: 800; } .game-resource-section > header small { display: grid; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: #f3e6df; color: #9b6b56; font-size: 10px; place-items: center; } .game-resource-section > p { margin: 0; color: #b0958a; font-size: 11px; } .game-resource-plane { position: relative; min-width: 620px; min-height: 108px; } .game-resource-card { position: absolute; top: 0; left: 0; display: grid; grid-template-columns: 36px minmax(100px, 1fr); grid-template-rows: auto auto auto; align-items: center; gap: 2px 8px; width: 180px; min-width: 180px; min-height: 92px; padding: 10px; overflow: hidden; border: 1px solid #eadbd4; border-radius: 12px; background: #fff; color: #4e382f; text-align: left; box-shadow: 0 6px 18px rgb(96 62 47 / 6%); cursor: pointer; touch-action: manipulation; user-select: none; transform: translate3d(var(--resource-x, 0), var(--resource-y, 0), 0); } .game-resource-card:hover, .game-resource-card:focus-visible, .game-resource-card.is-selected { border-color: #d57b51; outline: 0; box-shadow: 0 8px 22px rgb(195 105 62 / 15%); } .game-resource-card.is-relation-version-binding { border-color: #d87342; box-shadow: 0 8px 22px rgb(195 105 62 / 18%), 0 0 0 2px rgb(216 115 66 / 14%); } .game-resource-card-icon { display: grid; grid-row: 1 / 4; width: 36px; height: 36px; border-radius: 10px; background: #fae9df; color: #c46a40; place-items: center; } .game-resource-card strong, .game-resource-card small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .game-resource-card strong { font-size: 12px; } .game-resource-card small { color: #9a8176; font-size: 9px; } .game-resource-focus { display: grid; grid-template-rows: auto minmax(0, 1fr); width: 100%; min-width: 0; min-height: 0; overflow: hidden; background: #fffdfa; color: #563b31; outline: 0; } .game-resource-focus-titlebar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; padding: 10px 14px 10px 16px; border-bottom: 1px solid #ead8cf; background: #fff8f3; } .game-resource-focus-heading { display: flex; align-items: center; gap: 10px; min-width: 0; } .game-resource-focus-heading > span:last-child { display: grid; min-width: 0; } .game-resource-focus-heading small { color: #a27764; font-size: 9px; font-weight: 700; } .game-resource-focus-icon { display: grid; width: 36px; height: 36px; flex: 0 0 auto; border-radius: 10px; background: #fae9df; color: #c46a40; place-items: center; } .game-resource-focus-heading strong { min-width: 0; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; } .game-resource-focus-body { display: grid; grid-auto-rows: max-content; align-content: start; gap: 6px; min-height: 0; padding: 18px 20px 24px; overflow: hidden; overscroll-behavior: contain; scrollbar-gutter: stable; } .game-resource-focus--document .game-resource-focus-body, .game-resource-focus--art .game-resource-focus-body, .game-resource-focus--audio .game-resource-focus-body { grid-template-rows: minmax(0, 1fr) auto; } .game-resource-focus--version .game-resource-focus-body { overflow: auto; } .game-resource-focus-close { display: grid; width: 28px; height: 28px; flex: 0 0 auto; padding: 0; border: 1px solid #ead8cf; border-radius: 50%; background: #fff; color: #8d6d60; place-items: center; cursor: pointer; } .game-resource-focus-metadata { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; margin: 0 0 8px; padding: 12px 14px; border: 1px solid #eaded8; border-radius: 12px; background: #fff; } .game-resource-focus-metadata > div { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 8px; min-width: 0; } .game-resource-focus-metadata dt, .game-resource-focus-metadata dd { margin: 0; overflow-wrap: anywhere; font-size: 10px; } .game-resource-focus-metadata dt { color: #a08377; } .game-resource-focus-metadata dd { color: #5d4339; } .game-resource-image-preview { position: relative; display: grid; height: min(460px, calc(100dvh - 330px)); min-height: 260px; margin-bottom: 8px; overflow: hidden; border: 1px solid #ead8cf; border-radius: 12px; background: linear-gradient(45deg, #f1ebe7 25%, transparent 25%), linear-gradient(-45deg, #f1ebe7 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #f1ebe7 75%), linear-gradient(-45deg, transparent 75%, #f1ebe7 75%), #faf7f5; background-position: 0 0, 0 8px, 8px -8px, -8px 0; background-size: 16px 16px; place-items: center; } .game-resource-media-preview, .game-resource-audio-preview { position: relative; display: grid; min-width: 0; min-height: 0; margin-bottom: 8px; overflow: hidden; border: 1px solid #ead8cf; border-radius: 12px; background: #faf7f5; place-items: center; } .game-resource-media-preview { background: linear-gradient(45deg, #f1ebe7 25%, transparent 25%), linear-gradient(-45deg, #f1ebe7 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #f1ebe7 75%), linear-gradient(-45deg, transparent 75%, #f1ebe7 75%), #faf7f5; background-position: 0 0, 0 8px, 8px -8px, -8px 0; background-size: 16px 16px; } .game-resource-media-preview img, .game-resource-media-preview video { display: block; max-width: 100%; max-height: 100%; object-fit: contain; } .game-resource-media-preview video { width: 100%; height: 100%; background: #211d1b; } .game-resource-audio-preview { align-content: center; padding: 28px; background: linear-gradient(145deg, #fffaf6, #f5e7df); } .game-resource-audio-preview audio { width: min(620px, 100%); } .game-resource-media-preview p, .game-resource-audio-preview p { margin: 0; padding: 20px; color: #92776c; font-size: 12px; text-align: center; } .game-resource-image-preview img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; } .game-resource-image-preview p { margin: 0; padding: 20px; color: #92776c; font-size: 12px; text-align: center; } .game-resource-document-body { min-width: 0; min-height: 0; margin-top: 6px; padding: 14px; border-radius: 10px; background: #f8f2ee; color: #765c51; font-size: 12px; line-height: 1.6; overflow: auto; overflow-wrap: anywhere; overscroll-behavior: contain; scrollbar-gutter: stable; user-select: text; } .game-resource-document-body > :first-child { margin-top: 0; } .game-resource-document-body > :last-child { margin-bottom: 0; } .game-resource-document-body h1, .game-resource-document-body h2, .game-resource-document-body h3, .game-resource-document-body h4 { margin: 1.15em 0 0.55em; color: #63483d; line-height: 1.35; } .game-resource-document-body h1 { font-size: 17px; } .game-resource-document-body h2 { font-size: 15px; } .game-resource-document-body h3, .game-resource-document-body h4 { font-size: 13px; } .game-resource-document-body p, .game-resource-document-body ul, .game-resource-document-body ol, .game-resource-document-body blockquote, .game-resource-document-body pre, .game-resource-document-body table { margin: 0 0 0.75em; } .game-resource-document-body ul, .game-resource-document-body ol { padding-left: 1.6em; } .game-resource-document-body li + li { margin-top: 0.24em; } .game-resource-document-body blockquote { padding: 0.55em 0.8em; border-left: 3px solid #d99a77; background: rgb(255 255 255 / 52%); } .game-resource-document-body code { padding: 0.12em 0.32em; border-radius: 4px; background: #eaded7; color: #735044; } .game-resource-document-body pre { overflow-x: auto; padding: 0.75em; border-radius: 8px; background: #eaded7; } .game-resource-document-body pre code { padding: 0; background: transparent; } .game-resource-document-body a { color: #b65d37; text-decoration: underline; } .game-resource-document-link-text { color: #8f5e49; text-decoration: underline dotted; } .game-resource-document-image-placeholder { display: inline-block; padding: 0.2em 0.45em; border-radius: 5px; background: #eaded7; color: #806559; } .game-resource-document-body table { width: 100%; border-collapse: collapse; } .game-resource-document-body th, .game-resource-document-body td { padding: 0.45em 0.55em; border: 1px solid #ddc9be; text-align: left; } .game-run-surface { display: grid; grid-template-rows: minmax(300px, 1fr) auto auto; gap: 12px; min-height: 0; padding: 12px; background: #fffdfa; } .game-run-preview { position: relative; display: grid; align-content: center; justify-items: center; gap: 9px; min-height: 300px; border: 1px dashed #dfb59f; border-radius: 14px; background: linear-gradient(145deg, #fffaf6, #f8ebe4); color: #c06940; text-align: center; overflow: hidden; } .game-run-preview iframe { width: 100%; height: 100%; min-height: 300px; border: 0; background: #fff; } .game-run-preview-empty { display: grid; align-content: center; justify-items: center; gap: 9px; width: 100%; height: 100%; min-height: 300px; } .game-run-preview strong { color: #563b31; font-size: 15px; } .game-run-preview span { max-width: min(480px, 80%); color: #96796d; font-size: 11px; overflow-wrap: anywhere; } .game-run-slice-controls { display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: 8px; } .game-run-slice-controls button { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: 34px; padding: 0 10px; border: 1px solid #e7d3c9; border-radius: 999px; background: #fff; color: #855c4c; cursor: pointer; } .game-run-slice-controls span { color: #9a7d70; font-size: 11px; text-align: center; } .game-run-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .game-run-panels > section { display: grid; align-content: start; gap: 8px; min-width: 0; padding: 12px; border: 1px solid #eadbd4; border-radius: 12px; background: #fff; } .game-run-panels header { display: flex; align-items: center; gap: 6px; color: #62483d; font-size: 12px; font-weight: 800; } .game-run-panels p, .game-run-panels label, .game-run-panels dt, .game-run-panels dd { margin: 0; color: #927a70; font-size: 10px; } .game-run-panels dl, .game-run-panels dl div { display: grid; gap: 4px; } .game-run-panels dl { margin: 0; gap: 6px; } .game-run-panels dl div { grid-template-columns: 52px minmax(0, 1fr); } .game-run-panels dd { color: #533d34; overflow-wrap: anywhere; } .game-run-panels label { display: grid; grid-template-columns: minmax(0, 1fr) 88px; align-items: center; gap: 8px; } .game-run-panels input { min-width: 0; height: 30px; padding: 0 8px; border: 1px solid #eadbd4; border-radius: 8px; background: #faf7f5; color: #8f7d75; font-size: 10px; } .game-workbench-chat { display: grid; grid-template-rows: auto minmax(0, 1fr); min-height: 0; } .game-workbench-chat > header { display: flex; align-items: center; gap: 9px; padding: 12px 14px; border-bottom: 1px solid #f0dfd7; background: #fff8f4; } .game-workbench-chat > header > div { display: grid; gap: 2px; } .game-workbench-approval-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: 28px; margin-left: auto; padding: 0 9px; border: 1px solid #e2c7ba; border-radius: 999px; background: #fff; color: #9c5d42; font-size: 10px; cursor: pointer; } .game-workbench-chat > header strong { color: #a95531; font-size: 13px; } .game-workbench-chat > header small { color: #a08a80; font-size: 10px; } .game-workbench-chat-avatar { display: grid; width: 30px; height: 30px; border-radius: 50%; background: #d9794c; color: #fff; font-size: 12px; font-weight: 900; place-items: center; } .game-workbench-chat .project-supervisor-surface { grid-template-columns: minmax(0, 1fr); gap: 0; height: 100%; max-height: 100%; min-height: 0; padding: 10px; overflow: hidden; } .game-workbench-chat .project-supervisor-conversation { grid-template-rows: minmax(120px, 1fr) minmax(0, auto) auto auto auto; height: 100%; min-height: 0; overflow: hidden; } .game-workbench-chat .project-supervisor-message-list { min-height: 120px; max-height: none; overflow-y: auto; border: 1px solid #f1e4de; background: #fffdfb; } .game-workbench-chat .agent-runtime-status { max-height: clamp(190px, 30dvh, 300px); min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; } .game-workbench-chat .project-runtime-summary { position: sticky; top: -10px; z-index: 3; gap: 5px; padding-bottom: 7px; border-bottom: 1px solid #d8dde5; background: #f8fafd; } .project-runtime-empty-state { display: grid; min-height: 112px; place-content: center; justify-items: center; gap: 10px; color: #d9794c; text-align: center; } .project-runtime-empty-state strong { color: #55443c; font-size: 13px; } .game-workbench-chat .project-runtime-summary > small[aria-label='项目总控 Agent 进度'] { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 1; } .game-workbench-chat .project-runtime-professional-list { gap: 5px; padding-top: 5px; border-top: 0; } .game-workbench-chat .project-runtime-professional-list article { gap: 3px; padding: 7px 8px; } .game-workbench-chat .project-runtime-professional-list .project-runtime-error { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .game-workbench-chat .project-supervisor-collaboration { display: none; } .game-workbench-chat .project-supervisor-composer { grid-template-columns: minmax(0, 1fr) 82px; align-items: stretch; } .game-workbench-chat .project-supervisor-composer textarea { height: 72px; min-height: 72px; max-height: 72px; resize: none; } .game-workbench-chat .project-supervisor-composer button { width: auto; height: auto; min-height: 72px; } .game-agent-dock { position: relative; z-index: 30; isolation: isolate; display: flex; align-items: center; justify-content: center; gap: 8px; overflow: visible; min-height: 66px; padding: 8px 12px; border: 1px solid #ead7ce; border-radius: 16px; background: #f7e6dc; box-shadow: 0 12px 28px rgb(103 65 48 / 10%); } .game-agent-dock-more { flex: 0 0 auto; min-height: 40px; padding: 0 12px; border: 1px solid #d9b8a8; border-radius: 12px; background: rgb(255 255 255 / 72%); color: #765447; font-size: 11px; font-weight: 800; cursor: pointer; } .game-agent-dock-more:hover { border-color: #c98361; color: #a7522f; } .game-agent-dock-item { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 8px; min-width: 150px; padding: 7px 10px; border: 1px solid transparent; border-radius: 12px; background: rgb(255 255 255 / 68%); color: #584137; text-align: left; cursor: default; } .game-agent-avatar { display: grid; width: 34px; height: 34px; border-radius: 12px; background: #d27a50; color: #fff; font-size: 12px; font-weight: 900; place-items: center; } .game-agent-dock-item > span:nth-child(2) { display: grid; gap: 2px; } .game-agent-dock-item strong { font-size: 11px; } .game-agent-dock-item small { color: #96776a; font-size: 9px; } .game-agent-dock-item.is-running::after { position: absolute; top: 8px; right: 8px; width: 7px; height: 7px; border-radius: 50%; background: #5ec46b; box-shadow: 0 0 0 3px rgb(94 196 107 / 16%); content: ''; } .game-agent-dock-item.is-waiting::after, .game-agent-dock-item.is-failed::after, .game-agent-dock-item.is-completed::after { position: absolute; top: 8px; right: 8px; width: 7px; height: 7px; border-radius: 50%; content: ''; } .game-agent-dock-item.is-waiting::after { background: #df8a16; box-shadow: 0 0 0 3px rgb(223 138 22 / 16%); } .game-agent-dock-item.is-failed::after { background: #d64545; box-shadow: 0 0 0 3px rgb(214 69 69 / 16%); } .game-agent-dock-item.is-completed::after { background: #2878d4; box-shadow: 0 0 0 3px rgb(40 120 212 / 16%); } .game-agent-dock-detail { position: absolute; left: 50%; bottom: calc(100% + 8px); z-index: 20; display: none; width: 220px; padding: 10px 12px; border: 1px solid #dcc2b5; border-radius: 10px; background: #4f433d; color: #fff; box-shadow: 0 12px 30px rgb(50 30 22 / 20%); transform: translateX(-50%); } .game-agent-dock-detail strong, .game-agent-dock-detail small { color: inherit; } .game-agent-dock-item:hover .game-agent-dock-detail { display: grid; gap: 4px; } .game-approval-backdrop { position: fixed; inset: 0; z-index: 260; display: grid; padding: 20px; background: rgb(65 43 34 / 42%); place-items: center; } .game-approval-dialog { display: grid; gap: 14px; width: min(430px, 100%); padding: 18px; border: 1px solid #e4c8ba; border-radius: 18px; background: #fffaf7; color: #4f362d; box-shadow: 0 24px 64px rgb(62 37 27 / 24%); } .game-approval-dialog > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; } .game-approval-dialog h2, .game-approval-dialog p { margin: 0; } .game-approval-dialog h2 { font-size: 16px; } .game-approval-dialog p { margin-top: 4px; color: #9a7d70; font-size: 11px; } .game-approval-dialog > header button { display: grid; width: 30px; height: 30px; padding: 0; border: 1px solid #e6d1c7; border-radius: 50%; background: #fff; color: #84675b; place-items: center; cursor: pointer; } .game-approval-options { display: grid; gap: 8px; } .game-approval-options > button { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; padding: 10px 12px; border: 1px solid #e9d8d0; border-radius: 12px; background: #fff; color: #5b4036; text-align: left; cursor: pointer; } .game-approval-options > button.is-selected { border-color: #ce744b; background: #fff3ec; } .game-approval-options > button.is-unavailable { border-style: dashed; cursor: help; opacity: 0.62; } .game-approval-options > button.is-unavailable:hover { border-color: #c98361; opacity: 0.9; } .game-approval-notice { margin: 0; padding: 9px 11px; border-radius: 10px; background: #fff4ec; color: #9a4c2e; font-size: 12px; } .game-approval-options > button > span:first-child { display: grid; gap: 4px; } .game-approval-options strong { font-size: 12px; } .game-approval-options small { color: #9a7e72; font-size: 10px; } .game-approval-check { display: grid; width: 24px; height: 24px; flex: 0 0 auto; border: 1px solid #d7b8a8; border-radius: 50%; color: #c5673d; font-size: 12px; font-weight: 900; place-items: center; } .game-approval-done { justify-self: end; min-width: 90px; height: 34px; border: 0; border-radius: 999px; background: #ca7048; color: #fff; cursor: pointer; } @media (min-width: 761px) and (min-height: 680px) { .game-project-workbench { grid-template-rows: minmax(0, 1fr) auto; height: 100dvh; } .launcher-main-with-promo .game-project-workbench { height: calc(100dvh - 32px); } .game-workbench-layout { height: auto; } } @media (max-width: 1000px) { .game-workbench-layout { grid-template-columns: minmax(0, 1fr) minmax(280px, 0.42fr); } .game-workbench-toolbar { align-items: stretch; flex-direction: column; } .game-workbench-view-actions { justify-content: flex-end; } } @media (max-width: 760px) { .game-project-workbench { width: min(100%, calc(100vw - 76px)); padding-top: 70px; } .game-workbench-layout { grid-template-columns: 1fr; height: auto; min-height: auto; } .game-workbench-stage, .game-workbench-chat { min-height: 560px; } .game-workbench-toolbar, .game-workbench-view-actions { align-items: stretch; flex-direction: column; } .game-workbench-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .game-resource-section { min-width: 460px; } .game-run-slice-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); } .game-run-slice-controls span { grid-column: 1 / -1; grid-row: 1; } .game-run-panels { grid-template-columns: 1fr; } .game-workbench-chat .project-supervisor-message-list { max-height: 52vh; } .game-workbench-chat .project-supervisor-surface, .game-workbench-chat .project-supervisor-conversation { height: auto; max-height: none; overflow: visible; } .game-workbench-chat .agent-runtime-status { max-height: none; overflow: visible; scrollbar-gutter: auto; } .game-agent-dock { align-items: stretch; flex-direction: column; } .game-agent-dock-item { width: 100%; } .game-agent-dock-detail { position: static; width: auto; margin-top: 6px; transform: none; grid-column: 1 / -1; } }