@font-face{font-family:GisAgent Hei;src:url(/fonts/NotoSansSC-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:GisAgent Song;src:url(/fonts/NotoSerifSC-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-primary:#0a0a0a;--bg-panel:#171717;--bg-elevated:#242424;--bg-inset:#0a0a0a;--border:#262626;--border-strong:#737373;--text-primary:#f5f5f5;--text-secondary:#a3a3a3;--text-faint:#909090;--text-disabled:#6b6b6b;--hover-soft:#ffffff0f;--active-soft:#ffffff1a;--accent:#38bdf8;--accent-soft:#38bdf824;--accent-solid:#0369a1;--accent-solid-hover:#075985;--success:#4ade80;--success-soft:#4ade801f;--warning:#fbbf24;--warning-soft:#fbbf241f;--danger:#f87171;--danger-soft:#f871711f;--info:#7dd3fc;--info-soft:#7dd3fc1f;--plan:#c4b5fd;--plan-soft:#a78bfa29;--success-strong:#15803d;--success-strong-hover:#166534;--danger-strong:#b91c1c;--danger-strong-hover:#991b1b;--plan-strong:#7c3aed;--plan-strong-hover:#6d28d9;--usage-ok:#4ade80;--usage-warn:#fbbf24;--usage-danger:#f87171;--chart-fill:#60a5fa;--user-bubble-bg:#38bdf814;--user-bubble-border:#38bdf847;--shadow-pop:0 8px 24px #00000080;--shadow-dialog:0 12px 40px #0009;--shadow-input:0 4px 16px #00000059;--backdrop:#0009;--scrollbar-thumb:#a3a3a347;--scrollbar-thumb-hover:#a3a3a373;--radius:8px;--radius-sm:6px;--font-mono:Consolas, "Courier New", monospace}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-primary:#fff;--bg-panel:#fafafa;--bg-elevated:#f0f0f0;--bg-inset:#f0f0f0;--border:#e5e5e5;--border-strong:#868686;--text-primary:#171717;--text-secondary:#525252;--text-faint:#6b6b6b;--text-disabled:#949494;--hover-soft:#0000000d;--active-soft:#00000017;--accent:#0369a1;--accent-soft:#0ea5e91a;--accent-solid:#0369a1;--accent-solid-hover:#075985;--success:#166534;--success-soft:#22c55e1a;--warning:#92400e;--warning-soft:#f59e0b1a;--danger:#b91c1c;--danger-soft:#ef444414;--info:#0369a1;--info-soft:#0ea5e91a;--plan:#6d28d9;--plan-soft:#8b5cf61a;--usage-ok:#16a34a;--usage-warn:#d97706;--usage-danger:#dc2626;--chart-fill:#2563eb;--user-bubble-bg:#0ea5e90f;--user-bubble-border:#0ea5e959;--shadow-pop:0 6px 20px #0000001f;--shadow-dialog:0 12px 40px #0000002e;--shadow-input:0 2px 10px #0000000f;--backdrop:#0006;--scrollbar-thumb:#00000038;--scrollbar-thumb-hover:#00000061}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif;font-size:14px;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:content-box;border:2px solid #0000;border-radius:6px}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:0 0}.app{grid-template-columns:var(--sidebar-width,260px) var(--splitter-width,6px) minmax(0, 1fr);grid-template-rows:minmax(0,1fr);height:100%;display:grid;overflow:hidden}.app.map-open{grid-template-columns:var(--sidebar-width,260px) var(--splitter-width,6px) minmax(0, 1fr) var(--splitter-width,6px) var(--chat-width,780px)}.panel-splitter{z-index:2;width:var(--splitter-width,6px);cursor:col-resize;background:0 0;transition:background .15s;position:relative}.panel-splitter:after{content:"";background:0 0;border-radius:999px;transition:background .15s;position:absolute;inset:0 2px}.panel-splitter:hover:after,.panel-splitter:focus-visible:after{background:var(--accent);opacity:.55}.panel-splitter:focus-visible{outline:none}.panel-splitter-horizontal{width:auto;height:var(--splitter-width,6px);cursor:row-resize}.panel-splitter-horizontal:after{inset:2px 0}.sidebar-backdrop,.sidebar-close,.sidebar-toggle{display:none}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.sidebar-header{color:var(--text-primary);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;font-size:15px;font-weight:600;display:flex}.logo{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.2px;align-items:center;gap:7px;min-width:0;display:flex;overflow:hidden}.logo-icon{object-fit:contain;border-radius:5px;flex-shrink:0;width:20px;height:20px}.sidebar-nav{flex-shrink:0;gap:2px;display:flex}.sidebar-nav-btn{width:26px;height:26px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:14px;line-height:1;transition:background .15s,color .15s;display:flex}.sidebar-nav-btn:hover:not(:disabled){background:var(--hover-soft);color:var(--text-primary)}.sidebar-nav-btn:disabled{opacity:.35;cursor:default}.sidebar-footer{border-top:1px solid var(--border);flex-shrink:0;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px;padding:10px 12px;display:grid}.sidebar-footer-btn{border:1px solid var(--border);min-width:0;color:var(--text-secondary);white-space:nowrap;cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:4px;padding:7px 6px;font-size:12px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.sidebar-footer-btn:hover:not(:disabled){background:var(--hover-soft);color:var(--text-primary)}.sidebar-footer-btn:disabled{color:var(--text-disabled);cursor:not-allowed}.sidebar-footer-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.sidebar-body,.sidebar-page{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-tabs{border-bottom:1px solid var(--border);flex-shrink:0;gap:4px;padding:6px 10px;display:flex}.sidebar-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:3px 12px;font-size:12px;display:inline-flex}.sidebar-tab:hover{background:var(--hover-soft);color:var(--text-primary)}.sidebar-tab.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text-primary)}.sidebar-tab-count{background:var(--hover-soft);min-width:16px;color:var(--text-faint);text-align:center;border-radius:999px;padding:0 5px;font-size:10px;line-height:16px}.sidebar-files{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-files-toolbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:2px;padding:5px 8px;display:flex}.sidebar-files-btn{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;padding:2px 6px;font-size:12px}.sidebar-files-btn:hover:not(:disabled){background:var(--hover-soft);color:var(--text-primary)}.sidebar-files-btn:disabled{opacity:.4;cursor:default}.sidebar-files-usage{color:var(--text-faint);white-space:nowrap;margin-left:auto;font-size:10.5px}.sidebar-files-path{border-bottom:1px solid var(--border);color:var(--text-faint);font-family:var(--mono);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:1px;padding:4px 10px;font-size:10.5px;display:flex}.sidebar-files-crumb-wrap{align-items:center;display:inline-flex}.sidebar-files-slash{opacity:.6;margin:0 1px}.sidebar-files-crumb{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.sidebar-files-crumb:hover{color:var(--text-primary)}.sidebar-files-list{flex:1 1 0;min-height:80px;padding:4px 6px;overflow-y:auto}.sidebar-files-row{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:4px;padding:3px 6px;font-size:12px;display:flex}.sidebar-files-row:hover{background:var(--hover-soft)}.sidebar-files-row.active{background:var(--accent-soft);color:var(--text-primary)}.sidebar-files-row.selected,.sidebar-files-row.selected:hover{background:var(--accent-soft)}.sidebar-files-caret{width:12px;color:var(--text-faint);text-align:center;flex-shrink:0;font-size:9px;line-height:1}button.sidebar-files-caret{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;height:16px;padding:0;display:inline-flex}button.sidebar-files-caret:hover{color:var(--text-primary)}.sidebar-files-icon{flex-shrink:0;font-size:12px}.sidebar-files-main{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar-files-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.35;overflow:hidden}.sidebar-files-meta{color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;font-size:10px;line-height:1.25;overflow:hidden}.sidebar-files-check{width:12px;height:12px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin:0 1px 0 0}.sidebar-files-toolbar.selection{gap:4px}.sidebar-files-select-all{color:var(--text-secondary);white-space:nowrap;cursor:pointer;flex-shrink:0;align-items:center;gap:3px;font-size:10.5px;display:inline-flex}.sidebar-files-selection-count{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);flex:1 1 0;font-size:10.5px;overflow:hidden}.sidebar-files-btn.danger:hover:not(:disabled){color:var(--danger)}.sidebar-files-action{color:var(--text-faint);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:12px}.sidebar-files-action:hover:not(:disabled){color:var(--text-primary)}.sidebar-files-delete:hover:not(:disabled){color:var(--danger)}.sidebar-files-sort{flex-shrink:0}.sidebar-files-sort .dd-trigger{padding:2px 5px;font-size:10.5px}.sidebar-files-empty{color:var(--text-faint);text-align:center;padding:12px;font-size:11.5px}.file-delete-text{color:var(--text-secondary);word-break:break-word;margin:0;font-size:12.5px;line-height:1.7}.file-delete-list{border:1px solid var(--border);background:var(--bg-panel);border-radius:6px;max-height:160px;margin:10px 0 0;padding:6px 0;list-style:none;overflow-y:auto}.file-delete-list li{color:var(--text-primary);align-items:center;gap:6px;padding:3px 8px;font-size:12px;display:flex}.file-delete-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.file-delete-meta{color:var(--text-faint);flex-shrink:0;font-size:10.5px}.file-delete-more{color:var(--text-faint)!important}.file-delete-error{background:var(--danger-soft);color:var(--danger);word-break:break-word;border-radius:6px;margin-top:10px;padding:8px 10px;font-size:11.5px;line-height:1.5}.sidebar-files-error{border-bottom:1px solid var(--border);color:var(--danger);word-break:break-word;padding:4px 8px;font-size:11px;line-height:1.4}.session-list{flex:1;min-height:0;padding:10px;overflow-y:auto}.sidebar-layers{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-layers-header{color:var(--text-secondary);flex-shrink:0;align-items:center;gap:6px;padding:8px 10px;font-size:12px;display:flex}.sidebar-layers-title{color:var(--text-primary);font-weight:600}.sidebar-layers-count{font-family:var(--font-mono);color:var(--text-faint);font-size:11px}.sidebar-layers-btn{border:1px solid var(--border);min-width:22px;height:22px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;margin-left:auto;font-size:12px;line-height:1}.sidebar-layers-btn:hover:not(:disabled){background:var(--hover-soft);color:var(--text-primary)}.sidebar-layers-btn:disabled{opacity:.5;cursor:default}.sidebar-layers-body{flex-direction:column;gap:1px;min-height:0;padding:0 6px 8px;display:flex;overflow-y:auto}.sidebar-layers-context{color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;padding:0 10px 6px;font-size:10.5px;overflow:hidden}.map-layer-rename{border:1px solid var(--accent);background:var(--bg-inset);width:100%;min-width:0;color:var(--text-primary);border-radius:4px;padding:1px 5px;font-size:12px}.sidebar-layers .map-layer-rename{grid-area:name}.map-layer-rename:focus{outline:none}.sidebar-layers-empty{color:var(--text-faint);padding:4px 6px 8px;font-size:11px;line-height:1.5}.sidebar-layers-empty code{font-family:var(--font-mono);font-size:11px}.sidebar-layers-error{background:var(--danger-soft);color:var(--danger);border-radius:6px;flex-shrink:0;margin:0 6px 6px;padding:6px 8px;font-size:11px}.sidebar-layers .map-layer-row{border-bottom:none;border-radius:6px;grid-template-columns:24px minmax(0,1fr) auto auto;grid-template-areas:"eye name zoom menu"".meta meta menu";align-items:center;gap:1px 8px;padding:5px 6px;display:grid}.sidebar-layers .row-menu-trigger{grid-area:menu;align-self:center}.sidebar-layers .map-layer-row:hover{background:var(--hover-soft)}.sidebar-layers .map-layer-eye{grid-area:eye}.sidebar-layers .map-layer-name{grid-area:name;font-size:12px}.sidebar-layers .map-layer-meta{text-overflow:ellipsis;white-space:nowrap;grid-area:meta;overflow:hidden}.sidebar-layers .map-layer-zoom{opacity:0;grid-area:zoom;transition:opacity .12s}.sidebar-layers .map-layer-row:hover .map-layer-zoom,.sidebar-layers .map-layer-row:focus-within .map-layer-zoom{opacity:1}.session-list ul{list-style:none}.session-create-actions{gap:6px;margin-bottom:10px;display:flex}.session-create-actions>button{flex:1;min-width:0}.new-session{background:var(--accent-solid);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:8px 0;font-size:13.5px}.new-session:hover{background:var(--accent-solid-hover)}.new-project{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;padding:8px 0;font-family:inherit;font-size:13px;overflow:hidden}.new-project:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-strong);background:var(--hover-soft)}.new-project:disabled{color:var(--text-disabled);border-color:var(--border);cursor:not-allowed}.session-search{margin-bottom:10px}.session-search input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-inset);width:100%;color:var(--text-primary);padding:7px 10px;font-family:inherit;font-size:12.5px}.session-search input:focus{border-color:var(--accent);outline:none}.session-search input::placeholder{color:var(--text-faint)}.session-item{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);justify-content:space-between;align-items:center;gap:6px;margin-bottom:2px;padding:5px 8px;font-size:12.5px;transition:background .15s;display:flex}.session-item .row-menu-trigger{width:24px;height:24px;font-size:13px}.session-item:hover{background:var(--hover-soft)}.session-item.active{background:var(--active-soft);color:var(--text-primary)}.session-item.closed,.session-item.closed .session-name{color:var(--text-faint)}.session-main{min-width:0;color:inherit;font:inherit;text-align:left;cursor:inherit;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;padding:0;display:flex}.session-name{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.session-name.mode-plan{color:var(--plan)}.session-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.session-action-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:12px;line-height:1.4}.session-action-btn:hover{background:var(--hover-soft);color:var(--text-primary)}.session-action-danger:hover{background:var(--danger-soft);color:var(--danger)}.session-rename-input{border:1px solid var(--accent);background:var(--bg-inset);width:100%;min-width:0;color:var(--text-primary);font-family:var(--font-mono);border-radius:4px;padding:4px 8px;font-size:13px}.session-pin-flag{margin-right:4px;font-size:10px}.session-group{margin-bottom:8px}.session-group>ul{border-left:1px solid var(--border);margin-left:7px;padding-left:7px}.session-group-header{border-radius:var(--radius-sm);background:var(--bg-elevated);cursor:pointer;align-items:center;gap:4px;margin-bottom:4px;padding:5px 6px 5px 4px;display:flex}.session-group-header:hover{box-shadow:inset 0 0 0 1px var(--border-strong)}.session-group-header>.session-rename-input{flex:1;width:auto;min-width:0}.session-group-caret{width:16px;height:24px;color:var(--text-faint);flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.session-group-folder{color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;margin-right:2px;display:inline-flex}.session-group-folder svg{width:14px;height:14px}.session-group-select{min-width:0;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;align-items:center;gap:6px;padding:3px 4px;font-family:inherit;font-size:13px;display:flex}.session-group-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.session-group-count{color:var(--text-faint);flex-shrink:0;font-size:11px}.session-group-menu-button,.row-menu-trigger{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:14px;line-height:1;display:inline-flex}.session-group-menu-button:hover,.row-menu-trigger:hover{background:var(--hover-soft);color:var(--text-primary)}.session-group-empty{color:var(--text-faint);padding:2px 8px 6px 4px;font-size:12px}.session-item.dragging,.session-group-header.dragging{opacity:.45}.session-item.drop-before{box-shadow:0 -2px 0 0 var(--accent)}.session-item.drop-after{box-shadow:0 2px 0 0 var(--accent)}.session-group-header.drop-target{box-shadow:-2px 0 0 0 var(--accent)}.trash-list{max-height:160px;list-style:none;overflow-y:auto}.trash-item{color:var(--text-faint);border-radius:4px;justify-content:space-between;align-items:center;padding:5px 10px;display:flex}.trash-item:hover{background:var(--hover-soft);color:var(--text-secondary)}.trash-name{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:12px;overflow:hidden}.session-empty{color:var(--text-faint);padding:8px 4px;font-size:13px}.status-badge{border-radius:999px;flex-shrink:0;padding:2px 6px;font-size:11px}.status-starting{background:var(--warning-soft);color:var(--warning)}.status-idle{background:var(--success-soft);color:var(--success)}.status-running{background:var(--info-soft);color:var(--info)}.status-closed{background:var(--hover-soft);color:var(--text-secondary)}.content{min-width:0;min-height:0;display:flex;position:relative}.content-stack{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.runtime-warning{color:var(--danger);background:var(--danger-soft);border-bottom:1px solid var(--danger);flex:none;align-items:baseline;gap:6px;padding:6px 12px;font-size:12px;line-height:1.5;display:flex}.runtime-status{gap:4px;font-size:13px;line-height:1.6;display:grid}.runtime-status .status-ok{color:var(--success,#34d399)}.runtime-status .status-bad{color:var(--danger)}.timeline-panel{flex-direction:column;flex:1;min-width:0;height:100%;min-height:0;display:flex}.center-panel{border-right:1px solid var(--border);background:var(--bg-panel);flex-direction:column;min-width:0;min-height:0;display:flex}.center-tabs{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;min-width:0;padding:5px 8px;display:flex}.center-tabs-scroll{scrollbar-width:thin;flex:0 auto;align-items:center;gap:4px;min-width:0;display:flex;overflow:auto hidden}.center-tab-wrap{max-width:240px;color:var(--text-secondary);background:0 0;border:1px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;display:inline-flex}.center-tab-wrap:hover{background:var(--hover-soft)}.center-tab-wrap.active{border-color:var(--accent);background:var(--accent-soft)}.center-tab-wrap .center-tab-file{max-width:200px;color:inherit;background:0 0;border:0;padding:3px 4px 3px 10px}.center-tab-wrap .center-tab-file:hover{background:0 0}.center-tab-wrap.active .center-tab-name{color:var(--text-primary)}.center-tab-close{width:18px;height:18px;color:var(--text-faint);cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;margin-right:5px;padding:0;font-size:9px;line-height:1}.center-tab-close:hover{background:var(--hover-soft);color:var(--text-primary)}.center-tab{min-width:0;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:3px 12px;font-size:12px;display:inline-flex}.center-tab:hover{background:var(--hover-soft);color:var(--text-primary)}.center-tab.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text-primary)}.center-tab-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;color:var(--text-faint);font-size:10.5px;overflow:hidden}.center-tabs-spacer{flex:1}.center-close{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;font-size:12px;line-height:1}.center-close:hover{background:var(--hover-soft);color:var(--text-primary)}.center-panel-body,.center-view{flex:1;min-width:0;min-height:0;display:flex}.center-view[hidden]{display:none}.center-view>*{flex:1;min-width:0}.center-panel .map-panel{border-right:0}.center-empty{color:var(--text-faint);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:24px;font-size:12.5px;display:flex}.center-empty p{margin:0}.center-empty-icon{opacity:.7;font-size:36px}.map-panel{border-right:1px solid var(--border);background:var(--bg-panel);flex-direction:column;min-width:0;min-height:0;display:flex}.map-panel-header{border-bottom:1px solid var(--border);color:var(--text-secondary);flex-shrink:0;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex}.map-panel-title{color:var(--text-primary);font-weight:600}.map-panel-count{font-family:var(--font-mono);color:var(--text-faint);font-size:11px}.map-panel-spacer{flex:1}.map-panel-btn{min-width:22px;height:22px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:12px;line-height:1}.map-panel-btn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary)}.map-panel-btn:disabled{color:var(--text-disabled);cursor:default}.map-panel-error{color:var(--danger);background:var(--danger-soft,#dc262614);flex-shrink:0;padding:6px 12px;font-size:12px}.map-panel-notice{color:var(--warning);background:var(--warning-soft,#d977061a);border-bottom:1px solid var(--border);flex-shrink:0;padding:5px 12px;font-size:11px;line-height:1.5}.map-drop-zone{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.map-drop-zone.drag-over{outline:2px dashed var(--accent,#2563eb);outline-offset:-2px}.map-drop-hint{color:var(--accent,#2563eb);background:var(--accent-soft,#2563eb1a);pointer-events:none;z-index:5;justify-content:center;align-items:center;padding:16px;font-size:13px;display:flex;position:absolute;inset:0}.map-drop-hint.busy{color:var(--text-secondary);background:var(--bg-elevated,#fff9)}.sidebar-layers.drag-over{outline:2px dashed var(--accent,#2563eb);outline-offset:-2px}.sidebar-layers-drop-hint{color:var(--accent,#2563eb);background:var(--accent-soft,#2563eb1a);flex-shrink:0;padding:6px 10px;font-size:12px}.sidebar-layers-drop-hint.busy{color:var(--text-secondary)}.sidebar-layers-drop-msg{color:var(--success,#16a34a);background:var(--success-soft,#16a34a14);flex-shrink:0;padding:5px 10px;font-size:11px;line-height:1.5}.map-toolbar{border-bottom:1px solid var(--border);background:var(--bg-panel);scrollbar-width:none;flex-shrink:0;align-items:center;gap:10px;padding:5px 10px;display:flex;overflow-x:auto}.map-toolbar::-webkit-scrollbar{display:none}.map-tool-group{border-right:1px solid var(--border);flex-shrink:0;align-items:center;gap:2px;padding-right:10px;display:flex}.map-tool-group:last-child{border-right:none;padding-right:0}.map-tool-btn{min-width:26px;height:26px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;padding:0 7px;font-size:13px;line-height:1;transition:background .15s,color .15s,border-color .15s}.map-tool-btn:hover:not(:disabled){background:var(--hover-soft);border-color:var(--border-strong);color:var(--text-primary)}.map-tool-btn.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.map-tool-btn:disabled{color:var(--text-disabled);cursor:default}.map-tool-note{color:var(--text-faint);white-space:nowrap;flex-shrink:0;font-size:11px}.map-tool-label{color:var(--text-faint);white-space:nowrap;flex-shrink:0;margin-right:2px;font-size:11px}.map-attr{height:var(--map-attr-height,38%);background:var(--bg-panel);flex-direction:column;flex-shrink:0;min-height:0;display:flex}.map-attr-head{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:6px 10px;display:flex}.map-attr-title{color:var(--text-primary);flex-shrink:0;font-size:12px;font-weight:600}.map-attr-tabs{scrollbar-width:none;flex:1;align-items:center;gap:4px;min-width:0;display:flex;overflow-x:auto}.map-attr-tabs::-webkit-scrollbar{display:none}.map-attr-tab{border:1px solid var(--border);max-width:160px;color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;align-items:center;gap:5px;padding:3px 9px;font-size:11px;display:inline-flex;overflow:hidden}.map-attr-tab:hover{color:var(--text-primary);border-color:var(--border-strong)}.map-attr-tab.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.map-attr-tab-count{font-family:var(--font-mono);color:var(--text-faint);flex-shrink:0;font-size:10px}.map-attr-empty-hint{color:var(--text-faint);font-size:11px}.map-attr-toolbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:5px 10px;display:flex}.map-attr-search{border:1px solid var(--border);background:var(--bg-inset);min-width:0;color:var(--text-primary);border-radius:6px;flex:1;padding:4px 8px;font-size:12px}.map-attr-search:focus{border-color:var(--accent);outline:none}.map-attr-summary{font-family:var(--font-mono);color:var(--text-faint);flex-shrink:0;font-size:11px}.map-attr-readonly{border:1px solid var(--border);color:var(--text-faint);border-radius:999px;flex-shrink:0;padding:1px 7px;font-size:10px}.map-attr-body{flex:1;min-height:90px;overflow:auto}.map-attr-table{border-collapse:collapse;width:100%;font-size:11px;font-family:var(--font-mono)}.map-attr-table th,.map-attr-table td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:220px;padding:3px 8px;overflow:hidden}.map-attr-table thead th{z-index:1;background:var(--bg-elevated);color:var(--text-secondary);font-weight:500;position:sticky;top:0}.map-attr-table tbody tr{cursor:pointer}.map-attr-table tbody tr:hover{background:var(--hover-soft)}.map-attr-table tbody tr.active{background:var(--accent-soft);color:var(--text-primary)}.map-attr-index{width:46px;color:var(--text-faint);text-align:right;cursor:default}.map-attr-none{color:var(--text-faint);text-align:center;cursor:default;padding:12px}.map-attr-pager{border-top:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;gap:10px;padding:5px 10px;display:flex}.map-attr-page-info{font-family:var(--font-mono);color:var(--text-faint);font-size:11px}.map-feature-geom{color:var(--text-faint);margin-left:auto;margin-right:8px;font-size:10px}.map-layer-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.map-layer-row:last-child{border-bottom:none}.map-layer-row.is-hidden .map-layer-name,.map-layer-row.is-hidden .map-layer-meta{color:var(--text-disabled)}.map-layer-eye{width:24px;height:24px;color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:inline-flex}.map-layer-eye:hover:not(:disabled){background:var(--hover-soft)}.map-layer-row.is-hidden .map-layer-eye{color:var(--text-disabled)}.map-layer-row.dragging{opacity:.45}.map-layer-row.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.map-layer-row.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.map-layer-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);flex:1;overflow:hidden}.map-layer-warn{color:var(--warning);margin-left:6px;font-size:11px;font-style:normal}.map-layer-meta{font-family:var(--font-mono);color:var(--text-faint);flex-shrink:0;font-size:11px}.map-layer-zoom{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:11px}.map-layer-zoom:hover{border-color:var(--accent);color:var(--accent)}.map-canvas-wrap{flex:1;min-width:0;min-height:180px;position:relative}.map-canvas{background:var(--bg-inset);width:100%;height:100%}.map-coord-bar{z-index:5;color:#e8edf5;font-family:var(--font-mono);white-space:pre;pointer-events:none;-webkit-user-select:text;user-select:text;background:#172030b8;border-radius:999px;padding:3px 12px;font-size:11px;line-height:1.6;position:absolute;bottom:10px;right:10px}.measure-tip,.measure-result{color:#fde68a;font-family:var(--font-mono);white-space:pre-line;pointer-events:none;background:#172030d9;border:1px solid #facc158c;border-radius:6px;padding:3px 10px;font-size:11px;line-height:1.6}.measure-result{color:#fef3c7;pointer-events:auto;border-color:#facc15bf;align-items:flex-start;gap:6px;display:inline-flex;box-shadow:0 1px 6px #00000059}.measure-result-del{color:#fca5a5;cursor:pointer;background:0 0;border:0;margin-top:1px;padding:0 2px;font-size:14px;line-height:1}.measure-result-del:hover{color:#fecaca}.map-feature-info{border-top:1px solid var(--border);flex-shrink:0;max-height:32%;overflow-y:auto}.map-feature-header{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:6px 12px;font-size:12px;font-weight:600;display:flex}.map-feature-body{padding:0 12px 10px}.map-feature-layer{color:var(--accent);margin-bottom:4px;font-size:11px}.map-feature-table{border-collapse:collapse;width:100%;font-size:11px}.map-feature-table th,.map-feature-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;word-break:break-all;padding:3px 6px}.map-feature-table th{width:38%;color:var(--text-faint);font-weight:500;font-family:var(--font-mono)}.map-feature-table td{color:var(--text-primary)}.map-feature-empty{color:var(--text-faint);padding:0 12px 12px;font-size:12px}.chat-header{border-bottom:1px solid var(--border);font-family:var(--font-mono);color:var(--text-secondary);flex-shrink:0;align-items:center;gap:8px;padding:4px 4px 4px 16px;display:flex}.chat-header-info{flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.chat-header-actions{flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:flex}.chat-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:260px;color:var(--text-primary);font-weight:600;overflow:hidden}.chat-path{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:320px;font-size:11px;overflow:hidden}.chat-path-internal{color:var(--text-faint);font-style:normal}.chat-header-spacer{flex:1}.chat-rename-btn{color:var(--text-faint);cursor:pointer;visibility:hidden;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:12px}.chat-header:hover .chat-rename-btn{visibility:visible}.chat-rename-btn:hover{color:var(--text-primary);background:var(--hover-soft)}.chat-title-input{border:1px solid var(--accent);background:var(--bg-inset);min-width:0;max-width:320px;color:var(--text-primary);-webkit-user-select:text;user-select:text;border-radius:4px;padding:2px 8px;font-size:14px;font-weight:600}.chat-title-input:focus{outline:none}.chat-branch-badge{background:var(--plan-soft);color:var(--plan);white-space:nowrap;border-radius:10px;flex-shrink:0;padding:2px 8px;font-size:11px}.chat-cache-badge{background:var(--success-soft);color:var(--success);white-space:nowrap;cursor:default;border-radius:10px;flex-shrink:0;padding:2px 8px;font-size:11px}.chat-busy-dot{background:var(--warning);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.2s ease-in-out infinite busy-pulse}@keyframes busy-pulse{0%,to{opacity:.35}50%{opacity:1}}.chat-header,.sidebar-header{-webkit-app-region:drag;-webkit-user-select:none;user-select:none}.chat-header button,.chat-header input,.chat-header select,.sidebar-header button{-webkit-app-region:no-drag}.win-controls{-webkit-app-region:no-drag;flex-shrink:0;align-items:center;display:flex}.win-controls button{width:38px;height:32px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;line-height:1;display:flex}.win-controls button svg{display:block}.win-controls button:hover{background:var(--hover-soft);color:var(--text-primary)}.win-controls .win-close:hover{color:#fff;background:#dc2626}.timeline-wrap{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.timeline{flex-direction:column;flex:1;gap:12px;min-width:0;min-height:0;padding:18px 16px 8px;display:flex;overflow-y:auto}.timeline>*{width:100%;min-width:0;max-width:780px;margin:0 auto}.chat-placeholder{color:var(--text-faint);margin:auto}.jump-bottom{border:1px solid var(--border);background:var(--bg-elevated);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-pop);z-index:5;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;bottom:16px;right:24px}.jump-bottom:hover{color:var(--text-primary);border-color:var(--border-strong)}.tl-user{justify-content:flex-end;min-width:0;padding:2px 0;display:flex}.timeline>.tl-user{margin-top:10px}.tl-user-body{background:var(--user-bubble-bg);border:1px solid var(--user-bubble-border);border-radius:12px 12px 4px;flex-direction:column;align-items:flex-end;gap:4px;max-width:min(85%,560px);padding:8px 12px;display:flex}.tl-user-text{white-space:pre-wrap;word-break:break-word;color:var(--text-primary);line-height:1.55}.tl-user-images{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:100%;display:flex}.tl-user-image{border:1px solid var(--border);cursor:zoom-in;object-fit:contain;border-radius:8px;max-width:100%;max-height:180px}.tl-user-files{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:100%;display:flex}.tl-user-file{border:1px solid var(--border);background:var(--bg-panel);max-width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;display:flex}.tl-user-file.has-thumb{padding:4px 10px 4px 4px}.tl-user-file:hover{border-color:var(--accent)}.tl-user-file-thumb{object-fit:cover;border-radius:6px;flex:none;width:56px;height:56px}.tl-user-file-icon{flex:none;font-size:22px;line-height:1}.tl-user-file-meta{flex-direction:column;min-width:0;display:flex}.tl-user-file-name{text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-size:12.5px;overflow:hidden}.tl-user-file-size{color:var(--text-secondary);font-size:11px}.tl-user-actions{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.tl-user-action{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:6px;padding:2px 8px;font-size:11px;transition:color .15s,border-color .15s}.tl-user-action:hover{color:var(--plan);border-color:var(--plan)}.tl-user-body-editing{width:min(85%,560px)}.tl-user-edit-input{border:1px solid var(--border);background:var(--bg-inset);width:100%;min-height:52px;max-height:220px;color:var(--text-primary);resize:vertical;border-radius:8px;padding:7px 9px;font-family:inherit;font-size:13px;line-height:1.55}.tl-user-edit-input:focus{border-color:var(--accent);outline:none}.tl-user-edit-hint{text-align:right;color:var(--text-faint);align-self:stretch;font-size:11px}.tl-user-edit-submit{border:1px solid var(--accent-solid);background:var(--accent-solid);color:#fff;cursor:pointer;border-radius:6px;padding:3px 12px;font-size:11px}.tl-user-edit-submit:hover:not(:disabled){background:var(--accent-solid-hover);border-color:var(--accent-solid-hover)}.tl-user-edit-submit:disabled,.tl-user-action:disabled{opacity:.55;cursor:not-allowed}.tl-user-action:disabled:hover{color:var(--text-faint);border-color:var(--border)}.tl-process{flex-direction:column;gap:12px;min-width:0;display:flex}.tl-process-head{z-index:3;background:var(--bg-primary);padding:2px 0 6px;position:sticky;top:0}.tl-process-row{border:1px solid var(--border);background:var(--bg-panel);width:-moz-fit-content;width:fit-content;max-width:100%;color:var(--text-faint);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:3px 10px;font-size:12px;transition:color .15s,border-color .15s;display:flex}.tl-process-row:hover{color:var(--text-secondary);border-color:var(--border-strong)}.tl-process-caret{font-size:10px;line-height:1}.tl-process-label{flex-shrink:0}.tl-process-meta{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);color:var(--text-faint);font-size:11px;overflow:hidden}.tl-process-body{border-left:2px solid var(--border);flex-direction:column;gap:12px;min-width:0;margin-left:8px;padding-left:12px;display:flex}.tl-turn-notice{color:var(--text-faint);padding:2px 0;font-size:12px}.tl-turn-empty{color:var(--warning)}.tl-assistant{word-break:break-word;min-width:0;line-height:1.65}.tl-assistant>:first-child{margin-top:0}.tl-assistant>:last-child{margin-bottom:0}.tl-assistant p{margin:8px 0}.tl-assistant h1,.tl-assistant h2,.tl-assistant h3,.tl-assistant h4{color:var(--text-primary);margin:14px 0 8px}.tl-assistant ul,.tl-assistant ol{margin:8px 0;padding-left:22px}.tl-assistant li{margin:3px 0}.tl-assistant img{max-width:100%}.tl-assistant table{border-collapse:collapse;max-width:100%;margin:10px 0;font-size:13px;display:block;overflow-x:auto}.tl-assistant th,.tl-assistant td{border:1px solid var(--border);text-align:left;padding:5px 10px}.tl-assistant th{background:var(--bg-panel);color:var(--text-secondary)}.tl-assistant code{font-family:var(--font-mono);background:var(--bg-inset);border:1px solid var(--border);color:var(--accent);border-radius:4px;padding:1px 5px;font-size:13px}.tl-assistant pre{background:var(--bg-inset);border:1px solid var(--border);border-radius:8px;max-width:100%;margin:10px 0;padding:10px 12px;overflow-x:auto}.tl-assistant pre code{color:var(--text-primary);background:0 0;border:none;padding:0}.tl-assistant blockquote{border-left:3px solid var(--border);color:var(--text-secondary);margin:8px 0;padding-left:12px}.tl-assistant a{color:var(--accent)}.tl-thinking{min-width:0}.tl-thinking-row{width:100%;color:var(--text-faint);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:2px 0;font-size:13px;display:flex}.tl-thinking-row:hover{color:var(--text-secondary)}.tl-thinking-icon{text-align:center;width:16px;color:var(--plan);flex-shrink:0}.tl-thinking-toggle{color:var(--text-faint);flex-shrink:0;margin-left:auto;font-size:12px}.tl-thinking-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tl-thinking-text{color:var(--text-secondary)}.tl-tool{border-left:3px solid var(--border);min-width:0}.tl-tool-running{border-left-color:var(--info)}.tl-tool-done{border-left-color:var(--success)}.tl-tool-failed{border-left-color:var(--danger)}.tl-tool-row{cursor:pointer;text-align:left;width:100%;font-family:var(--font-mono);color:var(--text-secondary);background:0 0;border:none;border-radius:6px;align-items:baseline;gap:8px;margin:0 -8px;padding:4px 8px;font-size:12.5px;display:flex}.tl-tool-row:hover{background:var(--hover-soft)}.tl-tool-icon{text-align:center;flex-shrink:0;width:16px}.tl-tool-running .tl-tool-icon{color:var(--info)}.tl-tool-done .tl-tool-icon{color:var(--success)}.tl-tool-failed .tl-tool-icon,.tl-tool-failed .tl-tool-name{color:var(--danger)}.tl-tool-name{color:var(--warning);flex-shrink:0}.tl-tool-summary{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tl-tool-result{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;max-width:46%;overflow:hidden}.tl-tool-badge{border:1px solid var(--border);color:var(--text-faint);border-radius:4px;flex-shrink:0;padding:0 5px;font-size:11px;line-height:16px}.tl-tool-duration{color:var(--text-faint);flex-shrink:0;margin-left:auto;font-size:11.5px}.tl-tool-detail{flex-direction:column;gap:6px;min-width:0;padding:6px 0 2px;display:flex}.tl-pre{font-family:var(--font-mono);background:var(--bg-inset);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;max-width:100%;max-height:300px;color:var(--text-secondary);border-radius:6px;padding:8px 10px;font-size:12px;line-height:1.5;overflow:auto}.tl-pre-output{color:var(--text-secondary)}.tl-tool-empty{color:var(--text-faint);font-size:12px}.tl-plan{border:1px solid var(--plan);border-left:3px solid var(--plan);border-radius:var(--radius);background:var(--plan-soft);min-width:0;padding:12px 16px}.tl-plan-title{color:var(--plan);margin-bottom:8px;font-size:14px;font-weight:600}.tl-plan-steps{color:var(--text-primary);margin:0 0 10px;padding-left:22px;font-size:13.5px;line-height:1.7}.tl-plan-steps li{margin:2px 0}.tl-plan-execute{background:var(--plan-strong);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:7px 18px;font-size:13px}.tl-plan-execute:hover:not(:disabled){background:var(--plan-strong-hover)}.tl-plan-execute:disabled{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-disabled);cursor:not-allowed}.tl-plan-note{color:var(--text-secondary);font-size:12.5px}.tl-plan-done{color:var(--success)}.tl-plan-failed{border-color:var(--danger);background:var(--danger-soft)}.tl-approval{border:1px solid var(--warning);background:var(--warning-soft);border-radius:8px;flex-direction:column;gap:8px;min-width:0;padding:10px 12px;display:flex}.tl-approval-title{color:var(--warning);align-items:center;gap:6px;font-size:13px;display:flex}.tl-approval-icon{text-align:center;width:16px;display:inline-block}.tl-approval-summary{max-height:160px}.tl-approval-approved{border-color:var(--success);background:var(--success-soft)}.tl-approval-approved .tl-approval-title{color:var(--success)}.tl-approval-denied{border-color:var(--danger);background:var(--danger-soft)}.tl-approval-denied .tl-approval-title{color:var(--danger)}.tl-approval-actions{gap:10px;display:flex}.tl-btn-allow{background:var(--success-strong);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:5px 18px;font-size:13px}.tl-btn-allow:hover{background:var(--success-strong-hover)}.tl-btn-allow:disabled,.tl-btn-deny:disabled{opacity:.45;cursor:not-allowed}.tl-btn-allow:disabled:hover{background:var(--success-strong)}.tl-btn-deny:disabled:hover{background:var(--danger-strong)}.tl-btn-deny{background:var(--danger-strong);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:5px 18px;font-size:13px}.tl-btn-deny:hover{background:var(--danger-strong-hover)}.tl-question{border:1px solid var(--accent);background:var(--accent-soft);border-radius:8px;flex-direction:column;gap:8px;min-width:0;padding:10px 12px;display:flex}.tl-question-title{color:var(--accent);align-items:center;gap:6px;font-size:13px;display:flex}.tl-question-body{flex-direction:column;gap:10px;display:flex}.tl-question-item{flex-direction:column;gap:6px;display:flex}.tl-question-prompt{color:var(--text-primary);flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13px;display:flex}.tl-question-hint{color:var(--text-faint);border:1px solid var(--border);border-radius:4px;padding:0 4px;font-size:11px;font-style:normal}.tl-question-options{flex-wrap:wrap;gap:6px;display:flex}.tl-question-option{max-width:100%;color:var(--text-primary);background:var(--bg-inset);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;padding:5px 10px;font-size:12px;display:inline-flex}.tl-question-option:hover:not(:disabled){border-color:var(--accent)}.tl-question-option.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.tl-question-option:disabled{cursor:default;opacity:.85}.tl-question-option-desc{color:var(--text-faint);font-size:11px}.tl-question-input{width:100%;color:var(--text-primary);background:var(--bg-inset);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:12px}.tl-question-input:focus{border-color:var(--accent);outline:none}.tl-question-answered{border-color:var(--success);background:var(--success-soft)}.tl-question-answered .tl-question-title{color:var(--success)}.tl-question-cancelled{border-color:var(--danger);background:var(--danger-soft)}.tl-question-cancelled .tl-question-title{color:var(--danger)}.tl-question-timeout{border-color:var(--border);background:0 0}.tl-question-timeout .tl-question-title{color:var(--text-faint)}.tl-error{min-width:0;color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger);white-space:pre-wrap;word-break:break-word;border-radius:8px;padding:8px 12px;font-size:13px}.tl-system{min-width:0;color:var(--text-faint);text-align:center;padding:6px 14px;font-size:12px}.tl-system-compacted{color:var(--info)}.tl-pending{color:var(--text-faint);align-items:center;gap:8px;padding:2px 0;font-size:13px;display:flex}.tl-pending-spinner{text-align:center;width:16px;color:var(--info);display:inline-block}.cursor{color:var(--accent);animation:.9s step-start infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.chat-input-area{border-top:1px solid var(--border);flex-shrink:0}.chat-input-wrap{min-width:0;position:relative}.chat-input{background:var(--bg-panel);border:1px solid var(--border);box-shadow:var(--shadow-input);border-radius:14px;align-items:flex-end;gap:6px;margin:10px 16px 6px;padding:5px 5px 5px 4px;display:flex}.chat-input:focus-within{border-color:var(--accent)}.chat-input textarea{resize:none;min-width:0;min-height:38px;max-height:160px;color:var(--text-primary);background:0 0;border:none;border-radius:8px;flex:1;padding:9px 8px;font-family:inherit;font-size:14px;line-height:1.5;overflow-y:auto}.chat-input textarea:focus{outline:none}.chat-input textarea::placeholder{color:var(--text-faint)}.chat-input button{background:var(--accent-solid);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;width:34px;height:34px;padding:0;font-size:14px}.chat-input button:disabled{background:var(--bg-elevated);color:var(--text-disabled);cursor:not-allowed}.chat-input .send-btn{font-size:13px}.chat-input .send-btn:hover:not(:disabled){background:var(--accent-solid-hover)}.chat-input .send-stop{background:var(--danger-strong)}.chat-input .send-stop:hover{background:var(--danger-strong-hover)}.chat-queue{flex-direction:column;gap:6px;padding:8px 16px 0;display:flex}.chat-queue-item{border:1px dashed var(--border-strong);background:var(--bg-elevated);cursor:pointer;border-radius:8px;align-items:center;gap:8px;min-width:0;padding:6px 10px;display:flex}.chat-queue-item:hover,.chat-queue-item:focus-visible{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.chat-queue-item.failed{border-color:var(--danger-strong);border-style:solid}.chat-queue-item.failed .chat-queue-hint{color:var(--danger-strong)}.chat-queue-item.pending{opacity:.75;cursor:default;border-style:dotted}.chat-queue-item.pending:hover{border-color:var(--border-strong);background:var(--bg-elevated)}.chat-queue-retry{color:var(--danger-strong);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:11px}.chat-queue-retry:hover{background:var(--danger-strong);color:#fff}.chat-queue-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-primary);flex:1;font-size:13px;overflow:hidden}.chat-queue-hint{color:var(--text-faint);white-space:nowrap;flex-shrink:0;font-size:11px}.chat-queue-item:hover .chat-queue-hint,.chat-queue-item:focus-visible .chat-queue-hint{color:var(--accent)}.chat-queue-remove{width:18px;height:18px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;font-size:11px;line-height:1}.chat-queue-remove:hover{background:var(--danger-strong);color:#fff}.pending-images{flex-wrap:wrap;gap:8px;padding:8px 16px 0;display:flex}.pending-image-wrap{max-width:100%;position:relative}.pending-image{border:1px solid var(--border);object-fit:cover;border-radius:8px;max-width:100%;height:64px}.pending-image-remove{background:var(--danger-strong);color:#fff;cursor:pointer;border:none;border-radius:50%;width:18px;height:18px;font-size:10px;line-height:1;position:absolute;top:-6px;right:-6px}.pending-files{flex-wrap:wrap;gap:8px;padding:8px 16px 0;display:flex}.pending-file-chip{border:1px solid var(--border);background:var(--bg-panel);max-width:100%;color:var(--text-primary);border-radius:8px;align-items:center;gap:6px;padding:4px 8px;font-size:12px;display:flex}.pending-file-icon{font-size:14px;line-height:1}.pending-file-name{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.pending-file-size{color:var(--text-secondary);font-size:11px}.pending-file-remove{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:11px;line-height:1}.pending-file-remove:hover{color:var(--danger-strong)}.image-warning{color:var(--warning);padding:4px 16px 8px;font-size:12px}.session-retry-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:8px;padding:1px 8px;font-size:12px}.session-retry-btn:hover{background:var(--accent-soft)}.chat-statusbar{flex-wrap:wrap;align-items:center;gap:6px 4px;padding:4px 12px 10px;font-size:12px;display:flex;overflow:visible}.chat-statusbar-spacer{flex:1}.mode-switch{flex-shrink:0;gap:2px;display:flex}.mode-option{color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:3px 12px;font-size:12px}.mode-option.active{background:var(--accent-soft);color:var(--accent)}.mode-option.mode-option-plan.active{background:var(--warning-soft);color:var(--warning)}.mode-option.mode-option-yolo.active{background:var(--danger-soft);color:var(--danger)}.mode-option:not(.active):hover{color:var(--text-primary);background:var(--hover-soft)}.model-select{border-left:1px solid var(--border);flex-shrink:1;max-width:240px;margin-left:4px;padding-left:10px}.thinking-pill-icon{color:var(--text-faint);font-size:10px}.context-usage{font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:8px;padding:4px 10px;display:inline-flex}.context-usage:hover:not(:disabled){background:var(--hover-soft)}.context-usage:disabled{color:var(--text-disabled);cursor:not-allowed}.context-usage-text{color:var(--text-secondary);white-space:nowrap;font-size:11px}.context-usage:disabled .context-usage-text{color:var(--text-disabled)}.context-usage-bar{background:var(--border);border-radius:2px;width:44px;height:3px;display:block;overflow:hidden}.context-usage-fill{background:var(--usage-ok);border-radius:2px;height:100%;transition:width .3s;display:block}.context-usage-fill.warn{background:var(--usage-warn)}.context-usage-fill.danger{background:var(--usage-danger)}.palette{z-index:90;background:var(--bg-elevated);border:1px solid var(--border);max-height:260px;box-shadow:var(--shadow-pop);border-radius:10px;position:absolute;bottom:calc(100% - 4px);left:16px;right:16px;overflow-y:auto}.palette-title{color:var(--text-faint);padding:8px 12px 4px;font-size:11px}.palette-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:7px 12px;font-size:13px;display:flex}.palette-item.active{background:var(--hover-soft)}.palette-label{white-space:nowrap}.palette-desc{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.palette-detail{color:var(--text-faint);white-space:nowrap;margin-left:auto;font-size:11px}.floating-panel{z-index:200;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);min-width:160px;max-width:calc(100vw - 16px);max-height:min(70vh,560px);box-shadow:var(--shadow-pop);padding:4px;position:fixed;overflow-y:auto}.row-menu{flex-direction:column;min-width:180px;max-width:min(320px,100vw - 16px);max-height:min(60vh,480px);display:flex;overflow-y:auto}.row-menu-item{border-radius:var(--radius-sm);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:13px;display:flex}.row-menu-item:hover:not(:disabled){background:var(--hover-soft)}.row-menu-item:disabled{color:var(--text-disabled);cursor:not-allowed}.row-menu-item.danger{color:var(--danger)}.row-menu-item.danger:hover:not(:disabled){background:var(--danger-soft)}.row-menu-separator{background:var(--border);height:1px;margin:4px 2px}.dd-root{min-width:0;display:inline-flex;position:relative}.dd-trigger{color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;transition:background .15s,color .15s;display:inline-flex}.dd-trigger:hover:not(:disabled),.dd-trigger.open:not(:disabled){background:var(--hover-soft);color:var(--text-primary)}.dd-trigger:disabled{color:var(--text-disabled);cursor:not-allowed}.dd-trigger-label{white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.dd-trigger-hint{color:var(--text-faint);flex-shrink:0;font-size:11px}.dd-caret{color:var(--text-faint);flex-shrink:0;font-size:9px}.dd-pop{z-index:200;background:var(--bg-elevated);border:1px solid var(--border);min-width:140px;max-height:320px;box-shadow:var(--shadow-pop);border-radius:10px;padding:4px;overflow-y:auto}.dd-group-label{color:var(--text-faint);letter-spacing:.5px;-webkit-user-select:none;user-select:none;padding:6px 10px 3px;font-size:10.5px}.dd-option{width:100%;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:8px;padding:6px 10px;font-family:inherit;font-size:12.5px;display:flex}.dd-option:hover:not(:disabled){background:var(--hover-soft);color:var(--text-primary)}.dd-option.selected{color:var(--accent)}.dd-option-check{width:14px;color:var(--accent);flex-shrink:0;font-size:11px}.dd-option-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.dd-option-hint{color:var(--text-faint);flex-shrink:0;font-size:11px}.dialog-overlay{background:var(--backdrop);z-index:320;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--bg-elevated);border:1px solid var(--border);width:min(440px,100%);max-height:100%;box-shadow:var(--shadow-dialog);border-radius:12px;padding:20px;overflow-y:auto}.dialog-title{color:var(--text-primary);margin-bottom:16px;font-size:15px;font-weight:600}.layer-picker-dialog{width:min(560px,100%)}.layer-picker-summary{color:var(--text-secondary);margin:0 0 10px;font-size:12px;line-height:1.6}.layer-picker-toolbar{gap:8px;margin-bottom:10px;display:flex}.layer-picker-list{border:1px solid var(--border);background:var(--bg-panel);border-radius:8px;max-height:min(48vh,420px);padding:6px 0;overflow-y:auto}.layer-picker-group+.layer-picker-group{border-top:1px solid var(--border)}.layer-picker-group-title{color:var(--text-primary);align-items:center;gap:8px;padding:8px 12px 6px;font-size:12px;font-weight:600;display:flex}.layer-picker-group-kind{color:var(--text-faint);font-size:10px;font-weight:400}.layer-picker-row{cursor:pointer;color:var(--text-primary);align-items:center;gap:8px;padding:6px 12px 6px 26px;font-size:12px;display:flex}.layer-picker-row:hover{background:var(--hover-soft)}.layer-picker-row input{accent-color:var(--accent)}.layer-picker-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.layer-picker-path{text-overflow:ellipsis;white-space:nowrap;max-width:55%;color:var(--text-faint);font-size:11px;overflow:hidden}.layer-picker-progress{color:var(--text-secondary);margin-top:10px;font-size:12px}.layer-picker-error{background:var(--danger-soft);color:var(--danger);white-space:pre-wrap;border-radius:6px;margin-top:10px;padding:8px 10px;font-size:12px}.dialog-field{margin-bottom:14px}.dialog-field>label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;display:block}.dialog-checkbox{cursor:pointer;align-items:center;gap:8px;color:var(--text-primary)!important;font-size:13px!important;display:flex!important}.dialog-field select,.dialog-field textarea,.dialog-field input[type=number],.dialog-field input:not([type]),.dialog-field input[type=password],.dialog-field input[type=text]{box-sizing:border-box;border:1px solid var(--border);background:var(--bg-panel);width:100%;color:var(--text-primary);border-radius:8px;padding:8px 10px;font-size:13px}.dialog-field select:focus,.dialog-field textarea:focus,.dialog-field input:focus{border-color:var(--accent);outline:none}.prompt-section textarea,.dialog-field>textarea{font-family:var(--font-mono);resize:vertical;font-size:12.5px;line-height:1.55}.dialog-hint{color:var(--text-faint);margin-top:4px;font-size:11px;line-height:1.5}.instructions-editor{resize:vertical;border:1px solid var(--border);background:var(--bg-panel);width:100%;min-height:300px;max-height:55vh;color:var(--text-primary);font-family:var(--font-mono);border-radius:8px;padding:10px 12px;font-size:12.5px;line-height:1.55}.instructions-editor:focus{border-color:var(--accent);outline:none}.instructions-field .dialog-actions{margin-top:12px}.instructions-editor.head-editor{min-height:140px}.dialog-hint.hint-warn{color:var(--warning)}.token-chips{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.token-chips-label{color:var(--text-faint);font-size:11px}.token-chip{border:1px solid var(--border);background:var(--bg-inset);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.token-chip:hover{border-color:var(--accent);color:var(--text)}.prompt-viewer-overlay{z-index:330}.dialog.prompt-viewer{width:min(860px,100%)}.prompt-viewer-body{border:1px solid var(--border);background:var(--bg-panel);max-height:62vh;color:var(--text-primary);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;border-radius:8px;margin:0;padding:12px;font-size:12px;line-height:1.6;overflow:auto}.prompt-layers{border:1px solid var(--border);background:var(--bg-panel);border-radius:8px;margin-top:16px}.prompt-layers summary{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;padding:8px 12px;font-size:12px}.prompt-layers summary:hover{color:var(--text-primary)}.prompt-layers-body{color:var(--text-secondary);padding:0 12px 10px;font-size:12px;line-height:1.65}.prompt-layers-body ol{margin:6px 0;padding-left:20px}.prompt-layers-body li{margin:4px 0}.prompt-layers-body strong{color:var(--text-primary);font-weight:600}.prompt-layers-body code{font-family:var(--font-mono);background:var(--bg-elevated);border-radius:4px;padding:1px 4px;font-size:11px}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.dialog-btn-secondary,.dialog-btn-primary{cursor:pointer;border:none;border-radius:8px;padding:8px 18px;font-size:13px}.dialog-btn-secondary{background:var(--bg-panel);border:1px solid var(--border);color:var(--text-secondary)}.dialog-btn-secondary:hover{color:var(--text-primary);border-color:var(--border-strong)}.dialog-btn-secondary:disabled{color:var(--text-disabled);cursor:not-allowed}.dialog-btn-secondary.danger{color:var(--danger);border-color:var(--danger)}.dialog-btn-secondary.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.dialog-btn-primary{background:var(--accent-solid);color:#fff}.dialog-btn-primary:hover:not(:disabled){background:var(--accent-solid-hover)}.dialog-btn-primary:disabled{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-disabled);cursor:not-allowed}.dir-browser{flex-direction:column;width:min(480px,100%);max-height:100%;display:flex}.dir-browser-path{color:var(--text-secondary);background:var(--bg-inset);border:1px solid var(--border);word-break:break-all;border-radius:6px;margin-bottom:8px;padding:6px 8px;font-size:11px}.dir-browser-list{border:1px solid var(--border);border-radius:6px;flex:1;min-height:120px;padding:4px;overflow-y:auto}.dir-browser-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:4px;padding:6px 8px;font-size:13px;display:block;overflow:hidden}.dir-browser-item:hover{background:var(--hover-soft)}.dir-browser-up{color:var(--text-secondary)}.dir-browser-empty{color:var(--text-faint);text-align:center;padding:12px;font-size:12px}.dir-browser-error{color:var(--danger)}.project-path-row{gap:8px;display:flex}.project-path-row input{flex:1;min-width:0}.settings-dialog{grid-template-rows:auto minmax(0,1fr);grid-template-columns:180px minmax(0,1fr);gap:0;width:min(1200px,100%);height:min(880px,100%);max-height:none;padding:18px 0 0;display:grid;position:relative;overflow:hidden}.settings-dialog>.dialog-title{grid-column:1/-1;padding:0 22px}.settings-nav{border-right:1px solid var(--border);flex-direction:column;grid-area:2/1;gap:2px;min-height:0;padding:0 10px 0 14px;display:flex;overflow:hidden}.settings-nav-title{letter-spacing:.5px;color:var(--text-faint);padding:4px 10px 6px;font-size:11px;font-weight:600;line-height:1.4}.settings-nav-list{flex-direction:column;flex:1;gap:2px;min-height:0;padding-bottom:8px;display:flex;overflow-y:auto}.settings-nav-item{width:100%;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.45;transition:background .15s,color .15s;display:flex}.settings-nav-item>span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.settings-nav-item:hover{background:var(--hover-soft);color:var(--text-primary)}.settings-nav-item.active{background:var(--active-soft);color:var(--text-primary);font-weight:600}.settings-nav-count{background:var(--bg-panel);border:1px solid var(--border);min-width:18px;color:var(--text-faint);font-family:var(--font-mono);text-align:center;border-radius:999px;flex-shrink:0;padding:0 5px;font-size:11px}.settings-close{z-index:3;border-radius:6px;width:28px;height:28px;padding:0;font-size:14px;position:absolute;top:10px;right:12px}.settings-content{grid-area:2/2;min-height:0;padding:2px 22px 18px;overflow-y:auto}.settings-content-head{justify-content:space-between;align-items:center;gap:12px;min-height:28px;margin-bottom:10px;padding-right:28px;display:flex}.settings-content-head>span:first-child{color:var(--text-primary);font-size:15px;font-weight:600;line-height:1.4}.trash-panel-head{align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.trash-panel-head>div:first-child{flex:1;min-width:0}.trash-panel-title{color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:600}.trash-panel-actions{flex-shrink:0;gap:8px;display:flex}.trash-panel-actions .dialog-btn-secondary{padding:6px 12px}.settings-dialog .trash-item{border-radius:8px;gap:10px;padding:8px 10px}.settings-dialog .trash-list{max-height:none;overflow-y:visible}.settings-dialog .trash-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.trash-meta{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);color:var(--text-faint);flex:1;font-size:11px;overflow:hidden}.trash-action{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:3px 10px;font-size:12px;transition:color .15s,border-color .15s,background .15s}.trash-action:hover{border-color:var(--border-strong);color:var(--text-primary)}.trash-action.danger{color:var(--danger);border-color:var(--danger)}.trash-action.danger:hover{background:var(--danger-soft)}@media (max-width:720px){.settings-dialog{grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.settings-close{display:none}.settings-nav{border-right:none;border-bottom:1px solid var(--border);flex-direction:column;grid-area:2/1;gap:0;padding:0 14px 8px;overflow:hidden}.settings-nav-title{display:none}.settings-nav-list{flex-direction:row;flex:none;gap:6px;padding:0 0 8px;overflow:auto hidden}.settings-nav-item{white-space:nowrap;flex-shrink:0;width:auto}.settings-content{grid-area:3/1;padding:12px 14px 14px}}.percent-row{align-items:center;gap:8px;display:flex}.percent-row input[type=range]{min-width:0;height:4px;accent-color:var(--chart-fill);cursor:pointer;flex:1}.percent-row input[type=number]{background:var(--bg-panel);border:1px solid var(--border);width:70px;color:var(--text-primary);border-radius:6px;flex:none;padding:6px 8px;font-size:13px}.percent-sign{color:var(--text-secondary);font-size:12px}.context-total-label{color:var(--text-secondary);margin-bottom:4px;font-size:12px}.context-unknown{color:var(--warning)}.context-total-value{font-size:16px;font-weight:600}.context-percent{color:var(--text-secondary);margin-left:6px;font-size:12px}.context-bar{background:var(--hover-soft);border-radius:4px;height:8px;margin:8px 0 4px;overflow:hidden}.context-bar-fill{background:var(--usage-ok);height:100%;display:block}.context-bar-fill.warn{background:var(--usage-warn)}.context-bar-fill.danger{background:var(--usage-danger)}.context-section-title{color:var(--text-primary);margin:14px 0 6px;font-size:12px;font-weight:600}.context-breakdown-row{grid-template-columns:minmax(90px,150px) minmax(0,1fr) 70px;align-items:center;gap:8px;margin:4px 0;font-size:12px;display:grid}.context-breakdown-label{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.context-breakdown-bar{background:var(--hover-soft);border-radius:4px;height:8px;overflow:hidden}.context-breakdown-fill{background:var(--chart-fill);height:100%;display:block}.context-breakdown-value{text-align:right;color:var(--text-secondary);font-variant-numeric:tabular-nums}.context-bill{color:var(--text-secondary);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.provider-manager{padding-top:2px}.provider-list{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.provider-item{border:1px solid var(--border);border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;transition:background .15s;display:flex}.provider-item:hover{background:var(--hover-soft)}.provider-info{flex-direction:column;gap:2px;min-width:120px;display:flex}.provider-name{color:var(--text-primary);font-weight:600}.provider-meta{color:var(--text-faint);font-size:10px}.provider-url{min-width:0;color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.provider-empty{color:var(--text-faint);font-size:12px}.provider-add-btn{border:1px dashed var(--border-strong);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:6px 10px;font-size:12px}.provider-add-btn:hover{color:var(--text-primary);background:var(--hover-soft)}.provider-form{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.provider-form-row{gap:8px;display:flex}.provider-form-row input{flex:1;min-width:0}.provider-form input{background:var(--bg-inset);border:1px solid var(--border);min-width:0;color:var(--text-primary);border-radius:6px;padding:6px 8px;font-size:12px}.provider-form input:focus{border-color:var(--accent);outline:none}.provider-form-actions{flex-wrap:wrap;gap:8px;display:flex}.upstream-list{border:1px solid var(--border);border-radius:6px;max-height:180px;padding:4px 8px;overflow-y:auto}.upstream-title{color:var(--text-faint);padding:4px 0;font-size:11px}.upstream-item{cursor:pointer;color:var(--text-secondary);align-items:center;gap:8px;padding:3px 0;font-size:12px;display:flex}.upstream-name{white-space:nowrap;color:var(--text-primary)}.upstream-id{color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.upstream-caps{flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.upstream-cap{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:4px;padding:0 5px;font-size:9px;font-weight:600;line-height:15px}.upstream-cap-reasoning{background:var(--plan-soft);color:var(--plan)}.provider-models-panel{border:1px solid var(--border);background:var(--bg-panel);border-radius:10px;flex-direction:column;gap:10px;padding:10px;display:flex}.provider-models-title{color:var(--text-primary);justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.provider-model-list{flex-direction:column;gap:4px;max-height:240px;display:flex;overflow-y:auto}.provider-model-item{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 8px;display:flex}.provider-model-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12.5px;overflow:hidden}.provider-model-id{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-faint);font-family:var(--font-mono);flex:1;font-size:11px;overflow:hidden}.model-cap-badge{background:var(--accent-soft);min-width:15px;height:15px;color:var(--accent);vertical-align:1px;border-radius:4px;justify-content:center;align-items:center;margin-left:5px;padding:0 3px;font-size:9px;font-weight:600;line-height:1;display:inline-flex}.model-context-input{border:1px solid var(--border);background:var(--bg-panel);width:78px;color:var(--text-primary);font-family:var(--font-mono);border-radius:6px;flex-shrink:0;padding:4px 6px;font-size:11px}.model-context-input:focus{border-color:var(--accent);outline:none}.model-effort-select{border:1px solid var(--border);background:var(--bg-panel);color:var(--text-secondary);font-family:var(--font-mono);border-radius:6px;flex-shrink:0;padding:4px;font-size:11px}.model-vision-btn{border:1px solid var(--border);background:var(--bg-panel);color:var(--text-disabled);cursor:pointer;white-space:nowrap;border-radius:6px;flex-shrink:0;padding:4px 7px;font-size:11px}.model-vision-btn:hover{color:var(--text-secondary)}.model-vision-btn.active{color:var(--accent);border-color:var(--accent)}.provider-item .session-action-btn{border-radius:6px;flex-shrink:0;padding:4px 7px}.skills-manager .skills-list{flex-direction:column;gap:6px;max-height:320px;padding:2px;display:flex;overflow-y:auto}.skill-item{border:1px solid var(--border);background:var(--bg-panel);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;transition:background .15s;display:flex}.skill-item .skill-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.skill-name{color:var(--text-primary);font-size:13px;font-weight:600}.skill-desc{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.skill-scope{color:var(--text-faint);font-size:11px}.skill-item.off .skill-name,.skill-item.off .skill-desc{color:var(--text-faint)}.skills-empty{text-align:center;color:var(--text-faint);padding:14px 0;font-size:12px}.skill-group-label{color:var(--text-faint);letter-spacing:.5px;-webkit-user-select:none;user-select:none;margin:10px 0 4px;font-size:11px}.skill-switch{background:var(--border-strong);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:34px;height:18px;padding:0;transition:background .15s;position:relative}.skill-switch:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.skill-switch.on{background:var(--accent-solid)}.skill-switch.on:after{transform:translate(16px)}.skill-switch:disabled{background:var(--border);cursor:not-allowed}.skill-switch:disabled:after{background:var(--text-disabled)}.global-error{background:var(--danger-strong);color:#fff;cursor:pointer;max-width:calc(100vw - 32px);box-shadow:var(--shadow-dialog);z-index:340;border-radius:8px;padding:9px 18px;animation:.22s ease-out toast-in;position:fixed;top:16px;left:50%;transform:translate(-50%)}.global-error.leaving{animation:.35s ease-in forwards toast-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}@keyframes toast-out{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-20px)}}@media (max-width:1279px){.timeline{padding:14px 12px 8px}.chat-header{padding:8px 12px}.chat-input{margin:8px 12px 6px}.pending-images{padding:8px 12px 0}.chat-statusbar{padding:4px 10px 8px}.jump-bottom{right:16px}}@media (max-width:1099px){.chat-path{display:none}.chat-title{max-width:200px}}@media (max-width:899px){.app,.app.map-open{grid-template-columns:minmax(0,1fr)}.panel-splitter-sidebar,.panel-splitter-chat{display:none}.center-panel{z-index:130;border-right:0;position:fixed;inset:0}.sidebar{z-index:150;visibility:hidden;width:min(320px,86vw);max-width:86vw;box-shadow:var(--shadow-dialog);transition:transform .2s,visibility .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%)}.app.sidebar-open .sidebar{visibility:visible;transform:translate(0)}.sidebar-backdrop{z-index:140;background:var(--backdrop);cursor:pointer;border:none;padding:0;display:block;position:fixed;inset:0}.sidebar-toggle{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:2px 8px;font-size:16px;display:inline-flex}.sidebar-toggle:hover{background:var(--hover-soft);color:var(--text-primary)}.sidebar-nav{display:none}.chat-header{gap:4px 8px}.chat-title{max-width:160px}.tl-user-body{max-width:92%}}@media (max-width:639px){.timeline{padding:10px 8px 6px}.chat-input{border-radius:12px;margin:8px}.pending-images{padding:6px 8px 0}.chat-statusbar{padding:2px 8px 8px}.dialog-overlay{padding:8px}.dialog{padding:16px}.tl-user-body{max-width:96%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.boot-screen{background:var(--bg-primary);height:100vh;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.boot-title{color:var(--text-primary);letter-spacing:.02em;font-size:18px;font-weight:600}.boot-hint{color:var(--text-faint);font-size:13px}.boot-overlay{z-index:350;background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.boot-card{border:1px solid var(--border);background:var(--bg-elevated);width:min(360px,100%);box-shadow:var(--shadow-dialog);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:28px 24px;display:flex}.boot-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite boot-spin}.boot-error-icon{background:var(--danger-soft,#dc262614);width:28px;height:28px;color:var(--danger);border-radius:50%;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.boot-message{max-height:35vh;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.55;overflow:auto}.boot-actions{gap:8px;margin-top:6px;display:flex}.boot-card .dialog-btn-primary,.boot-card .dialog-btn-secondary{min-width:96px}@keyframes boot-spin{to{transform:rotate(360deg)}}.login-view{background:var(--bg-primary);justify-content:center;align-items:center;height:100vh;padding:24px;display:flex}.login-card{border:1px solid var(--border);background:var(--bg-panel);border-radius:14px;flex-direction:column;gap:12px;width:100%;max-width:340px;padding:28px 26px 22px;display:flex}.login-title{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.login-subtitle{color:var(--text-faint);margin:-8px 0 6px;font-size:13px}.login-field{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:13px;display:flex}.login-field input{border:1px solid var(--border-strong);background:var(--bg-inset);color:var(--text-primary);border-radius:8px;padding:9px 10px;font-size:14px}.login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.login-error{background:var(--danger-soft);color:var(--danger);border-radius:8px;padding:8px 10px;font-size:13px}.login-submit{background:var(--accent-solid);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:4px;padding:10px;font-size:14px}.login-submit:hover:not(:disabled){background:var(--accent-solid-hover)}.login-submit:disabled{cursor:default;opacity:.7}.login-secondary{color:var(--text-secondary);border:1px solid var(--border-strong);background:0 0}.login-secondary:hover:not(:disabled){background:var(--bg-inset);border-color:var(--accent)}.login-hint{color:var(--text-faint);margin:2px 0 0;font-size:12px;line-height:1.6}.sidebar-user-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-account{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:7px;margin-top:auto;padding:12px 0 14px;display:flex}.settings-account-label{letter-spacing:.5px;color:var(--text-faint);padding:0 10px;font-size:10.5px;font-weight:600;line-height:1.3}.settings-account-name{min-width:0;color:var(--text-primary);align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:600;line-height:1.45;display:flex}.settings-account-username{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-account-role{border:1px solid var(--border);color:var(--text-faint);border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:10.5px;font-weight:500;line-height:1.5}.settings-account-logout{border:1px solid var(--border);width:100%;color:var(--text-secondary);text-align:center;cursor:pointer;background:0 0;border-radius:7px;padding:6px 10px;font-family:inherit;font-size:12px;font-weight:500;line-height:1.4;transition:background .15s,border-color .15s,color .15s}.settings-account-logout:hover{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}@media (max-width:720px){.settings-account{flex-direction:row;align-items:center;gap:8px;margin-top:0;padding:8px 0 0}.settings-account-label{display:none}.settings-account-name{flex:1;padding:0}.settings-account-logout{flex-shrink:0;width:auto;padding:5px 10px}}.user-manager{flex-direction:column;gap:16px;display:flex}.user-create-row{flex-wrap:wrap;gap:8px;display:flex}.user-create-row input{flex:150px;min-width:0}.user-create-error{color:var(--danger);font-size:12px}.user-table{border-collapse:collapse;width:100%;font-size:13px}.user-table th,.user-table td{text-align:left;border-bottom:1px solid var(--border);padding:7px 8px}.user-table th{color:var(--text-faint);font-weight:500}.user-table td{color:var(--text-secondary)}.user-row-disabled td{color:var(--text-disabled)}.user-row-actions{flex-wrap:wrap;gap:6px;display:flex}.user-row-actions input{width:110px}.knowledge-manager{flex-direction:column;gap:16px;display:flex}.knowledge-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.knowledge-row input{flex:220px;min-width:0}.knowledge-table{border-collapse:collapse;width:100%;font-size:13px}.knowledge-table th,.knowledge-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:7px 8px}.knowledge-table th{color:var(--text-faint);font-weight:500}.knowledge-table td{color:var(--text-secondary)}.knowledge-table select{max-width:280px}.knowledge-table th:nth-child(3),.knowledge-table td:nth-child(3){min-width:260px}.knowledge-id{color:var(--text-faint);font-family:ui-monospace,Consolas,monospace;font-size:12px}.knowledge-desc{max-width:260px;color:var(--text-faint)}.knowledge-path{color:var(--text-faint);word-break:break-all;font-size:11px}.knowledge-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.knowledge-test-result{font-size:12px}.knowledge-test-result.ok{color:#34d399}.knowledge-test-result.fail{color:var(--danger,#f87171)}.knowledge-test-result.inline{text-overflow:ellipsis;white-space:nowrap;max-width:320px;margin-top:4px;overflow:hidden}.course-switch-list{flex-direction:column;gap:6px;display:flex}.course-switch-item{border:1px solid var(--border);color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border-radius:8px;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 12px;display:flex}.course-switch-item:hover{background:var(--hover,#ffffff0d)}.course-switch-item.active{border-color:var(--accent);color:var(--text-primary);cursor:default}.course-switch-name{font-size:13px}.course-switch-meta{color:var(--text-faint);font-size:11px}.user-workspaces-row>td{border-bottom:1px solid var(--border);padding:0 0 10px}.user-workspaces{border:1px solid var(--border);background:var(--surface-2,#ffffff05);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.user-workspaces-head{color:var(--text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.user-workspaces-open{align-items:center;gap:8px;display:flex}.user-workspaces-notice{color:var(--text-secondary);background:#34d3991f;border-radius:8px;padding:6px 10px;font-size:12px}.user-workspaces-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.user-workspaces-list summary{cursor:pointer;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:10px;padding:6px 8px;display:flex}.user-workspaces-list summary:hover{background:var(--hover,#ffffff0d)}.user-workspace-name{color:var(--text-primary);font-size:13px}.user-workspace-meta{color:var(--text-faint);font-size:11px}.user-workspace-path{text-overflow:ellipsis;white-space:nowrap;color:var(--text-faint);text-align:left;direction:rtl;flex:100%;font-size:11px;overflow:hidden}.user-workspace-remove{flex:none;padding:3px 10px;font-size:12px}.course-notice{border:1px solid var(--border);background:var(--bg-panel);color:var(--text-secondary);border-radius:8px;margin:6px 0 0;padding:7px 10px;font-size:12px}.knowledge-desc-input{resize:vertical;border:1px solid var(--border);background:var(--bg-panel);width:100%;min-height:52px;max-height:160px;color:var(--text-primary);border-radius:8px;padding:6px 8px;font-size:12px;line-height:1.5}.knowledge-desc-input:focus{border-color:var(--accent);outline:none}.course-prompt-btn-filled{color:var(--accent);border-color:var(--accent)}.course-prompt-row>td{background:var(--bg-inset);padding:0 8px 8px}.course-prompt-box{flex-direction:column;gap:6px;display:flex}.course-prompt-input{resize:vertical;border:1px solid var(--border);background:var(--bg-panel);width:100%;min-height:96px;max-height:280px;color:var(--text-primary);border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.6}.course-prompt-input:focus{border-color:var(--accent);outline:none}.course-prompt-count{color:var(--text-disabled);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.course-prompt-count.over{color:var(--danger)}.user-workspace-sessions{flex-direction:column;gap:4px;margin:4px 0 4px 18px;padding:0;list-style:none;display:flex}.user-workspace-sessions li{border-radius:6px;align-items:center;gap:10px;padding:4px 8px;display:flex}.user-workspace-sessions li:hover{background:var(--hover,#ffffff0d)}.user-workspace-sessions.trashed .user-session-name{color:var(--text-faint);text-decoration:line-through}.user-session-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);flex:1;font-size:12px;overflow:hidden}.user-session-time{color:var(--text-faint);white-space:nowrap;font-size:11px}.app.embed .sidebar-footer{padding:6px 10px}.app.embed .sidebar-header{padding-top:4px;padding-bottom:4px}.app.embed .timeline{padding-top:6px}.app.embed .chat-input{margin:6px}.attach-btn{width:30px;height:30px;color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;margin-right:4px;font-size:15px;transition:background .15s,color .15s;display:inline-flex}.attach-btn:hover:not(.disabled){background:var(--hover-soft);color:var(--text-primary)}.attach-btn.disabled{color:var(--text-disabled);cursor:not-allowed}.files-dialog{flex-direction:column;gap:10px;width:min(560px,100vw - 32px);max-height:76vh;display:flex}.files-path{color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:2px;font-size:12px;display:flex}.files-crumb{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:12px}.files-crumb:hover{background:var(--hover-soft);color:var(--text-primary)}.files-crumb-group{align-items:center;gap:2px;display:inline-flex}.files-crumb-sep{color:var(--text-disabled)}.files-list{border:1px solid var(--border);background:var(--bg-inset);border-radius:10px;flex:1;min-height:120px;max-height:46vh;margin:0;padding:4px;list-style:none;overflow-y:auto}.files-row{margin:0}.files-row-main{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:flex}.files-row-main:hover{background:var(--hover-soft)}.files-icon{flex-shrink:0}.files-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.files-size{color:var(--text-faint);flex-shrink:0;font-size:11px}.files-empty{color:var(--text-faint);text-align:center;padding:14px 8px;font-size:13px}.ga-boot{color:var(--text-secondary);flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.ga-error{color:var(--danger);white-space:pre-wrap;font-size:12px;line-height:1.5}.ga-section{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.ga-section:first-child{border-top:0;margin-top:0;padding-top:0}.ga-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ga-drop-overlay{z-index:400;border:2px dashed var(--accent);color:var(--text-primary);pointer-events:none;background:#0a101aad;justify-content:center;align-items:center;font-size:15px;display:flex;position:fixed;inset:0}.ga-details{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel)}.ga-details>summary{cursor:pointer;color:var(--text-secondary);padding:8px 10px;font-size:12px}.ga-details>.ga-details-body{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:10px;display:flex}.file-preview{flex-direction:column;flex:1;min-height:0;display:flex}.file-preview-head{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:6px;padding:5px 8px;display:flex}.file-preview-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.file-preview-meta{color:var(--text-faint);white-space:nowrap;font-size:10.5px}.file-preview-map-state{color:var(--accent);white-space:nowrap;font-size:10.5px}.file-preview-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:1px 7px;font-size:11px}.file-preview-btn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text-primary)}.file-preview-btn:disabled{opacity:.45;cursor:default}.file-preview-body{flex-direction:column;flex:1;gap:8px;min-height:0;padding:8px;display:flex;overflow:auto}.file-preview-hint{color:var(--text-faint);text-align:center;padding:6px 0;font-size:11px}.file-preview-error{color:var(--danger);word-break:break-word;font-size:11.5px;line-height:1.5}.file-preview-image-wrap{cursor:zoom-in;background:0 0;border:0;align-self:center;max-width:100%;padding:0}.file-preview-image{object-fit:contain;border-radius:var(--radius-sm);background:var(--bg-inset);max-width:100%;max-height:220px;display:block}.file-preview-summary{color:var(--text-secondary);flex-wrap:wrap;gap:8px;font-size:11px;display:flex}.file-preview-summary span{background:var(--bg-inset);border-radius:999px;padding:2px 7px}.file-preview-text{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--text-secondary);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;max-height:320px;margin:0;padding:8px;font-size:11px;line-height:1.45;overflow:auto}.file-preview-markdown{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--text-secondary);max-height:360px;padding:10px 12px;font-size:12px;overflow:auto}.file-preview-pdf{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;flex:auto;width:100%;min-height:320px}.file-preview-pdf-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.file-preview-pdf-actions .file-preview-hint{text-align:left;padding:0}.file-preview-table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:220px;overflow:auto}.file-preview-table{border-collapse:collapse;width:100%;font-size:11px}.file-preview-table th,.file-preview-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:160px;padding:3px 6px;overflow:hidden}.file-preview-table th{background:var(--bg-panel);color:var(--text-secondary);font-weight:500;position:sticky;top:0}.center-view .file-preview-head{padding:8px 12px}.center-view .file-preview-body{gap:10px;padding:12px 16px}.center-view .file-preview-image{max-height:calc(100vh - 260px)}.center-view .file-preview-text{max-height:none;font-size:12.5px;line-height:1.55}.center-view .file-preview-markdown{max-height:none;padding:16px 20px;font-size:13.5px}.center-view .file-preview-pdf{min-height:calc(100vh - 300px)}.center-view .file-preview-table-wrap{max-height:calc(100vh - 360px)}.file-preview-lightbox{z-index:340;cursor:zoom-out;background:#000000d1;justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}.file-preview-lightbox img{object-fit:contain;max-width:100%;max-height:100%}.file-preview-lightbox-close{color:#fff;cursor:pointer;background:#0006;border:1px solid #ffffff4d;border-radius:50%;width:30px;height:30px;font-size:14px;position:absolute;top:14px;right:16px}button.tl-user-image{background:0 0;border:none;max-width:100%;padding:0;display:block}button.tl-user-image img{border:1px solid var(--border);object-fit:contain;cursor:zoom-in;border-radius:8px;max-width:100%;max-height:180px;display:block}.attachment-lightbox{z-index:340;cursor:zoom-out;background:#000000d1;justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}.attachment-lightbox img{object-fit:contain;max-width:100%;max-height:100%}.attachment-lightbox-close{color:#fff;cursor:pointer;background:#0006;border:1px solid #ffffff4d;border-radius:50%;width:30px;height:30px;font-size:14px;position:absolute;top:14px;right:16px}.dialog-warning{border:1px solid var(--warning);color:var(--warning);border-radius:8px;margin-top:6px;padding:6px 10px;font-size:12px;line-height:1.5}.provider-panel .provider-list{flex-direction:column;gap:8px;display:flex}.provider-card{border:1px solid var(--border);background:var(--bg-panel);border-radius:10px;overflow:hidden}.provider-card.active{border-color:var(--accent)}.provider-head{width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 12px;display:flex}.provider-head:hover{background:var(--hover-soft)}.provider-name{font-weight:600}.provider-id,.provider-count{color:var(--text-secondary);font-size:12px}.provider-badge{background:var(--hover-soft);color:var(--text-secondary);border-radius:999px;padding:1px 8px;font-size:11px}.provider-badge.warn{color:var(--warning);border:1px solid var(--warning)}.provider-body{border-top:1px solid var(--border);padding:10px 12px 12px}.provider-form{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 12px;margin-bottom:8px;display:grid}.provider-form label{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:12px;display:flex}.provider-form label.provider-inline,.provider-inline{color:var(--text-secondary);flex-direction:row;align-items:center;gap:6px;font-size:12px;display:inline-flex}.provider-inline input[type=checkbox]{width:auto}.provider-upstream{border-top:1px dashed var(--border);margin-top:10px;padding-top:8px}.provider-upstream-list{flex-direction:column;gap:4px;max-height:220px;display:flex;overflow:auto}.provider-upstream-item{color:var(--text-primary);align-items:center;gap:8px;font-size:12px;display:flex}.provider-model-meta{color:var(--text-secondary);font-size:11px}.provider-models{flex-direction:column;gap:6px;margin-top:10px;display:flex}.provider-model-row{border:1px solid var(--border);border-radius:8px;padding:6px 10px}.provider-model-head{align-items:center;gap:8px;display:flex}.provider-model-name{font-size:13px;font-weight:600}.provider-model-remove{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;margin-left:auto}.provider-model-remove:hover{color:var(--danger-strong)}.provider-model-controls{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:6px;font-size:12px;display:flex}.provider-model-controls input[type=number]{width:110px;margin-left:4px}.provider-levels{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.kb-service-row{grid-template-columns:1fr 1.2fr 2fr auto;gap:6px;margin-top:6px;display:grid}@media (max-width:860px){.kb-service-row{grid-template-columns:1fr}}.tool-list{flex-direction:column;gap:4px;margin-top:6px;display:flex}.tool-row{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:5px 8px;font-size:12px;display:flex}.tool-row-disabled{opacity:.6}.tool-name{color:var(--text-primary);font-weight:600}.tool-id{color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.tool-risk{border:1px solid var(--border);border-radius:999px;padding:0 6px;font-size:11px}.tool-risk.risk-destructive{color:var(--danger-strong);border-color:var(--danger-strong)}.tool-risk.risk-execute,.tool-risk.risk-write{color:var(--warning);border-color:var(--warning)}.tool-desc{color:var(--text-secondary);flex-basis:100%;font-size:11px}.skill-row{border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:10px;margin-top:6px;padding:8px 10px;display:flex}.skill-main{flex:1;min-width:0}.skill-name{color:var(--text-primary);font-weight:600}.skill-slug{color:var(--text-secondary);margin-left:6px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:400}.skill-desc{color:var(--text-secondary);margin-top:2px;font-size:12px}.chat-input button.attach-btn{width:30px;height:30px;color:var(--text-secondary);background:0 0;border:none;margin-bottom:2px}.chat-input button.attach-btn:hover:not(:disabled){background:var(--hover-soft);color:var(--text-primary)}.chat-input button.attach-btn:disabled{color:var(--text-disabled);cursor:not-allowed}.prompt-section{border-top:1px solid var(--border-subtle,#8080802e);margin-top:14px;padding-top:12px}.prompt-section-head{align-items:center;gap:8px;margin-bottom:4px;display:flex}.prompt-section-title{color:var(--text-primary);font-weight:600}.prompt-section-badge{color:var(--text-secondary);background:var(--hover-soft,#8080801f);border-radius:999px;padding:1px 7px;font-size:11px}.prompt-section-badge.customized{color:var(--accent,#2563eb);background:color-mix(in srgb, var(--accent,#2563eb) 12%, transparent)}.prompt-section-spacer{flex:1}.map-attr-dtype{color:var(--text-secondary);font-size:11px;font-weight:400}.websearch-toggle{color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;transition:background .15s,color .15s;display:inline-flex}.websearch-toggle:hover:not(:disabled){background:var(--hover-soft);color:var(--text-primary)}.websearch-toggle.on{background:var(--accent-soft);color:var(--accent)}.websearch-toggle:disabled{color:var(--text-disabled);cursor:not-allowed}.websearch-toggle-dot{opacity:.35;background:currentColor;border-radius:50%;width:6px;height:6px}.websearch-toggle.on .websearch-toggle-dot{opacity:1}.course-gate{z-index:300;background:var(--bg);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.course-gate-card{border:1px solid var(--border);background:var(--bg-elevated);width:min(560px,100%);box-shadow:var(--shadow-lg,0 18px 48px #0000002e);border-radius:14px;flex-direction:column;gap:12px;padding:28px;display:flex}.course-gate-actions{flex-wrap:wrap;gap:8px;display:flex}.course-gate-courses{flex-direction:column;gap:8px;max-height:240px;padding:2px;display:flex;overflow:auto}.course-gate-course{border:1px solid var(--border);background:var(--bg-inset);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:13px;display:flex}.course-gate-course:hover{border-color:var(--border-strong);background:var(--hover-soft)}.course-gate-course-tag{color:var(--text-faint);flex:none;font-size:11px}.course-gate-account{color:var(--text-faint);margin-top:4px;font-size:12px}.session-course-label{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 6px;padding:0 4px;font-size:12px;overflow:hidden}.session-legacy-badge{border:1px solid var(--border);color:var(--text-faint);border-radius:999px;margin-left:6px;padding:0 5px;font-size:10px;font-weight:400}.course-panel .course-row{border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;margin-top:6px;padding:8px 10px;display:flex}.course-panel .course-row:hover{border-color:var(--border-strong,var(--text-faint))}.course-panel .course-row.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.course-teaching{border-top:1px solid var(--border);margin-top:16px;padding-top:8px}.dialog-check{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.platform-sync-status{line-height:1.7}.course-row-main{flex:1;min-width:0}.course-row-title{color:var(--text-primary);align-items:center;gap:8px;font-weight:600;display:flex}.course-origin{border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;padding:0 6px;font-size:10px;font-weight:400}.course-origin-platform{color:var(--accent);border-color:var(--accent)}.course-row-meta{color:var(--text-secondary);word-break:break-word;margin-top:2px;font-size:11px;line-height:1.6}.course-row-actions{flex-shrink:0;gap:6px;display:flex}.course-editor{margin-top:12px}.course-form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;display:grid}.course-overrides{border:1px solid var(--border);border-radius:8px;margin-top:8px;padding:8px 10px}.course-overrides>summary{cursor:pointer;color:var(--text-primary);font-weight:600}.course-override-list{flex-direction:column;gap:4px;max-height:320px;margin-top:8px;display:flex;overflow-y:auto}.course-override-row{justify-content:space-between;align-items:center;gap:10px;padding:2px 4px;font-size:12px;display:flex}.course-override-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.course-teaching .teaching-student{border:1px solid var(--border);border-radius:10px;margin-top:10px;padding:10px}.teaching-student-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.teaching-student-name{color:var(--text-primary);font-weight:600}.teaching-student-meta{color:var(--text-secondary);margin-left:8px;font-size:11px;font-weight:400}.teaching-student-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.teaching-workspace{color:var(--text-secondary);font-size:11px}.teaching-block{margin-top:8px;font-size:12px}.course-list-scroll{max-height:280px;padding-right:4px;overflow-y:auto}.teaching-student>summary{cursor:pointer;min-height:24px}.teaching-student-counts{color:var(--text-secondary);margin-left:8px;font-size:11px;font-weight:400}.teaching-student-body{margin-top:10px}.teaching-session-scroll{max-height:220px;overflow-y:auto}.teaching-session-list{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.teaching-session{background:var(--bg-inset);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px;display:flex}.teaching-session-main{min-width:0}.teaching-session-title{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);display:block;overflow:hidden}.teaching-session-meta{color:var(--text-faint);font-size:11px}.teaching-session-actions{flex-shrink:0;gap:4px;display:flex}.tool-row-main{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tool-row-main .tool-desc{flex-basis:100%}.tool-scope-course{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.user-name-cell{flex-direction:column;gap:1px;display:flex}.user-courses-cell{max-width:240px}.user-course-chip{border:1px solid var(--border);color:var(--text-secondary);border-radius:999px;margin:1px 4px 1px 0;padding:0 6px;font-size:11px;display:inline-block}.user-edit-row td{background:var(--bg-inset)}.user-edit-panel{flex-direction:column;gap:8px;padding:8px 4px;display:flex}.user-edit-fields{flex-wrap:wrap;gap:12px;display:flex}.user-edit-fields label{align-items:center;gap:6px;font-size:12px;display:flex}.user-edit-courses{flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:12px;display:flex}@media (max-width:720px){.course-row{flex-direction:column}.course-row-actions{align-self:flex-end}}.toast-stack{z-index:400;pointer-events:none;flex-direction:column;gap:8px;max-width:min(420px,100vw - 36px);display:flex;position:fixed;top:18px;right:18px}.toast{border:1px solid var(--border);background:var(--bg-elevated,var(--bg-panel,#1c1c1c));color:var(--text-primary);text-align:left;cursor:pointer;pointer-events:auto;border-left-width:3px;border-radius:10px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:12px;line-height:1.55;display:flex;box-shadow:0 8px 24px #00000047}.toast-success{border-left-color:var(--success,#2e9e5b)}.toast-error{border-left-color:var(--danger,#d9534f)}.toast-info{border-left-color:var(--accent)}.toast-icon{border:1px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:inline-flex}.toast-success .toast-icon{color:var(--success,#2e9e5b)}.toast-error .toast-icon{color:var(--danger,#d9534f)}.toast-info .toast-icon{color:var(--accent)}.toast-text{word-break:break-word;min-width:0}.override-dots{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.override-dot{border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0;display:inline-flex}.override-dot:after{content:"";opacity:0;background:currentColor;border-radius:50%;width:8px;height:8px}.override-dot:hover:not(:disabled){border-color:var(--text-secondary)}.override-dot.active{border-color:currentColor}.override-dot.active:after{opacity:1}.override-dot.dim{color:var(--text-faint)}.override-dot.on{color:var(--success,#2e9e5b)}.override-dot.off{color:var(--danger,#d9534f)}.override-label{min-width:4.5em;color:var(--text-secondary);font-size:11px}.user-filters{flex-wrap:wrap;align-items:center;gap:8px 14px;margin:10px 0;display:flex}.user-filters label{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:inline-flex}.user-filter-spacer{flex:auto}.user-table-wrap{overflow-x:auto}.user-delete-btn,.user-row-actions .dialog-btn-secondary.danger{color:var(--danger,#d9534f)}
