/* Series Notes: the term rail. Every series is drawn as its life on one shared time axis with
   Today cut across all of them; the selected series opens as a balance sheet (collateral against
   notes owed) with a health gauge, beside its lifecycle as a vertical lamp track. Loaded after
   board.css, so it owns the page. Positions & risk (seriesRisk.css) and Liquidations
   (seriesLiquidations.css) keep their own files. */

.main-layout.main-layout--page:has(.sn-page:not([hidden])) { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 0; align-items: start; }
.main-layout--page:has(.sn-page:not([hidden])) > .page-shell { grid-column: 1; grid-row: 1; }
.panel.sn-page { display: block; min-width: 0; min-height: 0; }
.sn-page[hidden], .sn-page [hidden] { display: none !important; }
.sn-page ::selection { background: var(--selection); color: var(--text); }
.sn-page :is(button, input, select) { font-family: inherit; scroll-margin-bottom: 80px; }
.sn-page :is(summary, a, [tabindex]):focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.sn-page .sn-muted { margin: 0; color: var(--text-soft); font-size: .8125rem; line-height: 1.55; }
.sn-description { max-width: 60ch; }
.aera-page-nav-link[data-sn-tab="pools"] { --page-nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h3m4 0h4m4 0h3M12 4v16'/%3E%3Ccircle cx='8' cy='12' r='2'/%3E%3Ccircle cx='16' cy='12' r='2'/%3E%3C/svg%3E"); }

/* ---------- Term rail ---------- */
.sn-workspace { display: block; min-width: 0; padding-top: 0; }
#series-notes-page .sn-rail {
  --sn-id-w: 260px; --sn-fig-w: 184px; --sn-gap: 32px;
  display: block; margin: 0 calc(var(--pane-x) * -1); padding: 0; border: 0; border-bottom: 1px solid var(--terminal-rule); border-radius: 0; background: transparent;
}
.sn-rail-head { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; min-height: 64px; padding: 12px var(--pane-x); border-bottom: 1px solid var(--terminal-rule); }
.sn-filters { display: inline-flex; gap: 2px; padding: 2px; border: 1px solid var(--rule-strong); border-radius: 4px; background: var(--terminal-inset); max-width: 100%; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.sn-filters::-webkit-scrollbar { display: none; }
.sn-filter { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border-radius: 3px; color: var(--text-soft); font-size: .8125rem; font-weight: 500; text-decoration: none; white-space: nowrap; transition: background-color 160ms ease-out, color 160ms ease-out; }
.sn-filter:hover { color: var(--text); background: var(--terminal-control); }
.sn-filter[aria-current="page"] { color: var(--text); background: var(--terminal-raised); box-shadow: inset 0 0 0 1px var(--rule-strong); }
.sn-filter:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.sn-filter-count { font: 500 .6875rem/1 var(--fontfam-term); font-variant-numeric: tabular-nums; color: var(--text-muted); }
.sn-filter[aria-current="page"] .sn-filter-count { color: var(--positive); }
.sn-filter-count:empty { display: none; }
.sn-rail-legend { display: flex; align-items: center; gap: 20px; margin: 0; font: var(--colhead); letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.sn-rail-legend > span { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.sn-legend-today::before { content: ''; width: 1px; height: 14px; background: rgb(var(--positive-rgb) / .7); }
.sn-legend-lamp::before { content: ''; width: 7px; height: 7px; border-radius: 50%; border: 1px solid var(--rule-bright); background: var(--ground); }
.sn-legend-lamp[data-passed="true"]::before { border-color: var(--positive); background: var(--positive); }
.sn-legend-lamp[data-kind="maturity"]::before { width: 9px; height: 9px; border-width: 2px; border-color: var(--text-soft); }

.sn-rail-axis { display: grid; grid-template-columns: var(--sn-id-w) minmax(0, 1fr) var(--sn-fig-w) 20px; column-gap: var(--sn-gap); height: 34px; padding: 0 var(--pane-x); border-bottom: 1px solid var(--terminal-rule); }
.sn-axis-cell { grid-column: 2; position: relative; min-width: 0; }
.sn-axis-track { position: absolute; inset: 0; }
.sn-tick { position: absolute; left: var(--x); top: 11px; padding-left: 6px; border-left: 1px solid var(--rule-strong); font: 400 .6875rem/1 var(--fontfam-term); color: var(--text-muted); white-space: nowrap; }
.sn-tick[data-major="true"] { color: var(--text-soft); border-left-color: var(--rule-bright); }
.sn-today-flag { position: absolute; left: var(--x); bottom: 0; transform: translateX(-50%); padding: 3px 7px; border-radius: 3px 3px 0 0; background: var(--positive); color: var(--on-positive); font: 600 .625rem/1.2 var(--fontfam-term); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; z-index: 1; }
.sn-today-flag[data-edge="end"] { transform: translateX(-100%); border-radius: 3px 0 0 0; }
.sn-today-flag[data-edge="start"] { transform: none; border-radius: 0 3px 0 0; }

.sn-list { display: block; }
#series-notes-page .btn.sn-select {
  --row-bg: var(--ground);
  display: grid; grid-template-columns: var(--sn-id-w) minmax(0, 1fr) var(--sn-fig-w) 20px; column-gap: var(--sn-gap); align-items: center;
  width: 100%; min-height: 88px; margin: 0; padding: 0 var(--pane-x); border: 0; border-bottom: 1px solid var(--terminal-rule); border-radius: 0;
  background: var(--row-bg); color: var(--text); font-weight: 400; text-align: left; text-decoration: none; white-space: normal; transition: background-color 200ms ease-out;
}
.sn-list > .sn-select:last-child { border-bottom: 0; }
#series-notes-page .btn.sn-select:hover { --row-bg: var(--terminal-control); background: var(--row-bg); }
#series-notes-page .btn.sn-select.is-selected { --row-bg: #08120e; background: var(--row-bg); box-shadow: inset 2px 0 0 var(--positive); }
#series-notes-page .btn.sn-select:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; border-color: var(--terminal-rule); }
.sn-row-id { display: grid; gap: 7px; min-width: 0; padding-block: 16px; }
.sn-row-name { display: flex; align-items: center; gap: 10px; min-width: 0; }
.sn-row-name strong { font-family: var(--font-display); font-weight: 650; font-size: 1.125rem; line-height: 1.1; letter-spacing: -.01em; overflow-wrap: anywhere; }
.sn-yours { padding: 2px 6px; border: 1px solid rgb(var(--positive-rgb) / .45); border-radius: 3px; color: var(--positive); font: var(--colhead); letter-spacing: .06em; text-transform: uppercase; }
.sn-row-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font: 400 .75rem/1.4 var(--fontfam-term); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.sn-row-meta > span + span::before { content: ''; display: inline-block; width: 3px; height: 3px; margin: 0 10px 2px 0; border-radius: 50%; background: var(--rule-bright); vertical-align: middle; }
.sn-status-group { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; }
.sn-pool-state { display: inline-flex; align-items: center; gap: 6px; font: var(--colhead); letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.sn-pool-state::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.sn-pool-state[data-live="true"] { color: var(--positive); }
.sn-on-the-run { padding: 2px 6px; border: 1px solid var(--rule-strong); border-radius: 3px; font: var(--colhead); letter-spacing: .06em; text-transform: uppercase; color: var(--text-soft); white-space: nowrap; }

.sn-row-rail { position: relative; align-self: stretch; min-width: 0; min-height: 56px; }
.sn-track { position: absolute; inset: 0; pointer-events: none; }
.sn-track > span { position: absolute; top: 50%; height: 1px; }
.sn-track-done { left: var(--a); width: calc(var(--n) - var(--a)); background: var(--positive); }
.sn-track-ahead { left: var(--n); width: calc(var(--b) - var(--n)); background: var(--rule-bright); }
.sn-select[data-late="true"] .sn-track-done { background: var(--text-muted); }
.sn-select:not([data-live="true"]):not([data-late="true"]) .sn-track-done { background: var(--text-soft); }
.sn-lamp { position: absolute; left: var(--x); top: 50%; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; border: 1px solid var(--rule-bright); border-radius: 50%; background: var(--row-bg, var(--ground)); box-shadow: 0 0 0 3px var(--row-bg, var(--ground)); }
.sn-lamp[data-passed="true"] { border-color: var(--positive); background: var(--positive); }
.sn-select[data-late="true"] .sn-lamp[data-passed="true"] { border-color: var(--text-muted); background: var(--text-muted); }
.sn-lamp[data-kind="maturity"] { width: 13px; height: 13px; margin: -6.5px 0 0 -6.5px; border: 2px solid var(--text-soft); }
.sn-lamp[data-kind="maturity"][data-passed="true"] { border-color: var(--text-soft); background: var(--text-soft); }
.sn-lamp-date { position: absolute; left: var(--x); top: calc(50% + 12px); transform: translateX(-50%); font: 400 .6875rem/1.2 var(--fontfam-term); color: var(--text-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.sn-lamp-date[data-edge="end"] { transform: translateX(-100%); }
.sn-select.is-selected .sn-lamp-date { color: var(--text-soft); }
.sn-today-line { position: absolute; left: var(--x); top: 0; bottom: -1px; width: 1px; background: rgb(var(--positive-rgb) / .55); pointer-events: none; }
.sn-row-figure { display: grid; justify-items: end; gap: 6px; min-width: 0; text-align: right; }
.sn-row-figure b { font-family: var(--font-display); font-stretch: 72%; font-weight: 600; font-size: 2rem; line-height: 1; letter-spacing: -.005em; font-feature-settings: "tnum" 1, "lnum" 1; color: var(--text); white-space: nowrap; }
.sn-row-figure b[data-stale="true"] { text-decoration: underline dotted var(--network-label); text-underline-offset: 5px; }
.sn-row-figure b.sn-row-none { color: var(--rule-bright); }
.sn-row-figure b.sn-row-state { font-stretch: 100%; font-weight: 600; font-size: 1.125rem; color: var(--text-soft); }
.sn-row-figure small { font: var(--colhead); letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.sn-row-go { position: relative; left: 0; display: grid; place-items: center; width: 20px; height: 20px; color: var(--rule-bright); transition: left 200ms cubic-bezier(.16, 1, .3, 1), color 160ms ease-out; }
.sn-row-go svg { width: 18px; height: 18px; }
#series-notes-page .btn.sn-select:hover .sn-row-go { left: 4px; color: var(--positive); }
.sn-select.is-selected .sn-row-go { color: var(--positive); }
.sn-lamp[data-kind="settled"] { border-color: var(--text-muted); background: var(--text-muted); }

.sn-empty { padding: 40px var(--pane-x); }
.sn-empty h3 { margin: 0; font-family: var(--font-display); font-size: 1.25rem; font-weight: 650; letter-spacing: -.01em; }
.sn-empty p { margin: 8px 0 20px; max-width: 52ch; }

/* ---------- Selected series ---------- */
.sn-page .series-notes-detail { min-width: 0; margin: 0; padding: 0; border: 0; container-type: inline-size; }
.sn-page .series-detail-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 16px 32px; margin: 0; padding: 32px 0 20px; text-align: left; }
.sn-resource-identity { min-width: 0; }
.sn-resource-title { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; }
.sn-page .series-detail-header h2 { margin: 0; font-family: var(--font-display); font-stretch: 100%; font-weight: 650; font-size: 2rem; line-height: 1.05; letter-spacing: -.02em; overflow-wrap: anywhere; }
.sn-page .series-detail-header h2:focus { outline: none; }
.sn-page .series-detail-header p { margin: 8px 0 0; font: 400 .75rem/1.5 var(--fontfam-term); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.sn-notice { margin: 0 0 20px; font-size: .8125rem; color: var(--network-label); }
.sn-oracle { min-width: 0; }
.sn-oracle-details { position: relative; }
#series-notes-page .sn-oracle-details > summary { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 4px 0; list-style: none; cursor: pointer; }
.sn-oracle-details > summary::-webkit-details-marker { display: none; }
#series-notes-page .sn-oracle-quote { display: grid; grid-template-columns: auto; justify-items: end; gap: 4px; text-align: right; }
#series-notes-page .sn-oracle-label { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 2px 6px; white-space: nowrap; font: var(--colhead); letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
#series-notes-page .sn-oracle-label > span { color: var(--text-soft); }
#series-notes-page .sn-oracle-quote > strong { font-family: var(--font-display); font-stretch: 72%; font-weight: 600; font-size: 1.5rem; line-height: 1; letter-spacing: -.005em; font-feature-settings: "tnum" 1, "lnum" 1; color: var(--positive); }
.sn-oracle-state, .sn-pool-price-status { font: var(--colhead); letter-spacing: .04em; color: var(--network-label); }
.sn-oracle-chevron { width: 16px; height: 16px; flex: none; color: var(--text-muted); transition: transform 160ms ease-out; }
.sn-oracle-details[open] .sn-oracle-chevron { transform: rotate(180deg); }
.sn-oracle-popover { position: absolute; z-index: 30; top: calc(100% + 10px); right: 0; width: 380px; max-width: calc(100vw - 32px); padding: 20px; }
.sn-page .sn-oracle-popover h3 { margin: 0 0 8px; font-size: .9375rem; font-weight: 600; }
.sn-oracle-popover p { margin: 16px 0 0; font-size: .75rem; line-height: 1.55; color: var(--text-muted); }
.sn-oracle[data-stale="true"] strong, .sn-position-health[data-stale="true"] dd { text-decoration: underline dotted; text-underline-offset: 4px; }
.sn-trade-link { white-space: nowrap; }

.sn-pool-views { position: relative; display: flex; gap: 4px; margin: 0; border-bottom: 1px solid var(--terminal-rule); }
#series-notes-page .sn-pool-views .sn-pool-view { position: relative; min-height: 48px; padding: 0 14px; border: 0; border-radius: 4px 4px 0 0; background: transparent; color: var(--text-soft); font-size: .875rem; font-weight: 500; }
#series-notes-page .sn-pool-views .sn-pool-view:hover { color: var(--text); background: var(--terminal-control); }
#series-notes-page .sn-pool-views .sn-pool-view[aria-current="page"] { color: var(--text); }
.sn-pool-views .sn-pool-view[aria-current="page"]::after { content: ''; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 2px; background: var(--positive); }
.sn-pool-views .sn-pool-view:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
#sn-risk { padding-top: 28px; padding-bottom: 56px; }
#series-notes-page .sr-scenarios { display: grid; grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr)); gap: 4px; }
#series-notes-page .sr-scenarios .btn { min-width: 0; padding-inline: 4px; white-space: nowrap; }

/* ---------- Overview: balance sheet | lifecycle, then terms ---------- */
.sn-account-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; align-items: stretch; }
#series-notes-page .sn-account-layout > .sn-position { grid-column: 1; grid-row: 1; min-width: 0; padding: 32px 40px 36px 0; border: 0; }
#series-notes-page .sn-account-layout > .sn-life { grid-column: 2; grid-row: 1 / span 2; min-width: 0; padding: 32px 0 40px 40px; border: 0; border-left: 1px solid var(--terminal-rule); }
#series-notes-page .sn-account-layout > .sn-overview { grid-column: 1; grid-row: 2; min-width: 0; margin: 0; padding: 32px 40px 48px 0; border: 0; border-top: 1px solid var(--terminal-rule); }
.sn-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin: 0 0 20px; padding: 0; border: 0; }
#series-notes-page :is(.sn-section-heading h3, .sn-overview h3, .sn-life h3) { margin: 0; font-family: var(--font-display); font-stretch: 100%; font-weight: 650; font-size: 1.25rem; line-height: 1.15; letter-spacing: -.012em; color: var(--text); }
#sn-position-copy { margin-top: 6px; max-width: 60ch; }
.sn-freshness { font: var(--colhead); letter-spacing: .06em; text-transform: uppercase; color: var(--network-label); white-space: nowrap; }
.sn-freshness:empty { display: none; }
.sn-connect { display: grid; justify-items: start; gap: 18px; padding: 28px 0 8px; border-top: 1px solid var(--terminal-rule); }
.sn-connect p { margin: 0; max-width: 46ch; color: var(--text-soft); font-size: .9375rem; line-height: 1.55; }

.sn-sheet { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-top: 1px solid var(--terminal-rule); border-bottom: 1px solid var(--terminal-rule); }
.sn-sheet-side { display: flex; flex-direction: column; min-width: 0; padding: 24px 32px 24px 0; }
.sn-sheet-side + .sn-sheet-side { padding: 24px 0 24px 32px; border-left: 1px solid var(--terminal-rule); }
#series-notes-page .sn-sheet-side h4 { margin: 0 0 14px; font: var(--colhead); letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.sn-position-value { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; min-width: 0; font-weight: 400; }
#series-notes-page .sn-value-number { min-width: 0; font-family: var(--font-display); font-stretch: 72%; font-weight: 600; font-size: 3.25rem; line-height: .95; letter-spacing: -.01em; font-feature-settings: "tnum" 1, "lnum" 1; color: var(--text); overflow-wrap: anywhere; }
#series-notes-page .sn-value-unit { font: 500 .8125rem/1.4 var(--fontfam-term); font-stretch: 100%; letter-spacing: 0; color: var(--text-soft); }
.sn-value-note { min-height: 18px; margin: 10px 0 0; font: 400 .75rem/1.5 var(--fontfam-term); color: var(--text-soft); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.sn-sheet-facts { display: grid; margin: 18px 0 20px; }
.sn-sheet-facts > div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 10px 0; border-top: 1px solid var(--terminal-rule); }
.sn-sheet-facts > div:last-child { border-bottom: 1px solid var(--terminal-rule); }
.sn-sheet-facts dt { color: var(--text-soft); font-size: .8125rem; }
.sn-sheet-facts dd { margin: 0; font: 400 .8125rem/1.5 var(--fontfam-term); font-variant-numeric: tabular-nums slashed-zero; color: var(--text); text-align: right; overflow-wrap: anywhere; }
.sn-sheet-facts dd[data-stale="true"] { text-decoration: underline dotted; text-underline-offset: 4px; }
.sn-balance-actions { display: flex; flex-wrap: wrap; gap: 8px; }
#series-notes-page .sn-balance-actions .btn { min-height: 44px; padding-inline: 18px; white-space: nowrap; }
#series-notes-page .btn.sn-next { background: var(--positive); border-color: var(--positive); color: var(--on-positive); font-weight: 600; }
#series-notes-page .btn.sn-next:hover:not(:disabled) { background: var(--positive-soft); border-color: var(--positive-soft); color: var(--on-positive); }
#series-notes-page .btn.sn-next:disabled { background: var(--terminal-control); border-color: var(--rule-strong); color: var(--text-muted); opacity: 1; }
#series-notes-page .btn.sn-next:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.sn-redeem-note { margin: 14px 0 0; font-size: .8125rem; line-height: 1.55; color: var(--text-soft); }
.sn-redeem-note[data-tone="warning"] { color: var(--network-label); }
.sn-stage-note { margin: 16px 0 0; font-size: .8125rem; color: var(--text-soft); }
#sn-metrics[data-stale="true"] .sn-value-number { text-decoration: underline dotted; text-decoration-thickness: 2px; text-underline-offset: 6px; }
#sn-selected[data-late="true"] [data-dom-key="debt"] .sn-value-number { color: var(--text-muted); }

/* Position health: the buffer as the lead figure beside the LTV gauge. */
.sn-position-health { margin: 0; padding: 28px 0 0; }
.sn-health-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
#series-notes-page .sn-health-heading h4 { margin: 0; font: var(--colhead); letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.sn-health-state { display: inline-flex; align-items: center; gap: 7px; padding: 3px 8px; border: 1px solid var(--rule-strong); border-radius: 3px; font: var(--colhead); letter-spacing: .06em; text-transform: uppercase; color: var(--text-soft); }
.sn-health-state::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.sn-health-state[data-tone="good"] { color: var(--positive); border-color: rgb(var(--positive-rgb) / .4); }
.sn-health-state[data-tone="warning"] { color: var(--network-label); border-color: rgb(245 176 86 / .45); }
.sn-health-state[data-tone="danger"] { color: var(--danger); border-color: rgb(var(--danger-rgb) / .5); }
.sn-health-body { display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 1fr); align-items: center; gap: 20px 40px; }
.sn-health-buffer { display: grid; gap: 8px; margin: 0; }
.sn-health-figure { font-family: var(--font-display); font-stretch: 72%; font-weight: 600; font-size: 3rem; line-height: .95; letter-spacing: -.01em; font-feature-settings: "tnum" 1, "lnum" 1; color: var(--text); }
.sn-health-figure[data-tone="good"] { color: var(--positive); }
.sn-health-figure[data-tone="warning"] { color: var(--network-label); }
.sn-health-figure[data-tone="danger"] { color: var(--danger); }
.sn-health-buffer > span { max-width: 30ch; color: var(--text-soft); font-size: .8125rem; line-height: 1.45; }
.sn-health-threshold { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--terminal-rule); font-size: .875rem; color: var(--text-soft); }
.sn-health-threshold b { font: 500 .875rem/1.4 var(--fontfam-term); font-variant-numeric: tabular-nums; color: var(--text); }
.sn-page .sn-health-help { margin: 14px 0 0; max-width: 72ch; font-size: .75rem; color: var(--text-muted); }

/* Gauge: a 0–100% LTV track. Tick labels sit below the track, marker labels above it. */
.sn-gauge { --tone: var(--text-soft); position: relative; min-width: 0; container-type: inline-size; }
.sn-gauge-space { display: block; height: 72px; }
.sn-gauge:has([data-stack="true"]) .sn-gauge-space { height: 92px; }
.sn-gauge-tick[data-stack="true"] > span { top: calc(100% + 26px); }
.sn-gauge[data-tone="good"] { --tone: var(--positive); }
.sn-gauge[data-tone="warning"] { --tone: var(--network-label); }
.sn-gauge[data-tone="danger"] { --tone: var(--danger); }
.sn-gauge-track { position: absolute; left: 0; right: 0; top: 32px; height: 6px; background: var(--rule-strong); }
.sn-gauge-fill { position: absolute; inset: 0; background: var(--tone); transform: scaleX(var(--ltv)); transform-origin: left center; transition: transform 420ms cubic-bezier(.16, 1, .3, 1); }
.sn-gauge-zone { position: absolute; left: var(--threshold); right: 0; top: 0; bottom: 0; background: repeating-linear-gradient(135deg, rgb(var(--danger-soft-rgb) / .5) 0 2px, rgb(var(--danger-soft-rgb) / .08) 2px 6px); }
.sn-gauge-tick { position: absolute; left: var(--x); top: 26px; width: 1px; height: 18px; background: var(--text-soft); }
.sn-gauge-tick[data-kind="liquidation"] { background: var(--danger-soft); }
.sn-gauge-tick > span { position: absolute; top: calc(100% + 6px); left: 0; transform: translateX(-50%); font: 400 .6875rem/1 var(--fontfam-term); letter-spacing: .02em; color: var(--text-muted); white-space: nowrap; }
.sn-gauge-tick[data-kind="liquidation"] > span { color: var(--danger-soft); }
.sn-gauge-tick[data-edge="end"] > span { transform: translateX(-100%); }
.sn-gauge-tick[data-edge="start"] > span { transform: none; }
.sn-gauge-tick[data-edge="end"] > span { transform: translateX(calc(-100% - 6px)); }
.sn-gauge-tick[data-edge="start"] > span { transform: translateX(6px); }
.sn-gauge-tick[data-quiet="true"] > span { display: none; }
.sn-gauge-marker { position: absolute; left: var(--x); top: 35px; width: 0; height: 0; transition: left 420ms cubic-bezier(.16, 1, .3, 1); }
.sn-gauge-marker::before { content: ''; position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; background: var(--tone); box-shadow: 0 0 0 3px var(--ground); }
.sn-gauge-marker > span { position: absolute; bottom: 14px; left: 0; transform: translateX(-50%); font: 500 .75rem/1 var(--fontfam-term); font-variant-numeric: tabular-nums; color: var(--text); white-space: nowrap; }
.sn-gauge-marker[data-edge="start"] > span { transform: translateX(-8px); }
.sn-gauge-marker[data-edge="end"] > span { transform: translateX(calc(-100% + 8px)); }
/* Narrow gauges keep every label inside the track: liquidation reads leftward, max issue lives in Terms. */
@container (max-width: 520px) {
  .sn-gauge-space { height: 92px; }
  .sn-gauge-tick[data-kind="liquidation"] > span { transform: translateX(calc(-100% - 6px)); }
  .sn-gauge-tick[data-kind="issue"] > span { top: calc(100% + 26px); }
}
.sn-gauge-ghost { --ghost: var(--text-soft); }
.sn-gauge-ghost[data-tone="good"] { --ghost: var(--positive); }
.sn-gauge-ghost[data-tone="warning"] { --ghost: var(--network-label); }
.sn-gauge-ghost[data-tone="danger"] { --ghost: var(--danger); }
.sn-gauge-ghost::before { background: var(--ground); border: 2px solid var(--ghost); left: -8px; top: -8px; box-sizing: content-box; width: 12px; height: 12px; }
.sn-gauge-ghost > span { color: var(--ghost); }

/* ---------- Lifecycle: the series' stages as a vertical lamp track ---------- */
.sn-life > h3 { margin-bottom: 22px !important; }
.sn-lamps { margin: 0; padding: 0; list-style: none; }
.sn-lamps > li { position: relative; padding: 0 0 22px 30px; }
.sn-lamps > li::before { content: ''; position: absolute; left: 4px; top: 14px; bottom: -2px; width: 1px; background: var(--rule-strong); }
.sn-lamps > li:last-child { padding-bottom: 0; }
.sn-lamps > li:last-child::before { display: none; }
.sn-lamps > li[data-state="done"]::before { background: var(--positive); }
.sn-lamps .sn-lamp { left: 0; top: 5px; margin: 0; background: var(--ground); box-shadow: 0 0 0 3px var(--ground); }
.sn-lamps > li[data-state="done"] .sn-lamp { border-color: var(--positive); background: var(--positive); animation: sn-lamp-on 260ms ease-out calc(var(--i, 0) * 70ms) backwards; }
.sn-lamps > li.sn-now .sn-lamp { border: 1px solid var(--positive); background: var(--ground); box-shadow: 0 0 0 3px var(--ground), 0 0 0 4px rgb(var(--positive-rgb) / .45); }
.sn-stage h4 { margin: 0; font-size: .875rem; font-weight: 600; line-height: 1.35; color: var(--text); }
.sn-stage time { display: block; margin-top: 3px; font: 400 .75rem/1.4 var(--fontfam-term); color: var(--text-muted); font-variant-numeric: tabular-nums; }
.sn-stage p { margin: 6px 0 0; font-size: .8125rem; line-height: 1.5; color: var(--text-soft); }
.sn-lamps > li[data-state="ahead"] .sn-stage h4 { color: var(--text-soft); }
.sn-lamps > li[data-state="ahead"] .sn-stage p { color: var(--text-muted); }
.sn-lamps > li.sn-now .sn-stage h4 { font: 600 .6875rem/1.4 var(--fontfam-term); letter-spacing: .08em; text-transform: uppercase; color: var(--positive); }
.sn-lamps > li.sn-now .sn-stage p { color: var(--text); }
@keyframes sn-lamp-on { from { background: var(--ground); border-color: var(--rule-bright); } }
.sn-select.is-selected .sn-lamp[data-passed="true"] { animation: sn-lamp-on 260ms ease-out calc(var(--i, 0) * 60ms) backwards; }

.sn-lend { margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--terminal-rule); }
.sn-lend > p { margin-top: 10px !important; }
.sn-page .sn-lend .series-detail-grid { margin: 16px 0 20px; }
.sn-lend-link { width: 100%; }
.sn-lend-none { margin-top: 4px !important; color: var(--text-muted) !important; }

/* ---------- Pool and terms ---------- */
.sn-terms { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 40px; }
.sn-terms-col { min-width: 0; }
.sn-page .series-detail-grid { display: block; margin: 14px 0 0; padding: 0; border-radius: 0; background: transparent; }
#series-notes-page .series-detail-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 16px; min-width: 0; margin: 0; padding: 11px 0; border: 0; border-bottom: 1px solid var(--terminal-rule); border-radius: 0; background: transparent; }
#series-notes-page .series-detail-item:first-child { border-top: 1px solid var(--terminal-rule); }
#series-notes-page .series-detail-item dt { margin: 0; color: var(--text-soft); font-size: .8125rem; line-height: 1.5; }
#series-notes-page .series-detail-item dd { margin: 0; color: var(--text); text-align: right; font: 400 .8125rem/1.5 var(--fontfam-term); font-variant-numeric: tabular-nums slashed-zero; overflow-wrap: anywhere; }
.sn-links { display: grid; gap: 10px; padding: 16px 0 0; color: var(--text-muted); font-size: .75rem; line-height: 1.5; }
.sn-links > span { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.sn-links a { font-family: var(--fontfam-term); color: var(--text-soft); }
.sn-links a:hover { color: var(--positive-soft); }
.sn-settlement { margin-top: 28px; }
#series-notes-page .sn-settlement h4 { margin: 0; font-size: .9375rem; font-weight: 600; }
.sn-settlement > p { margin: 8px 0 0 !important; max-width: 60ch; }
.sn-settlement [data-shortfall="true"], .sn-shortfall { color: var(--network-label) !important; }
.sn-help { margin-top: 32px; border-top: 1px solid var(--terminal-rule); border-bottom: 1px solid var(--terminal-rule); }
.sn-help > summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; list-style: none; cursor: pointer; font-size: .875rem; font-weight: 500; color: var(--text); }
.sn-help > summary::-webkit-details-marker { display: none; }
.sn-help > summary::after { content: ''; width: 7px; height: 7px; margin-right: 4px; border-right: 1px solid var(--text-muted); border-bottom: 1px solid var(--text-muted); transform: translateY(-2px) rotate(45deg); }
.sn-help[open] > summary::after { transform: translateY(2px) rotate(225deg); }
.sn-help-body { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 32px; padding: 4px 0 28px; }
#series-notes-page .sn-help-body h4 { margin: 0 0 8px; font-size: .875rem; font-weight: 600; }
.sn-help-body p { margin: 0 0 10px; font-size: .8125rem; line-height: 1.6; color: var(--text-soft); }

/* ---------- Action dialog ---------- */
.sn-page .sn-dialog-overlay { align-items: center; padding: 16px; z-index: 12000; }
.sn-page .modal.sn-dialog { grid-template-rows: auto minmax(0, 1fr); width: min(560px, 100%); padding: 0; max-height: calc(100dvh - 32px); text-align: left; }
.sn-dialog-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.sn-dialog-heading > div { min-width: 0; }
#sn-dialog-title { font-family: var(--font-display); font-weight: 650; letter-spacing: -.012em; }
#sn-dialog-pool { margin: 4px 0 0; font: 400 .75rem/1.4 var(--fontfam-term); color: var(--text-muted); overflow-wrap: anywhere; }
.sn-page .sn-dialog-close { width: 44px; padding: 10px; flex-shrink: 0; }
.sn-dialog-close svg { width: 18px; height: 18px; }
#sn-forms, #sn-forms > section, #sn-forms form { display: flex; flex-direction: column; min-height: 0; }
.sn-dialog-body { min-height: 0; padding: 8px var(--review-inset) 8px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--rule-strong) transparent; }
.sn-dialog-copy { margin: 0 0 22px; color: var(--text-soft); font-size: .875rem; line-height: 1.6; }
.sn-fields { display: grid; gap: 16px; }
.sn-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; color: var(--text-soft); font-size: .8125rem; line-height: 1.5; }
.sn-fields .form-input-wrapper, .sn-amount-control { min-width: 0; border: 1px solid var(--rule-strong); border-radius: 4px; background: var(--terminal-control); transition: border-color 160ms ease-out; }
.sn-fields :is(.form-input-wrapper, .sn-amount-control):hover { border-color: var(--rule-bright); }
.sn-fields :is(.form-input-wrapper, .sn-amount-control):focus-within { border-color: var(--positive); box-shadow: none; }
.sn-fields input, .sn-fields select { display: block; width: 100%; min-width: 0; min-height: 48px; margin: 0; padding: 12px; border: 0; border-radius: 4px; background: transparent; color: var(--text); font-size: 1rem; line-height: 1.5; caret-color: var(--positive); }
.sn-amount-control { display: flex; align-items: center; gap: 12px; padding-right: 16px; }
#series-notes-page .sn-amount-control input { flex: 1; min-height: 64px; padding: 10px 14px; font-family: var(--font-display); font-stretch: 72%; font-weight: 600; font-size: 2rem; line-height: 1; letter-spacing: -.005em; font-feature-settings: "tnum" 1, "lnum" 1; }
.sn-amount-control [data-amount-symbol] { max-width: 46%; font: 500 .8125rem/1.4 var(--fontfam-term); color: var(--text-soft); overflow-wrap: anywhere; }
.sn-fields input::placeholder { color: var(--rule-bright); opacity: 1; }
.sn-fields :is(input, select):focus { outline: none; box-shadow: none; }
.sn-fields select option { background: var(--terminal-panel); }
.sn-fields :is(input, select):disabled { opacity: .6; }
.sn-amount-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: -6px; }
.sn-available { margin: 0; font: 400 .75rem/1.5 var(--fontfam-term); color: var(--text-muted); overflow-wrap: anywhere; }
#series-notes-page .sn-amount-meta .btn { min-height: 36px; padding-inline: 12px; flex-shrink: 0; font-size: .75rem; }
.sn-preview, .sn-form-error, .sn-form-state { margin: 20px 0 8px; font-size: .8125rem; line-height: 1.6; overflow-wrap: anywhere; }
.sn-form-error { color: var(--danger); }
.sn-form-state, .sn-preview { color: var(--text-soft); }
.sn-preview:empty, .sn-form-error:empty, .sn-form-state:empty { display: none; }
.sn-page .sn-preview-metrics { margin: 0; }
#series-notes-page .sn-preview-metrics .series-detail-item:first-child dd { font-size: 1rem; color: var(--text); }
.sn-risk-estimate:empty { display: none; }
.sn-whatif { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--terminal-rule); }
#series-notes-page .sn-whatif h3 { margin: 0 0 4px; font: var(--colhead); letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.sn-whatif .series-detail-grid { margin-top: 10px; }
.sn-whatif > p { margin: 10px 0 0; font-size: .75rem !important; color: var(--text-muted) !important; }
.sn-dialog .modal-actions { flex-shrink: 0; display: flex; justify-content: flex-end; gap: 8px; border-top: 1px solid var(--terminal-rule); }
.sn-dialog .modal-actions .btn { max-width: 100%; white-space: normal; }
.sn-dialog .sn-review-button:disabled { background: var(--terminal-control); border-color: var(--rule-strong); color: var(--text-muted); opacity: 1; }

/* ---------- Narrower workspaces ---------- */
@media (max-width: 1180px) {
  #series-notes-page .sn-rail { --sn-id-w: 220px; --sn-fig-w: 150px; --sn-gap: 24px; }
  .sn-account-layout { grid-template-columns: minmax(0, 1fr) 300px; }
  #series-notes-page .sn-account-layout > .sn-position, #series-notes-page .sn-account-layout > .sn-overview { padding-right: 32px; }
  #series-notes-page .sn-account-layout > .sn-life { padding-left: 32px; }
  .sn-health-body { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 980px) {
  .sn-rail-legend { display: none; }
  .sn-account-layout { grid-template-columns: minmax(0, 1fr); }
  #series-notes-page .sn-account-layout > .sn-position { grid-row: 1; padding: 28px 0 32px; }
  #series-notes-page .sn-account-layout > .sn-life { grid-column: 1; grid-row: 2; padding: 28px 0 32px; border-left: 0; border-top: 1px solid var(--terminal-rule); }
  #series-notes-page .sn-account-layout > .sn-overview { grid-row: 3; padding: 28px 0 40px; }
  .sn-help-body { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .sn-rail-head { padding-block: 10px; }
  .sn-filters { display: flex; width: 100%; }
  .sn-filter { flex: 1 0 auto; justify-content: center; padding-inline: 10px; }
  .sn-rail-axis { grid-template-columns: minmax(0, 1fr); height: 30px; }
  .sn-axis-cell { grid-column: 1; }
  .sn-tick:not([data-major="true"]) { display: none; }
  #series-notes-page .btn.sn-select { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "id figure" "rail rail"; row-gap: 0; min-height: 0; padding-top: 4px; padding-bottom: 8px; }
  .sn-row-id { grid-area: id; padding-block: 12px 4px; }
  .sn-row-figure { grid-area: figure; }
  .sn-row-figure b { font-size: 1.625rem; }
  .sn-row-rail { grid-area: rail; min-height: 48px; }
  .sn-row-go { display: none; }
  .sn-rail-axis { grid-template-columns: minmax(0, 1fr); }
  .sn-lamp-date { top: calc(50% + 10px); }
  .sn-page .series-detail-header { grid-template-columns: minmax(0, 1fr) auto; padding-top: 24px; }
  .sn-resource-identity { grid-column: 1 / -1; }
  #series-notes-page .sn-oracle-quote { justify-items: start; text-align: left; }
  #series-notes-page .sn-oracle-label { justify-content: flex-start; }
  .sn-oracle-details { position: static; }
  .sn-oracle-popover { left: 0; right: auto; width: 100%; box-sizing: border-box; }
  .sn-page .series-detail-header h2 { font-size: 1.625rem; }
  .sn-sheet { grid-template-columns: minmax(0, 1fr); }
  .sn-sheet-side { padding: 22px 0; }
  .sn-sheet-side + .sn-sheet-side { padding: 22px 0; border-left: 0; border-top: 1px solid var(--terminal-rule); }
  #series-notes-page .sn-value-number { font-size: 2.75rem; }
        .sn-health-figure { font-size: 2.5rem; }
  .sn-terms { grid-template-columns: minmax(0, 1fr); }
  .sn-page .sn-dialog-overlay { padding: 12px; }
  .sn-page .modal.sn-dialog { max-height: calc(100dvh - 24px); }
}
@media (max-width: 440px) {
  .sn-filter { padding-inline: 8px; font-size: .75rem; gap: 6px; }
  #series-notes-page .sn-value-number { font-size: 2.375rem; }
  #series-notes-page .sn-balance-actions .btn { flex: 1 1 0; padding-inline: 12px; }
  .sn-row-figure b { font-size: 1.375rem; }
}
@media (prefers-reduced-motion: reduce) {
  #series-notes-page .btn.sn-select, .sn-filter, .sn-gauge-fill, .sn-gauge-marker, .sn-oracle-chevron, .sn-fields :is(.form-input-wrapper, .sn-amount-control) { transition: none; }
  .sn-lamps > li[data-state="done"] .sn-lamp, .sn-select.is-selected .sn-lamp[data-passed="true"] { animation: none; }
}
