:root{--bg: #0a0a0a;--panel: #141416;--panel-2: #1b1b1f;--border: #2a2a30;--text: #e8e8ea;--text-dim: #9a9aa2;--text-faint: #6b6b73;--accent: #6b8cff;--accent-2: #4f6fe0;--ok: #3ecf8e;--warn: #f0a23b;--err: #ff5c5c;--user: #2a3a5e;--assistant: #1b1b1f;--tool: #242026;--radius: 14px;--tap: 44px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none;overflow-x:hidden}#root{display:flex;flex-direction:column;min-height:100dvh;width:100%;overflow-x:hidden}button,input,textarea{font:inherit;color:inherit}button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);min-height:var(--tap);padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:active{transform:translateY(1px)}button:disabled{opacity:.5}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.ghost{background:transparent;border-color:var(--border)}button.danger{border-color:#5a2a2a;color:var(--err)}input,textarea{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;min-height:var(--tap);width:100%;outline:none}input:focus,textarea:focus{border-color:var(--accent)}textarea{resize:none;min-height:80px;line-height:1.5}a{color:var(--accent);text-decoration:none}.scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;min-width:0}.pad{padding:14px}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px}.topbar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--panel);border-bottom:1px solid var(--border);min-height:54px;flex:0 0 auto}.topbar .title{font-weight:600;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-badge{display:inline-block;margin-left:8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--warn);border:1px solid var(--warn);border-radius:999px;padding:2px 8px;vertical-align:middle}.topbar .back{min-height:40px;padding:8px 10px}.chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--panel);flex:0 0 auto}.chip{white-space:nowrap;min-height:34px;padding:6px 10px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.chip .k{color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.chip .v{max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip.active{border-color:var(--accent)}.chip.auto-on{background:#2a1a0a;border-color:var(--warn)}.chip.auto-on .v{color:var(--warn);font-weight:600}.markdown{line-height:1.6;font-size:14px;word-wrap:break-word;overflow-wrap:anywhere}.markdown>*:first-child{margin-top:0}.markdown>*:last-child{margin-bottom:0}.markdown p{margin:0 0 10px}.markdown h1,.markdown h2,.markdown h3,.markdown h4{margin:16px 0 8px;font-weight:600;line-height:1.3}.markdown h1{font-size:18px}.markdown h2{font-size:16px}.markdown h3{font-size:15px}.markdown h4{font-size:14px;color:var(--text-dim)}.markdown ul,.markdown ol{margin:0 0 10px;padding-left:20px}.markdown li{margin:2px 0}.markdown ul li{list-style:disc}.markdown ol li{list-style:decimal}.markdown a{color:var(--accent);text-decoration:underline}.markdown strong{font-weight:600}.markdown em{font-style:italic}.markdown del{color:var(--text-faint)}.markdown blockquote{margin:0 0 10px;padding:4px 12px;border-left:3px solid var(--border);color:var(--text-dim)}.markdown code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:13px;background:#ffffff14;padding:1px 5px;border-radius:4px}.markdown pre{margin:0 0 10px;padding:10px 12px;background:#0000004d;border:1px solid var(--border);border-radius:8px;overflow-x:hidden;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-size:12px;line-height:1.5}.markdown pre code{background:none;padding:0;font-size:12px}.markdown table{margin:0 0 10px;border-collapse:collapse;width:100%;font-size:13px;display:block;overflow-x:hidden;table-layout:fixed;word-break:break-word}.markdown th,.markdown td{border:1px solid var(--border);padding:6px 10px;text-align:left}.markdown th{background:#ffffff0a;font-weight:600}.markdown hr{border:none;border-top:1px solid var(--border);margin:12px 0}.msg.user .text-part{white-space:pre-wrap}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:50;display:flex;align-items:flex-end}.sheet{width:100%;max-width:100%;margin:0 auto;background:var(--panel);border-top-left-radius:18px;border-top-right-radius:18px;border-top:1px solid var(--border);max-height:85dvh;display:flex;flex-direction:column;overflow-x:hidden}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);flex:0 0 auto}.sheet-body{overflow-y:auto;overflow-x:hidden;padding:8px 0 18px;-webkit-overflow-scrolling:touch}.sheet-item{display:flex;flex-direction:column;gap:2px;padding:14px 16px;min-height:var(--tap);border-bottom:1px solid var(--border);cursor:pointer}.sheet-item:active{background:var(--panel-2)}.sheet-item .name{font-weight:500}.sheet-item .desc{color:var(--text-dim);font-size:13px}.sheet-item.check:after{content:""}.sheet-item.selected{background:var(--panel-2)}.sheet-item .check{align-self:center;color:var(--accent);margin-left:8px}.sheet-grabber{width:38px;height:4px;border-radius:999px;background:var(--border);margin:8px auto 2px}.chat-list{padding:10px 12px 140px;display:flex;flex-direction:column;gap:10px;min-width:0}.msg{border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;background:var(--assistant);max-width:100%;min-width:0;overflow-x:hidden;word-wrap:break-word;overflow-wrap:anywhere;border-left:3px solid transparent}.msg.user{background:var(--user);border-color:#2f4670;border-left-color:#6b8cff}.msg .role{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.msg .body{display:flex;flex-direction:column;gap:8px;min-width:0;overflow-x:hidden}.text-part{white-space:pre-wrap;line-height:1.5}.reasoning{border-left:3px solid var(--text-faint);padding-left:10px;color:var(--text-dim);font-size:13px}.reasoning summary{cursor:pointer;color:var(--text-faint);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.thinking-block{display:flex;flex-direction:column;gap:6px;padding:10px 14px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);border-left:3px solid var(--accent)}.thinking{color:var(--text);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:10px}.thinking .spinner{width:18px;height:18px;border-width:2px;border-top-color:var(--accent)}.activity{color:var(--text-faint);font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.activity.warn{color:var(--warn);font-weight:600}.stuck{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 10px;background:#2a1a1a;border:1px solid #5a2a2a;border-radius:10px;font-size:13px;color:var(--err)}.stuck button{min-height:32px;padding:4px 10px;font-size:13px;margin-left:auto}.tool-part{border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:var(--tool);font-size:13px;display:flex;flex-direction:column;gap:4px}.tool-part.compact{flex-direction:row;align-items:center;gap:8px;padding:6px 10px;font-size:12px;border-left:3px solid transparent}.tool-part.tool-read{border-left-color:#6b8cff;background:#6b8cff14}.tool-part.tool-read .tool-name{color:#6b8cff}.tool-part.tool-edit{border-left-color:#3ecf8e;background:#3ecf8e14}.tool-part.tool-edit .tool-name{color:#3ecf8e}.tool-part.tool-bash{border-left-color:#f0a23b;background:#f0a23b14}.tool-part.tool-bash .tool-name{color:#f0a23b}.tool-part.tool-task{border-left-color:#b366ff;background:#b366ff14}.tool-part.tool-task .tool-name{color:#b366ff}.tool-part.tool-web{border-left-color:#23d5e0;background:#23d5e014}.tool-part.tool-web .tool-name{color:#23d5e0}.tool-part.tool-todo{border-left-color:#ff6b9d;background:#ff6b9d14}.tool-part.tool-todo .tool-name{color:#ff6b9d}.tool-part.tool-skill{border-left-color:#ffd23b;background:#ffd23b14}.tool-part.tool-skill .tool-name{color:#ffd23b}.tool-part.tool-question{border-left-color:#ff5c5c;background:#ff5c5c14}.tool-part.tool-question .tool-name{color:#ff5c5c}.tool-part.tool-default{border-left-color:var(--text-faint)}.tool-part.question{border-left-color:#ff5c5c;background:#ff5c5c14;flex-direction:column;align-items:flex-start;gap:6px}.tool-part.question .tool-name{color:#ff5c5c;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.tool-part.question .q-text{font-size:14px;line-height:1.5;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}.tool-part.question .q-options{display:flex;flex-wrap:wrap;gap:6px}.tool-part.question .q-opt{font-size:12px;color:var(--text-dim);background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:3px 10px}.tool-part .tool-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.tool-part .tool-name{font-weight:600;color:var(--accent);white-space:nowrap}.tool-part .tool-state{font-size:11px;color:var(--text-faint);text-transform:uppercase}.tool-part .tool-summary{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.tool-part pre{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-dim)}.diff-part pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:12px;color:var(--text-dim)}.err{color:var(--err);font-size:13px}.composer{position:sticky;bottom:0;padding:10px 12px 14px;background:linear-gradient(to top,var(--bg) 70%,rgba(10,10,10,0));display:flex;gap:8px;align-items:flex-end}.composer textarea{min-height:44px;max-height:160px;line-height:1.4;padding:12px}.composer .send{min-height:44px;min-width:44px;padding:10px}.session-item{display:flex;flex-direction:column;gap:4px;padding:14px 12px;border-bottom:1px solid var(--border);cursor:pointer}.session-item:active{background:var(--panel-2)}.session-item .t{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-item .meta{color:var(--text-faint);font-size:12px;display:flex;flex-wrap:wrap;gap:8px;overflow:hidden}.session-item .meta span:nth-child(1){color:var(--accent)}.dialog{z-index:60}.dialog .sheet{background:var(--panel)}.dialog .sheet-body{padding:14px 16px 18px;display:flex;flex-direction:column;gap:12px}.dialog .pdesc{color:var(--text);line-height:1.5}.dialog .ptool{color:var(--accent);font-weight:600}.dialog .pactions{display:flex;gap:8px}.dialog .pactions button{flex:1}.dialog pre{margin:0;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:10px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-size:12px;color:var(--text-dim);max-height:40dvh;overflow-y:auto;overflow-x:hidden}.checkbox-row{display:flex;align-items:center;gap:10px;padding:8px 0;cursor:pointer;font-size:14px;color:var(--text-dim)}.checkbox-row input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:22px;height:22px;border:2px solid var(--border);border-radius:6px;background:var(--panel-2);cursor:pointer;position:relative;flex-shrink:0;transition:all .15s}.checkbox-row input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.checkbox-row input[type=checkbox]:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:14px;font-weight:700}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:70}.menu{position:fixed;top:0;right:0;bottom:0;width:min(86vw,340px);background:var(--panel);border-left:1px solid var(--border);z-index:71;display:flex;flex-direction:column;transform:translate(100%);transition:transform .25s ease;max-width:100%;overflow-x:hidden}.menu.open{transform:translate(0)}.menu-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border);flex:0 0 auto}.menu-head .ghost{min-height:40px;min-width:40px;padding:0;font-size:20px}.menu-title{font-weight:600}.menu-body{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:20px}.menu-section{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.menu-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.menu-row{display:flex;align-items:center;gap:8px;min-width:0}.menu-value{font-size:14px;font-weight:500;min-width:0}.menu-hint{font-size:12px;color:var(--text-faint);margin-left:auto;white-space:nowrap}.menu-hint.warn-hint{color:var(--warn);white-space:normal}.menu-row .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.menu-btn{width:100%;min-height:40px;padding:8px 12px;font-size:14px;justify-content:flex-start}.menu-btn.danger-txt{color:var(--err)}.menu-chips{display:flex;flex-wrap:wrap;gap:6px}.disk-bar{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;height:12px;overflow:hidden}.disk-fill{height:100%;transition:width .3s}.hint{color:var(--text-faint);font-size:13px}.fab{position:fixed;right:16px;bottom:16px;z-index:20;border-radius:999px;min-width:52px;min-height:52px;padding:0;font-size:22px;background:var(--accent);border:none;color:#fff;box-shadow:0 6px 18px #0006}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field label{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.banner{padding:10px 12px;background:#2a1a1a;border-bottom:1px solid #5a2a2a;color:var(--err);font-size:13px}.empty{color:var(--text-faint);padding:40px 20px;text-align:center;line-height:1.6}.spinner{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
