:root {
    --app-accent: oklch(67% .13 204);
    --app-accent-hover: oklch(59% .125 204);
    --app-accent-soft: oklch(93% .045 204);
    --app-accent-rgb: 8, 155, 166;
    --app-on-accent: oklch(99% .002 220);
    --app-focus: oklch(72% .13 204 / .45);
    --app-canvas: oklch(96% .012 225);
    --app-surface: oklch(99% .004 225);
    --app-surface-muted: oklch(97% .009 225);
    --app-text: oklch(29% .028 245);
    --app-text-muted: oklch(52% .025 240);
    --app-border: oklch(89% .014 225);
    --app-header: oklch(23% .035 250);
    --app-sidebar: oklch(20% .032 250);
    --app-sidebar-border: oklch(30% .025 250);
    --app-sidebar-text: oklch(94% .009 225);
    --app-sidebar-muted: oklch(68% .022 232);
    --app-success: oklch(65% .14 155);
    --app-warning: oklch(76% .14 78);
    --app-danger: oklch(60% .19 25);
    --app-info: oklch(64% .13 238);
    --app-warning-soft: oklch(96% .045 85);
    --app-warning-border: oklch(84% .10 80);
    --app-radius-sm: .42rem;
    --app-radius-md: .68rem;
    --app-radius-lg: .9rem;
    --app-shadow-sm: 0 2px 7px oklch(25% .025 245 / .06);
    --app-shadow-md: 0 10px 28px oklch(22% .03 245 / .10);
    --bs-primary: oklch(67% .13 204);
    --bs-primary-rgb: 8, 155, 166;
    --bs-primary-text-emphasis: oklch(40% .09 204);
    --bs-primary-bg-subtle: oklch(94% .04 204);
    --bs-primary-border-subtle: oklch(82% .075 204);
    --bs-link-color: oklch(54% .115 204);
    --bs-link-hover-color: oklch(44% .10 204);
    --bs-body-color: oklch(29% .028 245);
    --bs-body-bg: oklch(96% .012 225);
    --bs-border-color: oklch(89% .014 225);
    --bs-border-radius: .42rem;
    --bs-border-radius-sm: .32rem;
    --bs-border-radius-lg: .68rem;
}
html { scroll-behavior: smooth; }
html, body { min-height: 100%; font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif; color: var(--app-text); background: var(--app-canvas); -webkit-font-smoothing: antialiased; }
body { margin: 0; }
h1, h2, h3, h4, h5, h6 { color: var(--app-text); letter-spacing: -.018em; }
a, .btn-link { color: var(--app-accent-hover); text-decoration: none; }
a:hover, .btn-link:hover { color: oklch(45% .11 204); }
.text-muted { color: var(--app-text-muted) !important; }
.btn { border-radius: var(--app-radius-sm); font-weight: 650; transition: color 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out, box-shadow 150ms ease-out, transform 150ms ease-out; }
.btn-primary { color: var(--app-on-accent) !important; background: var(--app-accent) !important; border-color: var(--app-accent) !important; box-shadow: 0 3px 10px oklch(67% .13 204 / .20); }
.btn-primary:hover, .btn-primary:active { background: var(--app-accent-hover) !important; border-color: var(--app-accent-hover) !important; transform: translateY(-1px); }
.btn-outline-primary { color: var(--app-accent-hover) !important; border-color: oklch(70% .10 204) !important; }
.btn-outline-primary:hover { color: var(--app-on-accent) !important; background: var(--app-accent-hover) !important; border-color: var(--app-accent-hover) !important; }
.btn-outline-secondary { color: oklch(43% .028 242); border-color: oklch(80% .02 230); }
.btn-outline-secondary:hover { color: var(--app-text); background: oklch(93% .012 230); border-color: oklch(72% .025 230); }
.btn:focus-visible, .btn-link:focus-visible, .form-control:focus, .form-select:focus, .form-check-input:focus, a:focus-visible { outline: 2px solid var(--app-focus); outline-offset: 2px; box-shadow: none !important; }
.card { background: var(--app-surface); border: 1px solid var(--app-border); border-radius: var(--app-radius-md); box-shadow: var(--app-shadow-sm); }
.card-header { background: var(--app-surface); border-bottom: 1px solid var(--app-border); color: var(--app-text); font-weight: 700; padding: .9rem 1.1rem; }
.section-top-link { display: inline-grid; width: 2rem; height: 2rem; flex: 0 0 2rem; place-items: center; color: var(--app-accent-hover); background: var(--app-accent-soft); border: 1px solid oklch(82% .075 204); border-radius: 50%; font-size: 1rem; font-weight: 800; line-height: 1; text-decoration: none; cursor: pointer; user-select: none; transition: color 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out, transform 150ms ease-out; }
.section-top-link:hover { color: var(--app-on-accent); background: var(--app-accent-hover); border-color: var(--app-accent-hover); transform: translateY(-1px); }
.section-top-link:active { transform: translateY(0); }
.section-top-link:focus-visible { outline: 2px solid var(--app-focus); outline-offset: 2px; }
.card-footer { background: var(--app-surface-muted); border-top: 1px solid var(--app-border); }
.form-label, legend.form-label { color: oklch(37% .028 245); font-size: .82rem; font-weight: 700; }
.form-control, .form-select { min-height: 2.45rem; color: var(--app-text); background-color: var(--app-surface); border: 1px solid oklch(83% .018 228); border-radius: var(--app-radius-sm); }
.form-control:hover, .form-select:hover { border-color: oklch(72% .04 215); }
.form-control:focus, .form-select:focus { border-color: var(--app-accent) !important; background: oklch(99% .004 220); }
.form-check-input:checked { background-color: var(--app-accent); border-color: var(--app-accent); }
.table { --bs-table-bg: transparent; --bs-table-striped-bg: oklch(97% .008 225); --bs-table-hover-bg: oklch(94% .025 210); margin-bottom: 0; }
.table thead th, .table .table-light th { background: oklch(93% .018 225) !important; color: oklch(34% .035 245) !important; border-bottom: 1px solid oklch(84% .02 225) !important; padding: .78rem .9rem; font-size: .73rem; font-weight: 760; letter-spacing: .055em; text-transform: uppercase; white-space: nowrap; }
.table thead th .btn { color: inherit !important; font-size: inherit; letter-spacing: inherit; text-transform: inherit; }
.table tbody td { padding: .78rem .9rem; vertical-align: middle; border-bottom: 1px solid oklch(92% .012 225); color: oklch(39% .025 242); font-size: .86rem; }
.table-responsive { border: 1px solid var(--app-border); border-radius: var(--app-radius-md); overflow: auto; }
.badge { border-radius: 999px; font-weight: 680; letter-spacing: .015em; padding: .35em .7em; }
.badge.text-bg-primary, .badge.bg-primary { background: oklch(93% .04 204) !important; color: oklch(43% .10 204) !important; border: 1px solid oklch(82% .07 204) !important; }
.badge.text-bg-success, .badge.bg-success { background: oklch(94% .04 155) !important; color: oklch(43% .11 155) !important; border: 1px solid oklch(82% .07 155) !important; }
.badge.text-bg-warning, .badge.bg-warning { background: oklch(96% .05 80) !important; color: oklch(48% .10 72) !important; border: 1px solid oklch(84% .09 78) !important; }
.badge.text-bg-danger, .badge.bg-danger { background: oklch(95% .035 25) !important; color: oklch(47% .15 25) !important; border: 1px solid oklch(83% .07 25) !important; }
.badge.text-bg-secondary, .badge.bg-secondary { background: oklch(93% .01 235) !important; color: oklch(42% .025 240) !important; border: 1px solid oklch(84% .015 235) !important; }
.alert { border-radius: var(--app-radius-md); border-width: 1px; }
.progress { background: oklch(91% .014 225); }
.progress-bar { background: var(--app-accent) !important; }
.pagination { gap: .25rem; }
.page-link { color: var(--app-text); background: var(--app-surface); border: 1px solid var(--app-border); border-radius: .4rem !important; padding: .35rem .68rem; font-size: .82rem; font-weight: 550; }
.page-link:hover:not(:disabled) { color: var(--app-accent-hover); background: var(--app-accent-soft); border-color: oklch(76% .08 204); }
.page-item.active .page-link { color: var(--app-on-accent) !important; background: var(--app-accent) !important; border-color: var(--app-accent) !important; }
.page-item.disabled .page-link, .page-link:disabled { color: oklch(67% .018 235); background: oklch(95% .008 230); opacity: .72; }
.breadcrumb { font-size: .8rem; }
.nav-pills .nav-link { color: oklch(43% .035 240); border-color: var(--app-border) !important; background: var(--app-surface) !important; font-weight: 650; }
.nav-pills .nav-link:hover, .nav-pills .nav-link:focus-visible { color: var(--app-accent-hover); border-color: oklch(75% .08 204) !important; background: var(--app-accent-soft) !important; }
.nav-pills .nav-link.active { color: var(--app-on-accent) !important; background: var(--app-accent) !important; }
code { color: oklch(44% .10 204); background: oklch(94% .03 204); border-radius: .25rem; padding: .08rem .3rem; }
.modal-content { border: 1px solid var(--app-border); border-radius: var(--app-radius-md); box-shadow: var(--app-shadow-md); }
@media (min-width: 641px) { .page .sidebar { transition: width 180ms ease-out, flex-basis 180ms ease-out; } .page:has(#sidebar-collapse:checked) .sidebar { width: 4.75rem; flex-basis: 4.75rem; } }
.pathology-analysis-page { background: transparent; min-height: calc(100vh - 2rem); }
.pathology-analysis-metric { display: flex; flex-direction: column; gap: .2rem; padding: 1rem 1.1rem; border: 1px solid var(--app-border); border-radius: var(--app-radius-md); background: var(--app-surface); box-shadow: var(--app-shadow-sm); }
.pathology-analysis-metric strong { color: var(--app-accent-hover); font-size: 1.55rem; line-height: 1.1; }
.pathology-distribution-row + .pathology-distribution-row { margin-top: .8rem; }
.pathology-analysis-evidence td small { display: block; margin-top: .2rem; color: var(--app-text-muted); }
.pathology-analysis-evidence td { min-width: 8rem; }
.markdown-content { color: var(--app-text); line-height: 1.65; }
.markdown-content pre { background: oklch(22% .03 250); color: oklch(94% .01 225); padding: .85rem; border-radius: .55rem; overflow-x: auto; }
.markdown-content code { color: oklch(46% .11 204); }
.markdown-content pre code { color: inherit; background: transparent; padding: 0; }
.markdown-content table { width: 100%; margin-bottom: 1rem; border-collapse: collapse; border: 1px solid var(--app-border); }
.markdown-content th, .markdown-content td { padding: .7rem; border: 1px solid var(--app-border); }
.markdown-content thead th { background: oklch(93% .018 225); color: var(--app-text); }
.chat-bubble { border-radius: .65rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }
