.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: #475569;
}

.center-text .total-label {
	font-size: 22px;
	font-weight: normal;
	color: #475569;
}

.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%;
}

/* Hide copy button while streaming */
.ai-stream .llm-message-content button {
  display: none !important;
}

/* 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 #e0dee8;
  border-radius: 6px;
  background: rgba(255,255,255,0.92);
  color: #464257;
  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: #fcfcfd;
  border-color: #6c677e;
  color: #1b1825;
  box-shadow: 0 4px 10px rgba(15,23,42,0.10);
}
.llm-response-action--serff:hover {
  border-color: #c1a2f6;
  color: #5b22bf;
  box-shadow: 0 4px 10px rgba(124,58,237,0.12);
}
.llm-response-action--default:hover {
  border-color: #a2bcf6;
  color: #194ab3;
  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: #fef2f2;
  border: 1px solid #fca5a5;
  border-left: 3px solid #dc2626;
  border-radius: 6px;
  color: #991b1b;
  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: #dc2626;
  color: #fcfcfd;
  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: #991b1b;
  font-size: 1.05rem;
  line-height: 1;
  cursor: pointer;
  padding: 0 0.25rem;
}
.llm-download-error-dismiss:hover { color: #991b1b; }
.llm-message-content {
  font-size: 0.875rem;
  line-height: 1.62;
  color: #1b1825;
}
.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 #e0dee8;
  border-radius: 8px;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
  scrollbar-color: #e0dee8 #f3f2f8;
  scrollbar-width: thin;
}
.llm-message-content table {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  min-width: 980px;
  background: #fcfcfd;
  font-size: 0.75rem;
}
.llm-message-content table thead tr {
  background: #f3f2f8;
}
.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: #1b1825;
  font-weight: 700;
  letter-spacing: 0.025em;
  border-bottom: 1px solid #e0dee8;
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 2;
  text-transform: uppercase;
  font-size: 0.68rem;
}
.llm-message-content table td {
  color: #1b1825;
  border-bottom: 1px solid #f3f2f8;
}
.llm-message-content table tbody tr {
  background-color: #fcfcfd;
  transition: background-color 160ms ease;
}
.llm-message-content table tbody tr:nth-child(odd) {
  background-color: #f3f2f8;
}
.llm-message-content table tbody tr:hover {
  background-color: #f3f2f8;
}
.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 #f3f2f8;
}
.llm-message-content table th:first-child {
  z-index: 3;
  background: #f3f2f8;
}
.llm-message-content table tbody tr:last-child td {
  border-bottom: none;
}
.llm-message-content table a {
  color: #194ab3;
  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: #2563eb !important;
  text-decoration: underline;
  text-decoration-color: #a2bcf6;
  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: #194ab3 !important;
  text-decoration-color: #2563eb;
}
.llm-message-content.is-serff .llm-doc-link-inline {
  color: #7c3aed !important;
  text-decoration-color: #c1a2f6;
}
.llm-message-content.is-serff .llm-doc-link-inline:hover {
  color: #5b22bf !important;
  text-decoration-color: #7c3aed;
}
.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 #e0dee8;
}
.llm-message-content a {
  color: #2563eb;
  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: #1b1825;
}
.llm-message-content h1 { font-size: 1.2rem; }
.llm-message-content h2 {
  font-size: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid #e0dee8;
}
.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: #464257;
  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 #a2bcf6;
  background: #e8eefd;
  color: #194ab3;
  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: #efe8fd;
  color: #5b22bf;
  border-color: #c1a2f6;
}
.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, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.85) 100%);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-bottom: 1px solid #e0dee8;
}
.llm-toc-label {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6c677e;
  font-weight: 600;
  margin-right: 0.4rem;
}
.llm-toc-item {
  font-size: 0.75rem;
  padding: 0.22rem 0.65rem;
  border-radius: 999px;
  background: #f3f2f8;
  color: #464257 !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: #e0dee8;
  color: #1b1825 !important;
  transform: translateY(-1px);
}
.llm-toc-item.active {
  background: #efe8fd;
  color: #5b22bf !important;
  border-color: #c1a2f6;
}

.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: #efe8fd;
  color: #5b22bf !important;
  border: 1px solid #c1a2f6;
  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: #c1a2f6;
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(124, 58, 237, 0.18);
}
.llm-message-content.is-serff .llm-doc-link-anchor {
  background: #efe8fd;
  color: #5b22bf !important;
  border-color: #c1a2f6;
}
.llm-message-content.is-serff .llm-doc-link-anchor:hover {
  background: #c1a2f6;
}
.llm-message-content .llm-source-cite-link {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 8px;
  background: #efe8fd;
  color: #5b22bf !important;
  font-size: 0.75rem;
  font-weight: 700;
  text-decoration: none !important;
  border: 1px solid #c1a2f6;
  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: #c1a2f6;
  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, #e0dee8, 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, #efe8fd 0%, #efe8fd 100%);
  color: #5b22bf;
  border: 1px solid #c1a2f6;
  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: #fef2f2;
  color: #991b1b;
  border: 1px solid #fef2f2;
}
.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: #f0fdf4;
  color: #166534;
  border: 1px solid #86efac;
}
.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, #e0dee8, 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: #f3f2f8;
  color: #464257;
  border: 1px solid #e0dee8;
  font-size: 0.78rem;
  font-weight: 700;
  box-shadow: inset 0 1px 0 rgba(255,255,255,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: #fef2f2;
  border: 1px solid #fef2f2;
  color: #991b1b;
  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: #fef2f2;
  border-color: #fca5a5;
  color: #991b1b;
}
.llm-message-content .llm-patch-block--to {
  background: #e8eefd;
  border: 1px solid #a2bcf6;
  color: #194ab3;
}
.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: #a2bcf6;
  border-color: #a2bcf6;
  color: #194ab3;
}

.llm-sources-panel {
  margin-top: 1.6rem;
  padding-top: 0.85rem;
  border-top: 1px solid #e0dee8;
}
.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: #464257;
}
.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: #efe8fd;
  color: #5b22bf;
  border: 1px solid #c1a2f6;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
}
.llm-message-content.is-serff .llm-sources-panel-count {
  background: #efe8fd;
  color: #5b22bf;
  border-color: #c1a2f6;
}
.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: rgba(255,255,255,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: #1b1825 !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 rgba(255,255,255,0.7);
}
.llm-source-card:hover {
  border-color: rgba(124,58,237,0.35);
  background: rgba(255,255,255,0.78);
  transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,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: rgba(255,255,255,0.80);
  box-shadow: inset 0 1px 0 rgba(255,255,255,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: rgba(255,255,255,0.58);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,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: rgba(255,255,255,0.82);
  transform: translateY(-2px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,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: rgba(255,255,255,0.84);
  box-shadow: inset 0 1px 0 rgba(255,255,255,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: #5b22bf;
  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: #464257;
  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: #5b22bf;
  letter-spacing: 0.06em;
  padding: 0.08rem 0.4rem;
  border: 1px solid #c1a2f6;
  border-radius: 4px;
  background: #efe8fd;
}
.llm-source-group-serff {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-weight: 700;
  font-size: 0.85rem;
  color: #5b22bf;
  letter-spacing: 0.01em;
}
.llm-source-group-sep {
  color: #e0dee8;
  font-weight: 400;
  margin: 0 0.05rem;
}
.llm-source-group-meta {
  font-size: 0.7rem;
  color: #464257;
  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: rgba(255,255,255,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: #6c677e;
  line-height: 1.3;
  margin-bottom: 0.05rem;
}
.llm-source-group-field-value {
  font-size: 0.72rem;
  color: #1b1825;
  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: #f0fdf4; border-color: #86efac; color: #166534; }
.llm-source-group-ribbon--pending  { background: #fef3c7; border-color: #fde68a; color: #92400e; }
.llm-source-group-ribbon--rejected { background: #fef2f2; border-color: #fef2f2; color: #991b1b; }
.llm-source-group-ribbon--missing  { background: #efe8fd; border-color: #c1a2f6; color: #5b22bf; }
.llm-source-group-ribbon--plain    { background: #f3f2f8; border-color: #e0dee8; color: #464257; }
.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: #464257;
  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: #464257;
  padding: 0.15rem 0.5rem 0.15rem 0;
  border-bottom: 1px solid #e0dee8;
  white-space: nowrap;
}
.llm-source-group-rate-table td {
  padding: 0.15rem 0.5rem 0.15rem 0;
  color: #1b1825;
  border-bottom: 1px solid #f3f2f8;
  white-space: nowrap;
}
.llm-source-group-rate-table td:first-child {
  white-space: normal;
  color: #1b1825;
  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: #6c677e;
  font-size: 0.72rem;
}
.llm-source-group-docs li::marker {
  color: #e0dee8;
}
/* 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: #7c3aed !important;
  text-decoration: underline;
  text-decoration-color: #c1a2f6;
  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: #5b22bf !important;
  text-decoration-color: #7c3aed;
}
.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: #efe8fd;
  color: #5b22bf;
  border: 1px solid #c1a2f6;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1;
}
.llm-message-content.is-serff .llm-source-card-num {
  background: #efe8fd;
  color: #5b22bf;
  border-color: #c1a2f6;
}
.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: #e8eefd; color: #2563eb; border: 1px solid #a2bcf6; }
.llm-source-card-kind.kind-call   { background: #f0fdf4; color: #166534; border: 1px solid #86efac; }
.llm-source-card-kind.kind-event  { background: #fef3c7; color: #d97706; border: 1px solid #fde68a; }
.llm-source-card-kind.kind-doi    { background: #efe8fd; color: #5b22bf; border: 1px solid #c1a2f6; }
.llm-source-card-kind.kind-web    { background: #f3f2f8; color: #464257; border: 1px solid #e0dee8; }
.llm-source-card-kind.kind-doc    { background: #f3f2f8; color: #1b1825; border: 1px solid #e0dee8; }
.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: #464257;
  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: #e0dee8 !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 #e0dee8;
  background: #fcfcfd;
  opacity: 0.85;
  font-size: 0.8rem;
  font-weight: 700;
  color: #464257;
  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: #f3f2f8;
  border-color: #6c677e;
  color: #1b1825;
}
.llm-message-content table th[data-sort="asc"]::after {
  content: '▲';
  opacity: 1;
  color: #fcfcfd;
  background: #2563eb;
  border-color: #2563eb;
  box-shadow: 0 2px 4px rgba(37, 99, 235, 0.25);
}
.llm-message-content table th[data-sort="desc"]::after {
  content: '▼';
  opacity: 1;
  color: #fcfcfd;
  background: #2563eb;
  border-color: #2563eb;
  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: #7c3aed;
  border-color: #7c3aed;
  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: #e8eefd !important;
  box-shadow: inset 3px 0 0 #2563eb;
}
.llm-message-content.is-serff table tbody tr.llm-row-clickable:hover {
  background: #efe8fd !important;
  box-shadow: inset 3px 0 0 #7c3aed;
}

.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: #fcfcfd;
  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 #e0dee8;
}
.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 #2563eb;
  background: transparent;
  color: #2563eb;
  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: #7c3aed;
  color: #7c3aed;
}
.llm-row-detail-overlay--serff .llm-row-detail-value a {
  color: #7c3aed !important;
}
.llm-row-detail-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1b1825;
  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: #6c677e;
  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: #f3f2f8;
  color: #1b1825;
}
.llm-row-detail-item {
  padding: 1rem 0 1.1rem;
  border-bottom: 1px dotted #e0dee8;
}
.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: #2563eb;
  font-weight: 700;
  margin-bottom: 0.35rem;
}
.llm-row-detail-overlay--serff .llm-row-detail-label {
  color: #7c3aed;
}
.llm-row-detail-value {
  font-size: 0.88rem;
  color: #1b1825;
  line-height: 1.55;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.llm-row-detail-value a {
  color: #2563eb !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: #fcfcfd;
  border: 1px solid #e0dee8;
  border-radius: 999px;
  cursor: pointer;
  color: #464257;
  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: #f3f2f8;
  border-color: #c1a2f6;
  color: #1b1825;
  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: #c1a2f6;
  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: #6B46C1;
}
.llm-sources-show-more:focus-visible,
.llm-message-content th.llm-sortable:focus-visible {
  outline: 2px solid #7c3aed;
  outline-offset: 2px;
}
/*

 * 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. */
