.chart-container2 {
    position: relative;
    width: 100%; 
    max-width: 1485px; 
    height: 600px; 
    margin: 0 auto;
    display: flex;
    justify-content: center;
}

.center-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.center-text .total-value {
    font-size: 28px;
    font-weight: normal;
    color: var(--text-secondary);
}

.center-text .total-label {
	font-size: 22px;
	font-weight: normal;
	color: var(--text-secondary);
}

.dataTables_length select{
	padding-right: 30px !important;
	padding-left: 10px !important;
}

.dataTables_length{
	margin-bottom: 30px !important;
}
/* LLM Assistant UI Animations and Polish */

/* Fade in animation */
@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in {
  animation: fade-in 0.3s ease-out forwards;
}

/* Slide in from right */
@keyframes slide-in-right {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.animate-slide-in-right {
  animation: slide-in-right 0.3s ease-out forwards;
}

/* Pulse animation for status indicators */
@keyframes pulse-soft {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

.animate-pulse-soft {
  animation: pulse-soft 2s ease-in-out infinite;
}

/* Bounce animation for typing dots */
@keyframes bounce-dot {
  0%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-6px);
  }
}

.typing-dots .dot {
  display: inline-block;
  animation: bounce-dot 1.4s ease-in-out infinite;
}

/* Shimmer effect for skeleton loaders */
@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

.skeleton-shimmer {
  background: linear-gradient(90deg, var(--surface-tint) 25%, var(--grey-border) 50%, var(--surface-tint) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
}

/* Message bubble animations */
.llm-message-content {
}

/* Citation tooltip */
.citation-tooltip {
  animation: fade-in 0.2s ease-out;
}

/* Hover effects for interactive elements */
.citation-item:hover {
  background-color: rgba(59, 130, 246, 0.05);
  border-radius: 0.375rem;
}

/* Smooth transitions for all interactive elements */
button,
a,
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 0.2s;
}

/* Focus ring improvements */
input:focus,
textarea:focus,
button:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.3);
}

/* Scrollbar styling */
.overflow-y-auto {
  overflow-y: scroll;
}

.overflow-y-auto::-webkit-scrollbar {
  width: 6px;
}

.overflow-y-auto::-webkit-scrollbar-track {
  background: transparent;
}

.overflow-y-auto::-webkit-scrollbar-thumb {
  background-color: rgba(156, 163, 175, 0.5);
  border-radius: 3px;
}

.overflow-y-auto::-webkit-scrollbar-thumb:hover {
  background-color: rgba(156, 163, 175, 0.8);
}

/* Document panel specific styles */
.document-content .doc-line {
  transition: background-color 0.2s ease;
}

.document-content .doc-line:hover {
  background-color: rgba(252, 211, 77, 0.1);
}

/* Message action buttons */
.message-actions button {
  transition: all 0.2s ease;
}

.message-actions button:hover {
  transform: translateY(-1px);
}

/* Gradient text for branding */
.gradient-text {
  background: linear-gradient(135deg, var(--blue-mid) 0%, var(--purple-mid) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Card hover effects */
.card-hover {
  transition: all 0.2s ease;
}

.card-hover:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

/* Loading state for buttons */
.btn-loading {
  position: relative;
  pointer-events: none;
}

.btn-loading::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  top: 50%;
  left: 50%;
  margin-left: -8px;
  margin-top: -8px;
  border: 2px solid transparent;
  border-top-color: currentColor;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

/* Thread item animations */
#prev-threads li {
  animation: fade-in 0.3s ease-out;
  animation-fill-mode: both;
}

#prev-threads li:nth-child(1) { animation-delay: 0.05s; }
#prev-threads li:nth-child(2) { animation-delay: 0.1s; }
#prev-threads li:nth-child(3) { animation-delay: 0.15s; }
#prev-threads li:nth-child(4) { animation-delay: 0.2s; }
#prev-threads li:nth-child(5) { animation-delay: 0.25s; }

/* Suggested prompt cards */
#suggested-prompts button {
  animation: fade-in 0.4s ease-out;
  animation-fill-mode: both;
}

#suggested-prompts button:nth-child(1) { animation-delay: 0.1s; }
#suggested-prompts button:nth-child(2) { animation-delay: 0.2s; }
#suggested-prompts button:nth-child(3) { animation-delay: 0.3s; }
#suggested-prompts button:nth-child(4) { animation-delay: 0.4s; }

/* Active filter chips */
#active-filters-bar span {
  animation: fade-in 0.2s ease-out;
}

/* Error message styling */
#error_messages > div {
  animation: fade-in 0.3s ease-out;
}

/* Toast notifications */
.toast {
  animation: slide-in-right 0.3s ease-out;
}

/* Empty state illustrations */
#ai-instructions {
  animation: fade-in 0.5s ease-out;
}

/* Keyboard shortcut styling */
kbd {
  font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;
}

/* ===== NEW UI POLISH ===== */

/* Hide conversations sidebar by default on mobile */
#threads-container.hidden {
  display: none;
}

#threads-container {
  display: block;
}

/* Smooth toggle animation */
#threads-container {
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Message content styling */
#messages .llm-message-content {
  max-width: 100%;
}

/* Input area focus improvements */
textarea:focus {
  border-color: var(--grey-border) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Button hover and focus states */
button {
  transition: all 0.2s ease;
}

/* Greeting text styling */
#ai-instructions h1 {
  letter-spacing: -0.02em;
  line-height: 1.1;
}

/* Conversation list item active state */
#prev-threads li.active {
  background-color: var(--surface-tint);
  border-left-color: var(--grey-ink);
}

/* Smooth transitions for interactive elements */
#threads-container {
  will-change: transform, opacity;
}

/* ===== FIX MASTER SCROLLBAR ===== */

[data-controller="history"] {
  height: calc(100vh - 64px);
  overflow: hidden;
}

#threads-container {
  height: 100%;
}
.llm-response-toolbar {
  pointer-events: none;
  margin-bottom: 0.15rem;
}
.llm-response-action {
  pointer-events: auto;
  height: 1.45rem;
  min-width: 2.65rem;
  padding: 0 0.55rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--glass-strong);
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  box-shadow: 0 1px 2px rgba(15,23,42,0.06);
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.llm-response-action:hover {
  background: var(--bg-surface);
  border-color: var(--text-muted);
  color: var(--text-primary);
  box-shadow: 0 4px 10px rgba(15,23,42,0.10);
}
.llm-response-action--serff:hover {
  border-color: var(--purple-border);
  color: var(--purple-dark);
  box-shadow: 0 4px 10px rgba(124,58,237,0.12);
}
.llm-response-action--default:hover {
  border-color: var(--blue-border);
  color: var(--blue-dark);
  box-shadow: 0 4px 10px rgba(37,99,235,0.12);
}
.llm-download-error {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0.4rem 0 0.55rem;
  padding: 0.55rem 0.7rem;
  background: var(--danger-tint);
  border: 1px solid var(--danger-soft);
  border-left: 3px solid var(--danger);
  border-radius: 6px;
  color: var(--danger-dark);
  font-size: 0.78rem;
  line-height: 1.4;
  box-shadow: 0 1px 2px rgba(220,38,38,0.08);
}
.llm-download-error-icon {
  flex: 0 0 auto;
  width: 1.05rem;
  height: 1.05rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--danger);
  color: var(--bg-surface);
  border-radius: 999px;
  font-weight: 800;
  font-size: 0.7rem;
  line-height: 1;
}
.llm-download-error-text {
  flex: 1 1 auto;
  word-break: break-word;
}
.llm-download-error-dismiss {
  flex: 0 0 auto;
  background: transparent;
  border: none;
  color: var(--danger-dark);
  font-size: 1.05rem;
  line-height: 1;
  cursor: pointer;
  padding: 0 0.25rem;
}
.llm-download-error-dismiss:hover { color: var(--danger-dark); }
.llm-message-content {
  font-size: 0.875rem;
  line-height: 1.62;
  color: var(--text-primary);
}
.llm-message-content p,
.llm-message-content li,
.llm-message-content blockquote,
.llm-message-content dd,
.llm-message-content dt {
  font-size: 0.875rem;
}
.llm-message-content p {
  margin: 0.45rem 0 0.85rem;
}
.llm-message-content .llm-table-wrap {
  position: relative;
  margin: 1.15rem 0 1.45rem 0;
}
.llm-message-content .llm-table-inner {
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
  scrollbar-color: var(--border) var(--surface-tint);
  scrollbar-width: thin;
}
.llm-message-content table {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  min-width: 980px;
  background: var(--bg-surface);
  font-size: 0.75rem;
}
.llm-message-content table thead tr {
  background: var(--surface-tint);
}
.llm-message-content table th,
.llm-message-content table td {
  padding: 0.6rem 0.7rem;
  vertical-align: top;
  text-align: left;
  line-height: 1.42;
  font-size: 0.75rem;
}
.llm-message-content table th {
  background: transparent;
  color: var(--text-primary);
  font-weight: 700;
  letter-spacing: 0.025em;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 2;
  text-transform: uppercase;
  font-size: 0.68rem;
}
.llm-message-content table td {
  color: var(--text-primary);
  border-bottom: 1px solid var(--surface-tint);
}
.llm-message-content table tbody tr {
  background-color: var(--bg-surface);
  transition: background-color 160ms ease;
}
.llm-message-content table tbody tr:nth-child(odd) {
  background-color: var(--surface-tint);
}
.llm-message-content table tbody tr:hover {
  background-color: var(--surface-tint);
}
.llm-message-content table th:first-child,
.llm-message-content table td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  background: inherit;
  box-shadow: 1px 0 0 var(--surface-tint);
}
.llm-message-content table th:first-child {
  z-index: 3;
  background: var(--surface-tint);
}
.llm-message-content table tbody tr:last-child td {
  border-bottom: none;
}
.llm-message-content table a {
  color: var(--blue-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.llm-message-content code,
.llm-message-content table td code,
.llm-message-content table th code {
  font-family: inherit;
  font-size: inherit;
  background: transparent;
  padding: 0;
  border: 0;
  color: inherit;
}
.llm-message-content .llm-doc-link-inline {
  color: var(--blue) !important;
  text-decoration: underline;
  text-decoration-color: var(--blue-border);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  font-weight: 500;
  transition: text-decoration-color 0.15s ease, color 0.15s ease;
}
.llm-message-content .llm-doc-link-inline:hover {
  color: var(--blue-dark) !important;
  text-decoration-color: var(--blue);
}
.llm-message-content.is-serff .llm-doc-link-inline {
  color: var(--purple) !important;
  text-decoration-color: var(--purple-border);
}
.llm-message-content.is-serff .llm-doc-link-inline:hover {
  color: var(--purple-dark) !important;
  text-decoration-color: var(--purple);
}
/* "[full filing]" annotation shown to the right of an inline SERFF document link.
   Unscoped on purpose: it appears both in the 103 message content (.llm-message-content)
   and in the workflow dashboards (121-126), which are not wrapped in .llm-message-content.
   It only ever renders in SERFF/purple contexts, so it uses the dashboard purple. */
.llm-doi-filing-link {
  color: var(--purple) !important;
  font-size: 0.85em;
  font-weight: 500;
  /* !important so the dashboards' anchor resets (e.g. .wf122-src-serff a { text-decoration: none })
     and Tailwind preflight can't strip the underline — keeps it consistent with the 103 view. */
  text-decoration: underline !important;
  text-decoration-color: rgba(124, 58, 237, 0.4) !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  white-space: nowrap;
  transition: text-decoration-color 0.15s ease, color 0.15s ease;
}
.llm-doi-filing-link:hover {
  color: var(--purple-dark) !important;
  text-decoration-color: var(--purple) !important;
}
.llm-message-content ol {
  padding-left: 1.5em;
  margin: 0.25em 0 1em 0;
}
.llm-message-content ol ol {
  list-style-type: lower-alpha;
  margin-top: 0.35em;
}
.llm-message-content ul {
  padding-left: 2.25em;
  margin: 0.25em 0 1em 0;
}
.llm-message-content li {
  margin-bottom: 0.15em;
}
.llm-message-content hr {
  margin: 1.5rem 0;
  border: 0;
  border-top: 1px dotted var(--border);
}
.llm-message-content a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.llm-message-content h1,
.llm-message-content h2,
.llm-message-content h3,
.llm-message-content h4,
.llm-message-content h5,
.llm-message-content h6 {
  font-weight: 700;
  line-height: 1.3;
  margin: 1.65rem 0 0.65rem 0;
  color: var(--text-primary);
}
.llm-message-content h1 { font-size: 1.2rem; }
.llm-message-content h2 {
  font-size: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--border);
}
.llm-message-content h3 { font-size: 0.95rem; }
.llm-message-content h4,
.llm-message-content h5,
.llm-message-content h6 { font-size: 0.9rem; }
.llm-message-content h2.llm-heading-numbered {
  font-size: 0.95rem;
  margin-top: 1rem;
  padding-left: 1rem;
  font-weight: 600;
}
.llm-message-content h3.llm-heading-numbered {
  font-size: 0.9rem;
  padding-left: 1.5rem;
  font-weight: 600;
}
.llm-message-content h2.llm-heading-numbered .llm-heading-num,
.llm-message-content h3.llm-heading-numbered .llm-heading-num {
  min-width: 1.4rem;
  height: 1.4rem;
}
.llm-message-content .llm-heading-num--len-1 { font-size: 0.78em; }
.llm-message-content .llm-heading-num--len-2,
.llm-message-content .llm-heading-num--len-3,
.llm-message-content .llm-heading-num--len-4 { font-size: 0.75rem; padding: 0 0.6rem; }
.llm-message-content h2.llm-heading-numbered .llm-heading-num,
.llm-message-content h3.llm-heading-numbered .llm-heading-num { font-size: 0.75rem; }
.llm-message-content h2.llm-heading-numbered .llm-heading-num--len-2,
.llm-message-content h2.llm-heading-numbered .llm-heading-num--len-3,
.llm-message-content h2.llm-heading-numbered .llm-heading-num--len-4,
.llm-message-content h3.llm-heading-numbered .llm-heading-num--len-2,
.llm-message-content h3.llm-heading-numbered .llm-heading-num--len-3,
.llm-message-content h3.llm-heading-numbered .llm-heading-num--len-4 { padding: 0 0.55rem; }
.llm-message-content .llm-numbered-section-body--h2 {
  padding-left: 1rem;
}
.llm-message-content .llm-numbered-section-body--h3 {
  padding-left: 1.5rem;
}
.llm-message-content .llm-numbered-section-body--h4,
.llm-message-content .llm-numbered-section-body--h5,
.llm-message-content .llm-numbered-section-body--h6 {
  padding-left: 2rem;
}
.llm-message-content td.llm-table-index-cell,
.llm-message-content th.llm-table-index-head {
  width: 2.4rem;
  text-align: center;
  padding-left: 0.4rem !important;
  padding-right: 0.4rem !important;
}
.llm-message-content td.llm-table-index-cell {
  font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: var(--text-secondary);
  font-size: 0.75rem;
  letter-spacing: 0.02em;
}
.llm-message-content > h1:first-child,
.llm-message-content > h2:first-child,
.llm-message-content > h3:first-child {
  margin-top: 0;
}
.llm-message-content .llm-heading-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  height: 1.25rem;
  padding: 0 0.35rem;
  border-radius: 4px;
  border: 1px solid var(--blue-border);
  background: var(--blue-tint);
  color: var(--blue-dark);
  font-weight: 700;
  font-size: 0.72rem;
  line-height: 1;
  margin-right: 0.55rem;
  vertical-align: middle;
  letter-spacing: 0;
}
.llm-message-content.is-serff .llm-heading-num {
  background: var(--purple-tint);
  color: var(--purple-dark);
  border-color: var(--purple-border);
}
.llm-message-content h2,
.llm-message-content h3 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.1rem;
}

.llm-toc {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  align-items: center;
  padding: 0.5rem 0;
  margin: 0 0 1rem;
  background: linear-gradient(180deg, rgb(var(--c-white) / 0.96) 0%, rgb(var(--c-white) / 0.85) 100%);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--border);
}
.llm-toc-label {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
  margin-right: 0.4rem;
}
.llm-toc-item {
  font-size: 0.75rem;
  padding: 0.22rem 0.65rem;
  border-radius: 999px;
  background: var(--surface-tint);
  color: var(--text-secondary) !important;
  text-decoration: none !important;
  border: 1px solid transparent;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
  white-space: nowrap;
  cursor: pointer;
  max-width: 22ch;
  overflow: hidden;
  text-overflow: ellipsis;
}
.llm-toc-item:hover {
  background: var(--border);
  color: var(--text-primary) !important;
  transform: translateY(-1px);
}
.llm-toc-item.active {
  background: var(--purple-tint);
  color: var(--purple-dark) !important;
  border-color: var(--purple-border);
}

.llm-message-content strong.llm-mention-active,
.llm-message-content b.llm-mention-active {
  background: linear-gradient(180deg, transparent 55%, rgba(250, 204, 21, 0.55) 55%);
  border-radius: 2px;
  transition: background 0.18s ease;
}
.llm-message-content strong.llm-mention-locked,
.llm-message-content b.llm-mention-locked {
  background: linear-gradient(180deg, transparent 55%, rgba(250, 204, 21, 0.85) 55%);
  box-shadow: 0 0 0 1px rgba(202, 138, 4, 0.4);
  border-radius: 2px;
}

.llm-message-content sup.llm-source-cite {
  margin-left: 1px;
  line-height: 0;
}
.llm-message-content sup.llm-doc-link {
  margin-left: 2px;
  line-height: 0;
}
.llm-message-content .llm-doc-link-anchor {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  background: var(--purple-tint);
  color: var(--purple-dark) !important;
  border: 1px solid var(--purple-border);
  font-size: 0.75rem;
  font-weight: 700;
  text-decoration: none !important;
  vertical-align: super;
  line-height: 1;
  transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.llm-message-content .llm-doc-link-anchor:hover {
  background: var(--purple-border);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(124, 58, 237, 0.18);
}
.llm-message-content.is-serff .llm-doc-link-anchor {
  background: var(--purple-tint);
  color: var(--purple-dark) !important;
  border-color: var(--purple-border);
}
.llm-message-content.is-serff .llm-doc-link-anchor:hover {
  background: var(--purple-border);
}
.llm-message-content .llm-source-cite-link {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 8px;
  background: var(--purple-tint);
  color: var(--purple-dark) !important;
  font-size: 0.75rem;
  font-weight: 700;
  text-decoration: none !important;
  border: 1px solid var(--purple-border);
  vertical-align: super;
  line-height: 1.4;
  transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.llm-message-content .llm-source-cite-link:hover {
  background: var(--purple-border);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(124, 58, 237, 0.2);
}
.llm-source-target-flash {
  animation: llm-source-flash 1.6s ease-out;
}
@keyframes llm-source-flash {
  0%   { background: rgba(254, 243, 199, 0.9); }
  40%  { background: rgba(254, 243, 199, 0.9); }
  100% { background: transparent; }
}

.llm-message-content .llm-patch-edit-header {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 1.4rem 0 0.9rem;
  position: relative;
}
.llm-message-content .llm-patch-edit-header::before,
.llm-message-content .llm-patch-edit-header::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--border), transparent);
}
.llm-message-content .llm-patch-edit-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.7rem;
  margin: 0 0.7rem;
  background: linear-gradient(180deg, var(--purple-tint) 0%, var(--purple-tint) 100%);
  color: var(--purple-dark);
  border: 1px solid var(--purple-border);
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 1px 2px rgba(91,33,182,0.08);
}
.llm-message-content .llm-patch-label {
  margin: 0.65rem 0 0.35rem;
}
.llm-message-content .llm-patch-label-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.15rem 0.55rem;
  border-radius: 6px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.2;
}
.llm-message-content .llm-patch-label-pill--from {
  background: var(--danger-tint);
  color: var(--danger-dark);
  border: 1px solid var(--danger-tint);
}
.llm-message-content .llm-patch-label-pill--from::before {
  content: "−";
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1;
}
.llm-message-content .llm-patch-label-pill--to {
  background: var(--success-tint);
  color: var(--success-dark);
  border: 1px solid var(--success-soft);
}
.llm-message-content .llm-patch-label-pill--to::before {
  content: "+";
  font-size: 0.8rem;
  font-weight: 900;
  line-height: 1;
}
.llm-message-content .llm-patch-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0.85rem 0 0.45rem;
  gap: 0.55rem;
}
.llm-message-content .llm-patch-divider::before,
.llm-message-content .llm-patch-divider::after {
  content: "";
  flex: 0 1 30%;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--border), transparent);
}
.llm-message-content .llm-patch-divider-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  background: var(--surface-tint);
  color: var(--text-secondary);
  border: 1px solid var(--border);
  font-size: 0.78rem;
  font-weight: 700;
  box-shadow: inset 0 1px 0 rgb(var(--c-white) / 0.7);
}
.llm-message-content .llm-patch-block {
  padding: 0.55rem 0.85rem;
  border-radius: 8px;
  margin: 0 0 0.4rem;
}
.llm-message-content .llm-patch-block > :first-child { margin-top: 0; }
.llm-message-content .llm-patch-block > :last-child  { margin-bottom: 0; }
.llm-message-content .llm-patch-block--from {
  background: var(--danger-tint);
  border: 1px solid var(--danger-tint);
  color: var(--danger-dark);
  text-decoration-line: underline line-through;
  text-decoration-color: rgba(185,28,28,0.62);
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.llm-message-content .llm-patch-block--from a,
.llm-message-content .llm-patch-block--from strong,
.llm-message-content .llm-patch-block--from b,
.llm-message-content .llm-patch-block--from em,
.llm-message-content .llm-patch-block--from i { color: inherit; }
.llm-message-content .llm-patch-block--from .llm-heading-num {
  background: var(--danger-tint);
  border-color: var(--danger-soft);
  color: var(--danger-dark);
}
.llm-message-content .llm-patch-block--to {
  background: var(--blue-tint);
  border: 1px solid var(--blue-border);
  color: var(--blue-dark);
}
.llm-message-content .llm-patch-block--to a,
.llm-message-content .llm-patch-block--to strong,
.llm-message-content .llm-patch-block--to b,
.llm-message-content .llm-patch-block--to em,
.llm-message-content .llm-patch-block--to i { color: inherit; }
.llm-message-content .llm-patch-block--to .llm-heading-num {
  background: var(--blue-border);
  border-color: var(--blue-border);
  color: var(--blue-dark);
}

.llm-sources-panel {
  margin-top: 1.6rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--border);
}
.llm-sources-panel-header {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  gap: 0.45rem;
  margin-bottom: 0.55rem;
  text-align: left;
}
.llm-sources-panel-title {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--text-secondary);
}
.llm-sources-panel-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.3rem;
  padding: 0 0.4rem;
  height: 1.15rem;
  border-radius: 999px;
  background: var(--purple-tint);
  color: var(--purple-dark);
  border: 1px solid var(--purple-border);
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
}
.llm-message-content.is-serff .llm-sources-panel-count {
  background: var(--purple-tint);
  color: var(--purple-dark);
  border-color: var(--purple-border);
}
.llm-sources-panel-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}
@media (max-width: 720px) {
  .llm-sources-panel-grid { grid-template-columns: 1fr; }
}
.llm-source-card {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.5rem 0.65rem;
  background: rgb(var(--c-white) / 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(148,163,184,0.28);
  border-radius: 10px;
  text-decoration: none !important;
  color: var(--text-primary) !important;
  font-size: 0.75rem;
  line-height: 1.3;
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
  min-width: 0;
  box-shadow: inset 0 1px 0 rgb(var(--c-white) / 0.7);
}
.llm-source-card:hover {
  border-color: rgba(124,58,237,0.35);
  background: rgb(var(--c-white) / 0.78);
  transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgb(var(--c-white) / 0.8), 0 6px 16px rgba(124,58,237,0.10);
}
.llm-message-content.is-serff .llm-source-card {
  border-color: rgba(167,139,250,0.28);
}
.llm-message-content.is-serff .llm-source-card:hover {
  border-color: rgba(124,58,237,0.38);
  background: rgb(var(--c-white) / 0.80);
  box-shadow: inset 0 1px 0 rgb(var(--c-white) / 0.8), 0 6px 16px rgba(124,58,237,0.12);
}
.llm-source-card[data-extra="1"] { display: none; }
.llm-sources-panel:not([data-collapsed="1"]) .llm-source-card[data-extra="1"] { display: flex; }

.llm-sources-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem;
}
@media (max-width: 720px) {
  .llm-sources-groups { grid-template-columns: 1fr; }
}
.llm-source-group {
  border: 1px solid rgba(148,163,184,0.28);
  border-radius: 8px;
  padding: 0.55rem 0.7rem;
  background: rgb(var(--c-white) / 0.58);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: inset 0 1px 0 rgb(var(--c-white) / 0.72);
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.llm-source-group:hover {
  border-color: rgba(124,58,237,0.35);
  background: rgb(var(--c-white) / 0.82);
  transform: translateY(-2px);
  box-shadow: inset 0 1px 0 rgb(var(--c-white) / 0.85), 0 8px 18px rgba(15,23,42,0.09);
}
.llm-message-content.is-serff .llm-source-group {
  border-color: rgba(167,139,250,0.28);
}
.llm-message-content.is-serff .llm-source-group:hover {
  border-color: rgba(124,58,237,0.38);
  background: rgb(var(--c-white) / 0.84);
  box-shadow: inset 0 1px 0 rgb(var(--c-white) / 0.85), 0 8px 18px rgba(124,58,237,0.12);
}
.llm-source-group[data-extra="1"] { display: none; }
.llm-sources-panel:not([data-collapsed="1"]) .llm-source-group[data-extra="1"] { display: block; }

.llm-source-group-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  margin-bottom: 0.25rem;
}
.llm-source-group-id {
  flex: 1;
  min-width: 0;
}
/* State box + SERFF tracking number row, sitting above the group name (uc101 filing header). */
.llm-source-group-idline {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.2rem;
}
.llm-source-group-carrier-name {
  font-weight: 700;
  font-size: 0.8rem;
  color: var(--purple-dark);
  text-transform: none;
  letter-spacing: 0;
  line-height: 1.3;
  /* Always reserve 2 lines (clamp longer) so two side-by-side cards keep the ribbon aligned. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.08rem;
}
.llm-source-group-carrier-writing {
  font-size: 0.72rem;
  color: var(--text-secondary);
  line-height: 1.3;
  font-weight: 500;
}
.llm-source-group-tags {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.3rem;
  flex-shrink: 0;
  text-align: right;
}
.llm-source-group-state {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-weight: 700;
  font-size: 0.68rem;
  color: var(--purple-dark);
  letter-spacing: 0.06em;
  padding: 0.08rem 0.4rem;
  border: 1px solid var(--purple-border);
  border-radius: 4px;
  background: var(--purple-tint);
}
.llm-source-group-serff {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--purple-dark);
  letter-spacing: 0.01em;
}
/* When the SERFF tracking number is a link to the filings database, keep the card
   look clean and surface the underline only on hover. */
a.llm-source-group-serff {
  text-decoration: none;
  cursor: pointer;
  transition: color 0.12s ease;
}
a.llm-source-group-serff:hover {
  color: var(--purple);
  text-decoration: underline;
}
.llm-source-group-sep {
  color: var(--border);
  font-weight: 400;
  margin: 0 0.05rem;
}
.llm-source-group-meta {
  font-size: 0.7rem;
  color: var(--text-secondary);
  margin-bottom: 0.25rem;
  line-height: 1.3;
}
.llm-source-group-status {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.05rem 0.45rem;
  /* Pill outlined in the darker status color (currentColor = the ribbon's text color). */
  border: 1px solid currentColor;
  border-radius: 9999px;
  background: rgb(var(--c-white) / 0.45);
}
/* Fixed 3-column grid so the classification (TOI/Sub-TOI/Product) and dates
   (Submission/Decision/Effective) rows share the same column positions and line up. */
.llm-source-group-class {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.4rem 1rem;
  margin-bottom: 0.4rem;
}
/* Rate-change metrics: all 4 in a single row; long titles may wrap to 2 lines. */
.llm-source-group-rates .llm-source-group-class {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.4rem 0.6rem;
  margin-bottom: 0;
}
/* Every metric title reserves 2 lines and values bottom-pin, so all values sit on one level. */
.llm-source-group-rates .llm-source-group-field {
  display: flex;
  flex-direction: column;
}
.llm-source-group-rates .llm-source-group-field-label {
  min-height: 1.56rem;
}
.llm-source-group-rates .llm-source-group-field-value {
  margin-top: auto;
}
.llm-source-group-field {
  min-width: 0;
}
.llm-source-group-field-label {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  line-height: 1.3;
  margin-bottom: 0.05rem;
}
.llm-source-group-field-value {
  font-size: 0.72rem;
  color: var(--text-primary);
  font-weight: 500;
  line-height: 1.3;
  /* Single line so the classification/date rows stay equal-height across side-by-side cards. */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Light-purple full-bleed band; negative margins match the card's 0.7rem horizontal padding so it
   spans edge to edge and visually separates the identity/metadata block from the documents below. */
.llm-source-group-ribbon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.45rem -0.7rem;
  padding: 0.35rem 0.7rem;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
}
/* Whole ribbon tinted by status; the status word + objection text inherit this color. */
.llm-source-group-ribbon--ok       { background: var(--success-tint); border-color: var(--success-soft); color: var(--success-dark); }
.llm-source-group-ribbon--pending  { background: var(--warning-tint); border-color: var(--warning-soft); color: var(--warning-dark); }
.llm-source-group-ribbon--rejected { background: var(--danger-tint); border-color: var(--danger-tint); color: var(--danger-dark); }
.llm-source-group-ribbon--missing  { background: var(--purple-tint); border-color: var(--purple-border); color: var(--purple-dark); }
.llm-source-group-ribbon--plain    { background: var(--surface-tint); border-color: var(--border); color: var(--text-secondary); }
.llm-source-group-objections {
  font-size: 0.7rem;
  font-weight: 500;
}
.llm-source-group-rates {
  margin: 0.35rem 0 0.4rem;
}
.llm-source-group-rates-title,
.llm-source-group-docs-title {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-secondary);
  margin-bottom: 0.2rem;
}
.llm-source-group-docs-title {
  margin-top: 0.5rem;
}
/* Hairline divider only when a rate section sits above (avoids a double line under the ribbon). */
.llm-source-group-docs-title--divided {
  margin-top: 0.6rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(148,163,184,0.28);
}
.llm-source-group-rate-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.68rem;
  line-height: 1.3;
}
.llm-source-group-rate-table th {
  text-align: left;
  font-weight: 600;
  color: var(--text-secondary);
  padding: 0.15rem 0.5rem 0.15rem 0;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.llm-source-group-rate-table td {
  padding: 0.15rem 0.5rem 0.15rem 0;
  color: var(--text-primary);
  border-bottom: 1px solid var(--surface-tint);
  white-space: nowrap;
}
.llm-source-group-rate-table td:first-child {
  white-space: normal;
  color: var(--text-primary);
  font-weight: 500;
}
.llm-source-group-docs {
  list-style: disc;
  padding-left: 1rem;
  margin: 0;
}
.llm-source-group-docs li {
  padding: 0.08rem 0;
  color: var(--text-muted);
  font-size: 0.72rem;
}
.llm-source-group-docs li::marker {
  color: var(--border);
}
/* Grouped source cards are serff-only, so links are purple by default (not dependent on an
   .is-serff ancestor, which doesn't always reach the sources panel). */
.llm-source-group-docs a {
  color: var(--purple) !important;
  text-decoration: underline;
  text-decoration-color: var(--purple-border);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  font-size: 0.72rem;
  font-weight: 500;
  transition: text-decoration-color 0.15s ease, color 0.15s ease;
}
.llm-source-group-docs a:hover {
  color: var(--purple-dark) !important;
  text-decoration-color: var(--purple);
}
.llm-source-card-num {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.4rem;
  height: 1.4rem;
  padding: 0 0.4rem;
  border-radius: 999px;
  background: var(--purple-tint);
  color: var(--purple-dark);
  border: 1px solid var(--purple-border);
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
}
.llm-message-content.is-serff .llm-source-card-num {
  background: var(--purple-tint);
  color: var(--purple-dark);
  border-color: var(--purple-border);
}
.llm-source-card-kind {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.1rem 0.45rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
}
.llm-source-card-kind.kind-filing { background: var(--blue-tint); color: var(--blue); border: 1px solid var(--blue-border); }
.llm-source-card-kind.kind-call   { background: var(--success-tint); color: var(--success-dark); border: 1px solid var(--success-soft); }
.llm-source-card-kind.kind-event  { background: var(--warning-tint); color: #d97706; border: 1px solid var(--warning-soft); }
.llm-source-card-kind.kind-doi    { background: var(--purple-tint); color: var(--purple-dark); border: 1px solid var(--purple-border); }
.llm-source-card-kind.kind-web    { background: var(--surface-tint); color: var(--text-secondary); border: 1px solid var(--border); }
.llm-source-card-kind.kind-doc    { background: var(--surface-tint); color: var(--text-primary); border: 1px solid var(--border); }
.llm-source-card-title {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: 500;
}
.llm-source-card-arrow {
  flex-shrink: 0;
  opacity: 0;
  font-size: 0.85rem;
  color: var(--text-secondary);
  transition: opacity 0.18s ease, transform 0.18s ease;
}
.llm-source-card:hover .llm-source-card-arrow {
  opacity: 1;
  transform: translate(1px, -1px);
}

.llm-message-content table th.llm-sortable {
  cursor: pointer;
  user-select: none;
  padding-right: 2rem !important;
  position: sticky;
  top: 0;
  transition: background 0.15s ease;
}
.llm-message-content table th.llm-sortable:hover {
  background: var(--border) !important;
}
.llm-message-content table th.llm-sortable::after {
  content: '↕';
  position: absolute;
  right: 0.45rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.25rem;
  height: 1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: var(--bg-surface);
  opacity: 0.85;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text-secondary);
  transition: opacity 0.15s ease, color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
  box-shadow: 0 1px 1px rgba(15, 23, 42, 0.04);
}
.llm-message-content table th.llm-sortable:hover::after {
  opacity: 1;
  background: var(--surface-tint);
  border-color: var(--text-muted);
  color: var(--text-primary);
}
.llm-message-content table th[data-sort="asc"]::after {
  content: '▲';
  opacity: 1;
  color: var(--bg-surface);
  background: var(--blue);
  border-color: var(--blue);
  box-shadow: 0 2px 4px rgba(37, 99, 235, 0.25);
}
.llm-message-content table th[data-sort="desc"]::after {
  content: '▼';
  opacity: 1;
  color: var(--bg-surface);
  background: var(--blue);
  border-color: var(--blue);
  box-shadow: 0 2px 4px rgba(37, 99, 235, 0.25);
}
.llm-message-content.is-serff table th[data-sort="asc"]::after,
.llm-message-content.is-serff table th[data-sort="desc"]::after {
  background: var(--purple);
  border-color: var(--purple);
  box-shadow: 0 2px 4px rgba(124, 58, 237, 0.25);
}

.llm-message-content table tbody tr.llm-row-clickable {
  cursor: pointer;
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
}
.llm-message-content table tbody tr.llm-row-clickable:hover {
  background: var(--blue-tint) !important;
  box-shadow: inset 3px 0 0 var(--blue);
}
.llm-message-content.is-serff table tbody tr.llm-row-clickable:hover {
  background: var(--purple-tint) !important;
  box-shadow: inset 3px 0 0 var(--purple);
}

.llm-row-detail-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2147483647;
  opacity: 0;
  transition: opacity 0.22s ease;
  padding: 1rem;
}
.llm-row-detail-overlay.open {
  opacity: 1;
}
.llm-row-detail-panel {
  background: var(--bg-surface);
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.32);
  padding: 1.5rem 1.75rem;
  max-width: 560px;
  width: 100%;
  max-height: 82vh;
  overflow-y: auto;
  position: relative;
  transform: translateY(12px) scale(0.98);
  transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}
.llm-row-detail-overlay.open .llm-row-detail-panel {
  transform: translateY(0) scale(1);
}
.llm-row-detail-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--border);
}
.llm-row-detail-header-left {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 0;
  flex: 1;
}
.llm-row-detail-header-right {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-shrink: 0;
}
.llm-row-detail-index {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 6px;
  border: 1.5px solid var(--blue);
  background: transparent;
  color: var(--blue);
  font-weight: 700;
  font-size: 0.85rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
  line-height: 1.3;
}
.llm-row-detail-overlay--serff .llm-row-detail-index {
  border-color: var(--purple);
  color: var(--purple);
}
.llm-row-detail-overlay--serff .llm-row-detail-value a {
  color: var(--purple) !important;
}
.llm-row-detail-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.35;
  min-width: 0;
  flex: 1;
  word-wrap: break-word;
  overflow-wrap: break-word;
  max-height: 4.5rem;
  overflow-y: auto;
}
.llm-row-detail-close {
  background: transparent;
  border: none;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--text-muted);
  cursor: pointer;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background 0.15s ease, color 0.15s ease;
}
.llm-row-detail-close:hover {
  background: var(--surface-tint);
  color: var(--text-primary);
}
.llm-row-detail-item {
  padding: 1rem 0 1.1rem;
  border-bottom: 1px dotted var(--border);
}
.llm-row-detail-item + .llm-row-detail-item {
  margin-top: 0.4rem;
}
.llm-row-detail-item:last-child {
  border-bottom: none;
  padding-bottom: 0.4rem;
}
.llm-row-detail-label {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--blue);
  font-weight: 700;
  margin-bottom: 0.35rem;
}
.llm-row-detail-overlay--serff .llm-row-detail-label {
  color: var(--purple);
}
.llm-row-detail-value {
  font-size: 0.88rem;
  color: var(--text-primary);
  line-height: 1.55;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.llm-row-detail-value a {
  color: var(--blue) !important;
}
.llm-row-detail-value strong, .llm-row-detail-value b {
  font-weight: 700;
}
.llm-row-detail-value code {
  font-family: inherit;
  font-size: inherit;
  background: transparent;
  padding: 0;
  border: 0;
  color: inherit;
}
.llm-sources-show-more-wrap {
  display: flex;
  justify-content: center;
  margin-top: 0.65rem;
}
.llm-sources-show-more {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 1rem;
  background: var(--bg-surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  cursor: pointer;
  color: var(--text-secondary);
  font-family: inherit;
  font-size: 0.75rem;
  font-weight: 600;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.llm-sources-show-more:hover {
  background: var(--surface-tint);
  border-color: var(--purple-border);
  color: var(--text-primary);
  box-shadow: 0 4px 10px rgba(124, 58, 237, 0.08);
  transform: translateY(-1px);
}
.llm-message-content.is-serff .llm-sources-show-more:hover {
  border-color: var(--purple-border);
  box-shadow: 0 4px 10px rgba(124, 58, 237, 0.08);
}
.llm-sources-show-more-chevron {
  transition: transform 0.25s ease;
}
.llm-sources-panel:not([data-collapsed="1"]) .llm-sources-show-more-chevron {
  transform: rotate(180deg);
}

.llm-message-content[data-streaming="false"] > * {
  animation: llm-fade-up 0.4s ease-out backwards;
}
.llm-message-content[data-streaming="false"] > *:nth-child(1)  { animation-delay:   0ms; }
.llm-message-content[data-streaming="false"] > *:nth-child(2)  { animation-delay:  40ms; }
.llm-message-content[data-streaming="false"] > *:nth-child(3)  { animation-delay:  80ms; }
.llm-message-content[data-streaming="false"] > *:nth-child(4)  { animation-delay: 120ms; }
.llm-message-content[data-streaming="false"] > *:nth-child(5)  { animation-delay: 160ms; }
.llm-message-content[data-streaming="false"] > *:nth-child(6)  { animation-delay: 200ms; }
.llm-message-content[data-streaming="false"] > *:nth-child(7)  { animation-delay: 240ms; }
.llm-message-content[data-streaming="false"] > *:nth-child(8)  { animation-delay: 280ms; }
.llm-message-content[data-streaming="false"] > *:nth-child(9)  { animation-delay: 320ms; }
.llm-message-content[data-streaming="false"] > *:nth-child(10) { animation-delay: 360ms; }
.llm-message-content[data-streaming="false"] > *:nth-child(n+11) { animation-delay: 400ms; }
@keyframes llm-fade-up {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .llm-message-content > *,
  .llm-source-target-flash {
    animation: none !important;
  }
}
.llm-message-content ol > p,
.llm-message-content ul > p {
  margin-left: -1.5em;
}
.llm-message-content li + p {
  margin-top: 0.75rem;
}
.llm-message-content p + li {
  margin-top: 0.75rem;
}
.llm-message-content ol > li:first-child {
  margin-top: 0.75rem;
}
.llm-message-content ul + p,
.llm-message-content ul + div,
.llm-message-content ul + h1,
.llm-message-content ul + h2,
.llm-message-content ul + h3,
.llm-message-content ul + h4,
.llm-message-content ul + h5,
.llm-message-content ul + h6,
.llm-message-content ol + p,
.llm-message-content ol + div,
.llm-message-content ol + h1,
.llm-message-content ol + h2,
.llm-message-content ol + h3,
.llm-message-content ol + h4,
.llm-message-content ol + h5,
.llm-message-content ol + h6 {
  margin-top: 1rem;
}

.llm-patch-remove-rule {
  border: none;
  border-top: 1px solid #ccc;
  margin: 0;
}
.llm-patch-remove-title {
  text-align: center;
  font-weight: 700;
  color: var(--purple);
}
.llm-sources-show-more:focus-visible,
.llm-message-content th.llm-sortable:focus-visible {
  outline: 2px solid var(--purple);
  outline-offset: 2px;
}

/* Delete-turn button (_message_loop): revealed on prompt hover by Tailwind's group-hover.
   Keyboard users get the same reveal here rather than via a focus: variant, so the rule
   ships without a Tailwind rebuild — and :focus-visible keeps it from flashing on click. */
.delete-turn-btn:focus-visible {
  opacity: 1;
  outline: 2px solid var(--purple);
  outline-offset: 2px;
}

/* ── Dark-mode carve-outs ────────────────────────────────────────────────────
   Everything else in this file is tokenized, so it flips on its own. These three
   are link/cite HOVER fills: their light value (--purple-border) resolves to a MID
   purple in dark, and the ink on them is --purple-dark (light) — only ~2.6:1. A
   translucent wash keeps the light ink readable while still reading as a hover. */
.dark .llm-message-content .llm-doc-link-anchor:hover,
.dark .llm-message-content.is-serff .llm-doc-link-anchor:hover,
.dark .llm-message-content .llm-source-cite-link:hover { background: rgba(167,122,250,0.26); }
/* 1px light-grey hairline + a one-off purple with no palette entry. */
.dark .llm-patch-remove-rule { border-top-color: var(--border); }
.dark .llm-patch-remove-title { color: var(--purple); }

/* ── Spreadsheet export blocks ───────────────────────────────────────────────
   A <spreadsheet_export> block renders as a titled card: the filename and a download
   link on top, the data itself as an ordinary table underneath (which the Stimulus
   controller then wraps in .llm-table-wrap like every other table, so it inherits the
   sticky header, the scroll container and the sorting). Tokens only — no hex — so both
   themes come out of the same rules. */
.llm-message-content .llm-sheet-block {
  margin: 1.15rem 0 1.45rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg-surface);
  overflow: hidden;
}
.llm-message-content .llm-sheet-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding: 0.5rem 0.7rem;
  background: var(--surface-tint);
  border-bottom: 1px solid var(--border);
}
.llm-message-content .llm-sheet-badge {
  flex: 0 0 auto;
  padding: 0.1rem 0.35rem;
  border: 1px solid var(--purple-border);
  border-radius: 4px;
  color: var(--purple-dark);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.llm-message-content .llm-sheet-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text-primary);
  word-break: break-all;
}
.llm-message-content .llm-sheet-meta {
  font-size: 0.7rem;
  color: var(--text-muted);
}
/* Pushed to the right edge of the header row on any width that has room for it. */
.llm-message-content .llm-sheet-dl {
  margin-left: auto;
  flex: 0 0 auto;
  padding: 0.2rem 0.55rem;
  border: 1px solid var(--purple-border);
  border-radius: 6px;
  background: var(--bg-surface);
  color: var(--purple-dark);
  font-size: 0.7rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s ease, box-shadow 0.15s ease;
}
.llm-message-content .llm-sheet-dl:hover {
  background: var(--purple-tint);
  box-shadow: 0 2px 6px rgba(124, 58, 237, 0.12);
}
.llm-message-content .llm-sheet-dl[aria-disabled="true"] {
  opacity: 0.6;
  cursor: default;
}
/* Non-serff (Strategic AI) keeps the blue accent the rest of that surface uses. */
.llm-message-content:not(.is-serff) .llm-sheet-badge,
.llm-message-content:not(.is-serff) .llm-sheet-dl {
  border-color: var(--blue-border);
  color: var(--blue-dark);
}
.llm-message-content:not(.is-serff) .llm-sheet-dl:hover {
  background: var(--blue-tint);
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.12);
}
.llm-message-content .llm-sheet-name {
  padding: 0.4rem 0.7rem 0;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-secondary);
}
/* The card already draws the outer border, so the table inside it drops its own. */
.llm-message-content .llm-sheet-block .llm-table-wrap {
  margin: 0.5rem 0.7rem 0.7rem;
}
.llm-message-content .llm-sheet-block .llm-table-inner {
  border-radius: 6px;
  max-height: 26rem;
  overflow-y: auto;
}
.llm-message-content .llm-sheet-block table {
  min-width: 0;
}
.llm-message-content .llm-sheet-note,
.llm-message-content .llm-sheet-pending {
  padding: 0 0.7rem 0.6rem;
  font-size: 0.7rem;
  color: var(--text-muted);
}
.llm-message-content .llm-sheet-pending {
  padding: 0.5rem 0.7rem;
  border: 1px dashed var(--border);
  border-radius: 8px;
  margin: 1rem 0;
}
.llm-message-content .llm-sheet-block--error .llm-sheet-head {
  border-bottom: none;
}

/* ── TeX formulas ────────────────────────────────────────────────────────────
   The server leaves a .llm-math span holding escaped TeX; llm_message_content_controller.js
   hands it to KaTeX. Everything here is tokens only, so both themes come out of the same
   rules — KaTeX itself sets no color, so the glyphs inherit --text-primary and dark mode
   needs no override at all. The surface is the one .llm-table-inner already uses (hairline,
   8px radius, the same soft shadow and the same thin scrollbar), because a formula too wide
   for the column has exactly the problem a wide table has. */
.llm-message-content .llm-math-display {
  margin: 1.15rem 0 1.45rem;
  padding: 0.95rem 1.1rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-surface);
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
  /* A long product of factors does not wrap — it scrolls, like a wide table, rather than
     reflowing into something that is no longer one expression. overflow-y stays hidden so a
     tall fraction cannot earn a second scrollbar it does not need. */
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-color: var(--border) var(--surface-tint);
  scrollbar-width: thin;
  text-align: center;
}
/* KaTeX's own display wrapper adds 1em of vertical margin and its own centring; the card above
   already supplies both, and leaving them stacks the spacing. */
.llm-message-content .llm-math-display .katex-display {
  margin: 0;
}
.llm-message-content .llm-math-inline {
  /* Nothing to draw. The rule exists so an inline formula cannot inherit a block treatment from
     a future .llm-math rule, and to keep it off the line box's baseline maths. */
  display: inline-block;
  vertical-align: baseline;
}
/* Before KaTeX answers, and only ever applied by JavaScript — see renderMath. A reader with the
   bundle blocked keeps readable source text instead of an empty box. */
.llm-message-content .llm-math-loading {
  opacity: 0;
}
.llm-message-content .llm-math {
  transition: opacity 0.12s ease;
}
/* Streaming: the opening delimiter has arrived and the closing one has not. Same dashed-outline
   treatment .llm-sheet-pending uses for a half-written spreadsheet. */
.llm-message-content .llm-math-pending {
  padding: 0.5rem 0.7rem;
  border: 1px dashed var(--border);
  border-radius: 8px;
  margin: 1rem 0;
  font-size: 0.7rem;
  color: var(--text-muted);
}
/* The export/no-JavaScript rendering (llm_raw_to_export_html). Reaches the browser only on an
   admin preview of an exported payload, so it just needs to read as a formula rather than as a
   sentence: the same centred block, no card, since a DOCX would not carry one anyway. */
.llm-message-content .llm-math-plain {
  font-variant-numeric: tabular-nums;
}
.llm-message-content div.llm-math-plain {
  margin: 0.9rem 0;
  text-align: center;
}
/* KaTeX sizes itself at 1.21em of the surrounding text, which is right in a document and a
   touch loud against this surface's 0.875rem body. */
.llm-message-content .katex {
  font-size: 1.1em;
}
/*

 */

/* KaTeX 0.18.7 — vendored, not CDN-loaded.
   Upstream: https://github.com/KaTeX/KaTeX (MIT, see app/assets/fonts/LICENSE-KaTeX.txt).

   Two edits to the published katex.min.css, both mechanical and both re-doable by
   tmp-scripting the same substitution on a fresh dist:
     1. the woff and truetype sources are dropped, so only the 20 .woff2 faces need vendoring
        (every browser this app supports reads woff2, and a src list naming files we do not
        ship earns a 404 per face the first time a formula is drawn);
     2. "fonts/NAME.woff2" becomes "NAME.woff2", because Sprockets flattens assets into
        /assets and rewrites a relative url() to its digested name — exactly how the Inter
        faces in inter-font.css already resolve.

   Nothing else is changed. Do NOT hand-edit rules in here: restyling belongs in
   llm_message_content.css, under .llm-math, where it survives the next KaTeX bump. */

@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-bb1488f1eb7f3bb7a0a66dad34cf4da547bd91b9e83f4b28a0035a624c616733.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-08e66da9d1a3a7dfac7fafe00c51458c5c191039fbc46ed82171d39a78978331.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-e77aa0187ce85f99a2f43c9813ff6c3e46ef81cf3f15b1611b463143694c46ed.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-efc11551f8c74b15f33336b346d0e5bd3f98547a6f5989ce584b952e1467fd9e.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-91aa526c59ed15aa4cf4123ebfc11bcbb690935e9aeb893918dbc0da1b559fad.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-274889ae185a6576a45ce15e530c40cfd83c1c95ba2e4667922e7f361b412ab4.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-f3dba274c691f3a9acc244da496b2891aecc06e19faa08984c75c3f64cc50e69.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-20764e93792c21f41f4f11ec0c98586c6143c1b76a1f85d1603f1c9b663b025c.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-d0cc533d4ea6d31d7cc2a061c4f38e220b45b4737da79802ce5d744889577a6d.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-36e296b99fb186b7b5c244acc059532ce7aceed6e55410ba67e89de9693c3d46.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-aab530a9c7ecc57f32cf3dedc3ed2101668185e3a99318f248ec11bcc350f669.woff2) format("woff2")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-f8326faf66dc4197ba5e926f9e5c0878c0d9feca8ba32fc6b980dad2a7b1a740.woff2) format("woff2")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-ed380a1b1a5069e0f14ccb7f4bfa756c36a0fe7004f389f363dcc1a0b232f56a.woff2) format("woff2")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-af7a4fc39ec8df0a709fdb523476c628630016698130f5b007dd103d8d9e8d9b.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-a6e1a711d1f0b9f683dade1d15705d8eba6a2f04b748bcc33d593e303733b33b.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-024c0751020d871e71c36dd0ece6068c1c79bb6085dbb89346df9e7b09df4ddc.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-12883bc97811e3ecd1cfe1321784243dca2e23214a85d767ec546093b3d0089f.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size3-Regular-0e99ef217befbba2d74e3a0ad1cef70ba2bc43d0ce9c3918d4847acb65490220.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-df3b72610f88f72b7763091a37b1c5ec39028cc5946fb7d62a85a7feaa77a0b3.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-1ae8194c5a90db4391288f610f9a9dbc8e62a9320aaa951bf32ab2cd71c21b54.woff2) format("woff2")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.18.7"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .katex-vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .katex-thinbox{display:inline-flex;flex-direction:row;max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.katex-root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .katex-stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .reflectbox{display:inline-block;transform:scaleX(-1)}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}
/*

 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *






*/

/* Date-filter input styling now lives inline in the _select_date.html.erb partial. */
