@font-face{font-family:Google Sans Flex;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/google-sans-flex-vietnamese-BYkxoBzi.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Google Sans Flex;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/google-sans-flex-latin-ext-C0VXOeWd.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Google Sans Flex;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/google-sans-flex-latin-CRMKv9uI.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:focus{outline:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}input:focus-visible,textarea:focus-visible{outline:none}@media(pointer:coarse){input,textarea,select{font-size:16px}}:root{--bg: #ffffff;--sidebar-bg: #fafafa;--sidebar-w: 288px;--accent: #111111;--accent-hover: #000000;--user-bubble: #f4f4f4;--border: #e7e7e7;--text: #111111;--text-muted: #555555;--text-faint: #9a9a9a;--font-serif: "Google Sans Flex", "Google Sans", "Helvetica Neue", sans-serif;--font: "Google Sans Flex", "Google Sans", "Helvetica Neue", sans-serif;--radius: 12px;--focus-ring: #111111;--safe-top: env(safe-area-inset-top, 0px);--glass-fill: rgba(255, 255, 255, .6);--glass-fill-strong: rgba(255, 255, 255, .82);--glass-blur: saturate(1.7) blur(16px);--glass-border: rgba(255, 255, 255, .55);--glass-shadow: 0 10px 30px rgba(17, 24, 39, .1), 0 0 0 .5px rgba(17, 24, 39, .04), inset 0 1px 0 rgba(255, 255, 255, .5);--glass-radius: 20px}@media(display-mode:standalone){:root{--safe-top: max(env(safe-area-inset-top, 0px), 24px)}}html.tuan-native{--safe-top: 30px}html.tuan-native .sidebar-header,html.tuan-native .chat-header{cursor:grab}html.tuan-native .sidebar-header button,html.tuan-native .chat-header button,html.tuan-native .chat-header .context-ring{cursor:pointer}html.tuan-native .chat-title{cursor:default}html.tuan-native.tuan-dragging,html.tuan-native.tuan-dragging *{cursor:grabbing!important}html,body,#root{height:100%;font-family:var(--font);background:var(--bg);color:var(--text);font-size:1.0625rem;line-height:1.6}.layout{display:flex;height:100vh;height:100dvh;overflow:hidden}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg);border-radius:0 16px 16px 0;display:flex;flex-direction:column;overflow:hidden;padding-top:var(--safe-top)}.sidebar-header{height:52px;padding:0 16px;display:flex;align-items:center;gap:8px;flex-shrink:0}.wordmark{font-size:22px;font-weight:500;font-family:var(--font-serif);letter-spacing:-.2px;color:var(--text);flex:1;line-height:26px}.wordmark-logo{height:26px;width:auto;max-width:168px;object-fit:contain;margin-right:auto;display:block}.new-chat-row{margin:2px 8px;width:calc(100% - 16px);height:40px;border-radius:8px;border:none;background:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:0 10px;font-size:15px;font-family:var(--font);color:var(--text);transition:background .1s}.new-chat-row:hover{background:#f0f0f0}.new-chat-plus-circle{width:24px;height:24px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.session-section-btn{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:400;color:var(--text-faint);padding:18px 18px 6px;background:none;border:none;cursor:pointer;width:100%;text-align:left;font-family:var(--font);-webkit-user-select:none;user-select:none;transition:color .1s}.session-section-btn:hover{color:#444}.session-list{flex:1;overflow-y:auto;padding:0 8px 12px}.session-empty{color:var(--text-muted);font-size:13px;text-align:center;padding:24px 16px}.session-item-wrap{position:relative;margin-bottom:1px;border-radius:8px;display:flex;align-items:center}.session-item-wrap.active{background:#ececec}@media(hover:hover){.session-item-wrap:hover{background:#f0f0f0}}.session-item{flex:1;min-width:0;background:none;border:none;text-align:left;padding:0 10px;height:38px;cursor:pointer;border-radius:8px;display:flex;align-items:center;gap:7px;transition:background .1s}.session-item:hover{background:none}.session-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.session-item.active{background:none}.session-item-wrap.active .session-title{font-weight:500;color:var(--text)}.session-more-btn{display:none;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;border:none;background:none;color:var(--text-faint);cursor:pointer;flex-shrink:0;margin-right:6px;transition:background .1s}.session-more-btn:hover{background:#e7e7e7}.session-item-wrap.active .session-more-btn,.session-more-btn.open{display:flex}@media(hover:hover){.session-item-wrap:hover .session-more-btn{display:flex}}@media(hover:none){.session-more-btn{display:flex}}.session-context-menu{position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 24px #0000001a;min-width:180px;padding:4px;z-index:90}.session-context-menu.flip-up{top:auto;bottom:calc(100% + 4px)}.session-context-item{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;cursor:pointer;padding:8px 10px;border-radius:8px;font-size:14px;font-family:var(--font);color:var(--text);text-align:left;transition:background .15s}.session-context-item:hover{background:#f0f0f0}.session-context-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.session-context-item--danger{color:#c0392b}.session-context-item--danger:hover{background:#fdf2f2}.session-context-sep{height:1px;background:var(--border);margin:2px 4px}.session-title{font-size:14.5px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);flex:1;min-width:0}@keyframes title-fade{0%,to{opacity:1}50%{opacity:.35}}.session-title--running{animation:title-fade 1.6s ease-in-out infinite}.sidebar-footer{padding:8px 12px 12px;flex-shrink:0;display:flex;justify-content:flex-end}.sidebar-gear-btn{width:36px;height:36px;border:none;border-radius:8px;background:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s,color .15s}.sidebar-gear-btn:hover{background:#f0f0f0;color:var(--text)}.gear-menu{position:absolute;right:0;bottom:calc(100% + 4px);background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 24px #0000001a;min-width:180px;padding:4px;z-index:90}.gear-menu.flip-up{bottom:auto;top:calc(100% + 4px)}.gear-menu-item{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;cursor:pointer;padding:8px 10px;border-radius:8px;font-size:14px;font-family:var(--font);color:var(--text);text-align:left;transition:background .15s}.gear-menu-item:hover:not(:disabled){background:#f0f0f0}.gear-menu-item:disabled{color:var(--text-faint);cursor:default}.gear-menu-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.gear-menu-back-icon{color:var(--text-faint);transform:rotate(180deg)}.gear-host-row{display:flex;align-items:center}.gear-host-row>.gear-menu-item{flex:1;min-width:0}.gear-host-check{color:var(--text-muted);flex-shrink:0}.gear-host-remove{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;margin-right:2px;border:none;background:none;border-radius:6px;color:var(--text-faint);cursor:pointer;opacity:0;transition:opacity .15s,background .15s,color .15s}.gear-host-row:hover .gear-host-remove,.gear-host-remove:focus-visible{opacity:1}.gear-host-remove:hover{background:#f0f0f0;color:var(--text-muted)}.toggle-switch{flex-shrink:0;width:42px;height:24px;border-radius:12px;border:none;background:#ccc;cursor:pointer;position:relative;transition:background .2s;padding:0}.toggle-switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle-switch.on{background:#111}.toggle-switch.on:after{transform:translate(18px)}.toggle-switch:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.appearance-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.appearance-row:last-of-type{border-bottom:none}.appearance-row-label{display:flex;flex-direction:column;gap:2px}.appearance-row-label>span:first-child{font-size:14px;color:var(--text)}.appearance-row-hint{font-size:12px;color:var(--text-faint)}.appearance-field{padding:10px 0;border-bottom:1px solid var(--border)}.appearance-field:last-child{border-bottom:none}.bg-preview{margin-top:8px;border-radius:8px;overflow:hidden;background:#f0f0f0;height:80px;display:flex;align-items:center;justify-content:center}.bg-preview img{width:100%;height:100%;object-fit:cover;display:block}.bg-preview-placeholder{font-size:12px;color:var(--text-faint)}.bg-controls{display:flex;align-items:center;gap:8px;margin-top:8px}.bg-pick-btn{font-size:13px;font-family:var(--font);padding:5px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);cursor:pointer;transition:background .1s}.bg-pick-btn:hover:not(:disabled){background:#f0f0f0}.bg-pick-btn:disabled{opacity:.5;cursor:default}.bg-clear-btn{font-size:13px;font-family:var(--font);padding:5px 12px;border:1px solid var(--border);border-radius:6px;background:none;color:var(--text-faint);cursor:pointer;transition:color .1s}.bg-clear-btn:hover:not(:disabled){color:var(--text)}.bg-clear-btn:disabled{opacity:.5;cursor:default}.bg-error{margin:6px 0 0;font-size:12px;color:#c0392b}.logo-preview{margin-top:8px;display:flex;align-items:center;min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.font-scale-segmented{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-top:6px}.font-scale-btn{flex:1;border:none;background:none;cursor:pointer;padding:7px 4px;font-size:12px;font-family:var(--font);color:var(--text-muted);transition:background .15s,color .15s;border-right:1px solid var(--border)}.font-scale-btn:last-child{border-right:none}.font-scale-btn:hover{background:#f0f0f0;color:var(--text)}.font-scale-btn.active{background:#111;color:#fff}.font-scale-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.main-pane{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);position:relative;min-width:0}.chat-pane{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.chat-header{position:absolute;top:0;left:0;right:0;height:calc(52px + var(--safe-top));padding:var(--safe-top) 20px 0;background:#fffffff0;z-index:5;display:flex;align-items:center;gap:12px}.chat-header-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.chat-title{font-size:16px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-title--editing{outline:none;cursor:text}.context-ring{display:flex;align-items:center;flex-shrink:0;border:none;background:none;padding:0;cursor:pointer}.context-popover{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 4px 24px #00000014;min-width:260px;padding:10px 12px;z-index:80}.context-popover-title{font-size:11px;color:var(--text-faint);margin:0 0 6px}.context-popover-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-size:12.5px}.context-popover-model{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-popover-stat{color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums}.context-popover-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;margin-top:8px;padding:8px 0 2px;border:none;border-top:1px solid var(--border);background:none;cursor:pointer;text-align:left}.context-popover-toggle-label{display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:var(--text)}.context-popover-toggle-hint{font-size:11px;color:var(--text-faint)}.context-popover-effort{margin-top:8px;padding:8px 0 4px;border-top:1px solid var(--border)}.effort-segmented{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-top:10px}.effort-seg-btn{flex:1;border:none;border-right:1px solid var(--border);background:none;cursor:pointer;padding:6px 2px;font-size:11px;font-family:var(--font);color:var(--text-muted);white-space:nowrap;transition:background .15s,color .15s}.effort-seg-btn:last-child{border-right:none}.effort-seg-btn:hover{background:#f0f0f0;color:var(--text)}.effort-seg-btn.active{background:#111;color:#fff}.effort-seg-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.switch{flex-shrink:0;width:32px;height:18px;border-radius:999px;background:var(--border);transition:background .2s}.switch--on{background:var(--accent)}.switch-knob{display:block;width:14px;height:14px;margin:2px;border-radius:50%;background:#fff;transition:transform .2s}.switch--on .switch-knob{transform:translate(14px)}.message-list{flex:1;overflow-y:auto;padding:calc(76px + var(--safe-top)) 0 16px;display:flex;flex-direction:column;align-items:center}.chat-older-row{width:100%;max-width:768px;margin:0 auto;display:flex;justify-content:center;padding:4px 24px 12px}.chat-older-btn{display:inline-flex;align-items:center;gap:6px}.chat-older-btn:disabled{cursor:default}.chat-older-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--text-muted);border-radius:50%;animation:spin .7s linear infinite}.msg{width:100%;max-width:768px;padding:4px 24px}.msg-user{display:flex;justify-content:flex-end;padding-right:24px}.bubble{background:var(--user-bubble);border-radius:16px;padding:12px 16px;max-width:78%;font-size:calc(15px * var(--chat-font-scale, 1));line-height:1.7;white-space:pre-wrap;word-break:break-word;text-align:left}.msg-assistant{font-family:var(--font-serif);font-size:calc(16px * var(--chat-font-scale, 1));line-height:1.75;margin:4px 0;padding:0 24px}.msg-assistant strong,.msg-assistant em,.msg-assistant .md strong,.msg-assistant .md em{font-family:inherit}.msg-assistant code,.msg-assistant .md code,.msg-assistant .md pre code{font-family:SF Mono,Consolas,monospace}.msg-system{text-align:left;font-size:12px;color:var(--text-faint);padding:6px 24px}.msg-synthetic{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.bubble--command{background:none;border:1px dashed var(--border);color:var(--text-muted);font-size:13px}.bubble--agent{background:#fff;border:1px dashed #c9c9c9}.msg-agent-link{border:none;background:none;padding:0;font-family:inherit;font-size:11px;line-height:1;color:var(--text-faint);cursor:pointer;align-self:center;margin-left:6px;opacity:0;transition:opacity .15s}.msg:hover .msg-agent-link,.msg-agent-link:focus-visible{opacity:1}.msg-agent-link:hover{color:var(--text);text-decoration:underline}@media(hover:none){.msg-agent-link{opacity:.7}}.msg-tool{font-size:13px;margin:8px 0}details>summary{list-style:none;cursor:pointer}details>summary::-webkit-details-marker{display:none}.tool-flow{margin:10px 0 4px 2px;display:flex;flex-direction:column}.tool-node{position:relative;padding:0 0 22px 30px}.tool-node--last{padding-bottom:2px}.tool-node:not(.tool-node--last):before{content:"";position:absolute;left:9.5px;top:22px;bottom:-1px;width:1px;background:#ededed}.tool-node-head{display:flex;align-items:center;gap:0;background:none;border:none;padding:0;cursor:pointer;font-family:var(--font);text-align:left}.tool-node-dot{position:absolute;left:0;top:0;width:19px;height:22px;display:flex;align-items:center;justify-content:center;color:var(--text-faint)}.tool-node-dot--error{color:#c0392b}.tool-node-label{font-size:13.5px;color:var(--text-muted);transition:color .1s}.tool-node-label--executing{animation:title-fade 1.6s ease-in-out infinite}.tool-node-head--thought{display:block;width:100%}.tool-node-label--thought{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.55;color:var(--text-faint);white-space:normal;word-break:break-word}.tool-node-label--thought.is-open{display:block;-webkit-line-clamp:unset;white-space:pre-wrap}.tool-node-label--thought .thinking-caret{display:inline-block;vertical-align:-2px}.tool-node-head:hover .tool-node-label{color:var(--text)}.tool-node-label--error,.tool-node-head:hover .tool-node-label--error{color:#c0392b}.tool-node-detail{margin-top:8px;display:flex;flex-direction:column;gap:8px}.tool-io{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}.tool-io-header{font-size:12px;font-weight:500;color:var(--text-muted);padding:8px 14px 0}.tool-io-pre{margin:0;padding:6px 14px 10px;font-size:12px;font-family:SFMono-Regular,Consolas,monospace;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:var(--text);max-height:320px;overflow-y:auto}.tool-io-pre--error{color:#c0392b}.thinking{padding:8px 24px}.thinking-label{display:inline-flex;align-items:center;gap:2px;font-size:15px;color:var(--text-faint);min-height:24px;animation:thinking-fade 2.4s ease-in-out infinite}.thinking-stream{margin-top:6px;font-size:13.5px;line-height:1.55;color:var(--text-faint);white-space:pre-wrap;word-break:break-word;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.thinking-caret{width:1.5px;height:15px;background:var(--text-faint);margin-left:2px;animation:caret-blink 1s steps(1) infinite}@keyframes thinking-fade{0%,to{opacity:1}50%{opacity:.45}}@keyframes caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.md{overflow-wrap:break-word}.md p{margin:14px 0}.md p:first-child{margin-top:0}.md p:last-child{margin-bottom:0}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{font-family:var(--font-serif);font-weight:600;line-height:1.3;color:var(--text)}.md h1{font-size:1.5em;margin:28px 0 12px}.md h2{font-size:22px;margin:28px 0 12px}.md h3{font-size:1.05em;margin:20px 0 8px}.md h4,.md h5,.md h6{font-size:1em;margin:16px 0 6px}.md hr{border:none;border-top:1px solid #e7e7e7;margin:28px 0}.md code{font-family:SF Mono,Consolas,monospace;font-size:13px;background:#f0f0f0;color:#111;border-radius:4px;padding:1.5px 5px}.md pre{position:relative;background:#fff;border:1px solid var(--border);border-radius:12px;margin:.8em 0;overflow:hidden}.code-block-header{display:flex;align-items:center;padding:8px 14px 0}.code-block-lang{font-size:12px;color:var(--text-faint);font-family:SF Mono,Consolas,monospace;flex:1}.code-copy-btn{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:none;background:none;cursor:pointer;color:var(--text-faint);padding:5px;border-radius:6px;font-size:12px;font-family:var(--font)}.code-copy-btn .code-copy-label{padding-right:2px}.code-copy-btn:hover{background:#e7e7e7;color:var(--text-muted)}.code-copy-label{color:var(--text-muted)}.msg-time{font-size:11px;line-height:1;color:var(--text-faint);align-self:center;margin-left:6px;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .15s}.msg:hover .msg-time{opacity:1}@media(hover:none){.msg-time{opacity:.7}}.msg-user-col{flex-direction:column;align-items:flex-end;gap:8px}.msg-user--uploading{animation:thinking-fade 1.6s ease-in-out infinite;pointer-events:none}.bubble-attachments{display:flex;flex-direction:column;align-items:flex-end;gap:6px;margin-bottom:6px}.bubble-attach-img{max-width:180px;max-height:140px;border-radius:10px;border:1px solid var(--border);object-fit:cover;display:block}.bubble-attach-card{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px 12px;max-width:220px}.bubble-attach-card-name{font-size:12.5px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.bubble-attach-card-badge{font-size:10px;font-weight:700;color:#fff;background:#555;border-radius:4px;padding:1px 5px;flex-shrink:0}.bubble-attach-download{flex-shrink:0;width:24px;height:24px;border:none;padding:0;cursor:pointer;border-radius:6px;background:#f0f0f0;color:#555;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:background .12s}.bubble-attach-download:hover{background:#e0e0e0}.md pre code{display:block;font-family:SF Mono,Consolas,monospace;font-size:13px;background:none;color:var(--text);padding:14px;border:none;border-radius:0;overflow-x:auto;white-space:pre}.md ul,.md ol{padding-left:24px;margin:.5em 0}.md li{margin:6px 0}.md a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.md a:hover{color:var(--accent-hover)}.md strong{font-weight:700}.md em{font-style:italic}.composer-wrap{flex-shrink:0;padding:12px 16px 8px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:var(--bg);display:flex;flex-direction:column;align-items:center;gap:6px}.composer-wrap--dragging .composer{border-color:#111;box-shadow:0 0 0 3px #00000014}.composer{width:100%;max-width:768px;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 6px #0000000a;transition:border-color .15s;overflow:visible}.composer:focus-within{border-color:#111}.composer-row1{display:flex}.composer-input{flex:1;border:none;outline:none;background:transparent;font-family:var(--font);font-size:15px;line-height:1.5;resize:none;color:var(--text);max-height:192px;overflow-y:auto;padding:14px 16px 6px}.composer-input::placeholder{color:var(--text-muted)}.composer-input:disabled{opacity:.5}.composer-row2{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 12px}.composer-row2-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.composer-hint{font-size:13px;color:var(--text-faint);white-space:nowrap}.agent-badge-mobile{display:none}.composer-add-btn{width:36px;height:36px;border-radius:10px;background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.composer-add-btn:hover{color:var(--text);background:#f0f0f0}.composer-project-btn{width:36px;height:36px;border-radius:10px;background:#f0f0f0;border:none;color:#555;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .1s}.composer-project-btn:hover{background:#e7e7e7}.composer-attachments{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px 0}.attach-tile{position:relative;width:84px;height:84px;border-radius:10px;flex-shrink:0;overflow:visible}.attach-tile-img{width:84px;height:84px;object-fit:cover;border-radius:10px;border:1px solid var(--border);display:block}.attach-tile-pdf{width:84px;height:84px;border-radius:10px;border:1px solid var(--border);background:#fff;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:6px;box-sizing:border-box;overflow:hidden}.attach-tile-pdf-name{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;margin-bottom:4px}.attach-tile-pdf-badge{font-size:10px;font-weight:700;color:#fff;background:#555;border-radius:4px;padding:1px 5px;flex-shrink:0}.attach-tile-remove{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;background:#111;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000040;opacity:0;transition:opacity .15s;z-index:2}.attach-tile:hover .attach-tile-remove{opacity:1}.composer-attach-error{font-size:12px;color:#c0392b;padding:2px 16px 0;margin:0}.composer-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.send-btn{width:36px;height:36px;border-radius:10px;background:#111;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0}.send-btn:hover:not(:disabled){background:#000}.send-btn:disabled{background:#ececec;cursor:not-allowed;color:#9a9a9a}.send-btn--busy,.send-btn--busy:disabled{background:#111;cursor:progress}.stop-btn{width:36px;height:36px;border-radius:10px;background:#111;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.stop-btn:hover{background:#333}.composer-locked-notice{font-size:12px;color:var(--text-faint);font-style:italic}.mic-btn{width:36px;height:36px;border-radius:10px;background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s,border-color .15s}.mic-btn:hover{color:var(--text);background:#f0f0f0}.mic-btn:disabled{cursor:default;opacity:.7}.mic-btn--recording{background:#fee2e2;border-color:#fca5a5;color:#dc2626}.mic-btn--recording:hover{background:#fecaca;color:#b91c1c}.mic-btn--muted{color:var(--text-faint);opacity:.7}.mic-btn--muted:hover{opacity:1;color:var(--text)}.composer-input--recording::placeholder{animation:listening-fade 1.5s ease-in-out infinite}.composer-input--recording::-webkit-input-placeholder{animation:listening-fade 1.5s ease-in-out infinite}@keyframes listening-fade{0%,to{opacity:.45}50%{opacity:1}}.whisper-section-title{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:28px 0 4px;padding-top:20px;border-top:1px solid var(--border)}.whisper-section-title:first-of-type{margin-top:8px;padding-top:0;border-top:none}.whisper-hint--warn{color:#b45309}.whisper-notice{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:18px;line-height:1.45}.whisper-notice--warn{background:#fff8e1;border:1px solid #ffe082;color:#5a4200}.whisper-field{display:flex;flex-direction:column;gap:7px;margin-top:20px}.whisper-field--status{border-top:1px solid var(--border);padding-top:18px}.memory-restore-row{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.whisper-hint{font-size:12px;color:var(--text-faint);line-height:1.4}.toggle-switch:disabled{opacity:.45;cursor:not-allowed}.whisper-progress{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.whisper-error{font-size:12px;color:#dc2626;word-break:break-word}.whisper-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}.whisper-actions .modal-submit-btn{display:inline-flex;align-items:center;gap:6px}.agent-selector-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;font-size:14px;color:var(--text-muted);cursor:pointer;transition:color .15s;white-space:nowrap;font-family:var(--font)}.agent-selector-btn svg{transition:transform .15s ease}.agent-selector-btn[aria-expanded=true] svg{transform:rotate(180deg)}.agent-selector-btn:hover:not(:disabled){color:var(--text)}.agent-selector-btn:disabled{opacity:.5;cursor:default}.agent-dropdown{position:absolute;bottom:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 24px #00000014;min-width:220px;max-height:280px;overflow-y:auto;z-index:80;padding:4px;display:flex;flex-direction:column;gap:2px}.agent-dropdown-item{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;width:100%;background:none;border:none;cursor:pointer;padding:8px 12px;border-radius:8px;font-family:var(--font);text-align:left;transition:background .15s}.agent-dropdown-item:hover,.agent-dropdown-item.selected{background:#f0f0f0}.agent-dropdown-name{font-size:14px;color:var(--text)}.agent-dropdown-desc{font-size:12px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:196px}.composer-row2-left{display:flex;align-items:center;gap:8px;min-width:0}.cwd-popup.drop-down,.agent-dropdown.drop-down{bottom:auto;top:calc(100% + 6px)}.cwd-popup.drop-up,.agent-dropdown.drop-up{top:auto;bottom:calc(100% + 6px)}.cwd-chip{display:inline-flex;align-items:center;background:#f0f0f0;border-radius:8px;height:32px;overflow:hidden;max-width:220px}.cwd-chip-body{display:inline-flex;align-items:center;gap:6px;border:none;background:none;cursor:pointer;color:#333;font-size:13px;font-family:var(--font);padding:0 4px 0 10px;min-width:0}.cwd-chip-name{color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cwd-chip-x{border:none;background:none;cursor:pointer;color:#555;display:inline-flex;align-items:center;padding:0 8px 0 4px;height:100%}.cwd-chip-x:hover{color:#000}.cwd-chip-body--static{cursor:default;padding-right:10px}.cwd-popup{position:absolute;bottom:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 4px 24px #00000014;width:340px;padding:6px;max-height:min(320px,50vh);overflow-y:auto;z-index:80}.cwd-popup-label{font-size:12px;color:var(--text-faint);padding:8px 12px 6px;-webkit-user-select:none;user-select:none}.cwd-popup-recents{margin-top:4px}.cwd-popup-recent-label{font-size:11px;color:var(--text-faint);padding:6px 12px 2px;-webkit-user-select:none;user-select:none}.cwd-popup-item{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;cursor:pointer;padding:7px 12px;border-radius:8px;color:var(--text-muted);font-family:var(--font);text-align:left;transition:background .1s}.cwd-popup-item:hover{background:#f0f0f0}.cwd-popup-item-text{font-family:SFMono-Regular,Consolas,monospace;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.composer-footer{width:100%;max-width:768px;text-align:center;font-size:12px;color:var(--text-faint);padding-bottom:8px;-webkit-user-select:none;user-select:none}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.scroll-to-bottom{position:absolute;bottom:16px;right:calc((100% - min(768px,100% - 32px))/2 + 12px);width:36px;height:36px;border-radius:10px;background:#fff;border:1px solid var(--border);box-shadow:0 2px 8px #0000001a;color:#111;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:5;transition:box-shadow .15s,color .15s}.scroll-to-bottom:hover{background:#f0f0f0;box-shadow:0 3px 12px #00000026}.new-chat-view{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:24px;gap:20px}.new-chat-center{display:flex;flex-direction:column;align-items:center;gap:22px;width:100%;max-width:760px}.greeting{font-family:var(--font-serif);font-size:48px;font-weight:400;color:var(--text);text-align:center}.new-chat-loading{font-size:13px;color:var(--text-faint)}.new-chat-composer{width:100%;max-width:760px}.new-chat-composer .composer-wrap{padding:0;gap:4px;padding-bottom:env(safe-area-inset-bottom)}.error-msg{color:#ef4444;font-size:13px;text-align:center}*{scrollbar-width:thin;scrollbar-color:transparent transparent}*:hover{scrollbar-color:#d9d9d9 transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}*:hover::-webkit-scrollbar-thumb{background:#d9d9d9}*::-webkit-scrollbar-track{background:transparent}.tool-group-summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:14px;-webkit-user-select:none;user-select:none;padding:2px 0}.tool-group-summary::-webkit-details-marker{display:none}.tool-group-summary:hover .tool-group-text{color:var(--text)}.tool-group-text{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.tool-group-chevron{color:var(--text-faint);transition:transform .15s ease;flex-shrink:0}.tool-group[open]>.tool-group-summary .tool-group-chevron{transform:rotate(180deg)}.agent-meta-table{width:100%;border-collapse:collapse;margin-bottom:14px;font-size:14px;line-height:1.5}.agent-meta-table th{width:1%;white-space:nowrap;text-align:left;font-weight:600;color:var(--text-muted);padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:top}.agent-meta-table td{padding:8px 12px;border-bottom:1px solid #f2f2f2;vertical-align:top;color:var(--text);word-break:break-word}.agent-meta-table tr:last-child th,.agent-meta-table tr:last-child td{border-bottom:none}.history-body{display:flex;flex-direction:column;gap:12px}.history-filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.history-filter{flex:1;min-width:180px}.history-clear-btn{border:none;background:none;cursor:pointer;font-family:var(--font);font-size:13px;color:var(--text-muted);padding:8px 4px}.history-clear-btn:hover{color:var(--text)}.history-list{min-height:120px;max-height:46vh;overflow-y:auto;border:1px solid var(--border);border-radius:12px}.history-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:none;background:none;cursor:pointer;text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);font-family:var(--font)}.history-item:last-of-type{border-bottom:none}.history-item:hover{background:#fafafa}.history-item-id{font-family:SF Mono,Consolas,monospace;font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item-time{font-size:12px;color:var(--text-muted);flex-shrink:0}.history-note{margin:0;padding:16px;font-size:13px;color:var(--text-faint);text-align:center}.collapse-btn{width:32px;height:32px;background:none;border:none;border-radius:8px;color:var(--text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.collapse-btn:hover{background:#f0f0f0;color:var(--text-muted)}.sidebar{transition:margin-left .2s ease}@media(min-width:901px){.layout.collapsed .sidebar{margin-left:calc(-1 * var(--sidebar-w))}.layout.collapsed .sidebar-toggle{display:flex}.layout.collapsed .chat-header,.layout.collapsed .new-chat-view{padding-left:56px}}.sidebar-toggle{display:none;position:fixed;top:calc(10px + var(--safe-top));left:12px;z-index:18;width:32px;height:32px;border:none;border-radius:8px;background:none;color:var(--text-faint);cursor:pointer;transition:color .15s,background .15s;align-items:center;justify-content:center}.sidebar-toggle:hover{background:#f0f0f0;color:var(--text)}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:19;background:#1a191559}@media(max-width:900px){.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:20;transform:translate(-100%);transition:transform .2s ease}.sidebar.open{transform:translate(0);box-shadow:0 0 32px #0000002e}.sidebar-toggle{display:flex}.sidebar-backdrop{display:block}.main-pane{width:100%}.page-container{padding-top:calc(56px + var(--safe-top))}.chat-header{padding-left:56px}.composer-wrap{padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.composer-hint{display:none}.agent-badge-mobile{display:block}.agent-selector-btn .agent-selector-label{display:none}.cwd-chip-name{max-width:30vw}.scroll-to-bottom{right:24px}.collapse-btn{display:none}.layout.collapsed .sidebar{margin-left:0}}@media(max-width:640px){.msg{padding:4px 12px}.msg-assistant{padding:0 12px}.bubble{max-width:90%}.greeting{font-size:34px}.new-chat-view{padding:16px}.meter-track{width:72px}.message-list{padding:calc(64px + var(--safe-top)) 0 12px}.composer{border-radius:20px}}@media(pointer:coarse){.session-item{height:40px}.send-btn,.stop-btn{width:40px;height:40px}.agent-selector-btn{min-width:40px;min-height:40px;justify-content:center}}.sidebar-nav-row{margin:1px 8px;width:calc(100% - 16px);height:36px;border-radius:8px;border:none;background:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:0 10px;font-size:15px;font-family:var(--font);color:var(--text);transition:background .1s}.sidebar-nav-row:hover{background:#f0f0f0}.sidebar-nav-row:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.sidebar-nav-row.active{background:#ececec;font-weight:500}.sidebar-nav-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.page-container{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:calc(48px + var(--safe-top)) 32px 0}.page-scroll{flex:1;overflow-y:auto;margin:0 -32px;padding:0 32px 32px}.layout--floating .page-top{position:relative;z-index:1;margin:calc(-48px - var(--safe-top)) -32px -28px;padding:calc(48px + var(--safe-top)) 32px 16px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}@media(max-width:900px){.layout--floating .page-top{margin-top:calc(-56px - var(--safe-top));padding-top:calc(56px + var(--safe-top))}}@media(max-width:640px){.layout--floating .page-top{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}}body.tuan-floating-noglass .page-top{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none}.page-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;width:100%;max-width:1100px;margin-left:auto;margin-right:auto}.page-title{font-family:var(--font-serif);font-size:34px;font-weight:500;color:var(--text)}.page-action-btn{background:#111;color:#fff;border:none;border-radius:10px;padding:10px 18px;font-size:14.5px;font-weight:500;font-family:var(--font);cursor:pointer;transition:background .15s;white-space:nowrap}.page-action-btn:hover{background:#333}.page-action-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.page-search-wrap{position:relative;width:100%;max-width:1100px;margin:0 auto}.page-search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;display:flex;align-items:center}.page-search-input{width:100%;height:48px;border-radius:12px;border:1px solid var(--border);background:#fff;padding:0 16px 0 44px;font-size:15px;font-family:var(--font);color:var(--text);outline:none;transition:border-color .15s}.page-search-input::placeholder{color:var(--text-muted)}.page-search-input:focus{border-color:#111}.page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-top:28px;max-width:1100px;margin-left:auto;margin-right:auto}.page-card{background:#fff;border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s;position:relative}.page-card:hover{border-color:#d9d9d9;box-shadow:0 2px 8px #0000000d}@property --card-border-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.page-card--active{border-width:2px;border-color:transparent;background:linear-gradient(#fff,#fff) padding-box,conic-gradient(from var(--card-border-angle),#b9dcc3 0deg,#1f8a52 30deg,#4cb87d 60deg,#b9dcc3 100deg,#b9dcc3 360deg) border-box}.page-card--active:hover{border-color:transparent;animation:card-border-spin 4s linear infinite}@keyframes card-border-spin{to{--card-border-angle: 360deg}}.page-card--locked{filter:grayscale(1)}.page-card-preview{padding:18px 44px 18px 18px;min-height:120px;flex:1;border-bottom:1px solid var(--border);background:#fafafa;border-radius:11px 11px 0 0;position:relative}.artifact-card-thumb{width:100%;height:84px;object-fit:cover;border-radius:8px;display:block}.artifact-card-filetype{display:flex;align-items:center;justify-content:center;height:84px;color:var(--text-faint)}.card-more-btn{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:6px;border:none;background:none;color:var(--text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s;z-index:2}.card-more-btn:hover{background:#e7e7e7}.card-context-menu{position:absolute;top:40px;right:10px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 24px #0000001a;min-width:180px;padding:4px;z-index:90}.page-card:has(.card-context-menu){z-index:95}.page-card-prompt-text{font-family:var(--font-serif);font-size:13.5px;color:var(--text-muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.page-card-footer{padding:12px 44px 12px 16px;display:flex;flex-direction:column;gap:3px}.page-card-name{font-size:15.5px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px}.page-card-name--muted{color:var(--text-faint)}.page-card-source{font-family:SFMono-Regular,Consolas,monospace;font-size:11px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-card-badge{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;max-width:100%;background:#f4f4f4;border-radius:6px;padding:2px 8px;font-size:11.5px;color:var(--text-muted)}.page-card-badge>svg{flex-shrink:0}.page-card-badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-card-meta{font-size:12px;color:var(--text-faint)}.page-empty{max-width:1100px;margin:48px auto 0;text-align:center;color:var(--text-muted);font-size:15px}.search-status{max-width:1100px;margin:28px auto 0;font-size:12px;color:var(--text-faint)}.search-list{max-width:1100px;margin:28px auto 0;display:flex;flex-direction:column;gap:8px;padding-bottom:24px}.search-status+.search-list{margin-top:8px}.search-result{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .15s,box-shadow .15s}.search-result:hover{border-color:#d9d9d9;box-shadow:0 2px 8px #0000000d}.search-row-head{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:transparent;border:none;padding:12px 14px;cursor:pointer}.search-row-head:hover{background:#fafafa}.search-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.search-row-title{font-size:14.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-row-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--text-faint)}.search-row-open{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;color:var(--text-faint)}.search-row-head:hover .search-row-open{color:var(--text-muted);background:#f0f0f0}.search-hit-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:none;border-top:1px solid var(--border);padding:9px 14px;cursor:pointer}.search-hit-row:hover{background:#fafafa}.search-hit-snippet{flex:1;min-width:0;font-size:13px;color:var(--text-muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-hit-open{flex-shrink:0;display:flex;align-items:center;color:var(--text-faint)}.search-hit-mark{background:#fde68a;color:inherit;border-radius:3px;padding:0 1px}.search-more{display:block;padding:8px 14px;font-size:12px;color:var(--text-faint);border-top:1px solid var(--border);background:#fafafa}.msg.msg--found{animation:msg-found-pulse 2.2s ease-out;border-radius:12px}@keyframes msg-found-pulse{0%,30%{background:#fde68a80;box-shadow:0 0 0 6px #fde68a38}to{background:transparent;box-shadow:0 0 0 6px transparent}}.locked-pill{display:inline-flex;align-items:center;background:#ececec;color:#9a9a9a;font-size:11px;font-weight:500;border-radius:999px;padding:1px 7px;flex-shrink:0}.schedule-actions{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}.schedule-action-btn{background:none;border:none;padding:0;font-size:12.5px;font-family:var(--font);color:var(--text-muted);cursor:pointer;transition:color .1s}.schedule-action-btn:hover:not(:disabled){color:var(--text)}.schedule-action-btn:disabled{opacity:.45;cursor:default}.schedule-action-btn--danger:hover:not(:disabled){color:#c0392b}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a191566;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal-card{background:#fff;color:var(--text);border-radius:16px;box-shadow:0 8px 48px #00000026;width:min(520px,calc(100vw - 32px));max-height:80vh;display:flex;flex-direction:column}.modal-header{padding:20px 24px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.modal-title{font-family:var(--font-serif);font-size:22px;font-weight:500;color:var(--text)}.modal-body{padding:16px 24px;overflow-y:auto;overflow-x:visible;flex:1}.modal-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.modal-label{font-size:13px;color:var(--text-muted);font-weight:400}.modal-input{font-size:14.5px;font-family:var(--font);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;background:#fff;outline:none;transition:border-color .15s;width:100%}.modal-input:focus{border-color:#111}.modal-input--mono{font-family:SFMono-Regular,Consolas,monospace;font-size:13px}.modal-textarea{resize:vertical;min-height:96px}.modal-caption{font-size:11px;color:var(--text-faint);font-family:SFMono-Regular,Consolas,monospace}.provider-token-row{display:flex;gap:8px;align-items:center;margin-bottom:6px}.provider-token-row .modal-input{flex:1;min-width:0}.provider-rotation-field{margin-top:8px}.sandbox-mount-row{display:flex;gap:6px;align-items:center;margin-bottom:6px}.sandbox-mount-row .modal-input{flex:1;min-width:0}.sandbox-mount-arrow{color:var(--text-muted);flex:0 0 auto}.sandbox-mount-row .custom-dropdown-wrap{flex:0 0 140px;width:140px}.modal-segmented{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.modal-segment-btn{flex:1;border:none;background:none;padding:7px 0;font-size:14px;font-family:var(--font);color:var(--text-muted);cursor:pointer;transition:background .1s,color .1s}.modal-segment-btn+.modal-segment-btn{border-left:1px solid var(--border)}.modal-segment-btn.active{background:#f0f0f0;color:var(--text);font-weight:500}.modal-row{display:flex;gap:8px;align-items:flex-start}.modal-input--short{width:80px;flex-shrink:0}.modal-input--unit{flex:1}.modal-error{font-size:13px;color:#c0392b;margin-bottom:12px}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:12px 24px 16px;border-top:1px solid var(--border);flex-shrink:0}.modal-cancel-btn{background:none;border:none;font-size:14.5px;font-family:var(--font);color:var(--text-muted);cursor:pointer;padding:8px 12px;border-radius:8px;transition:color .1s,background .1s}.modal-cancel-btn:hover{color:var(--text);background:#f0f0f0}.modal-submit-btn{background:#111;color:#fff;border:none;border-radius:10px;padding:10px 20px;font-size:14.5px;font-weight:500;font-family:var(--font);cursor:pointer;transition:background .15s}.modal-submit-btn:hover:not(:disabled){background:#333}.modal-submit-btn:disabled{opacity:.5;cursor:default}.path-input-wrap{position:relative;width:100%}.path-input-field{width:100%;font-size:13px;font-family:SFMono-Regular,Consolas,monospace;padding:8px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);outline:none;transition:border-color .15s;box-sizing:border-box}.path-input-field:focus{border-color:#111}.path-input-field::placeholder{color:var(--text-muted)}.path-input-list--inline{position:static;border:1px solid var(--border);border-radius:12px;box-shadow:none;margin-top:6px}.path-input-list{background:#fff;border:1px solid var(--border);border-radius:12px;max-height:180px;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:2px}.path-input-item{display:flex;align-items:center;gap:8px;flex-shrink:0;width:100%;background:none;border:none;border-radius:8px;cursor:pointer;padding:7px 10px;font-family:SFMono-Regular,Consolas,monospace;font-size:13px;color:var(--text-muted);text-align:left;transition:background .1s}.path-input-item:hover,.path-input-item--hl{background:#f0f0f0}.path-input-item-text{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.custom-dropdown-wrap{position:relative;width:100%}.custom-dropdown-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:#fff;border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:14px;font-family:var(--font);color:var(--text);cursor:pointer;transition:border-color .15s;text-align:left}.custom-dropdown-btn:hover{border-color:#c8c6bd}.custom-dropdown-btn:focus-visible{outline:none;border-color:#111}.custom-dropdown-menu{background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 24px #00000014;max-height:240px;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:3px}.custom-dropdown-menu--absolute{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:80}.custom-dropdown-menu--up{top:auto;bottom:calc(100% + 4px)}.custom-dropdown-menu--inline{position:static;margin-top:4px;box-shadow:0 2px 12px #0000000f}.custom-dropdown-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;background:none;border:none;border-radius:7px;cursor:pointer;padding:6px 10px;font-family:var(--font);text-align:left;transition:background .15s;line-height:1.4}.custom-dropdown-item:hover{background:#f0f0f0}.custom-dropdown-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.custom-dropdown-item--selected{background:#f0f0f0}.custom-dropdown-item--disabled{opacity:.4;cursor:not-allowed}.dtp{position:relative}.dtp-panel{margin-top:6px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 24px #00000014;padding:10px;width:268px}.dtp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.dtp-month{font-size:13.5px;font-weight:600;color:var(--text)}.dtp-nav{width:28px;height:28px;border:none;background:none;border-radius:7px;cursor:pointer;color:var(--text-muted);font-size:16px;line-height:1}.dtp-nav:hover{background:#f0f0f0}.dtp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dtp-weekday{text-align:center;font-size:10.5px;color:var(--text-faint);padding:2px 0 4px;-webkit-user-select:none;user-select:none}.dtp-day{height:30px;border:none;background:none;border-radius:7px;cursor:pointer;font-size:13px;color:var(--text);font-family:var(--font)}.dtp-day:hover{background:#f0f0f0}.dtp-day--today{box-shadow:inset 0 0 0 1px var(--border)}.dtp-day--selected,.dtp-day--selected:hover{background:#111;color:#fff}.dtp-time-row{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.dtp-time-label{font-size:12.5px;color:var(--text-muted);flex:1}.dtp-time-input{width:72px;font-size:13.5px;font-family:var(--font);border:1px solid var(--border);border-radius:7px;padding:4px 8px;text-align:center}.dtp-time-input:focus{outline:none;border-color:#111}.dtp-done{border:none;background:#111;color:#fff;font-size:12.5px;border-radius:7px;padding:5px 12px;cursor:pointer;font-family:var(--font)}.dtp-done:hover{background:#000}.custom-dropdown-item-label{font-size:14px;color:var(--text)}.custom-dropdown-item-caption{font-size:12px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}@media(max-width:640px){.page-container{padding:calc(56px + var(--safe-top)) 16px 0}.page-title{font-size:28px}.page-header-row{margin-bottom:16px}}.page-card-prompt-text--empty{color:var(--text-faint);font-style:italic}.project-popup-empty{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px}.project-popup-empty-text{font-size:13px;color:var(--text-muted)}.project-popup-create-link{border:none;background:none;padding:0;font-size:13px;font-family:var(--font);color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.project-popup-create-link:hover{color:var(--accent-hover)}.cwd-popup-item--selected{background:#f0f0f0}.project-popup-item-inner{display:flex;flex-direction:column;min-width:0;flex:1}.project-popup-item-name{font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-popup-item-cwd{font-family:SFMono-Regular,Consolas,monospace;font-size:11px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-popup-item--locked{opacity:.45;cursor:not-allowed}.project-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:400;background:#f0f0f0;color:var(--text-muted);border-radius:999px;padding:2px 9px;flex-shrink:0;white-space:nowrap}.plus-menu{position:absolute;left:0;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 4px 24px #00000014;width:260px;padding:6px;max-height:min(320px,50vh);overflow-y:auto;z-index:80}.plus-menu.drop-down{bottom:auto;top:calc(100% + 6px)}.plus-menu.drop-up{top:auto;bottom:calc(100% + 6px)}.plus-menu-item{display:flex;align-items:center;gap:9px;width:100%;background:none;border:none;cursor:pointer;padding:8px 10px;border-radius:8px;font-size:14px;font-family:var(--font);color:var(--text);text-align:left;transition:background .1s}.plus-menu-item:hover{background:#f0f0f0}.plus-menu-item:disabled{opacity:.5;cursor:not-allowed}.plus-menu-item-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plus-menu-item-chevron{color:var(--text-faint);flex-shrink:0}.plus-menu-empty{font-size:13px;color:var(--text-faint);padding:10px 12px}.plus-toggle{width:30px;height:18px;border-radius:999px;background:#d4d4d4;position:relative;flex-shrink:0;transition:background .15s}.plus-toggle.on{background:#1a1a1a}.plus-toggle-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .15s}.plus-toggle.on .plus-toggle-knob{left:14px}.page-card-prompt-text--mono{font-family:SFMono-Regular,Consolas,monospace;font-size:12.5px;word-break:break-all}.multi-select-item{flex-direction:row;align-items:flex-start;gap:9px}.multi-select-item-text{display:flex;flex-direction:column;min-width:0;flex:1}.multi-select-check{width:16px;height:16px;border:1.5px solid #c9c9c9;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;transition:background .1s,border-color .1s}.multi-select-check.checked{background:#1a1a1a;border-color:#1a1a1a}.multi-select-empty{font-size:13px;color:var(--text-faint);padding:10px 12px}.md-table-wrap{overflow-x:auto;margin:12px 0}.md table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:1.5}.md th{text-align:left;font-weight:600;color:var(--text);padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.md td{padding:8px 12px;border-bottom:1px solid #f2f2f2;vertical-align:top;color:var(--text)}.md tr:last-child td{border-bottom:none}.md blockquote{margin:10px 0;padding:2px 0 2px 14px;border-left:3px solid #e0e0e0;color:var(--text-muted)}.md blockquote>:first-child{margin-top:0}.md blockquote>:last-child{margin-bottom:0}.md hr{border:none;height:1px;background:var(--border);margin:18px 0}.md li>ul,.md li>ol{margin:4px 0 4px 4px}.md li.md-task{list-style:none;margin-left:-18px}.md li.md-task input[type=checkbox]{width:15px;height:15px;margin-right:7px;vertical-align:-2px;accent-color:#111111}.msg-user--queued{animation:title-fade 1.6s ease-in-out infinite}.tool-node--done{display:flex;align-items:center}.tool-node-label--done{color:var(--text)}.confirm-message{font-size:14.5px;color:var(--text-muted);line-height:1.55}.modal-submit-btn--danger{background:#c0392b}.modal-submit-btn--danger:hover{background:#a93226}.page-retry-btn{background:none;border:none;padding:0;font-size:15px;font-family:var(--font);color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.page-retry-btn:hover{color:var(--accent-hover)}.tools-dialog-hint{font-size:14px;color:var(--text-muted);padding:6px 0 10px}.tools-list{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.tools-list-row{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:10px;transition:background .1s}.tools-list-row:hover{background:#fafafa}.tools-list-text{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}.tools-list-name{font-family:SFMono-Regular,Consolas,monospace;font-size:13px;color:var(--text)}.tools-list-desc{font-size:12.5px;color:var(--text-faint);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}button.plus-toggle{border:none;padding:0;cursor:pointer}.tools-dialog-scope{font-size:12.5px;color:var(--text-faint);margin-top:2px}.connector-projects{display:flex;flex-wrap:wrap;gap:6px;margin:3px 0}.msg-actions{display:flex;margin-top:2px}.msg-assistant .msg-actions{margin-top:6px}.msg-copy-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:7px;background:transparent;color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity .15s,background .15s,color .15s}.msg:hover .msg-copy-btn,.msg-copy-btn:focus-visible,.msg-copy-btn.copied{opacity:1}.msg-copy-btn:hover{background:#ededed;color:var(--text)}@media(hover:none){.msg-copy-btn{opacity:.6}}.msg-user-col{position:relative}.queued-remove{position:absolute;top:-4px;right:16px;width:22px;height:22px;border-radius:50%;background:#111;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000040;z-index:2}.chat-load-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted);font-size:14px}.chat-load-spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--text-muted);border-radius:50%;animation:spin .7s linear infinite}.chat-load-error{color:var(--text-muted);font-size:14px;margin:0}.chat-load-retry{padding:6px 16px;border-radius:8px;border:1px solid var(--border);background:none;cursor:pointer;font-family:var(--font);font-size:14px;color:var(--text);text-decoration:none;transition:background .1s}.chat-load-retry:hover{background:var(--user-bubble)}.chat-load-retry:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.msg-show{padding:0 20px 4px;display:flex;justify-content:flex-start}.show-card{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid #e8e8e8;border-radius:10px;padding:10px 14px;max-width:320px;min-width:200px;box-shadow:0 1px 4px #0000000f}.show-card-img{width:48px;height:48px;object-fit:cover;border-radius:6px;flex-shrink:0;background:#f5f5f5}.show-card-icon{width:48px;height:48px;border-radius:6px;background:#f5f5f5;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#888}.show-card-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.show-card-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#111}.show-card-size{font-size:11px;color:#999}.show-card-download{flex-shrink:0;width:28px;height:28px;border:none;padding:0;border-radius:6px;background:#f0f0f0;color:#555;display:flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer;transition:background .12s}.show-card-download:hover{background:#e0e0e0}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000d9;-webkit-user-select:none;user-select:none}.lightbox-img{position:absolute;top:50%;left:50%;max-width:90vw;max-height:90vh;object-fit:contain;border-radius:4px;transform-origin:center center;pointer-events:all;-webkit-user-drag:none}.lightbox-controls{position:absolute;top:16px;right:16px;z-index:2;display:flex;gap:6px;padding:5px;border-radius:12px;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lightbox-controls button{width:32px;height:32px;border-radius:8px;border:none;background:#ffffff2e;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s;padding:0;line-height:1}.lightbox-controls button:hover{background:#ffffff4d}.layout--floating .sidebar{background:var(--glass-fill-strong);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow)}.layout--floating{position:relative;z-index:0}.layout--floating .floating-bg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:-1}.layout--floating .floating-bg:before{content:"";position:absolute;inset:calc(-2 * var(--bg-blur, 0px));background-image:var(--chat-bg-image, none);background-size:cover;background-position:center;filter:blur(var(--bg-blur, 0px))}.layout--floating .floating-bg-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:rgba(255,255,255,var(--bg-scrim, 0));pointer-events:none}.layout--floating .main-pane{background:transparent}.layout--floating .chat-pane{background-image:none}.layout--floating .chat-header{position:fixed;background:var(--glass-fill);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);transform:translateZ(0)}@media(min-width:901px){.layout--floating .chat-header{padding-left:calc(var(--sidebar-w) + 20px)}.layout--floating .sidebar{position:relative;z-index:6}}.layout--floating .message-list{align-items:stretch}.layout--floating .msg-user-col{width:fit-content;max-width:min(76%,560px);margin:6px 0 6px auto;gap:4px}.layout--floating .msg-user-col .bubble{background:var(--glass-fill-strong);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--glass-radius);padding:10px 16px;max-width:none;contain:layout}.layout--floating .msg-user-col .bubble--agent{background:var(--glass-fill);border-style:dashed}.layout--floating .msg-user-col .msg-actions{padding:0 4px}.layout--floating .msg-synthetic{max-width:none}.layout--floating .msg-synthetic .bubble--command{width:fit-content;max-width:min(76%,560px);margin:6px 0;padding:10px 16px;background:var(--glass-fill-strong);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--glass-radius)}.layout--floating .msg-assistant--card{width:fit-content;max-width:min(82%,680px);margin:6px 24px;padding:0}.layout--floating .msg-card{background:var(--glass-fill);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--glass-radius);padding:12px 20px;contain:layout}.layout--floating .page-card,.layout--floating .search-result,.layout--floating .page-card:hover{box-shadow:var(--glass-shadow)}.layout--floating .msg-assistant--card .msg-actions{padding:0 4px}@media(max-width:640px){.layout--floating .msg-assistant--card{margin:6px 12px}}.layout--floating-centered .msg-user-col,.layout--floating-centered .msg-assistant--card{margin-left:auto;margin-right:auto}.layout--floating-centered .msg-synthetic{align-items:center}.layout--floating-centered .msg-system{margin-left:auto;margin-right:auto;text-align:center}.layout--floating-centered .msg-tool,.layout--floating-centered .thinking{width:fit-content;max-width:min(82%,680px);margin-left:auto;margin-right:auto}.layout--floating-centered .msg-show{margin-left:auto;margin-right:auto;justify-content:center}.layout--floating .msg-user .bubble-attachments{align-items:center;margin-top:4px;margin-bottom:0}.layout--floating .msg-show--incard{margin-top:10px;padding:0}.layout--floating .msg-show--incard .show-card{background:#ffffff80;border:1px solid var(--glass-border);box-shadow:none}.layout--floating .composer-wrap{background:transparent}.layout--floating .composer{background:#ffffff80;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);will-change:backdrop-filter}.layout--floating .session-context-menu,.layout--floating .gear-menu,.layout--floating .context-popover{background:var(--glass-fill-strong);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.layout--floating .session-context-item:hover,.layout--floating .gear-menu-item:hover:not(:disabled){background:#ffffff80}.layout--floating .composer-project-btn{background:#ffffff73}.layout--floating .composer-project-btn:hover{background:#fff9}.layout--floating .new-chat-plus-circle{background:#fff6}.layout--floating .composer-add-btn:hover,.layout--floating .mic-btn:hover,.layout--floating .sidebar-toggle:hover{background:#ffffff80}.layout--floating .send-btn:not(:disabled){background:#111827b8}.layout--floating .send-btn:hover:not(:disabled){background:#111827d9}body.tuan-floating .modal-card{background:var(--glass-fill-strong);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}body.tuan-floating .modal-overlay{background:#1a191552}body.tuan-floating .modal-submit-btn{background:#111827a8}body.tuan-floating .modal-submit-btn:hover:not(:disabled){background:#111827cc}body.tuan-floating .modal-submit-btn--danger{background:#c0392ba8}body.tuan-floating .modal-submit-btn--danger:hover{background:#a93226d1}body.tuan-floating .modal-cancel-btn:hover{background:#ffffff80}.layout--floating .chat-title,.layout--floating .page-title{text-shadow:0 1px 4px rgba(0,0,0,.35)}body.tuan-floating-noglass{--glass-fill: #ffffff;--glass-fill-strong: #ffffff;--glass-blur: none;--glass-border: var(--border);--glass-shadow: 0 1px 3px rgba(17, 24, 39, .1)}body.tuan-floating-noglass .chat-header{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}body.tuan-floating-noglass .composer{background:#fff}body.tuan-floating-noglass .chat-title{text-shadow:none}.appearance-slider-row{display:flex;align-items:center;gap:10px;padding:6px 0 10px}.appearance-slider{flex:1;accent-color:#111;height:4px;cursor:pointer}.appearance-slider-value{font-size:12px;color:var(--text-muted);min-width:36px;text-align:right}body.tuan-bg-dark:not(.tuan-floating-noglass){--text: #f2f2f3;--text-muted: #c4c4c6;--text-faint: #9b9ba0;--border: rgba(255, 255, 255, .16);--glass-fill: rgba(38, 38, 42, .55);--glass-fill-strong: rgba(26, 26, 30, .82);--glass-border: rgba(255, 255, 255, .16);--glass-shadow: 0 10px 30px rgba(0, 0, 0, .38), 0 0 0 .5px rgba(255, 255, 255, .06), inset 0 1px 0 rgba(255, 255, 255, .08)}body.tuan-bg-dark:not(.tuan-floating-noglass) .sidebar{--text: #111111;--text-muted: #555555;--text-faint: #9a9a9a;--border: #e7e7e7;--glass-fill: rgba(255, 255, 255, .6);--glass-fill-strong: rgba(255, 255, 255, .82);--glass-border: rgba(255, 255, 255, .55);--glass-shadow: 0 10px 30px rgba(17, 24, 39, .1), 0 0 0 .5px rgba(17, 24, 39, .04), inset 0 1px 0 rgba(255, 255, 255, .5)}body.tuan-bg-dark:not(.tuan-floating-noglass) .sidebar-toggle:hover{background:#fff3}body.tuan-bg-dark:not(.tuan-floating-noglass) .chat-load-retry:hover{background:#fff3}body.tuan-bg-dark:not(.tuan-floating-noglass) .modal-card,body.tuan-bg-dark:not(.tuan-floating-noglass) .settings-dialog,body.tuan-bg-dark:not(.tuan-floating-noglass) .session-context-menu,body.tuan-bg-dark:not(.tuan-floating-noglass) .gear-menu,body.tuan-bg-dark:not(.tuan-floating-noglass) .context-popover,body.tuan-bg-dark:not(.tuan-floating-noglass) .agent-dropdown,body.tuan-bg-dark:not(.tuan-floating-noglass) .plus-menu,body.tuan-bg-dark:not(.tuan-floating-noglass) .cwd-popup,body.tuan-bg-dark:not(.tuan-floating-noglass) .card-context-menu,body.tuan-bg-dark:not(.tuan-floating-noglass) .custom-dropdown-menu{background:#fff;--text: #111111;--text-muted: #555555;--text-faint: #9a9a9a;--border: #e7e7e7;--glass-fill: rgba(255, 255, 255, .6);--glass-fill-strong: rgba(255, 255, 255, .82);--glass-border: rgba(255, 255, 255, .55)}body.tuan-bg-dark:not(.tuan-floating-noglass) .page-card,body.tuan-bg-dark:not(.tuan-floating-noglass) .search-result{--text: #111111;--text-muted: #555555;--text-faint: #9a9a9a;--border: #e7e7e7}body.tuan-bg-dark:not(.tuan-floating-noglass) .board-ticket-card,body.tuan-bg-dark:not(.tuan-floating-noglass) .backlog-item,body.tuan-bg-dark:not(.tuan-floating-noglass) .team-node{--text: #111111;--text-muted: #555555;--text-faint: #9a9a9a;--border: #e7e7e7;box-shadow:0 2px 8px #00000038}body.tuan-bg-dark:not(.tuan-floating-noglass) .board-col,body.tuan-bg-dark:not(.tuan-floating-noglass) .sprint-controls,body.tuan-bg-dark:not(.tuan-floating-noglass) .sprint-create-banner,body.tuan-bg-dark:not(.tuan-floating-noglass) .backlog-list{--text: #111111;--text-muted: #555555;--text-faint: #9a9a9a;--border: #e7e7e7}body.tuan-bg-dark:not(.tuan-floating-noglass) .ticket-lock-pill{background:#ffffffe6;border-color:#c4b5fd;color:#4c1d95}body.tuan-bg-dark:not(.tuan-floating-noglass) .ticket-lock-banner{background:#ffffffeb;border-color:#c4b5fd;color:#4c1d95}body.tuan-bg-dark:not(.tuan-floating-noglass) .page-search-wrap{--text: #111111;--text-muted: #555555;--text-faint: #9a9a9a;--border: #e7e7e7}body.tuan-bg-dark:not(.tuan-floating-noglass) .composer,body.tuan-bg-dark:not(.tuan-floating-noglass) .msg-show--incard .show-card{background:#26262a80}body.tuan-bg-dark:not(.tuan-floating-noglass) .tool-io,body.tuan-bg-dark:not(.tuan-floating-noglass) .md pre,body.tuan-bg-dark:not(.tuan-floating-noglass) .show-card{background:#ffffff12;border-color:#ffffff24}body.tuan-bg-dark:not(.tuan-floating-noglass) .md :not(pre)>code{background:#ffffff1a;color:var(--text)}body.tuan-bg-dark:not(.tuan-floating-noglass) .show-card-name{color:var(--text)}body.tuan-bg-dark:not(.tuan-floating-noglass) .show-card-size{color:var(--text-faint)}body.tuan-bg-dark:not(.tuan-floating-noglass) .show-card-icon,body.tuan-bg-dark:not(.tuan-floating-noglass) .show-card-img{background:#ffffff1a;color:var(--text-muted)}body.tuan-bg-dark:not(.tuan-floating-noglass) .tool-group-summary,body.tuan-bg-dark:not(.tuan-floating-noglass) .tool-node-label,body.tuan-bg-dark:not(.tuan-floating-noglass) .thinking,body.tuan-bg-dark:not(.tuan-floating-noglass) .msg-actions{text-shadow:0 1px 3px rgba(0,0,0,.45)}body.tuan-bg-dark:not(.tuan-floating-noglass) .msg-copy-btn:hover,body.tuan-bg-dark:not(.tuan-floating-noglass) .code-copy-btn:hover{background:#fff3}body.tuan-bg-dark:not(.tuan-floating-noglass) .md a{color:var(--text)}body.tuan-bg-dark:not(.tuan-floating-noglass) .md a:hover{color:#fff}.md-preview-card{width:min(840px,calc(100vw - 32px));max-height:85vh}.md-preview-tabs{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:14px;flex-shrink:0}.md-preview-tab{border:none;background:none;cursor:pointer;padding:7px 18px;font-size:13px;font-family:var(--font);color:var(--text-muted);border-right:1px solid var(--border);transition:background .15s,color .15s}.md-preview-tab:last-child{border-right:none}.md-preview-tab:hover{background:#f0f0f0;color:var(--text)}.md-preview-tab.active{background:#111;color:#fff}.md-preview-body{overflow-y:auto}.md-raw-wrap{position:relative}.md-raw-copy{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer}.md-raw-copy:hover{background:#f0f0f0}.md-raw-pre{margin:0;padding:14px 16px;font-size:12.5px;font-family:SFMono-Regular,Consolas,monospace;white-space:pre-wrap;word-break:break-word;color:var(--text);background:#f7f7f7;border-radius:8px}.file-preview-pdf{width:100%;height:70vh;border:1px solid var(--border);border-radius:8px}.file-preview-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:8px}.file-preview-table{border-collapse:collapse;font-size:12.5px;color:var(--text);width:max-content;min-width:100%}.file-preview-table th,.file-preview-table td{border:1px solid var(--border);padding:5px 10px;text-align:left;white-space:pre-wrap;vertical-align:top}.file-preview-table thead th{position:sticky;top:0;background:#f4f4f4;font-weight:600;z-index:1}.file-preview-table tbody tr:nth-child(2n){background:#fafafa}.file-preview-docx img{max-width:100%;height:auto}.md-preview-card.preview-has-comments{height:85vh}.preview-has-comments .modal-body{flex:1 1 0;min-height:0}.preview-comments-panel{flex-shrink:0;border-top:1px solid var(--border);max-height:260px;overflow-y:auto;padding:10px 24px 12px}.preview-comments-list{display:flex;flex-direction:column;gap:6px}.preview-comment-quote{font-size:12px;color:var(--text-muted);font-style:italic;border-left:3px solid var(--border);padding-left:8px;margin-bottom:4px;white-space:pre-wrap;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.preview-comment-new{padding:8px;background:#f8f8f8;border-radius:8px}body.tuan-floating .preview-comment-new{background:var(--glass-fill)}.preview-select-plus{width:28px;height:28px;border-radius:50%;border:none;background:#111;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:9999;box-shadow:0 2px 8px #00000040;padding:0}.preview-select-plus:hover{background:#333}::highlight(preview-comment){background-color:#ffc80066}.diff-review-card{width:min(1020px,96vw);height:min(88vh,920px);max-height:92vh;padding:0;display:flex;flex-direction:column;position:relative;overflow:hidden}.diff-review-card .modal-header{display:flex;align-items:center;gap:12px;padding:14px 18px}.diff-review-card .modal-title{font-size:17px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diff-review-card .modal-footer{padding:10px 18px}.diff-stale-banner{padding:8px 18px;font-size:12.5px;background:#c88e0024;border-bottom:1px solid var(--border);color:var(--text)}.diff-review-body{flex:1;display:flex;min-height:0;position:relative}.diff-sidebar-toggle{width:32px;height:32px;flex:none;background:none;border:none;border-radius:8px;color:var(--text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center}.diff-sidebar-toggle:hover{background:#7f7f7f1f;color:var(--text-muted)}.diff-review-tree{width:290px;flex:none;overflow:auto;border-right:1px solid var(--border);padding:8px;transition:margin-left .2s ease}.diff-review-body:not(.tree-open) .diff-review-tree{margin-left:-290px}.diff-review-main{flex:1;overflow:auto;min-width:0;container-type:inline-size}.diff-tree-backdrop{display:none;border:0;padding:0}.diff-tree-file,.diff-tree-dirname{display:flex;gap:7px;align-items:center;width:100%;background:none;border:0;color:var(--text);text-align:left;padding:5px 8px;cursor:pointer;font-size:12.5px;border-radius:8px;line-height:1.3}.diff-tree-dirname{color:var(--text-muted);font-weight:500}.diff-tree-file:hover,.diff-tree-dirname:hover{background:#7f7f7f1a}.diff-tree-file.active{background:#7f7f7f29;font-weight:500}.diff-tree-chevron{flex:none;color:var(--text-faint)}.diff-tree-folder{flex:none;color:var(--text-muted)}.diff-tree-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diff-badge{width:17px;height:17px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;font-size:10px;font-weight:700;font-family:var(--font)}.diff-badge--modified{color:#9a6700;background:#bf870029}.diff-badge--added{color:#1a7f37;background:#2ea04329}.diff-badge--deleted{color:#cf222e;background:#d1242f24}.diff-badge--renamed{color:#6639ba;background:#8250df26}.diff-badge--binary{color:var(--text-muted);background:#7f7f7f26}.diff-tree-stat{margin-left:auto;white-space:nowrap;font-size:11px;font-variant-numeric:tabular-nums}.diff-tree-badge{background:var(--accent);color:#fff;border-radius:10px;padding:0 6px;font-size:10px;line-height:16px}.diff-file-header{position:sticky;top:0;left:0;z-index:1;display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:12.5px;font-weight:500;color:var(--text);background:#fff;border-bottom:1px solid var(--border)}body.tuan-floating:not(.tuan-floating-noglass):not(.tuan-bg-dark) .diff-file-header{background:var(--glass-fill-strong);backdrop-filter:var(--glass-blur, none);-webkit-backdrop-filter:var(--glass-blur, none)}.diff-file-header .diff-tree-stat{font-size:11.5px}.diff-file-view{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.55;padding-bottom:16px;min-width:max-content}.diff-row{display:flex;white-space:pre}.diff-add{background:#2ea04321}.diff-del{background:#d1242f1f}.diff-row:hover{background:#7f7f7f14}.diff-affordance{width:22px;flex:none;display:inline-flex;align-items:center;justify-content:center;align-self:center}.diff-comment-add{width:17px;height:17px;flex:none;border:0;border-radius:4px;background:var(--accent);color:#fff;cursor:pointer;opacity:0;padding:0;display:inline-flex;align-items:center;justify-content:center}.diff-row:hover .diff-comment-add{opacity:1}.diff-thread-toggle{display:inline-flex;align-items:center;gap:1px;border:0;background:none;cursor:pointer;color:var(--accent);padding:0;font-family:var(--font);font-size:10px}.diff-thread-count{font-weight:600}.diff-gutter{width:40px;flex:none;text-align:right;padding-right:8px;color:var(--text-faint);-webkit-user-select:none;user-select:none}.diff-sign{width:14px;flex:none;text-align:center;color:var(--text-faint)}.diff-code{flex:1;padding-right:12px;-webkit-user-select:text;user-select:text}.diff-fold{width:100%;border:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#7f7f7f0f;color:var(--text-muted);cursor:pointer;padding:4px;font-size:11px;font-family:var(--font)}.diff-fold:hover{background:#7f7f7f1f;color:var(--text)}.diff-thread-wrap{font-family:var(--font);padding:8px 16px 10px 62px;background:#7f7f7f0d;border-top:1px solid var(--border);border-bottom:1px solid var(--border);position:sticky;left:0;width:100cqw}.diff-thread{display:flex;flex-direction:column;gap:8px;max-width:760px}.diff-thread-comment{position:relative;background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px 12px}body.tuan-floating .diff-thread-comment{background:var(--glass-fill-strong)}.diff-thread-comment.draft{border-style:dashed}.diff-thread-time{display:block;font-size:11px;color:var(--text-faint);margin-bottom:3px}.diff-comment-remove{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;background:#111;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000040;z-index:2}.diff-thread-body{font-size:13px;color:var(--text);white-space:pre-wrap;word-break:break-word}.diff-thread-reply{align-self:flex-start;background:none;border:1px solid var(--border);border-radius:8px;padding:5px 12px;font-size:12.5px;color:var(--text-muted);cursor:pointer;font-family:var(--font)}.diff-thread-reply:hover{background:#7f7f7f1a;color:var(--text)}.diff-comment-composer{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:6px 6px 6px 12px;box-shadow:0 1px 4px #0000000a}.diff-comment-composer .composer-attachments{flex-basis:100%;padding:2px 0 0}body.tuan-floating .diff-comment-composer{background:var(--glass-fill-strong)}.diff-comment-composer-input{flex:1;border:0;outline:0;background:transparent;resize:none;font-family:var(--font);font-size:13px;line-height:1.5;color:var(--text);max-height:160px;padding:5px 0}.diff-comment-composer-actions{display:flex;align-items:center;gap:4px}.diff-comment-cancel{width:36px;height:36px;flex:none;border:0;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;background:none;color:var(--text-muted)}.diff-comment-cancel:hover{background:#7f7f7f1f;color:var(--text)}.diff-binary{padding:18px;color:var(--text-muted);font-family:var(--font)}.diff-review-count{margin-right:auto;font-size:12.5px;color:var(--text-muted)}@media(max-width:720px){.diff-review-card{width:96vw;height:90vh}.diff-review-tree{position:absolute;top:0;bottom:0;left:0;z-index:4;width:min(300px,82%);margin-left:0;transform:translate(-100%);transition:transform .2s ease;background:var(--glass-fill-strong, var(--bg));backdrop-filter:var(--glass-blur, none);-webkit-backdrop-filter:var(--glass-blur, none);box-shadow:0 0 32px #00000038}.diff-review-body:not(.tree-open) .diff-review-tree{margin-left:0}.diff-review-body.tree-open .diff-review-tree{transform:translate(0)}.diff-review-body.tree-open .diff-tree-backdrop{display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;background:#1a191559}}.settings-dialog{position:relative;display:flex;flex-direction:column;width:min(960px,calc(100vw - 32px));height:min(680px,calc(100vh - 64px));background:#fff;color:var(--text);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 8px 48px #00000026}.settings-body{position:relative;display:flex;flex:1 1 auto;min-height:0;overflow:hidden}.settings-nav{flex:0 0 var(--sidebar-w);display:flex;flex-direction:column;gap:2px;padding:12px 8px;border-right:none;background:var(--bg);box-sizing:border-box;overflow:hidden;transition:flex-basis .18s ease}.settings-nav--collapsed{flex-basis:56px}.settings-nav-header{height:52px;padding:0 4px 0 8px;display:flex;align-items:center;gap:8px;flex-shrink:0}.settings-nav-title{flex:1;font-family:var(--font-serif);font-size:22px;font-weight:500;letter-spacing:-.2px;color:var(--text);overflow:hidden}.settings-nav--collapsed .settings-nav-header{justify-content:center;padding:0}.settings-nav--collapsed .settings-nav-title{display:none}.settings-nav-collapse{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:none;border-radius:8px;background:transparent;color:var(--text-faint);cursor:pointer}.settings-nav-collapse:hover{background:#0000000f}.settings-nav-row{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:8px;color:var(--text-muted);background:transparent;border:none;cursor:pointer;text-align:left;font-family:inherit;font-size:15px;white-space:nowrap}.settings-nav-row:hover{background:#0000000f}.settings-nav-row.active{background:#0000001a;color:var(--text)}.settings-nav-icon{display:inline-flex;flex-shrink:0}.settings-nav-label{overflow:hidden;text-overflow:ellipsis}.settings-nav--collapsed .settings-nav-label{display:none}.settings-nav--collapsed .settings-nav-row{justify-content:center;padding:0}.settings-mobile-toggle{display:none;position:absolute;top:10px;left:10px;z-index:6;width:32px;height:32px;align-items:center;justify-content:center;border:none;border-radius:8px;background:none;color:var(--text-faint);cursor:pointer}.settings-mobile-toggle:hover{background:#f0f0f0;color:var(--text-muted)}.settings-nav-backdrop{display:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;background:#1a191559}.settings-content{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;overflow:hidden}.settings-content .page-container{height:100%}.settings-footer{display:flex;justify-content:flex-end;align-items:center;padding:12px 20px;border-top:1px solid var(--border);background:#fff;flex-shrink:0}@media(max-width:900px){.settings-dialog{width:calc(100vw - 48px);height:min(560px,calc(100vh - 96px))}.settings-footer{padding:10px 16px}.settings-mobile-toggle{display:flex}.settings-content .app-tab-section{padding-top:48px}.settings-nav,.settings-nav--collapsed{position:absolute;top:0;left:0;bottom:0;z-index:8;width:60%;min-width:264px;transform:translate(-100%);transition:transform .2s ease;border-right:none;border-radius:0 16px 16px 0}.settings-nav--open{transform:translate(0);box-shadow:0 0 32px #0000002e}.settings-nav--open~.settings-nav-backdrop{display:block}.settings-nav-collapse{display:none}.settings-nav--collapsed .settings-nav-title,.settings-nav--collapsed .settings-nav-label{display:revert}.settings-nav--collapsed .settings-nav-row{justify-content:flex-start;padding:0 10px}}.board-page{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:calc(48px + var(--safe-top)) 32px 0}.board-page-top{flex-shrink:0;margin-bottom:0}.board-page-top .page-header-row{max-width:none;margin-left:0;margin-right:0}.board-back-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;font-size:13px;color:var(--text-muted);cursor:pointer;font-family:var(--font);padding:0 0 8px;transition:color .1s}.board-back-btn:hover{color:var(--text)}.board-tab-bar{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-top:16px}.board-tab-btn{background:none;border:none;border-bottom:2px solid transparent;padding:8px 16px;margin-bottom:-1px;font-size:14px;font-family:var(--font);color:var(--text-muted);cursor:pointer;transition:color .12s,border-color .12s}.board-tab-btn:hover{color:var(--text)}.board-tab-btn.active{color:var(--text);font-weight:500;border-bottom-color:var(--accent)}.board-content{flex:1;overflow:hidden;display:flex;flex-direction:column;padding-top:12px}.layout--floating .board-content{padding-top:40px}.board-agents-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:32px}.board-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px;flex-shrink:0}.board-loading,.board-error{color:var(--text-muted);font-size:14px;padding:32px 0}.board-outer{flex:1;overflow-y:auto;padding-bottom:24px}.board-scroll{flex:1;overflow-x:auto;overflow-y:hidden;padding-bottom:16px;height:100%}.board-columns{display:flex;gap:12px;height:100%;min-height:0;align-items:flex-start;padding-bottom:8px}.board-col{background:#f7f7f7;border-radius:10px;width:260px;min-width:260px;display:flex;flex-direction:column;max-height:100%;transition:background .12s,outline .1s}.board-col--over{background:#f0f0f0;box-shadow:inset 0 0 0 2px #000}.board-col-header{padding:10px 12px 8px;display:flex;align-items:center;gap:6px;flex-shrink:0}.board-col-title{flex:1;font-size:11.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.board-col-count{font-size:11px;color:var(--text-faint)}.board-col-body{flex:1;overflow-y:auto;padding:4px 8px 8px;display:flex;flex-direction:column;gap:6px;min-height:80px}.board-ticket-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:box-shadow .12s}.board-ticket-card:hover{box-shadow:0 2px 8px #00000014}.board-ticket-card:active{cursor:grabbing}.board-ticket-card--dragging{opacity:0}.board-ticket-card--overlay{box-shadow:0 8px 24px #0000002e;cursor:grabbing;transform-origin:center}.board-ticket-title{font-size:13.5px;font-weight:500;color:var(--text);line-height:1.4;margin-bottom:6px}.board-ticket-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.board-ticket-stats{font-size:11px;color:var(--text-faint);margin-top:3px}.ticket-meta-chip{font-size:11px;color:var(--text-faint)}.board-ticket-badge{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:600;padding:1px 7px;border-radius:9px;background:#f1f5f9;color:#475569;white-space:nowrap}.board-ticket-badge--blocked{background:#fef2f2;color:#dc2626}.board-list-title+.board-ticket-badge{margin-left:6px;vertical-align:middle}.ticket-priority{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.ticket-priority--urgent{background:#fee2e2;color:#b91c1c}.ticket-priority--high{background:#ffedd5;color:#c2410c}.ticket-priority--medium{background:#fef9c3;color:#a16207}.ticket-priority--low{background:#f0fdf4;color:#15803d}.ticket-assignee-name{font-size:11px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.ticket-status-chip{display:inline-flex;align-items:center;font-size:12px;font-weight:500;padding:2px 9px;border-radius:10px;white-space:nowrap}.ticket-status-chip--backlog{background:#f3f4f6;color:#6b7280}.ticket-status-chip--todo{background:#eff6ff;color:#1d4ed8}.ticket-status-chip--in_progress{background:#fffbeb;color:#d97706}.ticket-status-chip--in_review{background:#f5f3ff;color:#7c3aed}.ticket-status-chip--blocked{background:#fef2f2;color:#dc2626}.ticket-status-chip--done{background:#f0fdf4;color:#15803d}.team-view{flex:1;min-height:0;display:flex;flex-direction:column;padding:8px 4px 16px}.team-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px;flex-wrap:wrap}.team-status-label{margin:0;font-size:14px;color:var(--text-muted, #555)}.page-action-btn.team-disable-btn{background:#fef2f2;color:#dc2626;border-color:#fecaca}.team-canvas{flex:1;min-height:0;overflow:auto;border-radius:14px;border:1px solid var(--border, #e7e7e7);background:#7f7f7f0a}.team-graph{position:relative}.team-edges{position:absolute;top:0;left:0;pointer-events:none;z-index:0;color:var(--text)}.team-edge{fill:none;stroke:currentColor;stroke-width:2}.team-edge--fail{stroke:#ef4444;stroke-dasharray:6 5}.team-node{position:absolute;z-index:1;box-sizing:border-box;width:172px;height:78px;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:12px 16px;border-radius:8px;border:1px solid var(--border, #e7e7e7);background:#fff;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:box-shadow .12s}.team-node:hover{box-shadow:0 2px 8px #00000014}.team-node:active{cursor:grabbing}.team-node-role{font-weight:650;font-size:14px;color:var(--role-color, #374151)}.team-node-count{font-size:12px;color:#4b5563}.team-node-state{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#9ca3af}.team-node--running{animation:team-pulse 1.4s ease-in-out infinite}.team-node--running .team-node-state{color:var(--role-color, #16a34a)}@keyframes team-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--role-color, #16a34a) 50%,transparent)}50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--role-color, #16a34a) 0%,transparent)}}.team-node--done{background:#16a34a;border-color:#15803d}.team-node--done .team-node-role{color:#fff}.team-node--done .team-node-count{color:#ffffffd9}.team-ticket-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.team-ticket-title{font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-editor-layout{flex:1;min-height:0;display:flex;flex-direction:column;gap:0;overflow:hidden;--text: #1f2937;--text-muted: #6b7280;--border: #e5e7eb}.team-editor-toolbar{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:2px 2px 12px}.team-tool-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px;border:1px solid var(--border, #e7e7e7);border-radius:8px;background:#fff;color:var(--text);font-family:var(--font);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.team-tool-btn:hover{background:#f5f5f5}.team-tool-plus{font-size:16px;line-height:1;font-weight:700;color:var(--accent, #2563eb)}.team-tool-btn--on{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb);background:#2563eb0f}.team-tool-btn--primary{background:#111;color:#fff;border-color:#111}.team-tool-btn--primary:hover:not(:disabled){background:#000}.team-tool-btn:disabled{opacity:.45;cursor:not-allowed}.team-toolbar-spacer{flex:1}.team-toolbar-msg{font-size:12px;color:#dc2626;max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-editor-settings{display:flex;gap:22px;align-items:flex-end;flex-wrap:wrap;flex-shrink:0;padding:12px 14px;margin:0 2px 10px;border:1px solid var(--border, #e7e7e7);border-radius:10px;background:#ffffffb8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.team-settings-field{display:flex;flex-direction:column;gap:6px}.team-settings-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #666)}.team-editor-sidebar{width:216px;flex-shrink:0;display:flex;flex-direction:column;gap:14px;overflow-y:auto;padding:4px 0 8px}.team-editor-section{display:flex;flex-direction:column;gap:8px}.team-editor-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #666)}.team-editor-add-row{display:flex;gap:6px;align-items:flex-start}.team-editor-add-btn{padding:8px 12px!important;font-size:18px!important;flex-shrink:0;line-height:1}.team-editor-field{display:flex;flex-direction:column;gap:4px}.team-editor-label{font-size:12px;color:var(--text-muted, #555);font-weight:500}.team-editor-input{border:1px solid var(--border, #e7e7e7);border-radius:6px;padding:6px 10px;font-size:13px;font-family:var(--font);background:#fff;color:var(--text);width:100%;box-sizing:border-box}.team-editor-input:focus{outline:2px solid var(--focus-ring, #3b82f6);outline-offset:1px}.team-editor-error{font-size:12px;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:8px 10px;line-height:1.45}.team-editor-actions{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:4px}.team-editor-cancel{background:transparent!important;color:var(--text-muted, #555)!important;border:1px solid var(--border, #e7e7e7)!important}.team-editor-cancel:hover{background:#f5f5f5!important;color:var(--text)!important}.team-stepper{display:flex;align-items:center;gap:8px;font-size:13px}.team-stepper button{width:26px;height:26px;border:1px solid var(--border, #e7e7e7);border-radius:6px;background:#fff;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;font-family:var(--font);color:var(--text)}.team-stepper button:hover{background:#f5f5f5}.team-stepper span{min-width:28px;text-align:center;font-weight:600}.team-node--edit{padding:14px 11px 12px;display:flex;flex-direction:column;gap:6px;overflow:visible;cursor:grab;height:auto!important;border-radius:12px;box-shadow:0 1px 2px #0000000a}.team-node--edit:active{cursor:grabbing}.team-node--edit:focus-within{z-index:30}.team-node-close{position:absolute;top:6px;right:6px;width:18px;height:18px;border:none;background:transparent;color:#9ca3af;cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;border-radius:5px;padding:0;opacity:0;transition:opacity .12s,background .12s,color .12s}.team-node--edit:hover .team-node-close,.team-node--edit:focus-within .team-node-close{opacity:1}.team-node-close:hover{background:#fee2e2;color:#dc2626}.team-node-edit-input{border:1px solid transparent;border-radius:4px;padding:2px 6px;font-size:13px;font-family:var(--font);font-weight:650;background:transparent;color:var(--role-color, #374151);width:100%;box-sizing:border-box}.team-node-edit-input:hover{border-color:var(--border, #e7e7e7);background:#f9f9f9}.team-node-edit-input:focus{outline:2px solid var(--focus-ring, #3b82f6);outline-offset:1px;border-color:transparent;background:#fff}.team-node-stepper{gap:5px}.team-node-stepper button{width:22px!important;height:22px!important;font-size:13px!important}.team-node-stepper span{font-size:12px;min-width:22px}.team-port{position:absolute;width:20px;height:20px;border-radius:50%;cursor:crosshair;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;z-index:10;-webkit-user-select:none;user-select:none;touch-action:none;transition:transform .1s}.team-port:hover{transform:scale(1.2)}.team-port--pass{right:-10px;top:50%;transform:translateY(-50%);background:var(--accent, #2563eb);color:#fff}.team-port--pass:hover{transform:translateY(-50%) scale(1.2);background:#1d4ed8}.team-port--fail{bottom:-10px;left:50%;transform:translate(-50%);background:#ef4444;color:#fff}.team-port--fail:hover{transform:translate(-50%) scale(1.2);background:#dc2626}.team-port-clear{position:absolute;width:14px;height:14px;border-radius:50%;border:1px solid #d1d5db;background:#fff;cursor:pointer;font-size:8px;display:flex;align-items:center;justify-content:center;z-index:11;padding:0;color:#9ca3af;line-height:1;opacity:0;transition:opacity .12s,background .12s,border-color .12s,color .12s}.team-node--edit:hover .team-port-clear,.team-node--edit:focus-within .team-port-clear{opacity:1}.team-port-clear:hover{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.team-port-clear--pass{right:-28px;top:50%;transform:translateY(-50%)}.team-port-clear--fail{bottom:-28px;left:50%;transform:translate(-50%)}.team-edge-clear{position:absolute;transform:translate(-50%,-50%);z-index:12;width:15px;height:15px;border-radius:50%;border:1px solid #d1d5db;background:#fff;cursor:pointer;font-size:8px;display:flex;align-items:center;justify-content:center;padding:0;color:#9ca3af;line-height:1;opacity:0;transition:opacity .12s,background .12s,border-color .12s,color .12s}.team-graph:hover .team-edge-clear{opacity:.4}.team-edge-clear:hover{opacity:1;background:#fef2f2;border-color:#fca5a5;color:#dc2626}.team-rubberband{fill:none;stroke:var(--accent, #2563eb);stroke-width:2;stroke-dasharray:4 4;pointer-events:none}.team-rubberband--fail{stroke:#ef4444}.mention-at{color:#ef4444;font-weight:700;flex-shrink:0;line-height:1}.mention-at--inline{display:inline-block;margin-right:6px;vertical-align:middle}.sidebar-nav-icon{position:relative}.mention-at--nav{margin-left:3px}.board-list-wrap{overflow-x:auto;overflow-y:auto;flex:1}.board-list{width:100%;border-collapse:collapse;font-size:14px}.board-list th{text-align:left;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.board-list tbody tr{cursor:pointer;transition:background .1s}.board-list tbody tr:hover{background:#f9f9f9}.board-list td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.board-list-title{font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.backlog-title-cell{display:flex;align-items:center;min-width:0}.board-btn-sm{background:none;border:1px solid var(--border);border-radius:7px;padding:5px 12px;font-size:13px;font-family:var(--font);color:var(--text);cursor:pointer;transition:background .1s,border-color .1s;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.board-btn-sm:hover{background:#f5f5f5;border-color:#bbb}.board-btn-sm:disabled{opacity:.5;cursor:default}.board-btn-sm--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.board-btn-sm--primary:hover:not(:disabled){background:#333;border-color:#333}.board-btn-sm--danger{color:#dc2626;border-color:#fca5a5}.board-btn-sm--danger:hover{background:#fef2f2}.sprint-controls{display:flex;align-items:center;gap:10px;padding-bottom:12px;flex-shrink:0}.sprint-name-label{font-size:15px;font-weight:600;color:var(--text)}.sprint-badge{font-size:11px;background:#eff6ff;color:#1d4ed8;padding:2px 8px;border-radius:10px;font-weight:600}.sprint-create-banner{background:#f9fafb;border:1px dashed var(--border);border-radius:10px;padding:14px 18px;margin-bottom:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.backlog-section{margin-bottom:24px}.backlog-section-header{display:flex;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid var(--border);margin-bottom:0}.backlog-section-toggle{background:none;border:none;padding:2px 3px;cursor:pointer;display:flex;align-items:center;color:var(--text-muted);border-radius:4px;flex-shrink:0;line-height:1}.backlog-section-toggle:hover{background:#0000000f}.backlog-section-name{font-size:14px;font-weight:600;color:var(--text)}.backlog-section-count{font-size:11px;background:#eee;color:var(--text-muted);padding:1px 7px;border-radius:10px;font-weight:600}.backlog-section-icon-btn{width:28px;height:28px;border-radius:8px;background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,background .15s}.backlog-section-icon-btn:hover{color:var(--text);background:#f0f0f0}.backlog-list{list-style:none;display:flex;flex-direction:column;gap:6px}.backlog-item{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--border);border-radius:8px;padding:10px 14px;cursor:pointer;transition:box-shadow .12s}.backlog-item:hover{box-shadow:0 2px 8px #00000014}.backlog-item-title{flex:1;font-size:14px;font-weight:500;color:var(--text)}.board-empty-col{text-align:center;color:var(--text-faint);font-size:13.5px;padding:48px 24px}.ticket-dialog-card{width:min(660px,calc(100vw - 32px));max-height:88vh}.ticket-dialog-layout{display:flex;flex:1;overflow:hidden}.ticket-dialog-main{flex:1;overflow-y:auto;padding:16px 24px;min-width:0}.ticket-dialog-sidebar{width:210px;min-width:210px;border-left:1px solid var(--border);padding:16px;overflow-y:auto;flex-shrink:0}.ticket-sidebar-field{margin-bottom:16px}.ticket-sidebar-label{font-size:10.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.ticket-sidebar-select{width:100%;border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-size:13px;font-family:var(--font);color:var(--text);background:#fff;cursor:pointer;outline:none;transition:border-color .12s}.ticket-sidebar-select:focus{border-color:var(--accent)}.ticket-section-title{font-size:10.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;margin-top:16px}.ticket-section-title:first-child{margin-top:0}.ticket-desc-rendered{padding:6px 0;min-height:48px;cursor:pointer;font-size:14px}.ticket-desc-area{width:100%;border:1px solid var(--border);border-radius:8px;padding:8px 12px;min-height:100px;font-size:13.5px;font-family:var(--font);color:var(--text);resize:vertical;outline:none;transition:border-color .12s}.ticket-desc-area:focus{border-color:var(--accent)}.ticket-title-input{width:100%;font-size:22px;font-weight:500;font-family:var(--font-serif);border:none;outline:none;color:var(--text);background:transparent;padding:0;margin:0;line-height:inherit}.ticket-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.ticket-attachment-thumb{width:88px;height:66px;border-radius:6px;overflow:hidden;border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;background:#f9f9f9;font-size:10px;color:var(--text-faint);text-align:center;padding:4px;transition:box-shadow .1s}.ticket-attachment-thumb:hover{box-shadow:0 2px 6px #0000001a}.ticket-attachment-thumb img{width:100%;height:100%;object-fit:cover}.ticket-comments{margin-top:16px}.ticket-comment{padding:10px 0;border-top:1px solid var(--border)}.ticket-comment-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.ticket-comment-author{font-size:13px;font-weight:600;color:var(--text)}.ticket-comment-time{font-size:11px;color:var(--text-faint)}.ticket-comment-body{font-size:13.5px;color:var(--text);line-height:1.5;white-space:pre-wrap}.ticket-comment-composer{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.ticket-comment-textarea{border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:13.5px;font-family:var(--font);color:var(--text);resize:vertical;min-height:72px;outline:none;transition:border-color .12s;width:100%}.ticket-comment-textarea:focus{border-color:var(--accent)}@media(max-width:640px){.board-page{padding:calc(56px + var(--safe-top)) 16px 0}.ticket-dialog-card{max-height:95vh}.ticket-dialog-layout{flex-direction:column}.ticket-dialog-sidebar{width:100%;min-width:0;border-left:none;border-top:1px solid var(--border)}.board-columns{min-height:0}}.ticket-lock-pill{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;color:var(--text-faint);background:#f3f0ff;border:1px solid #ddd6fe;border-radius:4px;padding:1px 5px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.ticket-lock-pill--inline{margin-left:6px;vertical-align:middle}.ticket-lock-icon{display:inline-flex;align-items:center;vertical-align:middle;color:#7c3aed;margin-right:5px}.ticket-id-cell{display:inline-flex;align-items:center;gap:6px}.ticket-id-value{font-family:SF Mono,Consolas,monospace;font-size:12px;color:var(--text-muted)}.ticket-id-copy{display:inline-flex;align-items:center;justify-content:center;padding:3px;border:none;background:none;color:var(--text-faint);cursor:pointer;border-radius:5px;transition:background .12s}.ticket-id-copy:hover{background:#7f7f7f29;color:var(--text)}.ticket-session-link{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:none}.ticket-session-link:hover{text-decoration:underline;text-underline-offset:2px}.ticket-lock-banner{display:flex;align-items:center;gap:7px;background:#faf5ff;border:1px solid #ddd6fe;border-radius:8px;padding:8px 12px;font-size:13px;color:#6d28d9;margin-bottom:14px}.ticket-lock-banner strong{font-weight:600}.ticket-parent-breadcrumb{display:flex;align-items:center;gap:7px;width:100%;background:var(--surface-subtle, #f8fafc);border:1px solid var(--border);border-radius:8px;padding:7px 12px;font-size:13px;color:var(--text-muted);cursor:pointer;margin-bottom:12px;text-align:left}.ticket-parent-breadcrumb:hover{border-color:var(--accent)}.ticket-parent-breadcrumb strong{color:var(--text);font-weight:600}.ticket-parent-breadcrumb .ticket-status-chip{margin-left:auto}.ticket-depblocked-banner{display:flex;align-items:flex-start;gap:8px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:8px 12px;font-size:13px;color:#b91c1c;margin-bottom:14px}.ticket-depblocked-glyph{font-size:15px;line-height:1.4}.ticket-section-count{display:inline-block;margin-left:4px;font-size:11px;font-weight:600;color:var(--text-faint)}.ticket-linked-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.ticket-linked-row{display:flex;align-items:center;gap:8px;width:100%;background:var(--surface-subtle, #f8fafc);border:1px solid var(--border);border-radius:7px;padding:6px 10px;font-size:13px;color:var(--text);cursor:pointer;text-align:left}.ticket-linked-row:hover{border-color:var(--accent)}.ticket-linked-row--static{cursor:default}.ticket-linked-row--static:hover{border-color:var(--border)}.ticket-linked-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-link-inline{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-align:left}.ticket-link-inline:hover{text-decoration:underline}.ticket-linked-remove{display:inline-flex;align-items:center;background:none;border:none;color:var(--text-faint);cursor:pointer;padding:2px;border-radius:5px}.ticket-linked-remove:hover{color:#dc2626;background:#0000000d}.ticket-add-row{display:flex;align-items:center;gap:8px}.ticket-subtask-header{display:flex;align-items:center;justify-content:space-between;margin:16px 0 6px}.ticket-subtask-table{overflow-x:auto;overflow-y:visible;flex:none}.ticket-subtask-table .board-list{table-layout:fixed}.ticket-subtask-table .board-list th:nth-child(2),.ticket-subtask-table .board-list td:nth-child(2){width:110px}.ticket-subtask-table .board-list th:nth-child(3),.ticket-subtask-table .board-list td:nth-child(3){width:120px}.ticket-subtask-table .board-list-title{display:block}.board-list tbody tr.ticket-subtask-add-tr{cursor:text}.board-list tbody tr.ticket-subtask-add-tr:hover{background:transparent}.ticket-subtask-add-input{width:100%;border:none;background:transparent;font-size:14px;color:var(--text);padding:0}.ticket-subtask-add-input::placeholder{color:var(--text-faint)}.ticket-subtask-add-input:focus{outline:none}.ticket-save-error{flex:1;font-size:12px;color:#dc2626}.ticket-dropzone{border:1.5px dashed var(--border);border-radius:8px;padding:14px 16px;text-align:center;color:var(--text-faint);font-size:13px;cursor:pointer;transition:border-color .12s,background .12s;margin-top:6px;-webkit-user-select:none;user-select:none}.ticket-dropzone:hover,.ticket-dropzone--drag{border-color:var(--accent);background:#00000005}.ticket-thread{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.ticket-thread-replies{padding-left:16px;display:flex;flex-direction:column;gap:6px}.board-ticket-assignee-line{font-size:11px;color:var(--text-faint);margin-top:3px}.board-minimap{position:fixed;bottom:16px;right:16px;height:28px;width:160px;background:#00000014;border-radius:6px;display:flex;align-items:stretch;gap:2px;padding:4px 5px;cursor:pointer;z-index:50;overflow:hidden;pointer-events:auto}.board-minimap-col{flex:1;background:#0000002e;border-radius:2px}.board-minimap-thumb{position:absolute;top:0;bottom:0;background:#00000047;border:1.5px solid rgba(0,0,0,.45);border-radius:5px;cursor:grab;touch-action:none}.board-minimap-thumb:active{cursor:grabbing}body.tuan-bg-dark:not(.tuan-floating-noglass) .board-minimap{background:#ffffff1f}body.tuan-bg-dark:not(.tuan-floating-noglass) .board-minimap-col{background:#ffffff38}body.tuan-bg-dark:not(.tuan-floating-noglass) .board-minimap-thumb{background:#ffffff61;border-color:#ffffff8c}body.tuan-bg-dark:not(.tuan-floating-noglass) .sprint-name-label{color:#ffffffeb}body.tuan-bg-dark:not(.tuan-floating-noglass) .backlog-section-name,body.tuan-bg-dark:not(.tuan-floating-noglass) .backlog-section-toggle{color:#ffffffeb}body.tuan-bg-dark:not(.tuan-floating-noglass) .backlog-section-header .backlog-section-icon-btn{color:#ffffffb3;border-color:#ffffff4d}body.tuan-bg-dark:not(.tuan-floating-noglass) .backlog-section-header .backlog-section-icon-btn:hover{background:#fff3;color:#ffffffeb}.layout--floating .backlog-section-header .backlog-section-icon-btn:hover{background:#ffffff80}body.tuan-bg-dark:not(.tuan-floating-noglass) .board-list tbody tr:hover{background:#ffffff1a}.comment-menu-trigger{width:24px;height:24px;border:none;background:none;border-radius:6px;cursor:pointer;color:var(--text-faint);display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .12s,background .12s;flex-shrink:0}.ticket-flat-comment:hover .comment-menu-trigger,.diff-thread-comment:hover .comment-menu-trigger{opacity:1}.comment-menu-trigger:hover{background:#0000000f;color:var(--text)}.comment-menu-dropdown{min-width:120px!important;top:28px;right:0}.ticket-flat-comment{position:relative;background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px}.mention-token{color:#dc2626;font-weight:600}.ticket-flat-comment-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}@keyframes ticket-comment-flash{0%{background:#fff9c4}to{background:#fff}}.ticket-comment--highlight{animation:ticket-comment-flash 1.2s ease-out forwards}.ticket-comment-quote{display:flex;align-items:baseline;width:100%;text-align:left;background:none;border:none;border-left:3px solid var(--border);padding:4px 10px;margin-bottom:8px;cursor:pointer;border-radius:0 4px 4px 0;transition:border-color .12s,background .12s;font-family:var(--font)}.ticket-comment-quote:hover{border-left-color:var(--accent);background:#00000008}.ticket-comment-quote-author{font-size:12px;font-weight:600;color:var(--text-muted);margin-right:6px;flex-shrink:0}.ticket-comment-quote-body{font-size:12px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.diff-thread-comment-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px}body.tuan-bg-dark:not(.tuan-floating-noglass) .ticket-flat-comment{--text: #111111;--text-muted: #555555;--text-faint: #9a9a9a;--border: #e7e7e7;box-shadow:0 2px 8px #00000038}body.tuan-bg-dark.tuan-floating:not(.tuan-floating-noglass) .ticket-flat-comment{box-shadow:none}@keyframes ticket-comment-flash-dark{0%{background:#2a2800}to{background:transparent}}body.tuan-bg-dark:not(.tuan-floating-noglass) .ticket-comment--highlight{animation:ticket-comment-flash-dark 1.2s ease-out forwards}body.tuan-bg-dark:not(.tuan-floating-noglass) .comment-menu-trigger:hover{background:#ffffff1f;color:var(--text)}.app-tab-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.app-tab-section{flex:1 1 auto;overflow-y:auto;padding:20px 24px}.app-tab-section input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.app-tab-section input[type=number]::-webkit-outer-spin-button,.app-tab-section input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.app-dialog-status{padding:24px;font-size:14px;color:var(--text-muted)}.app-dialog-status--error{color:var(--danger, #c0392b)}.app-tab-header-actions{display:flex;justify-content:flex-end;margin-bottom:16px}.app-tab-checkbox-row{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:13px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.app-tab-checkbox-row input[type=checkbox]{cursor:pointer}.app-tab-coming-soon{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-faint);font-size:14px}.page-action-btn--danger{background:transparent;color:var(--danger, #c0392b);border:1px solid var(--danger, #c0392b)}.page-action-btn--danger:hover{background:var(--danger, #c0392b);color:#fff}.app-agent-list{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}.app-agent-row{border:1px solid var(--border);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px}.app-agent-row-header{display:flex;align-items:center;justify-content:space-between}.app-agent-name{font-weight:500;font-size:14px;color:var(--text)}.app-agent-tools-field{margin-bottom:0!important}.app-agent-tools-field .modal-label{font-size:12px}.app-tab-icon-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:6px;padding:4px;cursor:pointer;color:var(--text-muted);transition:background .15s,color .15s}.app-tab-icon-btn:hover{background:#fee2e2;color:#b91c1c}.app-agent-add-row{margin-top:4px}.app-origins-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.app-origin-row{display:flex;align-items:center;justify-content:space-between;background:var(--user-bubble);border-radius:6px;padding:6px 10px}.app-origin-value{font-size:13px;color:var(--text);word-break:break-all;flex:1;margin-right:8px}.app-origin-add-row{display:flex;gap:8px;align-items:center;margin-bottom:4px}.app-origin-add-row .modal-input{flex:1;margin-bottom:0}.app-bundle-version{font-size:15px;font-weight:500;color:var(--text);margin:0}.app-bundle-dropzone{border:1.5px dashed var(--border);border-radius:8px;padding:28px 20px;text-align:center;cursor:pointer;transition:border-color .12s,background .12s;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;gap:6px;align-items:center}.app-bundle-dropzone:hover,.app-bundle-dropzone--drag{border-color:var(--accent);background:#00000005}.app-bundle-dropzone--uploading{cursor:default;opacity:.7}.app-bundle-dropzone-primary{font-size:14px;color:var(--text-muted)}.app-bundle-dropzone-hint{font-size:12px;color:var(--text-faint)}.app-usage-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.app-usage-summary-card{border:1px solid var(--border);border-radius:8px;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.app-usage-summary-row{display:flex;align-items:center;justify-content:space-between;font-size:14px}.app-usage-summary-label{color:var(--text-muted)}.app-usage-summary-value{font-weight:500;color:var(--text)}.app-usage-empty{font-size:13px;color:var(--text-faint);margin:8px 0 0}.app-usage-table{width:100%;border-collapse:collapse;font-size:13px}.app-usage-table th{text-align:left;padding:6px 10px;color:var(--text-muted);font-weight:500;border-bottom:1px solid var(--border)}.app-usage-table td{padding:7px 10px;border-bottom:1px solid var(--border);color:var(--text)}.app-usage-table tbody tr:last-child td{border-bottom:none}.app-usage-uid{font-family:monospace;font-size:12px;word-break:break-all;max-width:200px}.apps-moderation-grid{display:grid;grid-template-columns:260px 1fr;gap:0;min-height:400px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.apps-moderation-left{border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.apps-moderation-list-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface-raised, var(--user-bubble))}.apps-moderation-user-row{display:flex;flex-direction:column;gap:3px;padding:9px 12px;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}.apps-moderation-user-row:last-child{border-bottom:none}.apps-moderation-user-row:hover{background:#0000000a}.apps-moderation-user-row--active{background:var(--accent-soft, rgba(0, 100, 255, .07))}.apps-moderation-user-row-main{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.apps-moderation-artifact-count{font-size:12px;color:var(--text-faint)}.apps-moderation-badge{display:inline-block;font-size:11px;font-weight:600;padding:1px 6px;border-radius:4px;letter-spacing:.02em}.apps-moderation-badge--blocked{background:#fee2e2;color:#b91c1c}.apps-moderation-uid-label{font-size:11px;color:var(--text-muted);font-weight:500}.apps-moderation-uid-value{font-size:12px;font-family:monospace;color:var(--text);word-break:break-all}.apps-moderation-right-wrap{display:flex;flex-direction:column;overflow-y:auto}.apps-moderation-right{padding:14px 16px;display:flex;flex-direction:column;gap:8px;flex:1}.apps-moderation-user-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.apps-moderation-user-id{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.apps-moderation-user-actions{display:flex;gap:8px;flex-shrink:0}.apps-moderation-best-effort{font-size:12px;color:var(--text-muted);margin:0;font-style:italic}.apps-moderation-status{font-size:13px;color:var(--text-faint);margin:8px 0 0}.apps-moderation-status--center{text-align:center;margin:auto;padding:32px 16px}.apps-moderation-artifact-table{margin-top:4px}.apps-moderation-artifact-name{font-size:13px;color:var(--text);word-break:break-word;max-width:200px}.apps-moderation-artifact-type{font-size:12px;color:var(--text-muted);font-family:monospace}.apps-moderation-artifact-actions{display:flex;gap:10px;align-items:center;white-space:nowrap}.apps-moderation-link{font-size:12px;font-weight:500;color:var(--accent);text-decoration:none;background:none;border:none;cursor:pointer;padding:0}.apps-moderation-link:hover{text-decoration:underline}.apps-moderation-link--danger{color:var(--danger, #c0392b)}.apps-moderation-link--danger:disabled{opacity:.5;cursor:not-allowed}.question-body{display:flex;flex-direction:column;gap:18px;max-height:60vh;overflow-y:auto}.question-block{display:flex;flex-direction:column;gap:6px}.question-header{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.7}.question-text{font-size:14px;font-weight:500}.question-options{display:flex;flex-direction:column;gap:6px;margin-top:4px}.question-option{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.question-option--checked{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.question-option--ro{cursor:default}.question-option input{margin-top:1px;width:15px;height:15px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.question-option--ro input{cursor:default}.question-option-label{display:flex;flex-direction:column;gap:2px;font-size:14px}.question-option-desc{font-size:12px;opacity:.65}.question-other{margin-top:2px}.question-card .show-card-size{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.question-card--unanswered{animation:aq-attn 2.2s ease-in-out infinite}@keyframes aq-attn{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent) 0%,transparent)}50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}}@media(prefers-reduced-motion:reduce){.question-card--unanswered{animation:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)}}.octo-assistant-fab{position:fixed;z-index:1000;width:56px;height:56px;padding:0;border:none;border-radius:50%;cursor:grab;color:#fff;display:flex;align-items:center;justify-content:center;background:var(--accent);box-shadow:0 6px 18px #00000047,0 0 0 1px #ffffff0f;touch-action:none;transition:transform .12s ease,background .15s ease}.octo-assistant-fab:hover{transform:translateY(-1px);background:var(--accent-hover)}.octo-assistant-fab:active{cursor:grabbing}.octo-assistant-fab:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.octo-assistant-window.modal-card{position:fixed;z-index:1001;width:380px;height:min(600px,82vh);max-height:82vh;padding:0;overflow:hidden}.octo-assistant-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 10px 12px 18px;cursor:move;flex-shrink:0;border-bottom:1px solid var(--border)}.octo-assistant-title{font-size:17px;margin:0}.octo-assistant-header-actions{display:flex;gap:2px}.octo-assistant-header-actions button{background:transparent;border:none;color:var(--text-faint);font-size:20px;line-height:1;width:30px;height:30px;border-radius:8px;cursor:pointer}.octo-assistant-header-actions button:hover{background:var(--hover, rgba(0, 0, 0, .06));color:var(--text)}.octo-assistant-transcript{flex:1;overflow-y:auto;overflow-x:hidden;padding:12px 0;display:flex;flex-direction:column;gap:4px}.octo-assistant-hint{color:var(--text-faint);font-size:13px;padding:6px 24px}.octo-assistant-err{color:#c0392b;font-size:13px;padding:4px 24px}.octo-assistant-composer.composer-wrap{background:transparent;padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.octo-assistant-artifacts{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:0 24px}.octo-assistant-artifact{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface, #fff);color:var(--text);text-decoration:none;font-size:13px;max-width:100%}.octo-assistant-artifact:hover{border-color:#111}.octo-assistant-artifact[aria-disabled=true]{opacity:.6;pointer-events:none}.octo-assistant-artifact-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.octo-assistant-artifact-dl{color:var(--text-faint);flex-shrink:0}.octo-assistant-artifact-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:2px;border:0;background:none;color:var(--text-faint);cursor:pointer;border-radius:6px;text-decoration:none}.octo-assistant-artifact-btn:hover{color:var(--text);background:var(--surface-muted, rgba(0, 0, 0, .05))}.octo-assistant-artifact-btn:disabled{cursor:default;opacity:.5}.octo-assistant-artifact--img{flex-direction:column;align-items:stretch;padding:6px;gap:6px}.octo-assistant-artifact--img img{width:100%;border-radius:8px;display:block}@media(max-width:480px){.octo-assistant-window.modal-card{width:calc(100vw - 24px);left:12px!important}}
