/* Scientific results stay legible across the worlds; color is reinforced by
   stroke patterns and named legends, including monochrome print. */
.biology-render {
  --biology-series-a: #28658c;
  --biology-series-b: #a44355;
  --biology-series-c: #7352a0;
  --biology-series-d: #876012;
}
body[data-theme='dark'] .biology-render {
  --biology-series-a: #91c9ed;
  --biology-series-b: #f1a5b0;
  --biology-series-c: #c8b1ed;
  --biology-series-d: #e9c97f;
}
.biology-render :is(.biology-series-line,.biology-fit-line,.biology-observed-point).biology-series-0 { stroke: var(--biology-series-a); }
.biology-render :is(.biology-series-line,.biology-fit-line,.biology-observed-point).biology-series-1 { stroke: var(--biology-series-b); }
.biology-render :is(.biology-series-line,.biology-fit-line,.biology-observed-point).biology-series-2 { stroke: var(--biology-series-c); }
.biology-render :is(.biology-series-line,.biology-fit-line).biology-series-1 { stroke-dasharray: 9 5; }
.biology-render :is(.biology-series-line,.biology-fit-line).biology-series-2 { stroke-dasharray: 2 5; }
.biology-render .biology-chart-legend .biology-series-0::before { background: var(--biology-series-a); }
.biology-render .biology-chart-legend .biology-series-1::before { background: repeating-linear-gradient(90deg,var(--biology-series-b) 0 6px,transparent 6px 9px); }
.biology-render .biology-chart-legend .biology-series-2::before { background: repeating-linear-gradient(90deg,var(--biology-series-c) 0 2px,transparent 2px 5px); }
.biology-chart-tick { fill: var(--biology-ink); font: 11px var(--note-face, sans-serif); font-variant-numeric: tabular-nums; }
.biology-key-values { margin: 7px 0 12px; font-size: .84rem; line-height: 1.5; font-weight: 650; }
.biology-result-context,.biology-uncertainty-note { margin: 8px 0; color: var(--biology-muted); font-size: .77rem; line-height: 1.5; }
.biology-uncertainty-interval { font-weight: 700; line-height: 1.5; }
.biology-uncertainty-se { font-size: .8rem; }
.biology-data-disclosure,.biology-symbol-disclosure { margin: 8px 0; min-width: 0; border-top: 1px solid var(--biology-line); }
.biology-data-disclosure > summary,.biology-symbol-disclosure > summary { padding: 10px 2px; cursor: pointer; font-size: .8rem; color: var(--biology-ink); font-weight: 700; }
.biology-data-disclosure > summary:focus-visible,.biology-symbol-disclosure > summary:focus-visible,.biology-table-scroll:focus-visible { outline: 2px solid var(--biology-accent); outline-offset: 2px; }
.biology-table-scroll { max-width: 100%; max-height: 320px; overflow: auto; scrollbar-gutter: stable; overscroll-behavior: contain; }
.biology-render :is(.biology-generation-table,.biology-enzyme-comparison-table,.biology-cycle-step-table,.biology-neuron-event-table) { width: 100%; border-collapse: collapse; font-size: .76rem; font-variant-numeric: tabular-nums; }
.biology-render :is(.biology-generation-table,.biology-enzyme-comparison-table,.biology-cycle-step-table,.biology-neuron-event-table) :is(th,td) { padding: 7px 9px; border-bottom: 1px solid var(--biology-line); text-align: left; }
.biology-render :is(.biology-generation-table,.biology-enzyme-comparison-table,.biology-cycle-step-table,.biology-neuron-event-table) caption { padding: 8px 0; font-weight: 700; text-align: left; }
.biology-table-scroll thead { position: sticky; top: 0; background: var(--biology-paper); }
.biology-symbol-key { display: grid; grid-template-columns: max-content minmax(0,1fr); gap: 8px 12px; margin: 5px 0 12px; font-size: .77rem; line-height: 1.5; }
.biology-symbol-key dt { font-weight: 750; }
.biology-symbol-key dd { margin: 0; }
.biology-phase-shade { fill: var(--biology-series-a); opacity: .08; pointer-events: none; }
.biology-phase-1 { fill: var(--biology-series-d); opacity: .13; }
.biology-phase-2 { fill: var(--biology-series-b); opacity: .13; }
.biology-phase-3 { fill: var(--biology-series-c); opacity: .12; }
.biology-phase-4 { fill: var(--biology-series-a); opacity: .17; }
.biology-neuron-phase-table tr[class] th::before { content: ''; display: inline-block; width: 8px; height: 8px; margin-inline-end: 6px; background: var(--biology-series-a); opacity: .75; }
.biology-neuron-phase-table .biology-phase-key-1 th::before { background: var(--biology-series-d); }
.biology-neuron-phase-table .biology-phase-key-2 th::before { background: var(--biology-series-b); }
.biology-neuron-phase-table .biology-phase-key-3 th::before { background: var(--biology-series-c); }
.biology-neuron-event-line { stroke: var(--biology-ink); opacity: .34; stroke-dasharray: 3 4; stroke-width: 1; }
.biology-event-dot { fill: var(--biology-paper); stroke: var(--biology-ink); stroke-width: 1.2; }
.biology-event-number { fill: var(--biology-ink); font: 9px var(--note-face,sans-serif); font-weight: 700; }
.biology-scale-bar-line { paint-order: stroke; stroke-linecap: butt; }
.biology-scale-bar-label { paint-order: stroke fill; stroke: var(--biology-paper); stroke-width: 3; stroke-linejoin: round; }
.board-object[data-kind='biology'] > .object-body.biology-render:has(.biology-data-disclosure[open]) { overflow: auto; }
.board-object[data-kind='biology'] > .object-body.biology-render:has(.biology-data-disclosure[open]) > .biology-diagram { flex: 0 0 auto; height: auto; min-height: 180px; }
@media screen and (max-width: 600px) {
  .biology-studio-preview:has(> .biology-neuron-diagram) { display: block; overflow-x: auto; scrollbar-gutter: stable; }
  .biology-studio-preview > .biology-neuron-diagram { min-width: 560px; }
}
@media (forced-colors: active) {
  .biology-render { --biology-series-a: CanvasText; --biology-series-b: CanvasText; --biology-series-c: CanvasText; --biology-series-d: CanvasText; }
  .biology-phase-shade { fill: CanvasText; opacity: .06; }
}
@media print {
  .biology-render { --biology-series-a: #185777; --biology-series-b: #973d50; --biology-series-c: #634184; --biology-series-d: #795210; }
  .biology-data-disclosure::details-content,.biology-symbol-disclosure::details-content { content-visibility: visible !important; display: block !important; }
  .biology-data-disclosure > :not(summary),.biology-symbol-disclosure > :not(summary) { display: block !important; }
  .biology-data-disclosure > summary,.biology-symbol-disclosure > summary { display: none; }
  .biology-table-scroll { max-height: none; overflow: visible; }
  .biology-table-scroll thead { position: static; }
}
