:root{--primary:#1447e6;--primary-hover:#0f38c4;--primary-soft:#1447e61a;--bg:#fff;--bg-chat:#f8f8fa;--surface:#fff;--surface-hover:#f2f2f5;--border:#e5e5e9;--text:#1e1e24;--text-secondary:#6b6b76;--text-faint:#9a9aa4;--bubble-user:#1447e6;--bubble-user-text:#fff;--bubble-assistant:#f2f2f5;--code-bg:#eef0f4;--chip-bg:#fff;--good:#1a8a4a;--warn:#b5860b;--bad:#d5393f;--shadow-sm:0 1px 2px #14141e0a;--shadow-md:0 4px 12px #14141e14;--shadow-lg:0 12px 24px #14141e1f;--transition:all .2s cubic-bezier(.4, 0, .2, 1)}@media (prefers-color-scheme:dark){:root{--bg:#131316;--bg-chat:#0e0e11;--surface:#1c1c21;--surface-hover:#26262c;--border:#2d2d35;--text:#f0f0f3;--text-secondary:#9ea0a8;--text-faint:#666870;--bubble-user:#1447e6;--bubble-user-text:#fff;--bubble-assistant:#1c1c21;--code-bg:#16161a;--chip-bg:#26262c;--good:#4fbd7d;--warn:#dcae3a;--bad:#ef5a5f;--shadow-sm:0 1px 2px #0003;--shadow-md:0 8px 24px #0006;--shadow-lg:0 16px 40px #0009}}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{height:100vh;margin:0;overflow:hidden}body{background:var(--bg-chat);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Helvetica,Arial,sans-serif;transition:background .2s,color .2s}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:100;flex-direction:column;flex-shrink:0;width:260px;height:100%;transition:width .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.sidebar.collapsed{width:72px}.sidebar-header{justify-content:space-between;align-items:center;height:64px;padding:16px;display:flex}.brand-group{align-items:center;gap:12px;display:flex;overflow:hidden}.brand-logo{background:var(--primary);color:#fff;width:32px;height:32px;box-shadow:var(--shadow-sm);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:800;display:flex}.brand-name{white-space:nowrap;letter-spacing:-.01em;font-size:15px;font-weight:700}.collapse-toggle{color:var(--text-faint);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;display:flex}.collapse-toggle:hover{background:var(--surface-hover);color:var(--text)}.sidebar-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.new-chat-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:var(--transition);white-space:nowrap;border-radius:12px;align-items:center;gap:10px;margin:8px 12px;padding:12px;font-size:14px;font-weight:600;display:flex;overflow:hidden}.new-chat-btn:hover{background:var(--surface-hover);border-color:var(--text-faint);box-shadow:var(--shadow-sm)}.new-chat-btn svg{color:var(--primary);flex-shrink:0}.sidebar-search{margin:0 12px 16px;position:relative}.sidebar-search svg{color:var(--text-faint);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.sidebar-search input{border:1px solid var(--border);background:var(--bg-chat);width:100%;color:var(--text);transition:var(--transition);border-radius:10px;outline:none;padding:10px 10px 10px 34px;font-size:13px}.sidebar-search input:focus{border-color:var(--primary);background:var(--surface)}.sidebar-nav{margin-bottom:8px;padding:0 8px}.nav-item{width:100%;color:var(--text-secondary);cursor:pointer;transition:var(--transition);white-space:nowrap;background:0 0;border:none;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:500;display:flex;overflow:hidden}.nav-item:hover{background:var(--surface-hover);color:var(--text)}.nav-item svg{flex-shrink:0}.sidebar-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);padding:16px 20px 8px;font-size:11px;font-weight:700}.divider{background:var(--border);height:1px;margin:8px 0}.recent-list{flex-direction:column;flex:1;gap:4px;padding:0 8px;display:flex;overflow-y:auto}.recent-item{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;transition:var(--transition);white-space:nowrap;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex;overflow:hidden}.recent-item:hover{background:var(--surface-hover);color:var(--text)}.recent-item.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.recent-item.active svg{color:var(--primary)}.recent-item svg{color:var(--text-faint);flex-shrink:0}.recent-title{text-overflow:ellipsis;overflow:hidden}.recent-empty{color:var(--text-faint);padding:12px 20px;font-size:12px;font-style:italic}.sidebar-footer{border-top:1px solid var(--border);padding:12px;position:relative}.account-btn{width:100%;color:var(--text);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;padding:8px;display:flex;overflow:hidden}.account-btn:hover{background:var(--surface-hover)}.account-avatar{background:linear-gradient(135deg, var(--primary), #6366f1);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:flex}.account-info{text-align:left;overflow:hidden}.account-name{white-space:nowrap;font-size:13px;font-weight:600}.account-sub{color:var(--text-secondary);font-size:11px}.account-menu{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:101;border-radius:14px;flex-direction:column;gap:4px;padding:8px;display:none;position:absolute;bottom:72px;left:12px;right:12px}.account-menu.open{animation:.2s ease-out slideUp;display:flex}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.account-menu button{color:var(--text);text-align:left;cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:8px;padding:10px 12px;font-size:13px}.account-menu button:hover{background:var(--surface-hover)}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:90;background:#0006;display:none;position:fixed;inset:0}@media (width<=768px){.sidebar{width:260px;height:100%;position:fixed;left:-260px}.sidebar.mobile-open{left:0}.sidebar.collapsed{width:260px}.sidebar-overlay.visible{display:block}.collapse-toggle{display:none}}.chat-container{background:var(--bg-chat);flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.mobile-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:none}.menu-toggle{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px}.mobile-title{font-size:16px;font-weight:700}main{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex:1;justify-content:center;display:flex;overflow-y:auto}.thread{flex-direction:column;gap:24px;width:100%;max-width:800px;padding:60px 24px 20px;display:flex}.empty-state{text-align:center;color:var(--text-secondary);margin:auto;padding:40px 20px;animation:.5s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.empty-state .logo{background:linear-gradient(135deg, var(--primary), #6366f1);color:#fff;width:56px;height:56px;box-shadow:var(--shadow-md);border-radius:16px;justify-content:center;align-items:center;margin:0 auto 24px;font-size:24px;font-weight:800;display:flex}.empty-state h2{color:var(--text);letter-spacing:-.02em;margin:0 0 12px;font-size:32px;font-weight:700}.empty-state p{max-width:420px;color:var(--text-secondary);margin:0 auto;font-size:15px;line-height:1.6}.mode-row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px;display:flex}.mode-chip{border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);box-shadow:var(--shadow-sm);transition:var(--transition);border-radius:20px;padding:8px 16px;font-size:13px}.mode-chip:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.mode-chip b{color:var(--text);font-weight:600}.msg{gap:12px;max-width:100%;animation:.3s ease-out messageIn;display:flex}@keyframes messageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.msg.user{justify-content:flex-end}.bubble{max-width:85%;box-shadow:var(--shadow-sm);border-radius:18px;padding:14px 20px;font-size:15px;line-height:1.6}.msg.user .bubble{background:var(--primary);color:var(--bubble-user-text);border-bottom-right-radius:4px}.msg.assistant .bubble{background:var(--surface);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px;width:100%;max-width:100%}.file-chip{align-items:center;gap:10px;padding:4px 0;font-size:14px;display:inline-flex}.file-chip .file-icon{background:#fff3;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:flex}.jd-preview-in-msg{color:#ffffffe6;white-space:pre-wrap;border-top:1px solid #ffffff1a;max-height:80px;margin-top:10px;padding-top:8px;font-size:14px;overflow:hidden}.spinner{border:2px solid var(--border);border-top-color:var(--primary);vertical-align:middle;border-radius:50%;width:16px;height:16px;margin-right:12px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.result-heading{color:var(--text);margin-bottom:20px;font-size:16px;font-weight:700}.result-heading .filename{color:var(--primary)}.result-section{margin-bottom:24px}.result-section:last-child{margin-bottom:0}.section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);margin-bottom:12px;font-size:12px;font-weight:700}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--chip-bg);border:1px solid var(--border);color:var(--text);transition:var(--transition);border-radius:20px;padding:6px 14px;font-size:13px}.chip:hover{border-color:var(--text-faint);background:var(--surface-hover)}.chip.skill{border-color:var(--primary);color:var(--primary)}.chip.tool{border-color:var(--good);color:var(--good)}.chip.framework{border-color:var(--warn);color:var(--warn)}.chip.match{border-color:var(--good);color:var(--good);background:#4fbd7d0d}.chip.missing{border-color:var(--bad);color:var(--bad);background:0 0}.chip.extra{border-color:var(--border);color:var(--text-secondary)}.chip.needs-review{opacity:.75;border-style:dashed}.review-mark{opacity:.7;font-size:10px}.edu-list{color:var(--text-secondary);margin:0;padding-left:20px;font-size:14px;line-height:1.8}.entity-group{margin-bottom:12px}.entity-group-label{color:var(--text-faint);text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:700}.score-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;align-items:center;gap:20px;padding:16px 20px;display:flex}.score-ring{width:64px;height:64px;position:relative}.score-ring .score-num{justify-content:center;align-items:center;font-size:14px;font-weight:800;display:flex;position:absolute;inset:0}.score-verdict{margin-bottom:4px;font-size:16px;font-weight:700}.score-sub{color:var(--text-secondary);font-size:13px}@media (width<=768px){.mobile-header{display:flex}.thread{padding-top:20px}.empty-state h2{font-size:26px}.bubble{max-width:90%}}footer{background:var(--bg-chat);flex-shrink:0;justify-content:center;padding:16px 24px 24px;display:flex}.composer-wrap{width:100%;max-width:800px;position:relative}.attach-preview{background:var(--surface);border:1px solid var(--border);color:var(--text);border-bottom:none;border-radius:14px 14px 0 0;align-items:center;gap:10px;padding:10px 16px;font-size:13px;animation:.2s ease-out slideIn;display:none}@keyframes slideIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.attach-preview.visible{display:flex}.attach-preview .file-icon{background:var(--primary-soft);width:24px;height:24px;color:var(--primary);border-radius:8px;justify-content:center;align-items:center;font-size:11px;display:flex}.attach-preview .remove-file{cursor:pointer;color:var(--text-faint);transition:var(--transition);background:0 0;border:none;margin-left:auto;padding:4px;font-size:18px}.attach-preview .remove-file:hover{color:var(--bad)}.composer{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);border-radius:20px;align-items:flex-end;gap:8px;padding:10px 12px;transition:border-color .2s;display:flex}.composer:focus-within{border-color:var(--text-faint);box-shadow:var(--shadow-lg)}.composer.has-file{border-radius:0 0 20px 20px}.composer-input{resize:none;color:var(--text);background:0 0;border:none;outline:none;flex:1;max-height:180px;padding:8px 4px;font-family:inherit;font-size:15px;line-height:1.5}.composer-input::placeholder{color:var(--text-faint)}.icon-btn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:var(--transition);border-radius:12px;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--text-faint)}.send-btn{background:var(--primary);color:#fff;cursor:pointer;width:40px;height:40px;transition:var(--transition);border:none;border-radius:12px;justify-content:center;align-items:center;display:flex}.send-btn:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.send-btn:active:not(:disabled){transform:translateY(0)}.send-btn:disabled{opacity:.3;cursor:not-allowed;background:var(--text-faint)}.hint{text-align:center;color:var(--text-faint);margin-top:10px;font-size:12px}@media (width<=768px){footer{padding:12px 16px 16px}.composer{border-radius:16px}.composer.has-file{border-radius:0 0 16px 16px}.hint{font-size:11px}}
