.msg-bubble h1,.msg-bubble h2,.msg-bubble h3{margin:12px 0 8px;font-weight:600}.msg-bubble h1:first-child,.msg-bubble h2:first-child,.msg-bubble h3:first-child{margin-top:0}.msg-bubble h1{font-size:18px}.msg-bubble h2{font-size:16px}.msg-bubble h3{font-size:15px}.msg-bubble p{margin:12px 0}.msg-bubble ul,.msg-bubble ol{padding-left:20px;margin:4px 0}.msg-bubble li{margin:2px 0}.msg-bubble a{color:var(--accent);text-decoration:none}.msg-bubble a:active{text-decoration:underline}.msg-bubble strong{font-weight:600;color:#fff}.msg-bubble em{font-style:italic;color:var(--text-secondary)}.msg-bubble code{background:var(--bg-code);padding:2px 6px;border-radius:4px;font-family:SF Mono,Menlo,monospace;font-size:13px}.msg-bubble pre{background:var(--bg-code);border-radius:var(--radius-sm);padding:12px;margin:8px 0;overflow-x:auto;position:relative}.msg-bubble pre code{background:none;padding:0;font-size:13px;line-height:1.5;display:block;white-space:pre}.code-copy-btn{position:absolute;top:6px;right:6px;background:#ffffff1a;border:none;color:var(--text-secondary);font-size:11px;padding:3px 8px;border-radius:4px;cursor:pointer;transition:background .2s}.code-copy-btn:active{background:#fff3;color:var(--accent)}.hl-attr{color:#79c0ff}.hl-attr-name{color:#79c0ff}.hl-builtin,.hl-variable{color:#ffa657}.hl-operator{color:#ff7b72}.hl-punctuation{color:#8b949e}.hl-property,.hl-boolean{color:#79c0ff}.cmd-overlay{position:fixed;inset:0;background:#0009;z-index:100;opacity:0;pointer-events:none;transition:opacity .25s}.cmd-overlay.visible{opacity:1;pointer-events:auto}.slash-cmd-overlay{z-index:9990}.cmd-panel{position:fixed;bottom:0;left:50%;transform:translate(-50%) translateY(100%);width:100%;max-width:var(--app-max-w);max-height:65vh;background:var(--bg-secondary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:101;transition:transform .35s cubic-bezier(.4,0,.2,1);overflow:hidden;display:flex;flex-direction:column;padding-bottom:var(--safe-bottom)}.slash-cmd-panel{z-index:9991;padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}.cmd-panel.visible{transform:translate(-50%) translateY(0)}.cmd-panel-header{padding:16px 20px 10px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);flex-shrink:0}.cmd-panel-header h3{font-size:16px;font-weight:600}.cmd-panel-header .close-btn{width:28px;height:28px;background:none;border:none;color:var(--text-secondary);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}.cmd-list{overflow-y:auto;padding:8px 16px 16px;-webkit-overflow-scrolling:touch}.cmd-search-wrap{padding:0 16px 8px;flex-shrink:0}.cmd-search-input{width:100%;box-sizing:border-box;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-primary, rgba(0, 0, 0, .2));color:var(--text-primary, inherit);font-size:14px}.cmd-search-input:focus{outline:none;border-color:var(--accent)}.cmd-empty{padding:24px 12px;text-align:center;color:var(--text-muted);font-size:13px}.cmd-group-title{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;padding:12px 0 6px;font-weight:600}.cmd-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent;user-select:none}.cmd-item:active{background:#e945601f}.cmd-item .cmd-text{font-size:14px;font-family:SF Mono,Menlo,monospace;color:var(--accent)}.cmd-item .cmd-desc{font-size:12px;color:var(--text-secondary);flex:1}.msg-img{max-width:100%;max-height:300px;border-radius:var(--radius-sm);margin:6px 0;cursor:pointer;display:block;object-fit:contain}.lightbox{position:fixed;inset:0;background:#000000eb;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}.lightbox img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:var(--radius-sm)}.lightbox .close-lightbox{position:absolute;top:16px;right:16px;width:36px;height:36px;background:#ffffff26;border:none;border-radius:50%;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}.msg.ai{align-items:flex-start}.msg.user{align-items:flex-end}.system-msg{text-align:center;font-size:12px;color:var(--text-muted);padding:6px 0}.tool-card .tool-status.error{color:var(--danger)}.code-lang{font-size:11px;color:var(--text-muted);position:absolute;top:6px;left:12px;text-transform:uppercase;letter-spacing:.5px}.session-sidebar-backdrop,.session-sidebar-overlay{position:fixed;inset:0;background:#0009;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s ease}.session-sidebar-backdrop.active,.session-sidebar-overlay.active{opacity:1;pointer-events:auto}.session-dialog-overlay{position:fixed;inset:0;background:#0000008c;z-index:102;opacity:0;pointer-events:none;transition:opacity .2s ease}.session-dialog-overlay.active{opacity:1;pointer-events:auto}.session-sidebar{position:fixed;top:0;left:0;width:75vw;max-width:320px;height:100%;background:var(--bg-primary);z-index:101;display:flex;flex-direction:column;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:2px 0 12px #0003;padding-bottom:var(--safe-bottom, 0)}.session-sidebar.active{transform:translate(0)}.session-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.session-sidebar-header h3{font-size:17px;font-weight:600;margin:0}.session-new-actions{display:flex;flex-direction:column;gap:6px;padding-bottom:4px}.session-new-btn-inline{display:flex;align-items:center;justify-content:center;gap:6px;width:calc(100% - 32px);margin:8px 16px 0;padding:10px 0;background:var(--accent);border:none;border-radius:12px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .15s;flex-shrink:0}.session-new-btn-custom{align-self:center;margin:0 16px 8px;padding:4px 8px;background:none;border:none;color:var(--text-muted);font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.session-new-btn-custom:active{color:var(--accent)}.session-sidebar.touch-device .session-item-action-btn,.session-sidebar.mobile .session-item-action-btn{width:40px;height:40px}.session-sidebar.touch-device .session-item-edit-btn,.session-sidebar.touch-device .session-item-del-btn{opacity:1}.session-sidebar-item.main-session.active{background:#e945601f;border-left-color:var(--accent)}.session-sidebar-item.main-session.active .session-item-title,.session-sidebar-item.main-session.active .session-item-preview,.session-sidebar-item.main-session.active .session-item-meta{color:var(--text-primary)}.session-search-hint{text-align:center;color:var(--text-muted);padding:12px 16px;font-size:13px}.session-new-btn-inline:active{opacity:.8}.session-sidebar-close{width:30px;height:30px;background:var(--bg-card);border:none;border-radius:50%;color:var(--text-secondary);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.session-sidebar-close:hover,.session-sidebar-close:active{background:var(--hover-bg)}.session-sidebar-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.session-sidebar-list{flex:1;overflow-y:auto;padding:8px 0;-webkit-overflow-scrolling:touch}.session-group-label{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:10px 16px 8px;margin-top:4px;font-size:13px;font-weight:600;color:var(--text-secondary, #888);background:color-mix(in srgb,var(--bg-primary, #1a1a2e) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border, rgba(255,255,255,.06))}.session-group-count{font-size:11px;font-weight:500;color:var(--text-muted, #666);background:var(--hover-bg, rgba(128,128,128,.1));padding:1px 8px;border-radius:10px;line-height:18px}.session-sidebar-item{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;transition:background .15s;border-left:3px solid transparent}.session-sidebar-item:active,.session-sidebar-item:hover{background:var(--hover-bg, rgba(128, 128, 128, .08))}.session-sidebar-item.active{background:#e9456014;border-left-color:var(--accent)}.session-sidebar-item.main-session{background:linear-gradient(135deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 80%,#000) 100%)}.session-sidebar-item.main-session .session-item-title{color:#fff;font-weight:600}.session-sidebar-item.main-session .session-item-preview,.session-sidebar-item.main-session .session-item-meta{color:#ffffffb3}.session-sidebar-item.main-session .session-item-model{background:#fff3;color:#fff}.session-sidebar-item .session-item-content{flex:1;min-width:0;overflow:hidden}.session-item-title{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.session-status-icon{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-right:6px;flex-shrink:0;line-height:0}.session-status-icon.running{color:var(--accent)}.session-status-icon.running svg{stroke:var(--accent)}[data-theme=dark] .session-status-icon.running{color:#fbbf24}[data-theme=dark] .session-status-icon.running svg{stroke:#fbbf24}.session-status-icon.completed{color:var(--text-secondary)}.session-status-icon.completed svg{stroke:var(--text-secondary)}[data-theme=dark] .session-status-icon.completed{color:#4ade80}[data-theme=dark] .session-status-icon.completed svg{stroke:#4ade80}.session-item-title{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.session-item-preview{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;line-height:1.3}.session-item-meta{font-size:11px;color:var(--text-muted);display:flex;gap:8px;margin-top:3px;line-height:1.3}.session-item-model{opacity:.7}.session-item-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.session-item-action-btn{width:36px;height:36px;background:var(--bg-card, rgba(128, 128, 128, .1));border:none;color:var(--text-secondary);cursor:pointer;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:1;-webkit-tap-highlight-color:transparent;transition:color .15s,background .15s,transform .1s}.session-item-action-btn.rename:hover,.session-item-action-btn.rename:active{color:var(--accent);background:#e945601f}.session-item-action-btn.delete:hover,.session-item-action-btn.delete:active{color:var(--danger);background:#e74c3c1f}.session-item-action-btn:active{transform:scale(.92)}.session-item-action-btn.text-btn{width:auto;min-width:48px;height:32px;padding:0 10px;font-size:12px;font-weight:500;line-height:1;white-space:nowrap}.session-item-action-btn.text-btn.rename{color:var(--accent);background:#e945601a}.session-item-action-btn.text-btn.delete{color:var(--danger);background:#e74c3c1a}.session-sidebar.mobile .session-item-action-btn.text-btn{height:36px;padding:0 12px;font-size:13px}.session-sidebar-item.main-session .session-item-action-btn.text-btn.rename{color:#fff;background:#fff3}.session-sidebar-item.main-session .session-item-action-btn.text-btn.delete{color:#fff;background:#ffffff26}.session-sidebar-close svg,.session-search-clear svg{display:block}.session-agent-arrow{display:inline-flex;align-items:center;color:var(--text-muted)}.session-sidebar-item.active .session-item-action-btn{background:#ffffff1f}.session-sidebar-item.main-session .session-item-action-btn{background:#ffffff2e;color:#ffffffe6}.session-sidebar-item.main-session .session-item-action-btn.rename:active{color:#fff;background:#ffffff47}.session-item-edit-btn{width:36px;height:36px;background:var(--bg-card, rgba(128, 128, 128, .1));border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:1;transition:color .15s,background .15s}.session-item-edit-btn:active{color:var(--accent);background:#e945601f}.session-item-del-btn{width:36px;height:36px;background:var(--bg-card, rgba(128, 128, 128, .1));border:none;color:var(--text-secondary);font-size:12px;cursor:pointer;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:1;transition:color .15s,background .15s}.session-item-del-btn:active{color:var(--danger);background:#e74c3c26}.session-sidebar-footer{padding:12px 16px;border-top:1px solid var(--border);flex-shrink:0}.session-sidebar-new-btn{width:100%;height:42px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;font-size:15px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:opacity .15s}.session-sidebar-new-btn:active{opacity:.8}.session-loading{text-align:center;color:var(--text-muted);padding:24px 16px;font-size:14px}#session-title{cursor:pointer;user-select:none;-webkit-user-select:none}#session-title:active{opacity:.7}.session-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - 48px);max-width:360px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;z-index:103}.session-dialog h3{font-size:16px;font-weight:600}.session-dialog-btn{height:36px;padding:0 16px;border:none;border-radius:var(--radius-sm);font-size:14px;cursor:pointer;transition:opacity .15s}.session-dialog-btn.cancel{background:var(--bg-card);color:var(--text-secondary)}.session-dialog-btn.confirm{background:var(--accent);color:#fff}.session-dialog-btn.danger{background:var(--danger);color:#fff}.session-dialog-btn:active{opacity:.8}.session-sidebar.mobile{width:min(92vw,360px);max-width:none;padding-top:env(safe-area-inset-top,0px);padding-bottom:var(--tab-bar-h, calc(56px + env(safe-area-inset-bottom, 0px)) )}.session-sidebar-drag-handle{width:36px;height:4px;border-radius:2px;background:var(--border, rgba(148, 163, 184, .35));margin:8px auto 4px;flex-shrink:0}.session-sidebar.mobile .session-sidebar-header{padding-top:8px}.session-sidebar.mobile .session-sidebar-close{width:44px;height:44px;font-size:22px}.session-list-hint{text-align:center;font-size:12px;color:var(--text-muted);padding:4px 16px 10px;line-height:1.45}.session-pin-icon{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-right:4px;color:var(--accent);flex-shrink:0;line-height:0}.session-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.session-sidebar-item.pinned{background:#6366f10a}.session-bottom-sheet-overlay.desktop{align-items:center;justify-content:center;padding:20px}.session-bottom-sheet-overlay.desktop .session-bottom-sheet{width:min(100%,360px);border-radius:16px;transform:translateY(12px);opacity:0}.session-bottom-sheet-overlay.desktop .session-bottom-sheet.active{transform:translateY(0);opacity:1}.session-mobile-hint{text-align:center;font-size:12px;color:var(--text-muted);padding:6px 16px 10px}.session-pull-indicator{height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:height .15s ease;flex-shrink:0}.session-pull-indicator.visible{color:var(--text-muted);font-size:12px}.session-pull-indicator.ready .session-pull-text,.session-pull-indicator.loading .session-pull-text{color:var(--accent)}.session-sidebar-footer-mobile{flex-shrink:0;padding:10px 16px 12px;border-top:1px solid var(--border);background:var(--bg-primary)}.session-new-btn-mobile{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:12px 16px;background:var(--accent);border:none;border-radius:14px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.session-new-btn-mobile:active{opacity:.85;transform:scale(.98)}.session-swipe-row{position:relative;overflow:hidden;touch-action:pan-y}.session-swipe-actions{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:stretch;z-index:0}.session-swipe-btn{border:none;padding:0 18px;min-width:72px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent}.session-swipe-btn.rename{background:var(--accent, #6366f1)}.session-swipe-btn.delete{background:var(--danger, #ef4444)}.session-swipe-track{position:relative;z-index:1;background:var(--bg-primary);will-change:transform}.session-sidebar.mobile .session-sidebar-item{padding:12px 10px 12px 16px;min-height:64px;gap:6px;align-items:center}.session-sidebar.mobile .session-item-actions{flex-direction:column;gap:4px}.session-sidebar.mobile .session-item-title{font-size:15px}.session-sidebar.mobile .session-item-preview{font-size:13px;margin-top:4px}.session-sidebar.mobile .session-group-label{padding:12px 16px 8px;font-size:12px;letter-spacing:.04em}.session-bottom-sheet-overlay{position:fixed;inset:0;background:#00000073;z-index:110;display:flex;align-items:flex-end;animation:session-sheet-fade-in .2s ease}@keyframes session-sheet-fade-in{0%{opacity:0}to{opacity:1}}.session-bottom-sheet{width:100%;max-height:85vh;background:var(--bg-secondary, #1e1e2e);border-radius:16px 16px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);overflow-y:auto}.session-bottom-sheet.active{transform:translateY(0)}.session-bottom-sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--border, rgba(148, 163, 184, .35));margin:4px auto 12px}.session-bottom-sheet-title{font-size:16px;font-weight:600;text-align:center;padding:0 8px 4px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-bottom-sheet-sub{font-size:13px;color:var(--text-secondary);text-align:center;margin-bottom:12px;line-height:1.45}.session-bottom-sheet-actions{display:flex;flex-direction:column;gap:8px}.session-bottom-sheet-btn{width:100%;min-height:48px;border:none;border-radius:12px;font-size:16px;font-weight:500;background:var(--bg-card, rgba(128, 128, 128, .12));color:var(--text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent}.session-bottom-sheet-btn.danger{background:#ef444426;color:var(--danger, #ef4444)}.session-bottom-sheet-btn.confirm{background:var(--accent);color:#fff}.session-bottom-sheet-btn.cancel{color:var(--text-secondary)}.session-bottom-sheet-form .session-bottom-input{width:100%;height:48px;margin:8px 0 4px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:var(--bg-primary);color:var(--text-primary);font-size:16px;outline:none}.session-bottom-sheet-form .session-bottom-input:focus{border-color:var(--accent)}.session-bottom-error{font-size:12px;color:var(--danger);margin-bottom:8px}@media(max-width:768px){.session-sidebar:not(.mobile){width:88vw;max-width:none}.session-item-action-btn{width:40px;height:40px}.session-new-btn-inline{min-height:48px;font-size:15px}.session-search-input{font-size:16px;min-height:36px}}.settings-panel{position:fixed;bottom:0;left:50%;transform:translate(-50%) translateY(0);width:100%;max-width:var(--app-max-w);max-height:85vh;background:var(--bg-secondary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:101;overflow:hidden;display:flex;flex-direction:column;padding-bottom:var(--safe-bottom)}.settings-content{padding:8px 20px 20px;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}.settings-section{margin-bottom:20px}.settings-label{font-size:13px;color:var(--text-secondary);font-weight:500;margin-bottom:10px}.settings-toggle-group{display:flex;gap:8px}.settings-toggle{flex:1;height:38px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s}.settings-toggle.active{background:var(--accent);border-color:var(--accent);color:#fff}.settings-toggle:active{transform:scale(.97)}.settings-disconnect-btn{width:100%;height:42px;background:none;border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);font-size:14px;cursor:pointer;transition:all .2s}.settings-disconnect-btn:active{background:var(--danger);color:#fff}.settings-pwd-form{display:flex;flex-direction:column;gap:8px}.settings-pwd-input{width:100%;height:38px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;padding:0 12px;box-sizing:border-box;outline:none;transition:border-color .2s}.settings-pwd-input:focus{border-color:var(--accent)}.settings-pwd-msg{font-size:12px;min-height:16px;text-align:center}.settings-pwd-msg.error{color:var(--danger)}.settings-pwd-msg.success{color:var(--success, #4caf50)}.settings-notify-status{font-size:13px;line-height:1.5}.settings-notify-status.ok{color:var(--primary, #4caf50)}.settings-notify-status.warn{color:var(--danger, #e94560)}.settings-notify-status.muted{color:var(--text-secondary, #888)}.settings-ssh-timeout{display:flex;flex-direction:column;gap:8px}.settings-select{width:100%;height:38px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:14px;color:var(--text-primary);outline:none;transition:border-color .2s;cursor:pointer}.settings-select:focus{border-color:var(--accent)}.settings-ssh-timeout-msg{font-size:12px;min-height:16px;text-align:center}.settings-ssh-timeout-msg.error{color:var(--danger)}.settings-ssh-timeout-msg.success{color:var(--success, #4caf50)}.settings-slider-row{display:flex;align-items:center;gap:8px;padding:4px 0}.settings-slider-row input[type=range]{height:4px;border-radius:2px;background:var(--border, rgba(148,163,184,.2));cursor:pointer}.settings-slider-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent, #6366f1);cursor:pointer;border:2px solid var(--bg-solid, #0f0f1a);box-shadow:0 0 4px #6366f14d}.settings-about{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.settings-about-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.settings-about-logo{font-size:32px;line-height:1}.settings-about-name{font-size:15px;font-weight:700;color:var(--text-primary)}.settings-about-ver{font-size:12px;color:var(--text-secondary);margin-top:2px}.settings-about-links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.settings-about-links a{display:inline-block;padding:6px 12px;font-size:12px;color:var(--accent);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);text-decoration:none;transition:all .2s}.settings-about-links a:active{opacity:.7;transform:scale(.96)}.settings-about-footer{font-size:11px;color:var(--text-secondary);opacity:.6;text-align:center}.guide-overlay{position:fixed;inset:0;background:#0009;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .3s ease}.guide-card{width:100%;max-width:360px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 24px;text-align:center}.guide-card h2{font-size:20px;font-weight:700;margin-bottom:20px}.guide-tips{text-align:left;margin-bottom:24px}.guide-tip{font-size:14px;color:var(--text-secondary);padding:8px 0;border-bottom:1px solid var(--border);line-height:1.5}.guide-tip:last-child{border-bottom:none}.guide-btn{margin-top:0}.chat-loading-overlay{position:absolute;inset:0;background:var(--bg-primary);opacity:.92;z-index:120;display:flex;align-items:center;justify-content:center;animation:fade-in .15s ease;pointer-events:auto}.chat-loading-overlay-content{display:flex;flex-direction:column;align-items:center;gap:14px}.chat-loading-label{font-size:14px;color:var(--text-secondary);letter-spacing:.02em}.chat-loading-spinner,.srv-loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.srv-loading-spinner{margin:0 auto 12px}.disconnect-banner{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 16px;background:var(--warning, #f59e0b);color:#fff;font-size:13px;font-weight:500;z-index:30;animation:slide-down .25s ease}@keyframes slide-down{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.disconnect-text{flex:1;text-align:center}.disconnect-retry-btn{background:#ffffff40;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:6px;padding:4px 14px;font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0}.disconnect-retry-btn:active{background:#fff6}.msg-time{font-size:10px;color:var(--text3, #6a6a80);margin-top:4px;padding:0 4px}.typing-cursor{color:var(--accent, #e94560);animation:blink .8s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.context-menu{position:fixed;background:var(--bg-secondary, #16213e);border:1px solid var(--border, #333355);border-radius:8px;padding:4px 0;z-index:200;box-shadow:0 4px 20px #0006;min-width:100px}.context-item{display:block;width:100%;padding:10px 16px;border:none;background:none;color:var(--text, #e8e8f0);font-size:14px;text-align:left;cursor:pointer}.context-item:hover{background:var(--accent, #e94560);color:#fff}.context-menu-divider{height:1px;background:var(--border, #333355);margin:4px 8px}.chat-more-menu{padding:6px 0}.chat-more-menu .context-item{display:flex;align-items:center;gap:8px;padding:10px 16px;font-size:14px;color:var(--text, #e8e8f0)}.chat-more-menu .context-item svg{stroke:var(--text, #e8e8f0);flex-shrink:0}.chat-more-menu .context-item span{color:var(--text, #e8e8f0)}.scroll-to-bottom-btn{position:absolute;bottom:80px;right:20px;width:40px;height:40px;border-radius:50%;background:var(--accent, #e94560);color:#fff;border:none;font-size:18px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 2px 10px #e9456066;z-index:10}.scroll-to-bottom-btn.visible{opacity:1;pointer-events:auto}.msg-audio{width:100%;max-width:280px;height:40px;margin:6px 0;border-radius:var(--radius-sm)}.msg-video-wrap{margin:6px 0;border-radius:var(--radius-sm);overflow:hidden}.msg-video{width:100%;max-width:320px;max-height:240px;border-radius:var(--radius-sm);background:#000;display:block}.msg-file-card{display:flex;align-items:center;gap:10px;padding:10px 14px;margin:6px 0;background:var(--bg-code, rgba(0,0,0,.15));border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s;max-width:280px}.msg-file-card:active{background:#e945601a}.msg-file-icon{font-size:24px;flex-shrink:0}.msg-file-info{display:flex;flex-direction:column;min-width:0}.msg-file-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-file-size{font-size:11px;color:var(--text-muted);margin-top:2px}.msg-file-hint{display:block;font-size:11px;color:var(--accent, #4a90d9);margin-top:2px}.file-card-pdf{border-left:3px solid #e74c3c}.lightbox-video{max-width:90vw;max-height:85vh;border-radius:var(--radius-sm);background:#000}.preview-file-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-code, rgba(0,0,0,.15));border:1px solid var(--border);gap:2px}.preview-file-icon{font-size:20px}.preview-file-name{font-size:9px;color:var(--text-secondary);text-align:center;line-height:1.1;max-width:52px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-bubble{display:flex;align-items:center;gap:6px;width:72px;min-width:72px;max-width:200px;padding:8px 12px;border-radius:16px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:opacity .15s}.voice-bubble:active{opacity:.7}.voice-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:9px;flex-shrink:0;border-radius:50%;transition:all .2s}.voice-bar{flex:1;display:flex;align-items:center;gap:2px;height:16px}.voice-bar i{display:block;width:2.5px;height:6px;border-radius:2px;background:var(--text-muted, rgba(255,255,255,.35));transition:height .15s,background .15s}.voice-bar i:nth-child(1){height:6px}.voice-bar i:nth-child(2){height:10px}.voice-bar i:nth-child(3){height:14px}.voice-bar i:nth-child(4){height:8px}.voice-bar i:nth-child(5){height:12px}.voice-bar i:nth-child(6){height:6px}.voice-bar i:nth-child(7){height:10px}.voice-dur{font-size:11px;color:var(--text-secondary);flex-shrink:0;min-width:22px;text-align:right}.voice-bubble.playing .voice-icon{opacity:.5}.voice-bubble.playing .voice-bar i{background:var(--accent, #6c8aff);animation:voice-bar-wave .8s ease-in-out infinite}.voice-bubble.playing .voice-bar i:nth-child(1){animation-delay:0s}.voice-bubble.playing .voice-bar i:nth-child(2){animation-delay:.1s}.voice-bubble.playing .voice-bar i:nth-child(3){animation-delay:.15s}.voice-bubble.playing .voice-bar i:nth-child(4){animation-delay:.05s}.voice-bubble.playing .voice-bar i:nth-child(5){animation-delay:.2s}.voice-bubble.playing .voice-bar i:nth-child(6){animation-delay:.12s}.voice-bubble.playing .voice-bar i:nth-child(7){animation-delay:.08s}@keyframes voice-bar-wave{0%,to{height:4px;opacity:.4}50%{height:16px;opacity:.7}}#mic-btn.recording{color:var(--danger);animation:mic-pulse 1s infinite}@keyframes mic-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.voice-bubble-menu{position:fixed;z-index:9999;background:var(--bg-card, rgba(42, 42, 62, .95));border:1px solid var(--border, rgba(255,255,255,.1));border-radius:12px;padding:6px 0;min-width:160px;box-shadow:0 8px 32px #0000004d;backdrop-filter:blur(20px);animation:menuFadeIn .15s ease-out}.voice-bubble-menu-title{padding:8px 14px 6px;font-size:11px;color:var(--text-muted);border-bottom:1px solid var(--border, rgba(255,255,255,.06));margin-bottom:4px}.voice-bubble-menu-item{padding:10px 14px;font-size:13px;color:var(--text-primary);cursor:pointer;transition:background .15s}.voice-bubble-menu-item:active{background:#ffffff14}@keyframes menuFadeIn{0%{opacity:0;transform:scale(.95) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}:root,[data-theme=dark]{--bg-primary: linear-gradient(135deg, #0f0f1a 0%, #1a1a2e 50%, #16162a 100%);--bg-solid: #0f0f1a;--bg-secondary: rgba(26, 26, 46, .85);--bg-card: rgba(42, 42, 62, .85);--bg-card-hover: rgba(52, 52, 82, .7);--bg-input: rgba(35, 35, 64, .85);--bg-code: rgba(13, 17, 23, .8);--bubble-user: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--bubble-ai: rgba(42, 42, 62, .7);--accent: #6366f1;--accent-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--accent-hover: #818cf8;--accent-glow: rgba(99, 102, 241, .4);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--code-line-number: rgba(255,255,255,.65);--code-td-color: #d1d5db;--border: rgba(148, 163, 184, .15);--border-light: rgba(148, 163, 184, .08);--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--info: #3b82f6;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .25);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .3);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--glass-bg: rgba(26, 26, 46, .7);--glass-bg-solid: rgba(30, 30, 52, .95);--glass-border: rgba(148, 163, 184, .12);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: min(env(safe-area-inset-top, 0px), 60px);--header-h: 56px;--input-h: 56px;--tab-bar-h: calc(56px + env(safe-area-inset-bottom, 0px)) ;--app-max-w: 428px;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--msg-font-size: 14px;--msg-gap: 16px;--msg-padding: 12px 14px}[data-theme=light]{--bg-primary: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);--bg-solid: #f8fafc;--bg-secondary: rgba(255, 255, 255, .9);--bg-card: rgba(248, 250, 252, .8);--bg-card-hover: rgba(241, 245, 249, .95);--bg-input: rgba(248, 250, 252, .8);--bg-code: rgba(246, 248, 250, .9);--bubble-user: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);--bubble-ai: rgba(241, 245, 249, .9);--accent: #6366f1;--accent-gradient: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);--accent-hover: #4f46e5;--accent-glow: rgba(59, 130, 246, .3);--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--code-line-number: rgba(0,0,0,.6);--code-td-color: #374151;--border: rgba(148, 163, 184, .2);--border-light: rgba(148, 163, 184, .1);--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--info: #3b82f6;--glass-bg: rgba(255, 255, 255, .8);--glass-bg-solid: rgba(255, 255, 255, .96);--glass-border: rgba(148, 163, 184, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(59, 130, 246, .25)}[data-theme=light] .msg.user .msg-bubble{color:#fff}[data-theme=light] .msg-bubble strong{color:#1e293b}[data-theme=light] .code-block .code-header{background:#00000008;border-bottom-color:#0000000f}[data-theme=light] .code-block .code-lang{color:#1e293b;background:#0000000f}[data-theme=light] .code-block .msg-bubble code,[data-theme=light] .code-block .code-ln,[data-theme=light] .code-block .code-header .code-copy-btn{background:#0000000d}[data-theme=light] .hl-keyword{color:#d73a49}[data-theme=light] .hl-string{color:#032f62}[data-theme=light] .hl-comment{color:#6a737d}[data-theme=light] .hl-number{color:#005cc5}[data-theme=light] .hl-func{color:#6f42c1}[data-theme=light] .hl-type{color:#e36209}[data-theme=light] .hl-tag{color:#22863a}[data-theme=light] .hl-attr-name{color:#6f42c1}[data-theme=light] .hl-attr-value{color:#032f62}[data-theme=light] .hl-property{color:#005cc5}[data-theme=light] .hl-boolean{color:#d73a49}[data-theme=light] .token.comment,[data-theme=light] .token.prolog,[data-theme=light] .token.doctype,[data-theme=light] .token.cdata{color:#6e7781;font-style:italic}[data-theme=light] .token.punctuation{color:#24292f}[data-theme=light] .token.keyword{color:#cf222e}[data-theme=light] .token.string,[data-theme=light] .token.char{color:#0a3069}[data-theme=light] .token.number{color:#0550ae}[data-theme=light] .token.function{color:#8250df}[data-theme=light] .token.class-name{color:#953800}[data-theme=light] .token.operator{color:#cf222e}[data-theme=light] .token.variable{color:#e16f24}[data-theme=light] .token.property,[data-theme=light] .token.tag{color:#116329}[data-theme=light] .token.attr-name{color:#0550ae}[data-theme=light] .token.boolean{color:#0550ae;font-weight:600}[data-theme=light] .token.regex{color:#0a3069}[data-theme=light] .token.selector{color:#116329}[data-theme=light] .token.builtin{color:#953800}[data-theme=light] .token.constant,[data-theme=light] .token.symbol{color:#0550ae}[data-theme=light] .token.deleted{color:#cf222e}[data-theme=light] .token.inserted{color:#116329}[data-theme=light] .token.entity{color:#e16f24}[data-theme=light] .token.url{color:#0a3069}[data-theme=light] .token.atrule{color:#cf222e}[data-theme=light] .token.attr-value{color:#0a3069}[data-theme=light] .token.interpolation{color:#cf222e}[data-theme=light] .token.important{color:#cf222e;font-weight:700}[data-theme=light] .token.prolog,[data-theme=light] .token.cdata{color:#6e7781}.hl-keyword{color:#ff7b72}.hl-string{color:#a5d6ff}.hl-comment{color:#8b949e;font-style:italic}.hl-number{color:#79c0ff}.hl-func{color:#d2a8ff}.hl-type{color:#ffa657}.hl-tag{color:#7ee787}.hl-attr-name{color:#d2a8ff}.hl-attr-value{color:#a5d6ff}.hl-property{color:#79c0ff}.hl-boolean{color:#ff7b72}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#8b949e;font-style:italic}.token.punctuation{color:#c9d1d9}.token.keyword{color:#ff7b72}.token.string,.token.char{color:#a5d6ff}.token.number{color:#79c0ff}.token.function{color:#d2a8ff}.token.class-name{color:#e3b341}.token.operator{color:#ff7b72}.token.variable{color:#ffa657}.token.property,.token.tag{color:#7ee787}.token.attr-name{color:#79c0ff}.token.boolean{color:#79c0ff;font-weight:600}.token.regex{color:#a5d6ff}.token.selector{color:#7ee787}.token.builtin{color:#e3b341}.token.constant,.token.symbol{color:#79c0ff}.token.deleted{color:#ff7b72}.token.inserted{color:#7ee787}.token.entity{color:#ffa657}.token.url{color:#a5d6ff}.token.atrule{color:#ff7b72}.token.attr-value{color:#a5d6ff}.token.interpolation{color:#ff7b72}.token.important{color:#ff7b72;font-weight:700}.language-css .token.string,.style .token.string{color:#ffa657}.logo-bg{fill:#0f0f1a}[data-theme=light] .logo-bg{fill:#f8fafc}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;font-size:14px;line-height:1.6;color:var(--text-primary);background:var(--bg-primary);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;touch-action:manipulation}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px;transition:background var(--transition-normal)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}#app{height:100%;width:100%;max-width:var(--app-max-w);margin:0 auto;position:relative;overflow:hidden}.page{position:absolute;inset:0 0 56px;display:flex;flex-direction:column;transition:transform var(--transition-slow),opacity var(--transition-slow);overflow:hidden}.page.hidden,.tab-bar.hidden{display:none!important}.setup-page{background:var(--bg-primary);background-attachment:fixed;justify-content:center;align-items:center;padding:24px;min-height:100vh}.setup-card{width:100%;max-width:380px;background:var(--glass-bg);border-radius:var(--radius-xl);padding:40px 28px;border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.setup-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,var(--accent-glow) 0%,transparent 50%);opacity:.15;animation:gradient-shift 8s ease-in-out infinite;pointer-events:none}@keyframes gradient-shift{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(10%,10%) rotate(180deg)}}.setup-logo{text-align:center;margin-bottom:32px;position:relative;z-index:1}.setup-logo svg{width:72px;height:72px;margin-bottom:16px;filter:drop-shadow(0 4px 12px var(--accent-glow));animation:logo-float 3s ease-in-out infinite}@keyframes logo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.setup-logo h1{font-size:26px;font-weight:700;letter-spacing:-.5px;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:4px}.setup-logo p{color:var(--text-secondary);font-size:14px;font-weight:500}.form-group{margin-bottom:20px;position:relative;z-index:1}.form-group label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:8px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.form-group input{width:100%;height:50px;background:var(--bg-input);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:0 16px;color:var(--text-primary);font-size:16px;outline:none;transition:all var(--transition-normal)}.form-group input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow);background:var(--bg-card-hover)}.form-group input::placeholder{color:var(--text-muted)}.btn-primary{width:100%;height:52px;background:var(--accent-gradient);color:#fff;border:none;border-radius:var(--radius-md);font-size:17px;font-weight:600;cursor:pointer;transition:all var(--transition-normal);margin-top:12px;box-shadow:var(--shadow-md),var(--shadow-glow);position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn-primary:hover:before{left:100%}.btn-primary:active{transform:scale(.97);box-shadow:var(--shadow-sm)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.setup-error{color:var(--danger);font-size:13px;text-align:center;margin-top:14px;min-height:20px;font-weight:500}.setup-tips{margin-top:20px;position:relative;z-index:1}.setup-tips-toggle{display:flex;align-items:center;justify-content:center;gap:8px;background:none;border:none;color:var(--text-muted);font-size:13px;cursor:pointer;padding:8px 0;width:100%;transition:color var(--transition-normal)}.setup-tips-toggle:hover{color:var(--text-secondary)}.setup-tips-arrow{transition:transform var(--transition-slow)}.setup-tips.open .setup-tips-arrow{transform:rotate(180deg)}.setup-tips-content{max-height:0;overflow:hidden;transition:max-height var(--transition-slow),opacity var(--transition-slow);opacity:0}.setup-tips.open .setup-tips-content{max-height:400px;opacity:1}.setup-tips-item{background:var(--bg-input);border-radius:var(--radius-md);padding:14px 16px;margin-top:10px;border:1px solid var(--border-light)}.setup-tips-label{display:block;font-size:13px;font-weight:700;color:var(--accent);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.setup-tips-desc{display:block;font-size:13px;color:var(--text-secondary);line-height:1.6}.setup-tips-link{display:block;text-align:center;margin-top:12px;font-size:13px;color:var(--text-muted);text-decoration:none;transition:color var(--transition-normal)}.setup-tips-link:hover{color:var(--accent)}.setup-footer{margin-top:24px;text-align:center;position:relative;z-index:1}.setup-footer a{color:var(--text-muted);font-size:12px;text-decoration:none;transition:color var(--transition-normal)}.setup-footer a:hover{color:var(--accent)}.chat-page{background:var(--bg-primary);background-attachment:fixed;position:relative}.chat-header{height:calc(var(--header-h) + var(--safe-top));padding:var(--safe-top) 16px 0;background:var(--glass-bg);display:flex;align-items:center;border-bottom:1px solid var(--glass-border);gap:12px;z-index:10}.srv-openclaw-badge{display:inline-flex;align-items:center;margin-left:4px;font-size:12px;vertical-align:middle;opacity:.9}.chat-header{display:flex;align-items:center;gap:8px}.chat-menu-btn{flex-shrink:0}.gateway-settings-block .settings-gateway-select,.gateway-settings-block select{width:100%!important;min-width:0;box-sizing:border-box}.chat-header-center{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 4px;cursor:pointer}.chat-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.chat-gateway-label-hidden{display:none!important}.settings-gateway-select{max-width:100%;font-size:14px!important;line-height:1.3;padding:8px 10px!important}.ext-settings-select{width:100%;margin-top:8px;background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);border-radius:8px;padding:8px 10px;font-size:14px}.ext-list-item-stack{flex-direction:column!important;align-items:stretch!important;gap:8px}.ext-list-item-stack select{width:100%}.ext-list-item:has(.ext-settings-select){flex-direction:column;align-items:stretch;gap:8px}.ext-list-item:has(.ext-settings-select)>div[style*="flex:1"],.ext-list-item:has(.ext-settings-select)>div:first-child{flex:none;width:100%}.chat-header-center .title{flex:0 1 auto;min-width:0;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-title-edit-btn{flex-shrink:0;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-muted);font-size:14px;cursor:pointer;line-height:1}.session-title-edit-btn:active{background:var(--bg-card);color:var(--accent)}.chat-gateway-badge{font-size:10px;line-height:1.2;padding:2px 6px;border-radius:6px;background:var(--bg-card, rgba(30, 41, 59, .8));border:1px solid var(--border, #334155);color:var(--text-secondary, #94a3b8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.chat-header .title.session-title-placeholder{color:var(--text-secondary, #94a3b8);font-weight:600}.chat-header-center.session-title-pending .title{animation:title-pulse 2s ease-in-out infinite}@keyframes title-pulse{0%,to{opacity:1}50%{opacity:.55}}.settings-hint{font-size:12px;line-height:1.45;color:var(--text-secondary, #94a3b8);margin:4px 0 0}.settings-sublabel{font-size:13px;font-weight:600;color:var(--text-primary, #e2e8f0)}.settings-subsection{margin-top:10px}.settings-check-row input{accent-color:var(--accent, #667eea)}.chat-header .status-dot{width:10px;height:10px;border-radius:50%;background:var(--text-muted);transition:all var(--transition-normal)}.chat-header .status-dot.connected{background:var(--success);box-shadow:0 0 10px var(--success)}.chat-header .status-dot.connecting{background:var(--warning);animation:pulse-dot 1s infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.9)}}.chat-header .title{flex:1;font-size:17px;font-weight:700;letter-spacing:-.3px}.chat-header .settings-btn{width:36px;height:36px;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all var(--transition-normal)}.chat-header .settings-btn:active{background:var(--bg-card-hover);color:var(--accent);transform:scale(.95)}.chat-messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px 16px 100px;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;position:relative;width:100%}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px;opacity:.5}.msg{display:flex;flex-direction:row;margin-bottom:var(--msg-gap, 16px);animation:msg-in .2s ease-out;max-width:100%;align-items:flex-start;gap:10px}.msg.ai+.msg.ai{margin-top:0;margin-bottom:2px}.msg.ai+.msg:not(.ai),.msg.ai:last-child{margin-bottom:var(--msg-gap, 16px)}.msg.user+.msg.ai,.msg.ai+.msg.user{margin-top:var(--msg-gap, 16px)}@keyframes msg-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.msg.user{justify-content:flex-end;flex-direction:row-reverse}.msg.user .msg-avatar{display:none}.msg.ai{justify-content:flex-start;flex-wrap:wrap}.msg.ai .msg-avatar{display:flex}.msg.ai .msg-blocks{flex:1 1 calc(100% - 42px);min-width:0}.msg.ai .msg-time{flex:0 0 100%;text-align:left}.msg.system-notify-item{justify-content:center;margin:8px 0;flex-direction:column;align-items:center;gap:0}.sni-pill{display:inline-flex;align-items:center;gap:6px;max-width:90%;padding:8px 16px;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border);font-size:12px;color:var(--text-secondary);flex-wrap:wrap}.sni-title{font-weight:600;color:var(--text-primary)}.sni-body{color:var(--text-secondary)}.sni-time{font-size:11px;opacity:.6;margin-left:6px;white-space:nowrap}.msg-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px #6366f133}.msg.ai+.msg.ai .msg-avatar{visibility:hidden}.msg-avatar svg{width:18px;height:18px;color:#fff}.msg-content{display:flex;flex-direction:column;max-width:100%;gap:2px;flex:1;min-width:0}.msg.user .msg-content{align-items:flex-end}.msg.ai .msg-content{align-items:flex-start}.msg-bubble{font-size:var(--msg-font-size, 14px);padding:var(--msg-padding, 12px 14px);line-height:1.7;word-break:break-word;overflow-wrap:anywhere;overflow-x:auto;max-width:100%;position:relative;transition:all var(--transition-fast)}.msg.user .msg-bubble{background:var(--accent);color:#fff;border-radius:12px 12px 4px;max-width:85%;box-shadow:0 2px 8px #6366f126;font-size:var(--msg-font-size, 14px);line-height:1.6;letter-spacing:.2px;overflow-wrap:anywhere;word-break:break-word}.msg.user .msg-bubble *{color:inherit}.msg.ai .msg-bubble{background:transparent;border:none;max-width:100%;padding:2px 0;color:var(--text-primary);font-size:var(--msg-font-size, 14px);line-height:1.65;letter-spacing:.2px}.msg.ai .msg-bubble p{margin:12px 0}.msg.ai .msg-bubble p:last-child{margin-bottom:0}.msg.ai .msg-bubble h1,.msg.ai .msg-bubble h2,.msg.ai .msg-bubble h3{margin:12px 0 8px;line-height:1.4}.msg.ai .msg-bubble h1:first-child,.msg.ai .msg-bubble h2:first-child,.msg.ai .msg-bubble h3:first-child{margin-top:0}.msg.ai .msg-bubble ul,.msg.ai .msg-bubble ol{margin:2px 0 4px;padding-left:18px}.msg.ai .msg-bubble blockquote{margin:6px 0;padding:6px 10px;border-left:3px solid var(--accent);background:var(--bg-card);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.bubble-toolbar{position:absolute;top:-6px;right:0;display:flex;gap:2px;padding:3px;background:var(--bg-card, rgba(30,30,50,.95));border:1px solid var(--border, rgba(255,255,255,.08));border-radius:8px;box-shadow:0 4px 16px #00000040;z-index:50;animation:toolbar-in .15s ease-out}.bubble-tool-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.bubble-tool-btn:hover{background:var(--bg-card-hover, rgba(255,255,255,.08));color:var(--accent)}.bubble-tool-btn:active{transform:scale(.9)}@keyframes toolbar-in{0%{opacity:0;transform:translateY(4px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.msg-bubble img{max-width:100%;border-radius:var(--radius-md);margin:8px 0;cursor:pointer;box-shadow:var(--shadow-sm)}.msg-time{font-size:11px;color:var(--text-muted);margin-top:2px;opacity:.5;padding:0 2px;white-space:normal}.msg.user .msg-time{text-align:right}.msg.ai .msg-time{text-align:left}.msg.ai+.msg.ai .msg-time{display:none}.followup-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;margin-bottom:4px;padding-left:42px;animation:msg-in .3s ease-out}.followup-chip{padding:6px 12px;font-size:12px;line-height:1.3;background:var(--bg-card, rgba(42,42,62,.85));border:1px solid var(--border, rgba(148,163,184,.15));border-radius:16px;color:var(--text-secondary, #94a3b8);cursor:pointer;transition:all .15s;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.followup-chip:hover{border-color:var(--accent, #6366f1);color:var(--accent, #6366f1);background:#6366f114}.followup-chip:active{transform:scale(.97)}.msg-feedback{display:inline-flex;align-items:center;gap:2px;margin-left:8px;opacity:0;transition:opacity .15s;vertical-align:middle}.msg:hover .msg-feedback{opacity:1}.msg-feedback-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:none;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;padding:0;transition:all .15s;line-height:1}.msg-feedback-btn:hover{background:var(--bg-card-hover, rgba(255,255,255,.06));color:var(--accent)}.msg-feedback-btn.active{color:var(--accent);background:#6366f11f}.msg-feedback-btn.active-down{color:var(--danger, #ef4444);background:#ef44441a}.msg-feedback-btn:active{transform:scale(.9)}.msg-copy-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;background:#00000026;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;opacity:0;transition:all var(--transition-normal);display:flex;align-items:center;justify-content:center}.msg-bubble:hover .msg-copy-btn,.msg-bubble:active .msg-copy-btn{opacity:1}.msg-copy-btn:active{background:#00000040;color:var(--text-primary);transform:scale(.95)}.msg-copy-btn.copied{color:var(--success);background:#10b98133}.network-banner{position:relative;top:0;max-width:var(--app-max-w);margin:0 auto;background:var(--danger);color:#fff;text-align:center;padding:10px;font-size:13px;font-weight:600;transform:translateY(-100%);transition:transform var(--transition-slow);box-shadow:var(--shadow-md)}.network-banner.visible{transform:translateY(0)}.scroll-to-bottom-btn{position:absolute;bottom:calc(88px + env(safe-area-inset-bottom,0px));right:16px;width:40px;height:40px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-md);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-normal),visibility var(--transition-normal),transform var(--transition-normal);z-index:20;padding:0}.scroll-to-bottom-btn.visible{opacity:1;visibility:visible;pointer-events:auto}.scroll-to-bottom-btn:hover{background:var(--bg-card-hover)}.scroll-to-bottom-btn:active{transform:scale(.95)}.scroll-to-bottom-btn svg{width:20px;height:20px;stroke:var(--text-secondary);flex-shrink:0}.unread-badge{position:absolute;top:-6px;right:-6px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:9px;padding:0 5px;pointer-events:none}.tool-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 16px;margin:4px 0;font-size:13px}.tool-card .tool-name{color:var(--accent);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.8px}.tool-card .tool-status{color:var(--text-secondary);font-size:12px;margin-top:4px}.tool-card .tool-status.running{color:var(--warning)}.tool-card .tool-status.done{color:var(--success)}.tool-call-card{margin:1px 0;overflow:hidden;border-radius:4px;transition:background .15s ease}.tool-call-card.tool-call-line{background:transparent;border:none}.tool-call-card.tool-call-line:hover{background:#6366f10a}.tool-call-card.is-active{background:#6366f10f}.tool-call-header{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 2px 2px;min-height:22px;cursor:pointer;user-select:none;gap:8px}.tool-call-main{display:flex;align-items:center;flex:1;min-width:0}.tool-call-line-text{font-family:SF Mono,Consolas,Monaco,Menlo,monospace;font-size:12px;font-weight:400;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.45}.tool-call-card.is-active .tool-call-line-text{color:var(--text-secondary)}.tool-call-icon,.tool-call-name{font-family:SF Mono,Consolas,Monaco,monospace;font-size:12px;color:var(--text-muted)}.tool-call-right{display:flex;align-items:center;gap:4px;flex-shrink:0}.tool-call-status{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%}.tool-call-status.running{color:var(--warning)}.tool-call-status.done{color:var(--success)}.tool-call-status.error{color:var(--danger)}.tool-expand-icon{color:var(--text-muted);transition:transform .2s ease;display:flex;align-items:center}.tool-call-card.expanded .tool-expand-icon{transform:rotate(90deg)}.tool-call-body{display:none;border-top:1px solid var(--border-light);background:#0003}.tool-call-card.expanded .tool-call-body{display:block}.tool-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);padding:12px 16px 8px}.tool-params-detail{padding:0 16px 12px}.tool-params-detail pre{background:var(--bg-code);border-radius:var(--radius-sm);padding:12px;margin:0;font-family:SF Mono,Consolas,Monaco,monospace;font-size:12px;color:var(--text-secondary);overflow-x:auto;white-space:pre-wrap;word-break:break-all}.tool-output{padding:0 16px 12px}.tool-output-content{background:var(--bg-code);border-radius:var(--radius-sm);padding:12px;font-family:SF Mono,Consolas,Monaco,monospace;font-size:12px;color:var(--text-secondary);max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.tool-output-content:empty:before{content:"（无输出）";color:var(--text-muted);font-style:italic}.tool-output-content em{color:var(--text-muted);font-style:italic}.tool-spinner{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:tool-spin .8s linear infinite}@keyframes tool-spin{to{transform:rotate(360deg)}}.agent-item-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;margin:2px 0;overflow:hidden}.agent-item-card.is-active{border-color:#14b8a673;box-shadow:0 0 0 1px #14b8a61f}.agent-item-header{display:flex;align-items:center;justify-content:space-between;padding:5px 8px;min-height:28px;cursor:pointer}.agent-item-main{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.agent-item-icon{color:#14b8a6;display:flex}.agent-item-name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-item-right{display:flex;align-items:center;gap:4px}.agent-item-status{width:16px;height:16px;display:flex;align-items:center;justify-content:center}.agent-item-status.running{color:var(--warning)}.agent-item-status.done{color:var(--success)}.agent-item-status.error{color:var(--danger)}.agent-item-expand-icon{color:var(--text-muted);transition:transform .2s ease;display:flex}.agent-item-card.expanded .agent-item-expand-icon{transform:rotate(90deg)}.agent-item-body{display:none;border-top:1px solid var(--border-light)}.agent-item-card.expanded .agent-item-body{display:block}.agent-item-detail{padding:0 10px 10px}.agent-item-detail pre{background:var(--bg-code);border-radius:var(--radius-sm);padding:10px;margin:0;font-size:12px;max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.exec-approval-overlay{position:fixed;inset:0;z-index:10050;background:#0000008c;display:flex;align-items:flex-end;justify-content:center;padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.exec-approval-overlay.hidden{display:none}.exec-approval-dialog{width:min(480px,100%);background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:14px;box-shadow:0 12px 40px #00000059}.exec-approval-header{display:flex;gap:10px;margin-bottom:10px}.exec-approval-icon{color:var(--warning)}.exec-approval-title{font-size:15px;font-weight:700}.exec-approval-subtitle{font-size:12px;color:var(--text-secondary);margin-top:2px}.exec-approval-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.exec-approval-tag{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--bg-secondary);color:var(--text-secondary)}.exec-approval-command{background:var(--bg-code);border-radius:8px;padding:10px;margin:0 0 12px;font-size:12px;max-height:160px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.exec-approval-actions{display:flex;gap:8px}.exec-approval-btn{flex:1;border:none;border-radius:10px;padding:10px 8px;font-size:13px;font-weight:600;cursor:pointer}.exec-approval-btn.deny{background:var(--bg-secondary);color:var(--text-secondary)}.exec-approval-btn.allow-once{background:#6366f126;color:var(--accent)}.exec-approval-btn.allow{background:var(--accent);color:#fff}.thinking-content{width:100%;display:flex;flex-direction:column;gap:8px}.thinking-header{display:flex;justify-content:space-between;align-items:center;min-height:20px}.thinking-label{font-size:13px;color:var(--text-muted);display:flex;align-items:center;gap:6px;min-width:0}#thinking-status-text{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px;display:inline-block;vertical-align:bottom}.thinking-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.thinking-meta-item{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--text-muted);opacity:.7;font-variant-numeric:tabular-nums}.thinking-meta-item svg{opacity:.6}.thinking-timer{font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:500;min-width:40px;text-align:right}.thinking-info-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);margin-top:2px}.thinking-phase-icon{font-size:14px;flex-shrink:0}.thinking-action-label{color:var(--primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.thinking-step-label{color:var(--text-muted);font-variant-numeric:tabular-nums;opacity:.8}.thinking-step-label:before{content:"·";margin-right:6px;opacity:.4}.thinking-chips-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.thinking-chips-row .typing-chip{padding:1px 6px;border-radius:3px;font-size:10px;line-height:1.6;white-space:nowrap}.thinking-timer:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:4px;animation:thinking-dot-pulse 1.5s ease-in-out infinite}@keyframes thinking-dot-pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.thinking-progress-track{width:100%;height:2px;background:var(--glass-border);border-radius:1px;overflow:hidden}.thinking-progress-bar{height:100%;width:0%;background:var(--accent);border-radius:1px;opacity:.6;transition:width .3s ease}.thinking-progress-animating{animation:thinking-progress-pulse 2s ease-in-out infinite}@keyframes thinking-progress-pulse{0%{width:15%;opacity:.3}50%{width:65%;opacity:.6}to{width:85%;opacity:.3}}.model-info-footer{display:inline;font-size:11px;color:var(--text-muted);opacity:.55;margin-left:4px;font-variant-numeric:tabular-nums;user-select:none;transition:opacity .2s;white-space:normal}.msg-time:hover .model-info-footer{opacity:.85}.msg.ai .msg-blocks{display:flex;flex-direction:column;gap:8px}.tools-container{display:flex;flex-direction:column;gap:8px;margin-top:8px}.typing-indicator{display:none;padding:8px 0;width:fit-content;max-width:90%;margin-bottom:16px;margin-left:44px;flex-direction:column;gap:4px}.typing-indicator.visible{display:flex}.typing-indicator .typing-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.typing-indicator .typing-phase-icon{font-size:14px;line-height:1;opacity:.8}.typing-indicator .typing-text{font-size:13px;color:var(--text-muted);font-weight:500;display:inline-flex;align-items:center}.typing-indicator .typing-action{display:none;font-size:12px;color:var(--accent, #667eea);font-weight:600;padding:0 8px;background:var(--accent-dim, rgba(102,126,234,.08));border-radius:4px;line-height:22px;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis;animation:action-appear .2s ease-out}@keyframes action-appear{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.typing-indicator .typing-step{display:none;font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;opacity:.7;white-space:nowrap}.typing-indicator .typing-step:before{content:"·";margin-right:6px;opacity:.4}.typing-indicator .typing-timer{display:none;font-size:11px;color:var(--accent, #667eea);font-variant-numeric:tabular-nums;opacity:.6;white-space:nowrap}.typing-indicator .typing-timer:before{content:"·";margin-right:6px;opacity:.4}.typing-indicator .typing-subrow{display:none;flex-wrap:wrap;gap:4px;margin-top:2px;padding-left:20px}.typing-indicator .typing-chip{display:inline-block;font-size:11px;padding:1px 6px;border-radius:3px;line-height:18px;white-space:nowrap}.typing-chip-done{color:var(--success, #4ade80);background:#4ade8014}.typing-chip-running{color:var(--accent, #667eea);background:#667eea14}.typing-chip-error{color:var(--danger, #ef4444);background:#ef444414}.typing-indicator .typing-text span{display:inline-block;opacity:.65}.typing-indicator .typing-text .dot{animation:thinking-dot-fade 1.4s ease-in-out infinite;margin-left:1px}.typing-indicator .typing-text .dot:nth-child(3){animation-delay:0s}.typing-indicator .typing-text .dot:nth-child(4){animation-delay:.2s}.typing-indicator .typing-text .dot:nth-child(5){animation-delay:.4s}@keyframes thinking-dot-fade{0%,60%,to{opacity:.25}30%{opacity:1}}.msg-bubble .typing-cursor{display:inline-block;width:3px;height:18px;background:var(--accent);border-radius:2px;animation:typing-pulse 1s infinite;vertical-align:text-bottom;margin-left:2px}@keyframes typing-pulse{0%,to{opacity:1}50%{opacity:.3}}.chat-bottom-dock{flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-solid)}.capacitor-native .chat-bottom-dock{position:fixed;left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom,0px));z-index:150;max-width:var(--app-max-w);margin-left:auto;margin-right:auto;transition:bottom .15s ease-out}html.keyboard-open #chat-page{overflow:hidden}html.keyboard-open.capacitor-native #chat-page{transition:bottom .15s ease-out}html.keyboard-open.capacitor-native #ext-tab-bar{visibility:hidden;pointer-events:none}html.keyboard-open .chat-bottom-dock{box-shadow:0 -4px 20px #00000026;z-index:500}html.keyboard-open .chat-messages{position:relative;z-index:1}html.keyboard-open .chat-bottom-dock,html.keyboard-open .chat-bottom-dock *{opacity:1!important;visibility:visible!important}#ext-tab-bar{will-change:transform;transition:transform .15s ease-out}html.keyboard-open .chat-input-area{padding-bottom:8px}.chat-input-area{background:var(--glass-bg);border-top:1px solid var(--glass-border);padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:6px;flex-shrink:0;transition:box-shadow .2s,border-color .2s}.capacitor-native .chat-input-area{padding-bottom:calc(12px + env(safe-area-inset-bottom,12px))}.chat-input-rows{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.chat-tools-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px 4px;background:var(--bg-secondary, #16213e);border-bottom:1px solid var(--border, #333355)}.chat-input-area.drag-over{border-color:var(--accent, #6366f1);box-shadow:0 0 0 2px #6366f133,inset 0 0 0 1px #6366f14d}.chat-input-row{display:flex;align-items:flex-end;gap:8px;overflow:hidden}.input-left-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;flex-shrink:0;align-self:flex-end}.input-expand-btn{width:28px;height:28px;min-width:28px;min-height:28px;padding:0;background:none;border:none!important;color:var(--text-muted);cursor:pointer;display:none;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.input-expand-btn:active{color:var(--accent);background:#6366f11a}.input-expand-btn svg{width:18px;height:18px}.input-fullscreen-overlay{position:fixed;top:var(--safe-top, env(safe-area-inset-top, 0px));left:0;right:0;bottom:0;z-index:20000;display:none;flex-direction:column;background:var(--bg-primary, #0f0f1a);padding-top:0;padding-right:env(safe-area-inset-right,0px);padding-bottom:var(--safe-bottom, env(safe-area-inset-bottom, 0px));padding-left:env(safe-area-inset-left,0px);box-sizing:border-box}html.input-fullscreen-open,html.input-fullscreen-open body{overflow:hidden}.input-fullscreen-overlay.active{display:flex}.input-fullscreen-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 8px 8px 4px;min-height:48px;flex-shrink:0;border-bottom:1px solid var(--border, rgba(255, 255, 255, .08));box-sizing:border-box}.input-fullscreen-title{flex:1;text-align:center;font-size:16px;font-weight:500;color:var(--text-primary);pointer-events:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.input-done-btn{min-width:56px;min-height:44px;height:44px;padding:0 12px;border:none;background:none;color:#10b981;font-size:16px;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:opacity var(--transition-fast),background var(--transition-fast);flex-shrink:0;touch-action:manipulation}.input-done-btn:active{opacity:.75;background:#10b9811f}.input-collapse-btn{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;background:none;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:color var(--transition-fast),background var(--transition-fast);flex-shrink:0;touch-action:manipulation}.input-collapse-btn:active{color:var(--accent);background:#6366f11a}.input-collapse-btn svg{width:20px;height:20px}.input-fullscreen-overlay textarea{flex:1;width:100%;min-height:0;border:none;background:transparent;padding:8px 16px 16px;color:var(--text-primary);font-size:17px;font-family:inherit;line-height:1.5;resize:none;outline:none;overflow-y:auto;-webkit-overflow-scrolling:touch}.input-fullscreen-overlay textarea::placeholder{color:var(--text-muted)}.chat-input-row .icon-btn,.chat-input-row .send-btn{align-self:flex-end;flex-shrink:0}.input-wrapper{flex:1;min-width:0;position:relative;display:flex;align-items:stretch}.input-wrapper.voice-mode{height:40px;min-height:40px;max-height:40px;align-self:flex-end}.input-wrapper.voice-mode .voice-record-btn{height:40px;min-height:40px;max-height:40px}.tool-grid-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 4px 8px;background:var(--glass-bg, rgba(255,255,255,.05));border:1px solid var(--border, #333355);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:11px;transition:all .15s}.tool-grid-btn span{color:var(--text-primary);font-weight:500;line-height:1.2}.tool-grid-btn svg{width:22px;height:22px;color:var(--text-secondary);flex-shrink:0}.tool-grid-btn:active{background:var(--accent, #e94560);color:#fff;border-color:var(--accent, #e94560)}.tool-grid-btn:active span,.tool-grid-btn:active svg{color:#fff}.tool-grid-btn.active{color:var(--accent, #e94560);border-color:var(--accent, #e94560);background:#6366f11a}.tool-grid-btn.active span{color:var(--accent, #e94560);font-weight:600}.tool-grid-btn.active svg{color:var(--accent, #e94560)}.tool-grid-btn.mode-active{color:var(--success);border-color:var(--success);background:#10b9811a}.tool-grid-btn.mode-active span{color:var(--success);font-weight:600}.tool-grid-btn.mode-active svg{color:var(--success)}.send-btn.hidden{display:none!important}.chat-input-row .plus-btn{background:none;border:none!important;color:var(--text-muted);cursor:pointer;padding:0;width:40px;height:40px;min-width:40px;min-height:40px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.chat-input-row .plus-btn svg{width:22px;height:22px}.chat-input-row .plus-btn:active{color:var(--accent);background:#6366f11a}.chat-input-row .plus-btn.hidden{display:none!important}.chat-input-row .plus-btn.active{color:var(--accent)}.image-preview-area{display:none;flex-direction:row;gap:8px;padding:8px 12px;background:var(--bg-secondary);border-top:1px solid var(--border);overflow-x:auto;align-items:center}.image-preview-item{position:relative;width:80px;height:80px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-card);border:1px solid var(--border);flex-shrink:0}.image-preview-item img{width:100%;height:100%;object-fit:cover}.image-preview-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;background:#0009;color:#fff;border:none;border-radius:50%;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.image-preview-remove:active{background:#ef4444cc;transform:scale(.9)}.analyzing-animation{display:flex;align-items:center;gap:8px}.analyzing-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.picker-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.picker-dialog{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:300px;overflow:hidden;box-shadow:0 10px 40px #0000004d}.picker-header{padding:16px;font-size:16px;font-weight:600;color:var(--text-primary);text-align:center;border-bottom:1px solid var(--border)}.picker-options{display:flex;flex-direction:column;padding:8px}.picker-option{padding:14px 16px;background:transparent;border:none;color:var(--text-primary);font-size:15px;text-align:left;cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);display:flex;align-items:center;gap:10px}.picker-option svg{opacity:.6;flex-shrink:0}.picker-option:active{background:var(--bg-secondary)}.picker-cancel{width:100%;padding:14px;background:transparent;border:none;border-top:1px solid var(--border);color:var(--text-secondary);font-size:15px;cursor:pointer;transition:all var(--transition-fast)}.picker-cancel:active{background:var(--bg-secondary)}.voice-toggle-btn{color:var(--text-muted)!important;flex-shrink:0}.voice-toggle-btn svg{width:22px;height:22px}.voice-toggle-btn:active{color:var(--accent)!important;transform:scale(.95)}.voice-options-bar{display:flex;gap:12px;padding:4px 12px;justify-content:center}.voice-opt-label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary);cursor:pointer;user-select:none}.voice-opt-label input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.input-wrapper .voice-record-btn{width:100%;min-height:40px;height:40px;background:var(--bg-input);border:1.5px solid var(--border);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:15px;font-weight:500;letter-spacing:.02em;cursor:pointer;display:none;align-items:center;justify-content:center;padding:10px 16px;box-sizing:border-box;transition:border-color var(--transition-normal),background var(--transition-normal),color var(--transition-fast);-webkit-user-select:none;user-select:none;touch-action:none}.input-wrapper .voice-record-btn:active{background:var(--bg-card-hover);border-color:var(--accent);color:var(--text-primary)}.voice-continuous-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted)}.voice-continuous-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.voice-record-all-btn{flex:none;width:auto;padding:0 14px;white-space:nowrap;background:transparent;border:1px solid var(--border);color:var(--text-muted);height:44px;border-radius:var(--radius-lg);font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;touch-action:none}.voice-record-all-btn.active{background:var(--danger);border-color:var(--danger);color:#fff;animation:voice-pulse .8s infinite;box-shadow:0 0 20px #ef44444d}.voice-record-btn.recording{background:var(--danger);color:#fff;border-color:var(--danger);animation:voice-pulse .8s infinite;box-shadow:0 0 20px #ef44444d}.voice-record-btn.processing{background:var(--accent);color:#fff;border-color:var(--accent);opacity:.8}@keyframes voice-pulse{0%,to{box-shadow:0 0 20px #ef44444d}50%{box-shadow:0 0 30px #ef444499}}.chat-input-area .icon-btn{width:40px;height:40px;min-width:40px;min-height:40px;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all var(--transition-normal)}.chat-input-area .icon-btn svg{width:22px;height:22px}.chat-input-area .icon-btn:active{background:var(--bg-card-hover);color:var(--accent);transform:scale(.95);border-color:var(--accent)}.input-wrapper textarea{width:100%;height:40px;min-width:0;min-height:40px;max-height:min(35vh,200px);background:var(--bg-input);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:10px 16px;color:var(--text-primary);font-size:15px;font-family:inherit;line-height:1.4;resize:none;outline:none;overflow-y:hidden;overflow-wrap:break-word;word-break:break-word;box-sizing:border-box;transition:border-color var(--transition-normal),box-shadow var(--transition-normal),background var(--transition-normal)}.input-wrapper textarea:focus{border-color:var(--accent)}.input-wrapper textarea::placeholder{color:var(--text-muted)}.send-btn{width:40px;height:40px;flex-shrink:0;background:var(--accent-gradient);border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation;transition:all var(--transition-normal);box-shadow:var(--shadow-md)}.send-btn.send-btn-text{width:auto;min-width:52px;height:36px;padding:0 12px;border-radius:6px;font-size:15px;font-weight:500;letter-spacing:.02em;box-shadow:none}.send-btn:active{transform:scale(.92);box-shadow:var(--shadow-sm)}.send-btn.stop-mode{background:var(--danger, #ef4444);border-radius:50%;width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;animation:stop-pulse 2s ease-in-out infinite}.send-btn.stop-mode:hover{background:#dc2626;transform:scale(1.05)}.send-btn.stop-mode:active{transform:scale(.95)}@keyframes stop-pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 6px #ef444400}}.preview-bar{display:none;padding:10px 12px 0;background:var(--glass-bg);gap:10px;overflow-x:auto}.preview-bar.visible{display:flex}.preview-thumb{width:60px;height:60px;border-radius:var(--radius-md);object-fit:cover;border:2px solid var(--border);position:relative;box-shadow:var(--shadow-sm)}.preview-item{position:relative}.preview-item .remove-btn{position:absolute;top:-8px;right:-8px;width:22px;height:22px;background:var(--danger);border:2px solid var(--bg-solid);border-radius:50%;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:var(--shadow-sm)}@media(min-width:769px){:root{--app-max-w: 960px}.chat-messages{padding:24px 20px 100px}.msg{margin-bottom:24px}.msg.user+.msg.ai,.msg.ai+.msg.user{margin-top:18px}.msg-avatar{width:36px;height:36px}.msg-avatar svg{width:20px;height:20px}.msg.user .msg-bubble{max-width:70%}}@media(max-width:768px){.chat-messages{max-width:100%;padding:16px 12px 100px}.msg.user .msg-bubble{max-width:88%}}[data-layout=compact]{--app-max-w: 428px !important}[data-layout=wide]{--app-max-w: 1200px !important}.ext-overlay{position:fixed;inset:0;background:#000000e6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.ext-modal{background:var(--glass-bg-solid);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;animation:modal-in .3s cubic-bezier(.4,0,.2,1)}@keyframes modal-in{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.ext-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}.ext-modal-title{font-size:19px;font-weight:700;color:var(--text-primary)}.ext-modal-close{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);font-size:20px;cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all var(--transition-normal)}.ext-modal-close:active{background:var(--bg-card-hover);color:var(--text-primary);transform:scale(.95)}.ext-modal-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:10001}.ext-list-item{transition:background .15s}.ext-list-item:hover{background:var(--bg-card-hover)}.ext-modal-body{padding:24px;overflow-y:auto;flex:1}.ext-changelog-item:last-child{border-bottom:none!important}.ext-file-item{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border-light);cursor:pointer;transition:all var(--transition-normal);border-radius:var(--radius-md);margin:4px 0}.ext-file-item:hover{background:var(--bg-card-hover);transform:translate(4px)}.ext-file-item:active{background:var(--bg-card);transform:translate(2px)}.ext-file-item:last-child{border-bottom:none}.ext-file-selected{background:var(--bg-card-hover);box-shadow:inset 4px 0 0 var(--accent)}.ext-file-selected span{color:var(--accent)!important}.srv-group-header{display:flex;align-items:center;gap:8px;padding:12px 0 8px;font-size:12px;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:1px}.srv-group-icon{display:flex;align-items:center;color:var(--accent)}.srv-group-name{flex:1}.srv-group-count{padding:2px 8px;border-radius:var(--radius-full);background:var(--bg-input);font-size:11px;color:var(--text-muted)}.srv-loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--text-secondary);font-size:14px;gap:8px}.srv-loading:before{content:"";width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:srv-spin .8s linear infinite}@keyframes srv-spin{to{transform:rotate(360deg)}}.srv-error{padding:20px;background:#ef44441a;border:1px solid var(--danger);border-radius:var(--radius-md);color:var(--danger);font-size:13px;text-align:center}.ext-dialog-overlay{z-index:10050;padding:16px;animation:fade-in .2s ease}.ext-dialog-overlay.ext-dialog-closing{animation:fade-out .18s ease forwards}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.ext-dialog-title{display:flex;align-items:center;gap:10px;font-size:17px!important}.ext-dialog-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);flex-shrink:0}.ext-dialog-icon-danger{background:#ef444426;color:var(--danger, #ef4444)}.ext-dialog-icon-primary{background:#6366f126;color:var(--accent, #6366f1)}.ext-dialog-icon-info{background:#60a5fa26;color:#60a5fa}.ext-dialog-icon-success{background:#22c55e26;color:#22c55e}.ext-dialog-icon-error{background:#ef444426;color:#ef4444}.ext-dialog-icon-warning{background:#fbbf2426;color:#fbbf24}.ext-dialog-body{padding:16px 24px 20px!important}.ext-dialog-message{margin:0;font-size:14px;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.ext-dialog-input{width:100%;margin-top:4px;box-sizing:border-box}.ext-dialog-footer{display:flex;gap:10px;padding:0 24px 20px;justify-content:flex-end}.ext-dialog-footer-single{justify-content:stretch}.ext-dialog-footer-single .ext-btn{flex:1}.ext-global-loading{position:fixed;inset:0;z-index:10060;display:flex;align-items:center;justify-content:center;background:#0000008c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fade-in .15s ease}.ext-global-loading.ext-global-loading-out{animation:fade-out .18s ease forwards}.ext-global-loading-card{display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 36px;background:var(--glass-bg-solid, var(--bg-card));border:1px solid var(--glass-border, var(--border));border-radius:var(--radius-xl, 16px);box-shadow:var(--shadow-lg);min-width:160px}.ext-global-loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:srv-spin .8s linear infinite}.ext-global-loading-text{font-size:14px;color:var(--text-secondary)}.ext-app-toast{position:fixed;left:50%;bottom:calc(72px + env(safe-area-inset-bottom,0px));transform:translate(-50%) translateY(12px);z-index:10070;display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-lg, 12px);background:var(--glass-bg-solid, rgba(30, 41, 59, .96));border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);font-size:13px;color:var(--text-primary);opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;max-width:min(90vw,360px)}.ext-app-toast-visible{opacity:1;transform:translate(-50%) translateY(0)}.ext-app-toast-success{border-color:#22c55e66;color:#4ade80}.ext-app-toast-error{border-color:#ef444466;color:#f87171}.ext-app-toast-warning{border-color:#fbbf2466;color:#fbbf24}.ext-app-toast-info{border-color:#60a5fa66;color:#93c5fd}.code-block{margin:4px -4px;border-radius:8px;overflow:hidden;background:var(--bg-code);border:1px solid var(--border-color, #30363d);position:relative;transition:box-shadow .2s ease}.code-block:focus-within{box-shadow:0 0 0 2px #7c8bfd40}.code-block .code-header{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.06);font-size:11px;color:var(--text-secondary)}.code-block .code-lang{font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;background:#ffffff14;padding:2px 8px 2px 22px;border-radius:4px;position:relative}.code-block .code-lang:before{content:"";position:absolute;left:7px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--lang-color, #888)}.code-block[data-lang=javascript] .code-lang:before,.code-block[data-lang=js] .code-lang:before{--lang-color: #f7df1e}.code-block[data-lang=typescript] .code-lang:before,.code-block[data-lang=ts] .code-lang:before{--lang-color: #3178c6}.code-block[data-lang=python] .code-lang:before,.code-block[data-lang=py] .code-lang:before{--lang-color: #3776ab}.code-block[data-lang=css] .code-lang:before{--lang-color: #264de4}.code-block[data-lang=html] .code-lang:before{--lang-color: #e34c26}.code-block[data-lang=json] .code-lang:before{--lang-color: #5a5a5a}.code-block[data-lang=bash] .code-lang:before,.code-block[data-lang=sh] .code-lang:before,.code-block[data-lang=shell] .code-lang:before{--lang-color: #89e051}.code-block[data-lang=sql] .code-lang:before{--lang-color: #e38c00}.code-block[data-lang=go] .code-lang:before,.code-block[data-lang=golang] .code-lang:before{--lang-color: #00add8}.code-block[data-lang=rust] .code-lang:before,.code-block[data-lang=rs] .code-lang:before{--lang-color: #dea584}.code-block[data-lang=java] .code-lang:before{--lang-color: #b07219}.code-block[data-lang=markup] .code-lang:before{--lang-color: #e34c26}.code-block[data-lang=diff] .code-lang:before{--lang-color: #a371f7}.code-block[data-lang=yaml] .code-lang:before,.code-block[data-lang=yml] .code-lang:before{--lang-color: #6b7280}.code-block[data-lang=docker] .code-lang:before{--lang-color: #1d63ed}.code-block .code-lines{color:var(--text-muted);font-size:10px}.code-block .code-header .code-copy-btn{padding:2px 7px;background:#ffffff0f;border:none;border-radius:4px;color:#9ca3af;font-size:10px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .15s;position:relative}.code-block .code-header .code-copy-btn:hover{background:#ffffff1f;color:var(--text-primary)}.code-block .code-header .code-copy-btn:active{background:#ffffff26}.code-block .code-header .code-copy-btn.copied{color:#3fb950;background:#3fb9501f}@keyframes copyFlash{0%{background:#3fb95033}to{background:transparent}}.code-block.just-copied{animation:copyFlash .5s ease}.code-block .code-detail-btn{margin-left:auto;padding:2px 7px;background:#ffffff0f;border:none;border-radius:4px;color:#9ca3af;font-size:10px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .15s}.code-block .code-detail-btn:hover{background:#ffffff1f;color:var(--text-primary)}.code-block .code-expand-btn{padding:2px 8px;background:#ffffff0d;border:none;border-radius:4px;color:#9ca3af;font-size:10px;cursor:pointer;display:inline-flex;align-items:center;gap:3px;transition:all .15s}.code-block .code-expand-btn:hover{background:#ffffff1a;color:var(--text-primary)}.code-block .code-expand-btn:active{background:#ffffff1f}.code-detail-overlay{position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;background:#090c14f5;color:#e5e7eb}.code-detail-header{flex:0 0 auto;min-height:52px;display:flex;align-items:center;gap:10px;padding:max(12px,env(safe-area-inset-top)) 14px 10px;border-bottom:1px solid rgba(255,255,255,.12)}.code-detail-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#cbd5e1}.code-detail-copy,.code-detail-close{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px;border:1px solid rgba(255,255,255,.14);border-radius:7px;background:#ffffff12;color:#e5e7eb;cursor:pointer}.code-detail-copy{padding:0 10px;font-size:12px}.code-detail-close{width:34px}.code-detail-body{flex:1;min-height:0;margin:0;padding:14px;overflow:auto;font-family:SF Mono,Fira Code,Cascadia Code,JetBrains Mono,monospace;font-size:13px;line-height:1.65;white-space:pre}.code-block .code-body{overflow-x:auto;overflow-y:hidden;position:relative}.code-block code{display:block;background:var(--bg-code);overflow-x:visible;font-size:12px;line-height:1.5;font-family:SF Mono,Fira Code,Cascadia Code,JetBrains Mono,monospace;color:#d1d5db;-webkit-overflow-scrolling:touch}.code-block .code-td{padding:0 0 0 12px;white-space:pre;vertical-align:top;transition:background .1s ease;color:var(--code-td-color)}[data-theme=light] .code-block code{color:#374151}.code-block .code-table{border-collapse:collapse;width:100%}.code-block .code-ln{width:48px;min-width:48px;padding:0 16px 0 12px;text-align:right;color:var(--code-line-number);font-size:11px;font-weight:500;user-select:none;vertical-align:top;background:#0000001f;letter-spacing:.5px}.code-block .code-ln:before{content:attr(data-line)}.code-block .code-table tr:hover .code-td{background:#ffffff08}.code-block.collapsed .code-body{max-height:140px;overflow:hidden}.code-block.collapsed .code-body:after{content:"";position:absolute;bottom:0;left:0;right:0;height:40px;background:linear-gradient(transparent,var(--bg-code));pointer-events:none}.code-block.collapsed .code-expand-btn{display:inline-flex}.code-block:not(.collapsed) .code-expand-btn{display:inline-flex}.code-block code{scrollbar-width:thin;scrollbar-color:rgba(139,148,158,.35) transparent}.code-block code::-webkit-scrollbar{height:6px;width:6px;background:transparent}.code-block code::-webkit-scrollbar-thumb{background:#8b949e59;border-radius:3px;border:1px solid transparent;background-clip:padding-box;transition:background .2s ease}.code-block code::-webkit-scrollbar-thumb:hover{background:#8b949e99}.code-block code::-webkit-scrollbar-track{background:transparent}.code-block code::-webkit-scrollbar-corner{background:transparent}.code-block code::-webkit-scrollbar-track-piece:start{margin-left:52px}.msg-bubble code:not(pre code){background:var(--bg-input);color:var(--accent);padding:2px 6px;border-radius:4px;font-size:13px;font-family:SF Mono,Fira Code,monospace;border:1px solid var(--border-light)}@media(max-width:768px){.code-block{margin:4px -16px;border-radius:0;border-left:none;border-right:none;--code-block-font: 11px}.code-block code{font-size:11px}.code-block .code-ln{width:36px;min-width:36px;font-size:10px;padding:0 10px 0 6px}.code-block .code-td{padding:0 0 0 8px}}.msg-bubble table{width:100%;border-collapse:collapse;margin:8px 0;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow-y:hidden}.msg-bubble th{padding:8px 12px;text-align:left;font-weight:600;font-size:12px;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:normal;word-break:break-word}.msg-bubble td{padding:8px 12px;border-bottom:1px solid var(--border-light);vertical-align:top}.msg-bubble tbody tr:last-child td{border-bottom:none}.msg-bubble tbody tr:hover{background:var(--bg-card)}.msg-bubble blockquote{border-left:3px solid var(--accent);padding:8px 16px;margin:12px 0;background:var(--bg-input);border-radius:0 8px 8px 0;color:var(--text-secondary);font-style:italic}.msg-bubble table{width:100%;border-collapse:separate;border-spacing:0;border-radius:8px;overflow-y:hidden;border:1px solid var(--border-color, #30363d);border-left:none;border-right:none;margin:12px 0;font-size:13px}.msg-bubble table th,.msg-bubble table td{border-left:1px solid var(--border-color, #30363d)}.msg-bubble table th:last-child,.msg-bubble table td:last-child{border-right:1px solid var(--border-color, #30363d)}.msg-bubble thead{background:var(--bg-input)}.msg-bubble th{padding:10px 12px;font-weight:600;text-align:left;color:var(--text-primary);border-bottom:1px solid var(--border);white-space:normal;word-break:break-word}.msg-bubble td{padding:10px 12px;border-top:1px solid var(--border);color:var(--text-secondary)}.msg-bubble tbody tr:nth-child(2n){background:var(--bg-input)}.msg-bubble tbody tr:hover{background:var(--bg-card-hover)}.msg-bubble ul,.msg-bubble ol{margin:6px 0;padding-left:20px}.msg-bubble li{margin:3px 0;color:var(--text-secondary);line-height:1.6}.msg-bubble ul li{list-style-type:disc}.msg-bubble ol li{list-style-type:decimal}.msg-bubble h1,.msg-bubble h2,.msg-bubble h3{margin:10px 0 4px;color:var(--text-primary);font-weight:600;line-height:1.4}.msg-bubble h1{font-size:17px}.msg-bubble h2{font-size:15px}.msg-bubble h3{font-size:14px}.msg-bubble a{color:var(--accent);text-decoration:underline;transition:color var(--transition-fast)}.msg-bubble a:hover{color:var(--accent-hover)}.msg-bubble img.msg-img{max-width:100%;border-radius:var(--radius-md);margin:8px 0;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.msg-bubble img.msg-img:hover{transform:scale(1.02)}.msg-bubble p{margin:12px 0;color:var(--text-secondary)}.msg-bubble p:first-child{margin-top:0}.msg-bubble p:last-child{margin-bottom:0}.msg-bubble .stream-body{display:block;line-height:1.7}.msg-bubble .stream-body br{display:block;content:"";margin:3px 0}.msg-bubble .stream-body br:only-child,.msg-bubble .stream-body br:last-child{margin:0}.msg.ai.stream-recovering .msg-bubble{outline:1px dashed var(--accent, #6366f1);outline-offset:2px;opacity:.92}.msg.ai.stream-recovering .msg-bubble:after{content:"恢复中…";display:block;margin-top:6px;font-size:11px;color:var(--accent, #6366f1);opacity:.85}.msg-blocks .thinking-block{margin:2px 0 6px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);font-size:12px;line-height:1.5;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.thinking-block:hover{border-color:#6366f140}.thinking-block.is-active{border-color:#a855f773;box-shadow:0 0 0 1px #a855f71f}.thinking-block.is-active .thinking-block-summary{background:#a855f70f}.thinking-block-summary{cursor:pointer;padding:5px 8px;min-height:28px;display:flex;align-items:center;font-weight:600;color:var(--text-secondary);user-select:none;list-style:none;transition:background .2s ease}.thinking-block-summary:hover{background:#a855f70d}.thinking-block-summary::-webkit-details-marker{display:none}.thinking-block-summary:after{content:"›";margin-left:auto;padding-left:8px;color:var(--text-muted);transition:transform .2s ease}.thinking-block[open] .thinking-block-summary:after{transform:rotate(90deg)}.thinking-block.streaming .thinking-block-summary{color:#a855f7f2}.thinking-block-content{padding:0 10px 10px;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;max-height:280px;overflow-y:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;border-top:1px solid var(--border-light)}.thinking-block:not([open]) .thinking-block-content{display:none}.msg-bubble .md-table-wrap,.msg-bubble .table-scroll-wrap{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.msg-bubble .table-scroll-wrap>table{width:max-content;min-width:100%}.msg-bubble .md-table-wrap{margin:8px 0}.msg-bubble .md-table{width:100%;border-collapse:collapse;font-size:13px}.msg-bubble .md-table th,.msg-bubble .md-table td{border:1px solid var(--border);padding:6px 10px;text-align:left}.msg-bubble .md-table th{background:var(--bg-secondary, rgba(128, 128, 128, .1));font-weight:600}.md-table-wrap.collapsed .md-table tbody{max-height:300px;overflow:hidden}.table-expand-btn{display:block;width:100%;padding:8px;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer;margin-top:8px;transition:all var(--transition-fast)}.table-expand-btn:hover{background:var(--bg-card-hover);color:var(--accent)}.table-expand-btn:active{transform:scale(.98)}.msg-bubble ul.task-list{list-style:none;padding-left:0;margin:6px 0}.msg-bubble .task-list-item{display:flex;align-items:flex-start;gap:8px;margin:4px 0}.msg-bubble .task-list-item input[type=checkbox]{margin-top:4px;flex-shrink:0}.history-trim-banner{display:flex;justify-content:center;padding:8px 12px 4px}.history-trim-btn{border:1px dashed var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:12px;padding:6px 14px;border-radius:999px;cursor:pointer}.history-trim-btn:active{opacity:.8}.msg-collapsible{position:relative}.msg-collapsible .msg-collapsed-content{display:block}.msg-collapsible .msg-expanded-content{display:none;max-height:0;overflow:hidden;transition:max-height .3s ease}.msg-collapsible:not(.collapsed) .msg-expanded-content{display:block;max-height:5000px}.msg-collapsible:not(.collapsed) .msg-collapsed-content{display:none}.msg-expand-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:8px 12px;margin-top:8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all var(--transition-normal)}.msg-expand-btn:active{background:var(--bg-card-hover);color:var(--accent);transform:scale(.98)}.msg-expand-btn .expand-text{display:inline}.msg-expand-btn .collapse-text{display:none}.msg-collapsible:not(.collapsed) .msg-expand-btn .expand-text{display:none}.msg-collapsible:not(.collapsed) .msg-expand-btn .collapse-text{display:inline}.msg-line-clamp-collapse{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:8;overflow:hidden;max-height:12em}.og-preview-host{display:flex;flex-direction:column;gap:8px;margin-top:10px}.og-preview-card{display:flex;gap:10px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);text-decoration:none;color:inherit;overflow:hidden}.og-preview-img{flex:0 0 72px;width:72px;height:72px;border-radius:var(--radius-sm);background-size:cover;background-position:center;background-color:var(--bg-card)}.og-preview-body{flex:1;min-width:0}.og-preview-title{font-size:14px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.og-preview-desc{margin-top:4px;font-size:12px;color:var(--text-secondary);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.og-preview-url{margin-top:4px;font-size:11px;color:var(--text-tertiary, var(--text-secondary))}.pdf-lightbox .pdf-viewer-toolbar{display:flex;align-items:center;justify-content:center;gap:16px;padding:8px;color:#fff}.pdf-lightbox .pdf-canvas-wrap{max-height:85vh;overflow:auto;text-align:center}.pdf-lightbox .pdf-canvas{max-width:100%;height:auto}.md-table-sticky-head thead th{position:sticky;top:0;z-index:2;background:var(--bg-card, #1e1e2e)}.md-table-sticky-head .table-scroll-wrap,.md-table-sticky-head.md-table-wrap{max-height:360px;overflow:auto}.voice-waveform{display:block;width:100%;height:24px}.msg-time-divider{display:flex;align-items:center;justify-content:center;gap:12px;margin:8px 0;padding:0 16px}.msg-time-divider .time-divider-line{flex:1;height:1px;background:var(--border)}.msg-time-divider .time-divider-text{padding:4px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full);font-size:12px;color:var(--text-secondary);font-weight:500;white-space:nowrap}.msg-date-divider{display:flex;align-items:center;justify-content:center;margin:20px 0;padding:8px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full);font-size:13px;color:var(--text-primary);font-weight:600;text-align:center}.system-msg-pill{max-width:90%;font-size:12px;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:6px 14px;text-align:center;white-space:normal;word-break:break-word;line-height:1.4}.chat-empty-state{display:flex;justify-content:center;padding:32px 16px 24px;width:100%}.chat-empty-card{max-width:360px;width:100%;text-align:center;padding:20px 18px;border-radius:var(--radius-lg, 12px);background:var(--bg-card);border:1px solid var(--border)}.chat-empty-hint{margin:0 0 16px;font-size:15px;color:var(--text-primary);font-weight:500}.chat-empty-model-block{text-align:left;padding:12px 14px;border-radius:10px;background:var(--bg-primary);border:1px solid var(--border);cursor:pointer}.chat-empty-model-block:hover{border-color:var(--accent, #3b82f6)}.chat-empty-model-title{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}.chat-empty-model-row{display:flex;align-items:baseline;gap:8px;font-size:13px;line-height:1.5}.chat-empty-model-row+.chat-empty-model-row{margin-top:6px}.chat-empty-model-k{flex:0 0 auto;min-width:52px;color:var(--text-secondary);font-size:12px}.chat-empty-model-v{flex:1;color:var(--text-primary);font-weight:500;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.chat-empty-model-action{margin-top:10px;font-size:11px;color:var(--accent, #3b82f6);text-align:center}.chat-empty-model-unknown{margin:0;font-size:13px;color:var(--text-muted)}.msg.ai[data-model-intro=local] .msg-bubble{border-color:color-mix(in srgb,var(--accent, #3b82f6) 35%,var(--border))}.cmd-feedback-toast{position:fixed;top:calc(var(--safe-top, 0px) + 56px);left:50%;transform:translate(-50%) translateY(-12px);z-index:100001;max-width:min(92vw,420px);padding:10px 16px;border-radius:12px;font-size:13px;line-height:1.45;text-align:center;color:#fff;background:#1e1e2ef0;border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 28px #00000059;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.cmd-feedback-toast.visible{opacity:1;transform:translate(-50%) translateY(0)}.cmd-feedback-toast.error{background:#b42832f2}.progress-msg{position:relative;padding-left:20px;border-left:3px solid var(--success);color:var(--text-primary);font-weight:500}.msg-action-menu{position:relative;z-index:1000;min-width:160px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:8px;transform:translate(-50%);animation:menu-in .2s ease}@keyframes menu-in{0%{opacity:0;transform:translate(-50%) translateY(-8px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.msg-action-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;text-align:left;cursor:pointer;transition:all var(--transition-normal)}.msg-action-btn:hover{background:var(--bg-card-hover)}.msg-action-btn:active{background:var(--bg-card);transform:scale(.98)}.msg-action-btn .btn-icon{font-size:16px;width:20px;text-align:center}.msg-action-btn .btn-text{flex:1}.msg-action-btn.msg-action-close{border-top:1px solid var(--border-light);margin-top:4px;padding-top:12px;color:var(--text-secondary)}.msg-skeleton-container{display:flex;flex-direction:column;gap:12px;padding:16px}.msg-skeleton{display:flex;gap:12px;margin-bottom:12px}.msg-skeleton.user{justify-content:flex-end}.msg-skeleton .skeleton-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(90deg,var(--bg-input) 25%,var(--bg-card) 50%,var(--bg-input) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}.msg-skeleton .skeleton-lines{flex:1;display:flex;flex-direction:column;gap:8px;max-width:82%}.msg-skeleton.user .skeleton-lines{align-items:flex-end}.msg-skeleton .skeleton-line{height:14px;background:linear-gradient(90deg,var(--bg-input) 25%,var(--bg-card) 50%,var(--bg-input) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:4px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.load-more-indicator{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;margin:8px 0;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;color:var(--text-secondary)}.load-more-indicator .loading-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:load-more-spin .8s linear infinite}@keyframes load-more-spin{to{transform:rotate(360deg)}}.load-more-indicator .loading-text{font-weight:500}.lightbox{display:none;position:relative;top:0;bottom:0;z-index:10000;background:#000000d9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);align-items:center;justify-content:center;padding:20px;animation:lb-fade-in .2s ease}.lightbox.visible{display:flex}@keyframes lb-fade-in{0%{opacity:0}to{opacity:1}}.lightbox img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 8px 32px #00000080}.lightbox video{max-width:100%;max-height:90vh;border-radius:var(--radius-md)}.close-lightbox{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:none;background:#ffffff26;color:#fff;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:1}.close-lightbox:hover{background:#ffffff4d}.gallery-prev,.gallery-next{position:absolute;top:50%;transform:translateY(-50%);background:#00000080;color:#fff;border:none;font-size:40px;padding:10px 15px;cursor:pointer}.gallery-prev{left:10px}.gallery-next{right:10px}.debounce-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;margin:4px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;color:var(--text-secondary);animation:debounce-slide-in .2s ease}@keyframes debounce-slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.debounce-hint .debounce-text{font-weight:500;color:var(--text-primary)}.debounce-hint .debounce-send-btn{padding:6px 12px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.debounce-hint .debounce-send-btn:hover{background:var(--accent-hover)}.debounce-hint .debounce-send-btn:active{transform:scale(.95)}.message-queue-panel{display:flex;flex-direction:column;gap:6px;margin:0 0 2px;padding:8px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);animation:debounce-slide-in .2s ease}.message-queue-panel.hidden{display:none}.message-queue-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}.message-queue-header-left{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.message-queue-icon{display:inline-flex;color:var(--accent);flex-shrink:0}.message-queue-title{font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap}.message-queue-status{font-size:11px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-queue-clear-btn{padding:4px 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:11px;cursor:pointer;flex-shrink:0}.message-queue-clear-btn:hover{color:var(--danger, #ef4444);background:#ef444414}.message-queue-list{display:flex;flex-direction:column;gap:4px;max-height:168px;overflow-y:auto}.message-queue-item{display:flex;align-items:stretch;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid transparent}.message-queue-item.is-next{border-color:#6366f159;background:#6366f114}.message-queue-item-index{width:20px;height:20px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.message-queue-item.is-next .message-queue-item-index{color:var(--accent);border-color:#6366f173}.message-queue-item-body{flex:1;min-width:0;text-align:left;border:none;background:transparent;padding:0;cursor:pointer}.message-queue-item-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:2px}.message-queue-priority{font-size:10px;font-weight:600;padding:1px 6px;border-radius:999px;line-height:1.4}.message-queue-priority.priority-now{color:#ef4444;background:#ef44441f}.message-queue-priority.priority-next{color:#f59e0b;background:#f59e0b1f}.message-queue-priority.priority-later{color:var(--text-secondary);background:#94a3b81f}.message-queue-next-tag{font-size:10px;color:var(--accent);font-weight:600}.message-queue-attach-badge{font-size:10px;color:var(--text-secondary)}.message-queue-item-text{font-size:13px;line-height:1.35;color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.message-queue-item-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.message-queue-action-btn{width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.message-queue-action-btn:hover{background:#94a3b81f;color:var(--text-primary)}.message-queue-action-btn.danger:hover{background:#ef44441f;color:#ef4444}.chat-activity-bar{display:flex;flex-direction:column;gap:6px;padding:8px 10px;background:linear-gradient(135deg,#6366f11a,#6366f10a);border:1px solid rgba(99,102,241,.22);border-radius:var(--radius-md);animation:debounce-slide-in .2s ease}.chat-activity-bar.hidden{display:none}.chat-activity-progress{height:3px;border-radius:999px;background:#6366f11f;overflow:hidden}.chat-activity-progress-indeterminate{height:100%;width:40%;border-radius:inherit;background:linear-gradient(90deg,transparent,var(--accent, #6366f1),transparent);animation:chat-activity-progress 1.2s ease-in-out infinite}@keyframes chat-activity-progress{0%{transform:translate(-120%)}to{transform:translate(320%)}}.chat-activity-row{display:flex;align-items:flex-start;gap:8px}.chat-activity-spinner{width:14px;height:14px;margin-top:2px;border:2px solid rgba(99,102,241,.2);border-top-color:var(--accent, #6366f1);border-radius:50%;flex-shrink:0;animation:chat-activity-spin .8s linear infinite}.chat-activity-spinner.small{width:12px;height:12px;border-width:1.5px;margin-top:1px}@keyframes chat-activity-spin{to{transform:rotate(360deg)}}.chat-activity-main{flex:1;min-width:0}.chat-activity-phase{font-size:12px;font-weight:600;color:var(--text-primary);line-height:1.3}.chat-activity-detail,.chat-activity-tools,.chat-activity-diag{font-size:11px;color:var(--text-secondary);line-height:1.35;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-activity-diag{color:#80cbc4;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.chat-activity-tools{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--accent, #6366f1);font-weight:600;background:#6366f11a;border:1px solid rgba(99,102,241,.25);border-radius:10px;padding:1px 8px;display:inline-block;margin-top:3px;letter-spacing:.02em}.chat-activity-elapsed{font-size:11px;font-variant-numeric:tabular-nums;color:var(--accent, #6366f1);font-weight:600;flex-shrink:0;padding-top:1px}.message-queue-executing{display:flex;flex-direction:column;gap:6px;padding:8px;margin-bottom:4px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#6366f11f,#6366f10d);border:1px solid rgba(99,102,241,.25)}.message-queue-executing-header{display:flex;align-items:center;gap:6px;min-width:0}.message-queue-executing-phase{flex:1;font-size:12px;font-weight:600;color:var(--accent, #6366f1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-queue-executing-time{font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-secondary);flex-shrink:0}.message-queue-executing-preview{font-size:12px;color:var(--text-secondary);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.message-queue-executing-progress{height:2px;border-radius:999px;background:#6366f11f;overflow:hidden}.ai-truncation-mark{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;margin-top:6px;background:#fbbf241a;border-radius:12px;font-size:11px;color:var(--warning);animation:truncation-fade-in .3s ease;float:right;clear:both;max-width:max-content;margin-left:12px}@keyframes truncation-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.ai-truncation-mark .truncation-line{width:20px;height:1px;background:var(--warning);opacity:.4}.ai-truncation-mark .truncation-text{padding:0;font-weight:500;font-style:italic;color:var(--warning);white-space:nowrap}.thinking-toggle{position:relative;transition:all .2s}.thinking-toggle.active{color:var(--accent)}.thinking-toggle.active.mode-high{color:var(--warning);animation:thinking-glow 2s ease-in-out infinite}@keyframes thinking-glow{0%,to{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 4px rgba(245,158,11,.5))}}.thinking-toggle .thinking-label{color:var(--text-primary);font-weight:500;line-height:1.2}.thinking-toggle.active .thinking-label{color:var(--accent);font-weight:600}.thinking-toggle.active.mode-high .thinking-label{color:var(--warning);font-weight:700}.progress-toggle{position:relative;transition:all .2s}.progress-toggle.active{color:var(--success);animation:progress-pulse 1.5s ease-in-out infinite}@keyframes progress-pulse{0%,to{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 4px rgba(16,185,129,.5))}}.progress-toggle .progress-label{color:var(--text-primary);font-weight:500;line-height:1.2}.progress-toggle.active .progress-label{color:var(--accent);font-weight:600}.progress-picker{position:relative;z-index:500;background:var(--bg-card, #1a1a2e);border:1px solid var(--border);border-radius:var(--radius-md, 12px);padding:6px;display:flex;gap:4px;box-shadow:var(--shadow-lg, 0 8px 32px rgba(0,0,0,.3));animation:picker-in .15s ease}@keyframes picker-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.progress-opt{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm, 8px);color:var(--text-secondary);font-size:12px;padding:6px 12px;cursor:pointer;transition:all .15s}.progress-opt:hover,.progress-opt.current{background:var(--accent, #6366f1);color:#fff;border-color:var(--accent, #6366f1)}.modes-popup{display:none;position:absolute;bottom:100%;right:40px;background:var(--bg-secondary, #1e1e2e);border:1px solid var(--border-color, #333);border-radius:10px;padding:6px;gap:4px;flex-direction:column;box-shadow:0 -4px 20px #0006;margin-bottom:4px}.modes-popup.show{display:flex}.modes-popup .mode-btn{width:auto;height:auto;padding:8px 12px;gap:8px;border-radius:8px;white-space:nowrap}.modes-popup .mode-label{font-size:13px;color:var(--text-muted)}.modes-popup .mode-btn.active .mode-label{color:inherit}.mode-btn{width:32px;height:24px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm, 6px);transition:all .2s;padding:0}.mode-btn svg{width:16px;height:16px}.mode-btn:active{transform:scale(.9)}.mode-btn.thinking-toggle.active{color:var(--accent, #6366f1)}.mode-btn.thinking-toggle.active.mode-high{color:var(--warning);animation:thinking-glow 2s ease-in-out infinite}.mode-btn.thinking-toggle .thinking-label{position:absolute;top:-4px;right:-4px;font-size:7px;font-weight:700;background:var(--accent, #6366f1);color:#fff;border-radius:3px;padding:0 2px;line-height:10px;pointer-events:none}.mode-btn.thinking-toggle.mode-high .thinking-label{background:var(--warning)}.mode-btn.progress-toggle.active{color:var(--success, #22c55e)}.mode-btn.progress-toggle .progress-label{font-size:8px;font-weight:700;position:absolute;top:-4px;right:-4px;background:var(--success, #22c55e);color:#fff;border-radius:3px;padding:0 2px;line-height:10px;pointer-events:none}.mode-btn{position:relative}.channel-badge{display:inline-block;font-size:10px;padding:1px 6px;border-radius:4px;background:#fff3;color:#fffc;vertical-align:middle;margin-left:6px;font-weight:500}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.srv-alert-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;margin-bottom:12px;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);color:var(--danger);font-size:13px;font-weight:500}.srv-alert-icon{font-size:18px}.srv-proc-sort-btns{display:flex;gap:4px;margin-left:auto}.srv-proc-sort-btn{padding:2px 8px;font-size:11px;border-radius:4px;background:var(--bg-input);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.srv-proc-sort-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.srv-proc-sort-btn:hover:not(.active){border-color:var(--accent);color:var(--text-primary)}.srv-monitor-btn-ai{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border:none!important}.srv-monitor-btn-ai:hover{box-shadow:0 4px 14px #667eea66!important;transform:translateY(-1px)}#observer-bar{display:block;font-size:12px;color:var(--text-secondary);background:#667eea0a;border-top:1px solid rgba(102,126,234,.1);min-width:0;max-width:100%;max-height:40vh;overflow-y:auto;box-sizing:border-box;width:100%}.op-header{display:flex;align-items:center;gap:5px;padding:5px 10px;cursor:pointer;user-select:none;-webkit-user-select:none;color:var(--text-muted);font-size:11px}.op-header:hover{background:#667eea0f}.op-title{display:flex;align-items:center;flex-shrink:0}.op-header-label{font-weight:500;flex-shrink:0}.op-collapse-icon{margin-left:auto;font-size:10px;opacity:.5}.op-body{padding:2px 10px 6px}.op-row{display:flex;align-items:center;gap:4px;padding:3px 0;line-height:1.4;min-height:22px;flex-wrap:wrap}.op-emoji{flex-shrink:0;font-size:13px;width:18px;text-align:center}.op-label{font-weight:500;color:var(--text-muted);flex-shrink:0}.op-value{color:var(--text-primary);flex-shrink:1;min-width:0;word-break:break-word;overflow-wrap:break-word}.op-muted{color:var(--text-muted);opacity:.6}.op-badges{display:inline-flex;align-items:center;gap:4px;margin-left:6px;vertical-align:middle;flex-wrap:wrap;max-width:100%}.op-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;padding:1px 6px;border-radius:8px;line-height:1.6;white-space:nowrap}.op-badge-model{background:#667eea1f;color:#667eea}.op-badge-tokens{background:#22c55e1f;color:#22c55e}.op-badge-timer{background:#fbbf241f;color:#f59e0b}.op-badge-ctx{background:#60a5fa1f;color:#60a5fa}.op-badge-ctx--warn{background:#fbbf2426;color:#f59e0b}.op-badge-ctx--danger{background:#ef444426;color:#ef4444}.op-task-row{position:relative;flex-wrap:nowrap;gap:6px;padding-right:46px}.op-task-value{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:normal;overflow-wrap:normal}.op-task-time{position:absolute;right:0;top:50%;transform:translateY(-50%);flex-shrink:0;font-size:12px;font-weight:600;color:var(--text-primary);letter-spacing:.5px;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none}.op-turn-count{display:inline-flex;align-items:center;gap:3px;font-size:10px;padding:1px 6px;border-radius:8px;background:#6366f11a;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.op-alert-tag{display:inline-flex;align-items:center;gap:2px;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:500;background:#ef44441f;color:var(--danger);white-space:nowrap;flex-shrink:0;animation:alertFadeIn .3s ease}@keyframes alertFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.op-dash-btn{margin-left:auto;margin-right:4px;background:none;border:1px solid rgba(148,163,184,.15);border-radius:6px;color:var(--text-muted, #94a3b8);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:2px 5px;flex-shrink:0;transition:all .2s}.op-dash-btn:hover{background:#6366f11a;border-color:#6366f14d;color:#a5b4fc}.op-dash-btn--active{border-color:#6366f180;color:#a5b4fc;animation:opDashPulse 2s ease infinite}@keyframes opDashPulse{0%,to{box-shadow:0 0 #6366f14d}50%{box-shadow:0 0 6px 2px #6366f180}}.op-dash-modal-overlay{position:fixed;inset:0;z-index:9999;background:#0009;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;animation:modalFadeIn .2s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.op-dash-modal{width:92%;max-width:700px;height:80vh;background:#0f0f1a;border:1px solid rgba(148,163,184,.15);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:modalSlideIn .25s ease}@keyframes modalSlideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.op-dash-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(148,163,184,.1);color:var(--text-primary, #e2e8f0);font-weight:600;font-size:14px;flex-shrink:0}.op-dash-modal-header svg{vertical-align:-3px;margin-right:6px}.op-dash-modal-close{background:none;border:none;color:var(--text-muted, #64748b);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.op-dash-modal-close:hover{background:#ffffff0d;color:var(--text-primary)}.op-dash-modal-body{flex:1;overflow-y:auto}.op-dash-iframe{width:100%;height:100%;border:none}.observer-icon{font-size:12px;flex-shrink:0}.observer-label{font-weight:500;flex-shrink:0}.observer-count{opacity:.6;flex-shrink:0;cursor:pointer}.observer-status{color:var(--text-muted);overflow:hidden;flex-shrink:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.observer-toggle{font-size:16px;line-height:1}.observer-toggle.active{background:#667eea33!important;outline:2px solid var(--primary);outline-offset:-2px}.msg.observer-bubble{display:flex;flex-direction:column;align-items:stretch;width:100%;max-width:92%;margin:8px auto;gap:0}.observer-bubble{padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.5;word-break:break-word;overflow-wrap:break-word}.observer-bubble.observer-info{background:#667eea14;border:1px solid rgba(102,126,234,.15);color:var(--text-primary)}.observer-bubble.observer-important{background:#ef444414;border:1px solid rgba(239,68,68,.2);color:var(--text-primary)}.observer-bubble-header{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin-bottom:8px;font-size:11px;color:var(--text-muted);cursor:pointer;user-select:none}.observer-bubble-top{display:flex;align-items:center;gap:8px;width:100%;min-width:0}.observer-bubble-meta{display:flex;align-items:center;gap:6px;flex:0 1 auto;min-width:0;flex-wrap:nowrap;overflow:hidden}.observer-bubble-actions{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}.observer-bubble-icon{font-size:12px;flex-shrink:0}.observer-bubble-label{font-weight:500}.observer-bubble-source{padding:1px 6px;border-radius:4px;font-size:10px;font-weight:500;background:#667eea1f;color:var(--text-muted)}.observer-bubble-badge{padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;background:#ef444426;color:var(--danger)}.observer-bubble-preview{display:none;font-size:12px;line-height:1.45;color:var(--text-secondary, var(--text-primary));opacity:.9;padding-left:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.observer-bubble-speak{margin-left:auto;background:none;border:none;cursor:pointer;font-size:14px;padding:2px 4px;opacity:.6;border-radius:4px}.observer-bubble-speak:hover{opacity:1;background:#ffffff0d}.observer-bubble-body{display:flex;flex-direction:column;gap:0;width:100%}.observer-bubble-text{color:var(--text-primary);font-size:14px;line-height:1.55;width:100%}.observer-bubble-time{font-size:11px;font-weight:600;color:var(--text-primary);white-space:nowrap;letter-spacing:.3px;font-variant-numeric:tabular-nums}.observer-bubble-copy{background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;color:var(--text-muted);opacity:0;transition:opacity .15s,color .2s;line-height:1;flex-shrink:0}.observer-bubble:hover .observer-bubble-copy{opacity:.6}.observer-bubble-copy:hover{opacity:1!important;color:var(--text-primary);background:#ffffff0d}.observer-bubble-copy.copied{color:var(--success, #22c55e);opacity:1!important}.observer-bubble-header-toggle{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;opacity:.5;transition:transform .2s ease}.observer-bubble.collapsed .observer-bubble-header-toggle{transform:rotate(-90deg)}.observer-bubble.collapsed .observer-bubble-body{display:none}.observer-bubble.collapsed .observer-bubble-preview{display:block}.observer-bubble.collapsed .observer-bubble-header{margin-bottom:0}.observer-bubble.collapsed{padding:8px 12px;opacity:.7;transition:opacity .2s;cursor:pointer}.observer-bubble.collapsed:hover{opacity:1}.observer-dashboard{padding:12px;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}.ob-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.ob-title{font-size:17px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px}.ob-refresh-btn{background:var(--bg-card, rgba(42, 42, 62, .6));border:1px solid var(--border, rgba(148, 163, 184, .15));border-radius:8px;padding:6px 10px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;transition:all .2s}.ob-refresh-btn:active{transform:scale(.95);background:var(--bg-card-hover, rgba(52, 52, 82, .7))}.ob-alerts-section{margin-bottom:14px}.ob-alerts-title{font-size:13px;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:6px;margin-bottom:8px}.ob-alerts-count{background:#ef444426;color:var(--danger);font-size:11px;padding:1px 7px;border-radius:10px;font-weight:600}.ob-alert-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;margin-bottom:6px;cursor:pointer;transition:all .2s;border-left:3px solid transparent}.ob-alert-item:active{transform:scale(.98)}.ob-alert-item.severity-high{background:#ef44441a;border-left-color:var(--danger)}.ob-alert-item.severity-medium{background:#f59e0b1a;border-left-color:var(--warning)}.ob-alert-item.severity-low{background:#3b82f61a;border-left-color:var(--info)}.ob-alert-severity{font-size:11px;font-weight:700;width:20px;text-align:center}.ob-alert-message{flex:1;font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ob-alert-time{font-size:11px;color:var(--text-muted)}.ob-session-card{background:var(--bg-card, rgba(42, 42, 62, .6));border-radius:16px;padding:16px;margin-bottom:10px;border:1px solid var(--border, rgba(148, 163, 184, .15));box-shadow:0 2px 8px #00000026;border-left:3px solid transparent;cursor:pointer;transition:all .2s ease}.ob-session-card:active{transform:scale(.985)}.ob-session-card.phase-thinking{border-left-color:var(--accent, #6366f1)}.ob-session-card.phase-executing{border-left-color:var(--success, #10b981)}.ob-session-card.phase-waiting{border-left-color:var(--warning, #f59e0b)}.ob-session-card.phase-error{border-left-color:var(--danger, #ef4444)}.ob-session-card.phase-completed,.ob-session-card.phase-idle{border-left-color:var(--text-muted, #64748b)}.ob-session-card.phase-idle{opacity:.6}.ob-session-card.expanded{border-radius:16px 16px 12px 12px}.ob-session-card.ob-highlight{animation:ob-highlight-pulse 1s ease-in-out 3}@keyframes ob-highlight-pulse{0%,to{box-shadow:0 2px 8px #00000026}50%{box-shadow:0 0 16px #6366f166}}.ob-session-card.ob-flash{animation:ob-flash-anim .5s ease-in-out 4}@keyframes ob-flash-anim{0%,to{background:var(--bg-card, rgba(42, 42, 62, .6))}50%{background:#6366f126}}.ob-session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.ob-phase-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:10px;font-size:12px;font-weight:600}.ob-session-time{font-size:11px;color:var(--text-muted)}.ob-session-key{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:6px;word-break:break-all}.ob-session-summary{font-size:13px;color:var(--text-secondary);margin-bottom:8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ob-session-stats{display:flex;gap:12px;flex-wrap:wrap}.ob-stat{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted)}.ob-stat svg{opacity:.7}.ob-stat-error{color:var(--danger, #ef4444)}.ob-session-detail{margin-top:12px;padding-top:12px;border-top:1px solid var(--border, rgba(148, 163, 184, .1))}.ob-detail-loading{text-align:center;padding:16px;color:var(--text-muted);font-size:13px}.ob-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ob-detail-row{font-size:12px}.ob-detail-full{grid-column:1 / -1}.ob-detail-label{color:var(--text-muted);display:block;font-size:11px;margin-bottom:2px}.ob-detail-value{color:var(--text-primary);font-size:13px}.ob-empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.ob-empty-icon{opacity:.3;margin-bottom:16px}.ob-empty-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:6px}.ob-empty-sub{font-size:13px;color:var(--text-muted)}.voice-overlay{position:fixed;inset:0;background:#000000d9;z-index:10001;display:none;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;pointer-events:none;-webkit-tap-highlight-color:transparent;user-select:none}.voice-overlay.active{display:flex;opacity:1;pointer-events:auto}.voice-overlay-hint,.continuous-center-stop,.voice-overlay-actions,.voice-overlay-stt-engine{position:absolute!important}.voice-overlay-hint{bottom:90px;height:20px;line-height:20px}.voice-overlay-stt-engine{bottom:24px;left:16px;right:16px;height:18px;line-height:18px;text-align:center;font-size:11px;color:#ffffff6b;letter-spacing:.3px;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voice-overlay-actions{bottom:90px}.continuous-center-stop{bottom:140px;height:30px}.voice-overlay.paused{background:#000000f2}.voice-overlay.paused .voice-overlay-body{filter:blur(1px);opacity:.7}.voice-overlay.paused .voice-overlay-body:after{content:"⏸";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;color:#ffffff80;pointer-events:none;z-index:10;animation:pausePulse 2s ease-in-out infinite}@keyframes pausePulse{0%,to{opacity:.5;transform:translate(-50%,-50%) scale(1)}50%{opacity:.8;transform:translate(-50%,-50%) scale(1.1)}}.voice-overlay-body{display:flex;flex-direction:column;align-items:center;gap:28px;transition:transform .3s cubic-bezier(.2,.8,.3,1)}.voice-overlay.cancelling .voice-overlay-body{transform:scale(.85)}.voice-wave-ring{position:relative;width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center}.voice-wave-ring .ring-core{width:56px;height:56px;border-radius:50%;background:var(--accent, #4a90d9);display:flex;align-items:center;justify-content:center;z-index:2;transition:background .3s}.voice-wave-ring .ring-core svg{width:26px;height:26px;fill:#fff}.voice-overlay.cancelling .voice-wave-ring .ring-core{background:#e74c3c}.voice-wave-ring .ripple{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;border:2px solid var(--accent, #4a90d9);opacity:0;animation:v-ripple 1.6s ease-out infinite}.voice-wave-ring .ripple:nth-child(2){animation-delay:.5s}.voice-wave-ring .ripple:nth-child(3){animation-delay:1s}.voice-overlay.cancelling .voice-wave-ring .ripple{border-color:#e74c3c;animation:none;opacity:0}@keyframes v-ripple{0%{transform:scale(.8);opacity:.6}to{transform:scale(1.6);opacity:0}}.voice-wave-bars{display:flex;align-items:center;justify-content:center;gap:3px;height:40px}.voice-wave-bars .bar{width:3px;border-radius:2px;background:#fff9;height:16px;transition:transform .12s ease,opacity .2s;transform:scaleY(.3);opacity:.35}.voice-wave-bars .bar.speaking{animation:v-bar .5s ease-in-out infinite alternate;opacity:.85}.voice-wave-bars .bar:nth-child(1).speaking{animation-delay:0s}.voice-wave-bars .bar:nth-child(2).speaking{animation-delay:.07s}.voice-wave-bars .bar:nth-child(3).speaking{animation-delay:.14s}.voice-wave-bars .bar:nth-child(4).speaking{animation-delay:.1s}.voice-wave-bars .bar:nth-child(5).speaking{animation-delay:.17s}.voice-wave-bars .bar:nth-child(6).speaking{animation-delay:.04s}.voice-wave-bars .bar:nth-child(7).speaking{animation-delay:.2s}.voice-wave-bars .bar:nth-child(8).speaking{animation-delay:.08s}.voice-wave-bars .bar:nth-child(9).speaking{animation-delay:.15s}.voice-wave-bars .bar:nth-child(10).speaking{animation-delay:.05s}@keyframes v-bar{0%{transform:scaleY(.4)}to{transform:scaleY(1.6)}}.voice-overlay.cancelling .voice-wave-bars .bar{animation-play-state:paused;opacity:.3}.voice-overlay-timer{font-size:15px;color:#ffffffd9;font-variant-numeric:tabular-nums;letter-spacing:1px}.voice-overlay-result{max-width:300px;min-width:220px;width:min(300px,calc(100vw - 48px));height:72px;min-height:72px;max-height:72px;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s;flex-shrink:0}.voice-overlay-result.show{opacity:1;transform:translateY(0)}.voice-overlay-result-scroll{width:100%;height:72px;max-height:72px;overflow-x:hidden;overflow-y:auto;text-align:center;font-size:16px;line-height:1.5;color:#fff;word-break:break-word;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior:contain}.voice-overlay-result-scroll::-webkit-scrollbar{display:none}.voice-overlay-result-scroll.is-status{display:flex;align-items:center;justify-content:center;overflow:hidden}.voice-overlay-result-scroll .recognizing{display:inline-flex;gap:4px;align-items:center}.voice-overlay-result-scroll .recognizing .dot{width:6px;height:6px;border-radius:50%;background:#ffffff80;animation:v-dot 1s ease-in-out infinite}.voice-overlay-result-scroll .recognizing .dot:nth-child(2){animation-delay:.2s}.voice-overlay-result-scroll .recognizing .dot:nth-child(3){animation-delay:.4s}@keyframes v-dot{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.voice-overlay-hint{height:20px;line-height:20px;font-size:13px;color:#ffffff80;left:0;right:0;text-align:center;transition:color .2s}.voice-overlay.cancelling .voice-overlay-hint{color:#fffc}.continuous-center-stop{height:40px;display:flex;justify-content:center;align-items:center}#center-stop-btn{background:none;border:none;color:#ffffffb3;font-size:14px;cursor:pointer;padding:8px 20px;letter-spacing:1px;transition:color .15s}#center-stop-btn:active{color:#ef4444}.voice-cancel-icon{width:26px;height:26px;fill:#fff}.voice-result-panel{position:fixed;inset:0;background:#0009;z-index:10002;display:none;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .25s ease;pointer-events:none;user-select:none}.voice-result-panel.active{display:flex;opacity:1;pointer-events:auto}.voice-result-card{width:300px;max-width:85vw;background:#fff;border-radius:16px;padding:24px 20px 20px;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column;align-items:center;gap:16px}.voice-result-card .result-label{font-size:12px;color:#999;margin-bottom:-8px}.voice-result-card .result-text{width:100%;min-height:48px;max-height:160px;overflow-y:auto;font-size:16px;line-height:1.6;color:#222;text-align:center;word-break:break-word}.voice-result-card .result-text .cursor-blink{display:inline-block;width:2px;height:1em;background:var(--accent, #4a90d9);margin-left:1px;vertical-align:text-bottom;animation:cursor-blink .8s steps(1) infinite}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.voice-result-card .result-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 12px;width:100%}.voice-result-card .result-actions button{display:flex;flex-direction:column;align-items:center;gap:4px;border:none;background:none;cursor:pointer;padding:8px;border-radius:12px;transition:background .2s}.voice-result-card .result-actions button:active{background:#f0f0f0}.result-actions-three{grid-template-columns:1fr 1fr auto}.result-actions-three .action-primary{background:var(--accent, #4a90d9);color:#fff;border-radius:10px;min-height:44px}.result-actions-three .action-primary:active{opacity:.8}.result-actions-three .action-primary .action-label{color:#fff}.result-actions-three .action-primary svg{color:#fff}.action-more-wrap{position:relative}.action-more-btn{background:var(--bg-tertiary, #f0f0f0)!important;border-radius:10px!important;min-height:44px;min-width:48px}.action-more-btn svg{opacity:.6}.action-more-menu{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--bg-card, #fff);border-radius:10px;box-shadow:0 4px 16px #0003;flex-direction:column;z-index:100;overflow:hidden;min-width:150px}.action-more-menu button{flex-direction:row!important;align-items:center;padding:11px 16px!important;font-size:14px;gap:8px;white-space:nowrap;color:var(--text-primary, #333)}.action-more-menu button:active{background:var(--bg-tertiary, #f0f0f0)}.action-more-menu button svg{opacity:.5;flex-shrink:0}.action-more-menu .more-menu-divider{height:1px;background:var(--border, #e0e0e0);margin:2px 12px}.quota-tag{font-size:11px;color:var(--text-secondary, #888);margin-left:auto}.voice-result-card .result-actions button .action-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px}.voice-result-card .result-actions button .action-icon.send-text{background:var(--accent, #4a90d9);color:#fff}.voice-result-card .result-actions button .action-icon.send-audio{background:#f0f0f0;color:#666}.voice-result-card .result-actions button .action-icon.cancel-act{background:#fee;color:#e74c3c}.voice-result-card .result-actions button .action-label{font-size:12px;color:#666}.result-ai-status{display:flex;align-items:center;gap:6px;font-size:12px;color:#999;padding:4px 12px;border-radius:12px;background:#f5f5f5;animation:ai-status-pulse 1.5s ease-in-out infinite}.result-ai-status.correcting{color:var(--accent, #4a90d9);background:#eef3ff}.result-ai-status.corrected{color:#16a34a;background:#f0fdf4;animation:none}.result-ai-status.accurate{color:#999;background:#f9f9f9;animation:none}.ai-correcting-icon{font-size:14px}@keyframes ai-status-pulse{0%,to{opacity:1}50%{opacity:.5}}.voice-result-card .result-text[contenteditable=true]{outline:none;border:1px dashed transparent;border-radius:8px;padding:4px 6px;transition:border-color .2s,background .2s}.voice-result-card .result-text[contenteditable=true]:focus{border-color:var(--accent, #4a90d9);background:#f8f9ff}.voice-result-card .result-text[contenteditable=true]:after{content:"✏️ 点击修改文字";display:block;font-size:12px;color:var(--accent, #4a90d9);margin-top:8px;opacity:.7}.voice-result-card .result-text[contenteditable=true]:focus:after{content:""}.observer-history-panel{position:fixed;inset:0;background:#0006;z-index:9998;display:flex;align-items:center;justify-content:center;padding:20px}.observer-history-panel .oh-card{background:#1e1e2e;border-radius:16px;width:100%;max-width:400px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #0000004d}.oh-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:600;font-size:15px;color:#e0e0e0;background:#252536;border-bottom:1px solid #333348}.oh-close{cursor:pointer;font-size:18px;color:#888;padding:4px 8px;border-radius:8px}.oh-close:hover{background:#333}.oh-list{max-height:60vh;overflow-y:auto;padding:8px;background:#1e1e2e}.observer-history-panel .oh-item{padding:10px 12px;border-radius:10px;margin-bottom:6px;background:#2a2a3c;border:1px solid #333348}.observer-history-panel .oh-item.oh-important{border-color:#fbbf24;background:#2a2520}.oh-item-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.oh-badge{font-size:10px;padding:2px 8px;border-radius:8px;background:#333348;color:#aaa}.oh-badge.important{background:#92400e;color:#fbbf24}.oh-source{font-size:11px;color:#777}.oh-time{font-size:11px;color:#555;margin-left:auto}.oh-item-text{font-size:13px;line-height:1.6;color:#d0d0d0;word-break:break-word}.result-text.correcting-wait{opacity:.5;filter:blur(1px);transition:opacity .3s,filter .3s}.result-text.correcting-wait~.result-ai-status.correcting{animation:ai-status-pulse 1.5s ease-in-out infinite}.ai-loading-dots{display:inline-flex;gap:3px;align-items:center;margin-right:2px}.ai-loading-dots span{width:5px;height:5px;border-radius:50%;background:var(--accent, #4a90d9);animation:ai-dot-bounce 1s ease-in-out infinite}.ai-loading-dots span:nth-child(2){animation-delay:.15s}.ai-loading-dots span:nth-child(3){animation-delay:.3s}@keyframes ai-dot-bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.settings-toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%) translateY(20px);padding:8px 20px;border-radius:20px;font-size:13px;color:#fff;background:#000000bf;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;z-index:10000;white-space:nowrap}.settings-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.settings-toast.error{background:#ef4444d9}.ext-toggle-switch{position:relative;display:inline-block;width:44px;height:24px;border-radius:12px;background:var(--border, #444);border:none;padding:0;cursor:pointer;transition:background .3s;flex-shrink:0}.ext-toggle-switch.on{background:var(--accent, #667eea)}.ext-toggle-switch .ext-toggle-slider{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .3s;pointer-events:none}.ext-toggle-switch.on .ext-toggle-slider{transform:translate(20px)}.model-panel-overlay{position:fixed;inset:0;background:#000000d9;z-index:9998;opacity:0;transition:opacity .2s ease;pointer-events:none}.model-panel-overlay.visible{opacity:1;pointer-events:auto}.model-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9);width:92%;max-width:520px;max-height:78vh;background:var(--bg-card, #1e293b);border:1px solid var(--border, #334155);border-radius:12px;z-index:9999;opacity:0;transition:opacity .2s ease,transform .2s ease;display:flex;flex-direction:column;overflow:hidden}.model-panel.visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.model-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--border, #334155)}.model-panel-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text, #e2e8f0)}.model-panel-header .close-btn{background:none;border:none;color:var(--text-secondary, #94a3b8);font-size:24px;cursor:pointer;padding:0;line-height:1}.model-panel-header .close-btn:hover{color:var(--text, #e2e8f0)}.model-panel-header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.model-panel-refresh-btn{background:none;border:none;color:var(--text-secondary, #94a3b8);font-size:20px;cursor:pointer;padding:0 6px;line-height:1}.model-panel-refresh-btn:hover{color:var(--accent, #667eea)}.model-list{flex:1;overflow-y:auto;padding:8px}.model-list-loading{pointer-events:none}.model-item-skeleton{display:flex;flex-direction:column;gap:8px;padding:14px 16px;margin-bottom:4px;border-radius:8px;background:#ffffff0a}.model-item-skeleton .sk-line{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f,#ffffff0f 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}.model-item-skeleton .sk-line-short{width:28%}.model-item-skeleton .sk-line-mid{width:55%}.model-item-skeleton .sk-line-long{width:82%}.model-group-title{padding:12px 12px 8px;font-size:12px;font-weight:600;color:var(--text-secondary, #94a3b8);text-transform:uppercase;letter-spacing:.5px}.model-panel-header>div:first-child{flex:1;min-width:0}.model-panel-hint{margin:4px 0 0;font-size:12px;font-weight:400;color:var(--text-secondary, #94a3b8)}.model-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;cursor:pointer;transition:background .15s ease}.model-index,.model-suggestion-index{flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-secondary, #94a3b8);background:var(--bg-hover, #334155);border-radius:6px}.model-item-body,.model-suggestion-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.model-item-id,.model-suggestion-id{font-size:11px;color:var(--text-secondary, #94a3b8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-suggestions{position:absolute;bottom:100%;left:8px;right:8px;max-height:220px;overflow-y:auto;background:var(--bg-card, #1e293b);border:1px solid var(--border, #334155);border-radius:8px;z-index:300;margin-bottom:4px;box-shadow:0 -4px 16px #00000040}.model-suggestion-item{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;color:var(--text, #e2e8f0)}.model-suggestion-item:hover{background:var(--bg-hover, #334155)}.model-suggestion-name{font-size:14px}.model-item:hover{background:var(--bg-hover, #334155)}.model-item.active{background:var(--accent-dim, rgba(102, 126, 234, .12))}.model-item.current{border:1px solid var(--accent, #667eea);box-shadow:0 0 0 1px #667eea40;background:linear-gradient(90deg,#667eea2e,#667eea0f)}.model-panel-current{flex-shrink:0;margin:0 12px 8px;padding:10px 12px;border-radius:8px;background:#667eea1f;border:1px solid rgba(102,126,234,.35)}.model-panel-current-label{font-size:11px;font-weight:600;color:var(--accent, #667eea);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.model-panel-current-label.model-panel-current-muted{color:var(--text-secondary, #94a3b8);text-transform:none;font-weight:400}.model-panel-current-name{font-size:14px;font-weight:600;color:var(--text, #e2e8f0);word-break:break-all}.model-panel-current-meta{margin-top:6px;font-size:11px;color:var(--text-secondary, #94a3b8);line-height:1.4}.model-panel-current-meta .mono{font-family:ui-monospace,monospace;font-size:10px}.model-panel-search-wrap{flex-shrink:0;padding:0 12px 8px}.model-panel-search{width:100%;box-sizing:border-box;padding:8px 12px;border-radius:8px;border:1px solid var(--border, #334155);background:var(--bg-hover, #0f172a);color:var(--text, #e2e8f0);font-size:14px;outline:none}.model-panel-search:focus{border-color:var(--accent, #667eea)}.model-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.model-current-badge{flex-shrink:0;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:var(--accent, #667eea);color:#fff}.model-item-vendor{font-size:11px;color:var(--text-secondary, #94a3b8)}.model-item-meta{display:flex;flex-direction:column;gap:2px;margin-top:4px}.model-meta-row{display:flex;gap:6px;font-size:10px;line-height:1.35;color:var(--text-secondary, #94a3b8)}.model-meta-k{flex-shrink:0;min-width:28px;opacity:.85}.model-meta-v{flex:1;min-width:0;word-break:break-all}.model-meta-v.mono{font-family:ui-monospace,monospace;font-size:10px}.model-group-head{display:flex;align-items:center;gap:8px}.model-group-label{flex:1;min-width:0}.model-group-provider-meta{margin-top:4px;padding-left:18px;font-size:10px;font-family:ui-monospace,monospace;color:var(--text-secondary, #94a3b8);word-break:break-all;line-height:1.35}.model-item{align-items:flex-start}.model-name{font-size:14px;color:var(--text, #e2e8f0)}.model-check{color:var(--accent, #667eea);font-weight:600}.model-panel-tabs-wrap{flex-shrink:0;padding:0 8px 8px;border-bottom:1px solid var(--border, #334155)}.model-provider-tabs{display:flex;gap:6px;overflow-x:auto;padding:4px 0;-webkit-overflow-scrolling:touch}.model-provider-tab{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--border, #334155);background:var(--glass-bg, rgba(30, 41, 59, .6));color:var(--text-secondary, #94a3b8);font-size:12px;cursor:pointer}.model-provider-tab.active{border-color:var(--accent, #667eea);color:var(--text-primary, #e2e8f0);background:var(--accent-dim, rgba(102, 126, 234, .15))}.model-provider-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.model-group-title-provider{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0}.model-provider-count{margin-left:auto;font-size:11px;font-weight:500;opacity:.7}.model-fav-btn{flex-shrink:0;background:none;border:none;color:var(--text-muted, #64748b);font-size:16px;cursor:pointer;padding:4px;line-height:1}.model-fav-btn.on{color:var(--warning)}.op-verdict{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:600;vertical-align:middle}.op-verdict-success{background:#22c55e33;color:#4ade80}.op-verdict-partial{background:#f59e0b33;color:#fbbf24}.op-verdict-failed{background:#ef444433;color:#f87171}.op-verdict-unknown{background:#94a3b833;color:#94a3b8}.benchmark-row.fail span:last-child{max-width:55%;text-align:right;word-break:break-word}.selection-toolbar{position:fixed;z-index:9999;display:flex;align-items:center;gap:2px;padding:3px;background:var(--bg-card, #2a2a3e);border:1px solid var(--border, rgba(148,163,184,.2));border-radius:8px;box-shadow:0 4px 16px #00000040;opacity:0;pointer-events:none;transition:opacity .12s}.selection-toolbar.visible{opacity:1;pointer-events:auto}.selection-toolbar-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:none;background:none;color:var(--text-secondary, #94a3b8);font-size:12px;border-radius:5px;cursor:pointer;white-space:nowrap;transition:all .12s}.selection-toolbar-btn:hover{background:#ffffff14;color:var(--text-primary, #e2e8f0)}.selection-toolbar-btn:active{transform:scale(.95)}.session-search-box{display:flex;align-items:center;gap:6px;padding:6px 12px;margin:4px 10px 8px;background:var(--bg-input, rgba(35,35,64,.85));border:1px solid var(--border, rgba(148,163,184,.15));border-radius:8px;transition:border-color .15s}.session-search-box:focus-within{border-color:var(--accent, #6366f1);box-shadow:0 0 0 2px #6366f126}.session-search-icon{flex-shrink:0;color:var(--text-muted, #64748b)}.session-search-input{flex:1;border:none;background:none;outline:none;font-size:13px;color:var(--text-primary, #e2e8f0)}.session-search-input::placeholder{color:var(--text-muted, #64748b)}.session-search-clear{flex-shrink:0;border:none;background:none;color:var(--text-muted, #64748b);font-size:16px;cursor:pointer;padding:0 2px;line-height:1}.session-search-clear:hover{color:var(--text-secondary, #94a3b8)}.search-result-item .session-item-content{cursor:pointer}.search-match-count{font-size:11px;color:var(--accent, #6366f1);margin-left:6px;font-weight:500}.search-match-item{display:flex;align-items:flex-start;gap:4px;margin-top:3px;font-size:11px;line-height:1.3;color:var(--text-muted, #64748b);overflow:hidden}.search-match-item .search-match-role{flex-shrink:0;font-weight:500;min-width:16px;color:var(--text-secondary, #94a3b8)}.search-match-item.user .search-match-role{color:var(--accent, #6366f1)}.search-match-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-highlight{background:#6366f140;color:var(--accent, #6366f1);border-radius:2px;padding:0 1px}.search-result-item.user .search-highlight{background:#ffffff26;color:inherit}.vql-panel .vql-row{padding:10px 0;border-bottom:1px solid #f0f0f0;font-size:13px;line-height:1.5}.vql-panel .vql-row:last-child{border-bottom:none}.vql-panel .vql-content{margin-top:4px}.vql-panel .vql-field{margin-bottom:2px}.vql-panel .vql-label{color:#888;margin-right:4px;font-size:12px}.vql-panel .vql-value{color:#333;word-break:break-all}.vql-panel .vql-processed .vql-value{color:#1890ff}.vql-panel .vql-error .vql-value{color:#f5222d}.vql-panel .vql-btn{padding:3px 10px;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer;font-size:12px;color:#333}.vql-panel .vql-btn:hover{background:#f5f5f5}.vql-panel .vql-btn:disabled{opacity:.5;cursor:not-allowed}.srv-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;margin-bottom:16px;transition:all var(--transition-normal);position:relative;overflow:visible}.srv-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent-gradient);opacity:0;transition:opacity var(--transition-normal)}.srv-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md),var(--shadow-glow);transform:translateY(-2px)}.srv-card:hover:before{opacity:1}.srv-card-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.srv-card-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.srv-status-wrapper{position:relative;flex-shrink:0}.srv-status-indicator{position:absolute;top:-2px;right:-2px;width:10px;height:10px;border-radius:50%;border:2px solid var(--bg-solid);z-index:1}.srv-status-online{background:var(--success);box-shadow:0 0 6px var(--success)}.srv-status-offline{background:var(--text-muted)}.srv-card-icon{width:44px;height:44px;border-radius:var(--radius-md);background:var(--bg-input);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:20px;flex-shrink:0}.srv-card-info{flex:1;min-width:0}.srv-card-name{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.srv-name-edit-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;opacity:0;transition:opacity .2s;padding:2px;display:flex;align-items:center}.srv-card:hover .srv-name-edit-btn{opacity:1}.srv-card-addr{font-size:12px;color:var(--text-secondary);font-family:SF Mono,Monaco,Consolas,monospace}.srv-card-addr-row{font-size:12px;font-family:SF Mono,Monaco,Consolas,monospace}.srv-addr-user{color:var(--accent)}.srv-addr-sep{color:var(--text-secondary);opacity:.5}.srv-addr-host{color:var(--text-secondary)}.srv-addr-port{color:var(--text-secondary);opacity:.6}.srv-action-disabled{opacity:.3!important;cursor:not-allowed!important}.srv-quick-actions{display:flex;gap:8px;flex-wrap:wrap;padding:8px 12px 12px;border-top:1px solid var(--border);margin-top:4px}.srv-action-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;white-space:nowrap}.srv-action-label{font-size:11px}.srv-action-btn:hover{background:var(--bg-card-hover);color:var(--accent);border-color:var(--accent)}.srv-action-btn:active{transform:scale(.92)}.srv-action-dropdown,.srv-more-btn{position:relative}.srv-dropdown-menu{position:absolute;top:calc(100% + 6px);right:0;left:auto;min-width:160px;max-width:calc(100vw - 32px);background:color-mix(in srgb,var(--bg-card) 98%,white);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-8px);transition:all var(--transition-fast);z-index:9999}.srv-action-dropdown:hover .srv-dropdown-menu,.srv-dropdown-menu:hover{opacity:1;visibility:visible;transform:translateY(0)}.srv-dropdown-item{width:100%;padding:10px 14px;border:none;background:none;color:var(--text-primary);font-size:13px;text-align:left;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background var(--transition-fast)}.srv-dropdown-item:hover{background:var(--bg-card-hover)}.srv-dropdown-item:first-child{border-radius:var(--radius-md) var(--radius-md) 0 0}.srv-dropdown-item:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}.srv-dropdown-divider{height:1px;background:var(--border);margin:4px 0;padding:0}.srv-dropdown-danger{color:var(--danger)}.srv-dropdown-danger:hover{background:#ef44441a}.srv-card-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-light)}.srv-stat-item{display:flex;flex-direction:column;gap:6px}.srv-stat-header{display:flex;align-items:center;justify-content:space-between;font-size:12px}.srv-stat-label{color:var(--text-secondary);display:flex;align-items:center;gap:4px}.srv-stat-value{font-weight:600;font-size:13px}.srv-stat-bar{height:4px;background:var(--bg-input);border-radius:2px;overflow:hidden}.srv-stat-bar-fill{height:100%;border-radius:2px;transition:width var(--transition-slow)}.srv-stat-uptime{grid-column:span 2;flex-direction:row;justify-content:space-between;align-items:center}.srv-card-offline{margin-top:14px;padding-top:14px;border-top:1px solid var(--border-light);text-align:center}.srv-offline-text{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:12px}.srv-checkbox{display:flex;align-items:center;cursor:pointer;flex-shrink:0}.srv-checkbox input{display:none}.srv-checkbox-box{width:20px;height:20px;border:2px solid var(--border);border-radius:6px;background:var(--bg-input);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.srv-checkbox-box:after{content:"";width:10px;height:10px;background:var(--accent);border-radius:3px;transform:scale(0);transition:transform var(--transition-fast)}.srv-checkbox-checked .srv-checkbox-box{border-color:var(--accent);background:var(--accent)}.srv-checkbox-checked .srv-checkbox-box:after{transform:scale(1);background:#fff}.srv-monitor-panel{padding:16px 0}.srv-monitor-header{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:16px}.srv-monitor-icon{width:56px;height:56px;border-radius:var(--radius-lg);background:var(--bg-input);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:24px;flex-shrink:0}.srv-monitor-info{flex:1;min-width:0}.srv-monitor-name{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.srv-monitor-detail{font-size:13px;color:var(--text-secondary);font-family:SF Mono,Monaco,Consolas,monospace;margin-bottom:8px}.srv-monitor-tags{display:flex;gap:8px;flex-wrap:wrap}.srv-tag{padding:3px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:600;background:var(--bg-input);color:var(--text-secondary)}.srv-tag-success{background:#10b98126;color:var(--success)}.srv-monitor-metrics{display:grid;gap:12px;margin-bottom:16px}.srv-metric-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;transition:all var(--transition-normal)}.srv-metric-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.srv-metric-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.srv-metric-title{font-size:14px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:6px}.srv-metric-value{font-size:20px;font-weight:700}.srv-metric-bar{height:6px;background:var(--bg-input);border-radius:3px;overflow:hidden;margin-bottom:10px}.srv-metric-bar-fill{height:100%;border-radius:3px;transition:width var(--transition-slow)}.srv-metric-detail{display:flex;justify-content:space-between;font-size:12px}.srv-metric-label{color:var(--text-secondary)}.srv-metric-number{font-weight:600;color:var(--text-primary)}.srv-metric-small{display:flex;align-items:center;gap:16px}.srv-metric-icon{width:48px;height:48px;border-radius:var(--radius-md);background:var(--bg-input);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0}.srv-metric-content{flex:1}.srv-monitor-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.srv-monitor-actions:has(.srv-monitor-btn-ai){grid-template-columns:repeat(4,1fr)}.srv-monitor-btn{height:48px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all var(--transition-normal)}.srv-monitor-btn:hover{background:var(--bg-card-hover);border-color:var(--accent)}.srv-monitor-btn:active{transform:scale(.97)}.srv-monitor-btn-primary{background:var(--accent-gradient);border-color:transparent;color:#fff}.srv-monitor-btn-primary:hover{box-shadow:var(--shadow-md),var(--shadow-glow)}.srv-monitor-info-bar{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px;flex-wrap:wrap}.srv-info-bar-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.srv-info-bar-item svg{flex-shrink:0}.srv-info-label{color:var(--text-muted);font-size:11px}.srv-info-value{color:var(--text-primary);font-weight:600;font-family:SF Mono,Monaco,Consolas,monospace}.srv-monitor-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.srv-cpu-circle{width:120px;height:120px;border-radius:50%;margin:10px auto;position:relative;display:flex;align-items:center;justify-content:center}.srv-cpu-circle-inner{width:100px;height:100px;border-radius:50%;background:var(--bg-card);display:flex;flex-direction:column;align-items:center;justify-content:center}.srv-cpu-text{font-size:24px;font-weight:700;color:var(--text-primary)}.srv-cpu-cores{font-size:11px;color:var(--text-secondary)}.srv-net-stats{display:flex;flex-direction:column;gap:10px}.srv-net-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary)}.srv-net-item svg{flex-shrink:0}.srv-monitor-section{margin-bottom:16px}.srv-section-title{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:10px}.srv-disk-list{display:grid;gap:10px}.srv-disk-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;word-break:break-all;overflow-wrap:break-word}.srv-disk-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.srv-disk-mount{font-size:13px;font-weight:600;color:var(--text-primary);word-break:break-all;overflow-wrap:break-word}.srv-disk-percent{font-size:13px;font-weight:700}.srv-disk-detail{font-size:11px;color:var(--text-secondary);margin-top:6px}.srv-proc-table{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.srv-proc-header{display:grid;grid-template-columns:60px 60px 60px 60px 1fr;gap:8px;padding:10px 12px;background:var(--bg-input);border-bottom:1px solid var(--border);font-size:11px;font-weight:600;color:var(--text-secondary)}.srv-proc-row{display:grid;grid-template-columns:60px 60px 60px 60px 1fr;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border-light);font-size:12px;color:var(--text-primary);transition:background var(--transition-fast)}.srv-proc-row:last-child{border-bottom:none}.srv-proc-row:hover{background:var(--bg-card-hover)}.srv-proc-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srv-proc-pid{color:var(--text-secondary);font-family:SF Mono,Monaco,Consolas,monospace}.srv-proc-cpu{font-weight:600}.srv-proc-mem,.srv-proc-cmd{color:var(--text-secondary)}@media(max-width:480px){.srv-card-stats,.srv-monitor-actions{grid-template-columns:1fr}}.srv-metric-clickable{cursor:pointer}.srv-metric-clickable:active{transform:scale(.98)}.srv-metric-clickable:after{content:"›";position:absolute;top:12px;right:14px;font-size:18px;color:var(--text-muted);opacity:0;transition:opacity .2s}.srv-metric-clickable:hover:after{opacity:1}.srv-metric-card{position:relative}.srv-section-clickable{cursor:pointer}.srv-drilldown-hint{font-size:11px;color:var(--text-muted);margin-left:4px}.srv-drilldown-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;padding:16px}.srv-drilldown-overlay.srv-drilldown-active{opacity:1;visibility:visible}.srv-drilldown-container{background:var(--bg-card, #1e293b);border:1px solid var(--border, #334155);border-radius:var(--radius-lg, 12px);width:100%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 25px 50px #00000080;transform:translateY(20px) scale(.95);transition:transform .25s}.srv-drilldown-active .srv-drilldown-container{transform:translateY(0) scale(1)}.srv-drilldown-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border, #334155);flex-shrink:0}.srv-drilldown-title{font-size:16px;font-weight:700;color:var(--text-primary)}.srv-drilldown-close{width:32px;height:32px;border:none;background:var(--bg-input, #2a2a4a);border-radius:var(--radius-sm, 6px);color:var(--text-secondary);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.srv-drilldown-close:hover{background:var(--danger);color:#fff}.srv-drilldown-body{padding:16px 20px;overflow-y:auto;flex:1}.srv-drilldown-loading{text-align:center;padding:40px;color:var(--text-muted)}.srv-drilldown-empty{text-align:center;padding:30px;color:var(--text-muted);font-size:13px}.srv-drilldown-cores{display:grid;gap:10px}.srv-drilldown-core{background:var(--bg-input, #2a2a4a);border-radius:var(--radius-sm, 8px);padding:12px 14px}.srv-core-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:13px}.srv-core-label{font-weight:600;color:var(--text-primary)}.srv-core-usage{font-weight:700;font-size:15px}.srv-core-details{display:flex;gap:12px;font-size:11px;color:var(--text-muted);margin-top:6px}.srv-drilldown-mem{display:grid;gap:16px}.srv-mem-section-title{font-size:14px;font-weight:700;color:var(--text-primary);margin-bottom:10px}.srv-mem-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.srv-mem-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);background:var(--bg-input, #2a2a4a);padding:8px 10px;border-radius:var(--radius-sm, 6px)}.srv-mem-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.srv-drilldown-disks{display:grid;gap:10px;margin-bottom:16px}.srv-drilldown-disk{background:var(--bg-input, #2a2a4a);border-radius:var(--radius-sm, 8px);padding:12px 14px}.srv-disk-mount-detail{font-weight:700;color:var(--accent);font-family:SF Mono,Monaco,Consolas,monospace}.srv-disk-meta{font-size:11px;color:var(--text-muted);margin-bottom:8px}.srv-drilldown-topdirs{margin-top:8px}.srv-topdir-item{display:flex;justify-content:space-between;padding:8px 12px;background:var(--bg-input, #2a2a4a);border-radius:var(--radius-sm, 6px);font-size:12px;color:var(--text-secondary);margin-bottom:4px}.srv-topdir-size{font-weight:700;color:var(--text-primary);font-family:SF Mono,Monaco,Consolas,monospace;min-width:70px}.srv-drilldown-net{display:grid;gap:10px}.srv-drilldown-netif{background:var(--bg-input, #2a2a4a);border-radius:var(--radius-sm, 8px);padding:14px}.srv-netif-name{font-weight:700;color:var(--accent);font-family:SF Mono,Monaco,Consolas,monospace}.srv-netif-stats{display:grid;gap:6px;margin-top:10px}.srv-netif-row{display:flex;justify-content:space-between;font-size:13px;color:var(--text-secondary)}.srv-drilldown-procs{overflow:hidden;border-radius:var(--radius-sm, 8px)}.srv-proc-header-4col{display:grid!important;grid-template-columns:60px 60px 60px 1fr!important;gap:8px!important;padding:10px 12px!important;background:var(--bg-input)!important;border-bottom:1px solid var(--border)!important;font-size:11px!important;font-weight:600!important;color:var(--text-secondary)!important}.srv-proc-row-4col{display:grid!important;grid-template-columns:60px 60px 60px 1fr!important;gap:8px!important;padding:10px 12px!important;border-bottom:1px solid var(--border-light)!important;font-size:12px!important;color:var(--text-primary)!important}.srv-conn-summary{text-align:center;padding:16px;background:var(--bg-input, #2a2a4a);border-radius:var(--radius-sm, 8px);margin-bottom:16px}.srv-conn-total{font-size:13px;color:var(--text-secondary)}.srv-conn-total strong{font-size:24px;color:var(--accent)}.srv-conn-sub{font-size:12px;color:var(--text-muted);margin-top:4px}.srv-conn-states{display:grid;gap:8px;margin-bottom:16px}.srv-conn-state{background:var(--bg-input, #2a2a4a);border-radius:var(--radius-sm, 6px);padding:10px 12px}.srv-conn-state small{font-weight:400;opacity:.7}.srv-conn-detail-section{margin-bottom:12px}.srv-conn-detail-list{background:var(--bg-input, #2a2a4a);border-radius:var(--radius-sm, 6px);overflow:hidden}.srv-conn-detail-item{display:flex;justify-content:space-between;padding:6px 10px;font-size:11px;font-family:SF Mono,Monaco,Consolas,monospace;color:var(--text-secondary);border-bottom:1px solid var(--border-light, #1e293b);gap:8px}.srv-conn-detail-item:last-child{border-bottom:none}.srv-conn-detail-more{padding:6px 10px;font-size:11px;color:var(--text-muted);text-align:center}@media(max-width:640px){.srv-mem-breakdown{grid-template-columns:1fr}.srv-proc-header-4col,.srv-proc-row-4col{grid-template-columns:50px 50px 50px 1fr!important;font-size:11px!important}}.ssh-config-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.ssh-config-item{padding:14px;background:var(--bg-input);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:6px}.ssh-config-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.ssh-config-value{font-size:14px;font-weight:600;color:var(--text-primary)}.ssh-config-value-safe{color:var(--success)}.ssh-config-value-warning{color:var(--warning)}.ssh-config-value-danger{color:var(--danger)}.ssh-hosts-editors{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.ssh-hosts-editor{display:flex;flex-direction:column;gap:8px}.ssh-hosts-label{font-size:13px;font-weight:600;color:var(--text-primary)}.ssh-hosts-textarea{width:100%;min-height:120px;padding:12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;resize:vertical;transition:border-color var(--transition-fast)}.ssh-hosts-textarea:focus{outline:none;border-color:var(--accent)}.ssh-users-list{display:grid;gap:8px}.ssh-user-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-input);border-radius:var(--radius-sm)}.ssh-user-info{display:flex;align-items:center;gap:10px}.ssh-user-name{font-size:14px;font-weight:600;color:var(--text-primary)}.ssh-user-shell{font-size:11px;color:var(--text-muted);font-family:SF Mono,Monaco,Consolas,monospace}.ssh-user-keys{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.ssh-user-keys svg{color:var(--accent)}.ssh-auth-logs{display:grid;gap:6px;max-height:400px;overflow-y:auto}.ssh-log-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-input);border-radius:var(--radius-sm);font-size:12px}.ssh-log-item.ssh-log-success{border-left:3px solid var(--success)}.ssh-log-item.ssh-log-failed{border-left:3px solid var(--danger)}.ssh-log-item.ssh-log-invalid{border-left:3px solid var(--warning)}.ssh-log-status{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ssh-log-success .ssh-log-status{background:var(--success)}.ssh-log-failed .ssh-log-status{background:var(--danger)}.ssh-log-invalid .ssh-log-status{background:var(--warning)}.ssh-log-user{font-weight:600;color:var(--text-primary);min-width:80px}.ssh-log-ip{color:var(--text-secondary);font-family:SF Mono,Monaco,Consolas,monospace;min-width:100px}.ssh-log-method{color:var(--text-muted);font-size:11px;min-width:60px}.ssh-config-form{display:flex;flex-direction:column;gap:16px}.ssh-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.ssh-form-group{display:flex;flex-direction:column;gap:6px}.ssh-form-full{grid-column:span 2}.ssh-form-label{font-size:13px;font-weight:600;color:var(--text-primary)}.ssh-form-input,.ssh-form-select{padding:10px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:border-color var(--transition-fast)}.ssh-form-input:focus,.ssh-form-select:focus{outline:none;border-color:var(--accent)}.ssh-form-hint{font-size:11px;color:var(--text-muted)}.ssh-form-actions{display:flex;gap:10px}.ssh-btn{height:44px;padding:0 20px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all var(--transition-normal)}.ssh-btn:hover{background:var(--bg-card-hover);border-color:var(--accent)}.ssh-btn-primary{background:var(--accent-gradient);border-color:transparent;color:#fff}.ssh-btn-primary:hover{box-shadow:var(--shadow-md),var(--shadow-glow)}.ssh-btn-danger{background:#ef44441a;border-color:var(--danger);color:var(--danger)}.ssh-btn-danger:hover{background:#ef444433}.ssh-loading{text-align:center;padding:20px;color:var(--text-muted);font-size:13px}@media(max-width:640px){.ssh-config-overview,.ssh-hosts-editors,.ssh-form-grid{grid-template-columns:1fr}.ssh-form-full{grid-column:span 1}.ssh-form-actions{flex-direction:column}.ssh-btn{width:100%}}.fw-section{margin-bottom:16px}.fw-section-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.fw-section-title{font-size:16px;font-weight:600;color:var(--text-primary);flex:1}.fw-refresh-btn{width:32px;height:32px;border:none;background:var(--bg-input);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.fw-refresh-btn:hover{background:var(--bg-card-hover);color:var(--accent)}.fw-loading{text-align:center;padding:20px;color:var(--text-muted);font-size:13px}.fw-status-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.fw-status-info{flex:1;display:flex;align-items:center;gap:12px}.fw-status-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:24px}.fw-status-icon.active{background:#10b98126;color:var(--success)}.fw-status-icon.inactive{background:#ef444426;color:var(--danger)}.fw-status-details{flex:1}.fw-status-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.fw-status-type{font-size:12px;color:var(--text-secondary);text-transform:uppercase;font-weight:600}.fw-status-toggle{padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all var(--transition-normal)}.fw-status-toggle:hover{background:var(--bg-card-hover);border-color:var(--accent)}.fw-listening-ports{display:flex;flex-direction:column;gap:8px}.fw-port-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}.fw-port-info{display:flex;align-items:center;gap:10px;flex:1}.fw-port-number{font-weight:700;color:var(--accent);font-size:16px;min-width:50px}.fw-port-proto{padding:2px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:600;background:#3b82f626;color:var(--info);text-transform:uppercase}.fw-port-process{color:var(--text-secondary);font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px}.fw-rules-list{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.fw-rule-item{display:grid;grid-template-columns:40px 80px 120px 100px 1fr 40px;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border-light);font-size:13px;transition:background var(--transition-fast)}.fw-rule-item:last-child{border-bottom:none}.fw-rule-item:hover{background:var(--bg-card-hover)}.fw-rule-num{color:var(--text-muted);font-weight:600}.fw-rule-action{font-weight:700;text-transform:uppercase;font-size:11px;padding:3px 8px;border-radius:var(--radius-sm)}.fw-rule-action.ALLOW{background:#10b98126;color:var(--success)}.fw-rule-action.DENY,.fw-rule-action.DROP,.fw-rule-action.REJECT{background:#ef444426;color:var(--danger)}.fw-rule-from,.fw-rule-to{color:var(--text-primary);font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px}.fw-rule-comment{color:var(--text-secondary);font-size:12px}.fw-rule-delete{width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.fw-rule-delete:hover{background:#ef44441a;color:var(--danger)}.fw-rules-header{display:grid;grid-template-columns:40px 80px 120px 100px 1fr 40px;gap:12px;padding:10px 16px;background:var(--bg-input);border-bottom:1px solid var(--border);font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.fw-rule-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px}.fw-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.fw-form-group{display:flex;flex-direction:column;gap:6px}.fw-form-full{grid-column:span 2}.fw-form-label{font-size:13px;font-weight:600;color:var(--text-primary)}.fw-form-input,.fw-form-select{padding:10px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:border-color var(--transition-fast)}.fw-form-input:focus,.fw-form-select:focus{outline:none;border-color:var(--accent)}.fw-form-actions{display:flex;gap:10px}.fw-btn{height:44px;padding:0 20px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all var(--transition-normal)}.fw-btn:hover{background:var(--bg-card-hover);border-color:var(--accent)}.fw-btn-primary{background:var(--accent-gradient);border-color:transparent;color:#fff}.fw-btn-primary:hover{box-shadow:var(--shadow-md),var(--shadow-glow)}@media(max-width:640px){.fw-form-grid{grid-template-columns:1fr}.fw-form-full{grid-column:span 1}.fw-form-actions{flex-direction:column}.fw-btn{width:100%}.fw-rule-item,.fw-rules-header{grid-template-columns:30px 60px 1fr 30px;gap:8px;font-size:12px}.fw-rule-from,.fw-rule-to,.fw-rule-comment{display:none}}
