.form-field{position:relative;margin-bottom:var(--space-lg)}.form-field:last-child{margin-bottom:0}.form-label{display:flex;align-items:center;gap:var(--space-sm);font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-sm);transition:color var(--transition-fast)}.form-label .icon{font-size:16px}.form-label .required-mark{color:var(--error);font-weight:600;margin-left:2px}.form-label .required-badge{font-size:10px;padding:2px 6px;background:var(--error-bg);color:var(--error);border-radius:var(--radius-sm);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.form-field.focused .form-label{color:var(--accent)}.form-field.valid .form-label{color:var(--success)}.form-field.invalid .form-label{color:var(--error)}.form-input-wrapper{position:relative;display:flex;align-items:center}.form-input,.settings-input,.settings-input-modern{width:100%;padding:12px 44px 12px 16px;background:var(--bg-tertiary);border:2px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-size:14px;font-family:inherit;transition:all .2s ease}.form-input::placeholder,.settings-input-modern::placeholder,.settings-input::placeholder{color:var(--text-muted)}.form-field.focused .form-input,.form-input:focus,.settings-input-modern:focus,.settings-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);background:var(--bg-secondary)}.form-field.valid .form-input,.form-input.valid,.settings-input-modern.valid,.settings-input.valid{border-color:var(--success);box-shadow:0 0 0 3px var(--success-bg)}.form-field.invalid .form-input,.form-input.error,.form-input.invalid,.settings-input-modern.error,.settings-input-modern.invalid,.settings-input.error,.settings-input.invalid{border-color:var(--error);box-shadow:0 0 0 3px var(--error-bg);animation:shake .3s ease}.form-field.warning .form-input,.form-input.warning,.settings-input-modern.warning,.settings-input.warning{border-color:var(--warning);box-shadow:0 0 0 3px var(--warning-bg)}.form-input:disabled,.settings-input-modern:disabled,.settings-input:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-tertiary)}.validation-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-family:Material Symbols Rounded;font-size:20px;opacity:0;transition:all .2s ease;pointer-events:none}.form-input-wrapper.has-toggle .validation-icon{right:44px}.form-field.valid .validation-icon,.form-input-wrapper.valid .validation-icon{opacity:1;color:var(--success)}.form-field.valid .validation-icon:before,.form-input-wrapper.valid .validation-icon:before{content:"check_circle"}.form-field.invalid .validation-icon,.form-input-wrapper.invalid .validation-icon{opacity:1;color:var(--error)}.form-field.invalid .validation-icon:before,.form-input-wrapper.invalid .validation-icon:before{content:"error"}.form-field.warning .validation-icon,.form-input-wrapper.warning .validation-icon{opacity:1;color:var(--warning)}.form-field.warning .validation-icon:before,.form-input-wrapper.warning .validation-icon:before{content:"warning"}.form-feedback{display:flex;align-items:flex-start;gap:6px;margin-top:var(--space-sm);padding:8px 12px;border-radius:var(--radius-sm);font-size:12px;line-height:1.4;opacity:0;max-height:0;overflow:hidden;transition:all .25s ease}.form-feedback .icon{font-size:14px;flex-shrink:0;margin-top:1px}.form-feedback.visible{opacity:1;max-height:60px}.form-feedback.error{background:var(--error-bg);color:var(--error);border:1px solid rgba(239,68,68,.3)}.form-feedback.success{background:var(--success-bg);color:var(--success);border:1px solid rgba(16,185,129,.3)}.form-feedback.warning{background:var(--warning-bg);color:var(--warning);border:1px solid rgba(234,179,8,.3)}.form-feedback.info{background:var(--info-bg);color:var(--info);border:1px solid rgba(59,130,246,.3)}.form-hint{display:flex;align-items:center;gap:4px;margin-top:6px;font-size:11px;color:var(--text-muted)}.form-hint .icon{font-size:12px}.char-counter{position:absolute;right:12px;bottom:-20px;font-size:11px;color:var(--text-muted);transition:color .2s ease}.char-counter.warning{color:var(--warning)}.char-counter.danger{color:var(--error);font-weight:600}.password-strength{display:flex;gap:4px;margin-top:var(--space-sm)}.password-strength-bar{flex:1 1;height:4px;background:var(--border);border-radius:2px;transition:all .3s ease}.password-strength.weak .password-strength-bar:first-child{background:var(--error)}.password-strength.fair .password-strength-bar:nth-child(-n+2){background:var(--warning)}.password-strength.good .password-strength-bar:nth-child(-n+3){background:var(--info)}.password-strength.strong .password-strength-bar{background:var(--success)}.password-strength-text{font-size:11px;margin-top:4px;color:var(--text-muted)}.password-strength.weak .password-strength-text{color:var(--error)}.password-strength.fair .password-strength-text{color:var(--warning)}.password-strength.good .password-strength-text{color:var(--info)}.password-strength.strong .password-strength-text{color:var(--success)}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-4px)}40%{transform:translateX(4px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}@keyframes pulse-success{0%{box-shadow:0 0 0 0 rgba(16,185,129,.4)}70%{box-shadow:0 0 0 8px rgba(16,185,129,0)}to{box-shadow:0 0 0 0 rgba(16,185,129,0)}}@keyframes pulse-error{0%{box-shadow:0 0 0 0 rgba(239,68,68,.4)}70%{box-shadow:0 0 0 8px rgba(239,68,68,0)}to{box-shadow:0 0 0 0 rgba(239,68,68,0)}}.form-input.pulse-success{animation:pulse-success .5s ease}.form-input.pulse-error{animation:pulse-error .5s ease}.btn-submit{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;background:linear-gradient(135deg,var(--accent) 0,var(--accent-hover) 100%);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease;overflow:hidden}.btn-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px rgba(249,115,22,.3)}.btn-submit:active:not(:disabled){transform:translateY(0)}.btn-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-submit.loading{pointer-events:none}.btn-submit.loading .btn-text{opacity:0}.btn-submit.loading .btn-spinner{display:block}.btn-spinner{display:none;position:absolute;width:20px;height:20px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.btn-submit.success{background:var(--success)}.btn-submit.success .btn-text:before{content:"check";font-family:Material Symbols Rounded;margin-right:8px}.btn-submit.error{background:var(--error);animation:shake .3s ease}@media (max-width:768px){.form-input,.settings-input,.settings-input-modern{padding:14px 44px 14px 16px;font-size:16px}.form-label{font-size:14px}.form-feedback{font-size:13px;padding:10px 14px}.btn-submit{padding:16px 24px;font-size:16px}}[data-theme=light] .form-input:focus,[data-theme=light] .settings-input-modern:focus,[data-theme=light] .settings-input:focus{background:var(--bg-primary)}[data-theme=light] .form-feedback.error{border-color:rgba(220,38,38,.3)}[data-theme=light] .form-feedback.success{border-color:rgba(5,150,105,.3)}[data-theme=light] .btn-submit{box-shadow:0 2px 10px rgba(234,88,12,.25)}.chat-settings-popup{position:absolute;bottom:calc(100% + 8px);right:0;width:320px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:var(--z-dropdown);display:none;flex-direction:column;overflow:hidden}.chat-settings-popup.active{display:flex;animation:popupSlideUp .2s ease}@keyframes popupSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-settings-popup .chat-settings-header{display:flex;align-items:center;gap:8px;padding:12px 14px;background:var(--bg-tertiary);border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--text)}.chat-settings-popup .chat-settings-header .icon{color:var(--accent);font-size:18px}.chat-settings-popup .chat-settings-body{padding:12px 14px}.chat-setting-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.chat-setting-item:last-child{border-bottom:none}.chat-setting-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text)}.chat-setting-label .icon{color:var(--text-tertiary)}.chat-setting-value{display:flex;align-items:center;gap:6px}.chat-setting-input{padding:6px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:12px;font-family:var(--font-mono);width:140px}.chat-setting-input:focus{outline:none;border-color:var(--accent)}.chat-setting-input.small{width:50px;text-align:center}.chat-setting-btn{padding:6px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-setting-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.chat-setting-select{padding:6px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:12px;cursor:pointer}.chat-setting-select:focus{outline:none;border-color:var(--accent)}.chat-setting-suffix{font-size:11px;color:var(--text-tertiary)}.toggle-switch.small{width:32px;height:18px}.toggle-switch.small .toggle-slider:before{width:12px;height:12px}.toggle-switch.small input:checked+.toggle-slider:before{transform:translateX(14px)}.chat-settings-popup .chat-settings-footer{padding:10px 14px;border-top:1px solid var(--border);background:var(--bg-tertiary)}.chat-settings-save{width:100%;padding:8px 14px;background:var(--accent);border:none;border-radius:var(--radius-sm);color:#fff;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .2s ease}.chat-settings-save:hover{background:var(--accent-hover)}.chat-settings-popover{position:absolute;bottom:calc(100% + 8px);right:0;width:340px;max-height:480px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:var(--z-dropdown);display:none;flex-direction:column;overflow:hidden;animation:popoverSlideUp .2s ease}.chat-settings-popover.active{display:flex}@keyframes popoverSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-settings-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-tertiary)}.chat-settings-header h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text);margin:0}.chat-settings-header h3 .icon{color:var(--accent)}.chat-settings-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.chat-settings-close:hover{background:var(--border);color:var(--text)}.chat-settings-body{padding:16px;overflow-y:auto;flex:1 1}.chat-settings-section{margin-bottom:20px}.chat-settings-section:last-child{margin-bottom:0}.chat-settings-section-title{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.chat-settings-section-title .icon{font-size:14px;color:var(--accent)}.chat-settings-dir-input{display:flex;gap:8px;align-items:center}.chat-settings-dir-input input{flex:1 1;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-size:13px;font-family:var(--font-mono);transition:all var(--transition-fast)}.chat-settings-dir-input input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.chat-settings-dir-input input::placeholder{color:var(--text-muted)}.chat-settings-browse-btn{padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.chat-settings-browse-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.chat-settings-permissions{display:flex;flex-direction:column;gap:6px}.chat-settings-permission{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.chat-settings-permission.selected,.chat-settings-permission:hover{border-color:var(--accent);background:var(--accent-muted)}.chat-settings-permission input{display:none}.chat-settings-permission-icon{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-settings-permission-icon.safe{background:var(--success-bg);color:var(--success)}.chat-settings-permission-icon.info{background:var(--info-bg);color:var(--info)}.chat-settings-permission-icon.warning{background:var(--warning-bg);color:var(--warning)}.chat-settings-permission-icon.danger{background:var(--error-bg);color:var(--error)}.chat-settings-permission-text{flex:1 1;min-width:0}.chat-settings-permission-text strong{display:block;font-size:13px;font-weight:500;color:var(--text);margin-bottom:2px}.chat-settings-permission-text span{font-size:11px;color:var(--text-tertiary)}.chat-settings-permission-check{width:18px;height:18px;border-radius:var(--radius-full);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.chat-settings-permission.selected .chat-settings-permission-check{background:var(--accent);border-color:var(--accent)}.chat-settings-permission.selected .chat-settings-permission-check .icon{color:#fff;font-size:12px}.chat-settings-toggles{display:flex;flex-direction:column;gap:8px}.chat-settings-toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.chat-settings-toggle:hover{border-color:var(--border-strong)}.chat-settings-toggle-text{display:flex;align-items:center;gap:10px}.chat-settings-toggle-text .icon{color:var(--text-tertiary);font-size:18px}.chat-settings-toggle-text span{font-size:13px;color:var(--text)}.chat-settings-switch{position:relative;width:36px;height:20px}.chat-settings-switch input{opacity:0;width:0;height:0}.chat-settings-switch-slider{cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--border)}.chat-settings-switch-slider,.chat-settings-switch-slider:before{position:absolute;border-radius:var(--radius-full);transition:all var(--transition-fast)}.chat-settings-switch-slider:before{content:"";height:14px;width:14px;left:3px;bottom:3px;background:#fff}.chat-settings-switch input:checked+.chat-settings-switch-slider{background:var(--accent)}.chat-settings-switch input:checked+.chat-settings-switch-slider:before{transform:translateX(16px)}.chat-settings-footer{padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-tertiary)}.chat-settings-save-btn{width:100%;padding:10px 16px;background:var(--accent);border:none;border-radius:var(--radius-md);color:#fff;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all var(--transition-fast)}.chat-settings-save-btn:hover{background:var(--accent-hover)}.chat-settings-save-btn:active{transform:scale(.98)}.chat-settings-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.chat-settings-btn:hover{background:var(--bg-tertiary);color:var(--accent)}.chat-settings-btn.active{color:var(--accent);background:var(--accent-muted)}.p2p-panel{position:fixed;top:0;right:0;width:380px;height:100vh;background:var(--bg-secondary);border-left:1px solid var(--border);z-index:var(--z-modal);display:none;flex-direction:column;transform:translateX(100%);transition:transform .3s ease}.p2p-panel.active{display:flex;transform:translateX(0)}.p2p-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:calc(var(--z-modal) - 1);display:none;opacity:0;transition:opacity .3s ease}.p2p-panel-overlay.active{display:block;opacity:1}.p2p-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg-tertiary)}.p2p-panel-header h2{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:var(--text);margin:0}.p2p-panel-header h2 .icon{color:var(--accent)}.p2p-panel-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.p2p-panel-close:hover{background:var(--border);color:var(--text)}.p2p-panel-body{flex:1 1;overflow-y:auto;padding:20px}.p2p-instance-card{background:var(--accent);border-radius:var(--radius-lg);padding:16px;margin-bottom:20px;color:#fff}.p2p-instance-card .instance-row{display:flex;align-items:center;gap:12px}.p2p-instance-card .instance-avatar{width:44px;height:44px;background:hsla(0,0%,100%,.2);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.p2p-instance-card .instance-avatar .icon{font-size:24px}.p2p-instance-card .instance-info{flex:1 1}.p2p-instance-card .instance-name{font-weight:600;font-size:15px;margin-bottom:4px}.p2p-instance-card .instance-meta{font-size:12px;opacity:.85;display:flex;align-items:center;gap:6px}.p2p-instance-card .instance-id{font-size:10px;font-family:var(--font-mono);opacity:.7;margin-top:10px;padding-top:10px;border-top:1px solid hsla(0,0%,100%,.2)}.p2p-section{margin-bottom:24px}.p2p-section-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.p2p-section-title .icon{font-size:16px;color:var(--accent)}.p2p-scan-btn{width:100%;padding:12px 16px;background:var(--accent);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all var(--transition-fast)}.p2p-scan-btn:hover{background:var(--accent-hover)}.p2p-scan-btn:active{background:var(--accent-dim)}.p2p-scan-btn .icon.spinning{animation:spin 1s linear infinite}.p2p-peers-list{display:flex;flex-direction:column;gap:8px}.p2p-peer-card{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.p2p-peer-card:hover{border-color:var(--accent)}.p2p-peer-status{width:10px;height:10px;border-radius:var(--radius-full);background:var(--text-muted)}.p2p-peer-status.online{background:var(--success)}.p2p-peer-status.offline{background:var(--error)}.p2p-peer-info{flex:1 1;min-width:0}.p2p-peer-name{font-weight:500;font-size:13px;color:var(--text);margin-bottom:2px}.p2p-peer-address{font-size:11px;font-family:var(--font-mono);color:var(--text-tertiary)}.p2p-peer-actions{display:flex;gap:4px}.p2p-peer-btn{padding:6px;background:none;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.p2p-peer-btn:hover{background:var(--bg-tertiary);color:var(--accent)}.p2p-peer-btn.danger:hover{color:var(--error)}.p2p-empty{text-align:center;padding:30px 20px;color:var(--text-tertiary)}.p2p-empty .icon{font-size:40px;margin-bottom:12px;opacity:.5}.p2p-empty p{font-size:14px;margin-bottom:4px}.p2p-empty span{font-size:12px}.p2p-manual-section{margin-top:16px}.p2p-manual-toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.p2p-manual-toggle:hover{border-color:var(--border-strong)}.p2p-manual-toggle span{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.p2p-manual-toggle .icon{font-size:18px}.p2p-manual-toggle .chevron{transition:transform .2s ease}.p2p-manual-toggle.expanded .chevron{transform:rotate(180deg)}.p2p-manual-content{display:none;padding:12px;background:var(--bg);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);margin-top:-1px}.p2p-manual-content.active{display:block}.p2p-manual-row{display:flex;gap:8px;margin-bottom:10px}.p2p-manual-row input{flex:1 1;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13px}.p2p-manual-row input:focus{outline:none;border-color:var(--accent)}.p2p-manual-row input[type=number]{width:80px;flex:none}.p2p-manual-connect{width:100%;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all var(--transition-fast)}.p2p-manual-connect:hover{background:var(--accent);border-color:var(--accent);color:#fff}.project-context-menu{position:fixed;min-width:200px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:var(--z-modal);display:none;padding:6px;animation:contextMenuFadeIn .15s ease}.project-context-menu.active{display:block}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.project-context-menu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:none;border:none;width:100%;text-align:left;color:var(--text);font-size:13px;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.project-context-menu-item:hover{background:var(--bg-tertiary)}.project-context-menu-item .icon{color:var(--text-tertiary);font-size:18px}.project-context-menu-item:hover .icon{color:var(--accent)}.project-context-menu-item.danger,.project-context-menu-item.danger .icon{color:var(--error)}.project-context-menu-separator{height:1px;background:var(--border);margin:6px 0}.preferences-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:480px;max-width:90vw;max-height:85vh;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:0 4px 16px rgba(0,0,0,.2);z-index:var(--z-modal);display:none;flex-direction:column;overflow:hidden}.preferences-panel.active{display:flex;animation:modalFadeIn .25s ease}@keyframes modalFadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.preferences-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);z-index:calc(var(--z-modal) - 1);display:none}.preferences-panel-overlay.active{display:block;animation:overlayFadeIn .25s ease}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.preferences-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}.preferences-header h2{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;color:var(--text);margin:0}.preferences-header h2 .icon{color:var(--accent)}.preferences-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:8px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.preferences-close:hover{background:var(--border);color:var(--text)}.preferences-body{flex:1 1;overflow-y:auto;padding:24px}.preferences-section{margin-bottom:28px}.preferences-section:last-child{margin-bottom:0}.preferences-section-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text);margin-bottom:16px}.preferences-section-title .icon{color:var(--accent);font-size:18px}.preferences-theme-options{display:flex;gap:12px}.preferences-theme-option{flex:1 1;padding:16px;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:center;transition:all var(--transition-fast)}.preferences-theme-option:hover{border-color:var(--border-strong)}.preferences-theme-option.selected{border-color:var(--accent);background:var(--accent-muted)}.preferences-theme-option input{display:none}.preferences-theme-option .icon{font-size:28px;margin-bottom:8px;color:var(--text-secondary)}.preferences-theme-option.selected .icon{color:var(--accent)}.preferences-theme-option span{display:block;font-size:13px;font-weight:500;color:var(--text)}.preferences-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}.preferences-row:last-child{border-bottom:none}.preferences-row-label{display:flex;align-items:center;gap:10px}.preferences-row-label .icon{color:var(--text-tertiary);font-size:18px}.preferences-row-label span{font-size:14px;color:var(--text)}.preferences-select{padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13px;cursor:pointer}.preferences-select:focus{outline:none;border-color:var(--accent)}.preferences-action-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-size:13px;cursor:pointer;transition:all var(--transition-fast);width:100%;margin-top:8px}.preferences-action-btn:hover{border-color:var(--accent);background:var(--accent-muted)}.preferences-action-btn .icon{color:var(--text-tertiary)}.preferences-action-btn:hover .icon{color:var(--accent)}.preferences-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:12px}.preferences-btn-secondary{padding:10px 20px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.preferences-btn-secondary:hover{background:var(--border)}.preferences-btn-primary{padding:10px 20px;background:var(--accent);border:none;border-radius:var(--radius-md);color:#fff;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all var(--transition-fast)}.preferences-btn-primary:hover{background:var(--accent-hover)}.header-btn .p2p-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;background:var(--accent);border-radius:var(--radius-full);font-size:10px;font-weight:600;color:#fff;display:flex;align-items:center;justify-content:center}.header-btn .p2p-badge:empty{display:none}.context-bar{display:flex;align-items:center;padding:6px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border);gap:8px;font-size:12px;min-height:32px}.context-bar.hidden-initially{display:none}.context-bar.visible{display:flex}.context-bar-item{display:flex;align-items:center;gap:6px;color:var(--text-secondary);cursor:default;padding:0;background:none;border:none;transition:color .15s ease}.context-bar-item:hover{color:var(--text)}.context-bar-item .icon{font-size:16px;color:var(--text-tertiary);transition:color .15s ease}.context-bar-item:hover .icon{color:var(--text-secondary)}.context-bar-value{color:var(--text);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-size:12px}.context-bar-badge{padding:2px 8px;background:var(--bg-tertiary);border-radius:4px;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.context-bar-badge.info{background:rgba(59,130,246,.15);color:var(--info)}.context-bar-badge.safe{background:rgba(16,185,129,.15);color:var(--success)}.context-bar-badge.warning{background:rgba(234,179,8,.15);color:var(--warning)}.context-bar-badge.danger{background:rgba(239,68,68,.15);color:var(--error)}.context-bar-separator{width:1px;height:16px;background:var(--border);margin:0 4px;opacity:.6}.context-bar-spacer{flex:1 1}.context-bar-tokens{gap:8px}.context-bar-tokens .icon{font-size:14px}.context-bar-tokens .context-bar-value{font-family:var(--font-mono);font-size:11px;font-weight:600;min-width:28px;text-align:right;color:var(--text-secondary)}.context-bar-progress{width:60px;height:4px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden}.context-bar-progress-fill{height:100%;background:var(--success);border-radius:2px;transition:width .3s ease,background .3s ease;width:0}.context-bar-progress-fill.warning{background:var(--warning)}.context-bar-progress-fill.danger{background:var(--error)}.context-bar-item.model-indicator .icon{color:var(--accent)}.context-bar-item.model-indicator .context-bar-value{color:var(--accent);font-weight:600}.context-bar-item.clickable{cursor:pointer;padding:4px 8px;margin:-4px 0;border-radius:4px}.context-bar-item.clickable:hover{background:var(--bg-tertiary)}@media (max-width:768px){.chat-settings-popover{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;max-height:70vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:popoverSlideUpMobile .3s ease}@keyframes popoverSlideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.p2p-panel{width:100%}.preferences-panel{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0;top:0;left:0;transform:none}.preferences-panel.active{animation:none}.project-context-menu{position:fixed;bottom:0;left:0;right:0;top:auto;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:contextMenuSlideUp .3s ease}@keyframes contextMenuSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}}.usage-tracking-container{display:none;justify-content:center;align-items:center;padding:8px 16px;background:var(--bg-tertiary,#222);border-top:1px solid var(--border-color,#333)}.usage-tracking-widget{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:16px;background:var(--bg-secondary,#2a2a2a);font-size:12px;cursor:default;transition:all .2s ease}.usage-tracking-widget:hover{background:var(--bg-tertiary,#333)}.usage-icon{display:flex;align-items:center;color:var(--text-secondary,#888)}.usage-bar-container{width:60px;height:4px;background:var(--bg-tertiary,#333);border-radius:2px;overflow:hidden}.usage-bar{height:100%;border-radius:2px;transition:width .3s ease}.usage-text{font-weight:500;min-width:35px;text-align:right}.usage-tracking-widget.usage-ok .usage-bar{background:var(--color-success,#4caf50)}.usage-tracking-widget.usage-ok .usage-text{color:var(--color-success,#4caf50)}.usage-tracking-widget.usage-warning .usage-bar{background:var(--color-warning,#ff9800)}.usage-tracking-widget.usage-warning .usage-text{color:var(--color-warning,#ff9800)}.usage-tracking-widget.usage-critical .usage-bar{background:var(--color-error,#f44336)}.usage-tracking-widget.usage-critical .usage-text{color:var(--color-error,#f44336)}.proactive-suggestions-container{display:none;padding:10px 16px;background:var(--bg-secondary,#2a2a2a);border-radius:12px 12px 0 0;margin:0 16px;border:1px solid var(--border-color,#333);border-bottom:none}.suggestions-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.suggestions-icon{font-size:16px}.suggestions-title{font-weight:600;font-size:13px;color:var(--text-primary,#fff)}.suggestions-dismiss{margin-left:auto;background:none;border:none;color:var(--text-secondary,#888);cursor:pointer;font-size:18px;line-height:1;padding:0 4px}.suggestions-dismiss:hover{color:var(--text-primary,#fff)}.suggestions-list{display:flex;flex-direction:column;gap:8px}.suggestion-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-tertiary,#333);border-radius:8px;border:1px solid var(--border-color,#444)}.suggestion-text{flex:1 1;font-size:13px;color:var(--text-primary,#fff)}.suggestion-apply{padding:4px 12px;background:var(--color-primary,#7c3aed);color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:background .2s ease}.suggestion-apply:hover{background:var(--color-primary-hover,#6d28d9)}.file-diffs-panel{position:fixed;right:-400px;top:0;bottom:0;width:380px;background:var(--bg-primary,#1a1a1a);border-left:1px solid var(--border-color,#333);z-index:1000;display:flex;flex-direction:column;transition:right .3s ease;box-shadow:none}.file-diffs-panel.visible{right:0}.diffs-header{display:flex;align-items:center;gap:8px;padding:16px;background:var(--bg-secondary,#2a2a2a);border-bottom:1px solid var(--border-color,#333)}.diffs-icon{font-size:18px}.diffs-title{font-weight:600;font-size:14px;color:var(--text-primary,#fff)}.diffs-close{margin-left:auto;background:none;border:none;color:var(--text-secondary,#888);cursor:pointer;font-size:20px;line-height:1;padding:0 4px}.diffs-close:hover{color:var(--text-primary,#fff)}.diffs-list{flex:1 1;overflow-y:auto;padding:8px}.diff-item{background:var(--bg-secondary,#2a2a2a);border-radius:8px;margin-bottom:8px;overflow:hidden;border:1px solid var(--border-color,#333)}.diff-file-header{gap:8px;padding:10px 12px;background:var(--bg-tertiary,#333)}.diff-file-icon{font-size:14px}.diff-file-name{font-size:13px;font-weight:500;color:var(--text-primary,#fff)}.diff-status{font-size:10px;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:4px}.diff-status.modified{background:var(--color-warning-bg,rgba(255,152,0,.2));color:var(--color-warning,#ff9800)}.diff-status.added{background:var(--color-success-bg,rgba(76,175,80,.2));color:var(--color-success,#4caf50)}.diff-status.deleted{background:var(--color-error-bg,rgba(244,67,54,.2));color:var(--color-error,#f44336)}.diff-preview{max-height:120px;overflow:hidden;border-top:1px solid var(--border-color,#333)}.diff-preview pre{margin:0;padding:8px 12px;font-size:11px;line-height:1.4;background:var(--bg-primary,#1a1a1a);color:var(--text-secondary,#888);overflow:hidden}.diff-preview code{font-family:Fira Code,Consolas,monospace}.diff-actions{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border-color,#333)}.diff-actions button{flex:1 1;padding:6px 12px;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.diff-action-view{background:var(--bg-tertiary,#333);color:var(--text-primary,#fff)}.diff-action-view:hover{background:var(--bg-quaternary,#444)}.diff-action-accept{background:var(--color-success,#4caf50);color:#fff}.diff-action-accept:hover{background:var(--color-success-hover,#43a047)}.diff-action-reject{background:var(--color-error,#f44336);color:#fff}.diff-action-reject:hover{background:var(--color-error-hover,#e53935)}.diffs-footer{display:flex;gap:8px;padding:12px 16px;background:var(--bg-secondary,#2a2a2a);border-top:1px solid var(--border-color,#333)}.diffs-footer button{flex:1 1;padding:10px 16px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.diffs-accept-all{background:var(--color-success,#4caf50);color:#fff}.diffs-accept-all:hover{background:var(--color-success-hover,#43a047)}.diffs-reject-all{background:var(--bg-tertiary,#333);color:var(--text-primary,#fff);border:1px solid var(--border-color,#444)!important}.diffs-reject-all:hover{background:var(--bg-quaternary,#444)}@media (max-width:768px){.file-diffs-panel{width:100%;right:-100%}.usage-bar-container{width:40px}}.rate-limit-banner{display:none;background:var(--warning);color:#000;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin:var(--space-sm) var(--space-md)}.rate-limit-content{display:flex;align-items:center;gap:var(--space-sm);width:100%}.rate-limit-content>.icon{font-size:24px;opacity:.9}.rate-limit-info{flex:1 1;display:flex;flex-direction:column;gap:2px}.rate-limit-info strong{font-size:13px;font-weight:600}.rate-limit-info span{font-size:12px;opacity:.85}.rate-limit-countdown{font-size:16px;font-weight:700;font-family:JetBrains Mono,monospace;padding:var(--space-xs) var(--space-sm);background:rgba(0,0,0,.15);border-radius:var(--radius-sm);min-width:80px;text-align:center}.rate-limit-banner .btn-ghost{color:rgba(0,0,0,.6)}.rate-limit-banner .btn-ghost:hover{color:#000;background:rgba(0,0,0,.1)}.rate-limit-countdown.urgent{animation:pulse-urgent 1s infinite}@keyframes pulse-urgent{0%,to{background:rgba(0,0,0,.15)}50%{background:rgba(0,0,0,.3)}}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:10px;max-width:400px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--bg-secondary);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:none;pointer-events:auto;animation:toastSlideIn var(--duration-slow) var(--ease-out);position:relative;overflow:hidden}.toast.toast-exit{animation:toastSlideOut var(--duration-fast) var(--ease-in) forwards}@keyframes toastSlideIn{0%{transform:translateX(6px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translateX(0);opacity:1}to{transform:translateX(6px);opacity:0}}@media (prefers-reduced-motion:reduce){.toast,.toast.toast-exit{animation:none}}.toast-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);flex-shrink:0}.toast-success .toast-icon{background:var(--success-muted);color:var(--success)}.toast-error .toast-icon{background:var(--error-muted);color:var(--error)}.toast-warning .toast-icon{background:var(--warning-muted);color:var(--warning)}.toast-info .toast-icon{background:var(--accent-muted);color:var(--accent)}.toast-content{flex:1 1;min-width:0}.toast-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:2px}.toast-message{font-size:12px;color:var(--text-secondary);line-height:1.4}.toast-close{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-tertiary);opacity:.7;transition:opacity .15s;flex-shrink:0}.toast-close:hover{opacity:1}.toast-progress{position:absolute;bottom:0;left:0;height:3px;background:var(--accent);animation:toastProgress linear forwards}.toast-success .toast-progress{background:var(--success)}.toast-error .toast-progress{background:var(--error)}.toast-warning .toast-progress{background:var(--warning)}@keyframes toastProgress{0%{width:100%}to{width:0}}.search-overlay{position:fixed;inset:0;z-index:9999;display:none;align-items:flex-start;justify-content:center;padding-top:15vh;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.search-overlay.active{display:flex}.search-modal{width:100%;max-width:560px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:0 4px 16px rgba(0,0,0,.2);overflow:hidden;animation:searchModalIn .2s ease-out}@keyframes searchModalIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.search-input-wrapper{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.search-input-wrapper>.material-symbols-rounded{color:var(--text-tertiary);font-size:22px}.search-input{flex:1 1;background:none;border:none;font-size:15px;color:var(--text);outline:none}.search-input::placeholder{color:var(--text-tertiary)}.search-shortcut{padding:4px 8px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--text-tertiary)}.search-results{max-height:350px;overflow-y:auto}.search-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;color:var(--text-tertiary)}.search-empty .material-symbols-rounded{font-size:40px;margin-bottom:12px;opacity:.5}.search-empty p{margin:0 0 4px;font-size:14px;font-weight:500;color:var(--text-secondary)}.search-empty span{font-size:12px}.search-section{padding:8px}.search-section-title{padding:8px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary)}.search-result{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;transition:background .15s}.search-result.selected,.search-result:hover{background:var(--bg-tertiary)}.search-result-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg);border-radius:var(--radius-md);color:var(--text-tertiary)}.search-result.selected .search-result-icon{background:var(--accent-muted);color:var(--accent)}.search-result-content{flex:1 1;min-width:0}.search-result-title{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-title mark{background:var(--accent-muted);color:var(--accent);border-radius:2px;padding:0 2px}.search-result-subtitle{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-action{color:var(--text-tertiary);opacity:0;transition:opacity .15s}.search-result.selected .search-result-action,.search-result:hover .search-result-action{opacity:1}.search-footer{display:flex;align-items:center;justify-content:center;padding:12px 20px;border-top:1px solid var(--border);background:var(--bg)}.search-footer-hint{display:flex;gap:16px;font-size:12px;color:var(--text-tertiary)}.search-footer-hint kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:11px;font-weight:500}.search-modal--wide{max-width:640px}.search-tabs{display:flex;gap:2px;padding:4px 12px;border-bottom:1px solid var(--border);background:var(--bg)}.search-tab{display:flex;align-items:center;gap:6px;padding:8px 14px;background:none;border:none;border-bottom:2px solid transparent;font-size:12px;font-weight:500;color:var(--text-tertiary);cursor:pointer;transition:color .15s,border-color .15s}.search-tab:hover{color:var(--text-secondary)}.search-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.search-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--bg-tertiary);border-radius:9px;font-size:10px;font-weight:600;color:var(--text-secondary)}.search-tab--active .search-tab-count{background:var(--accent-muted);color:var(--accent)}.search-tab-loading{display:inline-block;width:12px;height:12px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:searchSpinner .6s linear infinite}.search-result--message .search-result-icon{width:32px;height:32px;font-size:16px}.search-result-title--snippet{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4;font-size:12px;font-weight:400}.search-result-chat-badge{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:11px;color:var(--text-secondary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-meta{margin-left:8px;font-size:11px;color:var(--text-muted);flex-shrink:0}.search-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:12px;color:var(--text-tertiary)}.search-loading p{margin:0;font-size:13px}.search-loading-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:searchSpinner .6s linear infinite}@keyframes searchSpinner{to{transform:rotate(1turn)}}.search-modal--wide .search-results{max-height:420px}.search-filters{display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--bg)}.search-filter-group{display:flex;align-items:center;gap:4px}.search-filter-label{font-size:11px;font-weight:500;color:var(--text-tertiary);margin-right:2px}.search-filter-btn{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.search-filter-btn:hover{background:var(--bg-tertiary);border-color:var(--border-strong)}.search-filter-btn--active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent)}.search-filter-btn--removable{padding-right:4px}.search-filter-btn--removable .icon-xs:last-child{opacity:.6;font-size:14px}.search-filter-btn--removable:hover .icon-xs:last-child{opacity:1}.search-filter-select{padding:3px 6px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:11px;color:var(--text-secondary);cursor:pointer;max-width:200px;outline:none}.search-filter-select:focus{border-color:var(--accent)}.search-modal--wide .search-filters+.search-results{max-height:370px}.connection-banner{position:fixed;top:0;left:0;right:0;z-index:9998;transform:translateY(-100%);transition:transform .3s ease}.connection-banner.connecting,.connection-banner.error{transform:translateY(0)}.connection-banner-content{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 20px;font-size:13px;font-weight:500}.connection-banner.error .connection-banner-content{background:var(--error);color:#fff}.connection-banner.connecting .connection-banner-content{background:var(--warning);color:var(--bg)}.connection-banner.connecting .material-symbols-rounded{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.connection-retry-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:hsla(0,0%,100%,.2);border:none;border-radius:var(--radius-md);color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s}.connection-retry-btn:hover{background:hsla(0,0%,100%,.3)}.chat-info-content{padding:0}.chat-info-section{padding:16px 20px}.chat-info-section-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;font-weight:600;color:var(--text)}.chat-info-section-header .badge{margin-left:auto}.chat-info-header-btn{margin-left:8px;padding:4px;background:none;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:all .15s}.chat-info-header-btn:hover{background:var(--bg-tertiary);color:var(--text)}.chat-info-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 0}.chat-info-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.chat-info-value{font-size:13px;color:var(--text);text-align:right;word-break:break-word}.chat-info-prompt{font-size:12px;font-style:italic;color:var(--text-tertiary)}.chat-info-divider{height:1px;background:var(--border);margin:0}.chat-info-mcp-list{display:flex;flex-direction:column;gap:8px}.chat-info-mcp-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg);border-radius:var(--radius-md)}.mcp-item-info{display:flex;align-items:center;gap:8px}.mcp-status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary)}.mcp-status-dot.connected{background:var(--success)}.mcp-status-dot.disconnected{background:var(--text-tertiary)}.mcp-status-dot.error{background:var(--error)}.mcp-name{font-size:13px;font-weight:500}.mcp-builtin-status{font-size:11px;color:var(--text-tertiary);font-style:italic}.chat-info-mcp-builtin{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.chat-info-note{display:flex;align-items:center;gap:6px;margin-top:12px;padding:8px 12px;background:var(--accent-muted);border-radius:var(--radius-md);font-size:11px;color:var(--accent)}.chat-info-tags{display:flex;flex-wrap:wrap;gap:6px}.chat-info-tag{padding:4px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-full);font-size:11px;font-weight:500;color:var(--text-secondary)}.chat-info-list{display:flex;flex-direction:column;gap:4px}.chat-info-skill-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg);border-radius:var(--radius-md);font-size:12px;color:var(--text-secondary)}.chat-info-empty{padding:16px;text-align:center;font-size:12px;color:var(--text-tertiary);font-style:italic}.settings-option-vertical{flex-direction:column;align-items:flex-start!important;gap:8px}.settings-input-group{display:flex;gap:8px;width:100%}.settings-input{flex:1 1;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);font-size:13px;color:var(--text);transition:border-color .15s}.settings-input:focus{outline:none;border-color:var(--accent)}.settings-input::placeholder{color:var(--text-tertiary)}.settings-btn-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .15s}.settings-btn-icon:hover{background:var(--bg-tertiary);color:var(--accent);border-color:var(--accent)}.settings-hint{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-tertiary)}.permission-options{display:flex;flex-direction:column;gap:8px}.permission-option{display:block;cursor:pointer}.permission-option input[type=radio]{display:none}.permission-option-content{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius-md);transition:all .15s}.permission-option.active .permission-option-content,.permission-option:has(input:checked) .permission-option-content{border-color:var(--accent);background:var(--accent-muted)}.permission-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);flex-shrink:0}.permission-icon.safe{background:var(--success-muted);color:var(--success)}.permission-icon.info{background:var(--accent-muted);color:var(--accent)}.permission-icon.warning{background:var(--warning-muted);color:var(--warning)}.permission-icon.danger{background:var(--error-muted);color:var(--error)}.permission-text{display:flex;flex-direction:column;gap:2px}.permission-text strong{font-size:13px;font-weight:600;color:var(--text)}.permission-text span{font-size:12px;color:var(--text-secondary)}.toggle-sm{transform:scale(.8)}.icon-xs{font-size:14px!important}.icon-sm{font-size:18px!important}.file-mods-panel{width:380px;min-width:320px;max-width:500px;height:100%;background:var(--bg-secondary);border-left:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.file-mods-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);background:var(--bg-tertiary)}.file-mods-title{display:flex;align-items:center;gap:var(--space-2)}.file-mods-title h3{margin:0;font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.file-mods-title .material-symbols-rounded{font-size:20px;color:var(--accent)}.file-mods-actions{display:flex;align-items:center;gap:var(--space-1)}.file-mods-stats{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4);background:var(--bg-primary);border-bottom:1px solid var(--border);font-size:var(--text-sm)}.file-mods-stat{display:flex;align-items:center;gap:var(--space-1);color:var(--text-secondary)}.file-mods-stat .material-symbols-rounded{font-size:16px}.file-mods-stat.additions{color:var(--success);font-weight:500}.file-mods-stat.deletions{color:var(--error);font-weight:500}.file-mods-tabs{display:flex;border-bottom:1px solid var(--border)}.file-mods-tab{flex:1 1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.file-mods-tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.file-mods-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.file-mods-tab .material-symbols-rounded{font-size:18px}.file-mods-content{flex:1 1;overflow:auto;min-height:0}.diff-viewer,.diff-viewer-empty,.file-graph-empty{height:100%;display:flex;flex-direction:column}.diff-viewer-empty,.file-graph-empty{align-items:center;justify-content:center;padding:var(--space-8);text-align:center;color:var(--text-secondary)}.diff-viewer-empty .material-symbols-rounded,.file-graph-empty .material-symbols-rounded{font-size:48px;margin-bottom:var(--space-4);opacity:.5}.diff-viewer-empty p,.file-graph-empty p{margin:0 0 var(--space-2);font-size:var(--text-base)}.diff-viewer-empty-hint,.file-graph-empty-hint{font-size:var(--text-sm);color:var(--text-tertiary)}.diff-viewer-toolbar{display:flex;align-items:center;justify-content:flex-end;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border)}.diff-view-toggle{display:flex;background:var(--bg-primary);border-radius:var(--radius-md);overflow:hidden}.diff-view-btn{padding:var(--space-1) var(--space-3);background:transparent;border:none;color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast)}.diff-view-btn:hover{color:var(--text-primary)}.diff-view-btn.active{background:var(--accent);color:#fff}.diff-file-list{flex:1 1;overflow-y:auto}.diff-file-item{border-bottom:1px solid var(--border)}.diff-file-item.selected{background:var(--bg-tertiary)}.diff-file-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);cursor:pointer;transition:background var(--transition-fast)}.diff-file-header:hover{background:var(--bg-tertiary)}.diff-expand-icon{font-size:18px;color:var(--text-tertiary);transition:transform var(--transition-fast)}.diff-expand-icon.expanded{transform:rotate(90deg)}.diff-op-icon{font-size:16px}.diff-op-icon.success{color:var(--success)}.diff-op-icon.warning{color:var(--warning)}.diff-op-icon.info{color:var(--info)}.diff-file-name{flex:1 1;font-size:var(--text-sm);font-family:var(--font-mono);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diff-file-stats{display:flex;gap:var(--space-2);font-size:var(--text-xs);font-family:var(--font-mono)}.diff-stat-add{color:var(--success)}.diff-stat-del{color:var(--error)}.diff-file-content{background:var(--bg-primary);border-top:1px solid var(--border)}.diff-no-changes{padding:var(--space-4);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.diff-hunk{border-bottom:1px solid var(--border)}.diff-hunk:last-child{border-bottom:none}.diff-hunk-header{padding:var(--space-1) var(--space-3);background:var(--bg-tertiary);color:var(--text-secondary)}.diff-hunk-header,.diff-hunk-lines{font-size:var(--text-xs);font-family:var(--font-mono)}.diff-hunk-lines{line-height:1.5}.diff-line{display:flex;padding:0 var(--space-2)}.diff-line-context{background:transparent}.diff-line-add{background:rgba(63,185,80,.15)}.diff-line-remove{background:rgba(248,81,73,.15)}.diff-line-empty{background:var(--bg-tertiary)}.diff-line-num{width:40px;padding-right:var(--space-2);text-align:right;color:var(--text-tertiary)}.diff-line-num,.diff-line-prefix{-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0}.diff-line-prefix{width:16px;text-align:center;color:var(--text-secondary)}.diff-line-add .diff-line-prefix{color:var(--success)}.diff-line-remove .diff-line-prefix{color:var(--error)}.diff-line-content{flex:1 1;white-space:pre-wrap;word-break:break-all;color:var(--text-primary)}.diff-hunk-split .diff-hunk-split-container{display:flex}.diff-hunk-side{flex:1 1;overflow-x:auto}.diff-hunk-left{border-right:1px solid var(--border)}.diff-hunk-split .diff-line{padding:0 var(--space-2)}.diff-hunk-split .diff-line-num{width:30px}.file-graph{height:100%;width:100%}.file-graph .react-flow__background{background:var(--bg-primary)}.file-graph .react-flow__controls{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md)}.file-graph .react-flow__controls button{background:var(--bg-secondary);border-color:var(--border);color:var(--text-primary)}.file-graph .react-flow__controls button:hover{background:var(--bg-tertiary)}.file-graph .react-flow__minimap{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md)}.file-graph-node{background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius-md);min-width:120px;overflow:hidden}.file-graph-node-header{display:flex;align-items:center;justify-content:center;padding:var(--space-1)}.file-graph-node-header .material-symbols-rounded{font-size:14px;color:#fff}.file-graph-node-body{padding:var(--space-2);text-align:center}.file-graph-node-name{display:block;font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-primary);margin-bottom:var(--space-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-graph-node-stats{display:flex;justify-content:center;gap:var(--space-2);font-size:10px;font-family:var(--font-mono)}.file-graph-node-stats .stat-add{color:var(--success)}.file-graph-node-stats .stat-del{color:var(--error)}@media (max-width:768px){.file-mods-panel{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:100%;z-index:100}}.mermaid-container{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin:var(--space-4) 0;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.mermaid-container:hover{border-color:var(--border-strong);box-shadow:0 4px 12px rgba(0,0,0,.15)}.mermaid-header{justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-bottom:1px solid var(--border)}.mermaid-header,.mermaid-label{display:flex;align-items:center}.mermaid-label{gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.mermaid-label .icon{font-size:16px;color:var(--info)}.mermaid-actions{display:flex;gap:var(--space-1)}.mermaid-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.mermaid-btn:hover{background:var(--bg-tertiary);color:var(--text)}.mermaid-btn .icon{font-size:16px}.mermaid-content{padding:var(--space-4);display:flex;justify-content:center;overflow:auto;max-height:500px;background:var(--bg-primary)}.mermaid-content svg{max-width:100%;height:auto}.mermaid-container.mermaid-error .mermaid-header{border-bottom-color:var(--error-bg)}.mermaid-container.mermaid-error .mermaid-label .icon{color:var(--error)}.mermaid-error-content{padding:var(--space-4);color:var(--error-text);font-size:var(--text-sm)}.mermaid-error-content p{margin-bottom:var(--space-3)}.mermaid-error-content pre{background:var(--bg-secondary);padding:var(--space-3);border-radius:var(--radius-sm);overflow-x:auto;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary)}.mermaid-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-6);animation:fadeIn .2s ease}.mermaid-modal{background:var(--bg-secondary);border-radius:var(--radius-xl);max-width:95vw;max-height:95vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 50px -12px rgba(0,0,0,.5);animation:scaleIn .2s ease}.mermaid-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.mermaid-modal-content{flex:1 1;padding:var(--space-6);overflow:auto;display:flex;justify-content:center;align-items:center;background:var(--bg-primary)}.mermaid-modal-content svg{max-width:100%;max-height:100%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}[data-theme=light] .mermaid-container{background:var(--bg-tertiary)}[data-theme=light] .mermaid-container:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}[data-theme=light] .mermaid-content,[data-theme=light] .mermaid-modal-content{background:#fff}@media (max-width:1024px){.mermaid-container{margin:var(--space-3) 0}.mermaid-content{padding:var(--space-3);max-height:400px}.mermaid-modal{max-width:98vw;max-height:90vh}.mermaid-modal-content{padding:var(--space-4)}}@media (max-width:768px){.mermaid-container{margin:var(--space-2) 0;border-radius:var(--radius-md)}.mermaid-header{padding:var(--space-2)}.mermaid-label{font-size:var(--text-xs)}.mermaid-label .icon{font-size:14px}.mermaid-btn{width:32px;height:32px;min-width:32px;min-height:32px}.mermaid-btn .icon{font-size:18px}.mermaid-content{padding:var(--space-2);max-height:300px}.mermaid-content svg{min-width:100%;height:auto}.mermaid-modal-overlay{padding:0;align-items:flex-end}.mermaid-modal{max-width:100%;max-height:90vh;width:100%;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.mermaid-error-content,.mermaid-modal-content,.mermaid-modal-header{padding:var(--space-3)}.mermaid-error-content pre{padding:var(--space-2);font-size:10px}}@media (max-width:480px){.mermaid-header{padding:var(--space-1) var(--space-2)}.mermaid-label{gap:var(--space-1)}.mermaid-btn{width:28px;height:28px;min-width:28px;min-height:28px}.mermaid-btn .icon{font-size:16px}.mermaid-content{max-height:250px}}.mermaid-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mermaid-modal-overlay:focus{outline:none}.mermaid-content svg{cursor:default}.mermaid-content svg .cluster,.mermaid-content svg .edgePath,.mermaid-content svg .node{cursor:pointer}.mermaid-content svg .node:hover circle,.mermaid-content svg .node:hover polygon,.mermaid-content svg .node:hover rect{filter:brightness(1.1)}.mermaid-content{overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.mermaid-content::-webkit-scrollbar{height:6px;width:6px}.mermaid-content::-webkit-scrollbar-track{background:transparent}.mermaid-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.mermaid-content::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}