/* Public reference assistant. All selectors are isolated from the handbook. */
.reference-chat,
.reference-chat * { box-sizing: border-box; }
.reference-chat {
  --rc-ink: #173c50;
  --rc-blue: #165f7d;
  position: fixed;
  z-index: 110;
  right: max(12px, env(safe-area-inset-right));
  bottom: max(calc(12px + var(--rc-vv-bottom, 0px)), env(safe-area-inset-bottom));
  width: min(330px, calc(100% - 24px));
  color: var(--rc-ink);
  font: 14px/1.45 Arial, sans-serif;
  overflow-wrap: anywhere;
}
.reference-chat [hidden] { display: none !important; }
.reference-chat button, .reference-chat input, .reference-chat textarea { font: inherit; }
.reference-chat button, .reference-chat a { touch-action: manipulation; }
.reference-chat button {
  min-height: 44px; border: 1px solid #b4cbd5; border-radius: 8px;
  padding: 9px 12px; background: #fff; color: var(--rc-ink); cursor: pointer;
  white-space: normal; line-height: 1.3;
}
.reference-chat button:disabled { cursor: default; opacity: .65; }
.reference-chat :focus-visible { outline: 3px solid #c07d13; outline-offset: 2px; }
.reference-chat a { color: #125a7b; text-underline-offset: 3px; }
.reference-chat .rc-launcher {
  display: block; margin-left: auto; background: var(--rc-blue);
  color: #fff; border: 3px solid #298749; box-shadow: 0 4px 18px #246b3a35;
}
.reference-chat .rc-panel {
  display: flex; flex-direction: column; min-height: 0;
  max-height: min(660px, calc(var(--rc-vv-height, 100dvh) - 24px));
  background: #fff; border: 2px solid #298749; border-radius: 12px;
  box-shadow: 0 8px 36px #15334930; overflow: hidden;
}
.reference-chat .rc-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 2px; flex-shrink: 0; padding: 3px 5px 3px 12px; background: #eaf3f7;
}
.reference-chat .rc-title { margin: 0; font-size: 15px; line-height: 1.3; font-weight: 700; flex: 1; min-width: 0; }
.reference-chat .rc-collapse, .reference-chat .rc-resize, .reference-chat .rc-help-toggle { min-width: 44px; padding: 7px; border-color: transparent; background: transparent; flex-shrink: 0; }
.reference-chat .rc-intro { margin: 7px 12px 0; font-size: 12px; line-height: 1.4; }
.reference-chat .rc-privacy { margin: 0 12px 8px; font-size: 11px; line-height: 1.35; color: #52656d; }
.reference-chat .rc-status { margin: 6px 12px; color: #415c69; font-size: 12px; line-height: 1.4; }
.reference-chat .rc-status:empty { display: none; }
.reference-chat .rc-quota {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; flex-shrink: 0;
  margin: 8px 12px 0; padding: 0; border-radius: 0;
  background: transparent; color: #285b36; font-size: 12px; line-height: 1.35;
}
.reference-chat .rc-quota strong { font-size: 12px; }
.reference-chat .rc-quota-empty { background: #fff4e5; color: #704211; }
.reference-chat .rc-topic {
  margin: 8px 10px 0; padding: 8px 10px; border: 1px solid #d2a348;
  border-radius: 8px; background: #fff8e8; color: #694510;
  font: 12px/1.4 Arial, sans-serif; flex-shrink: 0;
}
.reference-chat .rc-topic-blocked { border-color: #bc6050; background: #fff0ed; color: #7b3025; }
.reference-chat .rc-composer { display: flex; gap: 6px; margin: 8px 10px 10px; flex-shrink: 0; }
.reference-chat .rc-input {
  display: block; width: 100%; min-width: 0; min-height: 44px; max-height: 100px;
  height: 48px; resize: none; padding: 10px; border: 1px solid #8faeba;
  border-radius: 8px; background: #fff; color: var(--rc-ink); font-size: 16px;
}
.reference-chat .rc-send { background: var(--rc-blue); color: #fff; border-color: var(--rc-blue); }
.reference-chat .rc-body { overflow: auto; overscroll-behavior: contain; overflow-anchor: none; min-height: 0; padding: 0 12px; }
.reference-chat .rc-log { padding: 0; margin: 8px 0; list-style: none; }
.reference-chat .rc-message { margin: 12px 0; padding: 12px; border-radius: 10px; background: #f0f5f7; }
.reference-chat .rc-message-user { margin-left: 20px; background: #e5f1f4; }
.reference-chat .rc-message-label { display: block; font-size: 12px; margin-bottom: 6px; font-weight: 700; }
.reference-chat .rc-message-text { margin: 0; white-space: pre-wrap; }
.reference-chat .rc-markdown { white-space: normal; }
.reference-chat .rc-markdown p { margin: 0 0 10px; white-space: pre-line; }
.reference-chat .rc-markdown h3 { margin: 16px 0 8px; font-size: 15px; line-height: 1.4; }
.reference-chat .rc-markdown ul, .reference-chat .rc-markdown ol { margin: 8px 0 12px; padding-left: 22px; }
.reference-chat .rc-markdown li { margin: 6px 0; }
.reference-chat .rc-markdown > :first-child { margin-top: 0; }
.reference-chat .rc-markdown > :last-child { margin-bottom: 0; }
.reference-chat .rc-markdown a { overflow-wrap: anywhere; }
.reference-chat .rc-sources { margin: 10px 0 0; padding: 0; list-style: none; }
.reference-chat .rc-sources a { display: inline-block; padding: 10px 0; min-height: 44px; }
.reference-chat .rc-tools { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 10px 10px; flex-shrink: 0; }
.reference-chat .rc-tools button { flex: 1 1 auto; font-size: 12px; }
.reference-chat .rc-preview { margin: 8px 0 12px; padding: 12px; border: 1px solid #a7c3ce; border-radius: 10px; background: #f8fbfc; }
.reference-chat .rc-preview h3 { font-size: 15px; margin: 0 0 8px; }
.reference-chat .rc-preview-text { white-space: pre-wrap; margin: 10px 0; }
.reference-chat .rc-preview label { display: flex; align-items: flex-start; gap: 8px; padding: 8px 0; font-size: 13px; }
.reference-chat .rc-preview input { width: 20px; height: 20px; flex: 0 0 20px; margin: 2px 0; }
.reference-chat .rc-preview-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.reference-chat .rc-preview-actions button { flex: 1 1 120px; }
.reference-chat .rc-online { display: block; padding: 12px; min-height: 44px; }
.reference-chat.rc-expanded { width: min(560px, calc(100% - 24px)); }
.reference-chat.rc-expanded .rc-panel {
  height: min(660px, calc(100dvh - 24px));
  max-height: calc(100dvh - 24px);
}
.reference-chat.rc-expanded .rc-body { flex: 1 1 auto; }
.reference-chat .rc-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
body.rc-chat-present { padding-bottom: max(var(--rc-reserve, 190px), env(safe-area-inset-bottom)); }
body.rc-chat-modal { overflow: hidden; }
@media (max-width: 600px) {
  .reference-chat.rc-expanded {
    top: var(--rc-vv-top, 0px); right: 0; bottom: auto; width: 100%;
    height: var(--rc-vv-height, 100dvh);
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  }
  .reference-chat.rc-expanded .rc-panel { height: 100%; max-height: 100%; border-radius: 0; }
  .reference-chat.rc-expanded .rc-header { padding-top: 6px; padding-bottom: 6px; }
}
@media (prefers-reduced-motion: no-preference) {
  .reference-chat button { transition: background-color .15s ease; }
}
@media print { .reference-chat { display: none !important; } body.rc-chat-present { padding-bottom: 0; } }
.rc-source-note { font-size: 11px; color: #53677a; margin: 3px 0 6px; }
.rc-source-note summary { cursor: pointer; }
.rc-source-note p { margin: 5px 0; }

/* Compact controls; explanations stay one click away on touch and keyboard. */
.reference-chat .rc-intro { display:none; }
.reference-chat .rc-privacy { min-height:26px; margin:0 12px 6px; padding:2px 0; border:0; border-radius:0; text-align:left; background:transparent; font-size:11px; color:#52656d; align-self:flex-start; text-decoration:underline dotted; text-underline-offset:3px; }
.reference-chat .rc-help { background:#f5f8f9; padding:12px 14px; border-bottom:1px solid #dce6e9; overflow:auto; max-height:220px; flex-shrink:1; font-size:12px; }
.reference-chat .rc-help p { margin:0 0 9px; line-height:1.5; }
.reference-chat .rc-help a { display:inline-block; padding:4px 0; }
.reference-chat .rc-welcome { max-width:300px; margin:24px auto; text-align:center; color:#63757c; font-size:14px; }
.reference-chat .rc-composer { margin-bottom:6px; }
.reference-chat .rc-tools { padding-bottom:3px; }
.reference-chat .rc-tools button { border:0; background:transparent; padding:6px; font-size:12px; min-height:36px; }
.reference-chat .rc-quota-empty { color:#854c13; font-weight:bold; }
.reference-chat .rc-panel > * { min-width:0; }
@media(max-width:600px) { .reference-chat .rc-help { max-height:28dvh; } }
