:root{--bg: #ffffff;--bg-sidebar: #f7f7f8;--bg-bubble-assistant: #f4f4f5;--bg-bubble-user: #e8f0fe;--border: #e5e5e8;--text: #1a1a1e;--text-dim: #6b6b74;--accent: #2563eb;--accent-hover: #1d4ed8;--danger: #dc2626;--radius: 10px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #17181c;--bg-sidebar: #1e1f24;--bg-bubble-assistant: #26272d;--bg-bubble-user: #1e3a5f;--border: #2c2d33;--text: #ececf1;--text-dim: #9a9aa3;--accent: #3b82f6;--accent-hover: #60a5fa}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.login-screen{height:100%;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px;padding:28px;border:1px solid var(--border);border-radius:var(--radius)}.login-card h1{margin:0;font-size:22px}.login-subtitle{margin:0;color:var(--text-dim);font-size:14px}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-dim)}.login-card button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px;font-size:15px}.login-card button:hover{background:var(--accent-hover)}.login-error{color:var(--danger);font-size:13px}.app-shell{display:flex;height:100%;overflow:hidden;position:relative}.error-toast{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:100;background:var(--danger);color:#fff;padding:10px 16px;border-radius:8px;font-size:13px;max-width:min(90vw,480px);cursor:pointer;box-shadow:0 4px 14px #0003;display:flex;align-items:center;gap:10px}.error-toast-close{opacity:.8;font-size:11px}.sidebar{width:280px;height:100%;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 8px}.brand{font-weight:600}.new-project-row{display:flex;gap:6px;padding:0 14px 10px}.new-project-btn{width:100%;text-align:left;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 12px;font-size:14px;font-weight:500}.new-project-btn:hover{background:var(--accent-hover)}.project-list{flex:1;overflow-y:auto;padding:0 8px}.project-row,.chat-row{display:flex;align-items:center;justify-content:space-between;padding:8px;border-radius:8px;cursor:pointer;font-size:14px;gap:6px}.project-row:hover,.chat-row:hover{background:var(--border)}.project-row.active,.chat-row.active{background:var(--accent);color:#fff}.project-name,.chat-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-actions{display:flex;gap:2px;opacity:0;flex-shrink:0}.project-row:hover .row-actions,.chat-row:hover .row-actions{opacity:1}.chat-list{padding-left:14px;display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.new-chat-btn{text-align:left;background:none;border:none;color:var(--accent);font-size:13px;padding:6px 8px}.sidebar-footer{padding:12px 14px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:13px}.username{color:var(--text-dim)}.icon-btn{background:none;border:none;border-radius:6px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;color:var(--text)}.icon-btn:hover{background:var(--border)}.icon-btn.tiny{width:24px;height:24px;font-size:12px}.link-btn{background:none;border:none;color:var(--text-dim);font-size:12px;padding:2px 4px}.link-btn:hover{color:var(--accent)}.main-panel{flex:1;display:flex;flex-direction:column;min-width:0}.main-header{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border)}.chat-header-title{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-badge{font-size:11px;color:var(--text-dim);background:var(--bg-sidebar);border:1px solid var(--border);border-radius:20px;padding:3px 10px}.chat-view{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}.chat-empty{margin:auto;color:var(--text-dim);font-size:14px}.message{display:flex}.message.user{justify-content:flex-end}.message.assistant{justify-content:flex-start}.message-bubble{max-width:80%;border-radius:var(--radius);padding:10px 14px;background:var(--bg-bubble-assistant)}.message.user .message-bubble{background:var(--bg-bubble-user)}.message-content{font-size:15px;line-height:1.5;word-wrap:break-word}.message-content p:first-child{margin-top:0}.message-content p:last-child{margin-bottom:0}.message-content pre{background:#0000000f;padding:10px;border-radius:8px;overflow-x:auto}.message-content code{font-family:SFMono-Regular,Consolas,monospace;font-size:13px}.message-meta{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:11px;color:var(--text-dim)}.typing-indicator{display:flex;gap:4px;padding:4px 0}.typing-indicator span{width:6px;height:6px;border-radius:50%;background:var(--text-dim);animation:blink 1.2s infinite ease-in-out}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.prompt-bar{display:flex;align-items:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.prompt-bar textarea{flex:1;resize:none;max-height:160px;font-size:15px;min-height:40px}.mic-btn.recording{background:var(--danger);color:#fff}.send-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:10px 16px;font-size:14px;height:40px}.send-btn:hover{background:var(--accent-hover)}.send-btn:disabled{opacity:.5;cursor:default}.mobile-only,.sidebar-overlay{display:none}@media(max-width:820px){.mobile-only{display:inline-flex}.sidebar-wrap{position:fixed;top:0;right:25%;bottom:0;left:0;z-index:20;transform:translate(-100%);transition:transform .2s ease}.sidebar-wrap.open{transform:translate(0)}.sidebar{width:100%}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:15;opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar-overlay.open{opacity:1;pointer-events:auto}.message-bubble{max-width:92%}.knowledge-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0}}.knowledge-btn{color:var(--accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:640px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:16px;margin:0}.knowledge-toolbar{display:flex;flex-wrap:wrap;gap:8px;padding:12px 18px;border-bottom:1px solid var(--border)}.knowledge-toolbar input{flex:1;min-width:120px;font-size:13px}.knowledge-toolbar select{font-size:13px}.inactive-toggle{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-dim);white-space:nowrap}.knowledge-toolbar .new-project-btn{width:auto;white-space:nowrap}.knowledge-list{overflow-y:auto;padding:8px 10px}.knowledge-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border-radius:8px}.knowledge-row:hover{background:var(--bg-sidebar)}.knowledge-row.inactive{opacity:.55}.knowledge-row-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0;cursor:pointer}.knowledge-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.knowledge-date{font-size:11px;color:var(--text-dim);flex-shrink:0}.category-badge{font-size:10px;padding:2px 8px;border-radius:20px;color:#fff;flex-shrink:0}.cat-rule{background:#dc2626}.cat-methodology{background:#2563eb}.cat-example{background:#16a34a}.cat-faq{background:#9333ea}.cat-program{background:#d97706}.inactive-badge{font-size:10px;color:var(--text-dim);border:1px solid var(--border);border-radius:20px;padding:1px 6px;flex-shrink:0}.knowledge-form{padding:16px 18px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.knowledge-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--text-dim)}.knowledge-form textarea{font-size:14px;resize:vertical}.knowledge-form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}
