@aalis/plugin-webui-client 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AuthorityPage-GbF3xg8H.js → AuthorityPage-5YC3myl2.js} +1 -1
- package/dist/assets/{DynamicPage-GeSfxddk.js → DynamicPage-CaesyAey.js} +1 -1
- package/dist/assets/{FilesPage-B5C5zWo5.js → FilesPage-mSCDNPn_.js} +1 -1
- package/dist/assets/LogPage-BTvnnjEI.js +1 -0
- package/dist/assets/{MarketplacePage-DKs-PwSt.js → MarketplacePage-CiclAMb2.js} +1 -1
- package/dist/assets/{PlatformPage-U3Xx3yvM.js → PlatformPage-DD_pcmAe.js} +1 -1
- package/dist/assets/{PluginConfigPage-Ci_WRMHk.js → PluginConfigPage-C8aYh-x_.js} +1 -1
- package/dist/assets/{SessionsPage-AmYhJ75Q.js → SessionsPage-CiQds4G5.js} +1 -1
- package/dist/assets/{arc-DAUQCUxy.js → arc-Ce9peeXq.js} +1 -1
- package/dist/assets/{architectureDiagram-3BPJPVTR-dq-zfwZp.js → architectureDiagram-3BPJPVTR-Dcv5mhXl.js} +1 -1
- package/dist/assets/{blockDiagram-GPEHLZMM-DEMq0qb2.js → blockDiagram-GPEHLZMM-C7MSrVLM.js} +1 -1
- package/dist/assets/{c4Diagram-AAUBKEIU-CwB1zAbW.js → c4Diagram-AAUBKEIU-D13Bjvi_.js} +1 -1
- package/dist/assets/channel-DwG5AtO5.js +1 -0
- package/dist/assets/{chunk-2J33WTMH-9OXRlLBg.js → chunk-2J33WTMH-Dt-r6FIQ.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-HzQmwn3M.js → chunk-4BX2VUAB-CIMNyAOW.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-DraZNS76.js → chunk-55IACEB6-CF9Xuktf.js} +1 -1
- package/dist/assets/{chunk-727SXJPM-Cs0FCref.js → chunk-727SXJPM-rVdprN6-.js} +1 -1
- package/dist/assets/{chunk-AQP2D5EJ-DtANEAYx.js → chunk-AQP2D5EJ-B2w3hk8u.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-C6aipBu7.js → chunk-FMBD7UC4-CMD3FBWL.js} +1 -1
- package/dist/assets/{chunk-ND2GUHAM-BLOj0kQ3.js → chunk-ND2GUHAM-BbAXVB1_.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-5Vi8brX2.js → chunk-QZHKN3VN-B9Mhei9n.js} +1 -1
- package/dist/assets/classDiagram-4FO5ZUOK-WX6byV5j.js +1 -0
- package/dist/assets/classDiagram-v2-Q7XG4LA2-WX6byV5j.js +1 -0
- package/dist/assets/{clock-ChZ95JZD.js → clock-hYaQrRDV.js} +1 -1
- package/dist/assets/{cose-bilkent-S5V4N54A-yeJ_9DnK.js → cose-bilkent-S5V4N54A-BNuOc8Tg.js} +1 -1
- package/dist/assets/{dagre-BM42HDAG-D6s4-9TX.js → dagre-BM42HDAG-BKde6762.js} +1 -1
- package/dist/assets/{diagram-2AECGRRQ-pq6EwjXz.js → diagram-2AECGRRQ-CiK_Fj80.js} +1 -1
- package/dist/assets/{diagram-5GNKFQAL-CEAvTn_s.js → diagram-5GNKFQAL-Cj4R38mJ.js} +1 -1
- package/dist/assets/{diagram-KO2AKTUF-dqURbX4F.js → diagram-KO2AKTUF-DylBwBxP.js} +1 -1
- package/dist/assets/{diagram-LMA3HP47-DXmUzg2O.js → diagram-LMA3HP47-DavNsiny.js} +1 -1
- package/dist/assets/{diagram-OG6HWLK6-CJWJiQGO.js → diagram-OG6HWLK6-DGho4c86.js} +1 -1
- package/dist/assets/{erDiagram-TEJ5UH35-D1ZEPbEZ.js → erDiagram-TEJ5UH35-DCEgrApM.js} +1 -1
- package/dist/assets/{flowDiagram-I6XJVG4X-BTEcDPXo.js → flowDiagram-I6XJVG4X-FWWFLymx.js} +1 -1
- package/dist/assets/{ganttDiagram-6RSMTGT7-DWcwiv0T.js → ganttDiagram-6RSMTGT7-mLzIX6oo.js} +1 -1
- package/dist/assets/{gitGraphDiagram-PVQCEYII-CzSr3JTx.js → gitGraphDiagram-PVQCEYII-5ZQKvd2G.js} +1 -1
- package/dist/assets/{globe-iNYeYXM9.js → globe-BOoUupfo.js} +1 -1
- package/dist/assets/index-BwjDBPnu.css +1 -0
- package/dist/assets/index-DuWxyVzv.js +212 -0
- package/dist/assets/{infoDiagram-5YYISTIA-BrJvNyiN.js → infoDiagram-5YYISTIA-r8gsZPzE.js} +1 -1
- package/dist/assets/{ishikawaDiagram-YF4QCWOH-CLLORvW4.js → ishikawaDiagram-YF4QCWOH-B8QgO-dt.js} +1 -1
- package/dist/assets/{journeyDiagram-JHISSGLW-DJERFHoN.js → journeyDiagram-JHISSGLW-DLbC1Ro9.js} +1 -1
- package/dist/assets/{kanban-definition-UN3LZRKU-nfSKPg95.js → kanban-definition-UN3LZRKU-B8oPyqRF.js} +1 -1
- package/dist/assets/{linear-svZpQC-M.js → linear-C1nMFow1.js} +1 -1
- package/dist/assets/{mermaid.core-BK17wB8Y.js → mermaid.core-DT-YvwaL.js} +4 -4
- package/dist/assets/{mindmap-definition-RKZ34NQL-BbKyklJL.js → mindmap-definition-RKZ34NQL-jlkdbEGA.js} +1 -1
- package/dist/assets/{pieDiagram-4H26LBE5-BdVEjZ3k.js → pieDiagram-4H26LBE5-47t_9nc-.js} +1 -1
- package/dist/assets/{quadrantDiagram-W4KKPZXB-pwCe-4m9.js → quadrantDiagram-W4KKPZXB-D80NXTjU.js} +1 -1
- package/dist/assets/{requirementDiagram-4Y6WPE33-CBHbb4_y.js → requirementDiagram-4Y6WPE33-DHw16YOk.js} +1 -1
- package/dist/assets/{sankeyDiagram-5OEKKPKP-DnxugXFe.js → sankeyDiagram-5OEKKPKP-BEWygPx8.js} +1 -1
- package/dist/assets/{sequenceDiagram-3UESZ5HK-CXqwCzG2.js → sequenceDiagram-3UESZ5HK-DcQU26Jq.js} +1 -1
- package/dist/assets/{stateDiagram-AJRCARHV-Byw3Daq8.js → stateDiagram-AJRCARHV-gXepjiq6.js} +1 -1
- package/dist/assets/{stateDiagram-v2-BHNVJYJU-ClKN4qlq.js → stateDiagram-v2-BHNVJYJU-KIaZ8mu3.js} +1 -1
- package/dist/assets/{timeline-definition-PNZ67QCA-spYDyHEq.js → timeline-definition-PNZ67QCA-CN8iJwzP.js} +1 -1
- package/dist/assets/{vennDiagram-CIIHVFJN-Cg2-3zjD.js → vennDiagram-CIIHVFJN-BuXejB86.js} +1 -1
- package/dist/assets/{wardley-L42UT6IY-ER1LeunS.js → wardley-L42UT6IY-B2vs5XrN.js} +1 -1
- package/dist/assets/{wardleyDiagram-YWT4CUSO-qaTMbUZm.js → wardleyDiagram-YWT4CUSO-C4FVRih-.js} +1 -1
- package/dist/assets/{xychartDiagram-2RQKCTM6-D4K0NriZ.js → xychartDiagram-2RQKCTM6-aUuppx7b.js} +1 -1
- package/dist/index.html +3 -3
- package/package.json +1 -1
- package/dist/assets/LogPage-C_Z3RA5T.js +0 -1
- package/dist/assets/channel-kaxpMS0k.js +0 -1
- package/dist/assets/classDiagram-4FO5ZUOK-B8NX94jI.js +0 -1
- package/dist/assets/classDiagram-v2-Q7XG4LA2-B8NX94jI.js +0 -1
- package/dist/assets/index-BiAVUpil.css +0 -1
- package/dist/assets/index-D56FVdMY.js +0 -207
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0f0f14;--bg-secondary: #16161e;--surface: #1c1c28;--surface-hover: #24243a;--surface-active: #2a2a42;--primary: #7c6ff7;--primary-hover: #6b5ce6;--primary-glow: rgba(124, 111, 247, .12);--accent: #48c78e;--danger: #ff6b6b;--warning: #f0c060;--text: #e4e4ef;--text-secondary: #9a9ab8;--text-muted: #5e5e7e;--user-bg: #1e2a44;--assistant-bg: #1c1c2e;--border: #2a2a3e;--border-light: #35355a;--radius: 10px;--radius-lg: 14px;--nav-width: 52px;--nav-expanded: 180px;--header-height: 48px;--transition: .2s cubic-bezier(.4, 0, .2, 1)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);height:100vh;overflow:hidden}#root{height:100%}.app-layout{display:flex;height:100%;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}.nav-rail{width:var(--nav-width);min-width:var(--nav-width);background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:20;transition:width var(--transition),min-width var(--transition);overflow:hidden}.nav-rail:hover{width:var(--nav-expanded);min-width:var(--nav-expanded)}body.is-dragging-chat .nav-rail:hover{width:var(--nav-width);min-width:var(--nav-width)}.nav-rail-top{display:flex;flex-direction:column;flex:1;padding:8px 6px;gap:2px}.nav-logo{width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:800;background:linear-gradient(135deg,var(--primary),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:12px;flex-shrink:0}.nav-item{display:flex;align-items:center;gap:10px;padding:0 10px;height:38px;border:none;background:transparent;color:var(--text-muted);border-radius:8px;cursor:pointer;transition:all var(--transition);white-space:nowrap;overflow:hidden;position:relative}.nav-item:hover{color:var(--text);background:var(--surface-hover)}.nav-item.active{color:var(--text);background:var(--surface-active)}.nav-item.active:before{content:"";position:absolute;left:-6px;top:6px;bottom:6px;width:3px;background:var(--primary);border-radius:0 2px 2px 0}.nav-item-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.nav-item-svg{display:flex;align-items:center;justify-content:center;width:20px;height:20px}.nav-item-svg svg{width:20px;height:20px}.nav-item-label{font-size:.8rem;font-weight:500;opacity:0;transition:opacity var(--transition);display:flex;flex-direction:column;align-items:center;line-height:1.2}.nav-item-plugin-name{font-size:.6rem;font-weight:400;color:var(--text-muted);opacity:.7}.nav-rail:hover .nav-item-label{opacity:1}.nav-rail-bottom{padding:12px 6px;display:flex;justify-content:center}.nav-status{width:10px;height:10px;border-radius:50%}.nav-status.online{background:var(--accent);box-shadow:0 0 8px #48c78e80}.nav-status.offline{background:var(--danger);box-shadow:0 0 8px #ff6b6b80}.content-area{flex:1;display:flex;flex-direction:column;min-width:280px;overflow:hidden}.content-header{display:flex;align-items:center;gap:12px;padding:10px 24px;height:var(--header-height);border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.content-title{font-size:.92rem;font-weight:600;flex:1;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.content-user{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.content-user-level{padding:1px 6px;border:1px solid var(--border);border-radius:999px;font-size:11px;opacity:.85}.content-body{flex:1;overflow:hidden;position:relative}.page-content{padding:20px 28px;overflow-y:auto;overflow-x:hidden;height:100%;animation:page-fade .25s ease}.section-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-top:24px;margin-bottom:10px}.section-label:first-child{margin-top:0}.empty-hint{color:var(--text-muted);font-size:.82rem}.page-content::-webkit-scrollbar{width:5px}.page-content::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:24px}.overview-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.overview-card:hover{border-color:var(--border-light)}.overview-card-icon{font-size:1.3rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--surface-active);flex-shrink:0}.overview-card-body{min-width:0}.overview-card-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.overview-card-value{font-size:1rem;font-weight:700;color:var(--text)}.status-dot-lg{display:inline-block;width:12px;height:12px;border-radius:50%}.status-dot-lg.online{background:var(--accent);box-shadow:0 0 6px #48c78e66}.status-dot-lg.offline{background:var(--danger);box-shadow:0 0 6px #ff6b6b66}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:24px}.service-slot-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:border-color var(--transition)}.service-slot-card:hover{border-color:var(--border-light)}.service-slot-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.service-slot-header-badges{display:flex;align-items:center;gap:6px}.service-slot-name{font-size:.92rem;font-weight:700;color:var(--text)}.service-slot-select-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.service-slot-label{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.service-select{flex:1;min-width:0;padding:5px 10px;font-size:.78rem;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;outline:none;cursor:pointer;min-width:140px;transition:border-color var(--transition)}.service-select:focus{border-color:var(--primary)}.service-clear-prefer{padding:4px 8px;font-size:.72rem;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all var(--transition)}.service-clear-prefer:hover:not(:disabled){color:var(--text);border-color:var(--text-secondary)}.service-clear-prefer:disabled{opacity:.5;cursor:not-allowed}.service-slot-single{display:flex;align-items:center;gap:8px}.service-slot-provider-name{font-size:.8rem;font-weight:600;color:var(--text);font-family:SF Mono,Fira Code,monospace}.service-slot-context-id{font-weight:400;color:var(--text-muted);font-size:.72rem}.service-slot-caps{margin-top:8px}.service-provider-row{padding:6px 0;border-top:1px solid var(--border)}.service-provider-row:first-child,.service-provider-row.winner{border-top:none}.service-provider-main{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.service-provider-name{font-size:.85rem;font-weight:600;color:var(--text);font-family:SF Mono,Fira Code,monospace}.service-provider-meta{display:flex;gap:8px;align-items:center;margin-top:2px}.service-priority{font-size:.7rem;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;background:var(--bg);padding:1px 6px;border-radius:4px;border:1px solid var(--border)}.service-router-badge{font-size:.68rem;background:#6366f11f;color:#6366f1;border:1px solid rgba(99,102,241,.35);padding:1px 6px;border-radius:4px;font-weight:600}.service-winner-badge{font-size:.68rem;padding:1px 6px;border-radius:4px;font-weight:600}.service-winner-badge.preferred{background:#eab30826;color:#ca8a04;border:1px solid rgba(234,179,8,.4)}.service-winner-badge.default{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.service-prefer-btn{background:transparent;border:1px solid transparent;border-radius:4px;padding:2px 4px;cursor:pointer;color:var(--text-muted);display:inline-flex;align-items:center}.service-prefer-btn:hover:not(:disabled){background:var(--bg);color:var(--text)}.service-prefer-btn.preferred{color:#ca8a04}.service-prefer-btn:disabled{cursor:wait;opacity:.5}.service-slot-toggle{margin-top:8px;background:transparent;border:none;padding:4px 0;cursor:pointer;color:var(--text-secondary);font-size:.78rem;display:inline-flex;align-items:center;gap:4px}.service-slot-toggle:hover{color:var(--text)}.service-slot-rest{margin-top:6px}.tools-grid{display:flex;flex-wrap:wrap;gap:6px}.marketplace-install-row{display:flex;gap:8px;align-items:center;margin-bottom:16px}.marketplace-install-input{flex:1;padding:6px 10px;background:var(--bg-light);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem;outline:none}.marketplace-install-input:focus{border-color:var(--accent)}.marketplace-plugin-list{display:flex;flex-direction:column;gap:8px}.page-marketplace{display:flex;flex-direction:column;align-items:stretch}.marketplace-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;align-items:start}.marketplace-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;margin:0;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}.marketplace-card-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.marketplace-card-name{font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--text);text-decoration:none}a.marketplace-card-name:hover{color:var(--primary);text-decoration:underline}.market-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 14px}.market-count{margin-left:8px;font-size:.75rem;font-weight:400;color:var(--text-muted)}.market-kw{font-size:.62rem;padding:1px 7px;border-radius:8px;background:var(--surface-hover);color:var(--text-secondary);border:1px solid transparent;cursor:pointer;transition:var(--transition)}.market-kw:hover{border-color:var(--primary);color:var(--text)}.market-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;font-size:.69rem;color:var(--text-muted);align-items:center}.market-meta-item{display:inline-flex;align-items:center;gap:4px}.marketplace-card-version{font-size:.72rem;color:var(--text-secondary)}.marketplace-card-author{font-size:.72rem;color:var(--text-secondary);opacity:.8}.marketplace-card-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.5}.marketplace-card .btn{align-self:flex-start}.chat-column{display:flex;flex-direction:column;height:100%;flex-shrink:1;min-width:240px}.session-config-editor{padding:8px 12px;margin:2px 4px 4px;background:var(--bg, #1a1a2e);border:1px solid var(--border);border-radius:6px;font-size:12px;display:flex;flex-direction:column;gap:6px}.session-config-loading{color:var(--text-muted);text-align:center;padding:8px}.session-config-field{display:flex;flex-direction:column;gap:2px}.session-config-field>span{font-size:11px;color:var(--text-muted);font-weight:500}.session-config-field select,.session-config-field input[type=number],.session-config-field textarea{padding:3px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-secondary);color:var(--text);font-size:12px;outline:none;resize:vertical}.session-config-field select:focus,.session-config-field input:focus,.session-config-field textarea:focus{border-color:var(--accent, #6366f1)}.session-config-chips{display:flex;flex-wrap:wrap;gap:4px}.session-config-chip{padding:2px 8px;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;transition:all var(--transition)}.session-config-chip.active{background:var(--accent-faded, rgba(99,102,241,.2));color:var(--accent, #6366f1);border-color:var(--accent, #6366f1)}.session-config-chip.active.inherited{background:var(--accent-faded, rgba(99,102,241,.1));color:var(--accent, #6366f1);border-color:var(--accent, #6366f1);border-style:dashed;opacity:.7}.session-config-chip.reset{font-size:10px;color:var(--text-muted);border-style:dashed}.session-config-chip:hover{background:var(--bg-hover, rgba(255,255,255,.06))}.session-config-toggles{display:flex;flex-direction:column;gap:4px}.session-config-toggles label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;color:var(--text-secondary)}.session-config-toggles input[type=checkbox]{accent-color:var(--accent, #6366f1)}.session-config-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:2px}.session-config-btn{padding:3px 12px;border:1px solid var(--border);border-radius:4px;font-size:12px;cursor:pointer;transition:all var(--transition);background:transparent;color:var(--text-secondary)}.session-config-btn.save{background:var(--accent, #6366f1);color:#fff;border-color:var(--accent, #6366f1)}.session-config-btn.save:hover{opacity:.85}.session-config-btn.cancel:hover{background:var(--bg-hover, rgba(255,255,255,.06))}.chat-panel{display:flex;flex-direction:column;background:var(--bg);flex:1;min-height:0;position:relative}.chat-panel.drag-over{outline:2px dashed var(--primary);outline-offset:-2px}.drag-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:100;display:flex;align-items:center;justify-content:center;pointer-events:none}.drag-overlay-content{font-size:1.1rem;font-weight:600;color:#fff;background:var(--primary);padding:14px 28px;border-radius:var(--radius-lg);box-shadow:0 4px 20px #0000004d}.resize-handle{width:5px;cursor:col-resize;background:transparent;flex-shrink:0;position:relative;z-index:10;transition:background var(--transition)}.resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:2px;width:1px;background:var(--border)}.resize-handle:hover,.resize-handle:active{background:var(--primary-glow)}.resize-handle:hover:after,.resize-handle:active:after{background:var(--primary)}.chat-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;height:var(--header-height);border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.chat-panel-title{font-size:.88rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}.chat-panel-session-name{color:var(--text-muted);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-panel-new-btn{width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;transition:background var(--transition),color var(--transition)}.chat-panel-new-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.chat-panel-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.uploaded-files-drawer{position:absolute;top:56px;right:12px;width:380px;max-width:calc(100% - 24px);max-height:60vh;background:var(--bg, #1c1c1e);border:1px solid var(--border, rgba(255,255,255,.1));border-radius:10px;box-shadow:0 8px 24px #00000059;z-index:50;display:flex;flex-direction:column;overflow:hidden}.uploaded-files-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border, rgba(255,255,255,.08))}.uploaded-files-drawer-title{font-weight:600;font-size:.9rem}.uploaded-files-drawer-actions{display:flex;gap:4px}.uploaded-files-drawer-btn{width:26px;height:26px;border-radius:5px;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.uploaded-files-drawer-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.uploaded-files-drawer-btn.danger:hover{color:#ff6b6b}.uploaded-files-drawer-btn[disabled]{opacity:.4;cursor:not-allowed}.uploaded-files-drawer-body{overflow-y:auto;padding:6px}.uploaded-files-drawer-empty,.uploaded-files-drawer-error{padding:24px 12px;text-align:center;color:var(--text-muted);font-size:.85rem}.uploaded-files-drawer-error{color:#ff6b6b}.uploaded-files-drawer-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px}.uploaded-files-drawer-item:hover{background:var(--bg-hover, rgba(255,255,255,.04))}.uploaded-files-drawer-icon{color:var(--text-muted);flex-shrink:0}.uploaded-files-drawer-info{flex:1;min-width:0}.uploaded-files-drawer-name{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploaded-files-drawer-meta{font-size:.7rem;color:var(--text-muted);margin-top:2px}.uploaded-files-drawer-id{font-size:.65rem;color:var(--text-muted);opacity:.7;font-family:ui-monospace,SFMono-Regular,monospace;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploaded-files-drawer-btn .spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.token-usage-badge{position:relative;display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;background:#ffffff0f;cursor:default;font-size:.75rem;color:var(--text-muted);transition:background var(--transition)}.token-usage-badge:hover{background:#ffffff1a}.token-usage-number{font-variant-numeric:tabular-nums}.token-usage-number.caution{color:#f0a020}.token-usage-number.warn{color:#ef4444}.token-usage-panel{position:absolute;top:calc(100% + 8px);right:0;width:240px;background:var(--bg-secondary, #1e1e2e);border:1px solid var(--border);border-radius:10px;padding:14px;box-shadow:0 8px 24px #00000059;z-index:100;font-size:.78rem}.token-usage-panel:before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px}.token-panel-title{font-weight:600;color:var(--text);margin-bottom:10px}.token-panel-bar{height:6px;border-radius:3px;background:#ffffff14;margin-bottom:4px;overflow:hidden}.token-panel-bar-fill{height:100%;border-radius:3px;background:var(--primary, #6366f1);transition:width .3s ease}.token-panel-bar-fill.caution{background:#f0a020}.token-panel-bar-fill.warn{background:#ef4444}.token-panel-ratio{color:var(--text-muted);font-size:.72rem;margin-bottom:10px}.token-panel-rows{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.token-panel-row{display:flex;justify-content:space-between;color:var(--text-secondary)}.token-panel-row.sub{padding-left:12px;font-size:.75rem;opacity:.85}.token-panel-row span:last-child{font-variant-numeric:tabular-nums;color:var(--text)}.token-panel-section-header{display:flex;justify-content:space-between;color:var(--text);font-weight:500;font-size:.8rem;padding-top:2px;border-top:1px solid var(--border)}.token-panel-section-total{font-variant-numeric:tabular-nums;font-weight:400;color:var(--text-secondary)}.token-panel-compress-btn{width:100%;padding:6px 0;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.78rem;display:flex;align-items:center;justify-content:center;gap:4px;transition:background var(--transition),color var(--transition)}.token-panel-compress-btn:hover:not(:disabled){background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.token-panel-compress-btn:disabled{opacity:.5;cursor:not-allowed}.token-panel-empty{color:var(--text-secondary);font-size:.78rem;text-align:center;padding:8px 0}.compress-bubble{display:flex;align-items:center;gap:6px;padding:8px 14px;margin:4px 0;border-radius:8px;font-size:.82rem;color:var(--text-secondary);background:#6366f11a;border:1px solid rgba(99,102,241,.2)}.compress-bubble.start{color:var(--primary, #6366f1)}.compress-bubble.done{color:#22c55e;background:#22c55e1a;border-color:#22c55e33}.compress-bubble.error{color:#ef4444;background:#ef44441a;border-color:#ef444433}@keyframes compress-spin{to{transform:rotate(360deg)}}.compress-spinner{animation:compress-spin 1s linear infinite}.system-event-separator{display:flex;align-items:center;gap:12px;padding:8px 0;-webkit-user-select:none;user-select:none}.system-event-line{flex:1;height:1px;background:var(--border-color, rgba(255, 255, 255, .1))}.system-event-text{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-secondary, #888);white-space:nowrap}.system-event-separator.compressing .system-event-text{color:var(--primary, #6366f1)}.system-event-separator.compress-done .system-event-text{color:#22c55e}.system-event-separator.compress-error .system-event-text{color:#ef4444}.compress-timer{font-variant-numeric:tabular-nums;opacity:.8;margin-left:2px}.messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px 24px;display:flex;flex-direction:column;gap:8px;will-change:scroll-position;scroll-behavior:auto}.messages::-webkit-scrollbar{width:5px}.messages::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.empty{text-align:center;color:var(--text-muted);margin:auto;font-size:.95rem}.empty-icon{font-size:2.5rem;margin-bottom:12px;opacity:.4}.message-group{display:flex;flex-direction:column;gap:2px;max-width:88%;animation:msg-in .3s cubic-bezier(.4,0,.2,1) both;contain:layout style}.message-group.user{align-self:flex-end}.message-group.assistant{align-self:flex-start}.message-sender{font-size:.72rem;font-weight:600;color:var(--text-muted);padding:0 2px;display:flex;align-items:baseline;gap:8px}.message-group.user .message-sender{justify-content:flex-end}.message-time{font-weight:400;font-size:.68rem;opacity:.7;font-variant-numeric:tabular-nums}.message-model-badge{font-weight:400;font-size:.66rem;padding:1px 6px;border-radius:999px;background:var(--surface-2, rgba(120, 120, 140, .12));color:var(--text-secondary, #888);font-variant-numeric:tabular-nums;letter-spacing:.02em;cursor:help}.message-bubble{padding:10px 14px;border-radius:var(--radius-lg);line-height:1.65;word-break:break-word;font-size:.9rem}.message-group.user .message-bubble{background:var(--user-bg);border-bottom-right-radius:4px;white-space:pre-wrap}.message-group.assistant .message-bubble{background:var(--assistant-bg);border:1px solid var(--border);border-bottom-left-radius:4px}.message-group.assistant .message-bubble p{margin:0 0 .6em;line-height:1.7}.message-group.assistant .message-bubble p:last-child{margin-bottom:0}.message-group.assistant .message-bubble h1,.message-group.assistant .message-bubble h2,.message-group.assistant .message-bubble h3,.message-group.assistant .message-bubble h4{margin:1em 0 .5em;font-weight:700;line-height:1.3;color:var(--text)}.message-group.assistant .message-bubble h1:first-child,.message-group.assistant .message-bubble h2:first-child,.message-group.assistant .message-bubble h3:first-child{margin-top:0}.message-group.assistant .message-bubble h1{font-size:1.3em}.message-group.assistant .message-bubble h2{font-size:1.15em}.message-group.assistant .message-bubble h3{font-size:1.05em}.message-group.assistant .message-bubble ul,.message-group.assistant .message-bubble ol{margin:.4em 0 .6em 1.2em;padding:0}.message-group.assistant .message-bubble li{margin-bottom:.25em}.message-group.assistant .message-bubble blockquote{border-left:3px solid var(--primary);padding:.3em .8em;margin:.5em 0;background:var(--surface);border-radius:0 6px 6px 0;color:var(--text-secondary)}.message-group.assistant .message-bubble a{color:var(--primary);text-decoration:none}.message-group.assistant .message-bubble a:hover{text-decoration:underline}.message-group.assistant .message-bubble hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.message-group.assistant .message-bubble table{border-collapse:collapse;margin:.6em 0;font-size:.85em;width:100%}.message-group.assistant .message-bubble th,.message-group.assistant .message-bubble td{border:1px solid var(--border);padding:6px 10px;text-align:left}.message-group.assistant .message-bubble th{background:var(--surface);font-weight:600}.message-group.assistant .message-bubble img{max-width:100%;border-radius:6px}.message-group.assistant .message-bubble code:not(pre code){background:var(--surface-active);padding:1px 5px;border-radius:4px;font-family:SF Mono,Fira Code,monospace;font-size:.88em;color:#e7a0dc}.message-group.assistant .message-bubble pre{background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin:.6em 0;overflow-x:auto;font-size:.84em;line-height:1.5}.message-group.assistant .message-bubble pre code{background:none;padding:0;font-family:SF Mono,Fira Code,monospace;color:var(--text)}.message-group.assistant .message-bubble pre::-webkit-scrollbar{height:4px}.message-group.assistant .message-bubble pre::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.json-message-view{display:flex;flex-direction:column;gap:6px}.json-field{display:flex;align-items:baseline;gap:8px;padding:4px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent);flex-wrap:wrap}.json-field:last-child{border-bottom:none}.json-field-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0;min-width:56px;-webkit-user-select:none;user-select:none}.json-field-value{color:var(--text);font-size:.88rem;line-height:1.5;word-break:break-word}.json-field-value-md{flex:1;min-width:0}.json-field-value-md p{margin:0}.json-field-value-md p+p{margin-top:.4em}.json-field-reply{margin-top:4px;padding:8px 10px;background:color-mix(in srgb,var(--primary) 6%,transparent);border-radius:var(--radius);border-bottom:none;flex-direction:column;gap:4px}.json-field-reply .json-field-label{color:var(--primary)}.json-field-group{flex-direction:column;gap:0;padding-bottom:0}.json-field-toggle{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0;border-radius:var(--radius)}.json-field-toggle:hover{opacity:.8}.json-field-children{padding-left:16px;border-left:2px solid color-mix(in srgb,var(--border) 60%,transparent);margin-left:6px}.json-field-partial{opacity:.6;font-style:italic}.streaming-cursor{display:inline-block;width:2px;height:1em;background:var(--primary);margin-left:1px;vertical-align:text-bottom;animation:cursor-blink .8s step-end infinite}@keyframes cursor-blink{50%{opacity:0}}.typing-indicator{display:flex;gap:4px;padding:14px 18px}.typing-indicator span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:typingBounce 1.2s infinite}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.input-area{display:flex;align-items:stretch;gap:10px;padding:14px 24px;border-top:1px solid var(--border);background:var(--bg-secondary)}.input-area textarea{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 14px;color:var(--text);font-size:.9rem;resize:none;font-family:inherit;outline:none;min-height:52px;max-height:300px;overflow-y:auto;transition:border-color var(--transition)}.input-area textarea::placeholder{color:var(--text-muted)}.input-area textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.send-btn{background:var(--primary);color:#fff;border:none;border-radius:var(--radius);width:42px;min-height:42px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);flex-shrink:0;align-self:stretch}.send-btn:hover:not(:disabled){background:var(--primary-hover);transform:scale(1.05)}.send-btn:disabled{opacity:.35;cursor:not-allowed}.send-btn.stop-btn,.send-btn.stop-mode{background:var(--danger, #e53935);font-size:.85rem}.send-btn.stop-btn:hover:not(:disabled),.send-btn.stop-mode:hover:not(:disabled){background:color-mix(in srgb,var(--danger, #e53935) 85%,black)}.stop-generate-btn{display:flex;align-items:center;gap:4px;margin-top:6px;padding:4px 14px;font-size:.78rem;color:var(--danger, #e53935);background:color-mix(in srgb,var(--danger, #e53935) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger, #e53935) 30%,transparent);border-radius:var(--radius);cursor:pointer;transition:all var(--transition);align-self:flex-start}.stop-generate-btn:hover{background:color-mix(in srgb,var(--danger, #e53935) 20%,transparent);border-color:var(--danger, #e53935)}.checkpoint-rollback-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-self:flex-start}.checkpoint-rollback-actions .checkpoint-rollback-btn{margin-top:0}.checkpoint-rollback-btn{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:3px 10px;font-size:.72rem;color:var(--text-secondary, #888);background:transparent;border:1px dashed color-mix(in srgb,var(--text-secondary, #888) 35%,transparent);border-radius:var(--radius);cursor:pointer;opacity:.55;transition:all var(--transition);align-self:flex-start}.checkpoint-rollback-btn:hover{opacity:1;color:var(--warning, #d97706);border-color:var(--warning, #d97706);background:color-mix(in srgb,var(--warning, #d97706) 8%,transparent)}.checkpoint-warn{display:inline-flex;align-items:center;gap:2px;margin-left:4px;padding:0 4px;font-size:.68rem;color:var(--danger, #e53935);background:color-mix(in srgb,var(--danger, #e53935) 12%,transparent);border-radius:3px}.checkpoint-rolled-back{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:.72rem;color:var(--text-muted, #aaa);-webkit-user-select:none;user-select:none}.tool-limit-bar{display:flex;flex-direction:column;align-items:center;gap:8px;margin:12px 0;padding:12px 16px;background:color-mix(in srgb,var(--warning, #ff9800) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--warning, #ff9800) 30%,transparent);border-radius:var(--radius)}.tool-limit-text{font-size:.82rem;color:var(--warning, #ff9800);font-weight:500}.tool-limit-actions{display:flex;align-items:center;gap:10px}.tool-limit-btn.continue{padding:5px 16px;font-size:.8rem;color:#fff;background:var(--primary, #2196f3);border:none;border-radius:var(--radius);cursor:pointer;transition:all var(--transition)}.tool-limit-btn.continue:hover{background:color-mix(in srgb,var(--primary, #2196f3) 80%,#000)}.tool-limit-hint{font-size:.75rem;color:var(--text-secondary, #888)}.tool-call-progress-bubble{padding:0;background:transparent;border:none;box-shadow:none;margin-top:-2px}.tool-call-block-pending{display:block;margin:8px 0;border-radius:8px;background:#3b82f60f;border:1px solid rgba(59,130,246,.15);overflow:hidden;animation:tool-call-pending-pulse 1.4s ease-in-out infinite}.tool-call-block-pending .tool-call-summary{padding:6px 12px;font-size:.78rem;font-weight:500;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.tool-call-progress-icon{display:inline-flex;align-items:center;color:#3b82f6d9}.tool-call-progress-meta{margin-left:auto;font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--text-tertiary, rgba(255, 255, 255, .35))}@keyframes tool-call-pending-pulse{0%,to{border-color:#3b82f626}50%{border-color:#3b82f68c}}.upload-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:42px;min-height:42px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);flex-shrink:0;align-self:stretch}.upload-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary)}.upload-btn:disabled{opacity:.35;cursor:not-allowed}.pending-images{display:flex;gap:8px;padding:8px 24px;overflow-x:auto;overflow-y:hidden;border-top:1px solid var(--border);background:var(--bg-secondary);scrollbar-width:thin;scrollbar-color:var(--border) transparent}.pending-images::-webkit-scrollbar{height:4px}.pending-images::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.pending-images::-webkit-scrollbar-track{background:transparent}.pending-image-item{position:relative;width:64px;min-width:64px;height:64px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.pending-image-item img{width:100%;height:100%;object-fit:cover}.pending-image-remove{position:absolute;top:0;right:0;background:#0009;color:#fff;border:none;width:18px;height:18px;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:0 0 0 var(--radius)}.pending-image-remove:hover{background:var(--danger, #e53935)}.pending-order-badge{position:absolute;bottom:2px;left:2px;background:#0009;color:#fff;font-size:.6rem;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:0 var(--radius) 0 var(--radius);padding:0 3px;line-height:1;pointer-events:none}.pending-file-order{font-size:.7rem;color:var(--text-muted);min-width:18px;flex-shrink:0}.message-images{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px;max-width:100%}.message-image-wrap{position:relative;display:inline-flex}.message-image{max-width:min(200px,100%);max-height:200px;border-radius:var(--radius);border:1px solid var(--border);object-fit:contain;cursor:pointer;transition:transform var(--transition)}.message-image:hover{transform:scale(1.02)}.message-attach-order{position:absolute;bottom:3px;left:3px;background:#0000008c;color:#fff;font-size:.6rem;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:0 var(--radius) 0 var(--radius);padding:0 3px;pointer-events:none}.message-files{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.message-file-item{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.82rem;color:var(--text);max-width:fit-content}.message-file-item .message-attach-order{position:static;background:none;color:var(--text-muted);font-size:.7rem;min-width:unset;height:unset;border-radius:0;padding:0}.pending-files{display:flex;gap:6px;padding:8px 24px;background:var(--bg-secondary);border-top:1px solid var(--border);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.pending-files::-webkit-scrollbar{height:4px}.pending-files::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.pending-files::-webkit-scrollbar-track{background:transparent}.pending-file-item{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.82rem;max-width:fit-content;white-space:nowrap;flex-shrink:0}.pending-file-icon{flex-shrink:0}.pending-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.pending-file-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0 2px;font-size:.9rem;flex-shrink:0}.pending-file-remove:hover{color:var(--danger, #e53935)}.todo-bar{border-top:1px solid var(--border);background:var(--bg-secondary);padding:0 24px;font-size:.82rem}.todo-bar-header{display:flex;align-items:center;gap:8px;padding:8px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.todo-bar-icon{color:var(--primary);flex-shrink:0}.todo-bar-done .todo-bar-icon{color:var(--success, #4caf50)}.todo-bar-title{font-weight:600;color:var(--text);font-size:.82rem}.todo-bar-count{color:var(--text-muted);font-size:.75rem;flex-shrink:0}.todo-bar-progress{flex:1;height:3px;background:var(--border);border-radius:2px;overflow:hidden;min-width:40px}.todo-bar-progress-fill{height:100%;background:var(--primary);border-radius:2px;transition:width .3s ease}.todo-bar-done .todo-bar-progress-fill{background:var(--success, #4caf50)}.todo-bar-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;flex-shrink:0}.todo-bar-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;flex-shrink:0;opacity:.6;transition:opacity var(--transition),color var(--transition)}.todo-bar-clear:hover{color:var(--danger, #e53935);opacity:1}.todo-bar-clear:disabled{opacity:.25;cursor:not-allowed;color:var(--text-muted)}.todo-bar-list{display:flex;flex-direction:column;gap:2px;padding-bottom:8px}.todo-item{display:flex;align-items:center;gap:8px;padding:3px 0;line-height:1.4}.todo-item-title{color:var(--text);font-size:.8rem}.todo-item-completed .todo-item-title{color:var(--text-muted);text-decoration:line-through}.todo-item-in-progress .todo-item-title{color:var(--primary);font-weight:500}.todo-icon{flex-shrink:0}.todo-icon-pending{color:var(--text-muted);opacity:.5}.todo-icon-active{color:var(--primary);animation:todoSpin 1.5s linear infinite}.todo-icon-done{color:var(--success, #4caf50)}@keyframes todoSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page-logs{display:flex;flex-direction:column;height:100%;padding:16px 24px}.log-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6px;row-gap:6px;margin-bottom:12px;flex-shrink:0}.log-filter{flex-shrink:0;white-space:nowrap;padding:5px 12px;font-size:.72rem;font-weight:500;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all var(--transition)}.log-filter.active{background:var(--primary-glow);color:var(--primary);border-color:var(--primary)}.log-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;overflow-anchor:none}.log-list::-webkit-scrollbar{width:5px}.log-list::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.log-entry{font-family:SF Mono,Fira Code,monospace;font-size:.72rem;line-height:1.6;padding:3px 8px;border-radius:4px;background:var(--surface);display:flex;gap:6px;flex-wrap:nowrap;cursor:pointer}.log-entry:hover{background:var(--surface-hover, rgba(255,255,255,.04))}.log-entry.expanded{flex-wrap:wrap;background:var(--surface-hover, rgba(255,255,255,.06));align-items:flex-start}.log-entry .log-time{color:var(--text-muted);flex-shrink:0}.log-entry .log-level{font-weight:600;flex-shrink:0;width:38px}.log-entry .log-level.debug{color:var(--text-muted)}.log-entry .log-level.info{color:#60a5fa}.log-entry .log-level.warn{color:var(--warning)}.log-entry .log-level.error{color:var(--danger)}.log-entry .log-scope{color:#c084fc;flex-shrink:0}.log-entry .log-msg{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-entry.expanded .log-msg{white-space:pre-wrap;word-break:break-word;overflow:visible;text-overflow:clip;flex:1 1 100%}.log-search{flex:1;min-width:140px;max-width:320px;padding:5px 10px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text);outline:none}.log-search:focus{border-color:var(--primary)}.log-count{font-size:11px;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.log-hint{margin-left:auto;font-size:.7rem;color:var(--text-muted);align-self:center}.page-plugin-config{width:100%}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600}.badge.active{background:#48c78e26;color:var(--accent)}.badge.official{background:#5b8def26;color:#5b8def}.badge.community{background:#ffffff0f;color:var(--text-secondary)}.badge.pending{background:#f0c06026;color:var(--warning)}.badge.error,.badge.disposed{background:#ff6b6b26;color:var(--danger)}.tool-chip{display:inline-block;padding:3px 8px;border-radius:6px;font-size:.72rem;font-family:SF Mono,Fira Code,monospace;background:var(--surface-active);color:var(--text-secondary);margin:2px}.tool-groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;padding:0 2px}.tool-group-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:border-color .2s}.tool-group-card:hover{border-color:var(--primary)}.tool-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.tool-group-name{font-weight:600;font-size:.88rem;color:var(--text)}.tool-group-count{font-size:.72rem;color:var(--primary);background:#6366f11a;padding:2px 8px;border-radius:10px}.tool-group-desc{font-size:.76rem;color:var(--text-secondary);line-height:1.4;margin-bottom:8px}.tool-group-meta{display:flex;align-items:center;gap:8px;font-size:.7rem;color:var(--text-muted)}.tool-group-id{font-family:SF Mono,Fira Code,monospace;background:var(--surface-active);padding:1px 6px;border-radius:4px}.tool-group-plugin{opacity:.7}.toast{position:fixed;top:16px;left:50%;transform:translate(-50%);background:var(--surface);color:var(--text);border:1px solid var(--primary);border-radius:var(--radius);padding:8px 20px;font-size:.82rem;z-index:1000;animation:toastIn .25s ease;box-shadow:0 4px 20px #0006}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.plugin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;overflow:hidden;transition:opacity var(--transition)}.plugin-card.disabled{opacity:.55}.plugin-card.errored{border-color:var(--danger);border-left:3px solid var(--danger)}.plugin-error-msg{padding:6px 14px 8px;font-size:.78rem;color:var(--danger);background:#ef44440f}.overview-card-error{border-color:var(--danger)}.plugin-search-row{position:relative;margin:10px 0 16px}.plugin-search-input{width:100%;padding:9px 36px 9px 14px;font-size:13px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;transition:border-color var(--transition)}.plugin-search-input::placeholder{color:var(--text-muted)}.plugin-search-input:focus{border-color:var(--primary)}.plugin-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:13px;cursor:pointer;padding:2px 4px}.plugin-search-clear:hover{color:var(--text-secondary)}.plugin-category{margin-bottom:12px}.plugin-category-header{display:flex;align-items:center;gap:8px;padding:8px 4px;cursor:pointer;-webkit-user-select:none;user-select:none}.plugin-category-name{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.plugin-category-count{font-size:11px;color:var(--text-muted);background:var(--surface-active);padding:1px 7px;border-radius:10px;font-weight:600}.plugin-card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px}.plugin-card-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.plugin-card-name{font-size:.85rem;font-weight:600}.plugin-card-module-name{font-size:.7rem;font-weight:400;opacity:.45;margin-left:6px}.plugin-instance-suffix{color:var(--primary);font-weight:400;opacity:.85}.core-badge{background:#7c6ff726;color:var(--primary);font-size:.65rem}.plugin-card-provides{padding:0 14px 8px}.plugin-card-caps{padding:0 14px 8px;display:flex;flex-wrap:wrap;gap:4px}.cap-chip{font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid var(--border);color:var(--text-secondary)}.cap-chip.dep-required{border-color:#5b8def;color:#5b8def}.cap-chip.dep-optional{opacity:.75}.cap-chip.cap-sensitive{border-color:#f59e0b;color:#f59e0b}.cap-chip.cap-danger{border-color:#ef4444;color:#ef4444;font-weight:600}.plugin-card-extends{padding:4px 14px 8px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}.extends-label{font-size:.75rem;color:#9ca3af;margin-right:4px}.extends-chip{display:inline-block;padding:1px 7px;border-radius:8px;font-size:.7rem;font-family:Fira Mono,monospace}.extends-chip.event{background:#3b82f626;color:#60a5fa}.extends-chip.hook{background:#a855f726;color:#c084fc}.extends-chip.mixin{background:#eab30826;color:#fbbf24}.plugin-provides-inline{display:inline-flex;gap:4px;margin-left:6px;flex-wrap:wrap}.provides-chip{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.65rem;font-family:SF Mono,Fira Code,monospace;background:#7c6ff71f;color:var(--primary);border:1px solid rgba(124,111,247,.25)}.plugin-card-config{padding:0 14px 12px;border-top:1px solid var(--border)}.plugin-reload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-secondary);opacity:.92;display:flex;align-items:center;justify-content:center;gap:8px;z-index:10;border-radius:8px;font-size:13px;color:var(--text-muted);pointer-events:all}.plugin-reload-spinner{animation:spin .8s linear infinite}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0}.toggle-switch.core-locked{opacity:.4;pointer-events:none}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border-light);border-radius:20px;cursor:pointer;transition:background var(--transition)}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:2px;bottom:2px;background:var(--text);border-radius:50%;transition:transform var(--transition)}.toggle-switch input:checked+.toggle-slider{background:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.btn{padding:6px 14px;font-size:.78rem;font-weight:500;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.97);transition-duration:.05s}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);color:#fff}.btn-danger{background:#d32f2f;color:#fff;border-color:#d32f2f}.btn-danger:hover:not(:disabled){background:#b71c1c}.btn-warn{background:#ed6c02;color:#fff;border-color:#ed6c02}.btn-warn:hover:not(:disabled){background:#e65100}.btn-sm{padding:4px 10px;font-size:.72rem}.config-header-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.config-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}.config-block-header{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background var(--transition)}.config-block-hint{flex:1;font-size:.72rem;color:var(--text-muted);opacity:.7;text-align:right}.config-block-header:hover{background:var(--surface-hover)}.config-block-title{font-size:.85rem;font-weight:600}.config-block-toggle{font-size:.7rem;color:var(--text-muted);transition:transform var(--transition)}.config-block-toggle.open{transform:rotate(90deg)}.config-block-body{padding:0 12px 10px;font-size:.8rem}.config-item{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;border-top:1px solid var(--border)}.config-item:first-child{border-top:none}.config-item .key{color:var(--text-secondary);font-family:SF Mono,Fira Code,monospace;font-size:.78rem}.config-item .val{color:var(--text);font-family:SF Mono,Fira Code,monospace;font-size:.78rem;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.config-nested{padding:2px 0}.config-nested-header{display:flex;align-items:center;gap:6px;padding:4px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.config-nested-header:hover{background:var(--surface-hover);border-radius:4px}.config-nested-header .key{color:var(--text-secondary);font-family:SF Mono,Fira Code,monospace;font-size:.78rem;font-weight:600}.config-nested-count{font-size:.68rem;color:var(--text-muted);margin-left:auto}.config-nested-body{border-left:1px solid var(--border);margin-left:6px;padding-left:8px}.config-edit-form{padding:8px 0}.config-edit-row{margin-bottom:8px}.config-edit-label{display:block;font-size:.72rem;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;margin-bottom:3px}.config-edit-input{width:100%;padding:6px 10px;font-size:.78rem;font-family:SF Mono,Fira Code,monospace;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);outline:none;transition:border-color var(--transition)}.config-edit-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}textarea.config-textarea{min-height:80px;max-height:300px;resize:vertical;font-family:inherit;line-height:1.5;overflow-y:auto}.config-edit-actions{display:flex;gap:6px;padding-top:4px}.config-edit-hint{display:block;font-size:.68rem;color:var(--text-muted);margin-top:2px;opacity:.8}.field-key{font-family:SF Mono,Fira Code,monospace;font-size:inherit;color:var(--text);background:#ffffff0f;padding:1px 4px;border-radius:3px}.field-hint{font-size:.68rem;color:var(--text-muted);font-family:inherit;opacity:.85}.config-edit-group{margin-bottom:10px;padding:8px 10px;background:#ffffff05;border:1px solid var(--border);border-radius:8px}.config-edit-group-label{font-size:.74rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.config-edit-input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}select.config-edit-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px;cursor:pointer}.multiselect-group{display:flex;flex-wrap:wrap;gap:6px 12px}.multiselect-item{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.multiselect-item input[type=checkbox]{accent-color:#5b7fff}.thinking-block{margin-bottom:4px;border-radius:8px;background:#8b5cf60f;border:1px solid rgba(139,92,246,.15);overflow:hidden}.thinking-summary{cursor:pointer;padding:6px 12px;font-size:.78rem;font-weight:500;color:var(--text-secondary);-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:4px}.thinking-summary::-webkit-details-marker{display:none}.thinking-summary:before{content:"▶";font-size:.6rem;transition:transform .2s}details[open]>.thinking-summary:before{transform:rotate(90deg)}.thinking-content{padding:0 12px 10px;font-size:.8rem;color:var(--text-secondary);line-height:1.6;max-height:400px;overflow-y:auto;border-top:1px solid rgba(139,92,246,.1)}.thinking-content p{margin:4px 0}.thinking-content::-webkit-scrollbar{width:4px}.thinking-content::-webkit-scrollbar-thumb{background:#8b5cf633;border-radius:2px}.tool-call-block{margin:8px 0;border-radius:8px;background:#3b82f60f;border:1px solid rgba(59,130,246,.15);overflow:hidden}.tool-call-summary{cursor:pointer;padding:6px 12px;font-size:.78rem;font-weight:500;color:var(--text-secondary);-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:4px}.tool-call-summary::-webkit-details-marker{display:none}.tool-call-summary:before{content:"▶";font-size:.6rem;transition:transform .2s}details[open]>.tool-call-summary:before{transform:rotate(90deg)}.tool-call-timer{margin-left:auto;font-size:.72rem;font-weight:400;color:var(--text-tertiary, rgba(255,255,255,.35));font-variant-numeric:tabular-nums;min-width:3.2em;text-align:right}.tool-call-content{padding:0 12px 10px;font-size:.8rem;color:var(--text-secondary);line-height:1.6;max-height:400px;overflow-y:auto;border-top:1px solid rgba(59,130,246,.1)}.tool-call-content pre{margin:4px 0;padding:6px 8px;background:#00000026;border-radius:4px;font-size:.75rem;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.tool-call-content strong{display:block;margin-top:6px;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:#3b82f6b3}.tool-call-content::-webkit-scrollbar{width:4px}.tool-call-content::-webkit-scrollbar-thumb{background:#3b82f633;border-radius:2px}.page-platforms .empty-hint{text-align:center;color:#fff6;padding:40px 0;font-size:.9rem}.platform-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px;margin-bottom:12px;transition:border-color .2s}.platform-card:hover{border-color:#ffffff26}.platform-card-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.platform-card-name{font-size:1rem;font-weight:600;color:#ffffffe6}.platform-card-id{font-size:.75rem;color:#fff6;background:#ffffff0f;padding:2px 8px;border-radius:4px;font-family:JetBrains Mono,monospace}.platform-no-connections{color:#ffffff59;font-size:.85rem;padding:8px 0}.platform-connections{display:flex;flex-direction:column;gap:6px}.platform-connection{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#ffffff08;border-radius:6px;font-size:.85rem}.platform-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.platform-status-dot.online{background:#22c55e;box-shadow:0 0 6px #22c55e80}.platform-status-dot.connecting{background:#f59e0b;box-shadow:0 0 6px #f59e0b80;animation:pulse 1.5s ease-in-out infinite}.platform-status-dot.offline{background:#6b7280}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.platform-conn-id{color:#fffc;font-family:JetBrains Mono,monospace;font-size:.82rem}.platform-conn-status{font-size:.75rem;padding:1px 6px;border-radius:3px}.platform-conn-status.online{color:#22c55e;background:#22c55e1a}.platform-conn-status.connecting{color:#f59e0b;background:#f59e0b1a}.platform-conn-status.offline{color:#6b7280;background:#6b72801a}.platform-conn-detail{margin-left:auto;font-size:.75rem;color:#ffffff59;font-family:JetBrains Mono,monospace}.btn-sm{padding:2px 10px;font-size:.75rem;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:#ffffff0d;color:#fff9;cursor:pointer;transition:all .15s}.btn-sm:hover:not(:disabled){background:#ffffff1a;color:#ffffffd9}.btn-sm:disabled{opacity:.4;cursor:not-allowed}.cmd-chip{display:inline-flex;align-items:center;gap:3px}.chip-badge{font-size:.62rem;line-height:1;vertical-align:middle}.chip-badge.chip-auth{color:gold}.chip-badge.chip-danger{color:var(--danger)}.authority-add-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.authority-add-form .config-edit-input{width:auto;min-width:120px;flex:1}.authority-cmd-list{font-size:.78rem}.authority-cmd-header{display:grid;grid-template-columns:1.2fr 1fr .7fr .7fr 1fr;padding:8px 12px;font-size:.72rem;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em}.authority-cmd-row{display:grid;grid-template-columns:1.2fr 1fr .7fr .7fr 1fr;padding:6px 12px;align-items:center;border-bottom:1px solid var(--border);transition:background .15s}.authority-cmd-row:last-child{border-bottom:none}.authority-cmd-row:hover{background:var(--surface-hover)}.authority-cmd-row.overridden{background:#7c6ff70a}.authority-cmd-row.is-sub{background:#00000004;border-left:2px solid var(--border)}.authority-cmd-row.is-sub.overridden{background:#7c6ff70f}.authority-cmd-toggle{font-size:9px;transition:transform .15s;-webkit-user-select:none;user-select:none}.authority-cmd-toggle.open{transform:rotate(90deg)}.authority-cmd-name{color:var(--primary);font-family:SF Mono,Fira Code,monospace;font-size:.76rem;font-weight:500}.authority-cmd-plugin{color:var(--text-muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.authority-owner-header,.authority-owner-row{grid-template-columns:1fr 1.5fr .8fr}.authority-user-header,.authority-user-row{grid-template-columns:1fr 1.5fr .8fr 1fr}.authority-cell-platform{color:var(--primary);font-family:SF Mono,Fira Code,monospace;font-size:.76rem}.authority-cell-id{color:var(--text);font-family:SF Mono,Fira Code,monospace;font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.authority-badge{display:inline-block;padding:1px 8px;font-size:.72rem;font-weight:600;border-radius:10px;background:#ffffff14;color:var(--text-secondary)}.authority-user-flag{margin-left:6px;padding:0 5px;font-size:.66rem;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary)}.authority-user-expand{display:flex;flex-direction:column;gap:4px;padding:8px 16px 10px;border-bottom:1px solid var(--border);background:#ffffff05}.authority-user-expand label{font-size:.7rem;color:var(--text-secondary)}.authority-badge.owner{background:#ffd70026;color:gold}.authority-badge.high{background:#7c6ff726;color:var(--primary)}.authority-safety-tag{display:inline-block;padding:1px 8px;font-size:.72rem;font-weight:600;border-radius:10px}.authority-safety-tag.safe{background:#48c78e1f;color:#48c78e}.authority-safety-tag.dangerous{background:#ff6b6b1f;color:var(--danger)}.authority-actions{display:flex;gap:4px}.authority-inline-input{width:70px!important;padding:2px 6px!important;font-size:.76rem!important}.authority-inline-select{width:100px!important;padding:2px 6px!important;font-size:.76rem!important}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes page-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-scale{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.confirm-dialog{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px 28px;max-width:440px;width:90%;text-align:center;box-shadow:0 8px 32px #0000004d;animation:modal-scale .2s cubic-bezier(.4,0,.2,1)}.confirm-dialog-icon{font-size:36px;margin-bottom:8px}.confirm-dialog h3{margin:0 0 8px;font-size:16px;color:var(--text)}.confirm-dialog-desc{font-size:13px;color:var(--muted);margin:0 0 12px;line-height:1.5}.confirm-dialog-desc strong{color:var(--text);font-family:var(--mono)}.confirm-dialog-args{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:11px;font-family:var(--mono);color:var(--muted);text-align:left;max-height:160px;overflow:auto;margin:0 0 16px;white-space:pre-wrap;word-break:break-all}.confirm-dialog-actions{display:flex;gap:10px;justify-content:center}.btn-confirm-danger{padding:8px 20px;border-radius:6px;border:none;cursor:pointer;font-size:13px;font-weight:600;background:#e74c3c;color:#fff;transition:background .15s}.btn-confirm-danger:hover{background:#c0392b}.btn-confirm-cancel{padding:8px 20px;border-radius:6px;border:1px solid var(--border);cursor:pointer;font-size:13px;background:var(--card-bg);color:var(--muted);transition:all .15s}.btn-confirm-cancel:hover{border-color:var(--text);color:var(--text)}.restart-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fade-in .2s ease}.restart-dialog{text-align:center}.restart-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;margin:0 auto 16px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.restart-dialog h3{margin:0 0 6px;font-size:18px;color:#fff;font-weight:600}.restart-desc{margin:0;font-size:13px;color:#fff9}.dynamic-page{display:flex;flex-direction:column;gap:20px;padding:24px}.dynamic-page.has-graph{height:100%;min-height:0;overflow:hidden}.page-content.has-graph{overflow:hidden}.dyn-scroll-region{flex:1 1 0;min-height:160px;overflow-y:auto;padding-bottom:12px}.dyn-scroll-region::-webkit-scrollbar{width:5px}.dyn-scroll-region::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.dyn-section-title{margin:0 0 12px;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.dyn-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.dyn-stat-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-stat-card:hover{border-color:var(--border-light)}.dyn-stat-icon{font-size:1.3rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--surface-active);flex-shrink:0;color:var(--primary)}.dyn-stat-body{min-width:0}.dyn-stat-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.dyn-stat-value{font-size:1rem;font-weight:700;color:var(--text)}.dyn-table-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition);max-width:100%;min-width:0}.dyn-table-block:hover{border-color:var(--border-light)}.dyn-table-scroll{overflow-x:auto;overflow-y:hidden;max-width:100%}.dyn-table{width:100%;border-collapse:collapse;font-size:13px}.dyn-table th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border-light);color:var(--text-muted);font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.dyn-table td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text-secondary);transition:background var(--transition);vertical-align:middle}.dyn-cell-nowrap{white-space:nowrap}.dyn-cell-expandable{display:flex;align-items:center;gap:8px}.dyn-cell-expandable .dyn-cell-expandable-text{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word}.dyn-cell-expandable.expanded{align-items:flex-start}.dyn-cell-expandable.expanded .dyn-cell-expandable-text{-webkit-line-clamp:unset;line-clamp:unset;display:block;max-height:80px;overflow-y:auto}.dyn-cell-expandable-toggle{flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:4px;padding:0 6px;font-size:11px;line-height:18px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition),color var(--transition)}.dyn-cell-expandable-toggle:hover{background:var(--surface-hover);color:var(--text-primary)}.dyn-table tr:last-child td{border-bottom:none}.dyn-table tr:hover td{background:var(--surface-hover)}.dyn-table-actions{display:flex;gap:6px;flex-wrap:nowrap;align-items:center;justify-content:flex-start}.dyn-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.02em}.dyn-badge-running,.dyn-badge-online,.dyn-badge-active{background:#48c78e26;color:var(--accent)}.dyn-badge-stopped,.dyn-badge-offline,.dyn-badge-error{background:#ff6b6b26;color:var(--danger)}.dyn-badge-pending,.dyn-badge-connecting{background:#f0c06026;color:var(--warning)}.countdown-imminent{color:var(--danger);font-weight:600;animation:countdown-pulse 1s ease-in-out infinite}.countdown-fired{color:var(--accent);font-weight:600;animation:countdown-pulse .6s ease-in-out infinite}@keyframes countdown-pulse{0%,to{opacity:1}50%{opacity:.5}}.dyn-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:900;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .15s ease}.dyn-detail-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(640px,90vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0006;animation:modal-scale .2s cubic-bezier(.4,0,.2,1)}.dyn-detail-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.dyn-detail-title{font-weight:600;font-size:15px}.dyn-detail-close{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;padding:0 4px;line-height:1}.dyn-detail-close:hover{color:var(--text-primary)}.dyn-detail-body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.dyn-detail-field{display:flex;flex-direction:column;gap:4px}.dyn-detail-key{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.dyn-detail-val{font-size:13px;color:var(--text-primary);word-break:break-word}.dyn-detail-pre{font-size:12px;font-family:var(--font-mono, "JetBrains Mono", monospace);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin:0;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto;color:var(--text-primary)}.dyn-form-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-form-block:hover{border-color:var(--border-light)}.dyn-actions-block{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-actions-block:hover{border-color:var(--border-light)}.dyn-action-msg{font-size:12px;color:var(--text-muted)}.dyn-info-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-info-block:hover{border-color:var(--border-light)}.dyn-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.dyn-info-item{display:flex;flex-direction:column;gap:2px}.dyn-info-key{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.dyn-info-val{font-size:14px;color:var(--text);word-break:break-all}.dyn-markdown-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;color:var(--text-secondary);line-height:1.6;transition:border-color var(--transition)}.dyn-markdown-block:hover{border-color:var(--border-light)}.dyn-tabs-block{display:flex;flex-direction:column;gap:12px}.dyn-tabs-header{display:flex;gap:4px;border-bottom:1px solid var(--border);padding-bottom:0}.dyn-tab-btn{background:none;border:none;color:var(--text-muted);font-size:13px;padding:8px 16px;cursor:pointer;border-bottom:2px solid transparent;transition:color var(--transition),border-color var(--transition)}.dyn-tab-btn:hover{color:var(--text-secondary)}.dyn-tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.dyn-tabs-body{display:flex;flex-direction:column;gap:16px}.model-search-row{position:relative;margin-bottom:12px}.model-provider-group{margin-bottom:12px}.model-provider-label{font-size:.72rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px;padding-left:2px}.model-list{display:flex;flex-wrap:wrap;gap:6px}.model-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:.78rem;transition:border-color var(--transition)}.model-chip:hover{border-color:var(--primary)}.model-chip-name{font-family:SF Mono,Fira Code,monospace;color:var(--text);font-size:.76rem}.model-chip-caps{display:inline-flex;gap:3px}.model-cap-tag{display:inline-block;padding:1px 5px;border-radius:4px;font-size:.62rem;background:#7c6ff71f;color:var(--primary)}.session-tree-page{display:flex;height:100%;gap:1px;background:var(--border)}.tree-visual-panel{flex:1;display:flex;flex-direction:column;background:var(--bg);min-width:0}.tree-visual-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.tree-visual-header h3{margin:0;font-size:15px;font-weight:600}.tree-header-actions{display:flex;align-items:center;gap:4px}.tree-action-btn{border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:4px 8px;border-radius:4px;transition:background var(--transition),color var(--transition)}.tree-action-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.tree-batch-btn{border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11px;padding:3px 10px;border-radius:4px;transition:all var(--transition)}.tree-batch-btn:hover:not(:disabled){background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.tree-batch-btn:disabled{opacity:.4;cursor:default}.tree-batch-btn.archive{border-color:var(--color-warning, #ff9800);color:var(--color-warning, #ff9800)}.tree-batch-btn.archive:hover:not(:disabled){background:#ff98001a}.tree-batch-btn.danger{border-color:var(--color-error, #f44336);color:var(--color-error, #f44336)}.tree-batch-btn.danger:hover:not(:disabled){background:#f443361a}.tree-refresh-btn{border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:18px;padding:4px;border-radius:4px}.tree-refresh-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.tree-visual-body{flex:1;overflow:auto;padding:16px}.tree-empty{text-align:center;color:var(--text-muted);padding:48px 16px;font-size:14px}.tree-page-error{padding:48px;text-align:center;color:var(--color-error, #f44336)}.tree-node{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:8px;border:1px solid var(--border);cursor:pointer;transition:all .15s ease;margin-bottom:4px;background:var(--bg)}.tree-node:hover{border-color:var(--accent, #6366f1);background:var(--accent-faded, rgba(99,102,241,.06))}.tree-node.selected{border-color:var(--accent, #6366f1);background:var(--accent-faded, rgba(99,102,241,.12));box-shadow:0 0 0 1px var(--accent, #6366f1)}.tree-node.active-chat{border-color:#4caf50;box-shadow:0 0 0 1.5px #4caf50;animation:active-chat-pulse 2s ease-in-out infinite}.tree-node.active-chat.selected{border-color:#4caf50;box-shadow:0 0 0 1.5px #4caf50}@keyframes active-chat-pulse{0%,to{box-shadow:0 0 0 1.5px #4caf50}50%{box-shadow:0 0 8px 2px #4caf5066}}.tree-node.status-archived{opacity:.6}.tree-node.status-error{border-color:var(--color-error, #f44336)}.tree-node-toggle{width:20px;height:20px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:0;flex-shrink:0}.tree-node-status{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tree-node-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tree-node-title{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-node-meta{font-size:11px;color:var(--text-muted)}.tree-node-badge{background:var(--accent-faded, rgba(99,102,241,.15));color:var(--accent, #6366f1);font-size:10px;padding:1px 6px;border-radius:8px;flex-shrink:0;font-weight:600}.tree-node-checkbox{flex-shrink:0;accent-color:var(--accent, #6366f1);margin:0;cursor:pointer}.tree-node-actions{display:none;gap:2px;flex-shrink:0}.tree-node:hover .tree-node-actions{display:flex}.tree-node-action-btn{width:22px;height:22px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:11px;padding:0;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:background var(--transition),color var(--transition)}.tree-node-action-btn:hover{background:var(--bg-hover, rgba(255,255,255,.1));color:var(--text)}.tree-node-action-btn.danger:hover{color:var(--color-error, #f44336)}.tree-node-rename-input{flex:1;min-width:0;padding:2px 6px;border:1px solid var(--accent);border-radius:4px;background:var(--bg);color:var(--text);font-size:13px;outline:none}.tree-node-children{padding-left:12px;border-left:2px solid var(--border);margin-left:20px;margin-top:2px;margin-bottom:4px}.tree-flow-label{display:flex;align-items:flex-start;gap:6px;padding:4px 8px;font-size:11px;color:var(--text-muted);margin-bottom:4px}.tree-flow-label.result{margin-top:2px;margin-bottom:6px}.tree-flow-arrow{color:var(--accent, #6366f1);font-weight:700;flex-shrink:0}.tree-flow-label.result .tree-flow-arrow{color:var(--color-success, #4caf50)}.tree-flow-text{font-style:italic;line-height:1.4;word-break:break-word}.tree-detail-panel{width:400px;flex-shrink:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.tree-detail-placeholder{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted);font-size:14px}.delete-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.delete-confirm-dialog{background:var(--bg-card, #1e1e2e);border:1px solid var(--border);border-radius:12px;padding:20px 24px;max-width:360px;box-shadow:0 8px 32px #0000004d}.delete-confirm-dialog p{margin:0 0 16px;font-size:14px;color:var(--text);line-height:1.5}.delete-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.btn-danger{background:#f44336!important;color:#fff!important;border:none!important}.btn-danger:hover{background:#d32f2f!important}.session-detail{display:flex;flex-direction:column;overflow-y:auto;padding:16px;gap:16px}.session-detail-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.session-detail-header h3{margin:0;font-size:16px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-detail-status{font-size:12px;font-weight:600;flex-shrink:0}.session-detail-meta{font-size:12px;color:var(--text-muted);display:flex;flex-direction:column;gap:4px;padding:10px;background:var(--bg-secondary);border-radius:8px}.session-detail-context,.session-detail-result{padding:10px;border-radius:8px;border:1px solid var(--border)}.session-detail-context{border-left:3px solid var(--accent, #6366f1)}.session-detail-result{border-left:3px solid var(--color-success, #4caf50)}.context-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;margin-bottom:6px}.context-content{font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.session-detail-messages h4{margin:0 0 12px;font-size:14px;font-weight:600}.no-messages{text-align:center;color:var(--text-muted);padding:24px;font-size:13px}.message-list{display:flex;flex-direction:column;gap:8px}.detail-message{padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.5}.detail-message.user{background:var(--accent-faded, rgba(99,102,241,.1));margin-left:24px}.detail-message.assistant{background:var(--bg-secondary);margin-right:24px}.detail-msg-role{font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:4px}.detail-msg-content{white-space:pre-wrap;word-break:break-word}.detail-msg-content.detail-msg-md{white-space:normal}.detail-msg-md p{margin:0 0 .6em;line-height:1.7}.detail-msg-md p:last-child{margin-bottom:0}.detail-msg-md h1,.detail-msg-md h2,.detail-msg-md h3,.detail-msg-md h4{margin:1em 0 .5em;font-weight:700;line-height:1.3;color:var(--text)}.detail-msg-md h1:first-child,.detail-msg-md h2:first-child,.detail-msg-md h3:first-child{margin-top:0}.detail-msg-md h1{font-size:1.3em}.detail-msg-md h2{font-size:1.15em}.detail-msg-md h3{font-size:1.05em}.detail-msg-md ul,.detail-msg-md ol{margin:.4em 0 .6em 1.2em;padding:0}.detail-msg-md li{margin-bottom:.25em}.detail-msg-md blockquote{border-left:3px solid var(--primary);padding:.3em .8em;margin:.5em 0;background:var(--surface);border-radius:0 6px 6px 0;color:var(--text-secondary)}.detail-msg-md a{color:var(--primary);text-decoration:none}.detail-msg-md a:hover{text-decoration:underline}.detail-msg-md hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.detail-msg-md table{border-collapse:collapse;margin:.6em 0;font-size:.85em;width:100%}.detail-msg-md th,.detail-msg-md td{border:1px solid var(--border);padding:6px 10px;text-align:left}.detail-msg-md th{background:var(--surface);font-weight:600}.detail-msg-md img{max-width:100%;border-radius:6px}.detail-msg-md code:not(pre code){background:var(--surface-active);padding:1px 5px;border-radius:4px;font-family:SF Mono,Fira Code,monospace;font-size:.88em;color:#e7a0dc}.detail-msg-md pre{background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin:.6em 0;overflow-x:auto;font-size:.84em;line-height:1.5;white-space:pre}.detail-msg-md pre code{background:none;padding:0;font-family:SF Mono,Fira Code,monospace;color:var(--text)}.detail-msg-md pre::-webkit-scrollbar{height:4px}.detail-msg-md pre::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}.detail-message.streaming{border-left:3px solid var(--primary)}.streaming-indicator{display:inline-block;color:var(--primary);animation:pulse-dot 1s ease-in-out infinite;margin-left:4px;font-size:10px;vertical-align:middle}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.detail-msg-time{font-size:10px;color:var(--text-muted);margin-top:4px;text-align:right}.page-files{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden}.files-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;flex-shrink:0;gap:12px}.files-breadcrumb{display:flex;align-items:center;gap:4px;font-size:13px;flex:1;min-width:0;overflow-x:auto}.files-nav-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.files-nav-btn:hover:not(:disabled){background:var(--surface-hover, rgba(255,255,255,.06))}.files-nav-btn:disabled{opacity:.3;cursor:default}.breadcrumb-item{cursor:pointer;color:var(--text);padding:2px 4px;border-radius:4px;white-space:nowrap}.breadcrumb-item:hover{background:var(--surface-hover, rgba(255,255,255,.06));color:var(--primary)}.breadcrumb-sep{color:var(--text-muted, #888);flex-shrink:0}.files-toolbar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.files-auto-refresh{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted, #888);cursor:pointer;-webkit-user-select:none;user-select:none}.files-auto-refresh input[type=checkbox]{accent-color:var(--primary);cursor:pointer}.files-refresh-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.files-refresh-btn:hover{background:var(--surface-hover, rgba(255,255,255,.06))}.files-refresh-btn .spin{animation:spin .8s linear infinite}.files-table-wrapper{flex:1;overflow-y:auto;overflow-x:auto}.files-table{width:100%;border-collapse:collapse;font-size:13px}.files-table thead{position:sticky;top:0;z-index:2;background:var(--surface)}.files-table th{text-align:left;padding:8px 12px;font-weight:500;color:var(--text-muted, #888);border-bottom:1px solid var(--border);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.files-table td{padding:6px 12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.files-row+.files-row td{border-top:1px solid var(--border)}.col-name{width:100%}.col-size,.col-mtime{white-space:nowrap}.col-actions{text-align:right}.files-row{transition:background .15s}.files-row:hover{background:var(--surface-hover, rgba(255,255,255,.04))}.col-name-inner{display:flex;align-items:center;gap:8px}.file-icon{flex-shrink:0;display:flex;align-items:center;color:var(--text-muted, #888)}.file-name{overflow:hidden;text-overflow:ellipsis}.file-name.is-dir{cursor:pointer;color:var(--primary)}.file-name.is-dir:hover{text-decoration:underline}.rename-input{background:var(--bg);border:1px solid var(--primary);color:var(--text);border-radius:4px;padding:2px 6px;font-size:13px;width:100%;outline:none}.col-actions{white-space:nowrap}td.col-actions{text-align:right}.file-action-btn{background:none;border:none;color:var(--text-muted, #888);cursor:pointer;padding:4px;border-radius:4px;display:inline-flex;align-items:center}.file-action-btn:hover{color:var(--text);background:var(--surface-hover, rgba(255,255,255,.06))}.file-action-btn.danger:hover{color:var(--danger)}.files-empty{text-align:center;padding:40px 0!important;color:var(--text-muted, #888)}.files-error{padding:40px;text-align:center;color:var(--danger)}.files-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.files-modal{background:var(--surface);border-radius:var(--radius);padding:24px;min-width:340px;max-width:460px;box-shadow:0 8px 32px #00000080}.files-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.files-modal-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:12px}.files-modal-header .files-modal-title{margin-bottom:0}.files-modal-close{background:none;border:none;color:var(--text-muted, #888);cursor:pointer;padding:4px;border-radius:4px}.files-modal-close:hover{color:var(--text);background:var(--surface-hover, rgba(255,255,255,.06))}.files-modal p{font-size:13px;color:var(--text);margin:0 0 20px;line-height:1.5}.files-modal-actions{display:flex;justify-content:flex-end;gap:8px}.btn-secondary,.btn-danger{padding:6px 16px;border-radius:6px;font-size:13px;cursor:pointer;border:none}.btn-secondary{background:var(--border);color:var(--text)}.btn-secondary:hover{background:var(--surface-hover, rgba(255,255,255,.12))}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.85}.files-detail-modal{min-width:380px}.files-detail-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13px}.detail-label{color:var(--text-muted, #888);white-space:nowrap}.detail-value{color:var(--text);word-break:break-all}.files-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--surface);color:var(--text);padding:8px 20px;border-radius:8px;font-size:13px;box-shadow:0 4px 16px #0006;z-index:1100;animation:toastIn .25s ease}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.mermaid-block{display:flex;justify-content:center;margin:12px 0;padding:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;overflow-x:auto}.mermaid-block svg{max-width:100%;height:auto}.mermaid-block-loading{opacity:.6;font-style:italic}.mermaid-block-error{flex-direction:column;align-items:stretch;background:#ff57570f;border-color:#ff57574d}.mermaid-error-banner{color:#ff8a8a;font-size:12px;margin-bottom:8px;padding:4px 8px;background:#ff57571a;border-radius:4px}.mermaid-block-error pre{margin:0;background:transparent}.image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d1;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;animation:lightbox-fadein .12s ease-out}@keyframes lightbox-fadein{0%{opacity:0}to{opacity:1}}.image-lightbox-content{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 8px 32px #00000080;cursor:default}.image-lightbox-close{position:absolute;top:16px;right:20px;width:36px;height:36px;border:none;border-radius:50%;background:#ffffff26;color:#fff;font-size:22px;line-height:1;cursor:pointer;transition:background var(--transition)}.image-lightbox-close:hover{background:#ffffff4d}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:2000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .15s ease}.confirm-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(440px,90vw);max-height:80vh;overflow-y:auto;padding:20px;box-shadow:0 20px 60px #0006;animation:modal-scale .2s cubic-bezier(.4,0,.2,1)}.confirm-title{font-size:.95rem;font-weight:600;color:var(--text);margin-bottom:10px}.confirm-body{font-size:.82rem;color:var(--text-secondary);line-height:1.6;white-space:pre-wrap;margin-bottom:18px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-body-rich{white-space:normal}.dep-disclosure{margin-bottom:12px}.dep-section-label{font-size:.72rem;color:var(--text-muted);margin-bottom:6px}.dep-tree-node{font-size:.8rem}.dep-tree-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:1px 0}.dep-tree-name{color:var(--text);font-family:var(--font-mono, monospace);font-size:.78rem}.dep-tree-tag{font-size:.66rem;padding:0 5px;border-radius:4px;border:1px solid var(--border-light);color:var(--text-secondary)}.dep-tag-missing{color:var(--warning, #ffb300);border-color:var(--warning, #ffb300)}.dep-tag-req{color:var(--primary);border-color:var(--primary)}.dep-tag-prov{color:var(--accent);border-color:var(--accent)}.dep-line{font-size:.78rem;color:var(--text-secondary);margin-top:6px;line-height:1.5}.dep-svc{margin-right:6px}.dep-svc.ok{color:var(--accent)}.dep-svc.warn{color:var(--warning, #ffb300)}.dep-empty{font-size:.78rem;color:var(--text-muted)}.dep-uninstall-warn{margin-bottom:12px}.dep-warn-block{color:var(--danger);background:#ff6b6b14;border-left:2px solid var(--danger);padding:6px 8px;border-radius:4px;margin-top:6px}.dep-note{font-size:.78rem;color:var(--text-secondary);line-height:1.5;margin-top:4px}@media(max-width:768px){body{height:100dvh}.app-layout.mobile{flex-direction:column;height:100dvh;padding-bottom:0}.app-layout.mobile-view-chat .content-area,.app-layout.mobile-view-page .chat-column{display:none}.mobile-topbar{display:flex;align-items:center;gap:4px;min-height:52px;padding:0 6px;padding-top:env(safe-area-inset-top);border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.mobile-topbar-btn{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);border-radius:8px;cursor:pointer}.mobile-topbar-btn:active{background:var(--surface-hover)}.mobile-topbar-title{flex:1;text-align:center;font-size:.95rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-layout.mobile .nav-rail{position:fixed;top:0;left:0;bottom:0;width:min(78vw,300px);min-width:0;transform:translate(-100%);transition:transform var(--transition);z-index:120;padding-top:env(safe-area-inset-top);box-shadow:4px 0 24px #0006}.app-layout.mobile .nav-rail:hover{width:min(78vw,300px);min-width:0}.app-layout.mobile .nav-rail.drawer-open{transform:translate(0)}.nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:110}.app-layout.mobile .nav-item{height:48px;padding:0 14px;gap:14px}.app-layout.mobile .nav-item-label{opacity:1;align-items:flex-start;font-size:.88rem}.app-layout.mobile .nav-rail-top{padding:10px;overflow-y:auto}.app-layout.mobile .nav-rail-bottom{justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;padding-bottom:calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border)}.drawer-user{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;color:var(--text-secondary)}.drawer-user-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-user .btn-sm{min-height:36px}.app-layout.mobile .chat-column{width:100%;min-width:0;flex:1;min-height:0}.app-layout.mobile .chat-panel-header{height:auto;min-height:var(--header-height);padding-top:calc(6px + env(safe-area-inset-top));padding-bottom:6px;gap:4px}.chat-panel-nav-btn{min-width:42px;min-height:42px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);border-radius:8px;cursor:pointer;flex-shrink:0}.chat-panel-nav-btn:active{background:var(--surface-hover)}.app-layout.mobile .chat-panel-title{text-overflow:ellipsis;white-space:nowrap}.app-layout.mobile .token-usage-panel{width:min(280px,calc(100vw - 24px))}.app-layout.mobile .message-group{max-width:94%}.app-layout.mobile .input-area{padding-bottom:calc(10px + env(safe-area-inset-bottom))}.app-layout.mobile .content-area{min-width:0;min-height:0}.app-layout.mobile .content-header{display:none}.app-layout.mobile textarea,.app-layout.mobile input[type=text],.app-layout.mobile input[type=password],.app-layout.mobile input[type=number],.app-layout.mobile select{font-size:16px}.app-layout.mobile .send-btn,.app-layout.mobile .upload-btn{min-width:42px;min-height:42px}.app-layout.mobile .chat-panel-new-btn{min-width:38px;min-height:38px}.app-layout.mobile .authority-cmd-list{overflow-x:auto}.app-layout.mobile .authority-cmd-header,.app-layout.mobile .authority-cmd-row{min-width:560px}.app-layout.mobile .session-tree-page{flex-direction:column}.app-layout.mobile .tree-detail-panel{width:100%;max-height:50%;border-top:1px solid var(--border)}.app-layout.mobile .tree-detail-panel:has(.tree-detail-placeholder-idle){display:none}.app-layout.mobile .confirm-dialog,.app-layout.mobile .restart-dialog,.app-layout.mobile .delete-confirm-dialog,.app-layout.mobile .files-modal,.app-layout.mobile .files-detail-modal{max-width:calc(100vw - 32px)}.app-layout.mobile .files-modal,.app-layout.mobile .files-detail-modal{min-width:0}}
|