:root{--text:#2b2b33;--bg:#f5f6fa;--surface:#fff;--border:#e0e1e8;--accent:#4f46e5;--accent-hover:#4338ca;--danger:#d92d20;color:var(--text);background:var(--bg);font:15px/145% system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}#root{min-height:100vh}button{font:inherit;cursor:pointer}input,select{font:inherit;border:1px solid var(--border);border-radius:6px;width:100%;padding:8px 10px}.primary-btn{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:10px 16px;font-weight:600}.primary-btn:hover{background:var(--accent-hover)}.primary-btn:disabled{opacity:.6;cursor:not-allowed}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;width:100%;max-width:360px;padding:32px;display:flex;box-shadow:0 4px 16px #0000000f}.auth-card h1{text-align:center;margin:0 0 10px;font-size:20px}.auth-card label{margin-top:6px;font-size:13px;font-weight:600}.auth-error{color:var(--danger);font-size:13px}.auth-success{color:#067647;font-size:13px}.auth-divider{text-align:center;color:#999;margin:4px 0;font-size:12px}.microsoft-btn{color:#fff;background:#2f2f2f;border:none;border-radius:6px;padding:10px 16px;font-weight:600}.microsoft-btn:hover{background:#1f1f1f}.app-layout{min-height:100vh;display:flex}.sidebar-toggle-btn{z-index:60;background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;font-weight:600;display:flex;position:fixed;top:16px;left:16px}.sidebar-toggle-icon{font-size:16px;line-height:1}.sidebar-backdrop{display:none}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:16px;width:230px;padding:64px 20px 20px;transition:width .2s,transform .2s;display:flex}.sidebar:not(.sidebar-open){border-right:none;width:0;padding-left:0;padding-right:0;overflow:hidden}@media (width<=768px){.sidebar{z-index:55;width:260px;height:100vh;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.sidebar:not(.sidebar-open){border-right:1px solid var(--border);width:260px;padding-left:20px;padding-right:20px;overflow-y:auto}.sidebar-backdrop{z-index:50;background:#0006;display:block;position:fixed;inset:0}}.sidebar-user{font-size:13px}.sidebar-meta{color:#777}.sidebar-nav{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar-link{color:var(--text);border-radius:6px;padding:8px 10px;font-size:14px;text-decoration:none}.sidebar-link.active,.sidebar-link:hover{background:var(--accent);color:#fff}.sidebar-divider{text-transform:uppercase;color:#999;margin-top:10px;padding:0 10px;font-size:11px}.logout-btn{border:1px solid var(--border);background:0 0;border-radius:6px;padding:8px}.chat-main{flex-direction:column;flex:1;min-width:0;max-width:800px;padding:24px 32px;display:flex}@media (width<=768px){.chat-main{max-width:100%;padding:72px 16px 16px}}.chat-main h1{margin:0 0 16px;font-size:22px}.quick-questions-groups{margin-bottom:16px}.quick-questions-group{margin-bottom:12px}.quick-questions-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6b7280);margin-bottom:6px;font-size:12px;font-weight:600}.quick-questions{flex-wrap:wrap;gap:8px;display:flex}.quick-question-btn{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:6px 12px;font-size:13px}.quick-question-btn:hover{border-color:var(--accent);color:var(--accent)}.subcategory-dropdown-row{flex-wrap:wrap;gap:8px;display:flex}.subcategory-select{background:var(--surface);border:1px solid var(--border);border-radius:8px;max-width:100%;padding:6px 10px;font-size:13px}.subcategory-select:hover{border-color:var(--accent)}.chat-history{flex-direction:column;flex:1;gap:12px;margin-bottom:16px;display:flex;overflow-y:auto}.chat-bubble{white-space:pre-wrap;border-radius:10px;max-width:90%;padding:12px 16px}.markdown-body{white-space:normal}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body table{border-collapse:collapse;width:100%;margin:10px 0;font-size:14px}.markdown-body th,.markdown-body td{border:1px solid var(--border);text-align:left;padding:6px 10px}.markdown-body th{background:var(--bg);font-weight:600}.markdown-body tr:nth-child(2n) td{background:var(--bg)}.markdown-body code{background:var(--bg);border-radius:4px;padding:1px 5px;font-size:.9em}.markdown-body ul,.markdown-body ol{margin:8px 0;padding-left:22px}.chat-bubble-user{background:var(--accent);color:#fff;align-self:flex-end}.chat-bubble-assistant{background:var(--surface);border:1px solid var(--border);align-self:flex-start}.chat-footer{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.download-btn{border:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;background:0 0;border-radius:6px;max-width:260px;padding:4px 10px;font-size:12px;overflow:hidden}.suggestion-list{flex-direction:column;gap:6px;margin-top:10px;display:flex}.suggestion-btn{background:var(--surface);border:1px solid var(--accent);color:var(--accent);text-align:left;border-radius:6px;padding:6px 12px;font-size:13px}.suggestion-btn:hover{background:var(--accent);color:#fff}.badge{border-radius:10px;padding:3px 8px;font-size:12px;font-weight:600}.badge-internet{color:#0369a1;background:#e0f2fe}.badge-high{color:#166534;background:#dcfce7}.badge-medium{color:#854d0e;background:#fef9c3}.badge-low{color:#991b1b;background:#fee2e2}.chat-input-row{gap:10px;display:flex}.tabs{gap:8px;margin-bottom:16px;display:flex}.tab{border:1px solid var(--border);background:0 0;border-radius:6px;padding:8px 14px}.tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.admin-message{border:1px solid var(--accent);background:#eef2ff;border-radius:6px;margin-bottom:16px;padding:8px 12px;font-size:13px}.admin-form{flex-direction:column;gap:10px;max-width:320px;display:flex}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th,.admin-table td{border:1px solid var(--border);text-align:left;padding:8px}.admin-table button{background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-right:6px;padding:4px 10px}
