:root {
  color-scheme: light;
  --accent: #F4320B;
  --accent-dark: #cf2808;
  --accent-soft: #fff;
}
html { scroll-behavior: smooth; }
body { font-family: Inter, sans-serif; }
.has-floating-nav { padding-top: 4.5rem; background-color: #fff !important; }
.has-floating-nav > footer { background-color: #fff !important; }
.floating-site-header { pointer-events: none; }
.floating-site-header nav { pointer-events: auto; }
.floating-site-header .brand-icon { height: 2.4rem; width: 2.4rem; border-radius: 999px; background: var(--accent); }
.floating-site-header .brand-icon svg { height: 1.2rem; width: 1.2rem; }
.text-blue-600, .text-blue-700 { color: var(--accent) !important; }
.text-blue-100, .text-blue-200, .text-blue-300 { color: #ffb3a3 !important; }
.text-blue-950 { color: #431208 !important; }
.text-blue-400 { color: #ff7357 !important; }
.bg-blue-600 { background-color: var(--accent) !important; }
.bg-blue-700, .hover\:bg-blue-700:hover { background-color: var(--accent-dark) !important; }
.bg-blue-50, .hover\:bg-blue-50:hover { background-color: var(--accent-soft) !important; }
.bg-blue-50\/50 { background-color: rgba(255, 240, 235, .65) !important; }
.border-blue-300, .border-blue-400, .border-blue-600 { border-color: var(--accent) !important; }
.hover\:bg-blue-600:hover, .hover\:bg-blue-500:hover { background-color: var(--accent) !important; }
.hover\:text-blue-600:hover { color: var(--accent) !important; }
.hover\:border-blue-600:hover, .focus\:border-blue-600:focus { border-color: var(--accent) !important; }
h1, h2, h3, h4, .font-display { font-family: "Bricolage Grotesque", sans-serif; }
.grid-noise {
  background-image: linear-gradient(rgba(15, 23, 42, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15, 23, 42, .045) 1px, transparent 1px);
  background-size: 28px 28px;
}
.tab-content { display: none; }
.tab-content.active { display: block; }
.tab-btn.active { background: var(--accent); color: white; }
.status-message { margin-top: 1rem; border-radius: .75rem; padding: .9rem 1rem; font-size: .9rem; }
.status-message.info { background: var(--accent-soft); color: var(--accent-dark); }
.status-message.success { background: #f0fdf4; color: #166534; }
.status-message.error { background: #fef2f2; color: #b91c1c; }
.verification-results { margin-top: 1.25rem; border: 1px solid #e2e8f0; border-radius: 1rem; padding: 1.25rem; }
.results-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.result-status-badge { border-radius: 999px; padding: .35rem .7rem; font-size: .75rem; font-weight: 700; }
.result-status-badge.feasible { background: #dcfce7; color: #166534; }
.result-status-badge.infeasible { background: #fee2e2; color: #991b1b; }
.results-section { margin-top: 1.25rem; }
.errors-list { list-style: disc; padding-left: 1.25rem; color: #b91c1c; }
.metrics-table { margin-top: .75rem; width: 100%; border-collapse: collapse; }
.metrics-table th, .metrics-table td { border-bottom: 1px solid #e2e8f0; padding: .65rem; text-align: left; }
.msg-banner { margin-top: 1rem; border-radius: .8rem; padding: .9rem 1rem; transition: opacity .3s; }
.result-section { margin-top: 1.5rem; }
.result-card { overflow: hidden; border: 1px solid #e2e8f0; border-radius: 1rem; background: white; padding: 1.5rem; }
.result-metrics, .result-instances { margin-top: 1rem; width: 100%; border-collapse: collapse; font-size: .85rem; }
.result-metrics th, .result-metrics td, .result-instances th, .result-instances td { border-bottom: 1px solid #e2e8f0; padding: .65rem; text-align: left; vertical-align: top; }
.result-details { margin-top: 1rem; border: 1px solid #e2e8f0; border-radius: .75rem; padding: 1rem; overflow-x: auto; }
.result-pre { margin-top: .75rem; white-space: pre-wrap; font-size: .8rem; }
.result-row--invalid { background: #fff7f7; }
.result-errors { max-width: 26rem; color: #b91c1c; }
.markdown-body { color: #334155; font-size: 1rem; line-height: 1.8; }
.markdown-body h1 { color: #0f172a; font-size: 2.25rem; line-height: 1.12; margin: 0 0 2rem; }
.markdown-body h2 { color: #0f172a; font-size: 1.55rem; line-height: 1.25; margin: 2.5rem 0 1rem; }
.markdown-body h3 { color: #431208; font-size: 1.15rem; margin: 2rem 0 .75rem; }
.markdown-body p, .markdown-body ul, .markdown-body ol { margin: 0 0 1rem; }
.markdown-body ul, .markdown-body ol { padding-left: 1.4rem; }
.markdown-body ul { list-style: disc; }
.markdown-body ol { list-style: decimal; }
.markdown-body code { background: var(--accent-soft); color: var(--accent-dark); border-radius: .35rem; padding: .12rem .35rem; font-size: .88em; }
.markdown-body pre { overflow-x: auto; border: 1px solid #ffd2c8; background: #171411; color: #e7e5e4; border-radius: 1rem; padding: 1.25rem; margin: 1.25rem 0; }
.markdown-body pre code { background: transparent; color: inherit; padding: 0; }
.markdown-body blockquote { border-left: 3px solid var(--accent); background: var(--accent-soft); padding: 1rem 1.25rem; margin: 1.5rem 0; border-radius: 0 .75rem .75rem 0; }
.markdown-body table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: .92rem; }
.markdown-body th, .markdown-body td { border: 1px solid #e2e8f0; padding: .7rem .8rem; text-align: left; }
.markdown-body th { background: #f8fafc; color: #0f172a; }
.markdown-body a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.markdown-body .katex-display { margin: 1.75rem 0; overflow-x: auto; overflow-y: hidden; padding: .5rem 0; }
.markdown-body .katex { color: #0f172a; font-size: 1.05em; }
.brand-icon { display: inline-flex; height: 2.6rem; width: 2.6rem; align-items: center; justify-content: center; border-radius: .85rem; background: #0f172a; color: white; transition: background-color .2s, transform .2s; }
.brand-icon:hover { background: var(--accent); transform: translateY(-1px); }
.brand-icon svg { height: 1.45rem; width: 1.45rem; }
.toc-link { display: block; border-left: 2px solid #e2e8f0; padding: .42rem .8rem; color: #64748b; font-size: .78rem; line-height: 1.25; transition: color .2s, border-color .2s; }
.toc-link:hover { border-color: var(--accent); color: var(--accent); }
.toc-link--nested { padding-left: 1.35rem; }
.docs-layout { display: grid; gap: 1.5rem; align-items: start; }
.docs-content { min-width: 0; }
.docs-toc { max-height: 20rem; overflow-y: auto; }
.site-footer-link { display: inline-flex; align-items: center; gap: .4rem; color: #475569; transition: color .2s; }
.site-footer-link:hover { color: var(--accent); }
.site-footer-link svg { height: 1rem; width: 1rem; flex: none; }
.contributor-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; min-width: 18rem; }
.contributor-actions { display: flex; align-items: center; gap: .45rem; }
.contributor-icon { display: inline-flex; height: 2rem; width: 2rem; align-items: center; justify-content: center; border-radius: .55rem; transition: background-color .2s, color .2s, transform .2s; }
.contributor-icon:hover { transform: translateY(-1px); }
.contributor-icon svg { height: 1.05rem; width: 1.05rem; }
.contributor-icon--github { background: #0f172a; color: #fff; }
.contributor-icon--github:hover { background: #334155; }
.contributor-icon--email { background: #ffe0d8; color: var(--accent); }
.contributor-icon--email:hover { background: var(--accent); color: #fff; }
@media (min-width: 1024px) {
  .docs-layout { grid-template-columns: 15rem minmax(0, 1fr); gap: 2rem; }
  .docs-toc { position: sticky; top: 6.5rem; max-height: calc(100vh - 8rem); }
}
@media print {
  @page { size: A4; margin: 16mm; }
  .no-print, header, footer { display: none !important; }
  body { background: white !important; }
  main { max-width: none !important; padding: 0 !important; }
  .print-shell { border: 0 !important; box-shadow: none !important; padding: 0 !important; }
  .markdown-body { font-size: 10.5pt; color: #111827; }
  .markdown-body h1 { font-size: 24pt; }
  .markdown-body h2 { break-after: avoid; }
  .markdown-body pre, .markdown-body table, .markdown-body blockquote { break-inside: avoid; }
}
