vibelet 1.2.143 → 1.2.145
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/runtime-version.cjs +1 -1
- package/dist/vibelet.mjs +156 -26
- package/dist/web/assets/{highlighted-body-TPN3WLV5-CWcXV2pq.js → highlighted-body-TPN3WLV5-CLLzQ3EA.js} +1 -1
- package/dist/web/assets/index-B1hOfdbo.css +1 -0
- package/dist/web/assets/index-m1lWI7bU.js +22 -0
- package/dist/web/assets/{mermaid-O7DHMXV3-DRdxk_m8.js → mermaid-O7DHMXV3-DcLAcT5g.js} +3 -3
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/index-BXNAV0T6.js +0 -22
- package/dist/web/assets/index-eFZftpqO.css +0 -1
package/dist/runtime-version.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var c=require("node:fs"),n=require("node:path"),p="@vibelet/cli";function i(r){try{let e=JSON.parse((0,c.readFileSync)(r,"utf8"));if(e.name===p&&typeof e.version=="string"&&e.version.length>0)return e.version}catch{}return null}function l(){return"1.2.
|
|
1
|
+
var c=require("node:fs"),n=require("node:path"),p="@vibelet/cli";function i(r){try{let e=JSON.parse((0,c.readFileSync)(r,"utf8"));if(e.name===p&&typeof e.version=="string"&&e.version.length>0)return e.version}catch{}return null}function l(){return"1.2.145"}var a=l();process.stdout.write(`${a}
|
|
2
2
|
`);
|
package/dist/vibelet.mjs
CHANGED
|
@@ -11768,7 +11768,7 @@ __nccwpck_require__.d(__webpack_exports__, {
|
|
|
11768
11768
|
gJ: () => (/* binding */ terminalControlTokenPath)
|
|
11769
11769
|
});
|
|
11770
11770
|
|
|
11771
|
-
// UNUSED EXPORTS: buildClaudeSessionIdArgs, buildClaudeTerminalArgs, buildResumeNativeArgs, cleanupClaudeTerminalHookFiles, collectProcessTreePids, connectTerminalControl, createClaudeTerminalHookFiles, createTerminalModeState, exitCodeFromChildExit, extractInitialSessionId, formatTerminalControlScreen, hasClaudeContinueArg, hasClaudeResumePickerArg, hasClaudeSettingsArg, monitorTerminalControlUntilChildExit, normalizeTerminalScreenForTty, requestSwitchBackWhenReady, resolveNativeAgentCommand, stopNativeChild, waitForRemoteMonitorInput
|
|
11771
|
+
// UNUSED EXPORTS: buildClaudeSessionIdArgs, buildClaudeTerminalArgs, buildResumeNativeArgs, cleanupClaudeTerminalHookFiles, collectProcessTreePids, connectTerminalControl, createClaudeTerminalHookFiles, createTerminalModeState, exitCodeFromChildExit, extractInitialSessionId, extractTerminalPromptPreview, formatTerminalControlScreen, hasClaudeContinueArg, hasClaudeResumePickerArg, hasClaudeSettingsArg, monitorTerminalControlUntilChildExit, normalizeTerminalScreenForTty, requestSwitchBackWhenReady, resolveNativeAgentCommand, stopNativeChild, waitForRemoteMonitorInput
|
|
11772
11772
|
|
|
11773
11773
|
// EXTERNAL MODULE: external "node:child_process"
|
|
11774
11774
|
var external_node_child_process_ = __nccwpck_require__(1421);
|
|
@@ -11898,6 +11898,89 @@ function hasClaudeResumePickerArg(args) {
|
|
|
11898
11898
|
return false;
|
|
11899
11899
|
}
|
|
11900
11900
|
|
|
11901
|
+
const TERMINAL_PROMPT_VALUE_OPTIONS = new Set([
|
|
11902
|
+
'-a',
|
|
11903
|
+
'-c',
|
|
11904
|
+
'-m',
|
|
11905
|
+
'-r',
|
|
11906
|
+
'-s',
|
|
11907
|
+
'--add-dir',
|
|
11908
|
+
'--allowedTools',
|
|
11909
|
+
'--append-system-prompt',
|
|
11910
|
+
'--approval-policy',
|
|
11911
|
+
'--ask-for-approval',
|
|
11912
|
+
'--cd',
|
|
11913
|
+
'--config',
|
|
11914
|
+
'--cwd',
|
|
11915
|
+
'--disallowedTools',
|
|
11916
|
+
'--fallback-model',
|
|
11917
|
+
'--input-format',
|
|
11918
|
+
'--mcp-config',
|
|
11919
|
+
'--model',
|
|
11920
|
+
'--output-format',
|
|
11921
|
+
'--permission-mode',
|
|
11922
|
+
'--profile',
|
|
11923
|
+
'--resume',
|
|
11924
|
+
'--sandbox',
|
|
11925
|
+
'--session-id',
|
|
11926
|
+
'--settings',
|
|
11927
|
+
]);
|
|
11928
|
+
|
|
11929
|
+
function normalizeTerminalPromptPreview(value) {
|
|
11930
|
+
const preview = String(value ?? '')
|
|
11931
|
+
.replace(/\s+/g, ' ')
|
|
11932
|
+
.trim();
|
|
11933
|
+
return preview || null;
|
|
11934
|
+
}
|
|
11935
|
+
|
|
11936
|
+
function collectTerminalPromptTail(args, startIndex) {
|
|
11937
|
+
const parts = [];
|
|
11938
|
+
for (let index = startIndex; index < args.length; index += 1) {
|
|
11939
|
+
const arg = args[index];
|
|
11940
|
+
if (arg === '--') {
|
|
11941
|
+
parts.push(...args.slice(index + 1));
|
|
11942
|
+
break;
|
|
11943
|
+
}
|
|
11944
|
+
if (String(arg).startsWith('-')) break;
|
|
11945
|
+
parts.push(arg);
|
|
11946
|
+
}
|
|
11947
|
+
return normalizeTerminalPromptPreview(parts.join(' '));
|
|
11948
|
+
}
|
|
11949
|
+
|
|
11950
|
+
function extractTerminalPromptPreview(agent, args) {
|
|
11951
|
+
const input = Array.isArray(args) ? args : [];
|
|
11952
|
+
if (input.length === 0) return null;
|
|
11953
|
+
let scanArgs = input;
|
|
11954
|
+
if (agent === 'codex') {
|
|
11955
|
+
if (input[0] === 'resume') return null;
|
|
11956
|
+
scanArgs = input[0] === 'exec' ? input.slice(1) : input;
|
|
11957
|
+
}
|
|
11958
|
+
|
|
11959
|
+
for (let index = 0; index < scanArgs.length; index += 1) {
|
|
11960
|
+
const arg = scanArgs[index];
|
|
11961
|
+
if (!arg) continue;
|
|
11962
|
+
if (arg === '--') {
|
|
11963
|
+
return normalizeTerminalPromptPreview(scanArgs.slice(index + 1).join(' '));
|
|
11964
|
+
}
|
|
11965
|
+
if (arg.startsWith('--')) {
|
|
11966
|
+
const optionName = arg.includes('=') ? arg.slice(0, arg.indexOf('=')) : arg;
|
|
11967
|
+
if (!arg.includes('=') && TERMINAL_PROMPT_VALUE_OPTIONS.has(optionName)) {
|
|
11968
|
+
index += 1;
|
|
11969
|
+
}
|
|
11970
|
+
continue;
|
|
11971
|
+
}
|
|
11972
|
+
if (arg.startsWith('-')) {
|
|
11973
|
+
if (TERMINAL_PROMPT_VALUE_OPTIONS.has(arg)) {
|
|
11974
|
+
index += 1;
|
|
11975
|
+
}
|
|
11976
|
+
continue;
|
|
11977
|
+
}
|
|
11978
|
+
return collectTerminalPromptTail(scanArgs, index);
|
|
11979
|
+
}
|
|
11980
|
+
|
|
11981
|
+
return null;
|
|
11982
|
+
}
|
|
11983
|
+
|
|
11901
11984
|
function buildClaudeSessionIdArgs(args, sessionId) {
|
|
11902
11985
|
return ['--session-id', sessionId, ...args];
|
|
11903
11986
|
}
|
|
@@ -12198,6 +12281,13 @@ function truncateMiddle(value, maxLength) {
|
|
|
12198
12281
|
return `${text.slice(0, headLength)}...${text.slice(text.length - tailLength)}`;
|
|
12199
12282
|
}
|
|
12200
12283
|
|
|
12284
|
+
function truncateEnd(value, maxLength) {
|
|
12285
|
+
const text = String(value ?? '');
|
|
12286
|
+
if (text.length <= maxLength) return text;
|
|
12287
|
+
if (maxLength <= 5) return text.slice(0, maxLength);
|
|
12288
|
+
return `${text.slice(0, maxLength - 3)}...`;
|
|
12289
|
+
}
|
|
12290
|
+
|
|
12201
12291
|
function wrapText(text, width) {
|
|
12202
12292
|
const words = String(text).split(/\s+/).filter(Boolean);
|
|
12203
12293
|
if (words.length === 0) return [''];
|
|
@@ -12274,11 +12364,12 @@ function getTerminalControlScreenPalette(tone) {
|
|
|
12274
12364
|
};
|
|
12275
12365
|
}
|
|
12276
12366
|
|
|
12277
|
-
function formatTerminalFieldParts(label, value, width) {
|
|
12367
|
+
function formatTerminalFieldParts(label, value, width, { truncate = 'middle' } = {}) {
|
|
12278
12368
|
const prefix = `${label}: `;
|
|
12369
|
+
const maxValueLength = Math.max(8, width - prefix.length);
|
|
12279
12370
|
return {
|
|
12280
12371
|
label: prefix,
|
|
12281
|
-
value:
|
|
12372
|
+
value: truncate === 'end' ? truncateEnd(value, maxValueLength) : truncateMiddle(value, maxValueLength),
|
|
12282
12373
|
};
|
|
12283
12374
|
}
|
|
12284
12375
|
|
|
@@ -12288,6 +12379,7 @@ function formatTerminalControlScreen({
|
|
|
12288
12379
|
agent,
|
|
12289
12380
|
cwd,
|
|
12290
12381
|
sessionId,
|
|
12382
|
+
task,
|
|
12291
12383
|
bodyLines = [],
|
|
12292
12384
|
footerLines = [],
|
|
12293
12385
|
columns = 80,
|
|
@@ -12302,11 +12394,12 @@ function formatTerminalControlScreen({
|
|
|
12302
12394
|
const tone = getTerminalControlScreenTone(title);
|
|
12303
12395
|
const palette = getTerminalControlScreenPalette(tone);
|
|
12304
12396
|
const fieldLines = [
|
|
12305
|
-
|
|
12306
|
-
|
|
12307
|
-
['
|
|
12308
|
-
|
|
12309
|
-
|
|
12397
|
+
{ label: 'Agent', value: agent || 'unknown' },
|
|
12398
|
+
{ label: 'Session', value: sessionId || 'pending' },
|
|
12399
|
+
...(task ? [{ label: 'Task', value: task, truncate: 'end' }] : []),
|
|
12400
|
+
{ label: 'Directory', value: cwd || process.cwd() },
|
|
12401
|
+
].map(({ label, value, truncate }) => {
|
|
12402
|
+
const parts = formatTerminalFieldParts(label, value, innerWidth, { truncate });
|
|
12310
12403
|
return `${colorize(color, palette.label, parts.label)}${parts.value}`;
|
|
12311
12404
|
});
|
|
12312
12405
|
const block = [
|
|
@@ -12396,31 +12489,57 @@ function installTerminalSignalHandlers(getChild, getMode) {
|
|
|
12396
12489
|
};
|
|
12397
12490
|
}
|
|
12398
12491
|
|
|
12399
|
-
function
|
|
12400
|
-
if (!
|
|
12401
|
-
|
|
12402
|
-
|
|
12492
|
+
function installRemoteMonitorSignalListeners(processObj, finish) {
|
|
12493
|
+
if (!processObj || typeof processObj.once !== 'function') return () => {};
|
|
12494
|
+
const off =
|
|
12495
|
+
typeof processObj.off === 'function'
|
|
12496
|
+
? processObj.off.bind(processObj)
|
|
12497
|
+
: typeof processObj.removeListener === 'function'
|
|
12498
|
+
? processObj.removeListener.bind(processObj)
|
|
12499
|
+
: null;
|
|
12500
|
+
const onSigint = () => finish({ type: 'exit', code: 130 });
|
|
12501
|
+
const onSigterm = () => finish({ type: 'exit', code: 143 });
|
|
12502
|
+
processObj.once('SIGINT', onSigint);
|
|
12503
|
+
processObj.once('SIGTERM', onSigterm);
|
|
12504
|
+
return () => {
|
|
12505
|
+
if (!off) return;
|
|
12506
|
+
off('SIGINT', onSigint);
|
|
12507
|
+
off('SIGTERM', onSigterm);
|
|
12508
|
+
};
|
|
12509
|
+
}
|
|
12510
|
+
|
|
12511
|
+
function waitForRemoteMonitorInput(signalExit, stdin = process.stdin, processObj = process) {
|
|
12403
12512
|
return new Promise((resolve) => {
|
|
12404
12513
|
let settled = false;
|
|
12514
|
+
let cleanupInput = () => {};
|
|
12515
|
+
const cleanupSignals = installRemoteMonitorSignalListeners(processObj, (result) => finish(result));
|
|
12405
12516
|
const finish = (result) => {
|
|
12406
12517
|
if (settled) return;
|
|
12407
12518
|
settled = true;
|
|
12408
|
-
|
|
12409
|
-
|
|
12410
|
-
if (typeof stdin.pause === 'function') stdin.pause();
|
|
12519
|
+
cleanupSignals();
|
|
12520
|
+
cleanupInput();
|
|
12411
12521
|
resolve(result);
|
|
12412
12522
|
};
|
|
12413
|
-
|
|
12414
|
-
|
|
12415
|
-
|
|
12416
|
-
|
|
12417
|
-
|
|
12418
|
-
|
|
12419
|
-
|
|
12420
|
-
|
|
12421
|
-
|
|
12422
|
-
|
|
12423
|
-
|
|
12523
|
+
|
|
12524
|
+
if (stdin.isTTY && typeof stdin.setRawMode === 'function') {
|
|
12525
|
+
const onData = (chunk) => {
|
|
12526
|
+
const text = Buffer.isBuffer(chunk) ? chunk.toString('utf8') : String(chunk);
|
|
12527
|
+
if (text.includes('\u0003')) {
|
|
12528
|
+
finish({ type: 'exit', code: 130 });
|
|
12529
|
+
return;
|
|
12530
|
+
}
|
|
12531
|
+
finish({ type: 'switchBack' });
|
|
12532
|
+
};
|
|
12533
|
+
cleanupInput = () => {
|
|
12534
|
+
stdin.off('data', onData);
|
|
12535
|
+
stdin.setRawMode(false);
|
|
12536
|
+
if (typeof stdin.pause === 'function') stdin.pause();
|
|
12537
|
+
};
|
|
12538
|
+
stdin.setRawMode(true);
|
|
12539
|
+
stdin.resume();
|
|
12540
|
+
stdin.on('data', onData);
|
|
12541
|
+
}
|
|
12542
|
+
|
|
12424
12543
|
signalExit.then((code) => finish({ type: 'exit', code }));
|
|
12425
12544
|
});
|
|
12426
12545
|
}
|
|
@@ -12533,6 +12652,7 @@ async function connectTerminalControl({
|
|
|
12533
12652
|
token,
|
|
12534
12653
|
initialSessionId,
|
|
12535
12654
|
requestedTerminalId,
|
|
12655
|
+
taskPreview,
|
|
12536
12656
|
getMode,
|
|
12537
12657
|
setMode,
|
|
12538
12658
|
stderr = process.stderr,
|
|
@@ -12541,6 +12661,8 @@ async function connectTerminalControl({
|
|
|
12541
12661
|
const requester = createJsonRequester(ws);
|
|
12542
12662
|
let terminalId = requestedTerminalId ?? null;
|
|
12543
12663
|
let currentSessionId = initialSessionId;
|
|
12664
|
+
const currentTaskPreview =
|
|
12665
|
+
taskPreview ?? extractTerminalPromptPreview(agent, Array.isArray(argv) ? argv.slice(1) : []);
|
|
12544
12666
|
let activeChild = child;
|
|
12545
12667
|
let activeChildExit = childExit;
|
|
12546
12668
|
let heartbeatTimer = null;
|
|
@@ -12617,6 +12739,7 @@ async function connectTerminalControl({
|
|
|
12617
12739
|
agent,
|
|
12618
12740
|
cwd,
|
|
12619
12741
|
sessionId: currentSessionId,
|
|
12742
|
+
task: currentTaskPreview,
|
|
12620
12743
|
bodyLines: [
|
|
12621
12744
|
'The Vibelet app is now controlling this session.',
|
|
12622
12745
|
'The native terminal UI is paused so messages and tool output stay in the app.',
|
|
@@ -12765,6 +12888,7 @@ async function runManagedNativeTerminal({
|
|
|
12765
12888
|
const token = readTerminalControlToken();
|
|
12766
12889
|
let initialSessionId = extractInitialSessionId(agent, args);
|
|
12767
12890
|
let nativeArgs = args;
|
|
12891
|
+
const taskPreview = extractTerminalPromptPreview(agent, args);
|
|
12768
12892
|
let claudeHookFiles = null;
|
|
12769
12893
|
if (
|
|
12770
12894
|
agent === 'claude' &&
|
|
@@ -12820,6 +12944,7 @@ async function runManagedNativeTerminal({
|
|
|
12820
12944
|
token,
|
|
12821
12945
|
initialSessionId,
|
|
12822
12946
|
requestedTerminalId: terminalId ?? claudeHookFiles?.terminalId,
|
|
12947
|
+
taskPreview,
|
|
12823
12948
|
getMode: () => modeState.getMode(),
|
|
12824
12949
|
setMode: (nextMode) => modeState.setMode(nextMode),
|
|
12825
12950
|
stderr,
|
|
@@ -12890,6 +13015,7 @@ async function runManagedNativeTerminal({
|
|
|
12890
13015
|
agent,
|
|
12891
13016
|
cwd,
|
|
12892
13017
|
sessionId: 'unknown',
|
|
13018
|
+
task: taskPreview,
|
|
12893
13019
|
bodyLines: [
|
|
12894
13020
|
'Vibelet cannot restore the native terminal UI because the session id is unknown.',
|
|
12895
13021
|
'The app may still be connected, but this terminal monitor cannot switch back safely.',
|
|
@@ -12904,6 +13030,7 @@ async function runManagedNativeTerminal({
|
|
|
12904
13030
|
agent,
|
|
12905
13031
|
cwd,
|
|
12906
13032
|
sessionId,
|
|
13033
|
+
task: taskPreview,
|
|
12907
13034
|
bodyLines: [
|
|
12908
13035
|
'Vibelet is handing this session back to the native terminal UI.',
|
|
12909
13036
|
'The native terminal UI will resume here after the app-side driver is released.',
|
|
@@ -12922,6 +13049,7 @@ async function runManagedNativeTerminal({
|
|
|
12922
13049
|
agent,
|
|
12923
13050
|
cwd,
|
|
12924
13051
|
sessionId,
|
|
13052
|
+
task: taskPreview,
|
|
12925
13053
|
bodyLines: [
|
|
12926
13054
|
'The app-side driver is still using this session.',
|
|
12927
13055
|
'Vibelet will restore the native terminal UI as soon as the current app turn is idle.',
|
|
@@ -12941,6 +13069,7 @@ async function runManagedNativeTerminal({
|
|
|
12941
13069
|
agent,
|
|
12942
13070
|
cwd,
|
|
12943
13071
|
sessionId,
|
|
13072
|
+
task: taskPreview,
|
|
12944
13073
|
bodyLines: [
|
|
12945
13074
|
`Restore failed: ${switchBack.error || 'switch_back_failed'}.`,
|
|
12946
13075
|
'The app-side driver may still be busy. Wait for the current turn to finish, then try again.',
|
|
@@ -12956,6 +13085,7 @@ async function runManagedNativeTerminal({
|
|
|
12956
13085
|
agent,
|
|
12957
13086
|
cwd,
|
|
12958
13087
|
sessionId,
|
|
13088
|
+
task: taskPreview,
|
|
12959
13089
|
bodyLines: [
|
|
12960
13090
|
'The native terminal UI is starting in this terminal.',
|
|
12961
13091
|
'You can continue from the restored terminal session.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{R as c,M as p,B as x}from"./mermaid-O7DHMXV3-
|
|
1
|
+
import{R as c,M as p,B as x}from"./mermaid-O7DHMXV3-DcLAcT5g.js";import{r,j as d}from"./index-m1lWI7bU.js";var R=({code:i,language:e,raw:t,className:g,startLine:u,...m})=>{let{shikiTheme:o}=r.useContext(c),a=p(),[n,s]=r.useState(t);return r.useEffect(()=>{if(!a){s(t);return}let l=a.highlight({code:i,language:e,themes:o},h=>{s(h)});l&&s(l)},[i,e,o,a,t]),d.jsx(x,{className:g,language:e,result:n,startLine:u,...m})};export{R as HighlightedCodeBlockBody};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{color-scheme:light;--font-sans: Aptos, "SF Pro Text", "Segoe UI", system-ui, sans-serif;--font-mono: "SFMono-Regular", "Cascadia Code", "Liberation Mono", ui-monospace, monospace;font-size:90%;font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--text-2xs: .75rem;--text-xs: .8125rem;--text-sm: .875rem;--text-body: .9375rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-title: 1.65rem;--leading-tight: 1.18;--leading-snug: 1.35;--leading-normal: 1.5;--leading-relaxed: 1.62;--space-1: 3.6px;--space-2: 7.2px;--space-3: 10.8px;--space-4: 14.4px;--space-5: 18px;--space-6: 21.6px;--shell-gutter: 14.4px;--panel-gap: 10.8px;--compact-gap: 7.2px;--card-padding: 12.6px;--section-padding: 14.4px;--control-height: 39.6px;--control-height-sm: 32.4px;--rail-row-min-height: 86.4px;--bg: #f4efe7;--bg-elevated: #fbf8f2;--card: #fffdf9;--card-alt: #f0e9de;--card-strong: #fff8f1;--text: #1b2430;--text-secondary: #5d6875;--text-muted: #88929d;--input: #f7f1e8;--composer-bg: #ffffff;--border: rgba(27, 36, 48, .1);--border-strong: rgba(27, 36, 48, .16);--accent: #a87bb2;--accent-secondary: #c27ba0;--accent-tertiary: #ea9999;--accent-soft: rgba(168, 123, 178, .12);--accent-soft-strong: rgba(168, 123, 178, .2);--accent-soft-alt: rgba(234, 153, 153, .16);--accent-contrast: #ffffff;--success: #2f7a4b;--success-soft: rgba(47, 122, 75, .14);--warning: #a56a16;--warning-soft: rgba(165, 106, 22, .14);--warning-surface: #f2e8d9;--danger: #c44536;--danger-soft: rgba(196, 69, 54, .14);--assistant-bubble: #fffaf5;--user-bubble: #a87bb2;--code-bg: #f3ece3;--code-text: #36414d;--shadow: rgba(15, 23, 42, .13);--shadow-accent: rgba(168, 123, 178, .24);--panel: var(--card);--radius-card: 21.6px;--radius-control: 14.4px;--pane-width: 329px;--left-pane-width: var(--pane-width);--right-pane-width: 297px}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #161c22;--bg-elevated: #1c232b;--card: #222a33;--card-alt: #28313b;--card-strong: #252f38;--text: #eaf0f6;--text-secondary: #b7c2cc;--text-muted: #83909b;--input: #26303a;--composer-bg: var(--card);--border: rgba(231, 238, 246, .09);--border-strong: rgba(231, 238, 246, .16);--accent: #b272c0;--accent-secondary: #c98fb5;--accent-tertiary: #ee9f9f;--accent-soft: rgba(178, 114, 192, .18);--accent-soft-strong: rgba(178, 114, 192, .26);--accent-soft-alt: rgba(238, 159, 159, .18);--success: #5bb575;--success-soft: rgba(91, 181, 117, .2);--warning: #e3b159;--warning-soft: rgba(227, 177, 89, .2);--warning-surface: #49453b;--danger: #e16e61;--danger-soft: rgba(225, 110, 97, .2);--assistant-bubble: #202831;--user-bubble: #b272c0;--code-bg: #1a2129;--code-text: #d7e0e9;--shadow: rgba(0, 0, 0, .26);--shadow-accent: rgba(178, 114, 192, .2)}}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{margin:0;min-width:320px;min-height:100%;background:linear-gradient(135deg,var(--accent-soft) 0 18%,transparent 42%),linear-gradient(315deg,var(--accent-soft-alt) 0 16%,transparent 38%),var(--bg);color:var(--text);font-size:var(--text-base);line-height:var(--leading-normal);letter-spacing:0}button,input,select,textarea{font:inherit;line-height:var(--leading-snug)}button{min-width:0;cursor:pointer}button:disabled,input:disabled,textarea:disabled{cursor:not-allowed;opacity:.56}svg{width:18px;height:18px;flex:0 0 auto}.mobile-app-gate{min-height:100dvh;width:100%;overflow:auto;display:grid;place-items:center;padding:max(22px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 64%,var(--bg)),var(--bg))}.mobile-app-panel{width:min(100%,470px);display:grid;gap:18px;padding:22px;border:1px solid var(--border);border-radius:var(--radius-card);background:color-mix(in srgb,var(--card) 94%,transparent);box-shadow:0 24px 60px -36px var(--shadow)}.mobile-app-hero{display:grid;gap:10px}.mobile-app-icon{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--accent-soft-strong);border-radius:18px;color:var(--accent);background:var(--accent-soft)}.mobile-app-icon svg{width:23px;height:23px}.mobile-app-eyebrow{margin-top:2px;color:var(--accent);font-size:var(--text-xs);font-weight:800;line-height:var(--leading-snug);text-transform:uppercase}.mobile-app-panel h1{margin:0;color:var(--text);font-size:1.86rem;line-height:1.08;letter-spacing:0}.mobile-app-panel p{margin:0;color:var(--text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed)}.mobile-app-actions{display:grid;gap:10px}.mobile-app-primary-link,.mobile-app-secondary-link{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--border);border-radius:var(--radius-control);color:var(--text);background:var(--card-alt);font-size:var(--text-sm);font-weight:800;line-height:var(--leading-snug);text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease}.mobile-app-primary-link{color:var(--accent-contrast);border-color:var(--accent-secondary);background:var(--accent);box-shadow:0 16px 28px -20px var(--shadow-accent)}.mobile-app-primary-link:hover,.mobile-app-secondary-link:hover{transform:translateY(-1px);border-color:var(--accent-soft-strong)}.mobile-app-primary-link:focus-visible,.mobile-app-secondary-link:focus-visible{outline:3px solid var(--accent-soft-strong);outline-offset:3px}.mobile-app-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--bg-elevated) 72%,transparent)}.mobile-app-note svg{color:var(--accent)}.mobile-app-note div{min-width:0;display:grid;gap:3px}.mobile-app-note strong{color:var(--text);font-size:var(--text-sm);line-height:var(--leading-snug)}.mobile-app-note span,.mobile-app-footnote{color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-normal)}.mobile-app-footnote{display:flex;flex-wrap:wrap;gap:6px}.mobile-app-footnote code{padding:1px 6px;border-radius:8px;color:var(--code-text);background:var(--code-bg);font-family:var(--font-mono);font-size:var(--text-xs)}@media(prefers-reduced-motion:reduce){.mobile-app-primary-link,.mobile-app-secondary-link{transition:none}.mobile-app-primary-link:hover,.mobile-app-secondary-link:hover{transform:none}}.workspace{position:relative;height:100dvh;min-height:0;overflow:hidden;display:grid;grid-template-columns:var(--left-pane-width) 14px minmax(0,1fr);background:color-mix(in srgb,var(--bg) 84%,transparent)}.workspace.left-sidebar-collapsed{grid-template-columns:minmax(0,1fr)}.session-rail{height:100%;min-height:0;overflow:hidden;padding:18px 16px 18px 18px;display:flex;flex-direction:column;gap:14px;border-right:1px solid var(--border);background:color-mix(in srgb,var(--bg-elevated) 78%,transparent)}.resize-handle{min-height:0;display:grid;place-items:center;position:relative;z-index:2;width:14px;min-width:14px;height:100%;padding:0;border:0;border-radius:0;background:transparent;cursor:col-resize;touch-action:none}.resize-handle:hover,.resize-handle:focus-visible{outline:0;background:var(--accent-soft)}.resize-handle span{width:2px;height:48px;border-radius:999px;background:var(--text-muted);opacity:.35}.resize-handle:hover span,.resize-handle:focus-visible span,.pane-resizing .resize-handle span{background:var(--accent);opacity:.75}.pane-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.wide-main{position:relative;min-width:0;height:100%;min-height:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 14px var(--right-pane-width);gap:10px;padding:18px 18px 18px 0}.wide-main.right-sidebar-collapsed{grid-template-columns:minmax(0,1fr);padding-right:62px}.workspace.left-sidebar-collapsed .wide-main{padding-left:58px}.right-resize-handle{z-index:3}.chat-pane{min-width:0;height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}.control-pane{min-width:0;height:100%;min-height:0;max-height:none;overflow:auto;display:flex;flex-direction:column;gap:14px}.control-pane-toolbar{display:flex;align-items:center;gap:8px}.control-pane-toolbar .control-tabs{flex:1 1 auto}.brand-block,.connection-strip,.search-box,.control-section,.attention-panel,.notice,.composer,.message,.empty-state{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--card);box-shadow:0 14px 34px -24px var(--shadow)}.brand-block{min-height:60px;display:flex;align-items:center;gap:10px;padding:10px 12px}.brand-copy{min-width:0;flex:1 1 auto}.brand-copy strong,.brand-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,var(--accent-soft-strong),transparent 65%),var(--card-strong);border:1px solid var(--accent-soft-strong);color:var(--accent)}.brand-block strong,.brand-block span,.connection-strip strong,.connection-strip span{display:block}.brand-block strong{font-size:1rem;letter-spacing:-.2px}.brand-block span,.connection-strip span{margin-top:3px;color:var(--text-secondary);font-size:.84rem}.connection-strip{min-height:38px;display:flex;align-items:center;gap:8px;padding:8px 10px;color:var(--accent)}.connection-strip svg{width:15px;height:15px}.connection-status-label{min-width:0;overflow:hidden;color:var(--text-secondary);font-size:var(--text-xs);font-weight:800;line-height:var(--leading-snug);text-overflow:ellipsis;white-space:nowrap}.connection-strip.connected{color:var(--success);background:color-mix(in srgb,var(--success-soft) 28%,var(--card))}.connection-strip.connected .connection-status-label{color:var(--success)}.connection-strip.error,.connection-strip.missing-pair{color:var(--danger);background:color-mix(in srgb,var(--danger-soft) 34%,var(--card))}.connection-strip.error .connection-status-label,.connection-strip.missing-pair .connection-status-label{color:var(--danger)}.rail-list-heading{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px 0 4px}.rail-list-heading span{color:var(--text-secondary);font-size:.82rem;font-weight:900;text-transform:uppercase}.rail-create-button{width:34px;height:34px;flex:0 0 34px;border:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent);background:transparent;box-shadow:none;font-weight:800;padding:0}.rail-create-button svg{width:19px;height:19px}.rail-create-button:hover:not(:disabled){background:var(--accent-soft)}.rail-create-button:disabled{color:var(--text-muted);background:transparent;box-shadow:none;opacity:.72;cursor:not-allowed}.sidebar-panel-collapse-button,.sidebar-restore-button{width:34px;height:34px;min-width:34px;min-height:34px;border:1px solid var(--border);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);background:color-mix(in srgb,var(--card) 88%,transparent);box-shadow:0 12px 24px -22px var(--shadow);padding:0}.sidebar-panel-collapse-button:hover:not(:disabled),.sidebar-panel-collapse-button:focus-visible,.sidebar-restore-button:hover:not(:disabled),.sidebar-restore-button:focus-visible{outline:0;color:var(--accent);border-color:var(--accent-soft-strong);background:var(--accent-soft)}.sidebar-panel-collapse-button svg,.sidebar-restore-button svg{width:17px;height:17px}.session-rail-collapse-button{flex:0 0 34px}.sidebar-restore-button{position:absolute;top:18px;z-index:8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.sidebar-restore-button-left{left:12px}.sidebar-restore-button-right{right:18px}.search-filter-wrap{position:relative;z-index:5}.search-box{min-height:46px;display:flex;align-items:center;gap:10px;padding:0 8px 0 14px;border-radius:18px;background:var(--input);box-shadow:none}.search-box>svg{width:18px;height:18px;color:var(--text-muted);flex:0 0 auto}.search-box input,.field input,.field select,.composer textarea{width:100%;border:0;outline:0;background:transparent;color:var(--text)}.search-box input{min-width:0;flex:1 1 auto}.filter-toggle{width:32px;height:32px;flex:0 0 32px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;padding:0}.filter-toggle svg{width:17px;height:17px}.filter-toggle:hover,.filter-toggle.selected{border-color:var(--accent-soft-strong);background:var(--accent-soft);color:var(--accent)}.filter-popover{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:30;display:grid;gap:12px;padding:12px;border:1px solid var(--border-strong);border-radius:20px;background:var(--card);box-shadow:0 24px 56px -28px var(--shadow)}.filter-section,.session-filter-panel{display:grid;gap:8px}.filter-section-label{color:var(--text-muted);font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.filter-switch-card{display:grid;border:1px solid var(--border);border-radius:16px;background:var(--card-alt);overflow:hidden}.filter-switch-card button{min-height:44px;border:0;border-radius:0;background:transparent;color:var(--text);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 12px;text-align:left;font-weight:800}.filter-switch-card button+button{border-top:1px solid var(--border)}.filter-switch-track{width:34px;height:20px;border-radius:999px;background:var(--border-strong);display:inline-flex;align-items:center;padding:2px;transition:background .14s ease,border-color .14s ease}.filter-switch-track span{width:16px;height:16px;border-radius:999px;background:var(--card);box-shadow:0 5px 12px -8px var(--shadow);transform:translate(0);transition:transform .14s ease}.filter-switch-card button.selected .filter-switch-track{background:var(--accent)}.filter-switch-card button.selected .filter-switch-track span{transform:translate(14px)}.filter-reset-button{justify-self:center;min-height:32px;border:0;background:transparent;color:var(--text-muted);text-decoration:underline;font-weight:800}.search-box input::placeholder,.field input::placeholder,.composer textarea::placeholder{color:var(--text-muted)}.session-list{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px;overflow:auto;padding:2px 2px 10px}.session-context-menu,.session-create-menu{position:fixed;z-index:90;width:224px;display:grid;gap:4px;padding:8px;border:1px solid var(--border-strong);border-radius:16px;background:var(--card);box-shadow:0 24px 56px -26px var(--shadow);max-height:calc(100vh - 20px);overflow:auto}.session-create-menu{width:320px}.session-create-field{display:grid;gap:6px;padding:4px 6px 8px}.session-create-field span{color:var(--text-muted);font-size:.72rem;font-weight:800}.session-create-input-row,.session-create-new-folder{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:6px;align-items:center}.session-create-new-folder{grid-template-columns:minmax(0,1fr) 32px 32px}.session-create-field input{width:100%;min-height:36px;border:1px solid var(--border);border-radius:10px;background:var(--card-alt);color:var(--text);padding:0 10px;font:inherit;outline:none}.session-create-field input:focus{border-color:var(--accent-soft-strong);box-shadow:0 0 0 3px var(--accent-soft)}.session-create-menu .session-create-icon-button{min-height:36px;width:36px;flex:0 0 36px;justify-content:center;padding:0}.session-create-menu .session-create-new-folder .session-create-icon-button{min-height:32px;width:32px;flex-basis:32px}.session-create-browser{display:grid;gap:8px;margin:0 4px 6px;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--card-alt)}.session-create-browser-bar{display:grid;grid-template-columns:minmax(0,1fr) 32px;gap:6px;align-items:center}.session-create-browser-bar>span{min-width:0;overflow:hidden;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:800}.session-create-new-folder input{width:100%;min-height:32px;border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--text);padding:0 9px;font:inherit;outline:none}.session-create-folder-list{display:grid;gap:4px;max-height:168px;overflow:auto}.session-create-menu .session-create-secondary-button,.session-create-menu .session-create-select-button,.session-create-menu .session-create-folder-row{min-height:32px;border-radius:9px;padding:0 8px;font-size:.82rem}.session-create-menu .session-create-secondary-button{justify-content:center;color:var(--text-secondary)}.session-create-menu .session-create-select-button{justify-content:center;background:var(--accent);color:var(--accent-contrast)}.session-create-menu .session-create-select-button:hover:not(:disabled),.session-create-menu .session-create-select-button:focus-visible{background:var(--accent);color:var(--accent-contrast)}.session-create-menu .session-create-folder-row span{min-width:0;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap}.session-create-menu .spin{animation:spin .76s linear infinite}.session-create-error{margin:0;color:var(--danger);font-size:.76rem;line-height:1.35}.session-context-menu button,.session-create-menu button{min-height:38px;width:100%;border:0;border-radius:11px;display:flex;align-items:center;gap:10px;padding:0 10px;background:transparent;color:var(--text);text-align:left;font-size:.9rem;font-weight:800}.session-create-menu button{min-height:48px}.session-create-menu button span{min-width:0;display:grid;gap:1px}.session-create-menu button small{color:var(--text-muted);font-size:.72rem;font-weight:700}.session-context-menu button:hover:not(:disabled),.session-context-menu button:focus-visible,.session-create-menu button:hover:not(:disabled),.session-create-menu button:focus-visible{outline:0;background:var(--accent-soft);color:var(--accent)}.session-context-menu button:disabled,.session-create-menu button:disabled{opacity:.42}.session-context-menu button.danger{color:var(--danger)}.session-context-menu button.danger:hover:not(:disabled),.session-context-menu button.danger:focus-visible{background:var(--danger-soft);color:var(--danger)}.context-menu-separator{height:1px;margin:4px 6px;background:var(--border)}.session-row{width:100%;flex:0 0 auto;min-height:106px;display:flex;flex-direction:column;align-items:stretch;gap:8px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--card);color:var(--text);padding:14px;text-align:left;box-shadow:0 13px 30px -26px var(--shadow);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.session-row:hover{transform:translateY(-1px);border-color:var(--accent-soft-strong);box-shadow:0 18px 36px -24px var(--shadow-accent)}.session-row.active{border-color:var(--accent-soft-strong);background:linear-gradient(135deg,var(--accent-soft),transparent 64%),var(--card-strong);box-shadow:0 20px 38px -24px var(--shadow-accent)}.session-row.archived{opacity:.64}.session-row-head{min-width:0;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px}.session-row strong{display:block;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.98rem;line-height:1.35;letter-spacing:-.2px}.session-row span,.session-row small,.empty-copy{color:var(--text-secondary);font-size:.84rem;line-height:1.35}.session-row>span:not(.session-row-head),.session-row small{min-width:0;flex:0 0 auto;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-row .directory-tag-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;white-space:normal}.directory-tag-row em,.folder-tag-row span{min-height:20px;display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--card-alt);color:var(--text-muted);padding:0 7px;font-size:.68rem;font-style:normal;font-weight:800;line-height:1}.empty-copy{margin:8px 2px;line-height:1.45}.empty-copy.success-copy{color:var(--success)}.empty-copy.error-copy{color:var(--danger)}.chat-header{min-height:100px;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:10px 6px 18px}.chat-title-block{min-width:0;flex:1 1 auto}.chat-title-button{border:0;background:transparent;color:inherit;text-align:left;padding:0}.chat-title-button:hover h1{color:var(--accent)}.eyebrow{color:var(--accent);text-transform:uppercase;font-size:.73rem;font-weight:800;letter-spacing:.16em}.agent-status-pill{width:fit-content;min-height:26px;display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--card-alt);color:var(--text-secondary);padding:0 9px;font-size:.76rem;font-weight:900}.agent-status-pill.claude{border-color:var(--accent-soft-strong);background:var(--accent-soft);color:var(--accent)}.agent-status-pill.codex{border-color:color-mix(in srgb,var(--success) 35%,transparent);background:var(--success-soft);color:var(--success)}.chat-header h1{max-width:100%;margin:6px 0 5px;font-size:2rem;line-height:1.08;font-weight:800;letter-spacing:-.6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-header p{max-width:100%;margin:0;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions,.attention-actions{display:flex;align-items:center;gap:10px}.icon-button,.primary-button,.send-button,.danger-button,.approve-button,.icon-text-button{max-width:100%;min-height:44px;border:1px solid var(--border);border-radius:16px;display:inline-flex;align-items:center;justify-content:center;gap:9px;color:var(--text);background:var(--card);box-shadow:0 10px 22px -20px var(--shadow);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-button{width:44px}.mini-button{width:34px;min-height:34px;border:0;border-radius:12px;background:transparent;color:var(--accent);box-shadow:none;padding:0}.mini-button:hover:not(:disabled){background:var(--accent-soft)}.mini-button:disabled{background:transparent;box-shadow:none}.icon-button.selected{color:var(--accent);border-color:var(--accent-soft-strong);background:var(--accent-soft)}.primary-button,.approve-button{min-width:92px;color:var(--accent-contrast);border-color:var(--accent-secondary);background:var(--accent);box-shadow:0 16px 28px -20px var(--shadow-accent);padding:0 15px;font-weight:800}.send-button{min-width:112px;height:52px;align-self:end;color:var(--accent-contrast);border-color:var(--accent-secondary);background:var(--accent);box-shadow:0 16px 28px -20px var(--shadow-accent);padding:0 16px;font-weight:800}.danger-button{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 34%,transparent);background:var(--danger-soft);padding:0 13px;font-weight:800}.icon-text-button{padding:0 13px;background:var(--card-alt);white-space:normal;line-height:1.15}.notice{margin:0 6px 14px;padding:12px 14px;display:flex;align-items:center;gap:10px;border-radius:18px}.notice.error{border-color:color-mix(in srgb,var(--danger) 26%,transparent);background:var(--danger-soft);color:var(--danger)}.notice.warning{border-color:color-mix(in srgb,var(--warning) 28%,transparent);background:var(--warning-soft);color:var(--warning)}.notice .icon-text-button{margin-left:auto;min-height:34px}.inline-notice{margin:10px 0 0;align-items:flex-start;flex-wrap:wrap}.inline-notice .danger-button{min-height:34px;margin-left:auto}.chat-notices{min-height:0;display:grid;gap:10px}.chat-notices:empty{display:block}.chat-notices .notice{margin-bottom:4px}.message-scroll{position:relative;min-height:0;overflow:auto;padding:14px 6px 24px;scroll-padding-bottom:24px;display:flex;flex-direction:column;gap:12px}.scroll-latest-button{position:sticky;bottom:10px;align-self:center;width:40px;min-height:40px;border:1px solid var(--accent-soft-strong);border-radius:999px;background:var(--card);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0;box-shadow:0 16px 30px -24px var(--shadow);font-weight:800}.message-frame{width:100%;display:flex}.message-frame.user{justify-content:flex-end}.message-frame.assistant{justify-content:flex-start}.message-frame.tool,.message-frame.info{justify-content:center}.inline-message-stack{width:min(820px,92%);display:grid;justify-items:center;gap:8px}.message{width:fit-content;max-width:min(760px,78%);padding:14px 15px;border-radius:22px;background:var(--assistant-bubble)}.message.match{outline:2px solid var(--accent-soft-strong)}.message.user{align-self:flex-end;color:var(--accent-contrast);border-color:transparent;background:var(--user-bubble);box-shadow:0 16px 28px -24px var(--shadow-accent)}.message.assistant{align-self:flex-start}.message.tool,.message.info{width:fit-content;max-width:min(820px,86%);background:var(--card-alt)}.tool-group-bubble{width:min(760px,92%);display:grid;gap:4px;border:0;border-left:2px solid var(--accent);border-radius:12px;background:var(--accent-soft);color:var(--text-muted);padding:9px 10px 9px 11px;text-align:left;cursor:pointer}.inline-message-stack .tool-group-bubble{width:min(560px,100%)}.tool-group-bubble.match{outline:2px solid var(--accent-soft-strong)}.tool-group-header,.tool-group-title{min-width:0;display:flex;align-items:center;gap:7px}.tool-group-header{justify-content:space-between}.tool-group-title strong{color:var(--text-secondary);font-size:.76rem;line-height:1.2}.tool-group-bubble svg{width:13px;height:13px;flex:0 0 auto}.tool-group-chevron{transition:transform .16s ease}.tool-group-bubble.expanded .tool-group-chevron{transform:rotate(90deg)}.tool-group-summary{min-width:0;overflow:hidden;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;line-height:1.35}.message-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:9px;color:currentColor;font-size:.76rem;text-transform:uppercase}.message-meta>span,.message-meta time{opacity:.62}.message-meta-side{display:inline-flex;flex:0 0 auto;align-items:center;gap:6px}.attention-panel pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-family:SFMono-Regular,Cascadia Code,monospace;line-height:1.52;font-size:.9rem}.message>pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-sans);font-size:var(--text-body);line-height:var(--leading-relaxed)}.tool-inline-panel,.message-source-inline{display:grid;gap:10px;border:1px solid var(--border);border-radius:16px;color:var(--text);box-shadow:0 12px 28px -24px var(--shadow);padding:12px}.tool-inline-panel{width:min(680px,100%);border-left:2px solid var(--accent);background:color-mix(in srgb,var(--accent-soft) 36%,var(--card))}.message-source-inline{width:100%;min-width:min(560px,100%);margin-top:12px;background:color-mix(in srgb,var(--code-bg) 72%,var(--card))}.message.user .message-source-inline{background:var(--card);border-color:var(--accent-soft-strong)}.inline-detail-header{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.inline-detail-title{min-width:0;display:grid;gap:2px}.inline-detail-title strong,.inline-detail-title span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inline-detail-title span{color:var(--text-muted);font-size:.78rem}.message-source-inline .json-box{width:100%;max-height:min(42dvh,360px);margin:0}.tool-inline-summary{width:min(440px,100%);display:grid;gap:5px;border:1px solid var(--border);border-radius:12px;background:var(--card-alt);color:var(--text-secondary);padding:9px 10px;text-align:left}.tool-inline-summary span{display:flex;align-items:center;gap:7px;color:var(--accent);font-weight:800}.tool-inline-summary svg{width:14px;height:14px}.tool-inline-summary small{overflow:hidden;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap}.message-files,.attachment-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.message-files span,.message-files button,.attachment-list span{min-height:30px;display:inline-flex;align-items:center;gap:7px;max-width:100%;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--card-alt) 78%,transparent);color:var(--text-secondary);padding:4px 9px;font-size:.78rem}.message-files button{cursor:pointer}.attachment-list button{width:22px;height:22px;display:grid;place-items:center;border:0;background:transparent;color:var(--text-muted);padding:0}.message-files svg,.attachment-list svg{width:14px;height:14px}.message-actions{display:flex;align-items:center;gap:2px;opacity:.36;transition:opacity .16s ease}.message-actions button{width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:currentColor;display:inline-flex;align-items:center;justify-content:center;padding:0}.message:hover .message-actions,.message:focus-within .message-actions{opacity:.9}.message-actions button:hover{background:#ffffff29}.message-actions button:focus-visible{outline:2px solid color-mix(in srgb,currentColor 50%,transparent);outline-offset:1px}.message-actions svg{width:13px;height:13px}@media(hover:none){.message-actions{opacity:.72}}.message-search-bar{width:min(760px,92%);align-self:center;min-height:42px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;border:1px solid var(--border);border-radius:15px;background:var(--input);padding:0 8px 0 12px}.message-search-bar svg{width:16px;height:16px;color:var(--text-muted)}.message-search-bar input{min-width:0;border:0;background:transparent;color:var(--text);outline:0}.message-search-bar span{color:var(--text-muted);font-size:.78rem;white-space:nowrap}.typing-line,.loading-line{display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:.9rem;padding:0 8px}.typing-line span{width:8px;height:8px;border-radius:999px;background:var(--success);animation:pulse-dot 1.1s ease-in-out infinite}.loading-spinner{width:15px;height:15px;flex:0 0 15px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:999px;animation:spin .76s linear infinite}.loading-spinner.small{width:12px;height:12px;flex-basis:12px;border-width:2px}.attachment-empty{display:inline-flex;align-items:center;gap:8px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,to{transform:scale(.82);opacity:.55}50%{transform:scale(1.16);opacity:1}}.empty-state{min-height:260px;display:grid;place-items:center;align-content:center;gap:12px;color:var(--text-secondary);text-align:center;padding:28px}.empty-state svg{width:34px;height:34px;color:var(--accent)}.empty-state h2{margin:0;color:var(--text);font-size:1.24rem;letter-spacing:-.3px}.empty-state p{max-width:430px;margin:0;line-height:1.5}.empty-state code{border-radius:12px;padding:8px 10px;background:var(--code-bg);color:var(--code-text)}.empty-state.compact{min-height:100%}.composer{margin:0 6px 6px;position:relative;z-index:8;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--composer-bg);box-shadow:0 20px 42px -28px var(--shadow);align-self:end}.composer-queue-banner,.composer-toolbar{grid-column:1 / -1}.composer-queue-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--warning-soft);border-radius:18px;background:var(--warning-surface);color:var(--text);padding:10px 12px}.composer-queue-banner>svg{color:var(--warning)}.composer-queue-banner div{min-width:0;display:grid;gap:2px}.composer-queue-banner span{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem}.composer:focus-within{border-color:var(--accent-soft-strong)}.composer.dragging{background:var(--accent-soft)}.quick-reply-row{grid-column:1 / -1;display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.quick-reply-row button{flex:0 0 auto;max-width:220px;min-height:30px;border:1px solid var(--border);border-radius:12px;background:var(--card-alt);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 9px;font-size:.78rem;font-weight:700}.attachment-row{grid-column:1 / -1;display:flex;align-items:center;gap:10px;min-width:0}.composer-toolbar{display:flex;align-items:center;gap:8px;min-width:0}.composer-leading-controls{flex:0 0 auto;display:flex;align-items:center;gap:8px}.composer-control-strip{flex:1 1 auto;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.composer-menu{position:relative;flex:0 1 auto;min-width:0}.composer-option-button{max-width:190px;height:34px;min-width:0;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:12px;background:var(--card-alt);color:var(--text);padding:0 10px;font-weight:800;cursor:pointer}.composer-option-button.selected{border-color:var(--accent-soft-strong);background:var(--accent-soft);color:var(--accent)}.composer-option-button:disabled{cursor:default;opacity:.45}.composer-option-button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.composer-option-button svg{width:14px;height:14px;flex:0 0 auto}.composer-option-popover{position:absolute;left:0;bottom:calc(100% + 8px);z-index:40;width:232px;max-width:calc(100vw - 32px);display:grid;gap:3px;border:1px solid var(--border);border-radius:16px;background:var(--bg-elevated);box-shadow:0 18px 44px -24px var(--shadow);padding:6px}.composer-option-popover.align-right{right:0;left:auto}.composer-option-popover.wide{width:286px}.composer-option-popover button{width:100%;min-width:0;min-height:44px;display:grid;grid-template-columns:30px minmax(0,1fr) 16px;align-items:center;gap:9px;border:0;border-radius:12px;background:transparent;color:var(--text);padding:7px 8px;text-align:left;cursor:pointer}.composer-option-popover button:hover,.composer-option-popover button:focus-visible{background:var(--card-alt)}.composer-option-popover button.selected{background:var(--accent-soft);color:var(--accent)}.composer-menu-icon{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--border);border-radius:10px;background:var(--card-alt);color:var(--text-muted)}.composer-option-popover button.selected .composer-menu-icon{border-color:var(--accent-soft-strong);background:var(--accent-soft);color:var(--accent)}.composer-menu-icon svg,.composer-menu-check{width:14px;height:14px}.composer-option-popover strong,.composer-option-popover small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-option-popover strong{font-size:.9rem}.composer-option-popover small{margin-top:1px;color:var(--text-muted);font-size:.72rem}.skill-suggestion-popover{width:100%;max-height:260px;display:grid;gap:8px;border:1px solid var(--border);border-radius:16px;background:var(--card);color:var(--text);padding:8px;box-shadow:0 18px 38px -30px var(--shadow)}.skill-suggestion-popover header{min-height:28px;display:flex;align-items:center;gap:10px}.skill-suggestion-popover header strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem}.skill-suggestion-popover header .icon-button{width:28px;height:28px;border-radius:999px}.skill-suggestion-popover p{margin:0;padding:12px 0;color:var(--text-muted);text-align:center;font-size:.78rem}.skill-suggestion-list{max-height:210px;overflow:auto;display:grid;gap:6px}.skill-suggestion-list button{min-height:50px;min-width:0;display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:12px;background:var(--card-strong);color:var(--text);padding:8px 10px;text-align:left}.skill-suggestion-list button:hover,.skill-suggestion-list button:focus-visible{background:var(--card-alt)}.skill-suggestion-list button>span{flex:1;min-width:0;display:grid;gap:2px}.skill-suggestion-list strong,.skill-suggestion-list small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-suggestion-list strong{font-size:.9rem}.skill-suggestion-list small{color:var(--text-muted);font-size:.72rem}.skill-suggestion-list em{max-width:86px;overflow:hidden;border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;padding:3px 7px;font-size:.66rem;font-style:normal;font-weight:800}.attachment-list{min-width:0;margin-top:0}.attachment-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-empty{color:var(--text-muted);font-size:.84rem}.composer textarea{grid-column:1 / -1;min-height:58px;max-height:150px;resize:none;border:0;border-radius:0;padding:8px 6px;background:transparent;line-height:1.45}.composer .send-button{flex:0 0 auto;width:44px;min-width:44px;height:44px;align-self:center;margin-left:auto;border-radius:14px;padding:0}.composer .send-button svg{width:19px;height:19px}.control-section,.attention-panel{display:grid;gap:12px;padding:16px}.control-section h2,.attention-panel h2{margin:0;font-size:1rem;letter-spacing:-.2px}.segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:0}.editor-mode-tabs{margin-top:12px}.segmented button,.choice-list button{border:1px solid var(--border);border-radius:14px;background:var(--card-alt);color:var(--text);min-height:40px}.segmented button.selected,.choice-list button.selected{border-color:var(--accent-soft-strong);background:var(--accent-soft);color:var(--accent);font-weight:800}.field{display:grid;gap:8px;margin-top:0}.field span,.toggle-field span{color:var(--text-secondary);font-size:.82rem;font-weight:600}.field input,.field select,.field textarea,.control-section textarea{min-height:42px;border:1px solid var(--border);border-radius:14px;padding:0 12px;background:var(--input);color:var(--text);outline:0}.field textarea,.control-section textarea{width:100%;padding:11px 12px;resize:vertical;line-height:1.45}.toggle-field{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:0;border:1px solid var(--border);border-radius:14px;padding:0 12px;background:var(--input)}.toggle-field span{display:inline-flex;align-items:center;gap:8px}.toggle-field input{width:18px;height:18px;accent-color:var(--accent)}.toggle-field.disabled{opacity:.58}.toggle-field.disabled input{cursor:not-allowed}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}.action-grid button,.attention-actions button,.row-actions button{min-width:0}.action-grid .primary-button{grid-column:1 / -1}.full-width{width:100%;margin-top:0}.attention-panel{border-color:var(--accent-soft-strong);background:linear-gradient(135deg,var(--accent-soft),transparent 74%),var(--card-strong)}.attention-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.attention-head p,.attention-panel>p{margin:0;color:var(--text-secondary);line-height:1.45}.attention-panel pre{max-height:220px;overflow:auto;margin:14px 0;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--code-bg);color:var(--code-text)}.question-block{display:grid;gap:10px;margin:14px 0}.choice-list{display:grid;gap:8px}.choice-list button{display:grid;gap:3px;padding:9px 10px;text-align:left}.choice-list small,.compact-section dt{color:var(--text-secondary)}.compact-section dl{margin:0;display:grid;gap:10px}.compact-section dl>div{display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px}.compact-section .action-grid{grid-template-columns:1fr}.compact-section .archive-sync-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-section dt,.compact-section dd{margin:0;overflow-wrap:anywhere;font-size:.84rem}.rail-filters,.control-tabs,.header-metadata,.pill-row,.chip-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rail-filters button,.control-tabs button,.pill-row button,.chip-group button{min-height:34px;min-width:0;border:1px solid var(--border);border-radius:13px;background:var(--card-alt);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;font-size:.8rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-filters button.selected,.control-tabs button.selected,.pill-row button:hover,.chip-group button.selected{border-color:var(--accent-soft-strong);background:var(--accent-soft);color:var(--accent)}.chip-group{align-items:stretch}.chip-group button{flex:1 1 auto}.cwd-suggestion-list{display:grid;gap:7px;margin-top:10px}.cwd-suggestion-list button{min-height:34px;min-width:0;border:1px solid var(--border);border-radius:13px;background:var(--card-alt);color:var(--text-secondary);display:flex;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 10px}.cwd-suggestion-list svg{width:14px;height:14px;color:var(--accent);flex:0 0 auto}.rail-filters svg,.control-tabs svg{width:15px;height:15px}.folder-group{display:grid;gap:8px}.folder-header{min-height:40px;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:8px}.folder-header>button:first-child{min-height:40px;border:1px solid var(--border);border-radius:16px;background:var(--card-alt);color:var(--text-secondary);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:0 12px;text-align:left}.folder-header>button:first-child span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-header small{color:var(--text-muted)}.folder-tag-row{display:flex;gap:5px;flex-wrap:wrap;padding:0 2px}.load-more-button{width:100%;flex:0 0 auto}.header-metadata{margin-top:10px}.header-metadata span{min-height:28px;border:1px solid var(--border);border-radius:999px;background:var(--card-alt);color:var(--text-secondary);display:inline-flex;align-items:center;padding:0 9px;font-size:.76rem;font-weight:700}.control-tabs{position:sticky;top:0;z-index:3;padding:0 0 4px;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.control-tabs button{width:44px;min-height:40px;padding:0}.field-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.field-row.multi-action-row{grid-template-columns:minmax(0,1fr) auto auto}.new-session-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}.field-row input,.field-row select{min-width:0;min-height:42px;border:1px solid var(--border);border-radius:14px;background:var(--input);color:var(--text);padding:0 12px;outline:0}.compact-row{grid-template-columns:1fr 1fr}.field-row input+input{max-width:86px}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 12px}.metric-grid div{min-height:78px;border:1px solid var(--border);border-radius:16px;background:var(--input);display:grid;align-content:center;gap:3px;padding:10px}.metric-grid svg{color:var(--accent)}.metric-grid strong{font-size:1.18rem}.metric-grid span{color:var(--text-secondary);font-size:.76rem;font-weight:700;text-transform:uppercase}.stack-list{display:grid;gap:8px}.queue-row,.data-row{border:1px solid var(--border);border-radius:16px;background:var(--input);display:grid;gap:7px;padding:10px}.queue-row span,.data-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-row small,.data-row span{color:var(--text-secondary);font-size:.78rem}.target-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.target-row>div{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;min-width:0}.target-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-actions{display:inline-flex;gap:6px}.danger-icon{color:var(--danger)}.search-history-row{display:flex;align-items:center;gap:6px;min-width:0;overflow-x:auto;padding-bottom:2px}.search-history-row svg{width:15px;height:15px;color:var(--text-muted);flex:0 0 auto}.search-history-row button,.history-token{min-width:0;min-height:28px;border:1px solid var(--border);border-radius:12px;background:var(--card-alt);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 8px}.history-token{display:inline-flex;align-items:center;gap:2px;padding:0 3px 0 7px}.history-token button,.search-history-row .history-clear{min-height:22px;border:0;border-radius:9px;background:transparent;padding:0 5px}.history-token button:first-child{overflow:hidden;text-overflow:ellipsis}.history-token svg,.history-clear svg{width:13px;height:13px}.file-list{max-height:260px;overflow:auto;display:grid;gap:7px;margin-top:12px}.file-list.compact{max-height:220px}.file-list button{min-height:38px;border:1px solid var(--border);border-radius:14px;background:var(--input);color:var(--text);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:0 10px;text-align:left;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-list button:hover{border-color:var(--accent-soft-strong);background:var(--accent-soft)}.file-list svg{width:15px;height:15px;color:var(--accent)}.file-title{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;margin-bottom:12px}.file-title strong,.file-title span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-title span{color:var(--text-secondary);font-size:.78rem}.remote-editor{min-height:280px;font-family:SFMono-Regular,Cascadia Code,monospace;font-size:.86rem}.source-viewer{min-height:280px}.remote-markdown-preview{min-height:280px;max-height:420px;overflow:auto;margin-top:12px;border:1px solid var(--border);border-radius:14px;background:var(--input);padding:12px}.remote-markdown-preview .message-markdown{font-size:.86rem}.remote-image{width:100%;max-height:420px;object-fit:contain;border:1px solid var(--border);border-radius:16px;background:var(--code-bg)}.json-box{max-height:260px;overflow:auto;margin:12px 0 0;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--code-bg);color:var(--code-text);white-space:pre-wrap;overflow-wrap:anywhere;font-family:SFMono-Regular,Cascadia Code,monospace;font-size:.82rem;line-height:1.45}.json-box.compact{max-height:220px;margin-top:10px}.markdown-source-box{max-height:none}.tool-detail-list{display:grid;gap:10px}.tool-detail-card{display:grid;gap:10px;border:1px solid var(--border);border-radius:16px;background:var(--card-alt);padding:10px}.tool-detail-card header{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px}.tool-detail-card header>div{min-width:0;display:grid;gap:2px}.tool-detail-card header strong,.tool-detail-card header small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-detail-card header small{color:var(--text-muted);font-size:.76rem}.tool-detail-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--accent-soft-strong);border-radius:11px;background:var(--accent-soft);color:var(--accent)}.tool-detail-icon svg{width:15px;height:15px}.tool-fields{display:grid;gap:8px}.tool-field{display:grid;gap:5px}.tool-field span{color:var(--text-muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.tool-field pre,.tool-diff{margin:0;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--text-secondary);padding:9px 10px;white-space:pre-wrap;overflow-wrap:anywhere;font-family:SFMono-Regular,Cascadia Code,monospace;font-size:.78rem;line-height:1.42}.tool-field.path pre{color:var(--accent)}.tool-diff{display:grid;grid-template-columns:16px minmax(0,1fr);gap:4px}.tool-diff.old{background:var(--danger-soft)}.tool-diff.new{background:var(--success-soft)}.side-drawer{position:fixed;inset:0;z-index:60}.side-drawer-backdrop{position:absolute;inset:0;border:0;background:#090e1857}.side-drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(520px,94vw);overflow:auto;border-left:1px solid var(--border);background:var(--panel);box-shadow:-18px 0 40px -32px var(--shadow);padding:18px}.side-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.side-drawer-header div:first-child{display:grid;gap:2px;min-width:0}.side-drawer-header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-drawer-header span,.side-drawer-panel h3{color:var(--text-secondary);font-size:.82rem}.session-detail-drawer{position:fixed;inset:0;z-index:62}.drawer-backdrop{position:absolute;inset:0;background:#090e1857}.session-detail-panel{position:absolute;top:0;right:0;bottom:0;width:min(560px,94vw);overflow:auto;display:grid;align-content:start;gap:14px;border-left:1px solid var(--border);background:var(--card);box-shadow:-18px 0 40px -32px var(--shadow);padding:18px}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.drawer-header>div{min-width:0;display:grid;gap:4px}.drawer-header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.18rem}.detail-title-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.detail-title-form input,.detail-search input{min-width:0;border:1px solid var(--border);border-radius:14px;background:var(--input);color:var(--text);padding:0 12px;min-height:42px;outline:0}.detail-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--border);border-radius:18px;overflow:hidden}.detail-info-grid div{min-width:0;display:grid;gap:5px;border-bottom:1px solid var(--border);padding:12px}.detail-info-grid div:nth-child(odd){border-right:1px solid var(--border)}.detail-info-grid div:nth-last-child(-n+2){border-bottom:0}.detail-info-grid svg{width:15px;height:15px;color:var(--accent)}.detail-info-grid span,.detail-usage{color:var(--text-muted);font-size:.78rem}.detail-info-grid strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}.detail-command-card{min-width:0;min-height:48px;border:1px solid var(--border);border-radius:16px;background:var(--card-alt);color:var(--text);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:0 12px;text-align:left}.detail-command-card span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-search{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}.detail-search svg{color:var(--text-muted)}.detail-search-results{display:grid;gap:8px}.detail-search-results button{min-width:0;border:1px solid var(--border);border-radius:14px;background:var(--card-alt);color:var(--text);display:grid;gap:4px;padding:10px 12px;text-align:left}.detail-search-results span{color:var(--accent);font-size:.75rem;font-weight:800;text-transform:uppercase}.detail-search-results strong{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.86rem;line-height:1.4}.detail-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.attachment-preview-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;text-align:left;color:var(--text)}.attachment-preview-row svg{width:16px;height:16px;color:var(--accent)}.attachment-preview-row span{display:grid;gap:2px}.attachment-preview-row small{min-width:0;overflow:hidden;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap}body .workspace *,.side-drawer *,.session-detail-drawer *,.diff-drawer *{letter-spacing:0}.workspace{font-size:var(--text-body)}.session-rail{gap:var(--panel-gap);padding:var(--shell-gutter) var(--shell-gutter) var(--shell-gutter) calc(var(--shell-gutter) + 2px)}.wide-main{gap:var(--panel-gap);padding:var(--shell-gutter) var(--shell-gutter) var(--shell-gutter) 0}.control-pane{gap:var(--panel-gap)}.brand-block,.connection-strip{gap:var(--space-3);padding:var(--card-padding)}.brand-block{min-height:60px;padding:10px 12px}.connection-strip{min-height:38px;padding:8px 10px}.brand-block strong,.connection-strip strong,.session-row strong,.target-row strong,.file-title strong,.tool-detail-card header strong,.detail-info-grid strong,.side-drawer-header strong{font-size:var(--text-body);line-height:var(--leading-snug)}.brand-block span,.connection-strip span,.session-row span,.session-row small,.empty-copy,.composer-queue-banner span,.attachment-empty,.file-title span,.side-drawer-header span,.side-drawer-panel h3,.detail-info-grid span,.detail-usage,.detail-search-results strong,.queue-row small,.data-row span,.tool-detail-card header small,.message-search-bar span{font-size:var(--text-sm);line-height:var(--leading-normal)}.rail-list-heading{min-height:36px;gap:var(--space-3)}.rail-list-heading span,.filter-section-label,.eyebrow,.agent-status-pill,.header-metadata span,.message-meta,.tool-group-title strong,.tool-group-summary,.message-files span,.message-files button,.attachment-list span,.quick-reply-row button,.composer-option-button>span,.composer-option-popover small,.skill-suggestion-popover header strong,.skill-suggestion-popover p,.skill-suggestion-list small,.skill-suggestion-list em,.compact-section dt,.compact-section dd,.rail-filters button,.control-tabs button,.pill-row button,.chip-group button,.metric-grid span,.tool-field span{font-size:var(--text-xs);line-height:var(--leading-snug)}.filter-section-label,.eyebrow,.message-meta,.tool-field span,.detail-search-results span,.metric-grid span{font-size:var(--text-2xs)}.search-box,.message-search-bar{min-height:var(--control-height);gap:var(--space-2);padding-left:var(--space-3)}.filter-popover,.session-context-menu,.session-create-menu,.composer-option-popover,.skill-suggestion-popover{gap:var(--compact-gap);padding:var(--space-2)}.session-list{gap:var(--space-2);padding-bottom:var(--space-3)}.session-row{min-height:var(--rail-row-min-height);gap:var(--space-2);padding:var(--space-3)}.chat-header{min-height:88px;gap:var(--space-4);padding:var(--space-2) var(--space-1) var(--space-3)}.chat-header h1{margin:var(--space-1) 0;font-size:var(--text-title);line-height:var(--leading-tight)}.chat-header p,.attention-head p,.attention-panel>p{font-size:var(--text-sm);line-height:var(--leading-normal)}.header-actions,.attention-actions,.composer-toolbar,.composer-leading-controls,.composer-control-strip,.attachment-row,.row-actions{gap:var(--space-2)}.icon-button,.primary-button,.send-button,.danger-button,.approve-button,.icon-text-button,.segmented button,.choice-list button,.composer-option-button,.field input,.field select,.field-row input,.field-row select,.detail-title-form input,.detail-search input,.detail-command-card,.file-list button,.cwd-suggestion-list button{min-height:var(--control-height);font-size:var(--text-sm);line-height:var(--leading-snug)}.rail-create-button,.mini-button{width:var(--control-height-sm);min-height:var(--control-height-sm);flex-basis:var(--control-height-sm)}.control-tabs button{width:var(--control-height);min-height:var(--control-height)}.notice{margin:0 var(--space-1) var(--space-3);gap:var(--space-2);padding:var(--space-3);font-size:var(--text-sm);line-height:var(--leading-normal)}.message-scroll{gap:var(--space-3);padding:var(--space-3) var(--space-1) var(--space-5);scroll-padding-bottom:var(--space-5)}.message{padding:var(--space-3) var(--card-padding);font-size:var(--text-body);line-height:var(--leading-normal)}.message-meta{gap:var(--space-3);margin-bottom:var(--space-2)}.attention-panel pre,.json-box,.remote-editor,.tool-field pre,.tool-diff{font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.message>pre{font-family:var(--font-sans);font-size:var(--text-body);font-weight:400;line-height:var(--leading-relaxed)}.message.user>pre{font-weight:500}.message-files,.attachment-list{gap:var(--space-2);margin-top:var(--space-3)}.empty-state{gap:var(--space-3);padding:var(--space-6)}.empty-state h2,.metric-grid strong,.drawer-header strong{font-size:var(--text-lg);line-height:var(--leading-tight)}.empty-state p{line-height:var(--leading-normal)}.composer{gap:var(--space-2);margin:0 var(--space-1) var(--space-1);padding:var(--space-2)}.composer textarea{min-height:64px;padding:var(--space-2) var(--space-2);font-size:var(--text-body);line-height:var(--leading-normal)}.composer-queue-banner,.skill-suggestion-list button,.tool-detail-card,.queue-row,.data-row{gap:var(--space-2);padding:var(--space-3)}.control-section,.attention-panel{gap:var(--space-3);padding:var(--section-padding)}.control-section h2,.attention-panel h2{font-size:var(--text-base);line-height:var(--leading-snug)}.field,.filter-section,.session-filter-panel,.stack-list,.choice-list,.tool-detail-list,.tool-fields,.detail-search-results{gap:var(--space-2)}.field span,.toggle-field span{font-size:var(--text-sm);line-height:var(--leading-snug)}.field textarea,.control-section textarea{font-size:var(--text-sm);line-height:var(--leading-normal)}.toggle-field{min-height:var(--control-height);gap:var(--space-3)}.metric-grid,.action-grid,.new-session-mode-grid,.detail-action-grid{gap:var(--space-2)}.file-list{gap:var(--space-2);margin-top:var(--space-3)}.side-drawer-panel,.session-detail-panel{padding:var(--section-padding)}.side-drawer-header,.drawer-header{gap:var(--space-3);margin-bottom:var(--space-3)}.session-detail-panel{gap:var(--panel-gap)}.detail-info-grid div,.detail-search-results button{gap:var(--space-1);padding:var(--space-3)}@media(max-width:1180px){.workspace{grid-template-columns:var(--left-pane-width) 14px minmax(0,1fr)}.wide-main{grid-template-columns:minmax(0,1fr) 14px var(--right-pane-width);gap:8px;padding-right:12px}.control-pane{display:flex}}@media(max-width:760px){:root{--shell-gutter: 12px;--panel-gap: 10px;--card-padding: 12px;--section-padding: 12px;--text-title: 1.38rem}.workspace{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(244px,32dvh) minmax(0,1fr);height:100dvh}.workspace.left-sidebar-collapsed{grid-template-rows:minmax(0,1fr)}.session-rail{height:auto;min-height:0;overflow:auto;gap:8px;border-right:0;border-bottom:1px solid var(--border);padding:10px 12px}.brand-block{min-height:60px}.connection-strip{min-height:38px}.rail-list-heading{min-height:30px}.search-box{min-height:42px}.resize-handle{display:none}.wide-main{display:grid;grid-template-columns:1fr;min-height:auto;padding:12px}.wide-main.right-sidebar-collapsed{grid-template-columns:1fr;padding:12px}.workspace.left-sidebar-collapsed .wide-main{padding-left:56px}.chat-pane{height:100%;min-height:0;display:grid}.chat-header{align-items:flex-start;flex-direction:column;gap:10px;min-height:auto;padding:6px 0 14px}.header-actions{width:100%;flex-wrap:wrap}.message-scroll{min-height:0;padding:8px 0 16px}.message,.message.tool,.message.info,.tool-group-bubble{width:100%;max-width:100%}.composer{margin:0;grid-template-columns:1fr}.composer-leading-controls>.icon-button{flex:0 0 36px}.composer-control-strip{flex:1 1 100%}.composer-option-button{max-width:150px}.composer .send-button{flex:0 0 44px}.control-pane,.sidebar-restore-button-right{display:none}.control-pane>*{width:100%}.field-row,.metric-grid{grid-template-columns:1fr}}.session-diff-badge{flex:0 0 auto;display:inline-flex;gap:6px;margin-top:4px;padding:2px 6px;border-radius:4px;background:#ffffff0a;cursor:pointer;font-size:11px;font-family:ui-monospace,SFMono-Regular,monospace;width:fit-content}.session-diff-badge:hover{background:#ffffff1a}.diff-add{color:#4ade80}.diff-del{color:#f87171}.diff-drawer{position:fixed;inset:0;z-index:50;display:flex;justify-content:flex-end}.diff-drawer-backdrop{position:absolute;inset:0;background:#00000073}.diff-drawer-panel{position:relative;width:min(960px,90vw);height:100%;background:var(--panel-bg, #0f1115);border-left:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;box-shadow:-8px 0 30px #0006}.diff-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.diff-drawer-header strong{display:block;font-size:14px}.diff-drawer-header span{display:block;font-size:12px;opacity:.7}.diff-tabs{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.06)}.diff-tab{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:6px;border:1px solid transparent;background:transparent;color:inherit;cursor:pointer;font-size:12px}.diff-tab:hover{background:#ffffff0a}.diff-tab.active{background:#ffffff14;border-color:#ffffff1f}.diff-tab-meta{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;display:inline-flex;gap:4px}.diff-body{flex:1;display:grid;grid-template-columns:280px 1fr;min-height:0}.diff-files{border-right:1px solid rgba(255,255,255,.06);overflow:auto;padding:6px 4px}.diff-file{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:6px;width:100%;padding:6px 8px;border-radius:4px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font-size:12px}.diff-file:hover{background:#ffffff0a}.diff-file.active{background:#ffffff1a}.diff-file-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,monospace}.diff-file-stats{display:inline-flex;gap:4px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px}.diff-status{display:inline-flex;justify-content:center;align-items:center;width:18px;height:18px;border-radius:4px;font-size:10px;font-weight:600;font-family:ui-monospace,SFMono-Regular,monospace}.diff-status-M{background:#eab3082e;color:#fbbf24}.diff-status-A{background:#4ade802e;color:#4ade80}.diff-status-D{background:#f871712e;color:#f87171}.diff-status-R,.diff-status-C,.diff-status-T,.diff-status-U{background:#60a5fa2e;color:#60a5fa}.diff-binary{font-style:italic;opacity:.7}.diff-patch{overflow:auto;padding:8px 0}.diff-patch-view{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;line-height:1.5}.diff-line{padding:0 14px;white-space:pre}.diff-line.add{background:#4ade801a;color:#86efac}.diff-line.del{background:#f871711a;color:#fca5a5}.diff-line.hunk{background:#60a5fa1a;color:#93c5fd}.diff-line.header{color:#9ca3af}.diff-empty{padding:16px;font-size:12px;opacity:.7;text-align:center}.diff-error{color:#f87171}.session-diff-badge{gap:var(--space-2);padding:var(--space-1) var(--space-2);font-size:var(--text-2xs);line-height:var(--leading-snug)}.diff-drawer-panel{font-size:var(--text-sm)}.diff-drawer-header{padding:var(--space-3) var(--space-4)}.diff-drawer-header strong{font-size:var(--text-sm);line-height:var(--leading-snug)}.diff-drawer-header span,.diff-tab,.diff-file,.diff-patch-view,.diff-empty{font-size:var(--text-xs);line-height:var(--leading-normal)}.diff-tabs{gap:var(--space-1);padding:var(--space-2) var(--space-3)}.diff-tab{gap:var(--space-2);padding:var(--space-2) var(--space-3)}.diff-tab-meta,.diff-file-stats,.diff-status{font-size:var(--text-2xs);line-height:var(--leading-snug)}.diff-files{padding:var(--space-2)}.diff-file{gap:var(--space-2);padding:var(--space-2)}.diff-patch{padding:var(--space-2) 0}.diff-line{padding:0 var(--space-4)}@media(max-width:720px){.diff-body{grid-template-columns:1fr}.diff-files{border-right:0;border-bottom:1px solid rgba(255,255,255,.06);max-height:40vh}}
|