:root{--bg: #F4F7FC;--panel: #FFFFFF;--panel-2: #EBF3FF;--input: #EEF2F9;--header: rgba(255, 255, 255, .97);--border: #DCE5F0;--text: #0F2A43;--muted: #5A6B7B;--g1: #00B09B;--g2: #0089C7;--g3: #0055A5;--g4: #0228A0;--grad: linear-gradient(135deg, #00B09B, #0089C7, #0055A5, #0228A0);--accent: #0089C7;--accent-hover: #0055A5;--ok: #0E9F6E;--error: #E02424;--pending: #B45309}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.app{height:100vh;display:flex;overflow:hidden}.sidebar{width:268px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;border-bottom:1px solid var(--border)}.sidebar-title{font-size:1rem;font-weight:600;color:var(--text)}.brand-logo{height:24px;width:auto;display:block}.sidebar-nav{display:flex;flex-direction:column;gap:4px;padding:12px;border-bottom:1px solid var(--border)}.nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:10px;padding:9px 12px;font-size:.92rem;font-weight:500;cursor:pointer}.nav-item:hover{background:var(--panel-2);color:var(--text)}.nav-item.active{background:var(--grad);color:#fff}.nav-icon{font-size:1rem;line-height:1}.sidebar-chats{display:flex;flex-direction:column;gap:10px;padding:12px;flex:1;min-height:0}.sidebar-footer{margin-top:auto;border-top:1px solid var(--border);padding:12px;display:flex;flex-direction:column;gap:10px}.user-info{display:flex;align-items:center;gap:10px;min-width:0}.user-avatar{width:34px;height:34px;flex-shrink:0;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.95rem}.user-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.user-email{font-size:.82rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}.role-badge{align-self:flex-start;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em}.signout-btn{width:100%;background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:10px;padding:9px 12px;font-size:.9rem;cursor:pointer}.signout-btn:hover{background:var(--panel-2);color:var(--error);border-color:var(--error)}.app-content{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--muted)}.auth{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}.auth-card{width:100%;max-width:400px;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:14px;box-shadow:0 12px 40px #0228a01a;border-top:4px solid transparent;border-image:var(--grad) 1}.auth-logo{height:30px;width:auto;align-self:flex-start;margin-bottom:4px}.auth-card h1{margin:0;font-size:1.4rem}.auth-subtitle{margin:0;color:var(--muted);font-size:.92rem}.auth-tabs{display:flex;gap:8px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted)}.auth-hint{margin:0;color:var(--muted);font-size:.8rem}.auth-actions{display:flex;justify-content:space-between;gap:8px}.dept-list{display:flex;flex-direction:column;gap:8px}.dept-row{display:flex;align-items:center;gap:8px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:6px 10px}.dept-row-name{font-size:.85rem;min-width:120px}.dept-row-group-id{flex:1;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--input);color:var(--text);font-size:.85rem;font-family:monospace}.dept-row-group-status{flex:1;color:var(--muted);font-size:.85rem}.dept-assign-label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted);max-width:320px}.dept-assign-label select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input);color:var(--text);font-size:.9rem}.dept-remove{background:none;border:none;color:var(--muted);font-size:1rem;line-height:1;cursor:pointer;padding:0 4px}.dept-remove:hover{color:var(--error)}.auth-form select{padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input);color:var(--text);font-size:.95rem}.linklike{background:none;border:none;color:var(--accent);font-size:.85rem;padding:0;cursor:pointer;text-decoration:underline}.linklike:disabled{color:var(--muted);cursor:default}.panel-header{display:flex;align-items:center;justify-content:space-between}.panel-header h2{margin:0}.app-main{flex:1;display:flex;flex-direction:column;padding:20px 24px;min-height:0}.new-chat{width:100%;background:var(--grad);color:#fff;border:none;border-radius:10px;padding:9px 12px;font-size:.9rem;font-weight:600;cursor:pointer}.new-chat:hover{filter:brightness(1.05)}.new-chat:disabled{opacity:.6;cursor:default}.session-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.session-empty{color:var(--muted);font-size:.85rem;padding:8px 4px}.session-item{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 10px;border-radius:8px;cursor:pointer;border:1px solid transparent}.session-item:hover{background:var(--panel-2)}.session-item.active{background:var(--panel-2);border-color:var(--border)}.session-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.session-delete{background:none;border:none;color:var(--muted);font-size:1.1rem;line-height:1;padding:0 4px;cursor:pointer;opacity:0}.session-item:hover .session-delete,.session-item.active .session-delete{opacity:1}.session-delete:hover{color:#d33}.chat{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;padding:0}.messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:20px max(24px,calc((100% - 900px)/2)) 12px}.composer{padding-left:max(24px,calc((100% - 900px)/2));padding-right:max(24px,calc((100% - 900px)/2));padding-bottom:20px}.chat-empty{justify-content:center}.chat-empty .messages{flex:0 0 auto;overflow:visible;padding-bottom:0}.chat-empty .composer{border-top:none;padding-top:0}.chat-empty .empty-title{font-size:2rem}.empty-state{color:var(--muted);text-align:center;margin:auto;padding:40px 0}.empty-title{margin:0 0 6px;font-size:1.3rem;color:var(--text)}.message{border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:var(--panel);box-shadow:0 2px 10px #0228a00a}.message-user{background:var(--panel-2);align-self:flex-end;max-width:80%}.message-assistant{align-self:flex-start;max-width:90%}.message-role{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;gap:8px}.msg-copy{background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:.68rem;letter-spacing:.02em;padding:2px 8px;cursor:pointer;opacity:0;transition:opacity .12s ease}.message:hover .msg-copy{opacity:1}.msg-copy:hover{background:var(--panel-2);color:var(--text)}.message-content{white-space:pre-wrap;line-height:1.5}.typing{color:var(--muted);font-style:italic}.markdown{white-space:normal;line-height:1.6}.markdown>*:first-child{margin-top:0}.markdown>*:last-child{margin-bottom:0}.markdown p{margin:0 0 10px}.markdown ul,.markdown ol{margin:0 0 10px;padding-left:22px}.markdown li{margin:3px 0}.markdown h1,.markdown h2,.markdown h3,.markdown h4{margin:16px 0 8px;line-height:1.3}.markdown h1{font-size:1.3rem}.markdown h2{font-size:1.15rem}.markdown h3{font-size:1.02rem}.markdown strong{font-weight:700;color:var(--text)}.markdown a{color:var(--accent);text-decoration:underline}.markdown blockquote{margin:10px 0;padding:4px 12px;border-left:3px solid var(--border);color:var(--muted)}.markdown table{border-collapse:collapse;width:100%;margin:10px 0;font-size:.9rem}.markdown th,.markdown td{border:1px solid var(--border);padding:6px 10px;text-align:left}.markdown th{background:var(--panel-2);font-weight:600}.inline-code{background:var(--panel-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em}.code-block{margin:10px 0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#0f1c2e}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#16263c;border-bottom:1px solid rgba(255,255,255,.08)}.code-lang{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#8fb0d8}.code-copy{background:transparent;color:#cfe0f5;border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:3px 10px;font-size:.76rem;cursor:pointer}.code-copy:hover{background:#ffffff1a}.code-block pre{margin:0;padding:12px 14px;overflow-x:auto}.code-block code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84rem;color:#e6edf3;white-space:pre}.composer{display:flex;gap:8px;padding-top:12px;border-top:1px solid var(--border)}.composer input{flex:1}.citations{margin-top:12px;border-top:1px dashed var(--border);padding-top:10px}.citations-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}.citations-toggle{display:inline-flex;align-items:center;gap:6px;background:var(--panel-2);color:var(--g3);border:1px solid var(--border);border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:600;cursor:pointer}.citations-toggle:hover:not(:disabled){filter:none;background:#e1edff}.citations-caret{display:inline-block;transition:transform .15s ease;font-size:.7rem}.citations-caret.open{transform:rotate(90deg)}.citations-list{margin:10px 0 0;padding-left:18px}.citation{margin-bottom:8px;font-size:.9rem}.citation-loc,.citation-type{color:var(--muted)}.citation-snippet{color:var(--muted);font-size:.82rem;margin-top:2px}.confidence-badge{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:600;width:fit-content}.confidence-low{background:#fff3e0;color:#9a5b00;border:1px solid #F3D9A6}.msg-actions{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:8px;border-top:1px dashed var(--border)}.action-btn{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px solid var(--border);border-radius:8px;padding:3px 8px;font-size:.8rem;line-height:1;color:var(--muted);cursor:pointer;opacity:.85;transition:opacity .12s ease,background .12s ease,border-color .12s ease}.action-btn:hover:not(:disabled){opacity:1;background:var(--panel-2);color:var(--text)}.action-btn.active{opacity:1;background:var(--panel-2);border-color:var(--accent);color:var(--text)}.action-btn:disabled{opacity:.45;cursor:default}.admin{display:flex;flex-direction:column;gap:20px;width:100%;flex:1;min-height:0;overflow-y:auto;padding:24px max(24px,calc((100% - 1400px)/2))}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 4px 16px #0228a00d}.panel h2{margin:0;font-size:1rem}.ingest-form{display:flex;gap:8px}.ingest-form input{flex:1}.ingest-form-col{display:flex;flex-direction:column;gap:10px}.ingest-form-col textarea{background:var(--input);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-size:.9rem;font-family:inherit;resize:vertical}.ingest-form-col textarea:focus{outline:none;border-color:var(--accent)}.ingest-actions{display:flex;gap:8px;align-items:center}.file-upload{cursor:pointer;display:inline-flex;align-items:center;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 16px;font-size:.95rem}.file-upload:hover{border-color:var(--accent);background:var(--panel-2)}.panel-hint{margin:0;color:var(--muted);font-size:.85rem}.docs-table{width:100%;border-collapse:collapse;font-size:.9rem}.jobs-table{table-layout:fixed}.docs-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.date-filter{padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input);color:var(--text);font-size:.85rem}.date-filter:disabled{opacity:.5}.chip{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:6px 14px;font-size:.85rem;cursor:pointer}.chip.active{background:var(--grad);color:#fff;border-color:transparent}.docs-count{color:var(--muted);font-size:.82rem;margin-bottom:8px}.pagination{display:flex;align-items:center;gap:12px;margin-top:12px}.pagination-label{color:var(--muted);font-size:.82rem}.doc-group+.doc-group{margin-top:18px}.doc-group-header{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.03em;padding:6px 0;margin-bottom:4px;border-bottom:2px solid var(--panel-2)}.doc-group-count{background:var(--panel-2);color:var(--muted);border-radius:999px;padding:0 8px;font-size:.72rem}.docs-table th,.docs-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}.docs-table th{color:var(--muted);font-weight:600}.doc-error{color:var(--error);font-size:.8rem}.cell-copy{display:inline-flex;align-items:center;gap:6px;max-width:100%}.cell-copy-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-copy-btn{flex:none;background:transparent;border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:.75rem;line-height:1.4;cursor:pointer;color:var(--muted)}.cell-copy-btn:hover{background:var(--panel-2)}.doc-actions{text-align:right;white-space:nowrap}.doc-delete{background:transparent;color:var(--error);border:1px solid var(--border);border-radius:8px;padding:4px 10px;font-size:.8rem;cursor:pointer}.doc-delete:hover:not(:disabled){background:var(--error);color:#fff;border-color:var(--error)}.doc-delete:disabled{opacity:.6;cursor:default}.status{padding:2px 8px;border-radius:999px;font-size:.78rem}.status-ok{background:#22c55e26;color:var(--ok)}.status-error{background:#ef444426;color:var(--error)}.status-pending{background:#f59e0b26;color:var(--pending)}input{background:var(--input);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-size:.95rem}input:focus{outline:none;border-color:var(--g2);box-shadow:0 0 0 3px #0089c726}button{background:var(--grad);color:#fff;border:none;border-radius:8px;padding:10px 16px;cursor:pointer;font-size:.95rem}button:hover:not(:disabled){filter:brightness(1.08)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--panel);color:var(--text);border:1px solid var(--border);align-self:flex-start}button.secondary:hover:not(:disabled){filter:none;background:var(--panel-2)}.error-banner{background:#ef44441f;color:var(--error);border:1px solid rgba(239,68,68,.35);border-radius:8px;padding:10px 12px;font-size:.9rem}.success-banner{background:#22c55e1f;color:var(--ok);border:1px solid rgba(34,197,94,.35);border-radius:8px;padding:10px 12px;font-size:.9rem}.suggestions{display:flex;flex-direction:column;gap:16px;width:100%;flex:1;min-height:0;overflow-y:auto;padding:24px max(24px,calc((100% - 900px)/2))}.suggestions-head h2{margin:0 0 4px;font-size:1.3rem;color:var(--text)}.suggestions-sub{margin:0;color:var(--muted);font-size:.9rem}.suggestion-form{display:flex;flex-direction:column;gap:10px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 4px 16px #0228a00d}.suggestion-form input,.suggestion-form textarea{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--input);color:var(--text);font-size:.95rem;font-family:inherit;resize:vertical}.suggestion-category{align-self:flex-start;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input);color:var(--text);font-size:.9rem}.suggestion-form-actions{display:flex;justify-content:flex-end}.suggestion-form-actions button{background:var(--grad);color:#fff;border:none;border-radius:10px;padding:9px 18px;font-size:.9rem;font-weight:600;cursor:pointer}.suggestion-form-actions button:disabled{opacity:.6;cursor:default}.suggestion-list{display:flex;flex-direction:column;gap:12px}.suggestion-empty{color:var(--muted);font-size:.9rem;padding:12px 0}.suggestion-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.suggestion-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.suggestion-title{font-weight:600;color:var(--text)}.suggestion-desc{margin:8px 0 0;color:var(--text);font-size:.9rem;white-space:pre-wrap}.suggestion-category-tag{display:inline-block;margin-top:8px;background:var(--panel-2);color:var(--g3);border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:.72rem;font-weight:600}.suggestion-delete{background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:.76rem;padding:3px 10px;cursor:pointer}.suggestion-delete.push{margin-left:auto}.suggestion-delete:hover{background:var(--panel-2);color:var(--error);border-color:var(--error)}.suggestion-meta{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--muted);font-size:.8rem}.status-badge{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.status-new{background:var(--panel-2);color:var(--g3);border:1px solid var(--border)}.status-working{background:#b453091f;color:var(--pending);border:1px solid rgba(180,83,9,.35)}.status-completed{background:#0e9f6e1f;color:var(--ok);border:1px solid rgba(14,159,110,.35)}.status-select{margin-left:auto;padding:4px 8px;border:1px solid var(--border);border-radius:8px;background:var(--input);color:var(--text);font-size:.8rem}.feedback-category-selector{margin-top:8px;padding:12px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:8px;animation:slideIn .2s ease-out}.feedback-category-selector label{font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:4px}.category-option{padding:8px 12px;background:#fff;border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem;cursor:pointer;transition:all .15s;text-align:left}.category-option:hover{background:var(--input);border-color:var(--accent);color:var(--accent)}.feedback-category-badge{padding:2px 8px;border-radius:10px;background:#e024241a;color:var(--error);font-size:.72rem;text-transform:capitalize}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
