*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: system-ui, sans-serif; background: #0b0d12; color: #e6e8f2; height: 100vh; } .app { height: 100vh; padding: 12px; } .app-shell { height: calc(100vh - 24px); display: flex; flex-direction: row; gap: 12px; } .app-sidebar { width: 220px; min-width: 220px; display: flex; flex-direction: column; justify-content: flex-start; gap: 12px; padding: 12px 16px; border: 1px solid #d9e1ec; border-radius: 14px; background: #f7f9fc; } .sidebar-brand { display: flex; flex-direction: column; gap: 2px; } .nav-title { font-size: 14px; font-weight: 700; color: #111827; } .nav-subtitle { margin-top: 2px; font-size: 12px; color: #6b7280; } .nav-actions { display: flex; flex-direction: column; align-items: stretch; gap: 8px; } .nav-btn { border: 1px solid #c7d5e8; background: #ffffff; color: #1f2937; border-radius: 10px; padding: 10px 14px; font-size: 12px; cursor: pointer; text-align: left; } .nav-btn-active { background: #2563eb; border-color: #2563eb; color: #ffffff; } .page-shell { flex: 1; min-height: 0; } /* Workspace */ .chat-workspace { display: flex; flex-direction: column; height: 100%; background: #10131b; border: 1px solid #232a3b; border-radius: 14px; overflow: hidden; } .workspace-header { display: flex; justify-content: space-between; align-items: flex-start; padding: 12px 16px; background: #0d1017; border-bottom: 1px solid #232a3b; } .header-title { font-size: 14px; font-weight: 600; color: #dde3ff; } .header-subtitle { margin-top: 2px; font-size: 12px; color: #7f89a8; } .session-badge { font-size: 11px; color: #8f96af; font-family: monospace; border: 1px solid #2f3850; border-radius: 999px; padding: 4px 8px; } .workspace-body { display: grid; grid-template-columns: 1fr 1fr; gap: 0; flex: 1; min-height: 0; } .conversation-pane, .reasoning-pane { min-width: 0; min-height: 0; display: flex; flex-direction: column; } .conversation-pane { border-right: 1px solid #232a3b; } .pane-title { font-size: 12px; font-weight: 600; color: #98a3c7; letter-spacing: 0.02em; padding: 10px 14px; border-bottom: 1px solid #232a3b; background: #0f131d; } .conversation-list, .reasoning-list { flex: 1; min-height: 0; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px; } .conversation-item { border-radius: 10px; padding: 10px 12px; border: 1px solid #273047; background: #131827; color: #dbe1f5; } .assistant-item { text-align: left; cursor: pointer; transition: border-color 0.15s, background 0.15s; } .assistant-item:hover { border-color: #4e5f8d; background: #161d30; } .active-item { border-color: #7288c9; background: #1a2238; } .user-item { border-color: #34466f; background: #18213a; } .item-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; } .item-label { font-size: 11px; font-weight: 600; color: #9eb2f7; text-transform: uppercase; letter-spacing: 0.04em; } .item-meta { font-size: 11px; color: #8f96af; font-family: monospace; } .item-content { font-size: 13px; color: #e2e7fb; white-space: pre-wrap; line-height: 1.45; word-break: break-word; } .final-render { display: flex; flex-direction: column; gap: 8px; } .artifact-panel { border: 1px solid #d8e3f2; border-radius: 10px; background: #f8fbff; padding: 10px; } .artifact-title { font-size: 12px; font-weight: 700; color: #1e3a5f; margin-bottom: 8px; } .artifact-list { display: flex; flex-direction: column; gap: 8px; } .artifact-link { display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid #c9d9ee; border-radius: 8px; background: #ffffff; padding: 8px 10px; color: #1d4ed8; text-decoration: none; } .artifact-link:hover { border-color: #93b2db; background: #f4f8ff; } .artifact-name { font-size: 13px; font-weight: 600; color: #0f172a; word-break: break-word; } .artifact-size { font-size: 12px; color: #475569; white-space: nowrap; } .result-rich { display: flex; flex-direction: column; gap: 8px; } .result-heading { font-weight: 700; color: #eaf0ff; letter-spacing: 0.01em; } .result-heading.h1 { font-size: 18px; } .result-heading.h2 { font-size: 16px; } .result-heading.h3 { font-size: 14px; color: #cbd8ff; } .result-heading.h4 { font-size: 13px; color: #b8c7ef; } .result-text { margin: 0; white-space: pre-wrap; word-break: break-word; font-size: 12px; line-height: 1.5; color: #dbe5ff; } .result-inline-bold { font-weight: 700; } .result-inline-code { display: inline-block; padding: 1px 5px; border-radius: 6px; background: #e8eef8; color: #1e3a5f; font-size: 0.95em; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } .result-list { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; color: #d6e0ff; font-size: 12px; line-height: 1.5; } .result-quote { margin: 0; border-left: 3px solid #5674bc; background: #121c33; color: #c9d9ff; padding: 8px 10px; border-radius: 6px; font-size: 12px; line-height: 1.5; } .result-code-wrap { border: 1px solid #2d6248; border-radius: 8px; background: #0d1813; overflow: hidden; } .result-code-lang { padding: 6px 10px; font-size: 11px; color: #8fe5b1; border-bottom: 1px solid #2d6248; font-family: monospace; text-transform: uppercase; } .result-code { margin: 0; padding: 10px; font-size: 12px; line-height: 1.55; white-space: pre-wrap; overflow-x: auto; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; color: #b4f2ce; } .result-seq-wrap { border: 1px solid #3f6f5a; border-radius: 8px; background: #0f1c18; overflow: hidden; } .result-seq { margin: 0; padding: 10px; color: #8ef3b8; font-size: 12px; line-height: 1.45; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; white-space: pre-wrap; word-break: break-all; } .result-table-wrap { overflow-x: auto; } .result-table { width: 100%; border-collapse: collapse; font-size: 12px; color: #dce4ff; border: 1px solid #3a4b72; border-radius: 8px; overflow: hidden; } .result-table th, .result-table td { padding: 8px 10px; border: 1px solid #2f3d5f; text-align: left; vertical-align: top; white-space: normal; word-break: break-word; } .result-table th { background: #1b2742; color: #c9d8ff; font-weight: 600; } .result-table tr:nth-child(even) td { background: #121b2f; } .reasoning-card { position: relative; border: 1px solid #273047; border-radius: 10px; background: #121927; padding: 10px 12px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03), 0 10px 20px rgba(0, 0, 0, 0.15); } .reasoning-shell { display: flex; flex-direction: column; gap: 10px; } .reasoning-summary { display: flex; flex-wrap: wrap; gap: 6px; } .summary-chip { font-size: 11px; color: #bfc9ef; background: #182037; border: 1px solid #324267; border-radius: 999px; padding: 2px 8px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } .reasoning-progress { width: 100%; height: 6px; border-radius: 999px; background: #111b2f; border: 1px solid #273a62; overflow: hidden; } .reasoning-progress-bar { height: 100%; background: linear-gradient(90deg, #5e78c9, #6dd4a2); box-shadow: 0 0 10px rgba(109, 212, 162, 0.5); } .reasoning-timeline { display: flex; flex-direction: column; gap: 10px; } .timeline-item { position: relative; padding-left: 20px; } .timeline-item::before { content: ""; position: absolute; left: 7px; top: 0; bottom: -10px; width: 2px; background: linear-gradient(180deg, #3a4f82, #243252); } .timeline-item:last-child::before { bottom: 22px; } .timeline-node { position: absolute; left: 2px; top: 14px; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #7d90c9; background: #0f1422; box-shadow: 0 0 0 3px rgba(125, 144, 201, 0.15); } .live-step .timeline-node { border-color: #63d9a5; box-shadow: 0 0 0 3px rgba(99, 217, 165, 0.2), 0 0 10px rgba(99, 217, 165, 0.45); } .card-subtitle { font-size: 11px; color: #95a3cc; margin-bottom: 8px; } .card-icon { position: absolute; right: 12px; top: 38px; font-size: 16px; opacity: 0.9; } .state-pill { font-size: 10px; color: #c5d2fc; border: 1px solid #425486; background: #17233f; border-radius: 999px; padding: 2px 7px; letter-spacing: 0.04em; } .live-pill { color: #bcffe1; border-color: #328a66; background: #133425; } .tool-preview { font-size: 11px; line-height: 1.4; color: #ffe4b7; border: 1px dashed #7f5d2b; border-radius: 7px; padding: 6px 8px; margin-bottom: 8px; background: rgba(127, 93, 43, 0.12); } .card-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; } .card-tag { font-size: 11px; font-weight: 600; color: #b7c6f8; text-transform: uppercase; letter-spacing: 0.04em; } .thinking-card { border-color: #33405f; background: #121b2c; } .code-card { border-color: #234035; background: #101c18; } .observation-card { border-color: #27445a; background: #0f1a23; } .tool-card { border-color: #4f3b1e; background: #1e1811; } .result-card { border-color: #275238; background: #111f17; } .error-card { border-color: #5b2a2a; background: #231313; } .thinking-card .card-tag, .thinking-card .card-subtitle { color: #9c87ff; } .observation-card .card-tag, .observation-card .card-subtitle { color: #3fa7d6; } .tool-card .card-tag, .tool-card .card-subtitle { color: #c7893c; } .thinking-content { display: flex; flex-direction: column; gap: 8px; } .task-block { border: 1px solid #3a4d78; border-radius: 8px; background: #16233f; padding: 8px 10px; } .task-title { font-size: 11px; font-weight: 600; color: #b5c8ff; margin-bottom: 6px; text-transform: uppercase; } .task-block ul { margin-left: 16px; color: #dbe4ff; font-size: 13px; line-height: 1.45; } .task-list { display: flex; flex-direction: column; gap: 4px; } .task-row { display: flex; align-items: flex-start; gap: 8px; color: #dbe4ff; font-size: 13px; line-height: 1.45; } .task-check { display: inline-flex; width: 16px; color: #9eddb8; font-weight: 700; } .plain-block { border: 1px solid #2b3550; border-radius: 8px; background: #0e1422; padding: 10px; color: #cfd7f2; white-space: pre-wrap; word-break: break-word; font-size: 12px; line-height: 1.55; } .planning-block { border-color: #5c46c9; background: linear-gradient(180deg, rgba(92, 70, 201, 0.14), rgba(14, 20, 34, 0.94)); } .planning-text { color: #d4c7ff; font-weight: 600; } .reasoning-rich { display: flex; flex-direction: column; gap: 10px; } .observation-block { border-color: #31516a; background: #0c1520; } .observation-heading { font-weight: 700; letter-spacing: 0.01em; } .observation-heading.level-1 { font-size: 15px; color: #8ed7ff; } .observation-heading.level-2 { font-size: 13px; color: #6fc6f3; } .observation-heading.level-3, .observation-heading.level-4 { font-size: 12px; color: #8bcfbc; } .observation-note { border: 1px solid #315a45; border-radius: 8px; background: rgba(37, 89, 62, 0.18); color: #b8f2cc; padding: 8px 10px; font-size: 12px; line-height: 1.5; } .observation-list { margin-top: -2px; } .visualization-card { display: flex; flex-direction: column; gap: 10px; } .visualization-caption { font-size: 12px; font-weight: 600; color: #93c5fd; } .visualization-link { display: block; border: 1px solid #31516a; border-radius: 10px; overflow: hidden; background: #0c1520; } .visualization-image { display: block; width: 100%; max-height: 360px; object-fit: contain; background: #0b1220; } .tool-activity-card { border: 1px solid #7f5d2b; border-radius: 10px; background: linear-gradient(180deg, rgba(127, 93, 43, 0.2), rgba(30, 24, 17, 0.96)); padding: 10px; display: flex; flex-direction: column; gap: 10px; } .tool-activity-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; } .tool-activity-label { font-size: 11px; font-weight: 700; color: #ffd892; text-transform: uppercase; letter-spacing: 0.04em; } .tool-activity-state { border-radius: 999px; padding: 3px 8px; font-size: 10px; font-weight: 700; letter-spacing: 0.04em; } .tool-activity-state.running { color: #fff4d6; background: rgba(255, 193, 7, 0.18); border: 1px solid rgba(255, 208, 99, 0.55); } .tool-activity-state.finished { color: #d9ffe7; background: rgba(34, 197, 94, 0.16); border: 1px solid rgba(99, 217, 165, 0.35); } .tool-activity-name-row { display: flex; align-items: center; gap: 8px; } .tool-activity-dot { width: 10px; height: 10px; border-radius: 50%; background: #ffd064; box-shadow: 0 0 0 0 rgba(255, 208, 100, 0.6); } .tool-activity-live .tool-activity-dot { animation: toolPulse 1.4s infinite ease-out; } .tool-activity-name { color: #fff1ca; font-size: 14px; font-weight: 700; } .tool-activity-track { position: relative; height: 8px; border-radius: 999px; overflow: hidden; background: rgba(255, 214, 153, 0.08); border: 1px solid rgba(255, 214, 153, 0.15); } .tool-activity-wave { position: absolute; top: 0; bottom: 0; width: 28%; border-radius: 999px; background: linear-gradient(90deg, rgba(255, 214, 153, 0), rgba(255, 214, 153, 0.9), rgba(255, 214, 153, 0)); opacity: 0.85; } .tool-activity-live .tool-activity-wave { animation: toolWave 1.8s linear infinite; } .tool-activity-live .wave-2 { animation-delay: 0.45s; } .tool-activity-live .wave-3 { animation-delay: 0.9s; } .tool-activity-card:not(.tool-activity-live) .tool-activity-wave { left: 36%; opacity: 0.5; } .tool-activity-desc { color: #f7e7c0; font-size: 12px; line-height: 1.55; white-space: pre-wrap; word-break: break-word; } @keyframes toolPulse { 0% { transform: scale(0.9); box-shadow: 0 0 0 0 rgba(255, 208, 100, 0.55); } 70% { transform: scale(1); box-shadow: 0 0 0 10px rgba(255, 208, 100, 0); } 100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 208, 100, 0); } } @keyframes toolWave { 0% { left: -30%; } 100% { left: 102%; } } .code-lang { color: #7be0a0; font-family: monospace; font-size: 11px; border: 1px solid #2d6248; border-radius: 999px; padding: 2px 8px; } .copy-btn { position: absolute; top: 10px; right: 12px; font-size: 11px; border: 1px solid #2d6248; border-radius: 6px; background: transparent; color: #7be0a0; padding: 3px 8px; cursor: pointer; } .code-block { border: 1px solid #2d6248; border-radius: 8px; background: #0b1411; padding: 10px; color: #a8efc5; font-family: monospace; font-size: 12px; line-height: 1.6; overflow-x: auto; } .code-grid { display: grid; grid-template-columns: 40px 1fr; border: 1px solid #2d6248; border-radius: 8px; overflow: hidden; } .code-grid .code-block { border: 0; border-radius: 0; margin: 0; min-width: 0; } .code-line-numbers { margin: 0; padding: 10px 8px; background: #0d1c15; border-right: 1px solid #2d6248; color: #5ca07a; font-size: 11px; line-height: 1.6; text-align: right; user-select: none; } .code-line-numbers span { display: block; } .result-content { color: #cbf8dc; font-size: 14px; white-space: pre-wrap; line-height: 1.55; } .tool-title { font-size: 13px; color: #ffd285; margin-bottom: 8px; font-weight: 600; } .empty-hint, .running-hint { border: 1px dashed #354060; border-radius: 10px; padding: 10px; color: #91a0ca; font-size: 13px; } .streaming-indicator { display: flex; gap: 4px; padding: 6px 0; } .dot { width: 6px; height: 6px; background: #a78bfa; border-radius: 50%; animation: bounce 1.2s infinite ease-in-out; } .dot:nth-child(2) { animation-delay: 0.2s; } .dot:nth-child(3) { animation-delay: 0.4s; } @keyframes bounce { 0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; } 40% { transform: scale(1); opacity: 1; } } .input-dock { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; border-top: 1px solid #232a3b; background: #0e121b; } .file-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } .file-row input[type="file"] { color: #cfd8f6; font-size: 12px; } .upload-hidden { display: none; } .upload-actions { display: inline-flex; align-items: center; gap: 8px; } .upload-btn { border: 1px solid #cfd8e5; background: #ffffff; color: #111827; border-radius: 8px; padding: 6px 10px; font-size: 12px; font-weight: 600; cursor: pointer; } .upload-btn:hover:not(:disabled) { border-color: #93a7c4; background: #f3f7ff; } .upload-btn:disabled { opacity: 0.5; cursor: not-allowed; } .file-hint { font-size: 12px; color: #8e98bc; } .composer-row { display: flex; gap: 10px; align-items: stretch; } .composer-row textarea { flex: 1; background: #12192a; border: 1px solid #2b3550; border-radius: 8px; color: #e6ebff; font-size: 13px; padding: 10px 12px; resize: none; outline: none; font-family: inherit; line-height: 1.5; min-height: 120px; } .composer-row textarea:focus { border-color: #7f93cf; } .composer-row textarea:disabled { opacity: 0.5; cursor: not-allowed; } .composer-row button { background: #6d5dfc; color: #fff; border: none; border-radius: 8px; padding: 0 20px; min-width: 120px; font-size: 14px; font-weight: 600; cursor: pointer; transition: background 0.15s; white-space: nowrap; } .composer-row button:hover:not(:disabled) { background: #5a4ce0; } .composer-row button:disabled { opacity: 0.4; cursor: not-allowed; } @media (max-width: 1080px) { .workspace-body { grid-template-columns: 1fr; } .conversation-pane { border-right: 0; border-bottom: 1px solid #232a3b; max-height: 38%; } } /* Light Theme Overrides */ body { background: #ffffff; color: #1f2937; } .chat-workspace { background: #ffffff; border: 1px solid #d9e1ec; } .workspace-header, .pane-title, .input-dock { background: #f7f9fc; border-color: #d9e1ec; } .header-title, .item-content, .result-heading, .result-text, .plain-block, .code-block, .result-content { color: #1f2937; } .header-subtitle, .session-badge, .item-meta, .card-subtitle, .running-hint, .empty-hint, .file-hint { color: #6b7280; } .session-badge, .summary-chip, .state-pill, .code-lang { border-color: #cdd6e3; background: #eef3f9; } .conversation-pane { border-right: 1px solid #d9e1ec; } .conversation-item { background: #ffffff; border-color: #d9e1ec; } .assistant-item { background: #fbfcff; } .assistant-item:hover { border-color: #88a2c4; background: #f4f8ff; } .active-item { border-color: #5d7fae; background: #e8f1ff; } .user-item { border-color: #bfd2ea; background: #f4f8ff; } .item-label { color: #365ea8; } .assistant-item .item-content, .assistant-item .result-rich, .assistant-item .result-text, .assistant-item .result-list, .assistant-item .result-quote, .assistant-item .result-table, .assistant-item .result-table th, .assistant-item .result-table td { color: #0f172a; } .assistant-item .result-heading { color: #0f172a; } .assistant-item .result-heading.h3, .assistant-item .result-heading.h4 { color: #334155; } .assistant-item .result-list { color: #1e293b; } .assistant-item .result-quote { background: #eef4ff; border-left-color: #7c9ed6; color: #1e3a5f; } .assistant-item .result-table { background: #ffffff; } .assistant-item .result-table th { background: #dbe8f8; color: #0f172a; } .assistant-item .result-table tr:nth-child(even) td { background: #f6f9fc; } .reasoning-card { background: #ffffff; border-color: #d9e1ec; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06); } .thinking-card, .code-card, .observation-card, .tool-card, .result-card, .error-card { background: #ffffff; border-color: #d9e1ec; } .thinking-card .card-tag, .thinking-card .card-subtitle { color: #6d28d9; } .observation-card .card-tag, .observation-card .card-subtitle { color: #0369a1; } .tool-card .card-tag, .tool-card .card-subtitle { color: #b45309; } .timeline-item::before { background: #d5deeb; } .timeline-node { background: #ffffff; border-color: #8da7c7; box-shadow: 0 0 0 3px rgba(141, 167, 199, 0.18); } .tool-preview, .plain-block, .result-quote, .task-block, .result-code-wrap, .result-seq-wrap, .code-grid { background: #f8fafc; border-color: #d4deeb; color: #1f2937; } .planning-block { border-color: #c4b5fd; background: linear-gradient(180deg, #f5f3ff, #ffffff); } .planning-text { color: #6d28d9; } .observation-block { border-color: #cfe3f0; background: #f8fbfd; } .observation-heading.level-1 { color: #075985; } .observation-heading.level-2 { color: #0f766e; } .observation-heading.level-3, .observation-heading.level-4 { color: #4d7c0f; } .observation-note { border-color: #b7d7c2; background: #f2fbf5; color: #166534; } .visualization-caption { color: #075985; } .visualization-link { border-color: #cfe3f0; background: #f8fbfd; } .visualization-image { background: #f8fbfd; } .tool-activity-card { border-color: #f3d7a2; background: linear-gradient(180deg, #fffaf0, #ffffff); } .tool-activity-label { color: #b45309; } .tool-activity-state.running { color: #92400e; background: #fff7e6; border-color: #f3c778; } .tool-activity-state.finished { color: #166534; background: #effcf3; border-color: #b7e4c7; } .tool-activity-dot { background: #f59e0b; } .tool-activity-name { color: #7c2d12; } .tool-activity-track { background: #fff7e8; border-color: #f4d7a1; } .tool-activity-wave { background: linear-gradient(90deg, rgba(245, 158, 11, 0), rgba(245, 158, 11, 0.65), rgba(245, 158, 11, 0)); } .tool-activity-desc { color: #5b3a10; } .result-table, .result-table th, .result-table td { border-color: #d4deeb; color: #1f2937; } .result-table th { background: #eef3f9; } .result-table tr:nth-child(even) td { background: #f9fbfd; } .composer-row textarea { background: #ffffff; border-color: #cfd8e5; color: #111827; } .composer-row textarea:focus { border-color: #6d8bb7; } .composer-row button { background: #2563eb; } .composer-row button:hover:not(:disabled) { background: #1d4ed8; } .converter-panel { border: 1px solid #d4deeb; border-radius: 10px; background: #f8fafc; padding: 10px; display: flex; flex-direction: column; gap: 8px; } .converter-title { color: #111827; font-size: 13px; font-weight: 600; } .converter-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .converter-input, .converter-select { height: 32px; border-radius: 8px; border: 1px solid #cfd8e5; background: #ffffff; color: #111827; padding: 0 10px; font-size: 12px; } .converter-input { min-width: 220px; } .converter-select { min-width: 120px; } .converter-file { font-size: 12px; color: #1f2937; } .secondary-btn { border: 1px solid #c7d5e8; background: #ffffff; color: #1f2937; border-radius: 8px; padding: 6px 10px; font-size: 12px; cursor: pointer; } .secondary-btn:disabled { opacity: 0.55; cursor: not-allowed; } .tool-chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid #d4deeb; border-radius: 999px; padding: 4px 10px; font-size: 12px; background: #ffffff; } .tool-ready { border-color: #a8d0b8; background: #f3fcf5; } .tool-missing { border-color: #e5c6c6; background: #fff7f7; } .tool-status { color: #6b7280; font-size: 11px; } .panel-notice { font-size: 12px; color: #374151; border: 1px dashed #cfd8e5; border-radius: 8px; background: #ffffff; padding: 6px 8px; } .warning-banner { border: 1px solid #f5c56a; background: #fffaf0; color: #92400e; border-radius: 12px; padding: 10px 12px; font-size: 12px; line-height: 1.5; } .primary-ghost-btn { border: 1px solid #2563eb; background: #eff6ff; color: #1d4ed8; border-radius: 8px; padding: 6px 10px; font-size: 12px; cursor: pointer; } .page-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .section-title { color: #111827; font-size: 14px; font-weight: 700; } .feature-caption { color: #475569; font-size: 12px; line-height: 1.5; } .studio-page { height: 100%; display: flex; flex-direction: column; border: 1px solid #d9e1ec; border-radius: 14px; background: #ffffff; overflow: hidden; } .studio-scroll { flex: 1; min-height: 0; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 16px; background: #f8fafc; } .studio-summary-grid, .studio-action-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } .studio-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .studio-summary-card, .studio-card, .catalog-card { border: 1px solid #d4deeb; border-radius: 12px; background: #ffffff; padding: 14px; } .featured-summary, .featured-card { background: linear-gradient(180deg, #fffaf0, #ffffff); border-color: #f1cf8a; } .summary-label { font-size: 12px; color: #64748b; } .summary-value { margin-top: 8px; font-size: 28px; font-weight: 700; color: #0f172a; } .summary-note { margin-top: 8px; color: #475569; font-size: 12px; line-height: 1.5; } .catalog-toolbar { display: flex; flex-direction: column; gap: 12px; } .catalog-search { width: 100%; height: 38px; border-radius: 10px; border: 1px solid #cfd8e5; background: #ffffff; color: #111827; padding: 0 12px; font-size: 13px; } .category-chip-row { display: flex; flex-wrap: wrap; gap: 8px; } .category-chip { border: 1px solid #d4deeb; background: #ffffff; color: #334155; border-radius: 999px; padding: 6px 10px; font-size: 12px; cursor: pointer; } .active-category-chip { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; } .featured-chip { border-color: #f1cf8a; background: #fffaf0; } .catalog-groups { display: flex; flex-direction: column; gap: 18px; } .catalog-group { display: flex; flex-direction: column; gap: 12px; } .catalog-group-header { display: flex; align-items: center; justify-content: space-between; } .catalog-group-title { font-size: 14px; font-weight: 700; color: #0f172a; } .catalog-group-subtitle { margin-top: 2px; font-size: 12px; color: #64748b; } .catalog-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .catalog-card { display: flex; flex-direction: column; gap: 10px; } .catalog-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; } .catalog-card-title { font-size: 15px; font-weight: 700; color: #111827; } .catalog-card-subtitle, .catalog-card-desc { font-size: 12px; color: #64748b; line-height: 1.5; } .catalog-badges { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; } .status-badge, .source-badge, .asset-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 8px; font-size: 11px; border: 1px solid #d4deeb; background: #f8fafc; color: #334155; } .status-ready { border-color: #a7f3d0; background: #ecfdf5; color: #047857; } .status-incomplete { border-color: #fecaca; background: #fef2f2; color: #b91c1c; } .catalog-meta-list { display: flex; flex-direction: column; gap: 8px; } .catalog-meta-row { display: flex; flex-direction: column; gap: 4px; font-size: 11px; color: #64748b; } .catalog-meta-body, .catalog-meta-row code { display: block; border: 1px solid #e2e8f0; border-radius: 8px; background: #f8fafc; padding: 8px 10px; color: #0f172a; font-size: 11px; line-height: 1.5; white-space: pre-wrap; word-break: break-word; } .catalog-asset-row { display: flex; flex-wrap: wrap; gap: 8px; } .asset-on { background: #eefbf4; border-color: #b7e4c7; color: #166534; } @media (max-width: 1280px) { .studio-summary-grid, .studio-action-grid, .catalog-card-grid { grid-template-columns: 1fr; } } @media (max-width: 960px) { .app-shell { flex-direction: column; } .app-sidebar { width: auto; min-width: 0; } .nav-actions { flex-direction: row; flex-wrap: wrap; } }