:root{color-scheme:dark;--bg:#0b0f14;--panel:#111821;--panel2:#0d1117;--text:#e6edf3;--muted:#8aa0b5;--border:#263241;--accent:#72f1b8;--danger:#ff7b72;--vvh:100vh}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:inherit;text-decoration:none}button,.button,input,textarea,select{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;background:#1f6feb;color:white;border:0;border-radius:10px;padding:9px 13px;cursor:pointer}button.secondary,.button.secondary{background:#263241}input,textarea,select{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px}textarea{resize:vertical}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(11,15,20,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:10px 14px}.brand{font-size:22px;font-weight:900;color:var(--accent)}.topbar-project{font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-project-group{flex:1;display:flex;align-items:center;gap:6px;padding:0 4px;min-width:0}.topbar-sep{color:var(--border);flex-shrink:0}.tpbar-back{font-size:13px;color:var(--muted);flex-shrink:0;text-decoration:none;white-space:nowrap;line-height:1}.tpbar-back:hover{color:var(--accent)}.nav{display:flex;gap:10px;align-items:center}.nav form{margin:0}.burger{display:none;background:#263241}.wrap{max-width:1180px;margin:0 auto;padding:18px}.narrow{max-width:720px}.hero{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px}.compact{padding:12px}.project-card:hover{border-color:var(--accent)}.muted{color:var(--muted)}.small{font-size:12px}.pill{display:inline-block;border:1px solid var(--border);border-radius:999px;padding:3px 8px;color:var(--muted)}.flash{padding:8px 14px}.login{max-width:420px;margin:12vh auto}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions>a,.actions>button,.actions form,.actions form button{width:100%}.actions form{margin:0;display:flex}.actions form button{height:100%}.project-shell{height:calc(100vh - 54px);display:grid;grid-template-columns:300px 8px minmax(0,1fr) 8px 390px;gap:8px;padding:12px}.project-shell>*{min-width:0;min-height:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border-bottom:1px solid var(--border);background:#0f1620}.panel-head .button,.panel-head button{padding:6px 9px;font-size:12px}.panel-head .icon{width:auto}.chat-head{min-height:49px}.pane-arrow{min-width:40px;font-size:18px!important;font-weight:900;color:var(--accent)}.resize-handle{cursor:col-resize;border-radius:99px;background:linear-gradient(180deg,transparent,var(--border),transparent)}.resize-handle:hover{background:var(--accent)}.drawer{grid-column:1}.resize-handle[data-resize="left"]{grid-column:2}.chat-panel{grid-column:3}.resize-handle[data-resize="right"]{grid-column:4}.files-panel{grid-column:5}.project-shell.hide-left .drawer,.project-shell.hide-left [data-resize="left"],.project-shell.hide-right .files-panel,.project-shell.hide-right [data-resize="right"]{visibility:hidden;pointer-events:none;overflow:hidden}.side,.chat-panel,.files-panel{min-height:0;background:var(--panel);border:1px solid var(--border);border-radius:16px;overflow:hidden}.side{display:flex;flex-direction:column;gap:12px;overflow:auto;padding-top:12px}.side>.card,.side>.actions{margin-left:12px;margin-right:12px}.chat-panel{display:grid;grid-template-rows:auto 1fr auto}.messages{overflow:auto;padding:14px;scroll-padding-bottom:96px;font-family:ui-monospace,Menlo,'Courier New',monospace;font-size:13px}.msg{margin:0 0 8px;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--panel2);white-space:pre-wrap}.msg.user{border-color:#375a7f;border-left:3px solid var(--accent);background:#091915;position:relative;padding-left:28px;white-space:pre-wrap}.msg.user::before{content:'$ ';position:absolute;left:10px;color:var(--accent);font-weight:700;font-family:ui-monospace,Menlo,monospace}.msg.assistant{border-color:#2f6f55;white-space:normal;line-height:1.65;font-family:system-ui,-apple-system,sans-serif;font-size:14px}.msg.assistant.final{border-color:var(--accent);box-shadow:0 0 0 1px rgba(114,241,184,.25);background:linear-gradient(180deg,#102019,#0d1117)}.msg.assistant.final:before{content:'Task summary';display:inline-block;margin-bottom:8px;padding:2px 8px;border-radius:999px;background:rgba(114,241,184,.12);color:var(--accent);font-size:12px;font-weight:800}.msg.tool{border-color:#725c23}.msg h1,.msg h2,.msg h3,.msg h4{margin:12px 0 7px;line-height:1.25}.msg h2{border-bottom:1px solid var(--border);padding-bottom:4px}.msg p{margin:7px 0}.msg ul,.msg ol{margin:8px 0 8px 22px;padding:0}.msg li{margin:4px 0}.msg blockquote{margin:10px 0;padding:8px 12px;border-left:3px solid var(--accent);background:#0f1620;color:var(--muted)}.msg code{background:#161b22;border:1px solid var(--border);border-radius:5px;padding:1px 4px}.msg pre{background:#080c10;border:1px solid var(--border);border-radius:10px;padding:12px;overflow:auto;position:relative}.composer{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border);align-items:flex-end}.composer textarea{flex:1;min-width:0;min-height:58px;max-height:240px}#sendBtn{flex-shrink:0}.files-panel{display:flex;flex-direction:column}.tabs{display:flex;border-bottom:1px solid var(--border)}.tabs button,.tabs .tab-link{flex:1;border-radius:0;background:#18212c;display:flex;align-items:center;justify-content:center;padding:8px 0;color:var(--text)}.tabs button.active{background:#1f6feb}.tab-body{padding:10px;overflow:auto}.hidden{display:none!important}.file{display:block;width:100%;margin:4px 0;text-align:left;background:#18212c}.editorbar{display:flex;gap:8px;align-items:center;margin-bottom:8px}.editor{height:calc(100vh - 185px);font-family:ui-monospace,Menlo,monospace;white-space:pre}.status{font-family:ui-monospace,Menlo,monospace;color:var(--muted);display:flex;align-items:center;gap:8px}.status:before{content:'';width:9px;height:9px;border-radius:50%;background:var(--muted);display:inline-block}.status.working{color:var(--accent)}.status.working:before{background:var(--accent);animation:breathe 1.25s ease-in-out infinite;box-shadow:0 0 0 0 rgba(114,241,184,.55)}.status.reconnecting{color:#ffd166}.status.reconnecting:before{background:#ffd166;animation:breathe .75s ease-in-out infinite}@keyframes breathe{0%,100%{transform:scale(.85);box-shadow:0 0 0 0 rgba(114,241,184,.45)}50%{transform:scale(1.25);box-shadow:0 0 0 8px rgba(114,241,184,0)}}details.msg{padding:0}details.msg summary{cursor:pointer;padding:8px 12px;font-weight:700;color:var(--muted);font-family:ui-monospace,Menlo,monospace;font-size:12px;letter-spacing:.02em;display:flex;align-items:center;gap:8px;overflow:hidden}details.msg[open] summary{border-bottom:1px solid var(--border)}.ts-badge{flex-shrink:0;font-size:13px}.ts-badge.running{color:#ffd166}.ts-badge.done{color:var(--accent)}.ts-badge.error{color:var(--danger)}.ts-tool{font-weight:800;color:var(--text);letter-spacing:0}.ts-cmd{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px;border:0;background:transparent;padding:0;font-family:inherit}.details-body{padding:12px;white-space:pre-wrap}.tool-meta{display:flex;gap:8px;align-items:center;margin-bottom:10px}.tool-meta span{display:inline-block;border:1px solid var(--border);border-radius:999px;padding:2px 8px;color:var(--muted);font-size:12px;font-weight:800}.tool-meta.running span:first-child{color:#ffd166;border-color:#725c23}.tool-meta.done span:first-child{color:var(--accent);border-color:#2f6f55}.tool-meta.error span:first-child{color:var(--danger);border-color:#8b2c2c}.tool-row{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;align-items:start;margin:6px 0}.tool-row span,.tool-label{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.tool-row code{white-space:pre-wrap;word-break:break-word}.tool-command pre,.tool-output pre{margin:6px 0 12px}.msg.tool.running{border-color:#725c23}.msg.tool.done{border-color:#2f6f55}.msg.tool.error{border-color:#8b2c2c}.raw-json{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}.raw-json summary{padding:4px!important;border:0!important;font-size:12px}.msg.analysis{border-color:#5b4c9a;background:#100f1d}.msg.analysis summary{color:#b8a7ff}.msg.analysis .details-body{white-space:normal;line-height:1.6}pre{white-space:pre-wrap;overflow:auto}.copy-btn{position:absolute;top:6px;right:6px;padding:3px 8px;font-size:11px;border-radius:6px;background:#263241;color:var(--muted);opacity:.7;cursor:pointer;border:0;font-family:inherit}.copy-btn:hover{opacity:1;color:var(--text)}.diff-view{background:#080c10;border:1px solid var(--border);border-radius:10px;padding:12px;overflow:auto;font-family:ui-monospace,Menlo,monospace;font-size:12px;white-space:pre;line-height:1.5;max-height:400px}.diff-add{color:#7ee787;background:rgba(46,160,67,.15);display:block}.diff-rem{color:#ff7b72;background:rgba(248,81,73,.15);display:block}.diff-hunk{color:#58a6ff;display:block}.diff-meta{color:var(--muted);display:block}.git-err{color:var(--danger);font-size:12px;white-space:pre-wrap;font-family:ui-monospace,Menlo,monospace}.task-group{background:var(--panel);border:1px solid var(--border);border-radius:14px;margin:0 0 10px;overflow:hidden}.task-group.running{border-color:#375a7f}.task-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;padding:10px 14px;list-style:none;font-family:ui-monospace,Menlo,monospace;font-size:12px;background:#0f1620}.task-summary::-webkit-details-marker{display:none}.task-prompt{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.task-prompt::before{content:'$ ';color:var(--accent);font-weight:700}.task-badge{flex-shrink:0;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.task-badge.done{background:rgba(114,241,184,.12);color:var(--accent)}.task-badge.working{background:rgba(255,209,102,.12);color:#ffd166}.task-badge.pending{background:rgba(138,160,181,.1);color:var(--muted)}.task-badge.error{background:rgba(248,81,73,.12);color:var(--danger)}.task-body{padding:10px;display:flex;flex-direction:column;gap:6px}.task-body .msg{margin:0}.task-wrap{margin:0 0 12px}.task-wrap>.task-group{margin:0}.task-result{margin-top:6px}.task-result>.msg{margin:0}.toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(14px);background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 20px;font-size:13px;z-index:200;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.ok{border-color:var(--accent);color:var(--accent)}.toast.err{border-color:var(--danger);color:var(--danger)}.bottom-tabs{display:none}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}.modal-box{background:var(--panel);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;width:100%;max-width:720px;max-height:90vh;overflow:hidden}.modal-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.modal-head strong{flex:1}.modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--border)}.modal-box .editor{flex:1;border-radius:0;border:0;border-bottom:1px solid var(--border);height:auto;min-height:300px;resize:none}.tpnav-btn{padding:6px 10px;font-size:13px;flex-shrink:0}.term-keys{display:flex;overflow-x:auto;gap:4px;flex-shrink:0;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0}.term-keys::-webkit-scrollbar{display:none}.term-key{flex-shrink:0;padding:6px 11px;font-size:12px;font-family:ui-monospace,Menlo,monospace;border-radius:8px;background:#18212c;color:var(--text);border:1px solid var(--border);cursor:pointer;min-width:38px;text-align:center;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.term-key:active{background:#263241}.term-key.ctrl-on{background:#1f6feb;border-color:#58a6ff;color:#fff}
.runtime-bar{margin-top:8px;display:flex;flex-wrap:wrap;gap:5px;min-height:0}.rc{display:inline-flex;align-items:center;background:#0d1117;border:1px solid var(--border);border-radius:999px;padding:1px 8px;font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--muted);white-space:nowrap}.rc.hi{color:var(--accent);border-color:rgba(114,241,184,.25);background:rgba(114,241,184,.06)}.chat-status{flex:1;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;gap:6px}.task-group.incomplete{border-color:#3a4a5c;opacity:.85}.task-badge.incomplete{background:rgba(138,160,181,.1);color:var(--muted)}button.secondary.active{background:#1a3a6a;border-color:#375a7f;color:var(--accent)}.task-chevron{color:var(--muted);font-size:16px;line-height:1;flex-shrink:0;transition:transform .15s;display:inline-block}details.task-group:not([open])>.task-summary>.task-chevron{transform:rotate(-90deg)}.play-btn,.done-btn{padding:2px 7px!important;font-size:12px!important;line-height:1.4;flex-shrink:0;opacity:.75}.play-btn:hover,.done-btn:hover{opacity:1;background:#1f6feb!important}.done-btn{border:1px solid rgba(114,241,184,.35)!important;color:var(--accent)!important}.task-prompt{cursor:pointer}.task-prompt.expanded{white-space:pre-wrap;overflow:visible;text-overflow:clip;color:var(--text)}.session-section{border:1px solid var(--border);border-radius:16px;margin:0 0 14px;overflow:hidden}.session-summary{display:flex;align-items:center;gap:10px;cursor:pointer;padding:12px 16px;list-style:none;background:#080c11;user-select:none}.session-summary::-webkit-details-marker{display:none}.session-label{flex:1;font-size:13px;font-weight:700;color:var(--muted)}.session-badge{flex-shrink:0;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:800;background:rgba(138,160,181,.1);color:var(--muted)}.session-section[open]>.session-summary{border-bottom:1px solid var(--border)}.session-body{padding:10px;display:flex;flex-direction:column}@media(min-width:641px){.chat-status{display:none!important}}
@media(max-width:640px){html,body{min-height:100%;overflow:auto;overflow-x:hidden;max-width:100vw}.tpback-text{display:none}.topbar-sep{display:none}.pane-arrow{display:none!important}.burger{display:inline-flex}.nav{display:none;position:absolute;right:12px;top:54px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px;flex-direction:column}.nav.open{display:flex}main{height:calc(var(--vvh) - 54px);overflow:auto;-webkit-overflow-scrolling:touch}.wrap{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.project-shell{height:calc(var(--vvh) - 102px);display:block;padding:8px;margin-top:48px}.keyboard-open .project-shell{height:calc(var(--vvh) - 54px);margin-top:0}.keyboard-open .bottom-tabs{display:none}.resize-handle{display:none}.side,.chat-panel,.files-panel{display:none;height:100%;border-radius:14px}.chat-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.side.mobile-active,.files-panel.mobile-active{display:flex}.chat-panel.mobile-active{display:grid}.files-panel{flex-direction:column}.messages{min-height:0;padding-bottom:18px}.composer{padding:8px;background:var(--panel);position:relative;z-index:5}.composer textarea{min-height:54px;max-height:34vh;font-size:16px}.bottom-tabs{position:fixed;top:54px;left:0;right:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:1px;background:var(--border);border-bottom:1px solid var(--border);z-index:20}.bottom-tabs button,.bottom-tab-link{border-radius:0;padding:12px 8px;background:#18212c;display:flex;align-items:center;justify-content:center;font:inherit;font-size:15px;color:var(--text);text-align:center;cursor:pointer;border:0}.bottom-tabs button.active,.bottom-tab-link.active{background:#1f6feb;color:white}.editor{height:55vh}.hero{align-items:flex-start;flex-direction:column}.grid{grid-template-columns:1fr}}

.upload-form{display:flex;flex-direction:column;gap:12px}.upload-step{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--border);border-radius:12px;background:rgba(13,17,23,.55)}.step-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.step-title span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#1f6feb;color:#fff}.field-label{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.check-row{display:flex;align-items:center;gap:10px;color:var(--text)}.check-row input{width:22px;height:22px;flex:0 0 22px;accent-color:var(--accent)}.upload-option{font-weight:600}.upload-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.upload-actions span{margin-right:auto}.upload-actions button{min-width:130px}.upload-help{margin:-2px 0 0}.upload-selected{padding:8px 10px;border:1px dashed var(--border);border-radius:10px;background:var(--panel2);word-break:break-word}.action-popover{position:fixed;inset:0;z-index:150;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px}.action-box{width:min(360px,100%);display:flex;flex-direction:column;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:14px}.action-row{display:flex;justify-content:flex-end;gap:8px}@media(max-width:640px){.upload-actions button{width:100%}.upload-actions span{width:100%;text-align:right}}
.ctx-bar{height:8px;background:var(--panel2);border:1px solid var(--border);border-radius:999px;overflow:hidden}.ctx-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .4s ease,background .4s ease}.stats-compact-btn{background:#1f3a2e;color:var(--accent);border:1px solid rgba(114,241,184,.4)}.stats-compact-btn:hover{background:#2a5040}.toast-error{background:rgba(248,81,73,.1);border:1px solid var(--danger);border-radius:10px;padding:10px;color:var(--danger);font-size:13px}.toast-ok{background:rgba(114,241,184,.1);border:1px solid var(--accent);border-radius:10px;padding:10px;color:var(--accent);font-size:13px}
.form-select{width:auto;min-width:180px}
.tool-summary{font-size:12px;color:var(--text);white-space:pre-wrap;word-break:break-word;line-height:1.5}.tool-summary.muted{color:var(--muted)}.tool-summary.error{color:var(--danger)}.tool-summary .muted{color:var(--muted)}
.ctx-menu{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:4px;display:flex;flex-direction:column;gap:2px;box-shadow:0 8px 24px rgba(0,0,0,.5);min-width:160px}.ctx-item{background:transparent;color:var(--text);border:0;border-radius:7px;padding:7px 10px;cursor:pointer;font-size:13px;text-align:left;display:flex;align-items:center;gap:8px}.ctx-item:hover{background:#263241;color:var(--accent)}.ctx-icon{font-size:12px;width:16px;text-align:center;flex-shrink:0;color:var(--muted)}.ctx-item:hover .ctx-icon{color:var(--accent)}
