:root{--bg:#0f172a;--panel:#1e293b;--panel-2:#334155;--border:#334155;--text:#e2e8f0;--muted:#94a3b8;--accent:#6366f1;--accent-2:#4f46e5;--user-bubble:#4f46e5;--bot-bubble:#334155;--admin-bubble:#047857;--danger:#dc2626}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--accent)}button{cursor:pointer}button,input,select,textarea{font:inherit}.center{padding:24px 16px}.center,.chat-shell{max-width:760px;margin:0 auto}.chat-shell{display:flex;flex-direction:column;height:100dvh}.chat-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.chat-header h1{font-size:18px;margin:0}.chat-body{flex:1 1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.msg{max-width:80%;padding:10px 14px;border-radius:14px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word}.msg.user{align-self:flex-end;background:var(--user-bubble);color:#fff;border-bottom-right-radius:4px}.msg.assistant{background:var(--bot-bubble)}.msg.admin,.msg.assistant{align-self:flex-start;border-bottom-left-radius:4px}.msg.admin{background:var(--admin-bubble);color:#fff}.msg .role-tag{display:block;font-size:11px;opacity:.7;margin-bottom:3px}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:6px 0}.md ol,.md ul{margin:6px 0;padding-left:20px}.md li{margin:2px 0}.md a{color:#c7d2fe;text-decoration:underline;word-break:break-word}.msg.admin .md a,.msg.user .md a{color:#fff}.md code{background:rgba(0,0,0,.25);padding:1px 5px;border-radius:5px;font-size:.92em}.md h1,.md h2,.md h3{font-size:15px;margin:8px 0 4px}.chat-input{display:flex;gap:8px;padding:14px;border-top:1px solid var(--border)}.chat-input textarea{flex:1 1;resize:none;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 12px;min-height:44px;max-height:140px}.btn{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-weight:600}.btn:hover{background:var(--accent-2)}.btn.secondary{background:var(--panel-2)}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}.muted,.typing{color:var(--muted)}.typing{align-self:flex-start;font-size:13px;font-style:italic}.admin-wrap{display:grid;grid-template-columns:280px 1fr;height:100dvh}.admin-side{border-right:1px solid var(--border);background:var(--panel);overflow-y:auto}.admin-main,.admin-side{display:flex;flex-direction:column}.admin-main{overflow:hidden}.admin-tabs{display:flex;border-bottom:1px solid var(--border)}.admin-tabs button{flex:1 1;background:transparent;color:var(--muted);padding:12px;border:none;border-bottom:2px solid transparent}.admin-tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.conv-item{padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer}.conv-item.active,.conv-item:hover{background:var(--panel-2)}.conv-item .meta{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;margin-top:4px}.badge{font-size:11px;padding:2px 7px;border-radius:999px;font-weight:600}.badge.ai{background:#1e3a8a;color:#bfdbfe}.badge.human{background:#064e3b;color:#6ee7b7}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:14px}.card h3{margin:0 0 10px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field label{font-size:13px;color:var(--muted)}.field input,.field textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 11px}.source-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);gap:12px}.source-row:last-child{border-bottom:none}.section-scroll{flex:1 1;overflow-y:auto;padding:20px}.row{display:flex;gap:8px;align-items:center}.login-box{max-width:360px;margin:12vh auto;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:28px}.error{color:#fca5a5;font-size:13px}