*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--purple: #534AB7;--purple-light: rgba(127,119,221,.12);--purple-text: #3C3489;--green: #1D9E75;--amber: #BA7517;--red: #A32D2D;--red-bg: rgba(226,75,74,.1);--warn-bg: rgba(186,117,23,.1);--info-bg: rgba(29,158,117,.1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5;color:#1a1a1a}body{background:#f4f3f0;min-height:100vh}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.main-layout{display:flex;flex:1;overflow:hidden;gap:1px;background:#ddd}.topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#fff;border-bottom:.5px solid rgba(0,0,0,.1);flex-shrink:0}.logo{display:flex;align-items:center;gap:8px}.logo-icon{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#7f77dd,#5dcaa5);display:flex;align-items:center;justify-content:center}.logo-text{font-size:15px;font-weight:600;letter-spacing:-.3px}.logo-sub{font-size:11px;color:#888;padding:2px 7px;background:#f4f3f0;border-radius:4px}.header-badges{display:flex;align-items:center;gap:8px;margin-left:auto}.badge{padding:3px 9px;font-size:11px;font-weight:500;border-radius:20px}.badge.error{background:#e24b4a1f;color:#a32d2d}.badge.memory{background:var(--purple-light);color:var(--purple-text)}.badge.analyzing{background:#f0f0f0;color:#666;display:flex;align-items:center;gap:5px}.badge.link{background:#f4f3f0;color:#555;text-decoration:none}.badge.link:hover{background:#e8e8e8}.editor-panel{width:52%;display:flex;flex-direction:column;background:#fff}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:#f8f8f7;border-bottom:.5px solid rgba(0,0,0,.08);flex-shrink:0}.file-name{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:500;color:#444}.lang-picker{display:flex;gap:4px}.lang-btn{padding:3px 9px;font-size:11px;border-radius:5px;cursor:pointer;border:.5px solid rgba(0,0,0,.15);background:none;color:#666;transition:all .15s}.lang-btn.active{background:var(--purple);border-color:var(--purple);color:#fff}.lang-btn:hover:not(.active){background:#f0f0f0}.editor-wrapper{flex:1;overflow:hidden}.analyze-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f8f8f7;border-top:.5px solid rgba(0,0,0,.08);flex-shrink:0}.analyze-stats{margin-left:auto;display:flex;gap:8px}.stat{font-size:11px}.stat.error{color:var(--red)}.stat.warn{color:var(--amber)}.results-panel{flex:1;display:flex;flex-direction:column;background:#fff;overflow:hidden}.results-tabs{display:flex;background:#f8f8f7;border-bottom:.5px solid rgba(0,0,0,.08);flex-shrink:0}.rtab{padding:10px 14px;font-size:12px;border:none;background:none;cursor:pointer;color:#888;border-bottom:2px solid transparent;transition:all .15s;display:flex;align-items:center;gap:5px}.rtab.active{color:var(--purple);border-bottom-color:var(--purple);background:#fff;font-weight:500}.rtab:hover:not(.active){color:#444;background:#f0f0f0}.tab-count{background:var(--red-bg);color:var(--red);font-size:10px;font-weight:600;padding:1px 5px;border-radius:10px}.results-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.btn-primary{padding:7px 14px;font-size:12px;font-weight:500;border-radius:7px;border:none;background:var(--purple);color:#fff;cursor:pointer;display:flex;align-items:center;gap:6px;transition:opacity .15s}.btn-primary:hover:not(:disabled){opacity:.88}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:7px 12px;font-size:12px;border-radius:7px;border:.5px solid rgba(0,0,0,.15);background:none;color:#666;cursor:pointer;transition:background .15s}.btn-secondary:hover{background:#f0f0f0}.btn-ghost-sm{padding:3px 8px;font-size:11px;border:.5px solid rgba(0,0,0,.15);border-radius:5px;background:none;color:#888;cursor:pointer}.btn-ghost-sm:hover{background:#f4f3f0}.spinner{width:11px;height:11px;border:1.5px solid rgba(83,74,183,.2);border-top-color:var(--purple);border-radius:50%;animation:spin .6s linear infinite;display:inline-block}.spinner.white{border-color:#ffffff4d;border-top-color:#fff}@keyframes spin{to{transform:rotate(360deg)}}.bug-card{border:.5px solid rgba(0,0,0,.1);border-radius:10px;overflow:hidden}.bug-header{display:flex;align-items:center;gap:8px;padding:9px 13px;background:#f8f8f7;border-bottom:.5px solid rgba(0,0,0,.08);cursor:pointer}.bug-header:hover{background:#f0f0f0}.bug-title{font-size:12.5px;font-weight:500;flex:1}.line-ref{font-size:11px;color:#999}.expand-icon{font-size:11px;color:#aaa}.bug-body{padding:12px 13px;display:flex;flex-direction:column;gap:8px}.bug-explain{font-size:12.5px;color:#555;line-height:1.6}.code-block{border-radius:6px;padding:9px 11px;font-family:JetBrains Mono,Fira Code,monospace;font-size:11.5px;line-height:1.65}.code-block.bad{background:var(--red-bg);border-left:2.5px solid #E24B4A}.code-block.good{background:#1d9e7514;border-left:2.5px solid var(--green)}.code-block-label{font-size:10.5px;font-weight:600;margin-bottom:4px;font-family:-apple-system,sans-serif}.code-block.bad .code-block-label{color:var(--red)}.code-block.good .code-block-label{color:var(--green)}.code-block pre{white-space:pre-wrap;word-break:break-word}.tip-block{display:flex;gap:6px;align-items:flex-start;background:#fffbea;border:.5px solid #f5d060;border-radius:6px;padding:8px 10px;font-size:12px;color:#7a5c00}.memory-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;font-size:11px;border-radius:20px;background:var(--purple-light);color:var(--purple-text)}.memory-dot{width:7px;height:7px;border-radius:50%;background:var(--purple)}.err-badge,.error-badge{padding:2px 7px;font-size:11px;font-weight:500;border-radius:4px;background:var(--red-bg);color:var(--red)}.warn-badge,.warning-badge{padding:2px 7px;font-size:11px;font-weight:500;border-radius:4px;background:var(--warn-bg);color:var(--amber)}.info-badge{padding:2px 7px;font-size:11px;font-weight:500;border-radius:4px;background:var(--info-bg);color:var(--green)}.recurring-badge{padding:2px 7px;font-size:10.5px;font-weight:500;border-radius:4px;background:var(--purple-light);color:var(--purple-text)}.recurring-banner{background:var(--purple-light);border:.5px solid rgba(83,74,183,.25);border-radius:8px;padding:10px 12px;display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--purple-text);line-height:1.6}.rb-icon{font-size:15px;flex-shrink:0}.summary-card{background:#f8f8f7;border:.5px solid rgba(0,0,0,.1);border-radius:8px;padding:10px 13px}.summary-row{display:flex;align-items:center;gap:10px}.summary-text{font-size:12.5px;color:#555;flex:1}.quality-score{font-size:12px;font-weight:500;white-space:nowrap}.tips-section{border-top:.5px solid rgba(0,0,0,.08);padding-top:10px;display:flex;flex-direction:column;gap:6px}.tips-title{font-size:12px;font-weight:500;color:#888;margin-bottom:4px}.tip-item{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#555}.tip-num{width:18px;height:18px;border-radius:50%;background:var(--purple-light);color:var(--purple);font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.memory-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.section-title{font-size:13px;font-weight:500}.mem-item{border:.5px solid rgba(0,0,0,.1);border-radius:8px;padding:11px 13px;display:flex;flex-direction:column;gap:5px}.mem-row{display:flex;align-items:center;gap:8px}.mem-type{padding:2px 7px;font-size:11px;font-weight:500;border-radius:4px;background:var(--purple-light);color:var(--purple-text)}.mem-lang{padding:2px 7px;font-size:11px;border-radius:4px;background:#f4f3f0;color:#666}.mem-freq{margin-left:auto;font-size:11px;color:#999;text-align:right}.freq-dots{display:flex;gap:3px;justify-content:flex-end;margin-top:2px}.dot{width:6px;height:6px;border-radius:50%;background:#ddd}.dot.filled{background:var(--purple)}.mem-desc{font-size:12px;color:#666;line-height:1.5}.mem-fix{font-size:11.5px;color:var(--green);font-family:JetBrains Mono,monospace}.mem-tip{font-size:11px;color:#888}.mem-dates{font-size:10.5px;color:#bbb}.chat-panel{display:flex;flex-direction:column;height:100%}.chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.msg{display:flex;gap:8px;align-items:flex-start}.msg.user{flex-direction:row-reverse}.avatar{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:600}.ai-av{background:var(--purple-light);color:var(--purple)}.user-av{background:#1d9e7526;color:#0f6e56}.bubble{max-width:85%;padding:9px 12px;border-radius:10px;font-size:12.5px;line-height:1.65}.ai-bubble{background:#f4f3f0;color:#333;border:.5px solid rgba(0,0,0,.08)}.user-bubble{background:var(--purple);color:#fff}.typing{display:flex;gap:4px;align-items:center;padding:12px 14px}.typing span{width:6px;height:6px;border-radius:50%;background:#aaa;animation:bounce .8s ease-in-out infinite}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.chat-suggestions{display:flex;flex-direction:column;gap:5px;padding:8px 0}.suggestion-btn{text-align:left;padding:7px 11px;font-size:12px;border:.5px solid rgba(83,74,183,.3);border-radius:7px;background:var(--purple-light);color:var(--purple-text);cursor:pointer;transition:background .15s}.suggestion-btn:hover{background:#534ab733}.chat-input-row{display:flex;gap:8px;align-items:flex-end;padding-top:10px;border-top:.5px solid rgba(0,0,0,.08);flex-shrink:0;margin-top:auto}.chat-input{flex:1;resize:none;border:.5px solid rgba(0,0,0,.15);border-radius:8px;padding:8px 10px;font-size:12.5px;background:#f8f8f7;color:#333;outline:none;min-height:36px;max-height:80px;font-family:inherit}.chat-input:focus{border-color:#534ab766}.send-btn{width:34px;height:34px;border-radius:8px;border:none;background:var(--purple);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}.send-btn:hover:not(:disabled){opacity:.88}.send-btn:disabled{opacity:.4;cursor:not-allowed}.timeline-list{display:flex;flex-direction:column}.tl-item{display:flex;gap:12px;padding:10px 0;position:relative}.tl-item:not(:last-child):before{content:"";position:absolute;left:3px;top:28px;bottom:0;width:1px;background:#00000014}.tl-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}.tl-content{flex:1}.tl-header{display:flex;align-items:center;gap:6px;margin-bottom:3px;flex-wrap:wrap}.tl-title{font-size:12.5px;font-weight:500;flex:1}.tl-time{font-size:10.5px;color:#bbb}.tl-desc{font-size:12px;color:#999}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 20px;text-align:center;color:#888}.empty-icon{font-size:32px}.empty-sub{font-size:12px;color:#bbb}.error-state{padding:20px;color:var(--red);background:var(--red-bg);border-radius:8px;font-size:12.5px}.no-bugs{display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px;color:var(--green)}.bugs-list{display:flex;flex-direction:column;gap:10px}.memory-list{display:flex;flex-direction:column;gap:8px}
