:root{--navy: #12123e;--coral: #ff5762;--bg: #0a0a2c;--surface: #12123e;--surface-2: #1a1a4f;--surface-3: #242465;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .2);--text: #ececf6;--text-muted: #a3a3c8;--text-on-navy: #ffffff;--accent: #ff5762;--accent-hover: #ff7079;--accent-text: #ffffff;--ok: #3dd68c;--warn: #f5b841;--danger: #ff5762;--info: #7c96ff;--focus: #ffb0b5;--radius: 10px;--radius-small: 6px;--shadow: 0 12px 32px rgba(0, 0, 0, .4);--font: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;color-scheme:dark}@media (prefers-color-scheme: light){:root{--bg: #f3f3f9;--surface: #ffffff;--surface-2: #f0f0f8;--surface-3: #e4e4f1;--border: rgba(18, 18, 62, .12);--border-strong: rgba(18, 18, 62, .28);--text: #12123e;--text-muted: #5b5b84;--shadow: 0 12px 32px rgba(18, 18, 62, .14);--focus: #c9273a;color-scheme:light}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}#root{height:100%}[hidden]{display:none!important}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:26px}h2{font-size:15px}h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}p{margin:0 0 10px}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.muted{color:var(--text-muted)}.small{font-size:12px}.mono{font-family:var(--mono);font-size:12.5px}.accent{color:var(--accent)}.spacer{flex:1}.centered{display:flex;align-items:center;justify-content:center;height:100%;padding:40px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:var(--radius-small);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .12s ease,border-color .12s ease,opacity .12s ease}.button:hover:not(:disabled){background:var(--surface-3)}.button:disabled{opacity:.5;cursor:not-allowed}.button.small{padding:5px 10px;font-size:12.5px}.button-large{padding:12px 22px;font-size:15px}.button-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.button-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.button-ghost{background:transparent;border-color:transparent}.button-ghost:hover:not(:disabled){background:#7f7fa029}.button-danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}.button-danger-outline{background:transparent;border-color:var(--danger);color:var(--danger)}.button-danger-outline:hover:not(:disabled){background:#ff57621f}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:var(--radius-small);background:transparent;color:var(--text-muted);cursor:pointer}.icon-button:hover:not(:disabled){background:#7f7fa02e;color:var(--text)}.icon-button:disabled{opacity:.4;cursor:not-allowed}.link{padding:0;border:0;background:none;color:var(--accent);cursor:pointer;text-decoration:underline}.chip{display:inline-flex;align-items:center;gap:6px;max-width:260px;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:#7f7fa01f;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-button{cursor:pointer;font-family:var(--mono)}.chip-button:hover{border-color:var(--accent);color:var(--accent)}.chip-cost{font-variant-numeric:tabular-nums}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.pill{display:inline-flex;align-items:center;gap:7px;padding:3px 11px 3px 8px;border-radius:999px;font-size:12.5px;font-weight:600;background:#ffffff14;color:var(--text-on-navy)}.pill-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.pill-neutral{color:#c9c9dd}.pill-info{color:#a9b8ff}.pill-ok{color:#7fe6b3}.pill-busy{color:#ffb0b5}.pill-busy .pill-dot{animation:pulse 1.2s ease-in-out infinite}.pill-warn{color:#ffd36b}.pill-danger{color:#ff8a92}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}.badge{display:inline-block;padding:1px 7px;border-radius:5px;font-size:11.5px;background:#7f7fa02e;color:var(--text-muted);white-space:nowrap}.badge-mono{font-family:var(--mono)}.badge-planned{background:#f5b84129;color:var(--warn)}.badge-status-ready{background:#3dd68c29;color:var(--ok)}.badge-status-planned{background:#f5b84129;color:var(--warn)}.badge-status-disabled{background:#ff576224;color:var(--danger)}.tag-list{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.field-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.field-help{line-height:1.4}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}input[type=text],input[type=number],select,textarea{width:100%;padding:8px 10px;border-radius:var(--radius-small);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text)}input[readonly]{opacity:.7}select:disabled,input:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}textarea{resize:vertical;min-height:60px}.checkbox{display:flex;align-items:flex-start;gap:8px;margin-bottom:14px}.checkbox input{margin-top:3px}.notice{padding:10px 12px;border-radius:var(--radius-small);border:1px solid var(--border);background:var(--surface-2)}.notice-error{border-color:#ff576280;background:#ff57621a}.notice-error p{margin:6px 0 10px;word-break:break-word}.notice-text{color:var(--danger);font-size:12px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.app{display:flex;flex-direction:column;height:100%}.topbar{flex:0 0 auto;display:flex;align-items:center;gap:18px;height:56px;padding:0 18px;background:var(--navy);color:var(--text-on-navy);border-bottom:1px solid rgba(255,255,255,.1)}.wordmark{font-weight:700;font-size:17px;letter-spacing:-.02em;color:inherit;text-decoration:none;white-space:nowrap}.wordmark-large{font-size:30px;color:var(--text)}.topbar-center{flex:1;display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.topbar .chip{border-color:#ffffff29;background:#ffffff14;color:var(--text-on-navy)}.topbar-actions{display:flex;align-items:center;gap:4px}@media (max-width: 700px){.topbar{gap:10px;padding:0 12px}.topbar .chip{display:none}.topbar-center{justify-content:flex-end}}.topbar .button-ghost{color:var(--text-on-navy)}.topbar .button-ghost:hover:not(:disabled){background:#ffffff1f}.user-menu{position:relative;margin-left:6px}.avatar-button{display:inline-flex;padding:2px;border:0;border-radius:50%;background:transparent;cursor:pointer}.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--accent);color:#fff;font-size:12.5px;font-weight:700}.menu{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;padding:6px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);box-shadow:var(--shadow);z-index:30}.menu-header{padding:8px 10px 6px}.menu-name{font-weight:600}.menu-separator{height:1px;margin:4px 0;background:var(--border)}.menu-version{padding:4px 10px}.menu-item{display:block;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-small);background:transparent;text-align:left;cursor:pointer}.menu-item:hover{background:var(--surface-2)}.login{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;min-height:100%;padding:40px 20px;background:radial-gradient(900px 500px at 15% 0%,rgba(255,87,98,.14),transparent 60%),radial-gradient(700px 400px at 90% 100%,rgba(124,150,255,.12),transparent 60%),var(--bg)}.login-card{width:min(440px,100%);padding:36px 32px;border-radius:16px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);text-align:center}.login-tagline{margin:12px 0 24px;color:var(--text-muted)}.login-google,.login-dev{display:flex;flex-direction:column;align-items:center;gap:12px}.google-button-host{display:flex;justify-content:center;min-height:44px}.login-footer{margin:0}.workspace{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.start{flex:1;overflow-y:auto;padding:40px 24px 60px}.start-inner{max-width:980px;margin:0 auto}.start-header{margin-bottom:28px}.start-header p{max-width:640px;margin-top:8px}.start-section{margin-bottom:28px}.template-group{margin-top:18px}.template-brand{margin-bottom:8px}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.template-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px 16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:border-color .12s ease,background .12s ease}.template-card:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}.template-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.template-card:disabled{cursor:not-allowed;opacity:.6}.template-label{font-weight:600;font-size:15px}.template-badges{display:flex;flex-wrap:wrap;gap:5px}.template-meta{line-height:1.4}.start-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,320px));gap:16px}.start-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.layout{flex:1;min-height:0;display:grid;grid-template-columns:280px minmax(0,1fr) 280px}.sidebar{overflow-y:auto;padding:18px 16px;background:var(--surface)}.sidebar-left{border-right:1px solid var(--border)}.sidebar-right{border-left:1px solid var(--border)}.chat-column{display:flex;flex-direction:column;min-height:0;min-width:0}.panel-tabs{display:flex;gap:4px;padding:8px 12px 0;border-bottom:1px solid var(--border);background:var(--surface)}.panel-tab{padding:8px 14px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer}.panel-tab.active{color:var(--text);border-bottom-color:var(--accent)}@media (max-width: 999px){.layout{grid-template-columns:minmax(0,1fr)}.sidebar-left,.sidebar-right{border:0}}.banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:14px 20px 0;padding:12px 16px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-2)}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#12123eb8;z-index:20;pointer-events:none}.drop-overlay-card{padding:24px 32px;border-radius:var(--radius);border:2px dashed var(--accent);background:var(--surface);font-size:16px;font-weight:600}.boot{margin:20px auto 0;width:min(640px,calc(100% - 40px));padding:18px 22px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface)}.boot-title{margin-bottom:12px;font-size:15px}.boot-steps{list-style:none;margin:0;padding:0}.boot-step{position:relative;display:flex;align-items:baseline;gap:12px;padding:6px 0 6px 4px}.boot-marker{flex:0 0 auto;width:12px;height:12px;border-radius:50%;border:2px solid var(--border-strong);transform:translateY(1px)}.boot-done .boot-marker{border-color:var(--ok);background:var(--ok)}.boot-active .boot-marker{border-color:var(--accent);background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.boot-pending{color:var(--text-muted)}.boot-label{font-weight:500}.boot-detail{font-size:12.5px;font-variant-numeric:tabular-nums}.chat{flex:1;min-height:0;overflow-y:auto;padding:20px 20px 12px;scroll-behavior:smooth}.chat-empty{max-width:560px;margin:60px auto;text-align:center}.msg{max-width:860px;margin:0 auto 16px}.msg-user{display:flex;justify-content:flex-end}.msg-user .msg-body{max-width:82%;padding:10px 14px;border-radius:14px 14px 4px;background:var(--surface-3)}.msg-text{white-space:pre-wrap;overflow-wrap:anywhere}.msg-attachments{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.msg-attachments li{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:6px;background:#0000002e;font-size:12.5px}.msg-assistant{line-height:1.6}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p,.markdown ul,.markdown ol,.markdown table,.markdown blockquote{margin:0 0 12px}.markdown h1,.markdown h2,.markdown h3,.markdown h4{margin:18px 0 8px;font-size:15px}.markdown h1{font-size:18px}.markdown h2{font-size:16px}.markdown code{padding:1px 5px;border-radius:4px;background:var(--surface-2);font-family:var(--mono);font-size:12.5px}.markdown pre{margin:0 0 12px;padding:12px 14px;border-radius:var(--radius-small);border:1px solid var(--border);background:var(--surface-2);overflow-x:auto}.markdown pre code{padding:0;background:none}.markdown table{border-collapse:collapse;display:block;overflow-x:auto}.markdown th,.markdown td{padding:5px 10px;border:1px solid var(--border);text-align:left}.markdown blockquote{padding-left:12px;border-left:3px solid var(--accent);color:var(--text-muted)}.caret{display:inline-block;width:7px;height:15px;margin-left:3px;vertical-align:-2px;background:var(--accent);animation:blink 1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.line{max-width:860px;margin:0 auto 10px;padding:6px 10px;border-radius:var(--radius-small);font-size:12.5px;color:var(--text-muted)}.line-log{font-family:var(--mono);white-space:pre-wrap;background:#7f7fa01a}.line-warn{color:var(--warn)}.line-error,.line-log.line-error{color:var(--danger);background:#ff57621a}.line-relay{text-align:center}.turn-done{max-width:860px;margin:-4px auto 18px;display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.turn-error-text{color:var(--danger)}.tool{max-width:860px;margin:0 auto 8px;border-radius:var(--radius-small);border:1px solid var(--border);background:var(--surface)}.tool-row{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border:0;border-radius:var(--radius-small);background:transparent;color:var(--text);text-align:left;cursor:pointer}.tool-row:hover{background:var(--surface-2)}.dot{flex:0 0 auto;width:9px;height:9px;border-radius:50%}.dot-running{background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.dot-ok{background:var(--ok)}.dot-error{background:var(--danger)}.tool-name{flex:0 0 auto;font-family:var(--mono);font-size:12.5px;font-weight:600}.tool-summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:12.5px}.chevron{flex:0 0 auto;color:var(--text-muted);transition:transform .12s ease}.chevron-open{transform:rotate(180deg)}.tool-details{padding:4px 12px 12px;border-top:1px solid var(--border)}.tool-section-title{margin:8px 0 4px;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.tool-pre{margin:0;max-height:320px;padding:10px 12px;border-radius:var(--radius-small);background:var(--surface-2);font-family:var(--mono);font-size:12px;white-space:pre-wrap;overflow:auto}.question{max-width:860px;margin:0 auto 16px;padding:14px 16px;border-radius:var(--radius);border:1px solid var(--accent);background:var(--surface)}.question-locked{border-color:var(--border)}.question-block+.question-block{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.question-header{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}.question-text{margin:4px 0 10px;font-weight:600}.question-answer{color:var(--text-muted)}.question-options{display:flex;flex-direction:column;gap:6px}.option{display:flex;align-items:flex-start;gap:10px;width:100%;padding:8px 12px;border-radius:var(--radius-small);border:1px solid var(--border);background:var(--surface-2);color:var(--text);text-align:left;cursor:pointer}.option:hover{border-color:var(--border-strong)}.option-checked{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.option input[type=checkbox],.option input[type=radio]{margin-top:4px}.option-body{display:flex;flex-direction:column;flex:1;gap:2px}.option-label{font-weight:500}.option-description{font-size:12.5px;color:var(--text-muted)}.option-input{margin-top:4px}.question-actions{display:flex;justify-content:flex-end;margin-top:12px}.composer{flex:0 0 auto;padding:10px 20px 12px;border-top:1px solid var(--border);background:var(--surface)}.composer-hint{margin-bottom:8px;padding:8px 12px;border-radius:var(--radius-small);background:#f5b8411f;color:var(--text);font-size:12.5px}.composer-files{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px;padding:0}.composer-files .chip{max-width:320px;padding-right:2px}.composer-row{display:flex;align-items:flex-end;gap:8px}.composer-attach{flex:0 0 auto;width:38px;height:38px}.composer-input{flex:1;min-height:38px;max-height:260px;padding:8px 12px;border-radius:var(--radius);resize:none;line-height:22px}.composer-footer{margin-top:6px;min-height:16px}.files-section+.files-section,.controls-section+.controls-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}.controls-section h2{margin-bottom:10px}.file-list{list-style:none;margin:8px 0 0;padding:0}.file-row{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:var(--radius-small)}.file-row:hover{background:var(--surface-2)}.file-row svg{flex:0 0 auto;color:var(--text-muted)}.file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{flex:0 0 auto;font-size:11.5px;white-space:nowrap}.file-upload-uploading .file-meta{color:var(--accent)}.file-upload-error .file-meta{color:var(--danger)}.files-empty{margin:8px 4px 0}.info-list{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0}.info-list dt{color:var(--text-muted);font-size:12.5px}.info-list dd{margin:0;font-size:12.5px;overflow-wrap:anywhere}.controls-end{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.dialog{width:min(560px,calc(100% - 32px));padding:0;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.dialog::backdrop{background:#06061e99}.dialog-body{padding:20px 22px 18px}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dialog-header h2{font-size:17px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.dialog-success{padding:8px 0 0}.segmented{display:flex;gap:4px;margin:0 0 14px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-small);background:var(--surface-2)}.segment{flex:1;padding:6px 8px;border-radius:4px;text-align:center;cursor:pointer;font-size:13px}.segment input{position:absolute;opacity:0;width:0;height:0}.segment.active{background:var(--accent);color:var(--accent-text);font-weight:600}.segment:focus-within{outline:2px solid var(--focus)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:flex-end;background:#06061e8c;z-index:40}.drawer{width:min(520px,100%);height:100%;overflow-y:auto;padding:20px 22px 30px;border-left:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow)}.drawer-actions{margin-top:14px}.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100% - 32px));z-index:50}.toast{display:flex;align-items:flex-start;gap:10px;padding:10px 8px 10px 14px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.toast-message{flex:1;padding-top:3px;overflow-wrap:anywhere}.toast-error{border-color:var(--danger)}.toast-success{border-color:var(--ok)}.toast-info{border-color:var(--info)}.admin{flex:1;overflow-y:auto;padding:28px 24px 60px}.admin-section{max-width:1400px;margin:0 auto 36px}.admin-section h2{font-size:18px}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:8px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.table th{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--surface-2)}.table tbody tr:last-child td{border-bottom:0}
