.chatbot-trigger { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; color: var(--blue); background: var(--blue-soft); border: 1px solid #d5e2ff; border-radius: 8px; font-size: 14px; font-weight: 800; white-space: nowrap; }
.chatbot-trigger:hover { background: #dce8ff; }
.chatbot-trigger > span { font-size: 18px; }
.topbar-leading { gap: 14px; }
.topbar-actions > * { flex-shrink: 0; }
.logout-button { white-space: nowrap; }
body.chatbot-is-open { overflow: hidden; }
.chatbot-drawer { position: fixed; inset: 0 0 0 auto; margin: 0; padding: 0; width: min(440px, 100vw); max-width: 100vw; height: 100vh; height: 100dvh; max-height: 100dvh; border: 0; border-left: 1px solid var(--line); border-radius: 14px 0 0 14px; color: var(--ink); background: #f7f9fc; box-shadow: -15px 0 60px rgba(19,47,76,.2); overflow: clip; }
.chatbot-drawer[open] { display: flex; flex-direction: column; animation: chatbot-enter .18s ease-out; }
.chatbot-drawer::backdrop { background: rgba(15,35,55,.28); }
.chatbot-header { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--line); background: white; }
.chatbot-header h2 { margin: 0; color: var(--navy); font-size: 18px; letter-spacing: -.05em; }
.chatbot-close { width: 34px; height: 34px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--muted); font-size: 24px; line-height: 1; }
.chatbot-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 12px; scrollbar-gutter: stable; }
.chatbot-welcome { padding: 0; }
.chatbot-welcome h3 { margin: 0 0 6px; font-size: 19px; color: var(--navy); letter-spacing: -.035em; }
.chatbot-welcome p { color: var(--muted); font-size: 13px; line-height: 1.8; margin: 0 0 12px; }
.chatbot-examples { display: grid; gap: 6px; }
.chatbot-examples button { display: block; padding: 9px 11px; text-align: left; border: 1px solid var(--line); border-radius: 12px; background: white; color: var(--ink); font-size: 12px; line-height: 1.6; }
#chatbotExamplesTitle { margin: 0 0 7px; color: var(--blue); font-size: 12px; font-weight: 800; }
.chatbot-examples button:hover { border-color: #b9cffb; background: #fafdff; }
.chatbot-messages { display: grid; gap: 12px; }
.chatbot-message { min-width: 0; overflow-wrap: anywhere; }
.chatbot-speaker { margin: 0 0 8px; color: #667c91; font-size: 10px; font-weight: 800; }
.chatbot-text { white-space: pre-wrap; margin: 0; font-size: 13px; line-height: 1.85; }
.chatbot-message--user { margin-left: 32px; }
.chatbot-message--user .chatbot-speaker { text-align: right; }
.chatbot-message--user .chatbot-text { padding: 12px 15px; border-radius: 14px 3px 14px 14px; color: #234779; background: #e7efff; }
.chatbot-message--assistant { padding: 12px; border: 1px solid var(--line); border-radius: 3px 14px 14px 14px; background: white; }
.chatbot-message--assistant .chatbot-speaker { color: var(--blue); }
.chatbot-answer-title { margin: 0 0 10px; font-size: 14px; line-height: 1.6; color: var(--navy); }
.chatbot-bullets { margin: 12px 0 0; padding-left: 18px; font-size: 12px; line-height: 1.85; }
.chatbot-bullets li + li { margin-top: 6px; }
.chatbot-table-wrap { margin-top: 14px; overflow-x: auto; max-width: 100%; overscroll-behavior-x: contain; border: 1px solid var(--line); border-radius: 8px; }
.chatbot-table { border-collapse: collapse; width: 100%; font-size: 11px; }
.chatbot-table th, .chatbot-table td { padding: 9px 10px; text-align: left; border-bottom: 1px solid var(--line); white-space: nowrap; }
.chatbot-table th { background: #f1f5fb; color: var(--navy); font-weight: 700; }
.chatbot-table tr:last-child td { border-bottom: 0; }
.chatbot-sources { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 11px; color: var(--muted); line-height: 1.7; }
.chatbot-sources summary { cursor: pointer; font-weight: 700; color: #526c87; }
.chatbot-sources ul { padding-left: 17px; margin-bottom: 0; }
.chatbot-sources li + li { margin-top: 8px; }
.chatbot-sources a { color: var(--blue); text-underline-offset: 2px; }
.chatbot-sources span { display: block; margin-top: 2px; }
.chatbot-suggestions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 15px; }
.chatbot-suggestions button { max-width: 100%; padding: 7px 10px; border: 1px solid #dce6f8; border-radius: 8px; background: #f7faff; text-align: left; font-size: 11px; color: #315b92; line-height: 1.6; overflow-wrap: anywhere; }
.chatbot-drawer button:disabled { opacity: .5; cursor: default; }
.chatbot-status { margin: 16px 0 0; font-size: 12px; line-height: 1.6; color: #647b94; }
.chatbot-composer { flex: 0 0 auto; border-top: 1px solid var(--line); padding: 10px 12px max(10px, env(safe-area-inset-bottom)); background: white; }
.chatbot-input-wrap { display: flex; align-items: flex-end; gap: 8px; border: 1px solid #cddbed; border-radius: 12px; padding: 10px; background: #fff; }
.chatbot-input-wrap:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px #eaf1ff; }
.chatbot-input-wrap textarea { min-width: 0; flex: 1; width: 100%; max-height: 160px; resize: vertical; border: 0; padding: 2px; outline: none; color: var(--ink); font: inherit; font-size: 13px; line-height: 1.7; background: transparent; }
.chatbot-input-wrap textarea::placeholder { color: #8291a1; }
.chatbot-input-wrap button { width: 34px; height: 34px; flex: 0 0 auto; border: 0; border-radius: 9px; background: var(--blue); color: white; font-size: 23px; }
.chatbot-drawer button:focus-visible, .chatbot-drawer summary:focus-visible, .chatbot-drawer a:focus-visible, .chatbot-table-wrap:focus-visible, .chatbot-trigger:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
@keyframes chatbot-enter { from { transform: translateX(18px); } to { transform: translateX(0); } }
@media (max-width: 1600px) { .topbar .protection-mode { display: none; } }
@media (min-width: 841px) and (max-width: 1280px) { .topbar { padding-block: 12px; flex-wrap: wrap; gap: 10px; } .topbar-leading { flex: 1 1 auto; } .topbar-actions { width: 100%; padding-top: 9px; border-top: 1px solid var(--line); } }
@media (max-width: 520px) { .chatbot-drawer { width: 100vw; border-radius: 0; } .chatbot-trigger { padding: 5px 8px; font-size: 12px; } .chatbot-scroll { padding: 10px; } .chatbot-header { padding: 10px 12px; } .chatbot-composer { padding-inline: 10px; } .chatbot-input-wrap textarea { font-size: 16px; } }
@media (prefers-reduced-motion: reduce) { .chatbot-drawer[open] { animation: none; } }
@media print { .chatbot-drawer, .chatbot-trigger { display: none !important; } }

.chatbot-header-actions { display: flex; align-items: center; gap: 8px; }
#resetChatbot, #chatbotLogsToggle, #chatbotSourcesToggle { padding: 6px 8px; border: 0; border-radius: 6px; background: #f0f4f8; color: var(--navy); font-size: 11px; font-weight: 700; }
.chatbot-drawer [hidden] { display: none !important; }
.chatbot-recording-note { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.chatbot-logs { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 12px; }
.chatbot-log-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; }
.chatbot-log-filters label { display: grid; flex: 1 1 120px; gap: 4px; font-size: 11px; color: var(--muted); }
.chatbot-log-filters .chatbot-log-search { flex-basis: 220px; }
.chatbot-log-filters select, .chatbot-log-filters input { min-width: 0; width: 100%; padding: 7px; border: 1px solid var(--line); border-radius: 6px; background: white; color: var(--ink); font: inherit; font-size: 12px; }
.chatbot-log-filters button, #chatbotLogsMore { padding: 7px 10px; border: 1px solid var(--line); border-radius: 6px; background: white; color: var(--blue); font-size: 12px; }
#chatbotLogsSummary { margin: 12px 0 8px; font-size: 12px; color: var(--muted); }
.chatbot-log-entries { display: grid; gap: 8px; }
.chatbot-log-entry { padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: white; overflow-wrap: anywhere; }
.chatbot-log-meta, .chatbot-log-title { margin: 0; font-size: 10px; color: var(--muted); line-height: 1.6; }
.chatbot-log-question { margin: 5px 0; font-size: 13px; line-height: 1.7; white-space: pre-wrap; }
#chatbotLogsMore { margin-top: 10px; }
.chatbot-log-selection { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 8px 0; font-size: 12px; }
.chatbot-log-selection label, .chatbot-log-select { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.chatbot-log-selection input, .chatbot-log-select input { width: 16px; height: 16px; margin: 0; accent-color: var(--blue); }
.chatbot-log-selection button, .chatbot-log-delete-confirm button { padding: 7px 10px; border: 1px solid var(--line); border-radius: 6px; background: white; color: var(--ink); font: inherit; font-size: 12px; cursor: pointer; }
#chatbotLogsDeleteSelected, #chatbotLogsDeleteCommit { color: #b42332; border-color: #e7bdc3; background: #fff7f8; }
.chatbot-log-select { margin-bottom: 5px; color: #52677a; font-size: 11px; }
.chatbot-log-entry:has(input[data-chatbot-log-select]:checked) { border-color: #8db1ee; background: #f5f9ff; }
.chatbot-log-delete-confirm { padding: 10px; margin: 8px 0; border: 1px solid #e7bdc3; border-radius: 8px; background: #fff7f8; }
.chatbot-log-delete-confirm p { margin: 0 0 8px; font-size: 12px; line-height: 1.6; }
.chatbot-log-delete-status { margin: 8px 0; color: #52677a; font-size: 12px; line-height: 1.6; }
.chatbot-log-delete-status:empty { display: none; }
.chatbot-log-exports { display: flex; gap: 8px; margin-top: 10px; }
.chatbot-report-navigation { display: grid; gap: 7px; margin: 10px 0; padding: 10px 12px; border: 1px solid #dce7f5; border-radius: 8px; background: #f3f7fd; }
.chatbot-report-navigation p { margin: 0; font-size: 12px; line-height: 1.65; overflow-wrap: anywhere; }
.chatbot-report-navigation button { justify-self: start; max-width: 100%; padding: 7px 10px; border: 1px solid #c4d8f2; border-radius: 6px; color: #194e95; background: white; font: inherit; font-size: 12px; cursor: pointer; }
.chatbot-report-navigation button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.chatbot-report-navigation small { color: var(--muted); font-size: 11px; line-height: 1.5; }
.chatbot-analysis-examples { margin-top: 14px; }
.chatbot-analysis-examples summary { font-size: 12px; color: var(--blue); cursor: pointer; margin-bottom: 8px; }
.chatbot-report-figures { display: grid; gap: 7px; margin-top: 10px; }
.chatbot-report-figure { min-width: 0; padding: 9px 10px; border: 1px solid #dce7f5; border-radius: 7px; background: #fff; }
.chatbot-report-figure > strong { display: block; font-size: 11px; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.chatbot-report-figure > small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.chatbot-report-figure dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 12px; margin: 7px 0 0; }
.chatbot-report-figure dl > div { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 2px 6px; min-width: 0; }
.chatbot-report-figure dt { font-size: 10px; color: var(--muted); }
.chatbot-report-figure dd { margin: 0; font-size: 13px; font-weight: 700; color: var(--navy); overflow-wrap: anywhere; }
.chatbot-feedback { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 8px; }
.chatbot-feedback button { font: inherit; font-size: 11px; padding: 4px 7px; border: 1px solid var(--line); border-radius: 6px; background: white; color: var(--muted); }
.chatbot-feedback button[aria-pressed="true"] { color: var(--blue); border-color: var(--blue); background: #eff6ff; }
.chatbot-log-exports button { padding: 7px 10px; border: 1px solid var(--line); border-radius: 6px; background: white; color: var(--blue); font-size: 12px; }

.chatbot-answer-actions,.chatbot-review-controls{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.chatbot-answer-actions button,.chatbot-more,.chatbot-review-controls button,#cancelChatbot,.chatbot-source-status button{border:1px solid #d7e1ef;border-radius:6px;background:#f7f9fc;color:#315780;padding:6px 9px;cursor:pointer}.chatbot-review-controls input{min-width:0;flex:1}.chatbot-source-status{background:#fff;border:1px solid #dce5f0;padding:12px;margin:10px 0;border-radius:8px}.chatbot-source-status article{padding:10px 0;border-bottom:1px solid #e5ebf3}.chatbot-source-status input{width:100%;box-sizing:border-box;margin:6px 0}.chatbot-source-status select{max-width:100%}.chatbot-explanation summary,.chatbot-mini-chart summary,#chatbotQuality summary{cursor:pointer;color:#416588;font-size:12px}.chatbot-chart-row{display:grid;gap:4px;font-size:11px;margin:8px 0}.chatbot-chart-row meter{width:100%}.chatbot-message .chatbot-message{margin:8px 0;max-width:100%;width:auto}.chatbot-message h4{margin:12px 0 4px}.chatbot-log-filters{flex-wrap:wrap}.chatbot-review-controls select{max-width:100px}#chatbotQuality{margin:8px 0}#cancelChatbot{margin:4px 0}.chatbot-table button{white-space:nowrap}@media(max-width:500px){.chatbot-header-actions{gap:3px}.chatbot-header-actions button{font-size:11px;padding:5px}.chatbot-header{gap:6px}.chatbot-review-controls input{flex-basis:100%}}

.chatbot-answer-actions button,.chatbot-more,.chatbot-review-controls button,.chatbot-source-status button,.chatbot-table button{font:inherit;font-size:12px}.chatbot-review-controls input,.chatbot-review-controls select,.chatbot-source-status input,.chatbot-source-status select{padding:7px;border:1px solid var(--line);border-radius:6px;background:white;color:var(--ink);font:inherit;font-size:12px}.chatbot-review-controls [role=status]{flex-basis:100%}.chatbot-source-status h3{font-size:14px;margin:0 0 8px}.chatbot-source-status strong{font-size:12px}.chatbot-source-status details{font-size:11px;margin:6px 0}.chatbot-source-status summary{cursor:pointer}#chatbotQualityContent>p:first-child{font-size:12px;line-height:1.7}.chatbot-table button{border:1px solid var(--line);border-radius:5px;background:white;color:var(--blue);padding:4px 7px}
