/* ── shared/real-figures.css ── */
/* Shared by every guide that shows captures of the real tool (a guide opts in with sharedCss: ['real-figures']).
   Both themes are served by the picture pair real() writes (img.is-dark / img.is-light, hidden by guide.css); this file only
   frames the picture, and the frame follows the theme through tokens. */

/* A capture of the real tool. The frame is the tool's own page colour in each theme, so the capture's edge never reads as a
   box inside a box: near-black behind the dark capture, white behind the light one. */
:root { --real-frame: #0A0A0A; }
:root[data-theme="light"] { --real-frame: #FFFFFF; }
.ocv-real { margin: 28px 0; padding: 0; border: 1px solid var(--border-soft); border-radius: 16px; background: var(--real-frame); overflow: hidden; }
.ocv-real__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; padding: 10px 16px; border-bottom: 1px solid var(--border-soft); background: rgba(var(--ink-rgb), 0.03); }
.ocv-real__tag { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sahi-cyan, #5ACFE0); }
.ocv-real__label { font-size: 0.9rem; font-weight: 600; color: var(--text-1); }
.ocv-real__shot { display: flex; justify-content: center; padding: 18px 16px; overflow-x: auto; }
.ocv-real__shot img { display: block; width: var(--real-w); max-width: 100%; height: auto; border-radius: 6px; }
.ocv-real__cap { padding: 0 18px 16px; font-size: 0.88rem; line-height: 1.5; color: var(--text-3); text-align: center; }
.ocv-real__cap strong { color: var(--text-2); }

/* Two or more captures side by side (a cell in Simple against Advanced, Call against Put) */
.ocv-real-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px; margin: 28px 0; }
.ocv-real-row > .ocv-real { margin: 0; }

/* ── shared/real-cells.css ── */
/* GENERATED by scripts/guides/cells/build-cell-css.mjs from the app's own cell styles. Do not edit by hand. */

/* colour tokens (src/styles/sahi-colour-system.css), scoped to the specimens */

.ocs-tokens {
  
  --capital-purple: #66033c;
  --capital-black: #0f0f0f;
  --capital-white: #ffffff;
  --capital-spring-wood: #f9f6f1;

  
  
  --switch-on-fill: var(--brand-700);
  --switch-on-thumb: var(--capital-white);
  --status-badge-fill: var(--capital-purple);
  --status-badge-text: var(--capital-white);

  
  --brand-50: #fef1fa;
  --brand-100: #fde6f7;
  --brand-200: #feccf1;
  --brand-300: #fea3e5;
  --brand-400: #fc6ad0;
  --brand-500: #e61c9a;
  --brand-600: #c80e7d;
  --brand-700: #a50f66;
  --brand-800: #8a1157;
  --brand-900: #66033c;
  --brand-950: #3d0920;
  --brand-1000: #15020b;

  
  --warm-50: #f9f6f1;
  --warm-100: #ede5d8;
  --warm-200: #d9c9ae;
  --warm-300: #c5aa84;
  --warm-400: #b89367;
  --warm-500: #ac7c54;
  --warm-600: #976448;
  --warm-700: #835241;
  --warm-800: #694137;
  --warm-900: #573730;
  --warm-950: #301c18;

  
  --error-50: #fdf3f3;
  --error-100: #fce5e4;
  --error-200: #fad0ce;
  --error-300: #f6aeab;
  --error-400: #ee807b;
  --error-500: #e35650;
  --error-600: #c4342e;
  --error-700: #ae2c27;
  --error-800: #902824;
  --error-900: #782724;
  --error-950: #41100e;

  
  --success-50: #eefdf5;
  --success-100: #dafeec;
  --success-200: #b5f5d6;
  --success-300: #7dedb7;
  --success-400: #40e897;
  --success-500: #1fbf74;
  --success-600: #08955a;
  
  --success-650: #0e854d;
  --success-700: #116a40;
  --success-800: #0d5634;
  --success-900: #0a3f27;
  --success-950: #02311d;

  
  --neutral-50: #fafafa;
  --neutral-100: #f5f5f5;
  --neutral-200: #e6e6e6;
  
  --neutral-225: #e2e2e2;
  --neutral-300: #d3d3d3;
  --neutral-400: #a3a3a3;
  --neutral-450: #8c8c8c;
  --neutral-500: #727272;
  --neutral-525: #6e6e6e;
  --neutral-550: #5f5f5f;
  --neutral-600: #535353;
  --neutral-700: #404040;
  
  --neutral-740: #383838;
  --neutral-760: #333333;
  --neutral-800: #272727;
  
  --neutral-825: #242424;
  --neutral-850: #1f1f1f;
  --neutral-900: #1a1a1a;
  --neutral-910: #171717;
  --neutral-950: #0f0f0f;
  --neutral-975: #0a0a0a;
  
  --neutral-1000: #000000;

  
  --bg: var(--neutral-1000);
  --bg-subtle: var(--neutral-900);
  --bg-sunken: var(--neutral-1000);
  --surface: var(--neutral-910);
  
  --surface-raised: var(--neutral-825);
  --surface-high: var(--neutral-800);
  
  --table-head-surface: var(--neutral-825);
  
  --table-body-surface: var(--surface);
  --table-hover-surface: color-mix(in srgb, var(--neutral-50) 5%, var(--surface));
  --text: var(--neutral-50);
  --text-muted: var(--neutral-400);
  
  --text-subtle: var(--neutral-450);
  --text-inverse: var(--capital-black);
  
  --line: var(--neutral-760);
  --line-strong: var(--neutral-600);
  
  --hairline: var(--neutral-760);
  --hairline-hover: color-mix(in srgb, var(--line-strong) 62%, var(--text));
  --accent: var(--brand-600);
  --accent-hover: var(--brand-500);
  --accent-text: var(--brand-300);
  
  --accent-ring: var(--accent-hover);
  --accent-wash: color-mix(in srgb, var(--capital-purple) 22%, transparent);
  --cta-fill: var(--capital-white);
  --cta-text: var(--capital-black);
  --hover-wash: color-mix(in srgb, var(--neutral-50) 7%, transparent);
  --press-wash: color-mix(in srgb, var(--neutral-50) 12%, transparent);
  
  --selection-fill: var(--capital-white);
  --selection-text: var(--capital-black);
  --selection-track: var(--surface);
  --selection-ink: var(--text);
  --selection-wash: color-mix(in srgb, var(--text) 10%, var(--surface));
  --selection-line: color-mix(in srgb, var(--text) 45%, var(--line));
  --buy-fill: var(--success-650);
  --sell-fill: var(--error-600);
  --up: var(--success-400);
  --down: var(--error-400);
  --candle-up: var(--success-500);
  --candle-down: var(--error-500);
  --vol-up: var(--success-800);
  --vol-down: var(--error-800);
  --series-1: var(--neutral-50);
  --series-2: var(--brand-500);
  --series-3: var(--neutral-500);
  --attentive: var(--warm-300);
  --warning-surface: color-mix(in srgb, var(--warm-900) 28%, transparent);
  --warning-border: var(--warm-900);
  --warning-text: var(--warm-300);
  --nav-active-fill: var(--capital-white);
  --nav-active-text: var(--capital-black);
  --shadow-0: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-1: 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-2: 0 4px 12px rgba(0, 0, 0, 0.55), 0 1px 3px rgba(0, 0, 0, 0.4);
  --shadow-3: 0 8px 24px rgba(0, 0, 0, 0.6), 0 2px 6px rgba(0, 0, 0, 0.45);
  --shadow-4: 0 12px 32px rgba(0, 0, 0, 0.65), 0 4px 8px rgba(0, 0, 0, 0.45);
  --shadow-5: 0 24px 64px rgba(0, 0, 0, 0.72), 0 8px 16px rgba(0, 0, 0, 0.5);
  color-scheme: dark;
}
:root[data-theme="dark"] .ocs-tokens {
  
  --capital-black: var(--neutral-950);

  --bg: var(--neutral-1000);
  --bg-subtle: var(--neutral-900);
  --bg-sunken: var(--neutral-1000);
  --surface: var(--neutral-910);
  
  --surface-raised: var(--neutral-825);
  --surface-high: var(--neutral-800);
  --text: var(--neutral-50);
  --text-muted: var(--neutral-400);
  
  --text-subtle: var(--neutral-450);
  --text-inverse: var(--capital-black);
  
  --line: var(--neutral-760);
  --line-strong: var(--neutral-600);
  
  --hairline: var(--neutral-760);
  --hairline-hover: color-mix(in srgb, var(--line-strong) 62%, var(--text));
  --accent: var(--brand-600);
  --accent-hover: var(--brand-500);
  --accent-text: var(--brand-300);
  
  --accent-ring: var(--accent-hover);
  --accent-wash: color-mix(in srgb, var(--capital-purple) 22%, transparent);
  --cta-fill: var(--capital-white);
  --cta-text: var(--capital-black);
  --hover-wash: color-mix(in srgb, var(--neutral-50) 7%, transparent);
  --press-wash: color-mix(in srgb, var(--neutral-50) 12%, transparent);
  --buy-fill: var(--success-650);
  --sell-fill: var(--error-600);
  --up: var(--success-400);
  --down: var(--error-400);
  --candle-up: var(--success-500);
  --candle-down: var(--error-500);
  --vol-up: var(--success-800);
  --vol-down: var(--error-800);
  --series-1: var(--neutral-50);
  --series-2: var(--brand-500);
  --series-3: var(--neutral-500);
  --attentive: var(--warm-300);
  --warning-surface: color-mix(in srgb, var(--warm-900) 28%, transparent);
  --warning-border: var(--warm-900);
  --warning-text: var(--warm-300);
  --nav-active-fill: var(--capital-white);
  --nav-active-text: var(--capital-black);
  --shadow-0: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-1: 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-2: 0 4px 12px rgba(0, 0, 0, 0.55), 0 1px 3px rgba(0, 0, 0, 0.4);
  --shadow-3: 0 8px 24px rgba(0, 0, 0, 0.6), 0 2px 6px rgba(0, 0, 0, 0.45);
  --shadow-4: 0 12px 32px rgba(0, 0, 0, 0.65), 0 4px 8px rgba(0, 0, 0, 0.45);
  --shadow-5: 0 24px 64px rgba(0, 0, 0, 0.72), 0 8px 16px rgba(0, 0, 0, 0.5);
  color-scheme: dark;
}
:root[data-theme="light"] .ocs-tokens {
  --bg: var(--capital-white);
  --bg-subtle: var(--neutral-100);
  --bg-sunken: var(--neutral-100);
  --surface: var(--capital-white);
  --surface-raised: var(--capital-white);
  --surface-high: var(--capital-white);
  --table-head-surface: var(--neutral-100);
  --selection-fill: var(--capital-black);
  --selection-text: var(--capital-white);
  --selection-track: var(--neutral-100);
  --table-body-surface: var(--capital-white);
  --table-hover-surface: color-mix(in srgb, var(--capital-black) 5%, var(--capital-white));
  --text: var(--capital-black);
  
  --text-muted: var(--neutral-600);
  --text-subtle: var(--neutral-525);
  --text-inverse: var(--capital-white);
  --line: var(--neutral-225);
  --line-strong: var(--neutral-300);
  
  --hairline: var(--neutral-200);
  --hairline-hover: color-mix(in srgb, var(--line-strong) 55%, var(--text));
  --accent: var(--capital-purple);
  --accent-hover: var(--brand-800);
  --accent-text: var(--capital-purple);
  
  --accent-ring: var(--accent);
  --accent-wash: var(--brand-50);
  --cta-fill: var(--capital-black);
  --cta-text: var(--capital-white);
  --hover-wash: color-mix(in srgb, var(--capital-black) 5%, transparent);
  --press-wash: color-mix(in srgb, var(--capital-black) 9%, transparent);
  --buy-fill: var(--success-700);
  --sell-fill: var(--error-600);
  --switch-on-fill: var(--capital-purple);
  --up: var(--success-600);
  --down: var(--error-600);
  --candle-up: var(--success-500);
  --candle-down: var(--error-600);
  --vol-up: var(--success-200);
  --vol-down: var(--error-200);
  --series-1: var(--capital-black);
  --series-2: var(--capital-purple);
  --series-3: var(--neutral-500);
  --attentive: var(--warm-600);
  --warning-surface: var(--warm-100);
  --warning-border: var(--warm-200);
  --warning-text: var(--warm-800);
  --nav-active-fill: var(--capital-black);
  --nav-active-text: var(--capital-white);
  
  --up-ink: var(--success-700);
  --down-ink: var(--error-700);
  --shadow-0: 0 1px 2px rgba(15, 15, 15, 0.04);
  --shadow-1:
    0 1px 3px rgba(15, 15, 15, 0.06), 0 1px 2px rgba(15, 15, 15, 0.04);
  --shadow-2:
    0 4px 12px rgba(15, 15, 15, 0.07), 0 1px 3px rgba(15, 15, 15, 0.04);
  --shadow-3:
    0 8px 24px rgba(15, 15, 15, 0.09), 0 2px 6px rgba(15, 15, 15, 0.04);
  --shadow-4:
    0 12px 32px rgba(15, 15, 15, 0.11), 0 4px 8px rgba(15, 15, 15, 0.05);
  --shadow-5:
    0 24px 64px rgba(15, 15, 15, 0.17), 0 8px 16px rgba(15, 15, 15, 0.06);
  color-scheme: light;
}
.ocs-tokens {
  
  --bg-base: var(--bg);
  --bg-surface: var(--surface);
  --bg-glass: color-mix(in srgb, var(--surface) 82%, transparent);
  --text-primary: var(--text);
  --text-secondary: var(--text-muted);
  --accent-primary: var(--accent);
  --accent-bullish: var(--up);
  --accent-bearish: var(--down);
  --border-color: var(--line);

  
  --atm-hue: var(--text-muted);

  --bg1: var(--bg);
  --bg2: var(--bg-subtle);
  --bg3: var(--bg-sunken);
  --bg-card: var(--surface-raised);
  --bg-panel: var(--surface);
  --bg-input: var(--surface);
  --panel: var(--surface);
  --panel-2: var(--surface-raised);
  --surface2: var(--surface-raised);
  --surface3: var(--surface-high);
  --surface-hover: var(--hover-wash);
  --popbg: var(--surface-high);
  --terminal-panel: var(--surface);
  --terminal-panel-strong: var(--surface-high);
  --terminal-panel-soft: var(--bg-subtle);
  --terminal-divider: var(--line);
  --border: var(--line);
  --border2: var(--line-strong);
  --border-hover: var(--line-strong);
  --line2: var(--line-strong);
  --line-2: var(--line-strong);
  --text1: var(--text);
  --text2: var(--text-muted);
  --text3: var(--text-subtle);
  --text4: var(--text-subtle);
  --text-primary: var(--text);
  --text-heading: var(--text);
  --ink: var(--text);
  --ink-2: var(--text-muted);
  --muted: var(--text-muted);
  --sub: var(--text-muted);
  --faint: var(--text-subtle);

  --sahi-bg-0: var(--bg);
  --sahi-bg-1: var(--bg-subtle);
  --sahi-bg-2: var(--bg-sunken);
  --sahi-surface-1: var(--surface);
  --sahi-surface-2: var(--surface-raised);
  --sahi-surface-3: var(--surface-high);
  --sahi-border-soft: var(--line);
  --sahi-border-strong: var(--line-strong);
  --sahi-text-1: var(--text);
  --sahi-text-2: var(--text-muted);
  --sahi-text-3: var(--text-subtle);
  --sahi-accent: var(--accent);
  --sahi-accent-2: var(--accent-hover);
  --sahi-positive: var(--up);
  --sahi-positive-strong: var(--up);
  --sahi-negative: var(--down);
  --sahi-negative-strong: var(--down);
  --sahi-attentive: var(--attentive);
  --sahi-oi-call: var(--down);
  --sahi-oi-call-ink: var(--down-ink);
  --sahi-oi-put: var(--up);
  --sahi-oi-put-ink: var(--up-ink);
  --sahi-purple: var(--accent-text);
  --sahi-prototype-purple: var(--accent);
  --sahi-prototype-lavender: var(--series-3);
  --sahi-prototype-green: var(--up);
  --sahi-prototype-red: var(--down);
  --sahi-prototype-amber: var(--attentive);
  --sahi-prototype-cyan: var(--up);
  --sahi-prototype-white: var(--capital-white);
  --sahi-prototype-panel: var(--bg-subtle);
  --sahi-prototype-panel-2: var(--bg-sunken);
  --sahi-prototype-line: var(--line);
  --sahi-prototype-line-2: var(--line-strong);
  --sahi-prototype-ink: var(--text);
  --sahi-prototype-ink-2: var(--text-muted);
  --sahi-prototype-muted: var(--text-subtle);

  --positive: var(--up);
  --negative: var(--down);
  --green: var(--up);
  --red: var(--down);
  --yellow: var(--attentive);
  --blue: var(--accent-text);
  --cyan: var(--accent-text);
  --teal: var(--up);
  --purple: var(--accent-text);
  --pink: var(--accent-text);
  --orange: var(--attentive);
  --brand: var(--accent);
  --brand2: var(--accent-hover);
  --brand-purple: var(--accent-text);
  --brand-coral: var(--attentive);
  
  --up-ink: var(--up);
  --down-ink: var(--down);
  --upbg: color-mix(in srgb, var(--up) 12%, transparent);
  --dnbg: color-mix(in srgb, var(--down) 12%, transparent);
  --green-bg: color-mix(in srgb, var(--up) 12%, transparent);
  --red-bg: color-mix(in srgb, var(--down) 12%, transparent);
  --yellow-bg: color-mix(in srgb, var(--attentive) 14%, transparent);
  --blue-bg: var(--accent-wash);
  --purple-bg: var(--accent-wash);
  --surface-transparent-positive-primary: color-mix(
    in srgb,
    var(--up) 12%,
    transparent
  );
  --surface-transparent-negative-primary: color-mix(
    in srgb,
    var(--down) 12%,
    transparent
  );

  --toast-neutral-bg: var(--bg-subtle);
  --toast-neutral-border: var(--line);
  --toast-neutral-text: var(--text);
  --toast-positive-bg: color-mix(in srgb, var(--up) 12%, transparent);
  --toast-positive-border: color-mix(in srgb, var(--up) 34%, transparent);
  --toast-positive-text: var(--up);
  --toast-negative-bg: color-mix(in srgb, var(--down) 12%, transparent);
  --toast-negative-border: color-mix(in srgb, var(--down) 34%, transparent);
  --toast-negative-text: var(--down);
  --toast-attentive-bg: color-mix(in srgb, var(--attentive) 14%, transparent);
  --toast-attentive-border: color-mix(
    in srgb,
    var(--attentive) 34%,
    transparent
  );
  --toast-attentive-text: var(--attentive);

  --components-toasts-Neutral-bg: var(--toast-neutral-bg);
  --components-toasts-Neutral-border: var(--toast-neutral-border);
  --components-toasts-Neutral-surface: var(--toast-neutral-bg);
  --components-toasts-Neutral-surface-L1: var(--toast-neutral-bg);
  --components-toasts-Neutral-stroke: var(--toast-neutral-border);
  --components-toasts-Neutral-stroke-L1: var(--toast-neutral-border);
  --components-toasts-Neutral-text: var(--toast-neutral-text);
  --components-toasts-Neutral-icon: var(--toast-neutral-text);
  --components-toasts-positive-bg: var(--toast-positive-bg);
  --components-toasts-positive-border: var(--toast-positive-border);
  --components-toasts-positive-surface: var(--toast-positive-bg);
  --components-toasts-positive-surface-L1: var(--toast-positive-bg);
  --components-toasts-positive-stroke: var(--toast-positive-border);
  --components-toasts-positive-stroke-L1: var(--toast-positive-border);
  --components-toasts-positive-text: var(--toast-positive-text);
  --components-toasts-positive-icon: var(--toast-positive-text);
  --components-toasts-negative-bg: var(--toast-negative-bg);
  --components-toasts-negative-border: var(--toast-negative-border);
  --components-toasts-negative-surface: var(--toast-negative-bg);
  --components-toasts-negative-surface-L1: var(--toast-negative-bg);
  --components-toasts-negative-stroke: var(--toast-negative-border);
  --components-toasts-negative-stroke-L1: var(--toast-negative-border);
  --components-toasts-negative-text: var(--toast-negative-text);
  --components-toasts-negative-icon: var(--toast-negative-text);
  --components-toasts-Attentive-bg: var(--toast-attentive-bg);
  --components-toasts-Attentive-border: var(--toast-attentive-border);
  --components-toasts-Attentive-surface: var(--toast-attentive-bg);
  --components-toasts-Attentive-surface-L1: var(--toast-attentive-bg);
  --components-toasts-Attentive-stroke: var(--toast-attentive-border);
  --components-toasts-Attentive-stroke-L1: var(--toast-attentive-border);
  --components-toasts-Attentive-text: var(--toast-attentive-text);
  --components-toasts-Attentive-icon: var(--toast-attentive-text);

  --chip-surface-unselected: transparent;
  --chip-surface-selected: var(--accent-wash);
  --chip-stroke-unselected: var(--line);
  --chip-stroke-selected: var(--accent);
  --components-Chip-surface-unselected: var(--chip-surface-unselected);
  --components-Chip-surface-selected: var(--chip-surface-selected);
  --components-Chip-stroke-unselected: var(--chip-stroke-unselected);
  --components-Chip-stroke-selected: var(--chip-stroke-selected);
  --components-Navigation-surface-L1: var(--bg);
  --components-Navigation-surface-L2: var(--surface);
  --components-Navigation-stroke-top: var(--line);
  --components-Navigation-stroke-bottom: var(--line);

  
  --components-button-primary-surface-top: var(--accent);
  --components-button-primary-surface-bottom: var(--accent-hover);
  --btn-primary-top: var(--accent);
  --btn-primary-bottom: var(--accent-hover);
  --sahi-cta-gradient: linear-gradient(
    180deg,
    var(--accent),
    var(--accent-hover)
  );
  --brand-grad: linear-gradient(180deg, var(--accent), var(--accent-hover));
  --surface-solid-brand-primary-L1: var(--surface);
  --surface-solid-brand-primary-L2: var(--surface-raised);
  --surface-solid-brand-primary-L3: var(--surface-high);
  --surface-solid-brand-l2: var(--surface-raised);
  --surface-solid-brand-l3: var(--surface-high);

  
  --scrim-popover: color-mix(in srgb, var(--neutral-950) 32%, transparent);
  --scrim-modal: color-mix(in srgb, var(--neutral-950) 72%, transparent);

  --shadow-l1: var(--shadow-1);
  --shadow-l2: var(--shadow-2);
  --shadow-l3: var(--shadow-3);
  --shadow-l4: var(--shadow-4);
  --shadow-L1: var(--shadow-1);
  --shadow-L2: var(--shadow-2);
  --shadow-L3: var(--shadow-3);
  --shadow-L4: var(--shadow-4);
  --shadow-smooth-l1: var(--shadow-1);
  --shadow-smooth-l2: var(--shadow-2);
  --shadow-smooth-l3: var(--shadow-3);
  --shadow-smooth-l4: var(--shadow-4);
  --shadow-smooth-l5: var(--shadow-5);
  --shadow-smooth-L1: var(--shadow-1);
  --shadow-smooth-L2: var(--shadow-2);
  --shadow-smooth-L3: var(--shadow-3);
  --shadow-smooth-L4: var(--shadow-4);
  --shadow-smooth-L5: var(--shadow-5);
  --inner-shadow: inset 0 1px 0 var(--hover-wash);
  --focus-ring: 0 0 0 3px var(--accent-ring);

  --chart-bg: var(--surface);
  --chart-panel: var(--surface-raised);
  
  --chart-grid: color-mix(in srgb, var(--text) 10%, transparent);
  --chart-axis: var(--text-muted);
  --chart-text: var(--text-muted);
  --chart-line-primary: var(--series-1);
  --chart-line-secondary: var(--series-2);
  --chart-line-tertiary: var(--series-3);
  --chart-line-positive: var(--up);
  --chart-line-negative: var(--down);
  --chart-line-attentive: var(--attentive);
  --chart-bar-primary: var(--series-1);
  --chart-bar-secondary: var(--series-2);
  --chart-bar-positive: var(--vol-up);
  --chart-bar-negative: var(--vol-down);
  --chart-fill-primary: color-mix(in srgb, var(--series-2) 14%, transparent);
  --chart-fill-positive: color-mix(in srgb, var(--up) 14%, transparent);
  --chart-fill-negative: color-mix(in srgb, var(--down) 14%, transparent);
  --chart-tooltip-bg: var(--surface-high);
  --chart-tooltip-border: var(--line-strong);
  --oi-chart-surface: var(--surface);
  --oi-chart-border: var(--line);
  --oi-chart-muted: var(--text-muted);
}

/* the .oi-design alias layer (src/styles/oi-design-tokens.css) */

.oi-design {
  
  --up: var(--success-500);
  --down: var(--error-500);
  --flat: var(--neutral-500);

  
  --up-text: var(--success-800);
  --down-text: var(--error-800);
  --warn: var(--warm-400);
  --warn-text: var(--warm-600);

  
  --dash-put: var(--success-600);
  --dash-call: var(--error-600);
  
  --dash-put-text: var(--success-800);
  --dash-call-text: var(--error-700);

  
  --surface-card: var(--capital-white);
  --surface-raised: var(--capital-white);
  --surface-sunken: var(--capital-spring-wood);
  --surface-hover: var(--neutral-100);
  --surface-active: var(--neutral-200);

  
  --line: var(--neutral-200);
  --line-strong: var(--neutral-300);

  
  --up-wash: var(--success-100);
  --down-wash: var(--error-100);

  
  --rungs: repeating-linear-gradient(45deg, currentColor 0 2px, transparent 2px 5px);
  --rungs-across-tight: repeating-linear-gradient(to right, currentColor 0 1.5px, transparent 1.5px 4px);
  
  --rungs-fade: linear-gradient(to top, rgba(0, 0, 0, 1) 0 76%, rgba(0, 0, 0, .5) 100%);
  --wash-unwound: color-mix(in srgb, currentColor 34%, var(--surface-card));

  
  --radius-2xs: 2px;
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  
  --dur-fast: var(--dur-tap, 120ms);
  --ease-out: var(--ease-ios-out, cubic-bezier(.2, 0, .2, 1));
  --press-scale: .96;

  
  --text-dense: 13px;
  --text-caption: 12px;
  --text-meta: 11px;
  --text-micro: 11px;
  --text-tick: 11px; 
  --text-body-sm: 14px;
  --text-body: 16px;
  --text-body-lg: 18px;
  --text-display-lg: 60px;
  --tracking-caps: .06em;
  --type-caption: 500 12px/1.35 var(--font-sans);
  --type-micro: 500 10px/1.4 var(--font-sans);
  --font-num: var(--font-sans);

  
  --dur-base: 200ms;
  --dur-slide: 340ms;
  --ease-spring: var(--ease-ios-spring, cubic-bezier(.32, .72, 0, 1));
  --tap-min: 44px;

  
  --shadow-menu: 0 8px 24px rgba(15, 15, 15, .12), 0 2px 6px rgba(15, 15, 15, .06);

  
  --text-disabled: var(--neutral-400);
  --text-accent: var(--capital-purple);
  --text-on-accent: var(--capital-white);
  --text-on-up: var(--capital-black);
  --text-on-down: var(--capital-white);
  --line-accent: var(--capital-purple);
  --warn-wash: var(--warm-100);

  

  
  --fluid-text-micro:   clamp(10px, 9.12px + 0.245vw, 11px);   
  --fluid-text-meta:    clamp(11px, 10.12px + 0.245vw, 12px);  
  --fluid-text-caption: clamp(12px, 11.12px + 0.245vw, 13px);  
  --fluid-text-dense:   clamp(13px, 12.12px + 0.245vw, 14px);  
  --fluid-text-body:    clamp(14px, 12.24px + 0.490vw, 16px);  
  --fluid-text-title:   clamp(16px, 11.59px + 1.226vw, 21px);  
  --fluid-text-display: clamp(21px, 14.82px + 1.716vw, 28px);  

  
  --fluid-space-3xs: clamp(4px, 2.24px + 0.490vw, 6px);
  --fluid-space-2xs: clamp(6px, 4.24px + 0.490vw, 8px);
  --fluid-space-xs:  clamp(8px, 6.24px + 0.490vw, 10px);
  --fluid-space-sm:  clamp(10px, 8.24px + 0.490vw, 12px);
  --fluid-space-md:  clamp(12px, 8.47px + 0.980vw, 16px);
  --fluid-space-lg:  clamp(16px, 8.94px + 1.961vw, 24px);
  --fluid-space-xl:  clamp(24px, 16.94px + 1.961vw, 32px);
  
  --fluid-gutter:    clamp(10px, 6.47px + 0.980vw, 14px);

  
  --fluid-col-min-sm: min(100%, 168px);  
  --fluid-col-min:    min(100%, 240px);  
  --fluid-col-min-lg: min(100%, 320px);  

  
  --fluid-plot-h:    clamp(200px, 94px + 29.4vw, 320px);
  --fluid-plot-h-sm: clamp(140px, 66px + 20.6vw, 224px);

  
  --tap-icon: 36px;
}

:root[data-theme='dark'] .oi-design {
  --up-text: var(--success-400);
  --down-text: var(--error-400);
  --warn-text: var(--warm-300);
  --dash-put: var(--success-500);
  --dash-call: var(--error-400);
  --dash-put-text: var(--success-400);
  --dash-call-text: var(--error-400);
  --flat: var(--neutral-400);

  --surface-card: var(--neutral-900);
  --surface-raised: var(--neutral-800);
  
  --surface-sunken: color-mix(in srgb, var(--neutral-900) 55%, var(--neutral-950));
  --surface-hover: var(--neutral-850);
  --surface-active: var(--neutral-800);

  
  --line: var(--neutral-700);
  --line-strong: var(--neutral-600);

  
  --up-wash: color-mix(in srgb, var(--success-950) 80%, var(--neutral-950));
  --down-wash: color-mix(in srgb, var(--error-950) 78%, var(--neutral-950));

  --text-disabled: var(--neutral-600);
  --text-accent: var(--brand-300);
  --text-on-accent: var(--capital-black);
  --text-on-down: var(--capital-black);
  --line-accent: var(--brand-300);
  --warn-wash: color-mix(in srgb, var(--warm-950) 85%, var(--neutral-950));
  
  --shadow-menu: 0 8px 24px rgba(0, 0, 0, .56), 0 2px 6px rgba(0, 0, 0, .4);
}

@media (prefers-reduced-motion: reduce) {
  .oi-design {
    --dur-fast: 1ms;
    --dur-base: 1ms;
    --dur-slide: 1ms;
    --press-scale: 1;
  }
}

/* OICell (src/components/common/oi-cell.css) */

.oc-profile-cell .sahi-oicell{display:flex;flex-direction:column;gap:2px;font-family:var(--font-sans);min-width:0}
.oc-profile-cell .sahi-oicell__line{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__line{flex-direction:row-reverse}
.oc-profile-cell .sahi-oicell__now{font-family:var(--font-num, var(--font-sans));font-size:var(--text-dense, 13px);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}

.oc-profile-cell .sahi-oicell__rank{flex:none;margin:-2px auto;font-family:var(--font-num, var(--font-sans));font-size:var(--text-tick, 10px);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-muted);border:1px solid var(--line-strong);border-radius:var(--radius-xs, var(--radius-sm));padding:0 4px;line-height:1.2;white-space:nowrap}

.oc-profile-cell .sahi-oicell__line:not(.is-was) > .sahi-oicell__rank{margin:0 auto 0 0}
.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__line:not(.is-was) > .sahi-oicell__rank{margin:0 0 0 auto}
.oc-profile-cell .sahi-oicell__lead{font-size:var(--text-tick, 10px);font-weight:600;letter-spacing:var(--tracking-caps, .06em);text-transform:uppercase;color:var(--text-muted)}
.oc-profile-cell .sahi-oicell__was{font-family:var(--font-num, var(--font-sans));font-size:var(--text-meta, 11px);font-variant-numeric:tabular-nums;color:var(--text-muted);white-space:nowrap}
.oc-profile-cell .sahi-oicell__chg{display:flex;align-items:baseline;gap:6px;font-family:var(--font-num, var(--font-sans));font-size:var(--text-meta, 11px);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}
.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__chg{flex-direction:row-reverse}

.oc-profile-cell .sahi-oicell__chg b{font-weight:600}
.oc-profile-cell .sahi-oicell__code{font-family:var(--font-sans);font-size:var(--text-tick, 10px);font-weight:700;letter-spacing:var(--tracking-caps, .06em);color:var(--text-muted)}

.oc-profile-cell .sahi-oicell__new{font-family:var(--font-sans);font-size:var(--text-tick, 10px);font-weight:700;letter-spacing:var(--tracking-caps, .06em);text-transform:uppercase;color:var(--text-muted)}


.oc-profile-cell .sahi-oicell__rail{position:relative;height:10px;min-width:0;border-radius:var(--radius-2xs);background:var(--surface-active)}

.oc-profile-cell .sahi-oicell.is-top .sahi-oicell__rail{height:12px}
.oc-profile-cell .sahi-oicell__bar{position:absolute;top:0;bottom:0;left:0;display:flex;min-width:2px}
.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__bar{left:auto;right:0;flex-direction:row-reverse}
.oc-profile-cell .sahi-oicell__seg{flex:none;height:100%;box-sizing:border-box}
.oc-profile-cell .sahi-oicell__seg.is-base{border-radius:var(--radius-2xs) 0 0 var(--radius-2xs)}
.oc-profile-cell .sahi-oicell__seg.is-base:only-child{border-radius:var(--radius-2xs)}
.oc-profile-cell .sahi-oicell__seg.is-add,.oc-profile-cell .sahi-oicell__seg.is-drop{border-radius:0 var(--radius-2xs) var(--radius-2xs) 0}
.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__seg.is-base{border-radius:0 var(--radius-2xs) var(--radius-2xs) 0}
.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__seg.is-base:only-child{border-radius:var(--radius-2xs)}
.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__seg.is-add,.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__seg.is-drop{border-radius:var(--radius-2xs) 0 0 var(--radius-2xs)}

.oc-profile-cell .sahi-oicell__seg.is-drop{background:var(--wash-unwound);border-left:2px solid currentColor;box-sizing:border-box}
.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__seg.is-drop{border-left:0;border-right:2px solid currentColor}

.oc-profile-cell .sahi-oicell__bar.is-gone{box-sizing:border-box;min-width:8px;border-right:2px solid currentColor;border-radius:var(--radius-2xs);display:block;background:repeating-linear-gradient(to right,currentColor 0 5px,transparent 5px 9px) left 50%/100% 2px no-repeat}
.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__bar.is-gone{border-right:0;border-left:2px solid currentColor;background-position:right 50%}
.oc-profile-cell .sahi-oicell.is-up .sahi-oicell__bar.is-gone{color:color-mix(in srgb,var(--up) 62%,transparent)}
.oc-profile-cell .sahi-oicell.is-down .sahi-oicell__bar.is-gone{color:color-mix(in srgb,var(--down) 62%,transparent)}
.oc-profile-cell .sahi-oicell.is-flat .sahi-oicell__bar.is-gone{color:color-mix(in srgb,var(--flat) 62%,transparent)}

.oc-profile-cell .sahi-oicell__line.has-bar{gap:8px}
.oc-profile-cell .sahi-oicell__prevrail{position:relative;flex:1 1 auto;align-self:center;height:5px;min-width:0;border-radius:var(--radius-2xs);background:var(--surface-active)}
.oc-profile-cell .sahi-oicell__prevrail i{position:absolute;top:0;bottom:0;left:0;min-width:2px;border-radius:var(--radius-2xs);background:color-mix(in srgb,var(--text-muted) 42%,transparent)}
.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__prevrail i{left:auto;right:0}

.oc-profile-cell .sahi-oicell__dot{position:absolute;top:50%;width:7px;height:7px;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1.5px var(--surface-card)}
.oc-profile-cell .sahi-oicell.is-mirror .sahi-oicell__dot{transform:translate(50%,-50%)}

.oc-profile-cell .sahi-oicell.is-up .sahi-oicell__seg.is-base{background:var(--up)}
.oc-profile-cell .sahi-oicell.is-up .sahi-oicell__seg.is-add{color:var(--up);background:var(--rungs-across-tight),color-mix(in oklab,var(--up) 24%,transparent)}
.oc-profile-cell .sahi-oicell.is-up .sahi-oicell__seg.is-drop{color:var(--up);background:var(--wash-unwound)}
.oc-profile-cell .sahi-oicell.is-up .sahi-oicell__dot{background:var(--up)}
.oc-profile-cell .sahi-oicell.is-down .sahi-oicell__seg.is-base{background:var(--down)}
.oc-profile-cell .sahi-oicell.is-down .sahi-oicell__seg.is-add{color:var(--down);background:var(--rungs-across-tight),color-mix(in oklab,var(--down) 24%,transparent)}
.oc-profile-cell .sahi-oicell.is-down .sahi-oicell__seg.is-drop{color:var(--down);background:var(--wash-unwound)}
.oc-profile-cell .sahi-oicell.is-down .sahi-oicell__dot{background:var(--down)}
.oc-profile-cell .sahi-oicell.is-flat .sahi-oicell__seg.is-base{background:var(--flat)}
.oc-profile-cell .sahi-oicell.is-flat .sahi-oicell__seg.is-add{color:var(--flat);background:var(--rungs-across-tight),color-mix(in oklab,var(--flat) 24%,transparent)}
.oc-profile-cell .sahi-oicell.is-flat .sahi-oicell__seg.is-drop{color:var(--flat);background:var(--wash-unwound)}
.oc-profile-cell .sahi-oicell.is-flat .sahi-oicell__dot{background:var(--flat)}


.sahi-tone-up{color:var(--up-text, var(--up-ink))}
.sahi-tone-down{color:var(--down-text, var(--down-ink))}
.sahi-tone-flat{color:var(--text-muted)}


.oc-profile-cell .sahi-oicell{width:100%}

/* VolumeCell (src/components/common/volume-cell.css) */

.sahi-volcell{display:flex;flex-direction:column;gap:4px;font-family:var(--font-sans);min-width:0;width:100%}
.sahi-volcell__line{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}
.sahi-volcell.is-mirror .sahi-volcell__line{flex-direction:row-reverse}

.sahi-volcell__fig{font-family:var(--font-num, var(--font-sans));font-size:var(--text-dense, 13px);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}
.sahi-volcell__fig small{font-family:var(--font-sans);font-size:var(--text-tick, 10px);font-weight:500;color:var(--text-muted);margin-left:4px}
.sahi-volcell__meta{min-width:0;display:flex;align-items:baseline;justify-content:flex-end;gap:6px}
.sahi-volcell__change{min-width:0;display:flex;align-items:baseline;justify-content:flex-end;gap:4px;font-family:var(--font-num, var(--font-sans));font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text)}
.sahi-volcell__change b{font-size:var(--text-meta, 11px);font-weight:600;line-height:1}
.sahi-volcell__change small{font-size:var(--text-tick, 10px);font-weight:500;line-height:1;color:var(--text-muted)}

.sahi-volcell__meta{flex:1 1 0;flex-wrap:wrap;align-content:flex-start;height:12px;overflow:hidden}
.sahi-volcell__change{flex-wrap:wrap;align-content:flex-start;height:11px;overflow:hidden}

@media (max-width: 768px) {
  .sahi-volcell__change:has(small) b { display: none; }
}
.sahi-volcell__rank{flex:none;font-family:var(--font-num, var(--font-sans));font-size:var(--text-tick, 10px);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-muted);border:1px solid var(--line-strong);border-radius:var(--radius-xs, var(--radius-sm));padding:1px 4px;line-height:1.2}
.sahi-volcell__rail{position:relative;height:10px;border-radius:var(--radius-2xs);background:var(--surface-active)}

.sahi-volcell.is-top .sahi-volcell__rail{height:12px}

.sahi-volcell__bar{position:absolute;top:0;bottom:0;left:0;display:flex;min-width:2px}
.sahi-volcell.is-mirror .sahi-volcell__bar{left:auto;right:0;flex-direction:row-reverse}
.sahi-volcell__seg{flex:none;height:100%;box-sizing:border-box}
.sahi-volcell__seg.is-base{border-radius:var(--radius-2xs) 0 0 var(--radius-2xs);background:color-mix(in srgb,currentColor 85%,var(--surface-card))}
.sahi-volcell__seg.is-base:only-child{border-radius:var(--radius-2xs)}
.sahi-volcell__seg.is-add,.sahi-volcell__seg.is-drop{border-radius:0 var(--radius-2xs) var(--radius-2xs) 0}
.sahi-volcell.is-mirror .sahi-volcell__seg.is-base{border-radius:0 var(--radius-2xs) var(--radius-2xs) 0}
.sahi-volcell.is-mirror .sahi-volcell__seg.is-base:only-child{border-radius:var(--radius-2xs)}
.sahi-volcell.is-mirror .sahi-volcell__seg.is-add,.sahi-volcell.is-mirror .sahi-volcell__seg.is-drop{border-radius:var(--radius-2xs) 0 0 var(--radius-2xs)}

.sahi-volcell__seg.is-add{background:color-mix(in srgb,currentColor 34%,transparent)}

.sahi-volcell__seg.is-drop{background:var(--wash-unwound);border-left:2px solid color-mix(in srgb,currentColor 85%,var(--surface-card))}
.sahi-volcell.is-mirror .sahi-volcell__seg.is-drop{border-left:0;border-right:2px solid color-mix(in srgb,currentColor 85%,var(--surface-card))}
.sahi-volcell__dot{position:absolute;top:50%;width:7px;height:7px;border-radius:50%;transform:translate(-50%,-50%);background:color-mix(in srgb,currentColor 85%,var(--surface-card));box-shadow:0 0 0 1.5px var(--surface-card)}
.sahi-volcell.is-mirror .sahi-volcell__dot{transform:translate(50%,-50%)}

.sahi-volcell__previous{display:flex;align-items:baseline;justify-content:space-between;gap:6px;min-width:0;color:var(--text-muted)}

.sahi-volcell__previous .sahi-volcell__rank{margin:-2px auto}
.sahi-volcell__previous small{font-family:var(--font-sans);font-size:var(--text-tick, 10px);font-weight:600;line-height:1;letter-spacing:var(--tracking-caps, .06em);text-transform:uppercase}
.sahi-volcell__previous b{font-family:var(--font-num, var(--font-sans));font-size:var(--text-meta, 11px);font-weight:500;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}
.sahi-volcell.is-mirror .sahi-volcell__previous{flex-direction:row-reverse}

.sahi-volcell.is-flat{color:var(--text)}
.sahi-volcell.is-put{color:var(--dash-put, var(--up))}
.sahi-volcell.is-call{color:var(--dash-call, var(--down))}

/* BuildupCell (src/features/option-chain/buildup-cell.css) */

@property --bu-focus-boost {
  syntax: '<percentage>';
  inherits: false;
  initial-value: 0%;
}

.sahi-bucell {
  --bu-focus-boost: 0%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
  box-sizing: border-box;
  
  width: 100%;
  
  height: calc(var(--chain-row-h, 52px) - 1px);
  min-height: calc(var(--chain-row-h, 52px) - 1px);
  padding: 4px 6px;
  font-family: var(--font-sans);
  min-width: 0;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  
  transition:
    --bu-focus-boost var(--dur-tap, 120ms) var(--ease-ios-out, ease),
    box-shadow var(--dur-tap, 120ms) var(--ease-ios-out, ease);
}


.sahi-bucell::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: auto;
  bottom: 4px;
  height: 10px;
  left: 0;
  width: var(--bu-fill, 0%);
  transform: none;
  background: color-mix(in srgb, currentColor 10%, transparent);
  border-right: 1px solid color-mix(in srgb, currentColor 32%, transparent);
  transition: width var(--dur-quick, 180ms) var(--ease-ios-out, ease);
  display: none;
}


.sahi-bucell.is-top::before { height: 12px; }

.sahi-bucell.is-mirror::before {
  left: auto;
  right: 0;
  border-right: 0;
  border-left: 1px solid color-mix(in srgb, currentColor 32%, transparent);
}

.sahi-bucell.is-add::before {
  background: var(--rungs-across-tight), color-mix(in srgb, currentColor 12%, transparent);
}

.sahi-bucell.is-neutral::before {
  background: color-mix(in srgb, var(--flat) 10%, transparent);
  border-color: color-mix(in srgb, var(--flat) 24%, transparent);
}


.sahi-bucell {
  background-image: linear-gradient(
    to left,
    color-mix(in srgb, currentColor calc(var(--bu-wash, 0%) + var(--bu-focus-boost)), transparent),
    color-mix(in srgb, currentColor calc(var(--bu-inner-wash, 0%) + var(--bu-focus-boost)), transparent)
  );
}

.sahi-bucell.is-mirror {
  background-image: linear-gradient(
    to right,
    color-mix(in srgb, currentColor calc(var(--bu-wash, 0%) + var(--bu-focus-boost)), transparent),
    color-mix(in srgb, currentColor calc(var(--bu-inner-wash, 0%) + var(--bu-focus-boost)), transparent)
  );
}

.chain-table td.bu-cell-v2:focus-within .sahi-bucell {
  --bu-focus-boost: 7%;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 34%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .sahi-bucell { transition: none; }
}


.sahi-bucell.is-up { color: var(--up); }
.sahi-bucell.is-down { color: var(--down); }
.sahi-bucell.is-flat { color: var(--flat); }

.sahi-bucell__top {
  display: flex;
  position: relative;
  z-index: 1;
  flex-direction: row;
  align-items: baseline;
  justify-content: flex-start;
  gap: 0;
  min-width: 0;
}

.sahi-bucell.is-mirror .sahi-bucell__top { flex-direction: row-reverse; }


.sahi-bucell__name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--text-tick);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--text-primary);
}


.sahi-bucell.is-up .sahi-bucell__name { color: var(--up-text, var(--up-ink)); }
.sahi-bucell.is-down .sahi-bucell__name { color: var(--down-text, var(--down-ink)); }
.sahi-bucell.is-neutral .sahi-bucell__name { color: var(--text-muted); }

.sahi-bucell__figs {
  display: flex;
  position: relative;
  z-index: 1;
  align-items: baseline;
  justify-content: space-between;
  gap: 3px;
  line-height: 1.05;
  min-width: 0;
}

.sahi-bucell.is-mirror .sahi-bucell__figs { flex-direction: row-reverse; }

.sahi-bucell__oi {
  font-family: var(--font-num, var(--font-sans));
  font-size: var(--text-meta);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--text-primary);
  white-space: nowrap;
}

.sahi-bucell__oipct {
  font-family: var(--font-num, var(--font-sans));
  font-size: var(--text-meta);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: var(--text-muted);
  white-space: nowrap;
}


#root > .app .sahi-bucell .sahi-bucell__oipct {
  color: var(--text-muted) !important;
}


.sahi-bucell__rail {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 6px;
  flex: none;
  border-radius: 2px;
  background: color-mix(in srgb, currentColor 12%, var(--surface-active));
  overflow: hidden;
}


.sahi-bucell.is-top .sahi-bucell__rail { height: 7px; }

.sahi-bucell__bar {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  min-width: 4px;
  border-radius: var(--radius-2xs);
  overflow: hidden;
}

.sahi-bucell.is-mirror .sahi-bucell__bar { left: auto; right: 0; }

.sahi-bucell__bar::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 2px;
  background: currentColor;
}

.sahi-bucell.is-mirror .sahi-bucell__bar::after { right: auto; left: 0; }

.sahi-bucell.is-add .sahi-bucell__bar { background: var(--rungs-across-tight), color-mix(in oklab, currentColor 24%, transparent); }
.sahi-bucell.is-drop .sahi-bucell__bar { background: var(--wash-unwound); }
.sahi-bucell.is-same .sahi-bucell__bar { background: var(--flat); min-width: 2px; }


.sahi-bucell.is-neutral .sahi-bucell__bar { background: color-mix(in srgb, var(--flat) 22%, transparent); }
.sahi-bucell.is-neutral .sahi-bucell__bar::after { background: color-mix(in srgb, var(--flat) 55%, transparent); }


.chain-table td.bu-cell-v2 {
  padding: 0;
  width: calc(100px * var(--chain-scale, 1));
  min-width: calc(100px * var(--chain-scale, 1));
  max-width: calc(100px * var(--chain-scale, 1));
  height: var(--chain-row-h, 52px);
  vertical-align: middle;
}


#root > .app.app[data-active-tab='chain'] .chain-table .chain-row td.bu-cell-v2 {
  padding: 0 !important;
}


.chain-table td.metric-unavailable.bu-warming {
  font-family: var(--font-num, var(--font-sans));
  font-size: var(--sahi-type-min);
  font-weight: 600;
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  opacity: .66;
}

/* the chain's finishing rules for these three cells (src/styles/sahi-chain-grid-finish.css) */

:root[data-theme] body .ocs-app :is(
  .chain-table-container,
  .chain-table,
  .chain-table thead,
  .chain-table tbody,
  .chain-table tr,
  .chain-table th,
  .chain-table td,
  .strike-cell,
  .strike-cell-body,
  .strike-cell-inner
) {box-sizing: border-box !important;}
:root[data-theme] body .ocs-app
  .chain-table.chain-table :is(.chain-row, .chain-row-even, .atm-row, .ce-itm, .pe-itm) td:not(.strike-cell) {background: var(--oc-grid-row) !important;
  background-color: var(--oc-grid-row) !important;
  background-image: none !important;}
:root[data-theme] body .ocs-app
  .chain-table .chain-row td.strike-cell {padding-inline: 5px !important;
  border-inline: 1px solid var(--oc-grid-line-strong) !important;
  border-bottom: 1px solid var(--oc-grid-line) !important;
  background: var(--oc-grid-strike) !important;
  background-color: var(--oc-grid-strike) !important;
  background-image: none !important;
  color: var(--text) !important;
  font-size: var(--chain-font-lg, 14px) !important;
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums !important;
  font-feature-settings: "tnum" 1, "lnum" 1 !important;
  letter-spacing: -.006em !important;
  box-shadow: none !important;}
:root[data-theme] body .ocs-app
  .chain-table .chain-row td.strike-cell.atm-strike {border-color: var(--oc-grid-line-strong) !important;
  background: var(--oc-grid-strike) !important;
  background-color: var(--oc-grid-strike) !important;
  color: var(--text) !important;
  box-shadow: none !important;}
:root[data-theme] body .ocs-app
  .chain-table .strike-cell-body {width: 100% !important;
  min-height: 38px !important;
  color: inherit !important;}
:root[data-theme] body .ocs-app
  .chain-table .strike-val-lbl {color: inherit !important;
  font-size: var(--chain-font-lg, 14px) !important;
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums !important;
  font-feature-settings: "tnum" 1, "lnum" 1 !important;
  line-height: 1.15 !important;
  letter-spacing: -.006em !important;}
:root[data-theme] body .ocs-app
  .chain-table td.oc-profile-cell {padding: 4px 8px !important;}
:root[data-theme] body .ocs-app
  .chain-table :is(.sahi-oicell, .sahi-volcell) {width: 100%;
  min-width: 0;
  gap: 3px !important;
  color: var(--text) !important;}
:root[data-theme] body .ocs-app
  .chain-table :is(.sahi-oicell__now, .sahi-volcell__fig) {color: var(--text) !important;
  font-size: var(--chain-font-md, 13px) !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  letter-spacing: -.006em !important;}
:root[data-theme] body .ocs-app
  .chain-table :is(.sahi-oicell__chg, .sahi-volcell__change, .sahi-volcell__change b) {color: color-mix(in srgb, var(--text) 78%, var(--text-secondary)) !important;
  font-size: var(--chain-font-sm, 11px) !important;
  font-weight: 600 !important;
  line-height: 1 !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-volcell__change.sahi-tone-up,
:root[data-theme] body .ocs-app
  .chain-table .sahi-volcell__change.sahi-tone-up b {color: var(--up-text, var(--up-ink)) !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-volcell__change.sahi-tone-down,
:root[data-theme] body .ocs-app
  .chain-table .sahi-volcell__change.sahi-tone-down b {color: var(--down-text, var(--down-ink)) !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-oicell__chg :is(.sahi-oicell__amt.sahi-tone-up, b.sahi-tone-up) {color: var(--up-text, var(--up-ink)) !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-oicell__chg :is(.sahi-oicell__amt.sahi-tone-down, b.sahi-tone-down) {color: var(--down-text, var(--down-ink)) !important;}
:root[data-theme] body .ocs-app
  .chain-table :is(.sahi-oicell__rail, .sahi-volcell__rail) {height: 10px !important;
  border-radius: 2px !important;
  background: var(--oc-grid-track) !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: hidden;}
:root[data-theme] body .ocs-app
  .chain-table :is(.sahi-oicell, .sahi-volcell).is-top :is(.sahi-oicell__rail, .sahi-volcell__rail) {height: 12px !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-volcell__seg.is-base,
:root[data-theme] body .ocs-app
  .chain-table .sahi-volcell__dot {background: color-mix(in srgb, currentColor 70%, var(--oc-grid-strike)) !important;
  box-shadow: none !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-volcell__seg.is-add {background: var(--rungs-across-tight), color-mix(in oklab, currentColor 24%, transparent) !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-volcell__seg.is-drop {background: color-mix(in srgb, currentColor 16%, var(--oc-grid-track)) !important;
  border-left-color: color-mix(in srgb, currentColor 70%, var(--oc-grid-strike)) !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-volcell.is-mirror .sahi-volcell__seg.is-drop {border-right-color: color-mix(in srgb, currentColor 70%, var(--oc-grid-strike)) !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-oicell__prevrail {height: 4px !important;
  border-radius: 2px !important;
  background: var(--oc-grid-track-quiet) !important;
  box-shadow: none !important;}
:root[data-theme] body .ocs-app
  .chain-table :is(.sahi-oicell__was, .sahi-oicell__lead, .sahi-volcell__previous, .sahi-volcell__previous small, .sahi-volcell__previous b) {color: color-mix(in srgb, var(--text) 68%, var(--text-muted)) !important;
  font-size: var(--chain-font-xs, 10px) !important;
  font-weight: 600 !important;
  line-height: 1 !important;}
:root[data-theme] body .ocs-app
  .chain-table :is(.sahi-oicell__dot, .sahi-volcell__dot) {width: 6px !important;
  height: 6px !important;
  box-shadow: 0 0 0 1px var(--oc-grid-row) !important;}
:root[data-theme] body .ocs-app
  .chain-table :is(.sahi-oicell__code, .sahi-oicell__rank, .sahi-volcell__rank) {padding: 1px 3px !important;
  border: 1px solid var(--oc-grid-line-strong) !important;
  border-radius: 4px !important;
  background: transparent !important;
  color: var(--text-muted) !important;
  font-size: var(--chain-font-xs, 10px) !important;
  font-weight: 600 !important;}
:root[data-theme] body .ocs-app
  .chain-table :is(.sahi-volcell__rank, .sahi-oicell__rank) {padding-block: 0 !important;
  line-height: 1 !important;}
:root[data-theme] body .ocs-app
  .chain-table .chain-row td.bu-cell-v2 {height: var(--chain-row-h, 52px) !important;
  padding: 0 !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-bucell {width: 100% !important;
  
  height: calc(var(--chain-row-h, 52px) - 1px) !important;
  min-height: calc(var(--chain-row-h, 52px) - 1px) !important;
  padding: 5px 7px !important;
  gap: 2px !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-bucell__name {color: var(--text) !important;
  font-size: var(--chain-font-sm, 11px) !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-bucell__oi {color: var(--text) !important;
  font-size: var(--chain-font-cell, 12px) !important;
  font-weight: 700 !important;
  line-height: 1 !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-bucell__oipct {color: color-mix(in srgb, var(--text) 72%, var(--text-muted)) !important;
  font-size: var(--chain-font-xs, 10px) !important;
  font-weight: 600 !important;
  line-height: 1 !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-bucell__rail {width: 100% !important;
  height: 8px !important;
  border-radius: 2px !important;
  background: var(--oc-grid-track) !important;
  border: 0 !important;
  box-shadow: none !important;}
:root[data-theme] body .ocs-app
  .chain-table .chain-header-row th:not(.th-strike) {border-right: 0 !important;
  border-left: 0 !important;
  color: var(--text-muted) !important;
  font-weight: 700 !important;}
:root[data-theme] body .ocs-app
  .chain-table .chain-header-row th:not(.th-strike) .chain-sort-button {color: var(--text-muted) !important;
  font-weight: 700 !important;}
:root[data-theme] body .ocs-app
  .chain-table .chain-header-row th.th-strike {border-right: 1px solid var(--oc-grid-line-strong) !important;
  border-left: 1px solid var(--oc-grid-line-strong) !important;
  background: var(--table-head-surface) !important;
  background-color: var(--table-head-surface) !important;
  color: var(--text) !important;
  font-weight: 700 !important;}
:root[data-theme] body .ocs-app
  .chain-table .chain-header-row th.th-strike .chain-sort-button {color: var(--text) !important;
  font-weight: 700 !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-bucell.is-top .sahi-bucell__rail {height: 10px !important;}
:root[data-theme] body .ocs-app
  .chain-table .sahi-bucell__bar {min-width: 2px !important;
  border-radius: 2px !important;
  box-shadow: none !important;}
:root[data-theme] body .ocs-app
  .chain-table .chain-row.atm-row td.strike-cell,
:root[data-theme] body .ocs-app
  .chain-table .chain-row td.strike-cell.atm-strike {border-top: 0 !important;
  border-bottom: 1px solid var(--oc-grid-line) !important;
  border-inline: 1px solid var(--oc-grid-line-strong) !important;
  background: var(--oc-grid-strike) !important;
  background-color: var(--oc-grid-strike) !important;
  color: var(--text) !important;
  box-shadow: none !important;}
@media (max-width: 768px) {
:root[data-theme] body .ocs-app
    .chain-table .chain-row td.strike-cell,
  :root[data-theme] body .ocs-app
    .chain-table .strike-val-lbl {font-size: var(--chain-font-md, 13px) !important;}
:root[data-theme] body .ocs-app
    .chain-table .sahi-bucell {height: calc(var(--chain-row-h, 52px) - 1px) !important;
    min-height: calc(var(--chain-row-h, 52px) - 1px) !important;}
}
@media (prefers-reduced-motion: reduce) {
:root[data-theme] body .ocs-app
    .chain-table :is(.sahi-bucell, .sahi-oicell__bar, .sahi-volcell__bar, .sahi-bucell__bar) {transition: none !important;}
}
:root[data-theme] body .ocs-app
  .chain-table .chain-row td.strike-cell.is-expected-move-range {position: sticky !important;}
:root[data-theme] body .ocs-app
  .chain-table-container:is([data-table-view='calls'], [data-table-view='puts']) .chain-table td .sahi-oicell {max-width: calc(280px * var(--chain-scale, 1));
  margin-inline: auto;}
:root[data-theme] body .ocs-app
  .chain-table-container:is([data-table-view='calls'], [data-table-view='puts']) .chain-table td .sahi-volcell {max-width: calc(210px * var(--chain-scale, 1));
  margin-inline: auto;}
:root[data-theme] body .ocs-app
  .chain-table-container[data-table-view='calls'][data-horizontal-overflow='on']
  .chain-table :is(td.strike-cell, th.th-strike, th.chain-side-expiry-th) {position: sticky;
  right: 0;
  z-index: 5;}
:root[data-theme] body .ocs-app
  .chain-table-container:is([data-table-view='puts'], [data-table-view='combined'])[data-horizontal-overflow='on']
  .chain-table :is(td.strike-cell, th.th-strike, th.chain-side-expiry-th) {position: sticky;
  left: 0;
  z-index: 5;}

/* the strike spine and its pills (src/styles/sahi-market-levels.css, sahi-data-surface-finish.css) */

:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-cell-inner:has(> .strike-market-row) {display: grid !important;
  grid-template-rows: 14px 17px 14px !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-content: center !important;
  justify-items: center !important;
  gap: 0 !important;}
:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-cell-inner:has(> .strike-market-row) > .strike-val-lbl {grid-row: 2 !important;
  align-self: center !important;
  height: 17px !important;
  min-width: 0 !important;
  line-height: 17px !important;}
:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-market-row {box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 14px !important;
  min-height: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;}
:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-market-row-top {grid-row: 1 !important;}
:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-market-row-bottom {grid-row: 3 !important;}
:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-tag {--strike-tag-wash: 16%;
  box-sizing: border-box !important;
  display: inline-block !important;
  flex: 0 0 auto !important;
  height: 14px !important;
  margin: 0 !important;
  padding: 0 6px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: color-mix(in srgb, var(--strike-tag-fill) var(--strike-tag-wash), transparent) !important;
  box-shadow: none !important;
  color: var(--strike-tag-ink) !important;
  font-size: var(--sahi-type-min) !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 14px !important;
  text-align: center !important;
  text-transform: none !important;
  white-space: nowrap !important;}
:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-tag.is-joined {padding: 0 4.5px !important;
  letter-spacing: -.01em !important;}
.ocs-app .chain-table .strike-tag.is-support {--strike-tag-fill: var(--up);
  --strike-tag-ink: var(--up-ink);}
.ocs-app .chain-table .strike-tag.is-resistance {--strike-tag-fill: var(--down);
  --strike-tag-ink: var(--down-ink);}
.ocs-app .chain-table .strike-tag.is-mark {--strike-tag-fill: var(--warm-400);
  --strike-tag-ink: var(--warm-300);}
:root[data-theme='light'] .ocs-app .chain-table .strike-tag {--strike-tag-wash: 12%;}
:root[data-theme='light'] .ocs-app .chain-table .strike-tag.is-mark {--strike-tag-wash: 20%;
  --strike-tag-ink: var(--warm-800);}
.ocs-app .chain-table .strike-tag.is-mark:has(.badge-atm) {--strike-tag-fill: var(--atm-hue);
  --strike-tag-ink: var(--text);}
:root[data-theme='light'] .ocs-app .chain-table .strike-tag.is-mark:has(.badge-atm) {--strike-tag-wash: 14%;
  --strike-tag-ink: var(--text);}
:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-tag .strike-tag-part {all: unset !important;}
:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-tag :is(.strike-market-kind, .badge-atm) {font-weight: 700 !important;}
:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-tag :is(.strike-market-kind, .strike-market-role) {color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  text-transform: none !important;}
:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-tag .strike-market-kind {font-weight: 700 !important;}
:root[data-theme] body .ocs-app .chain-table td.strike-cell .strike-tag-sep {margin: 0 1.5px !important;
  opacity: .7 !important;}
:root[data-theme] body .ocs-app .chain-table.chain-table .chain-row td.strike-cell.atm-strike {box-shadow: none !important;}
:root[data-theme] body .ocs-app .chain-table-container[data-chain-layout='split'] .chain-split-pane.is-spine .chain-table.chain-table .chain-row td.strike-cell.atm-strike {border-inline-color: var(--line) !important;}
.ocs-app .chain-table .market-resistance-level td.strike-cell:not(.atm-strike),
.ocs-app .chain-table .market-support-level td.strike-cell:not(.atm-strike) {box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .022),
    inset 0 0 0 1px rgba(255, 255, 255, .035) !important;}
.ocs-app .chain-table .market-resistance-level td.strike-cell:not(.atm-strike) {border-inline-color: rgba(227, 86, 80, .22) !important;}
.ocs-app .chain-table .market-support-level td.strike-cell:not(.atm-strike) {border-inline-color: rgba(64, 232, 151, .22) !important;}
.ocs-app .chain-table .strike-cell.shrunk .strike-market-row {display: none !important;}
#root .chain-table td.strike-cell .strike-tag[data-under-head] {visibility: hidden;}

:root[data-theme] body .ocs-app .chain-table.chain-table :is(th.chain-leg-header, th.th-strike) {background-image: linear-gradient(180deg, color-mix(in srgb, var(--text) 4%, transparent), transparent 85%) !important;
  box-shadow: var(--edge-highlight) !important;}
:root[data-theme] body .ocs-app .chain-table.chain-table th.th-strike .strike-header-button,
:root[data-theme] body .ocs-app .chain-table.chain-table th.th-strike {font-weight: 600 !important;}
:root[data-theme] body .ocs-app .chain-table.chain-table tr.chain-row:not(.atm-row) > td:not(.strike-cell) {border-bottom-color: transparent !important;
  background-image: linear-gradient(var(--dsf-sep), var(--dsf-sep)) !important;
  background-repeat: no-repeat !important;
  background-size: 100% 1px !important;
  background-position: 0 100% !important;
  background-origin: border-box !important;}
:root[data-theme] body .ocs-app .chain-table.chain-table td.strike-cell .strike-tag {--dsf-tag-edge: color-mix(in srgb, var(--strike-tag-fill, var(--text)) 42%, var(--line-strong));
  border: 1px solid var(--dsf-tag-edge) !important;
  height: 16px !important;
  padding: 0 5px !important;
  line-height: 14px !important;
  box-shadow: var(--edge-highlight) !important;
  transition:
    border-color var(--dsf-motion),
    box-shadow var(--dsf-motion) !important;}
:root[data-theme] body .ocs-app .chain-table.chain-table td.strike-cell .strike-tag.is-joined {padding: 0 3.5px !important;}
:root[data-theme] body .ocs-app .chain-table.chain-table .chain-row td.strike-cell.atm-strike {box-shadow: none !important;}

/* ── 00-base.css ── */
/* Option Chain guide: base. The real-capture figure furniture is shared (scripts/guides/shared-css/real-figures.css). */

/* Type floor: the shared figure furniture is 13px at the smallest */
section[id^="oc-"] .iv-block__eyebrow, section[id^="oc-"] .iv-tag { font-size: 0.8125rem; }

/* The guide's accent is the brand plum, not mint: links, pin numbers and small labels read in it; fact colours stay neutral and bullish/bearish stay green/red. */
.content-main { --sahi-cyan: #FC6AD0; }
:root[data-theme="light"] .content-main { --sahi-cyan: #A50F66; }

/* ── 05-p1-page.css ── */
/* Option Chain guide, page level (P1): Start here, the Cell Index gallery, the Part openers and the rhythm between sections.
   Classes are prefixed ocp1-. Rules are scoped to #oc-start, #oc-index, .ocv-part, or (for rhythm only) to this guide's own sections
   under .content-main, so nothing here reaches a card owned by another part.

   THEMES. Every colour is a token. The dark values below are what the page always had; the light block restates the few that
   cannot be derived from the page tokens (scripts/guides/THEMES.md). The brand pink needs no light value: the badges and
   chips that wear it as a translucent fill in dark become the solid brand pink in light, and the mint highlight of the
   dark theme is the brand pink there (--sahi-cyan), or the direction green where it means "offered in Advanced". */

:root {
    --ocp1-hl-rgb: 169, 231, 240;                     /* the highlight: mint on dark, brand pink on light (matches --sahi-cyan) */
    --ocp1-pink-fill: rgba(165, 15, 102, 0.5);        /* a chip carrying a letter */
    --ocp1-pink-fill-2: rgba(165, 15, 102, 0.45);
    --ocp1-pink-line: rgba(254, 163, 229, 0.5);       /* its edge on hover */
    --ocp1-pink-edge: rgba(254, 163, 229, 0.55);      /* its edge when it is the current one */
    --ocp1-pink-wash: rgba(165, 15, 102, 0.2);        /* hover wash */
    --ocp1-pink-wash-2: rgba(165, 15, 102, 0.16);
    --ocp1-pink-soft: rgba(165, 15, 102, 0.2);        /* the Simple badge */
    --ocp1-grad-badge: linear-gradient(150deg, rgba(165, 15, 102, 0.75), rgba(165, 15, 102, 0.18));
    --ocp1-grad-group: linear-gradient(150deg, rgba(165, 15, 102, 0.7), rgba(165, 15, 102, 0.2));
    --ocp1-badge-line: rgba(254, 163, 229, 0.38);
    --ocp1-group-line: rgba(254, 163, 229, 0.35);
    --ocp1-badge-shadow: 0 10px 30px rgba(165, 15, 102, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.14);
    --ocp1-part-bg:
        radial-gradient(120% 140% at 0% 0%, rgba(165, 15, 102, 0.20), transparent 55%),
        radial-gradient(90% 120% at 100% 100%, rgba(169, 231, 240, 0.06), transparent 60%),
        rgba(255, 255, 255, 0.02);
    --ocp1-tile: rgba(255, 255, 255, 0.025);          /* a card on the page */
    --ocp1-pin-halo: rgba(169, 231, 240, 0.16);
    --ocp1-call-ink: #EE807B;                         /* "Call window" and the top of the Call bars */
    --ocp1-call-bar: linear-gradient(180deg, #EE807B, rgba(227, 86, 80, 0.45));
    --ocp1-put-bar: linear-gradient(180deg, var(--toast-positive-text), rgba(32,150,166, 0.45));
    --ocp1-solid: transparent;                        /* under a gradient badge: nothing on dark, the brand pink on light */
    --ocp1-ana-ink: var(--text-3);             /* the analogy's small heading */
    --ocp1-ana-bg: transparent;
    --ocp1-ana-line: #272727;
}
:root[data-theme="light"] {
    --ocp1-hl-rgb: 165, 15, 102;
    --ocp1-pink-fill: #A50F66;
    --ocp1-pink-fill-2: #A50F66;
    --ocp1-pink-line: rgba(165, 15, 102, 0.5);
    --ocp1-pink-edge: #A50F66;
    --ocp1-pink-wash: rgba(165, 15, 102, 0.1);
    --ocp1-pink-wash-2: rgba(165, 15, 102, 0.08);
    --ocp1-pink-soft: rgba(165, 15, 102, 0.1);
    --ocp1-grad-badge: linear-gradient(150deg, #A50F66, #8A1157);
    --ocp1-grad-group: linear-gradient(150deg, #A50F66, #8A1157);
    --ocp1-badge-line: rgba(165, 15, 102, 0.55);
    --ocp1-group-line: rgba(165, 15, 102, 0.55);
    --ocp1-badge-shadow: 0 10px 28px rgba(165, 15, 102, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.2);
    --ocp1-part-bg:
        radial-gradient(120% 140% at 0% 0%, rgba(165, 15, 102, 0.1), transparent 55%),
        #FFFFFF;
    --ocp1-tile: #FFFFFF;
    --ocp1-pin-halo: rgba(165, 15, 102, 0.16);
    --ocp1-call-ink: var(--toast-negative-text);
    --ocp1-call-bar: linear-gradient(180deg, var(--sahi-negative), rgba(196, 52, 46, 0.4));
    --ocp1-put-bar: linear-gradient(180deg, var(--sahi-positive), rgba(20,105,122, 0.4));
    --ocp1-solid: #A50F66;
    --ocp1-ana-ink: var(--text-3);
    --ocp1-ana-bg: transparent;
    --ocp1-ana-line: #E6E6E6;
}

/* ═══════════════════════════════════════════════════════════════════════════
   1. Rhythm between sections
   guide.css stacks a 60px divider margin, a 90px h2 margin and a 40px h2 padding: about 250px of air between two sections.
   ═══════════════════════════════════════════════════════════════════════════ */
.content-main > hr.divider { margin: 40px 0; opacity: 0.8; }
/* a part opener has its own top edge, so the divider in front of it goes */
.content-main > hr.divider:has(+ section > .ocv-part) { display: none; }
.content-main > section[id^="oc-"] > h2 { margin: 0 0 28px; padding: 0 0 18px; }
.content-main > section[id^="oc-"] > h3 { margin: 48px 0 14px; font-size: 1.28rem; line-height: 1.3; font-weight: 700; letter-spacing: -0.01em; color: var(--text-1); }
.content-main > section[id^="oc-"] > h3:first-child { margin-top: 0; }
/* callouts: one rhythm for every green box on the page */
.content-main .callout-beginner { margin: 36px 0; padding: 26px 30px; border-radius: 16px; }
.content-main .callout-beginner > :last-child { margin-bottom: 0; }
.content-main .callout-beginner p { font-size: 1.05rem; line-height: 1.75; }
.content-main .callout-beginner :is(h3, h4) { margin-bottom: 12px; font-size: 0.9rem; }
/* the quiz */
.content-main > .quiz-section { margin-top: 72px; padding: 40px; }
.content-main > .quiz-section .quiz-q:last-of-type { margin-bottom: 0; }
@media (max-width: 768px) {
    .content-main > hr.divider { margin: 28px 0; }
    .content-main > section[id^="oc-"] > h2 { margin: 0 0 20px; padding: 0 0 14px; }
    .content-main > section[id^="oc-"] > h3 { margin: 36px 0 12px; font-size: 1.18rem; }
    .content-main .callout-beginner { margin: 28px 0; padding: 20px; }
    .content-main .callout-beginner p { font-size: 1rem; }
    .content-main > .quiz-section { margin-top: 48px; padding: 22px 18px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   2. Part openers (Parts A to E)
   ═══════════════════════════════════════════════════════════════════════════ */
.ocv-part.ocp1-part {
    position: relative; display: grid; overflow: hidden;
    grid-template-columns: 92px minmax(0, 1fr) auto;
    grid-template-areas: "badge body thumbs" "rail rail rail";
    gap: 22px 26px; align-items: center;
    margin: 64px 0 36px; padding: 28px 30px 20px;
    border: 1px solid var(--border-soft); border-radius: 22px;
    background: var(--ocp1-part-bg);
    font-size: 1rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--text-2);
}
.ocp1-part__badge {
    grid-area: badge; display: grid; place-items: center; width: 92px; height: 92px; border-radius: 26px;
    font-family: var(--font-display); font-size: 3.6rem; font-weight: 700; line-height: 1; color: var(--on-accent);
    background: var(--ocp1-grad-badge); background-color: var(--ocp1-solid);
    border: 1px solid var(--ocp1-badge-line);
    box-shadow: var(--ocp1-badge-shadow);
}
.ocp1-part__body { grid-area: body; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ocv-part.ocp1-part .ocv-part__k { align-self: flex-start; padding: 0; border: 0; background: none; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sahi-cyan); }
.ocp1-part__title { font-family: var(--font-display); font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 700; line-height: 1.15; letter-spacing: -0.02em; color: var(--text-1); text-wrap: balance; }
.ocp1-part__promise { max-width: 54ch; font-size: 1rem; line-height: 1.55; color: var(--text-2); }
.ocp1-part__meta { display: flex; flex-wrap: wrap; gap: 4px 0; margin-top: 4px; font-size: 0.8125rem; font-weight: 600; color: var(--text-3); }
.ocp1-part__meta > span + span::before { content: ""; display: inline-block; width: 3px; height: 3px; margin: 0 10px 2px; border-radius: 50%; background: var(--text-3); }
.ocp1-part__thumbs { grid-area: thumbs; display: flex; gap: 8px; align-items: center; }
.ocp1-part__thumb { display: block; flex: none; width: 128px; max-width: 128px; height: 86px; object-fit: cover; object-position: left top; border-radius: 8px; border: 1px solid var(--border-soft); background: var(--real-frame); }
.ocp1-rail { grid-area: rail; display: flex; align-items: center; gap: 8px; padding-top: 16px; border-top: 1px dashed rgba(var(--ink-rgb), 0.14); }
.ocp1-rail::before { content: "Parts"; margin-right: 6px; font-size: 0.8125rem; font-weight: 600; color: var(--text-3); }
.ocp1-rail__i {
    display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px;
    font-size: 0.9375rem; font-weight: 800; line-height: 1; text-decoration: none;
    color: var(--text-2); border: 1px solid var(--border-soft); background: rgba(var(--ink-rgb), 0.03);
}
.content-main .ocp1-rail a.ocp1-rail__i { text-decoration: none; color: var(--text-2); font-weight: 800; }
.content-main .ocp1-rail a.ocp1-rail__i:hover { color: var(--text-1); border-color: var(--ocp1-pink-line); background: var(--ocp1-pink-wash); }
.ocp1-rail__i.is-here { color: var(--on-accent); border-color: var(--ocp1-pink-edge); background: var(--ocp1-pink-fill); }
@media (max-width: 900px) {
    .ocv-part.ocp1-part { grid-template-columns: 80px minmax(0, 1fr); grid-template-areas: "badge body" "thumbs thumbs" "rail rail"; padding: 24px 22px 18px; gap: 18px 20px; }
    .ocp1-part__badge { width: 80px; height: 80px; border-radius: 22px; font-size: 3.1rem; }
    .ocp1-part__thumbs { justify-content: flex-start; }
}
@media (max-width: 560px) {
    .ocv-part.ocp1-part { grid-template-columns: 56px minmax(0, 1fr); margin: 44px 0 26px; padding: 18px 16px 14px; gap: 14px 14px; border-radius: 18px; }
    .ocp1-part__badge { width: 56px; height: 56px; border-radius: 16px; font-size: 2.2rem; }
    .ocp1-part__title { font-size: 1.35rem; }
    .ocp1-part__promise { font-size: 0.9375rem; }
    .ocp1-part__thumb { width: 28vw; max-width: 28vw; height: 64px; }
    .ocp1-rail { gap: 6px; padding-top: 12px; }
    .ocp1-rail__i { width: 40px; height: 40px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   3. Start here
   ═══════════════════════════════════════════════════════════════════════════ */
#oc-start .ocp1-hero { margin: 32px 0 14px; }
#oc-start .ocp1-hero .ocv-real__bar { padding: 12px 18px; }
#oc-start .ocp1-hero .ocv-real__tag { font-size: 0.8125rem; }
#oc-start .ocp1-hero__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
#oc-start .ocp1-hero__scroll:focus-visible { outline: 2px solid var(--sahi-cyan); outline-offset: -3px; }
#oc-start .ocp1-hero__stage { position: relative; line-height: 0; }
#oc-start .ocp1-hero__stage > img { display: block; width: 100%; height: auto; }
#oc-start .ocp1-hero__hint { display: none; padding: 8px 16px 0; font-size: 0.8125rem; font-weight: 600; color: var(--sahi-cyan); text-align: center; }
#oc-start .ocp1-hero .ocv-real__cap { padding-top: 12px; }
#oc-start a.ocp1-pin {
    position: absolute; left: var(--x); top: var(--y); z-index: 1; display: grid; place-items: center;
    width: 30px; height: 30px; margin: -15px 0 0 -15px; border-radius: 50%;
    font-size: 0.875rem; font-weight: 800; line-height: 1; text-decoration: none;
    color: var(--sahi-cyan); background: var(--sahi-bg-1); border: 2px solid var(--sahi-cyan);
    box-shadow: 0 0 0 4px var(--ocp1-pin-halo), 0 4px 14px rgba(var(--shade-ch), calc(0.65 * var(--k-shadow)));
    transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
#oc-start a.ocp1-pin:hover, #oc-start a.ocp1-pin:focus-visible { transform: scale(1.14); color: var(--sahi-bg-1); background: var(--sahi-cyan); outline: 2px solid var(--text-1); outline-offset: 3px; }
@media (prefers-reduced-motion: no-preference) {
    #oc-start a.ocp1-pin::after { content: ""; position: absolute; inset: -2px; border-radius: 50%; border: 2px solid var(--sahi-cyan); opacity: 0; animation: ocp1-ping 3.2s ease-out infinite; pointer-events: none; }
    #oc-start a.ocp1-pin:nth-of-type(2)::after { animation-delay: 0.5s; }
    #oc-start a.ocp1-pin:nth-of-type(3)::after { animation-delay: 1s; }
    #oc-start a.ocp1-pin:nth-of-type(4)::after { animation-delay: 1.5s; }
    #oc-start a.ocp1-pin:nth-of-type(5)::after { animation-delay: 2s; }
}
@keyframes ocp1-ping { 0% { opacity: 0.7; transform: scale(1); } 60%, 100% { opacity: 0; transform: scale(1.9); } }
@media (max-width: 700px) {
    #oc-start .ocp1-hero__stage { min-width: 680px; }
    #oc-start .ocp1-hero__hint { display: block; }
}

/* the five parts, as the pins' key */
#oc-start .ocp1-map { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 8px; }
#oc-start .ocp1-map a {
    display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 8px 16px; align-items: center;
    padding: 12px 16px; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--ocp1-tile);
    color: var(--text-2); font-weight: 400; text-decoration: none; transition: border-color 0.2s ease, background-color 0.2s ease;
}
#oc-start .ocp1-map a:hover { border-color: rgba(var(--ocp1-hl-rgb), 0.45); background: rgba(var(--ocp1-hl-rgb), 0.04); }
#oc-start .ocp1-map__k {
    display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
    font-size: 0.9375rem; font-weight: 800; color: var(--sahi-cyan); background: var(--sahi-bg-1); border: 2px solid var(--sahi-cyan);
}
#oc-start .ocp1-map__t { display: flex; flex-direction: column; gap: 1px; min-width: 0; font-size: 0.9375rem; line-height: 1.45; color: var(--text-3); }
#oc-start .ocp1-map__t strong { font-size: 1.0625rem; color: var(--text-1); }
#oc-start .ocp1-map__m { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; font-size: 0.8125rem; line-height: 1.4; text-align: right; }
#oc-start .ocp1-map__on { color: var(--sahi-cyan); font-weight: 600; }
#oc-start .ocp1-map__n { color: var(--text-3); font-weight: 600; }
@media (max-width: 640px) {
    #oc-start .ocp1-map a { grid-template-columns: 34px minmax(0, 1fr); padding: 12px 14px; }
    #oc-start .ocp1-map__m { grid-column: 2; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 2px 14px; text-align: left; }
}

/* the analogy */
#oc-start .ocp1-analogy {
    display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 28px 36px; align-items: center;
    margin: 40px 0; padding: 30px 32px; border-radius: 18px; transform: none;
    background: var(--ocp1-ana-bg);
    border: 1px solid var(--ocp1-ana-line);
    -webkit-backdrop-filter: none; backdrop-filter: none;
}
#oc-start .ocp1-analogy:hover { transform: none; box-shadow: 0 10px 40px rgba(var(--shade-ch), calc(0.3 * var(--k-shadow))); }
#oc-start .ocp1-analogy__text > p:last-child { margin-bottom: 0; }
#oc-start .ocp1-analogy :is(h3, h4) { margin-bottom: 14px; font-size: 0.8125rem; letter-spacing: 0.14em; color: var(--ocp1-ana-ink); }
.ocp1-cover { margin: 0; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ocp1-cover__plot { display: grid; grid-template-columns: minmax(0, 1fr) 88px minmax(0, 1fr); align-items: end; height: 150px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.28); }
.ocp1-cover__bars { display: flex; align-items: flex-end; gap: 5px; height: 100%; }
.ocp1-cover__bar { flex: 1 1 0; min-width: 0; height: calc(var(--h) * 1%); border-radius: 4px 4px 0 0; }
.ocp1-cover__bar--put { background: var(--ocp1-put-bar); }
.ocp1-cover__bar--call { background: var(--ocp1-call-bar); }
.ocp1-cover__spot { align-self: stretch; position: relative; display: flex; justify-content: center; }
.ocp1-cover__spot::before { content: ""; position: absolute; top: 4px; bottom: 0; left: 50%; border-left: 2px dashed rgba(var(--ink-rgb), 0.55); }
.ocp1-cover__spot b { position: relative; align-self: flex-start; padding: 0 6px; font-size: 0.8125rem; font-weight: 700; line-height: 1.3; text-align: center; color: var(--text-1); background: var(--sahi-bg-1); border-radius: 4px; }
.ocp1-cover__axis { display: grid; grid-template-columns: minmax(0, 1fr) 88px minmax(0, 1fr); font-size: 0.9375rem; font-weight: 700; line-height: 1.3; }
.ocp1-cover__axis span { display: flex; flex-direction: column; gap: 1px; }
.ocp1-cover__axis small { font-size: 0.8125rem; font-weight: 400; color: var(--text-3); }
.ocp1-cover__axis .is-put { grid-column: 1; color: var(--toast-positive-text); }
.ocp1-cover__axis .is-call { grid-column: 3; align-items: flex-end; text-align: right; color: var(--ocp1-call-ink); }
.ocp1-cover figcaption { font-size: 0.8125rem; line-height: 1.45; color: var(--text-3); }
@media (max-width: 800px) {
    #oc-start .ocp1-analogy { grid-template-columns: minmax(0, 1fr); padding: 22px 20px; gap: 22px; }
    .ocp1-cover { width: 100%; max-width: 520px; }
}
@media (max-width: 420px) {
    .ocp1-cover__plot, .ocp1-cover__axis { grid-template-columns: minmax(0, 1fr) 76px minmax(0, 1fr); }
    .ocp1-cover__bars { gap: 3px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   4. Cell Index: the gallery
   ═══════════════════════════════════════════════════════════════════════════ */
#oc-index .ocp1-bar { display: flex; flex-direction: column; gap: 14px; margin: 26px 0 0; }
#oc-index .ocp1-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; min-width: 0; }
#oc-index input.ocp1-f { position: absolute; width: 1px; height: 1px; margin: -1px; opacity: 0; overflow: hidden; clip: rect(0, 0, 0, 0); }
#oc-index .ocp1-filter label {
    display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 18px; border-radius: 999px;
    font-size: 0.9375rem; font-weight: 600; color: var(--text-2); cursor: pointer; user-select: none;
    border: 1px solid var(--border-soft); background: rgba(var(--ink-rgb), 0.03);
    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
#oc-index .ocp1-filter label i { font-style: normal; font-size: 0.8125rem; font-weight: 700; padding: 1px 8px; border-radius: 999px; color: var(--text-2); background: rgba(var(--ink-rgb), 0.07); }
#oc-index .ocp1-filter label:hover { border-color: rgba(var(--ocp1-hl-rgb), 0.4); }
#oc-index input.ocp1-f:checked + label { color: var(--text-1); border-color: rgba(var(--ocp1-hl-rgb), 0.55); background: rgba(var(--ocp1-hl-rgb), 0.1); }
#oc-index input.ocp1-f:checked + label i { color: var(--sahi-bg-1); background: var(--sahi-cyan); }
#oc-index input.ocp1-f:focus-visible + label { outline: 2px solid var(--sahi-cyan); outline-offset: 3px; }
#oc-index .ocp1-jump { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
@media (max-width: 768px) { #oc-index .ocp1-jump { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; margin-right: -16px; padding-right: 16px; } }
#oc-index .ocp1-jump::-webkit-scrollbar { display: none; }
#oc-index .ocp1-jump > span { flex: none; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); margin-right: 4px; }
#oc-index .ocp1-jump a {
    flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 12px 0 6px; border-radius: 10px;
    font-size: 0.875rem; font-weight: 600; color: var(--text-2); text-decoration: none;
    border: 1px solid var(--border-soft); background: var(--ocp1-tile);
}
#oc-index .ocp1-jump a:hover { color: var(--text-1); border-color: var(--ocp1-pink-line); background: var(--ocp1-pink-wash-2); }
#oc-index .ocp1-jump b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; font-size: 0.8125rem; font-weight: 800; color: var(--on-accent); background: var(--ocp1-pink-fill-2); }
#oc-index .ocp1-jump i { font-style: normal; font-size: 0.8125rem; font-weight: 700; color: var(--text-2); }
#oc-index .ocp1-c { display: none; }
#oc-index .ocp1-c--all { display: inline; }

/* group heading */
#oc-index .ocp1-group { margin: 44px 0 0; scroll-margin-top: 24px; }
#oc-index .ocp1-group__head {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "k title n" ". blurb blurb";
    gap: 2px 14px; align-items: center; margin: 0 0 16px; padding: 0 0 14px; border-bottom: 1px solid var(--border-soft);
}
#oc-index .ocp1-group__k { grid-area: k; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; font-family: var(--font-display); font-size: 1.3rem; font-weight: 700; color: var(--on-accent); background: var(--ocp1-grad-group); background-color: var(--ocp1-solid); border: 1px solid var(--ocp1-group-line); }
#oc-index .ocp1-group__head h3 { grid-area: title; margin: 0; font-size: 1.35rem; line-height: 1.25; font-weight: 700; letter-spacing: -0.01em; color: var(--text-1); text-wrap: balance; }
#oc-index .ocp1-group__n { grid-area: n; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.04em; color: var(--text-3); white-space: nowrap; }
#oc-index .ocp1-n { display: none; }
#oc-index .ocp1-n--all { display: inline; }
#oc-index .ocp1-group__blurb { grid-area: blurb; font-size: 0.9375rem; line-height: 1.5; color: var(--text-3); }

/* the tiles */
#oc-index .ocp1-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(204px, 1fr)); }
#oc-index .ocp1-cell { margin: 0; min-width: 0; }
#oc-index .ocp1-cell--wide { grid-column: span 2; }
#oc-index .ocp1-cell > a {
    display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid var(--border-soft); border-radius: 14px;
    background: var(--ocp1-tile); color: var(--text-2); font-weight: 400; text-decoration: none;
    transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}
#oc-index .ocp1-cell > a:hover { border-color: rgba(var(--ocp1-hl-rgb), 0.5); background: rgba(var(--ocp1-hl-rgb), 0.045); transform: translateY(-2px); }
#oc-index .ocp1-cell > a:focus-visible { outline: 2px solid var(--sahi-cyan); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { #oc-index .ocp1-cell > a:hover { transform: none; } }

#oc-index .ocp1-cell__img {
    container-type: inline-size; display: flex; align-items: center; justify-content: center; gap: 10px;
    height: 172px; padding: 12px; background: var(--real-frame); border-bottom: 1px solid var(--border-soft);
}
#oc-index .ocp1-shot { position: relative; display: block; flex: none; line-height: 0; }
#oc-index .ocp1-shot > img { display: block; width: auto; height: min(148px, calc((100cqw - (var(--n, 1) - 1) * 10px) / var(--n, 1) / var(--r, 1))); border-radius: 6px; }
#oc-index .ocp1-hl { position: absolute; left: var(--l); top: var(--t); width: var(--w); height: var(--h); border: 2px solid var(--sahi-cyan); border-radius: 8px; box-shadow: 0 0 0 3px rgba(var(--ocp1-hl-rgb), 0.18); pointer-events: none; }
/* High and Low: a crop of the real Customise list, the row that adds the cell */
#oc-index .ocp1-cell__img:has(.ocp1-shot--crop) { flex-direction: column; justify-content: space-between; gap: 6px; padding: 10px 12px 9px; }
#oc-index .ocp1-shot--crop { --rh: 50; --r0: 20; --sc: 0.275; width: 100cqw; height: 122px; overflow: hidden; border-radius: 8px; flex: none; }
#oc-index .ocp1-crop { position: absolute; inset: 0; display: block; }
/* the capture is 1600px wide; scaled by --sc its rows are --rh px tall, and the picture is shifted so the High row starts at --r0 */
#oc-index .ocp1-crop > img { position: absolute; left: -6px; top: calc(var(--r0) * 1px - 483 * var(--sc) * 1px); width: calc(1600 * var(--sc) * 1px); max-width: none; height: auto; }
#oc-index .ocp1-hl--row { left: 2%; width: 96%; top: calc(var(--r0) * 1px + var(--i) * var(--rh) * 1px + 1px); height: calc(var(--rh) * 1px - 2px); border-radius: 10px; }
#oc-index .ocp1-shot__tag { flex: none; padding: 0 8px; border-radius: 6px; font-size: 0.8125rem; font-weight: 700; line-height: 1.5; color: var(--sahi-cyan); background: rgba(var(--ocp1-hl-rgb), 0.08); border: 1px solid rgba(var(--ocp1-hl-rgb), 0.35); }

#oc-index .ocp1-cell__txt { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 13px 14px 14px; }
#oc-index .ocp1-cell__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 8px; }
#oc-index .ocp1-cell__name { font-size: 1.0625rem; font-weight: 700; line-height: 1.25; color: var(--text-1); }
#oc-index .ocp1-badge { flex: none; padding: 1px 9px; border-radius: 999px; font-size: 0.8125rem; font-weight: 600; line-height: 1.45; border: 1px solid transparent; }
#oc-index .ocp1-badge--both { color: var(--text-2); background: rgba(var(--ink-rgb), 0.06); border-color: rgba(var(--ink-rgb), 0.18); }
/* Advanced is the direction green in light (the mint highlight of the dark theme), Simple the brand pink: two names, two hues */
#oc-index .ocp1-badge--a { color: var(--toast-positive-text); background: color-mix(in srgb, var(--toast-positive-text) 9%, transparent); border-color: color-mix(in srgb, var(--toast-positive-text) 38%, transparent); }
#oc-index .ocp1-badge--s { color: var(--sahi-accent-ink); background: var(--ocp1-pink-soft); border-color: var(--ocp1-badge-line); }
#oc-index .ocp1-cell__what { font-size: 0.9rem; line-height: 1.45; color: var(--text-2); }
#oc-index .ocp1-cell__note { font-size: 0.8125rem; line-height: 1.4; color: var(--text-3); }
#oc-index .ocp1-cell__go { display: flex; align-items: flex-start; gap: 8px; margin-top: auto; padding-top: 8px; font-size: 0.8125rem; font-weight: 600; line-height: 1.35; color: var(--sahi-cyan); }
#oc-index .ocp1-cell__lbl { padding-top: 2px; }
#oc-index .ocp1-cell__part { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; font-size: 0.8125rem; font-weight: 800; line-height: 1; color: var(--on-accent); background: var(--ocp1-pink-fill); }

/* Beside the Strike tile: how to read a tile */
#oc-index .ocp1-key { grid-column: span 2; display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 16px 18px; border: 1px dashed rgba(var(--ink-rgb), 0.2); border-radius: 14px; background: rgba(var(--ink-rgb), 0.015); }
#oc-index .ocp1-key__t { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-3); }
#oc-index .ocp1-key dl { display: grid; gap: 12px; margin: 0; }
#oc-index .ocp1-key dl > div { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; align-items: start; }
#oc-index .ocp1-key dt { display: flex; }
#oc-index .ocp1-key dd { margin: 0; font-size: 0.9rem; line-height: 1.45; color: var(--text-2); }

/* the Simple / Advanced filter: radios, no script */
#oc-index:has(#ocp1-f-s:checked) .ocp1-cell:not([data-v~="s"]),
#oc-index:has(#ocp1-f-a:checked) .ocp1-cell:not([data-v~="a"]) { display: none; }
#oc-index:has(#ocp1-f-s:checked) .ocp1-group:not(:has(.ocp1-cell[data-v~="s"])),
#oc-index:has(#ocp1-f-a:checked) .ocp1-group:not(:has(.ocp1-cell[data-v~="a"])) { display: none; }
#oc-index:has(#ocp1-f-s:checked) .ocp1-n--all, #oc-index:has(#ocp1-f-a:checked) .ocp1-n--all,
#oc-index:has(#ocp1-f-s:checked) .ocp1-c--all, #oc-index:has(#ocp1-f-a:checked) .ocp1-c--all { display: none; }
#oc-index:has(#ocp1-f-s:checked) .ocp1-n--s, #oc-index:has(#ocp1-f-s:checked) .ocp1-c--s { display: inline; }
#oc-index:has(#ocp1-f-a:checked) .ocp1-n--a, #oc-index:has(#ocp1-f-a:checked) .ocp1-c--a { display: inline; }
#oc-index:has(#ocp1-f-s:checked) .ocp1-jump a:has(.ocp1-c--s[data-n="0"]),
#oc-index:has(#ocp1-f-a:checked) .ocp1-jump a:has(.ocp1-c--a[data-n="0"]) { display: none; }

@media (max-width: 768px) {
    #oc-index .ocp1-group { margin-top: 36px; }
    #oc-index .ocp1-group__head { grid-template-areas: "k title" ". n" ". blurb"; grid-template-columns: auto minmax(0, 1fr); }
    #oc-index .ocp1-group__head h3 { font-size: 1.2rem; }
}
@media (max-width: 560px) {
    #oc-index .ocp1-grid { gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
    #oc-index .ocp1-cell__img { height: 150px; padding: 10px; }
    #oc-index .ocp1-shot > img { height: min(128px, calc((100cqw - (var(--n, 1) - 1) * 10px) / var(--n, 1) / var(--r, 1))); }
    #oc-index .ocp1-shot--crop { --sc: 0.2375; --rh: 43.2; --r0: 16; height: 102px; }
    #oc-index .ocp1-crop > img { left: -4px; }
    #oc-index .ocp1-cell__txt { padding: 11px 11px 12px; }
    #oc-index .ocp1-cell__name { font-size: 1rem; }
    #oc-index .ocp1-cell__what { font-size: 0.875rem; }
    #oc-index .ocp1-filter label { min-height: 44px; padding: 0 14px; }
}

/* ── 06-specimens.css ── */
/* Cell specimens: the guide's frame around the app's own cells (scripts/guides/option-chain-parts/specimen.mjs).
   The cell inside is the tool's markup, labels and figures; this sheet only draws the card around it: a layered header band, a calm body,
   a soft lift on hover, a larger size for detail cards, and numbered callouts that attach to the cell's own parts.
   Dark is the default; light follows <html data-theme="light">. Colours are the Sahi palette only. */

.ocs-spec {
    --ocs-head-hi: #242424; --ocs-head: #1A1A1A; --ocs-body: #0F0F0F; --ocs-rule: #272727; --ocs-edge: rgba(250, 250, 250, 0.09);
    --ocs-label: #A3A3A3; --ocs-ink: #FAFAFA; --ocs-up: #28BCD0; --ocs-down: #F6AEAB; --ocs-ring: #FC6AD0; --ocs-shadow: rgba(0, 0, 0, 0.38);
    position: relative; display: flex; flex-direction: column; flex: none; width: 176px; overflow: hidden; border-radius: 12px;
    background: var(--ocs-body); color: var(--ocs-ink);
    box-shadow: 0 0 0 1px var(--ocs-edge), 0 10px 26px var(--ocs-shadow);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
:root[data-theme="light"] .ocs-spec {
    --ocs-head-hi: #FAFAFA; --ocs-head: #F5F5F5; --ocs-body: #FFFFFF; --ocs-rule: #E6E6E6; --ocs-edge: rgba(15, 15, 15, 0.1);
    --ocs-label: #5F5F5F; --ocs-ink: #0F0F0F; --ocs-up: #14697A; --ocs-down: #AE2C27; --ocs-ring: #A50F66; --ocs-shadow: rgba(15, 15, 15, 0.1);
}
a:hover .ocs-spec, a:focus-visible .ocs-spec, .ocs-anno:hover .ocs-spec { transform: translateY(-3px); box-shadow: 0 0 0 1px color-mix(in srgb, var(--ocs-ring) 55%, transparent), 0 16px 32px var(--ocs-shadow); }

/* header band: the column label, a faint sort caret, and a hairline under it */
.ocs-spec__th {
    position: relative; display: grid; place-items: center; min-height: 34px; padding: 0 26px; border-bottom: 1px solid var(--ocs-rule);
    background: linear-gradient(180deg, var(--ocs-head-hi), var(--ocs-head));
    color: var(--ocs-label); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; line-height: 1.2; text-align: center; text-transform: uppercase; white-space: nowrap;
}
.ocs-spec__th::after { content: ""; position: absolute; right: 11px; top: 50%; width: 5px; height: 5px; margin-top: -4px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; opacity: 0.4; transform: rotate(45deg); }
.ocs-spec__lbl { display: inline-flex; align-items: center; gap: 8px; }

/* body: the figure, large and tabular */
.ocs-spec__t { width: 100%; margin: 0; border-collapse: collapse; background: var(--ocs-body); }
.ocs-spec__t td {
    height: 88px; padding: 0 16px; border: 0; background: transparent; vertical-align: middle; text-align: center;
    color: var(--ocs-ink); font-size: 1.375rem; font-weight: 600; letter-spacing: -0.01em; line-height: 1.15; font-variant-numeric: tabular-nums;
}
.ocs-spec__t td.val-up { color: var(--ocs-up); }
.ocs-spec__t td.val-down { color: var(--ocs-down); }
.ocs-spec__t td.metric-unavailable { color: var(--ocs-label); font-weight: 500; }
/* LTP: the premium with today's change beneath it, as a quiet pill */
.ocs-spec .ltp-stack { display: grid; justify-items: center; gap: 6px; }
.ocs-spec .ltp-value { font-size: 1.375rem; font-weight: 600; color: var(--ocs-ink); }
/* The LTP cell is a <button> in the app. A specimen copies the markup, not the app's button reset, so in dark the browser's own
   grey button face showed behind the change chip (3.0:1). The specimen draws the cell, so the button keeps no face of its own. */
.ocs-spec .ltp-btn { appearance: none; margin: 0; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: inherit; }
.ocs-spec .ltp-change-pct { padding: 1px 8px; border-radius: 6px; background: color-mix(in srgb, var(--ocs-label) 14%, transparent); color: var(--ocs-label); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0; }
.ocs-spec .ltp-change-pct.val-up { background: color-mix(in srgb, var(--ocs-up) 15%, transparent); color: var(--ocs-up); }
.ocs-spec .ltp-change-pct.val-down { background: color-mix(in srgb, var(--ocs-down) 15%, transparent); color: var(--ocs-down); }
/* Chg%: it is the second line of LTP, so that line is the one ringed */
.ocs-spec.is-hl-chg .ltp-change-pct { box-shadow: 0 0 0 2px var(--ocs-ring), 0 0 0 5px color-mix(in srgb, var(--ocs-ring) 24%, transparent); }

/* larger, for a detail card */
.ocs-spec--lg { zoom: 1.35; }
.ocs-spec--lg.ocs-spec--strike { zoom: 1.7; }

/* the rich cells: the app's real components, styled by the app's own CSS (shared-css/real-cells.css); only the frame is the guide's */
.ocs-spec--rich { --font-sans: "SAHI Sans", sans-serif; width: 232px; font-family: var(--font-sans); }
.ocs-spec--rich .ocs-spec__t td { height: auto; padding: 12px 12px 14px; text-align: left; font-size: 12px; font-weight: 500; letter-spacing: 0; }
/* the cell's own content is drawn larger than its header, so it reads at a glance (the app's cell is 12px text; a figure here is the thing being read) */
.ocs-spec--rich .ocs-spec__t td > * { zoom: 1.32; }
.ocs-spec--rich.ocs-spec--lg { zoom: 1.25; }

/* the strike cell is sized as the app sizes it (12px base) and drawn larger as a unit, so its pills keep the app's proportions */
.ocs-spec--strike { --font-sans: "SAHI Sans", sans-serif; width: 118px; zoom: 1.3; font-family: var(--font-sans); }
.ocs-spec--strike .ocs-spec__th { min-height: 34px; padding: 0 8px; font-size: 0.6875rem; }
.ocs-spec--strike .ocs-spec__th::after { display: none; }
.ocs-spec--strike .ocs-spec__t td { height: auto; padding: 14px 6px 12px; font-size: 12px; font-weight: 500; letter-spacing: 0; }
.ocs-spec--strike .strike-val-lbl { font-size: 1.125rem; font-weight: 700; line-height: 1.3; margin: 3px 0; }
.ocs-spec--strike .strike-header-sort { width: 22px; height: 12px; background: currentColor; opacity: 0.8; clip-path: polygon(0 0, 46% 50%, 0 100%, 0 0, 100% 0, 54% 50%, 100% 100%, 100% 0); }

/* High and Low: the Customise rows that add them (labels from the app), the matching row ringed */
.ocs-spec--list { --ocs-row: #272727; --ocs-ring: #28BCD0; width: 214px; gap: 8px; overflow: visible; background: transparent; box-shadow: none; align-items: stretch; }
:root[data-theme="light"] .ocs-spec--list { --ocs-row: #F5F5F5; --ocs-ring: #14697A; }
.ocs-list { display: grid; gap: 6px; margin: 0; padding: 8px; list-style: none; border-radius: 12px; background: var(--ocs-head); box-shadow: 0 0 0 1px var(--ocs-edge); }
:root[data-theme="light"] .ocs-list { background: #FFFFFF; }
.ocs-list__row { display: flex; align-items: center; gap: 10px; min-height: 38px; padding: 0 12px; border-radius: 8px; background: var(--ocs-row); color: var(--ocs-ink); font-size: 0.9375rem; font-weight: 500; white-space: nowrap; }
.ocs-list__row svg { flex: none; width: 18px; height: 18px; color: var(--ocs-ring); }
.ocs-list__row.is-on { box-shadow: 0 0 0 2px var(--ocs-ring), 0 0 0 5px color-mix(in srgb, var(--ocs-ring) 22%, transparent); }
.ocs-list__tag { align-self: center; padding: 2px 10px; border: 1px solid color-mix(in srgb, var(--ocs-ring) 60%, transparent); border-radius: 8px; background: color-mix(in srgb, var(--ocs-ring) 12%, transparent); color: var(--ocs-ring); font-size: 0.75rem; font-weight: 700; white-space: nowrap; }

/* detail-card figure: the cell centred on the frame, with numbered callouts at its right */
.ocv-real__shot--spec { display: grid; place-items: center; padding: 36px 24px; background: var(--real-frame); }
.ocs-anno { position: relative; display: inline-block; }
.has-pins .ocs-anno { margin-right: 76px; }
.ocs-pins { position: absolute; inset: 0; pointer-events: none; }
.ocs-pin {
    position: absolute; left: calc(100% + 20px); display: grid; place-items: center; width: 24px; height: 24px; margin-top: -12px; border-radius: 50%;
    background: var(--sahi-cyan); color: var(--on-positive); font-size: 0.75rem; font-weight: 700; line-height: 1;
}
.ocs-pin::before { content: ""; position: absolute; right: 100%; top: 50%; width: 20px; height: 1.5px; background: inherit; opacity: 0.7; }
.ocs-pin--th { top: 30px; }
.ocs-pin--val { top: 112px; }
.ocs-pin--sub { top: 130px; }
.ocs-anno:has(.ltp-stack) .ocs-pin--val { top: 98px; }
.ocs-anno:has(.ltp-stack) .ocs-pin--sub { top: 130px; }

/* in the Cell Index tile: centred in the picture area */
.ocp1-cell__img .ocs-spec { margin: auto; }
@container (max-width: 190px) {
    .ocp1-cell__img .ocs-spec:not(.ocs-spec--list):not(.ocs-spec--strike):not(.ocs-spec--rich) { zoom: 0.85; }
    .ocp1-cell__img .ocs-spec--rich { zoom: 0.7; }
    .ocp1-cell__img .ocs-spec--list { width: calc(100cqw - 16px); }
    .ocs-list { padding: 6px; gap: 5px; }
    .ocs-list__row { min-height: 34px; padding: 0 8px; gap: 6px; font-size: 0.8125rem; }
    .ocs-list__row svg { width: 15px; height: 15px; }
    .ocs-list__tag { font-size: 0.6875rem; padding: 2px 6px; }
}
.ocp1-cell__img:has(.ocs-spec--list) { flex-direction: column; gap: 8px; }
.ocp1-cell__img:has(.ocs-spec--strike) { gap: 10px; }

@media (prefers-reduced-motion: reduce) { .ocs-spec { transition: none; } a:hover .ocs-spec, .ocs-anno:hover .ocs-spec { transform: none; } }

/* the three small cells beside a Part's title (decorative) */
.ocp1-part__thumbs .ocs-spec { zoom: 0.55; box-shadow: 0 0 0 1px var(--ocs-edge); }
.ocp1-part__thumbs .ocs-spec--rich { zoom: 0.45; }
.ocp1-part__thumbs .ocs-spec--strike { zoom: 0.62; }
.ocv-real__shot--spec { height: auto; min-height: 0; max-height: none; overflow: visible; padding: 28px 44px 28px 28px; }

/* ── 07-compact.css ── */
/* Compact cards: the stage stays open, the rest of a cell's card folds into one panel under a one-line strip (option-chain-parts/compact.mjs). */

.ocx-glance { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.ocx-glance li { display: grid; gap: 3px; padding: 11px 14px; border: 1px solid var(--border-soft); border-radius: 12px; background: rgba(var(--ink-rgb), 0.03); }
.ocx-glance b { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-3); }
.ocx-glance span { font-size: 0.9375rem; line-height: 1.4; color: var(--text-1); }

.ocx-more { margin: 14px 0 0; border: 1px solid var(--border-soft); border-radius: 14px; background: rgba(var(--ink-rgb), 0.025); transition: border-color 0.25s, background-color 0.25s; }
.ocx-more:hover { border-color: var(--text-3); }
.ocx-more[open] { background: transparent; border-color: var(--border-soft); }
.ocx-more > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 0 18px; list-style: none; cursor: pointer; border-radius: 14px; }
.ocx-more > summary::-webkit-details-marker { display: none; }
.ocx-more > summary:focus-visible { outline: 2px solid var(--text-1); outline-offset: 2px; }
.ocx-more__t { font-size: 0.9688rem; font-weight: 600; color: var(--text-1); }
.ocx-more__c { flex: none; width: 10px; height: 10px; border: solid var(--text-2); border-width: 0 2px 2px 0; transform: rotate(45deg) translate(-2px, -2px); transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); }
.ocx-more[open] > summary .ocx-more__c { transform: rotate(-135deg) translate(-2px, -2px); }
.ocx-more__body { padding: 4px 18px 20px; }
.ocx-more__body > :first-child { margin-top: 8px; }
@media (prefers-reduced-motion: reduce) { .ocx-more, .ocx-more__c { transition: none; } }

/* a folded reference block: titled with what is inside; the block's own header is not repeated */
.ocx-more--block { margin: 18px 0; }
.ocx-more__t small { display: block; margin-bottom: 2px; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-3); }
.ocx-more--block .ocx-more__body { padding: 0 6px 12px; }
.ocx-more--block .ocx-more__body > .iv-block { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.ocx-more--block .ocx-more__body > .iv-block > .iv-block__head { display: none; }

/* ── 08-explorer.css ── */
/* The Customise preset explorer (presetExplorer in option-chain-parts/specimen.mjs): five tabs, the chosen preset's columns lit.
   CSS only: the tabs are radio inputs, so the keyboard and a no-script reader both work. */

.ocp-ex { margin: 22px 0; padding: 18px; border: 1px solid var(--border-soft); border-radius: 18px; background: rgba(var(--ink-rgb), 0.03); }
.ocp-ex__r { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; }

.ocp-ex__bar { display: flex; gap: 6px; padding: 5px; overflow-x: auto; border-radius: 999px; background: rgba(var(--ink-rgb), 0.06); scrollbar-width: none; }
.ocp-ex__bar::-webkit-scrollbar { display: none; }
.ocp-ex__tab { flex: 1 0 auto; display: grid; place-items: center; gap: 1px; min-height: 52px; padding: 6px 18px; border-radius: 999px; cursor: pointer; text-align: center; color: var(--text-2); transition: background-color 0.25s, color 0.25s, box-shadow 0.25s; }
.ocp-ex__tab span { font-size: 1rem; font-weight: 700; line-height: 1.2; }
.ocp-ex__tab small { font-size: 0.75rem; font-weight: 600; opacity: 0.75; font-variant-numeric: tabular-nums; }
.ocp-ex__tab:hover { color: var(--text-1); background: rgba(var(--ink-rgb), 0.06); }

.ocp-ex__panels { margin-top: 16px; }
.ocp-ex__panel { display: none; animation: ocp-in 0.45s cubic-bezier(0.16, 1, 0.3, 1); }
@keyframes ocp-in { from { opacity: 0; transform: translateY(6px); } }
.ocp-ex__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin-bottom: 6px; }
.ocp-ex__head b { font-size: 1.25rem; font-weight: 700; color: var(--text-1); }
.ocp-ex__head span { font-size: 0.9688rem; color: var(--text-2); }
.ocp-ex__adds { margin: 0 0 16px; font-size: 0.9688rem; line-height: 1.55; color: var(--text-2); }
.ocp-ex__adds strong { color: var(--text-1); }
.ocp-ex__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px 22px; }
.ocp-ex__grp h4 { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 0 0 8px; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); }
.ocp-ex__grp h4 small { font-size: 0.75rem; letter-spacing: 0; text-transform: none; font-variant-numeric: tabular-nums; }
.ocp-ex__chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ocp-ex__chips li { padding: 5px 11px; border: 1px solid var(--border-soft); border-radius: 999px; font-size: 0.8438rem; line-height: 1.25; color: var(--text-3); background: transparent; transition: background-color 0.3s, color 0.3s, border-color 0.3s; }
.ocp-ex__chips li.is-on { border-color: color-mix(in srgb, var(--sahi-cyan) 55%, transparent); background: color-mix(in srgb, var(--sahi-cyan) 22%, transparent); color: var(--text-1); font-weight: 700; }
.ocp-ex__chips li.is-off { opacity: 0.55; }
.ocp-ex__note { margin: 14px 0 0; font-size: 0.875rem; color: var(--text-3); }
.ocp-ex__key { display: flex; align-items: center; gap: 8px; margin: 16px 0 0; font-size: 0.8125rem; color: var(--text-3); }
.ocp-ex__key i { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--border-soft); }
.ocp-ex__key i.is-on { border-color: var(--sahi-cyan); background: color-mix(in srgb, var(--sahi-cyan) 55%, transparent); }

/* the chosen tab and its panel (five presets) */
.ocp-ex:has(#ocp-pr-simple:checked) .ocp-ex__panel[data-p="simple"], .ocp-ex:has(#ocp-pr-buyer:checked) .ocp-ex__panel[data-p="buyer"], .ocp-ex:has(#ocp-pr-seller:checked) .ocp-ex__panel[data-p="seller"],
.ocp-ex:has(#ocp-pr-hedger:checked) .ocp-ex__panel[data-p="hedger"], .ocp-ex:has(#ocp-pr-other:checked) .ocp-ex__panel[data-p="other"] { display: block; }
.ocp-ex:has(#ocp-pr-simple:checked) label[for="ocp-pr-simple"], .ocp-ex:has(#ocp-pr-buyer:checked) label[for="ocp-pr-buyer"], .ocp-ex:has(#ocp-pr-seller:checked) label[for="ocp-pr-seller"],
.ocp-ex:has(#ocp-pr-hedger:checked) label[for="ocp-pr-hedger"], .ocp-ex:has(#ocp-pr-other:checked) label[for="ocp-pr-other"] { background: var(--sahi-cyan); color: var(--on-positive); box-shadow: 0 6px 16px color-mix(in srgb, var(--sahi-cyan) 28%, transparent); }
.ocp-ex:has(#ocp-pr-simple:focus-visible) label[for="ocp-pr-simple"], .ocp-ex:has(#ocp-pr-buyer:focus-visible) label[for="ocp-pr-buyer"], .ocp-ex:has(#ocp-pr-seller:focus-visible) label[for="ocp-pr-seller"],
.ocp-ex:has(#ocp-pr-hedger:focus-visible) label[for="ocp-pr-hedger"], .ocp-ex:has(#ocp-pr-other:focus-visible) label[for="ocp-pr-other"] { outline: 2px solid var(--text-1); outline-offset: 2px; }

@media (max-width: 560px) { .ocp-ex { padding: 12px; } .ocp-ex__tab { padding: 6px 14px; } }
@media (prefers-reduced-motion: reduce) { .ocp-ex__panel { animation: none; } .ocp-ex__tab, .ocp-ex__chips li { transition: none; } }

/* the preset explorer: only what is switched on, then the heading row of the chain it makes */
.ocp-ex__lbl { margin: 18px 0 8px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); }
.ocp-ex__chain { border-radius: 12px; box-shadow: 0 0 0 1px var(--border-soft); overflow: hidden; }
.ocp-ex__chead { display: flex; justify-content: space-around; padding: 8px 12px; border-bottom: 1px solid var(--border-soft); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); }
.ocp-ex__side { padding: 3px 14px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--border-soft); }
.ocp-ex__scroll { overflow-x: auto; }
.ocp-ex__row { display: flex; min-width: max-content; }
.ocp-ex__h { flex: 1 0 auto; min-width: 74px; padding: 12px 10px; text-align: center; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.09em; color: var(--text-2); border-right: 1px solid var(--border-soft); white-space: nowrap; }
.ocp-ex__h:last-child { border-right: 0; }
.ocp-ex__h--k { min-width: 92px; background: rgba(var(--ink-rgb), 0.06); color: var(--text-1); }
.ocp-ex__grp h4 small { margin-left: 6px; font-size: 0.75rem; font-weight: 600; color: var(--text-3); }
.ocp-ex__chips li.is-on { border-color: var(--text-3); background: transparent; color: var(--text-1); font-weight: 600; }

.ocp-ex__side--x { box-shadow: none; color: var(--text-1); }
.ocp-ex__row--v { border-top: 1px solid var(--border-soft); }
.ocp-ex__v { flex: 1 0 auto; min-width: 74px; padding: 10px; text-align: center; font-size: 0.875rem; font-variant-numeric: tabular-nums; color: var(--text-1); border-right: 1px solid var(--border-soft); white-space: nowrap; }
.ocp-ex__v:last-child { border-right: 0; }
.ocp-ex__v--k { min-width: 92px; background: rgba(var(--ink-rgb), 0.06); font-weight: 600; }
/* heading and value share one column, so they cannot drift apart */
.ocp-ex__c { display: flex; flex-direction: column; flex: 1 0 auto; min-width: 84px; border-right: 1px solid var(--border-soft); }
.ocp-ex__c:last-child { border-right: 0; }
.ocp-ex__c .ocp-ex__h, .ocp-ex__c .ocp-ex__v { flex: none; min-width: 0; border-right: 0; }
.ocp-ex__c .ocp-ex__v { border-top: 1px solid var(--border-soft); }
.ocp-ex__c--k { min-width: 96px; background: rgba(var(--ink-rgb), 0.06); }
.ocp-ex__v--e { color: var(--text-3); }

/* ── 09-charts.css ── */
/* Charts drawn in code from the example chain (option-chain-parts/viz.mjs). Palette colours only; light follows <html data-theme="light">. */

.vz-fig { --vz-call: #EE807B; --vz-put: #28BCD0; --vz-ink: #FAFAFA; --vz-mute: #A3A3A3; --vz-grid: #272727; --vz-band: #1A1A1A; --vz-spot: #FC6AD0; --vz-card: #0F0F0F; --vz-edge: rgba(250, 250, 250, 0.09);
    margin: 26px 0; overflow: hidden; border-radius: 18px; background: var(--vz-card); color: var(--vz-ink); box-shadow: 0 0 0 1px var(--vz-edge), 0 14px 34px rgba(0, 0, 0, 0.3); }
:root[data-theme="light"] .vz-fig { --vz-call: #C4342E; --vz-put: #14697A; --vz-ink: #0F0F0F; --vz-mute: #5F5F5F; --vz-grid: #E6E6E6; --vz-band: #F5F5F5; --vz-spot: #A50F66; --vz-card: #FFFFFF; --vz-edge: rgba(15, 15, 15, 0.1); }

.vz-fig__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 16px 22px; border-bottom: 1px solid var(--vz-grid); background: var(--vz-band); }
.vz-fig__head b { font-size: 1.0625rem; font-weight: 700; }
.vz-fig__s { font-size: 0.875rem; color: var(--vz-mute); }
.vz-scroll { overflow-x: auto; padding: 12px 10px 4px; }
.vz { display: block; width: 100%; min-width: 600px; height: auto; font-family: "SAHI Sans", sans-serif; }
.vz-fig__cap { margin: 0; padding: 4px 22px 18px; font-size: 0.9375rem; line-height: 1.55; color: var(--vz-mute); }
.vz-fig__cap strong { color: var(--vz-ink); }

.vz text { fill: var(--vz-ink); font-size: 12.5px; }
.vz .vz-axis { fill: var(--vz-mute); font-size: 11.5px; font-weight: 700; letter-spacing: 0.12em; }
.vz .vz-axis--s { font-size: 11px; font-weight: 500; letter-spacing: 0.02em; }
.vz .vz-tick, .vz .vz-key__t, .vz .vz-key text { fill: var(--vz-mute); font-size: 11.5px; }
.vz .vz-key__b { fill: var(--vz-ink); }
.vz .vz-panel { font-size: 15px; font-weight: 700; }
.vz .vz-lbl { font-size: 13px; font-weight: 700; }
.vz .vz-num { fill: var(--vz-mute); font-size: 11.5px; font-variant-numeric: tabular-nums; }
.vz .vz-num.is-wall { fill: var(--vz-ink); font-weight: 700; }
.vz .vz-strike { font-size: 13.5px; font-weight: 600; font-variant-numeric: tabular-nums; }
.vz .vz-strike.is-atm { font-weight: 800; }
.vz-atm { fill: var(--vz-band); }

.vz-bar--ce { fill: var(--vz-call); }
.vz-bar--pe { fill: var(--vz-put); }
.vz-bar--add { fill: url(#vz-h-pe); }
.vz-bar--ce.vz-bar--add { fill: url(#vz-h-ce); }
.vz-h-bg--ce { fill: color-mix(in srgb, var(--vz-call) 18%, transparent); }
.vz-h-bg--pe { fill: color-mix(in srgb, var(--vz-put) 18%, transparent); }
.vz-h-ln--ce { fill: var(--vz-call); }
.vz-h-ln--pe { fill: var(--vz-put); }
.vz-ghost { stroke: none; }
.vz-ghost--ce { fill: color-mix(in srgb, var(--vz-call) 28%, transparent); }
.vz-ghost--pe { fill: color-mix(in srgb, var(--vz-put) 28%, transparent); }
/* Volume is neutral ink in the tool, on either side: same rule, no colour */
.vz-vol.vz-bar--ce, .vz-vol.vz-bar--pe { fill: var(--vz-mute); }
.vz-vol.vz-bar--add { fill: url(#vz-h-vol); }
.vz-ghost.vz-vol { fill: color-mix(in srgb, var(--vz-mute) 30%, transparent); }
.vz-h-ln--vol { fill: var(--vz-mute); }
.vz-h-bg--vol { fill: color-mix(in srgb, var(--vz-mute) 24%, transparent); }
.vz-edge--ce { fill: var(--vz-call); } .vz-edge--pe { fill: var(--vz-put); } .vz-edge.vz-vol { fill: var(--vz-mute); }

.vz-spot line { stroke: var(--vz-spot); stroke-width: 1.5; stroke-dasharray: 5 4; }
.vz-spot rect { fill: var(--vz-spot); }
.vz-spot text { fill: var(--vz-card); font-size: 12px; font-weight: 700; }
.vz-spotv { stroke: var(--vz-spot); stroke-width: 1.5; stroke-dasharray: 5 4; }
.vz-tag rect { fill: var(--vz-band); stroke: var(--vz-mute); stroke-width: 1; }
.vz-tag text { fill: var(--vz-ink); font-size: 11px; font-weight: 700; }
.vz-tag--ce rect { stroke: var(--vz-call); }
.vz-tag--pe rect { stroke: var(--vz-put); }
.vz-tag--mp rect { fill: var(--vz-spot); stroke: none; }
.vz-tag--mp text { fill: var(--vz-card); }
.vz-tag--spot rect { fill: var(--vz-spot); stroke: none; }
.vz-tag--spot text { fill: var(--vz-card); font-size: 12px; }

.vz-grid { stroke: var(--vz-grid); stroke-width: 1; }
.vz-grid--zero { stroke: var(--vz-mute); stroke-dasharray: 2 3; }
.vz-ln { fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.vz-ln--ce { stroke: var(--vz-call); }
.vz-ln--pe { stroke: var(--vz-put); }
.vz-dot--ce { fill: var(--vz-call); }
.vz-dot--pe { fill: var(--vz-put); }
.vz-atm-dot { fill: var(--vz-card); stroke: var(--vz-ink); stroke-width: 2.5; }

@media (prefers-reduced-motion: no-preference) {
    .vz-ln { stroke-dasharray: 1400; stroke-dashoffset: 1400; animation: vz-draw 1.4s 0.1s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
}
@keyframes vz-draw { to { stroke-dashoffset: 0; } }
@media (max-width: 640px) { .vz-fig__head { padding: 14px 16px; } .vz-fig__cap { padding: 4px 16px 16px; } }

/* hover: the strike under the pointer lights up, the rest steps back, and a card gives the exact figures (public/guides/vz-hover.js) */
.vz-fig { position: relative; }
.vz-fig__hint { margin-left: auto; font-size: 0.8125rem; color: var(--vz-mute); }
.vz-hit { fill: transparent; cursor: crosshair; outline: none; }
.vz-rowhl { fill: var(--vz-band); opacity: 0; transition: opacity 0.15s; }
.vz-rowhl.is-hot { opacity: 1; stroke: var(--vz-spot); stroke-width: 1; }
.vz-on { opacity: 0; transition: opacity 0.15s; pointer-events: none; }
.vz-on.is-hot { opacity: 1; }
.vz-xh { stroke: var(--vz-ink); stroke-width: 1; opacity: 0.6; }
.vz-dot--big { stroke: var(--vz-card); stroke-width: 2; }
.vz:focus-visible { outline: 2px solid var(--vz-spot); outline-offset: -2px; border-radius: 12px; }

.vz-tip { position: absolute; left: 0; top: 0; z-index: 3; display: grid; gap: 4px; min-width: 190px; max-width: 280px; padding: 12px 14px; border-radius: 12px; pointer-events: none;
    background: var(--vz-band); color: var(--vz-ink); font-size: 0.8125rem; line-height: 1.35; box-shadow: 0 0 0 1px var(--vz-edge), 0 14px 30px rgba(0, 0, 0, 0.35); }
.vz-tip[hidden] { display: none; }
.vz-tip__t { font-size: 1rem; font-weight: 700; }
.vz-tip__s { color: var(--vz-mute); margin-bottom: 4px; }
.vz-tip__r { display: flex; justify-content: space-between; gap: 14px; }
.vz-tip__r i { font-style: normal; color: var(--vz-mute); }
.vz-tip__r em { font-style: normal; font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
.vz-tip__r em.up { color: var(--vz-put); }
.vz-tip__r em.down { color: var(--vz-call); }
.vz-tip small { font-size: 0.75rem; font-weight: 500; color: var(--vz-mute); }
@media (prefers-reduced-motion: reduce) { .vz-rowhl, .vz-on { transition: none; } }
.vz-prevtick { stroke: var(--vz-ink); stroke-width: 2; }
.vz-area--in { fill: var(--vz-ink); opacity: 0.22; }
.vz-area--tv { fill: var(--vz-spot); opacity: 0.55; }
.vz-ln--thin { fill: none; stroke: var(--vz-ink); stroke-width: 1.5; opacity: 0.8; }

/* ── 10-a1-ladder-spot.css ── */
/* Part A, sections 1 and 2 (The Ladder, The Spot Line): neutral hairline cards, plum only for numbers and selected states.
   Pictures are captures with pins (see 10-hero.css, .ocx-*); this file styles what is drawn in code. */
:is(#oc-a-ladder, #oc-a-spot-line) {
  --a1-card: #1A1A1A; --a1-well: #0F0F0F; --a1-line: #272727; --a1-ink: #FAFAFA; --a1-mute: #A3A3A3;
  --a1-plum: #A50F66; --a1-plum-text: #FC6AD0; --a1-plum-ink: #FFFFFF; --a1-up: #28BCD0; --a1-down: #EE807B;
}
:root[data-theme="light"] :is(#oc-a-ladder, #oc-a-spot-line) {
  --a1-card: #FFFFFF; --a1-well: #F5F5F5; --a1-line: #E6E6E6; --a1-ink: #0F0F0F; --a1-mute: #5F5F5F;
  --a1-plum: #A50F66; --a1-plum-text: #A50F66; --a1-plum-ink: #FFFFFF; --a1-up: #14697A; --a1-down: #C4342E;
}

/* a hairline panel for what a capture cannot show */
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-panel { margin: 22px 0 28px; border-radius: 18px; background: var(--a1-card); box-shadow: 0 0 0 1px var(--a1-line); overflow: hidden; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-panel__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; padding: 16px 22px; background: var(--a1-well); border-bottom: 1px solid var(--a1-line); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-panel__head b { font-size: 1.0625rem; font-weight: 700; color: var(--a1-ink); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-panel__head span { font-size: 0.8125rem; color: var(--a1-mute); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-panel__head a { color: var(--a1-plum-text); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-panel__body { padding: 18px 22px 20px; display: grid; gap: 16px; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-panel__foot { margin: 0; padding: 0 22px 20px; font-size: 0.9063rem; line-height: 1.55; color: var(--a1-mute); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-scroll { overflow-x: auto; min-width: 0; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-note { margin: 12px 0 24px; font-size: 0.95rem; line-height: 1.6; color: var(--text-3); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-mono { font-variant-numeric: tabular-nums; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-n { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-right: 8px; border-radius: 50%; background: var(--a1-plum); color: var(--a1-plum-ink); font-size: 0.75rem; font-style: normal; font-weight: 700; flex: none; }

/* the rules table (folded into a panel by compact.mjs) */
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-facts { margin: 0; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-facts > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 4px 20px; padding: 12px 0; border-top: 1px solid var(--border-soft); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-facts > div:first-child { border-top: 0; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-facts dt { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); padding-top: 3px; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-facts dd { margin: 0; font-size: 0.97rem; line-height: 1.6; color: var(--text-2); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-facts dd a { color: var(--a1-plum-text); }

/* ATM mark / spot line: two plain columns */
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 14px 0 0; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-two > div { padding: 16px 18px; border-radius: 14px; background: var(--a1-card); box-shadow: 0 0 0 1px var(--a1-line); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-two h4 { margin: 0 0 6px; font-size: 1rem; color: var(--a1-ink); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-two p { margin: 0; font-size: 0.93rem; line-height: 1.6; color: var(--a1-mute); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-two strong { color: var(--a1-ink); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-list { margin: 14px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-list li { padding: 14px 18px; border-radius: 14px; background: var(--a1-card); box-shadow: 0 0 0 1px var(--a1-line); font-size: 0.95rem; line-height: 1.6; color: var(--a1-mute); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-list b { color: var(--a1-ink); }

/* radio tabs (no script) */
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs { margin: 22px 0 28px; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__r, :is(#oc-a-ladder, #oc-a-spot-line) .oca1-mx__r { position: absolute; opacity: 0; pointer-events: none; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__bar, :is(#oc-a-ladder, #oc-a-spot-line) .oca1-mx__bar { display: flex; flex-wrap: wrap; gap: 2px; width: fit-content; max-width: 100%; margin: 0 0 12px; padding: 4px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.06); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__bar label, :is(#oc-a-ladder, #oc-a-spot-line) .oca1-mx__bar label { display: inline-flex; align-items: center; min-height: 36px; padding: 0 16px; border-radius: 999px; font-size: 0.9063rem; font-weight: 600; color: var(--text-2); cursor: pointer; transition: background-color 0.2s, color 0.2s; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__bar label:hover, :is(#oc-a-ladder, #oc-a-spot-line) .oca1-mx__bar label:hover { background: rgba(var(--ink-rgb), 0.08); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__pane, :is(#oc-a-ladder, #oc-a-spot-line) .oca1-mx__p { display: none; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__r:nth-of-type(1):checked ~ .oca1-tabs__pane:nth-of-type(1),
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__r:nth-of-type(2):checked ~ .oca1-tabs__pane:nth-of-type(2),
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__r:nth-of-type(3):checked ~ .oca1-tabs__pane:nth-of-type(3) { display: block; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__r:nth-of-type(1):checked ~ .oca1-tabs__bar label:nth-child(1),
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__r:nth-of-type(2):checked ~ .oca1-tabs__bar label:nth-child(2),
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__r:nth-of-type(3):checked ~ .oca1-tabs__bar label:nth-child(3) { background: var(--a1-plum); color: var(--a1-plum-ink); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__r:focus-visible ~ .oca1-tabs__bar, :is(#oc-a-ladder, #oc-a-spot-line) .oca1-mx__r:focus-visible ~ .oca1-mx__bar { outline: 2px solid var(--a1-ink); outline-offset: 3px; }

/* the moneyness explorer */
#oc-a-ladder .oca1-mx__r:nth-of-type(1):checked ~ .oca1-mx__p:nth-of-type(1),
#oc-a-ladder .oca1-mx__r:nth-of-type(2):checked ~ .oca1-mx__p:nth-of-type(2),
#oc-a-ladder .oca1-mx__r:nth-of-type(3):checked ~ .oca1-mx__p:nth-of-type(3),
#oc-a-ladder .oca1-mx__r:nth-of-type(4):checked ~ .oca1-mx__p:nth-of-type(4),
#oc-a-ladder .oca1-mx__r:nth-of-type(5):checked ~ .oca1-mx__p:nth-of-type(5) { display: block; animation: oca1-in 0.3s cubic-bezier(0.16, 1, 0.3, 1); }
#oc-a-ladder .oca1-mx__r:nth-of-type(1):checked ~ .oca1-mx__bar label:nth-child(1),
#oc-a-ladder .oca1-mx__r:nth-of-type(2):checked ~ .oca1-mx__bar label:nth-child(2),
#oc-a-ladder .oca1-mx__r:nth-of-type(3):checked ~ .oca1-mx__bar label:nth-child(3),
#oc-a-ladder .oca1-mx__r:nth-of-type(4):checked ~ .oca1-mx__bar label:nth-child(4),
#oc-a-ladder .oca1-mx__r:nth-of-type(5):checked ~ .oca1-mx__bar label:nth-child(5) { background: var(--a1-plum); color: var(--a1-plum-ink); }
@keyframes oca1-in { from { opacity: 0; transform: translateY(4px); } }
#oc-a-ladder .oca1-mx__sum { margin: 0 0 12px; font-size: 0.9688rem; color: var(--a1-mute); }
#oc-a-ladder .oca1-mx__sum b { color: var(--a1-plum-text); font-size: 1.125rem; }
#oc-a-ladder .oca1-mx__t { width: 100%; min-width: 440px; border-collapse: separate; border-spacing: 0; font-variant-numeric: tabular-nums; }
#oc-a-ladder .oca1-mx__t th { padding: 8px 12px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--a1-mute); text-align: center; border-bottom: 1px solid var(--a1-line); }
#oc-a-ladder .oca1-mx__t th.ce { color: var(--a1-down); }
#oc-a-ladder .oca1-mx__t th.pe { color: var(--a1-up); }
#oc-a-ladder .oca1-mx__t td { padding: 9px 12px; text-align: center; border-bottom: 1px solid var(--a1-line); color: var(--a1-mute); }
#oc-a-ladder .oca1-mx__c b { display: block; font-size: 0.9688rem; font-weight: 600; opacity: 0.55; }
#oc-a-ladder .oca1-mx__c small { display: block; font-size: 0.75rem; opacity: 0.7; }
#oc-a-ladder .oca1-mx__c.is-itm { background: color-mix(in srgb, var(--a1-ink) 8%, transparent); color: var(--a1-ink); }
#oc-a-ladder .oca1-mx__c.is-itm b { opacity: 1; font-size: 1.0625rem; }
#oc-a-ladder .oca1-mx__c--ce.is-itm { box-shadow: inset -3px 0 0 var(--a1-ink); }
#oc-a-ladder .oca1-mx__c--pe.is-itm { box-shadow: inset 3px 0 0 var(--a1-ink); }
#oc-a-ladder .oca1-mx__k { background: var(--a1-well); color: var(--a1-ink); border-left: 1px solid var(--a1-line); border-right: 1px solid var(--a1-line); }
#oc-a-ladder .oca1-mx__k b { font-size: 1.0625rem; margin-right: 8px; }
#oc-a-ladder .oca1-mx__k small { font-size: 0.8125rem; color: var(--a1-mute); }
#oc-a-ladder .oca1-mx__k em { margin-left: 8px; padding: 1px 8px; border-radius: 999px; box-shadow: 0 0 0 1px var(--a1-ink); font-style: normal; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; color: var(--a1-ink); }
#oc-a-ladder .oca1-mx__spot td { padding: 0; border: 0; }
#oc-a-ladder .oca1-mx__spot span { display: block; margin: 6px 0; padding: 5px 0; text-align: center; font-size: 0.8438rem; font-weight: 700; background: var(--a1-ink); color: var(--a1-card); border-radius: 999px; }
#oc-a-ladder .oca1-mx__why { margin: 12px 0 0; font-size: 0.9375rem; line-height: 1.55; color: var(--a1-mute); }
#oc-a-ladder .oca1-mx__t tr:hover .oca1-mx__c.is-itm { background: color-mix(in srgb, var(--a1-ink) 13%, transparent); }

/* the strike window bar */
#oc-a-ladder .oca1-win { padding: 28px 0 4px; min-width: 0; }
#oc-a-ladder .oca1-win__bar { position: relative; display: flex; gap: 3px; height: 46px; }
#oc-a-ladder .oca1-win__seg { position: relative; display: grid; place-items: center; border-radius: 10px; font-size: 0.8125rem; font-weight: 700; outline: none; min-width: 0; }
#oc-a-ladder .oca1-win__seg.is-off { background: rgba(var(--ink-rgb), 0.06); color: var(--a1-mute); box-shadow: inset 0 0 0 1px var(--a1-line); }
#oc-a-ladder .oca1-win__seg.is-on { background: color-mix(in srgb, var(--a1-ink) 14%, transparent); color: var(--a1-ink); box-shadow: inset 0 0 0 1px var(--a1-ink); }
#oc-a-ladder .oca1-win__seg em { font-style: normal; white-space: nowrap; }
#oc-a-ladder .oca1-win__seg:is(:hover, :focus-visible), #oc-a-ladder .oca1-win__mk:is(:hover, :focus-visible) { box-shadow: 0 0 0 2px var(--a1-plum); }
#oc-a-ladder .oca1-win__mk { position: absolute; top: -10px; bottom: -10px; width: 3px; margin-left: -1px; border-radius: 2px; background: var(--a1-ink); outline: none; }
#oc-a-ladder .oca1-win__mk--wall { background: var(--a1-down); }
#oc-a-ladder .oca1-win__tip { position: absolute; left: 50%; bottom: calc(100% + 12px); z-index: 4; transform: translateX(-50%); width: max-content; max-width: 230px; padding: 8px 12px; border-radius: 10px; background: var(--a1-card); color: var(--a1-ink); box-shadow: 0 0 0 1px var(--a1-line), 0 12px 26px rgba(0, 0, 0, 0.3); font-style: normal; font-size: 0.8125rem; font-weight: 500; line-height: 1.4; opacity: 0; pointer-events: none; transition: opacity 0.2s; white-space: normal; text-align: left; }
#oc-a-ladder .oca1-win__seg:is(:hover, :focus-visible) .oca1-win__tip, #oc-a-ladder .oca1-win__mk:is(:hover, :focus-visible) .oca1-win__tip { opacity: 1; }
#oc-a-ladder .oca1-win__mk--wall .oca1-win__tip { left: auto; right: -6px; transform: none; }
#oc-a-ladder .oca1-win__axis { position: relative; height: 24px; margin-top: 10px; font-size: 0.8125rem; color: var(--a1-mute); font-variant-numeric: tabular-nums; }
#oc-a-ladder .oca1-win__axis span { position: absolute; top: 0; transform: translateX(-50%); }
#oc-a-ladder .oca1-win__axis span:first-child { transform: none; }
#oc-a-ladder .oca1-win__axis span:last-child { transform: translateX(-100%); }

/* expected-move ranges */
#oc-a-spot-line .oca1-rg { min-width: 560px; padding: 8px 0 0; }
#oc-a-spot-line .oca1-rg__plot { position: relative; display: grid; gap: 12px; padding: 38px 0 34px; }
#oc-a-spot-line .oca1-rg__row { position: relative; height: 34px; }
#oc-a-spot-line .oca1-rg__bar { position: absolute; top: 0; height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 12px; border-radius: 8px; box-sizing: border-box; font-size: 0.8125rem; color: var(--a1-ink); outline: none; overflow: hidden; white-space: nowrap; }
#oc-a-spot-line .oca1-rg__bar em { font-style: normal; font-weight: 600; overflow: hidden; text-overflow: ellipsis; }
#oc-a-spot-line .oca1-rg__bar b { font-weight: 700; }
#oc-a-spot-line .oca1-rg__bar.is-a { background: color-mix(in srgb, var(--a1-ink) 8%, transparent); box-shadow: inset 0 0 0 1px var(--a1-mute); }
#oc-a-spot-line .oca1-rg__bar.is-b { background: color-mix(in srgb, var(--a1-ink) 18%, transparent); box-shadow: inset 0 0 0 1px var(--a1-ink); }
#oc-a-spot-line .oca1-rg__bar:focus-visible, #oc-a-spot-line .oca1-rg__bar:hover { box-shadow: 0 0 0 2px var(--a1-plum); }
#oc-a-spot-line .oca1-rg__spot, #oc-a-spot-line .oca1-rg__atm { position: absolute; top: 18px; bottom: 14px; width: 2px; background: var(--a1-ink); }
#oc-a-spot-line .oca1-rg__atm { background: transparent; border-left: 2px dashed var(--a1-mute); }
#oc-a-spot-line .oca1-rg em.x { position: absolute; }
#oc-a-spot-line .oca1-rg__spot em, #oc-a-spot-line .oca1-rg__atm em { position: absolute; font-style: normal; font-size: 0.8125rem; font-weight: 600; white-space: nowrap; color: var(--a1-ink); }
#oc-a-spot-line .oca1-rg__spot em { top: -20px; right: 8px; }
#oc-a-spot-line .oca1-rg__atm em { bottom: -20px; left: 8px; color: var(--a1-mute); }
#oc-a-spot-line .oca1-rg__axis { position: relative; height: 22px; border-top: 1px solid var(--a1-line); }
#oc-a-spot-line .oca1-rg__axis span { position: absolute; top: 6px; transform: translateX(-50%); font-size: 0.8125rem; color: var(--a1-mute); }

/* tables */
#oc-a-spot-line .oca1-table2 { width: 100%; min-width: 600px; border-collapse: collapse; font-size: 0.93rem; }
#oc-a-spot-line .oca1-table2 :is(th, td) { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--a1-line); line-height: 1.5; color: var(--a1-mute); }
#oc-a-spot-line .oca1-table2 thead th { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em; }
#oc-a-spot-line .oca1-table2 tbody th { color: var(--a1-ink); font-weight: 600; }
#oc-a-spot-line .oca1-table2 tbody tr:last-child :is(th, td) { border-bottom: 0; }
#oc-a-spot-line .oca1-table2 .r { text-align: right; }
#oc-a-spot-line .oca1-table2 td.oca1-mono { color: var(--a1-ink); font-weight: 600; }
#oc-a-spot-line .oca1-table2 .oca1-n { margin: 0; }

/* the Insight card header, drawn */
#oc-a-spot-line .oca1-ins { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
#oc-a-spot-line .oca1-ins > span { display: inline-flex; align-items: center; padding: 7px 12px 7px 8px; border-radius: 10px; background: var(--a1-well); box-shadow: inset 0 0 0 1px var(--a1-line); font-size: 0.9063rem; color: var(--a1-mute); }
#oc-a-spot-line .oca1-ins > .oca1-ins__title, #oc-a-spot-line .oca1-ins > .oca1-ins__verdict { color: var(--a1-ink); font-weight: 600; }
#oc-a-spot-line .oca1-ins > .oca1-ins__verdict { border-radius: 999px; }
#oc-a-spot-line .oca1-ins b { margin-left: 6px; color: var(--a1-ink); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-legend { display: grid; gap: 8px 22px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin: 0; padding: 0; list-style: none; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-legend li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; font-size: 0.9063rem; line-height: 1.5; color: var(--a1-mute); }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-legend .oca1-n { margin: 1px 0 0; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-legend b { color: var(--a1-ink); }

@media (max-width: 720px) {
  :is(#oc-a-ladder, #oc-a-spot-line) .oca1-two { grid-template-columns: 1fr; }
  :is(#oc-a-ladder, #oc-a-spot-line) .oca1-facts > div { grid-template-columns: 1fr; }
  :is(#oc-a-ladder, #oc-a-spot-line) .oca1-panel__body { padding: 14px; }
  #oc-a-ladder .oca1-mx__t { min-width: 0; }
  #oc-a-ladder .oca1-mx__t th { padding: 8px 4px; font-size: 0.6875rem; letter-spacing: 0.04em; }
  #oc-a-ladder .oca1-mx__t td { padding: 8px 4px; }
  #oc-a-ladder .oca1-mx__k em { display: block; margin: 2px auto 0; width: fit-content; }
  #oc-a-ladder .oca1-mx__k b { margin-right: 0; display: block; }
  #oc-a-ladder .oca1-mx__bar label { padding: 0 12px; }
  #oc-a-ladder .oca1-win__seg em { font-size: 0.75rem; white-space: normal; text-align: center; line-height: 1.15; }
}
@media (prefers-reduced-motion: reduce) { #oc-a-ladder .oca1-mx__p { animation: none !important; } :is(#oc-a-ladder, #oc-a-spot-line) :is(.oca1-win__tip, label) { transition: none; } }

/* ── 10-hero.css ── */
/* The Start section's picture of the chain (option-chain-parts/hero.mjs): a capture of the real tool with five hover pins. */
.ocx-hero { --h-card: #0F0F0F; --h-head: #1A1A1A; --h-rule: #272727; --h-ink: #FAFAFA; --h-mute: #A3A3A3; --h-pin: #A50F66; --h-pin-text: #FC6AD0; --h-pin-ink: #FFFFFF; --h-edge: rgba(250, 250, 250, 0.09);
    margin: 28px 0 18px; overflow: hidden; border-radius: 18px; background: var(--h-card); color: var(--h-ink); box-shadow: 0 0 0 1px var(--h-edge), 0 18px 40px rgba(0, 0, 0, 0.32); }
:root[data-theme="light"] .ocx-hero { --h-card: #FFFFFF; --h-head: #F5F5F5; --h-rule: #E6E6E6; --h-ink: #0F0F0F; --h-mute: #5F5F5F; --h-pin: #A50F66; --h-pin-text: #A50F66; --h-pin-ink: #FFFFFF; --h-edge: rgba(15, 15, 15, 0.1); }

.ocx-hero__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; padding: 16px 22px; border-bottom: 1px solid var(--h-rule); background: var(--h-head); }
.ocx-hero__head b { font-size: 1.0625rem; font-weight: 700; }
.ocx-hero__hint { margin-left: auto; font-size: 0.8125rem; color: var(--h-mute); }
.ocx-hero__scroll { overflow-x: auto; padding: 14px; }
.ocx-shot { position: relative; min-width: 640px; aspect-ratio: var(--ar); }
.ocx-shot > img { display: block; width: 100%; height: auto; border-radius: 12px; }

/* each pin's target: an invisible box over the part of the picture the pin marks; it outlines when the pin is hovered or focused */
.ocx-tgt { position: absolute; border-radius: 10px; pointer-events: none; transition: box-shadow 0.2s, background-color 0.2s; }
.ocx-tgt:has(.ocx-pin:hover), .ocx-tgt:has(.ocx-pin:focus-visible) { box-shadow: 0 0 0 2px var(--h-pin), 0 0 0 7px color-mix(in srgb, var(--h-pin) 22%, transparent); background: color-mix(in srgb, var(--h-pin) 9%, transparent); }
.ocx-pin { position: absolute; z-index: 3; width: 28px; height: 28px; text-decoration: none; pointer-events: auto; }
.ocx-pin--tr { top: -14px; right: -14px; }
.ocx-pin--tl { top: -14px; left: -14px; }
.ocx-pin__k { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--h-pin); color: var(--h-pin-ink); font-size: 0.875rem; font-weight: 700; box-shadow: 0 0 0 4px color-mix(in srgb, var(--h-pin) 24%, transparent), 0 4px 10px rgba(0, 0, 0, 0.3); transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s; }
.ocx-pin:hover .ocx-pin__k, .ocx-pin:focus-visible .ocx-pin__k { transform: scale(1.14); box-shadow: 0 0 0 7px color-mix(in srgb, var(--h-pin) 30%, transparent), 0 6px 14px rgba(0, 0, 0, 0.3); }
.ocx-pin:focus-visible { outline: 2px solid var(--h-ink); outline-offset: 4px; border-radius: 50%; }
.ocx-pin__card { position: absolute; top: 36px; z-index: 6; display: grid; gap: 4px; width: 250px; padding: 12px 14px; border-radius: 12px; background: var(--h-head); color: var(--h-ink); text-align: left; font-size: 0.8125rem; line-height: 1.4; box-shadow: 0 0 0 1px var(--h-edge), 0 16px 34px rgba(0, 0, 0, 0.38);
    opacity: 0; transform: translateY(-4px); pointer-events: none; transition: opacity 0.2s, transform 0.2s; }
.ocx-pin--tr .ocx-pin__card { right: 0; }
.ocx-pin--tl .ocx-pin__card { left: 0; }
.ocx-pin__card em { font-style: normal; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--h-pin); }
.ocx-pin__card b { font-size: 0.9375rem; }
.ocx-pin__card span { color: var(--h-mute); }
.ocx-pin__card u { text-decoration: none; margin-top: 2px; padding-top: 6px; border-top: 1px solid var(--h-rule); font-size: 0.75rem; color: var(--h-ink); }
.ocx-pin__card u::before { content: "Marks: "; color: var(--h-mute); }
.ocx-pin__card i { margin-top: 2px; font-style: normal; font-weight: 700; color: var(--h-pin); }
.ocx-pin:hover .ocx-pin__card, .ocx-pin:focus-visible .ocx-pin__card { opacity: 1; transform: none; }
@media (prefers-reduced-motion: no-preference) {
    .ocx-pin__k { animation: ocx-ping 3.4s ease-out infinite; }
    .ocx-tgt--B .ocx-pin__k { animation-delay: 0.6s; } .ocx-tgt--C .ocx-pin__k { animation-delay: 1.2s; } .ocx-tgt--D .ocx-pin__k { animation-delay: 1.8s; } .ocx-tgt--E .ocx-pin__k { animation-delay: 2.4s; }
}
@keyframes ocx-ping { 0%, 70%, 100% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--h-pin) 24%, transparent), 0 4px 10px rgba(0, 0, 0, 0.3); } 85% { box-shadow: 0 0 0 10px color-mix(in srgb, var(--h-pin) 0%, transparent), 0 4px 10px rgba(0, 0, 0, 0.3); } }

.ocx-hero__cap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; padding: 4px 22px 18px; font-size: 0.9375rem; line-height: 1.5; color: var(--h-mute); }
.ocx-hero__swipe { display: none; font-weight: 700; color: var(--h-pin-text); }
@media (max-width: 760px) { .ocx-hero__swipe { display: inline; } .ocx-hero__hint { margin-left: 0; } }
@media (prefers-reduced-motion: reduce) { .ocx-pin__k, .ocx-pin__card, .ocx-tgt { transition: none; } }

/* the insurance counter: bars grow in, light up on hover, and say what they are */
.ocp1-cover__bar { position: relative; cursor: default; outline: none; transform-origin: bottom; transition: filter 0.2s, transform 0.25s cubic-bezier(0.16, 1, 0.3, 1); }
.ocp1-cover__bar:hover, .ocp1-cover__bar:focus-visible { filter: brightness(1.18) saturate(1.1); transform: scaleY(1.04); z-index: 3; }
.ocp1-cover__bar::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 10px); left: 50%; width: 170px; padding: 8px 10px; border-radius: 10px; background: var(--sahi-bg-1, #0F0F0F); color: var(--text-1); font-size: 0.75rem; font-style: normal; font-weight: 500; line-height: 1.35; text-align: left; box-shadow: 0 0 0 1px rgba(var(--ink-rgb), 0.16), 0 10px 24px rgba(0, 0, 0, 0.3); transform: translateX(-50%) translateY(4px); opacity: 0; pointer-events: none; transition: opacity 0.15s, transform 0.15s; z-index: 4; }
.ocp1-cover__bar:hover::after, .ocp1-cover__bar:focus-visible::after { opacity: 1; transform: translateX(-50%); }
.ocp1-cover__bars:first-child .ocp1-cover__bar:nth-child(-n+2)::after { left: 0; transform: translateY(4px); }
.ocp1-cover__bars:first-child .ocp1-cover__bar:nth-child(-n+2):hover::after { transform: none; }
.ocp1-cover__bars:last-child .ocp1-cover__bar:nth-last-child(-n+2)::after { left: auto; right: 0; transform: translateY(4px); }
.ocp1-cover__bars:last-child .ocp1-cover__bar:nth-last-child(-n+2):hover::after { transform: none; }
@media (prefers-reduced-motion: no-preference) {
    .ocp1-cover__bar { animation: ocx-grow 0.8s calc(var(--i, 0) * 70ms) cubic-bezier(0.16, 1, 0.3, 1) backwards; }
}
@keyframes ocx-grow { from { transform: scaleY(0); } }

.ocx-app td.strike-cell .ocx-pin { top: 50%; right: auto; left: 4px; margin-top: -13px; }
.ocx-app td.strike-cell .ocx-pin__card { left: 0; right: auto; top: 34px; }
.ocx-app .chain-leg-header .ocx-pin { top: 6px; right: 6px; }
.ocx-app .oc-spot-center .ocx-pin { top: -14px; right: -12px; }
/* pins in the lower half open their card upwards, so it stays inside the picture's frame */
.ocx-tgt--A .ocx-pin__card, .ocx-tgt--D .ocx-pin__card, .ocx-tgt--E .ocx-pin__card { top: auto; bottom: 36px; transform: translateY(4px); }
.ocx-tgt--A .ocx-pin:hover .ocx-pin__card, .ocx-tgt--D .ocx-pin:hover .ocx-pin__card, .ocx-tgt--E .ocx-pin:hover .ocx-pin__card,
.ocx-tgt--A .ocx-pin:focus-visible .ocx-pin__card, .ocx-tgt--D .ocx-pin:focus-visible .ocx-pin__card, .ocx-tgt--E .ocx-pin:focus-visible .ocx-pin__card { transform: none; }

/* smaller pins on the edge of what they mark, so they never sit on a figure; plum with a white letter in both themes */
.ocx-pin, .ocx-pin__k { width: 22px; height: 22px; }
.ocx-pin__k { font-size: 0.75rem; box-shadow: 0 0 0 3px color-mix(in srgb, var(--h-pin) 28%, transparent), 0 2px 6px rgba(0, 0, 0, 0.3); }
.ocx-pin--tr { top: -11px; right: -11px; }
.ocx-pin--r { top: 50%; right: -11px; margin-top: -11px; }
.ocx-pin--l { top: 50%; left: -11px; margin-top: -11px; }
.ocx-pin--r .ocx-pin__card { right: 0; } .ocx-pin--l .ocx-pin__card { left: 0; }
.ocx-pin__card em, .ocx-pin__card i { color: var(--h-pin-text); }
.ocx-pin__card { width: 270px; }
.ocx-pin__card b { white-space: normal; }
@media (prefers-reduced-motion: no-preference) { .ocx-pin__k { animation-iteration-count: 3; } }

/* scenes: the same figure frame as the Start picture, with every pin placed on a target edge, and a numbered legend under the picture */
.ocx-pin--tl { top: -11px; left: -11px; }
.ocx-pin--t { top: -11px; left: 50%; margin-left: -11px; }
.ocx-pin--b { bottom: -11px; left: 50%; margin-left: -11px; }
.ocx-pin--t .ocx-pin__card, .ocx-pin--b .ocx-pin__card { left: 50%; margin-left: -135px; }
.ocx-scene .ocx-pin { cursor: help; }
.ocx-scene .ocx-pin__card em { display: none; }
.ocx-legend { display: grid; gap: 8px 22px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin: 0; padding: 4px 22px 18px; list-style: none; }
.ocx-legend li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; font-size: 0.9063rem; line-height: 1.5; color: var(--h-mute); }
.ocx-legend i { display: grid; place-items: center; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: var(--h-pin); color: var(--h-pin-ink); font-size: 0.75rem; font-style: normal; font-weight: 700; }
.ocx-legend b { color: var(--h-ink); }

/* The numbered legend repeats what the hover cards say. Where there is a hover (a wide screen with a pointer) it is kept for screen readers only;
   on touch and on narrow screens, where a hover does not exist, it is shown. */
@media (hover: hover) and (min-width: 761px) {
    .ocx-scene .ocx-legend { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
}

/* The strip explained: the strip alone, a number to pick, then what it is, how it is made and when it shows */
.ocx-ax__body { padding: 14px 18px 18px; display: grid; gap: 14px; }
.ocx-ax .ocx-hero__scroll { padding: 28px 0 4px; }
.ocx-ax__r { position: absolute; width: 1px; height: 1px; margin: -1px; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); }
.ocx-ax__t { opacity: 0; transition: opacity 0.2s; box-shadow: 0 0 0 2px #A50F66, 0 0 0 6px rgba(165, 15, 102, 0.22); background: rgba(165, 15, 102, 0.1); }
.ocx-ax__t i { position: absolute; left: 50%; top: -22px; margin-left: -10px; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #A50F66; color: #FFFFFF; font-size: 0.75rem; font-style: normal; font-weight: 700; }
.ocx-ax__tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.ocx-ax__tab { display: inline-flex; align-items: center; gap: 8px; padding: 5px 12px 5px 6px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--h-rule); cursor: pointer; font-size: 0.8438rem; font-weight: 600; color: var(--h-mute); transition: box-shadow 0.2s, color 0.2s, background-color 0.2s; }
.ocx-ax__tab i { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(var(--ink-rgb), 0.12); color: var(--h-ink); font-size: 0.75rem; font-style: normal; font-weight: 700; }
.ocx-ax__tab:hover { color: var(--h-ink); }
.ocx-ax__p { display: none; padding: 14px 16px; border-radius: 14px; box-shadow: 0 0 0 1px var(--h-rule); animation: ocx-ax-in 0.35s cubic-bezier(0.16, 1, 0.3, 1); }
@keyframes ocx-ax-in { from { opacity: 0; transform: translateY(4px); } }
.ocx-ax__h { display: flex; align-items: center; gap: 10px; margin: 0 0 4px; font-size: 1.0625rem; color: var(--h-ink); }
.ocx-ax__h i { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--h-pin); color: var(--h-pin-ink); font-size: 0.8125rem; font-style: normal; font-weight: 700; }
.ocx-ax__say { margin: 0 0 10px; font-size: 0.9688rem; color: var(--h-mute); }
.ocx-ax__dl { display: grid; gap: 8px 22px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.ocx-ax__dl dt { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--h-mute); }
.ocx-ax__dl dd { margin: 3px 0 0; font-size: 0.9063rem; line-height: 1.5; color: var(--h-ink); }
@media (max-width: 760px) { .ocx-ax__dl { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .ocx-ax__p { animation: none; } .ocx-ax__t { transition: none; } }
.ocx-ax:has(#ocx-ax-1:checked) .ocx-ax__p[data-n="1"] { display: block; }
.ocx-ax:has(#ocx-ax-1:checked) .ocx-ax__t[data-n="1"] { opacity: 1; }
.ocx-ax:has(#ocx-ax-1:checked) label[for="ocx-ax-1"] { background: rgba(165, 15, 102, 0.14); box-shadow: inset 0 0 0 1px #A50F66; color: var(--h-ink); }
.ocx-ax:has(#ocx-ax-2:checked) .ocx-ax__p[data-n="2"] { display: block; }
.ocx-ax:has(#ocx-ax-2:checked) .ocx-ax__t[data-n="2"] { opacity: 1; }
.ocx-ax:has(#ocx-ax-2:checked) label[for="ocx-ax-2"] { background: rgba(165, 15, 102, 0.14); box-shadow: inset 0 0 0 1px #A50F66; color: var(--h-ink); }
.ocx-ax:has(#ocx-ax-3:checked) .ocx-ax__p[data-n="3"] { display: block; }
.ocx-ax:has(#ocx-ax-3:checked) .ocx-ax__t[data-n="3"] { opacity: 1; }
.ocx-ax:has(#ocx-ax-3:checked) label[for="ocx-ax-3"] { background: rgba(165, 15, 102, 0.14); box-shadow: inset 0 0 0 1px #A50F66; color: var(--h-ink); }
.ocx-ax:has(#ocx-ax-4:checked) .ocx-ax__p[data-n="4"] { display: block; }
.ocx-ax:has(#ocx-ax-4:checked) .ocx-ax__t[data-n="4"] { opacity: 1; }
.ocx-ax:has(#ocx-ax-4:checked) label[for="ocx-ax-4"] { background: rgba(165, 15, 102, 0.14); box-shadow: inset 0 0 0 1px #A50F66; color: var(--h-ink); }
.ocx-ax:has(#ocx-ax-5:checked) .ocx-ax__p[data-n="5"] { display: block; }
.ocx-ax:has(#ocx-ax-5:checked) .ocx-ax__t[data-n="5"] { opacity: 1; }
.ocx-ax:has(#ocx-ax-5:checked) label[for="ocx-ax-5"] { background: rgba(165, 15, 102, 0.14); box-shadow: inset 0 0 0 1px #A50F66; color: var(--h-ink); }
.ocx-ax:has(#ocx-ax-6:checked) .ocx-ax__p[data-n="6"] { display: block; }
.ocx-ax:has(#ocx-ax-6:checked) .ocx-ax__t[data-n="6"] { opacity: 1; }
.ocx-ax:has(#ocx-ax-6:checked) label[for="ocx-ax-6"] { background: rgba(165, 15, 102, 0.14); box-shadow: inset 0 0 0 1px #A50F66; color: var(--h-ink); }
.ocx-ax:has(#ocx-ax-7:checked) .ocx-ax__p[data-n="7"] { display: block; }
.ocx-ax:has(#ocx-ax-7:checked) .ocx-ax__t[data-n="7"] { opacity: 1; }
.ocx-ax:has(#ocx-ax-7:checked) label[for="ocx-ax-7"] { background: rgba(165, 15, 102, 0.14); box-shadow: inset 0 0 0 1px #A50F66; color: var(--h-ink); }
.ocx-ax:has(#ocx-ax-8:checked) .ocx-ax__p[data-n="8"] { display: block; }
.ocx-ax:has(#ocx-ax-8:checked) .ocx-ax__t[data-n="8"] { opacity: 1; }
.ocx-ax:has(#ocx-ax-8:checked) label[for="ocx-ax-8"] { background: rgba(165, 15, 102, 0.14); box-shadow: inset 0 0 0 1px #A50F66; color: var(--h-ink); }
.ocx-ax:has(.ocx-ax__r:focus-visible) .ocx-ax__tabs { outline: 2px solid var(--h-ink); outline-offset: 3px; border-radius: 12px; }

/* ── 11-a2-views-customise-expiry.css ── */
/* Option Chain guide, part A (second half): Simple and Advanced, Customise, expiry, data time, phone.
   Owns #oc-a-views, #oc-a-customise and #oc-a-expiry; every class is oca2-*. Replicas use the tool's own tokens in each theme
   (src/styles/sahi-colour-system.css), restated below as --oca2-*; everything else uses the page's tokens. */

:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) {
  --oca2-ink: #fafafa;
  --oca2-muted: #a3a3a3;
  --oca2-line: #404040;
  --oca2-line-strong: #535353;
  --oca2-raised: #242424;
  --oca2-card: #1a1a1a;
  --oca2-bg: #0f0f0f;
  --oca2-up: #28bcd0;          /* up: a dot, a ring, a track */
  --oca2-down: #ee807b;
  --oca2-up-ink: #28bcd0;      /* up: text */
  --oca2-down-ink: #ee807b;
  --oca2-warn: #c5aa84;
  --oca2-accent: #fafafa;
  --oca2-neutral-rgb: 250, 250, 250;   /* veils inside a replica of the tool */
  --oca2-wash: rgba(250, 250, 250, 0.04);
  --oca2-atm: rgba(250, 250, 250, 0.09);
  --oca2-pill-up: #14697a;     /* the move on the inverse (ink) spot pill */
  --oca2-spot-move: #14697a;   /* what that move is painted with today (the .oca2-up rule wins over the one above) */
  --oca2-bu-up: 40,188,208;
  --oca2-bu-down: 238, 128, 123;
  --oca2-dte-plain: #e6e6e6;
  --oca2-dte-plain-ink: #0f0f0f;
  --oca2-dte-soon-ink: #301C18;
  --oca2-ring-rgb: 10, 10, 10;         /* the ring round a numbered pin, and the fade at the end of a wide capture */
  --oca2-on-rgb: 40,188,208;         /* on / saved: a switch that is on (direction green) */
  --oca2-hl-rgb: 252, 106, 208;        /* the highlight (brand pink) */
  --oca2-x-opacity: 0.8;               /* a chip for a column the other view has */
  --oca2-sticky-head: var(--sahi-bg-1); /* the first header cell of the preset grid: opaque, the colour of the band over the card */
}
/* Light: the tool's light theme (sahi-colour-system.css :root[data-theme='light'], read from the light captures of the panel, the
   expiry capsule, the list and the clock): ink on white, hairlines #E6E6E6 and #D3D3D3, a raised card that is white, the
   attentive colour warm-600, the accent the capital purple. */
:root[data-theme="light"] :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) {
  --oca2-ink: #0F0F0F;
  --oca2-muted: #5F5F5F;
  --oca2-line: #E6E6E6;
  --oca2-line-strong: #D3D3D3;
  --oca2-raised: #FFFFFF;
  --oca2-card: #FFFFFF;
  --oca2-bg: #FFFFFF;
  --oca2-up: #2096A6;
  --oca2-down: #C4342E;
  --oca2-up-ink: #115B68;
  --oca2-down-ink: #AE2C27;
  --oca2-warn: #976448;
  --oca2-accent: #66033C;
  --oca2-neutral-rgb: 15, 15, 15;
  --oca2-wash: #F5F5F5;
  --oca2-atm: color-mix(in srgb, #AC7C54 12.5%, #F5F5F5);   /* the tool's ATM tint on its Strike column */
  --oca2-pill-up: #28BCD0;
  --oca2-spot-move: #28BCD0;
  --oca2-bu-up: 40,188,208;
  --oca2-bu-down: 227, 86, 80;
  --oca2-dte-plain: #272727;
  --oca2-dte-plain-ink: #FAFAFA;
  --oca2-dte-soon-ink: #F9F6F1;
  --oca2-ring-rgb: 255, 255, 255;
  --oca2-on-rgb: 17,91,104;
  --oca2-hl-rgb: 165, 15, 102;
  --oca2-sticky-head: color-mix(in srgb, #15020B 4.8%, #FFFFFF);
  --oca2-x-opacity: 1;
}

/* guide-ux.js reveals a whole section when 8% of it is on screen. A section taller than the viewport divided by 0.08
   (about 11,000 px on a desktop, 8,000 px on a phone) can never reach that, so it stayed at opacity 0 for ever. These three
   sections are long, so their own reveal is switched off; the blocks inside still fade in one by one (data-aos). */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry).ux-r:not(.ux-in) { opacity: 1 !important; transform: none !important; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ux-grow-x:not(.ux-in), :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ux-grow-y:not(.ux-in) { transform: none !important; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ux-draw:not(.ux-in) { stroke-dashoffset: 0 !important; stroke-dasharray: none !important; }

/* ── helpers ─────────────────────────────────────────────────────────────── */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-num { font-variant-numeric: tabular-nums; color: var(--text-1); font-weight: 700; white-space: nowrap; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-up { color: var(--toast-positive-text); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-down { color: var(--toast-negative-text); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-dim { color: var(--text-3); font-weight: 500; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-mono { font-variant-numeric: tabular-nums; color: var(--text-1); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) code { font-size: 0.96em; padding: 1px 6px; border-radius: 5px; background: rgba(var(--ink-rgb), 0.08); color: var(--text-1); overflow-wrap: anywhere; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-note { font-size: 0.9rem; color: var(--text-3); margin: -8px 0 24px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) h3 { margin: 56px 0 14px; scroll-margin-top: 72px; font-size: 1.4rem; line-height: 1.3; font-weight: 700; color: var(--text-1); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) h3 + p { margin-top: 0; }

/* badges */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-badge { display: inline-flex; align-items: center; width: fit-content; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--border-soft); background: rgba(var(--ink-rgb), 0.05); color: var(--text-2); font-size: 0.82rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-badge--adv { border-color: rgba(var(--oca2-on-rgb), 0.5); color: var(--toast-positive-text); background: rgba(var(--oca2-on-rgb), 0.08); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-badge--sim { border-color: rgba(var(--ink-rgb), 0.28); color: var(--text-1); }

/* comparison tables that stack into labelled cards on a phone */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp-wrap { margin: 22px 0; border: 1px solid var(--border-soft); border-radius: 16px; background: var(--surface); overflow: hidden; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp { width: 100%; border-collapse: collapse; font-size: 0.95rem; font-variant-numeric: tabular-nums; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp thead th { padding: 12px 18px; text-align: left; font-size: 0.82rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); background: rgba(var(--shade-ch), calc(0.28 * var(--k-band))); border-bottom: 1px solid var(--border-soft); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody th, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody td { padding: 13px 18px; text-align: left; vertical-align: top; line-height: 1.5; color: var(--text-2); border-top: 1px solid rgba(var(--ink-rgb), 0.06); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody tr:first-child th, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody tr:first-child td { border-top: 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody th { width: 24%; color: var(--text-1); font-weight: 600; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-th { display: flex; align-items: flex-start; gap: 10px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-th .oca2-n { margin: 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-th > span:last-child { padding-top: 2px; min-width: 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp td:nth-child(3):last-child, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp thead th:nth-child(3):last-child { background-image: linear-gradient(rgba(var(--oca2-on-rgb), 0.045), rgba(var(--oca2-on-rgb), 0.045)); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp td:nth-child(3):last-child { background-clip: padding-box; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-straddle-tbl .oca2-cmp tbody th { width: 28%; white-space: nowrap; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-display-tbl .oca2-cmp tbody th { width: 30%; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-display-tbl .oca2-cmp td:nth-child(2) { width: 9%; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-display-tbl .oca2-cmp td:nth-child(4) { width: 15%; white-space: nowrap; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-remember .oca2-cmp tbody th { width: 34%; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-expiry-tbl .oca2-cmp tbody th { white-space: nowrap; width: 17%; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-oi-other .oca2-cmp tbody th { width: 40%; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-key-code { white-space: nowrap; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-saved { display: inline-block; padding: 2px 9px; border-radius: 999px; background: rgba(var(--oca2-on-rgb), 0.1); color: var(--toast-positive-text); font-size: 0.85rem; font-weight: 700; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-sw { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 0.85rem; font-weight: 700; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-sw--on { background: rgba(var(--oca2-on-rgb), 0.12); color: var(--toast-positive-text); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-sw--off { background: rgba(var(--ink-rgb), 0.07); color: var(--text-3); }

@media (max-width: 720px) {
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp thead { display: none; }
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tr, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp th, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp td { display: block; width: auto; }
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody tr { padding: 14px 16px; border-top: 1px solid rgba(var(--ink-rgb), 0.08); }
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody tr:first-child { border-top: 0; }
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody th, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody tr:first-child th { width: auto !important; padding: 0 0 8px; border: 0; white-space: normal !important; }
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody td, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody tr:first-child td { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 10px; padding: 5px 0; border: 0; width: auto !important; white-space: normal !important; background: none !important; }
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody td::before { content: attr(data-label); padding-top: 3px; font-size: 0.82rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
}
/* ── expiry ────────────────────────────────────────────────────────────── */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-dte { display: inline-block; padding: 3px 11px; border-radius: 999px; font-size: 0.85rem; font-weight: 800; letter-spacing: 0.02em; white-space: nowrap; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-dte--plain { background: var(--oca2-dte-plain); color: var(--oca2-dte-plain-ink); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-dte--soon { background: var(--oca2-warn); color: var(--oca2-dte-soon-ink); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-dte--today { background: #c4342e; color: #fff; letter-spacing: 0.05em; }

/* ── the market clock, drawn ───────────────────────────────────────────── */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk { position: relative; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; border: 1px solid var(--oca2-line); border-radius: 999px; background: var(--oca2-card); color: var(--oca2-ink); font-family: var(--font-sans); white-space: nowrap; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk__ring { position: absolute; left: -1px; top: -1px; width: calc(100% + 2px); height: calc(100% + 2px); overflow: visible; pointer-events: none; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk__ring rect { fill: none; stroke-width: 2; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk__ring .trk { stroke: var(--oca2-line); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk__ring .arc { stroke: var(--ring, var(--oca2-line-strong)); stroke-linecap: butt; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk.is-open, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk.is-open { --ring: var(--oca2-up); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk.is-cas, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk.is-fo, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk.is-connecting, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk.is-cas, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk.is-fo { --ring: var(--oca2-warn); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk.is-offline { --ring: var(--oca2-down); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk.is-fallback { --ring: var(--oca2-accent); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk__t { position: relative; z-index: 1; font-size: 16px; font-weight: 600; line-height: 1; letter-spacing: -0.006em; font-variant-numeric: tabular-nums; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk__t .s { }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk__t em { font-style: normal; font-size: 13px; font-weight: 700; letter-spacing: 0.05em; margin-left: 5px; color: var(--oca2-muted); }


:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk { --ring: var(--oca2-line-strong); display: grid; gap: 17px; width: min(384px, 100%); box-sizing: border-box; padding: 0 19px 19px; border: 1px solid var(--oca2-line-strong); border-radius: 14px; background: var(--oca2-raised); color: var(--oca2-ink); font-family: var(--font-sans); font-size: 14.4px; line-height: 1.4; text-align: left; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__hd { display: flex; align-items: center; justify-content: space-between; min-height: 50px; margin-right: -9px; color: var(--oca2-muted); font-size: 13.2px; font-weight: 600; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__hd i { display: grid; place-items: center; width: 40px; height: 40px; font-style: normal; font-size: 22px; font-weight: 300; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__st { display: flex; align-items: center; gap: 10px; margin-top: -8px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__st strong { font-weight: 600; color: var(--oca2-ink); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__st small { margin-left: auto; color: var(--oca2-muted); font-size: 13.2px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--oca2-line-strong); flex: none; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk.is-open .oca2-card-clk__dot { background: var(--oca2-up); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk.is-cas .oca2-card-clk__dot, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk.is-fo .oca2-card-clk__dot, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk.is-pre .oca2-card-clk__dot { background: var(--oca2-warn); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk.is-closed .oca2-card-clk__dot { background: none; border: 2px solid var(--oca2-line-strong); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__cd { display: grid; gap: 4px; margin-top: -4px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__cd strong { font-size: 26.4px; line-height: 1.25; font-weight: 600; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__cd span { color: var(--oca2-muted); font-size: 13.2px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__ss { display: grid; gap: 10px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__pr { display: flex; justify-content: space-between; color: var(--oca2-muted); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__pr b, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__hr b, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__fx b { font-weight: 600; color: var(--oca2-ink); font-variant-numeric: tabular-nums; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__trk { display: block; position: relative; height: 5px; overflow: hidden; border-radius: 999px; background: var(--oca2-line); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__trk span { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: var(--oca2-line-strong); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk.is-open .oca2-card-clk__trk span { background: var(--oca2-up); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk.is-cas .oca2-card-clk__trk span, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk.is-fo .oca2-card-clk__trk span { background: var(--oca2-warn); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__hr { display: flex; justify-content: space-between; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__hr span { display: grid; gap: 2px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__hr span:last-child { text-align: right; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk small { color: var(--oca2-muted); font-size: 13.2px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__fx { display: grid; gap: 10px; padding-top: 14px; border-top: 1px solid var(--oca2-line); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk__fx span { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card-clk p { margin: 0; color: var(--oca2-muted); font-size: 13.2px; line-height: 1.5; }

/* five phases, four feed states */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-feeds { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 14px; margin: 22px 0 24px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-feed { display: grid; justify-items: start; align-content: start; gap: 8px; padding: 16px; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--surface); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-feed strong { font-size: 1.05rem; color: var(--text-1); margin-top: 4px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-feed small { font-size: 0.82rem; font-weight: 700; letter-spacing: 0.04em; color: var(--text-3); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-feed span:last-child { font-size: 0.92rem; line-height: 1.45; color: var(--text-2); }

/* the clock: the legend on the left, the chip with its card hanging under it on the right (the card opens end-aligned under the chip) */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clock { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 384px); gap: 24px 36px; align-items: start; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clock__txt { align-self: center; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clock__txt .oca2-legend { margin: 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clock__stack { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; justify-items: end; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clock__chip { display: flex; align-items: center; gap: 12px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clock__pin .oca2-n { margin: 0; }
@media (max-width: 800px) { :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clock { grid-template-columns: minmax(0, 1fr); } :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clock__stack { order: -1; justify-items: center; } }

/* the five phases as a table */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-phase-tbl .oca2-cmp tbody th { width: 25%; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-sub { display: block; margin-top: 2px; font-size: 0.85rem; font-weight: 500; color: var(--text-3); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-th strong { display: block; color: var(--text-1); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-chipcell { display: grid; gap: 7px; justify-items: start; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-chipcell small { font-size: 0.82rem; color: var(--text-3); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-sdot { display: inline-block; width: 10px; height: 10px; margin-right: 9px; border-radius: 50%; background: var(--oca2-line-strong); vertical-align: baseline; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-sdot--open { background: var(--oca2-up); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-sdot--warn { background: var(--oca2-warn); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-sdot--closed { background: none; border: 2px solid var(--oca2-line-strong); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-phase-tbl .oca2-cmp td:nth-child(2) { width: 26%; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-phase-tbl .oca2-cmp td:nth-child(3) { width: 24%; }

/* ── 11-index.css ── */
/* The Cell Index: a calm control bar, then cards in one even grid (option-chain.mjs: idxCard / idxGroup). Palette tokens only. */

/* ── the bar: one segmented filter, one quiet row of jump links, one disclosure ── */
#oc-index .ocp1-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; margin: 22px 0 6px; }
#oc-index .ocp1-filter { display: inline-flex; flex-wrap: nowrap; gap: 2px; padding: 4px; border: 0; border-radius: 999px; background: rgba(var(--ink-rgb), 0.06); }
#oc-index .ocp1-filter label { min-height: 38px; padding: 0 16px; border: 0; background: transparent; border-radius: 999px; font-size: 0.9375rem; transition: background-color 0.2s, color 0.2s; }
#oc-index .ocp1-filter label:hover { background: rgba(var(--ink-rgb), 0.06); border: 0; }
#oc-index input.ocp1-f:checked + label { color: var(--on-accent, #FFFFFF); background: var(--ocp1-pink-fill, #A50F66); border: 0; }
/* The chosen filter's count reads in the label's own white ink on a light tint of its fill: the pink fill is half-transparent in dark, so pink text on a white chip fell to 2.7:1. */
#oc-index input.ocp1-f:checked + label i { color: inherit; background: color-mix(in srgb, currentColor 16%, transparent); }
#oc-index .ocp1-jump { gap: 4px 6px; margin: 0; }
#oc-index .ocp1-jump > span { display: none; }
#oc-index .ocp1-jump a { min-height: 32px; padding: 0 10px 0 4px; border: 0; background: transparent; border-radius: 999px; font-size: 0.875rem; font-weight: 600; color: var(--text-2); transition: background-color 0.2s, color 0.2s; }
#oc-index .ocp1-jump a:hover { background: rgba(var(--ink-rgb), 0.06); color: var(--text-1); }
#oc-index .ocp1-jump a b { width: 22px; height: 22px; font-size: 0.75rem; }
#oc-index .ocp1-jump a i { font-size: 0.75rem; opacity: 0.7; }

.oci-help { margin: 0 0 22px; font-size: 0.875rem; color: var(--text-3); }
.oci-help summary { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-weight: 600; color: var(--text-3); list-style: none; }
.oci-help summary::-webkit-details-marker { display: none; }
.oci-help summary::before { content: "i"; display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid currentColor; font-size: 0.6875rem; font-style: italic; font-weight: 700; }
.oci-help summary:hover { color: var(--text-1); }
.oci-help p { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; margin: 12px 0 0; }
.oci-help p > span { display: inline-flex; align-items: center; gap: 8px; }
.oci-help .ocp1-cell__part { display: inline-grid; place-items: center; width: 22px; height: 22px; font-style: normal; }

/* ── a group: a heading line, then its cards ── */
.oci-g { --oci-card: #1A1A1A; --oci-well: #0F0F0F; --oci-line: #272727; margin-top: 34px; }
:root[data-theme="light"] .oci-g { --oci-card: #FFFFFF; --oci-well: #F5F5F5; --oci-line: #E6E6E6; }
.oci-gh { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--oci-line); }
.oci-gh .ocp1-group__k { flex: none; }
.oci-gh h3 { margin: 0; font-size: 1.25rem; }
.oci-gh__b { flex: 1 1 260px; font-size: 0.9375rem; color: var(--text-3); }
.oci-gh .ocp1-group__n { margin-left: auto; }

.oci-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.oci-card { display: flex; margin: 0; }
.oci-card__a { display: flex; flex-direction: column; gap: 6px; width: 100%; padding: 12px 12px 14px; border-radius: 16px; background: var(--oci-card); box-shadow: 0 0 0 1px var(--oci-line); color: var(--text-2); text-decoration: none; transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s, background-color 0.3s; }
.oci-card__a:hover, .oci-card__a:focus-visible { transform: translateY(-3px); box-shadow: 0 0 0 1px var(--ocp1-pink-fill, #A50F66), 0 14px 28px rgba(0, 0, 0, 0.18); }
.oci-card__a:focus-visible { outline: 2px solid var(--text-1); outline-offset: 3px; }

/* the picture box is the same size on every card; the cell inside is scaled to sit in it */
.oci-card__pic { display: flex; align-items: center; justify-content: center; gap: 6px; height: 132px; margin-bottom: 4px; overflow: hidden; border-radius: 10px; background: transparent; }
.oci-card__pic, .oci-card__pic * { text-decoration: none !important; }
.oci-card__pic .ocs-spec { margin: 0; box-shadow: 0 0 0 1px var(--oci-line); transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); }
.oci-card__a:hover .oci-card__pic .ocs-spec { transform: scale(1.05); }
.oci-card .ocs-spec:not(.ocs-spec--rich):not(.ocs-spec--strike):not(.ocs-spec--list) { zoom: 0.82; }
.oci-card .ocs-spec--rich { zoom: 0.78; }
.oci-card .ocs-spec--strike { zoom: 0.62; }
.oci-card .ocs-spec--list { zoom: 0.7; }

.oci-card__top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.oci-card__name { font-size: 1.0625rem; font-weight: 700; color: var(--text-1); }
.oci-card__what { font-size: 0.9375rem; line-height: 1.45; color: var(--text-2); }
.oci-card__note { font-size: 0.8125rem; line-height: 1.4; color: var(--text-3); }
.oci-card__go { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 8px; font-size: 0.875rem; font-weight: 600; color: var(--sahi-cyan); }
.oci-card__go > span:nth-child(2) { flex: 1; }
.oci-card__a:hover .oci-card__go > span:last-child { transform: translateX(3px); }
.oci-card__go > span:last-child { transition: transform 0.2s; }
@media (prefers-reduced-motion: reduce) { .oci-card__a, .oci-card__pic .ocs-spec, .oci-card__go > span:last-child { transition: none; } .oci-card__a:hover { transform: none; } }

/* the view filter */
#oc-index:has(#ocp1-f-s:checked) .oci-card:not([data-v~="s"]),
#oc-index:has(#ocp1-f-a:checked) .oci-card:not([data-v~="a"]) { display: none; }
#oc-index:has(#ocp1-f-s:checked) .oci-g:not(:has(.oci-card[data-v~="s"])),
#oc-index:has(#ocp1-f-a:checked) .oci-g:not(:has(.oci-card[data-v~="a"])) { display: none; }
.oci-card__a, .oci-card__a * { text-decoration: none !important; }
.oci-card__a:hover .oci-card__name { text-decoration: underline !important; text-underline-offset: 3px; }

/* the cell in a card keeps its own fill (so it reads as a cell), with a hairline border and no shadow; the box around it has no fill */
.oci-card__pic .ocs-spec { background: var(--ocs-body); box-shadow: 0 0 0 1px var(--oci-line); }
.oci-card__a:hover .oci-card__pic .ocs-spec { box-shadow: 0 0 0 1px var(--ocp1-pink-fill, #A50F66); }

/* the bar and build-up cells are big: they get the width of two cards, and their picture is drawn larger */
.oci-g { container-type: inline-size; }
.oci-grid { grid-auto-flow: dense; }
.oci-card--wide { grid-column: span 2; }
.oci-card--wide .ocs-spec--rich:not(.ocs-spec--build) { zoom: 1; }
@container (max-width: 500px) { .oci-card--wide { grid-column: auto; } .oci-card--wide .ocs-spec--rich { zoom: 0.78; } }

/* wide cards: the real bar cell, drawn large across two cards' width */
.oci-card--wide .oci-card__pic { padding: 0 14px; }
.oci-card:not(.oci-card--build).oci-card--wide .oci-card__pic { height: 176px; }
.oci-card--wide .ocs-spec--rich:not(.ocs-spec--build) { zoom: 1.6; }
@container (max-width: 500px) { .oci-card--wide .ocs-spec--rich:not(.ocs-spec--build) { zoom: 1.1; } .oci-card:not(.oci-card--build).oci-card--wide .oci-card__pic { height: 132px; } }

/* the Build-up card takes the whole row: four pattern buttons, then the chosen pattern in the 1D, 15m and 5m windows, with its theory in one line */
.oci-card--build { grid-column: 1 / -1; }
.oci-bx { display: grid; gap: 12px; padding: 18px 20px; cursor: default; }
.oci-bx__r { position: absolute; width: 1px; height: 1px; margin: -1px; opacity: 0; overflow: hidden; clip: rect(0 0 0 0); }
.oci-bx .oci-card__top { display: grid; gap: 4px; justify-content: stretch; }
.oci-bx__sub { font-size: 0.9375rem; line-height: 1.45; color: var(--text-2); }
.oci-bx__bar { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px; border-radius: 16px; background: rgba(var(--ink-rgb), 0.06); }
.oci-bx__tab { flex: 1 1 150px; display: grid; gap: 1px; padding: 9px 14px; border-radius: 12px; cursor: pointer; text-align: left; color: var(--text-2); transition: background-color 0.2s, color 0.2s; }
.oci-bx__tab b { font-size: 0.9688rem; font-weight: 700; color: var(--text-1); }
.oci-bx__tab span { font-size: 0.8125rem; color: var(--text-3); }
.oci-bx__tab:hover { background: rgba(var(--ink-rgb), 0.06); }
.oci-bx__panel { display: none; animation: oci-in 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
@keyframes oci-in { from { opacity: 0; transform: translateY(5px); } }
.oci-bx__panel .oci-card__pic--build { height: auto; padding: 14px; gap: 14px; overflow: visible; margin: 0 0 10px; }
.oci-bx__theory { margin: 0; font-size: 0.9688rem; line-height: 1.5; color: var(--text-2); }
.oci-bx__theory strong { color: var(--text-1); }
.oci-card--build .ocs-spec--build { zoom: 1.08; flex: 1 1 0; width: auto; min-width: 0; max-width: 260px; }
.oci-bx__go { justify-self: start; padding-top: 2px; text-decoration: none; }
.oci-bx__go:hover { text-decoration: underline !important; }
.oci-bx:has(#oci-bx-LONG_BUILD:checked) .oci-bx__panel[data-p="LONG_BUILD"], .oci-bx:has(#oci-bx-SHORT_BUILD:checked) .oci-bx__panel[data-p="SHORT_BUILD"],
.oci-bx:has(#oci-bx-SHORT_COVER:checked) .oci-bx__panel[data-p="SHORT_COVER"], .oci-bx:has(#oci-bx-LONG_UNWIND:checked) .oci-bx__panel[data-p="LONG_UNWIND"] { display: block; }
.oci-bx:has(#oci-bx-LONG_BUILD:checked) label[for="oci-bx-LONG_BUILD"], .oci-bx:has(#oci-bx-SHORT_BUILD:checked) label[for="oci-bx-SHORT_BUILD"],
.oci-bx:has(#oci-bx-SHORT_COVER:checked) label[for="oci-bx-SHORT_COVER"], .oci-bx:has(#oci-bx-LONG_UNWIND:checked) label[for="oci-bx-LONG_UNWIND"] { background: var(--ocp1-pink-fill, #A50F66); }
.oci-bx:has(#oci-bx-LONG_BUILD:checked) label[for="oci-bx-LONG_BUILD"] *, .oci-bx:has(#oci-bx-SHORT_BUILD:checked) label[for="oci-bx-SHORT_BUILD"] *,
.oci-bx:has(#oci-bx-SHORT_COVER:checked) label[for="oci-bx-SHORT_COVER"] *, .oci-bx:has(#oci-bx-LONG_UNWIND:checked) label[for="oci-bx-LONG_UNWIND"] * { color: var(--on-accent, #FFFFFF); }
.oci-bx:has(.oci-bx__r:focus-visible) .oci-bx__bar { outline: 2px solid var(--text-1); outline-offset: 2px; }
.oci-ar { font-style: normal; font-weight: 700; } .oci-ar--up { color: #14697A; } .oci-ar--down { color: #C4342E; }
:root:not([data-theme="light"]) .oci-ar--up { color: #28BCD0; } :root:not([data-theme="light"]) .oci-ar--down { color: #EE807B; }
@container (max-width: 700px) { .oci-card--build .ocs-spec--build { zoom: 0.62; } .oci-bx { padding: 12px 12px 14px; } .oci-bx__tab { flex-basis: 45%; } }
@media (prefers-reduced-motion: reduce) { .oci-bx__panel { animation: none; } }

/* the three-way filter stays in view for the whole Cell Index, just under the page header: a hairline capsule, nothing else */
#oc-index .ocp1-jump { margin: 18px 0 14px; }
#oc-index .ocp1-bar { position: sticky; top: 88px; z-index: 30; display: flex; justify-content: flex-start; margin: 0 0 8px; padding: 0; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; pointer-events: none; }
#oc-index .ocp1-filter { pointer-events: auto; padding: 3px; border: 1px solid var(--oci-line, rgba(var(--ink-rgb), 0.16)); border-radius: 999px; background: var(--sahi-bg-1, #0F0F0F); box-shadow: 0 6px 18px rgba(0, 0, 0, 0.16); }
#oc-index .ocp1-filter label { min-height: 34px; padding: 0 14px; font-size: 0.875rem; }
.oci-g { scroll-margin-top: 150px; }
@media (max-width: 768px) { #oc-index .ocp1-bar { top: 80px; } #oc-index .ocp1-filter label { min-height: 32px; padding: 0 11px; } }

/* purple is for buttons and numbers only: the selected filter, the part letters and links. Everything that states a fact uses neutral lines; build-ups use the bullish and bearish colours */
.oci-card__a:hover, .oci-card__a:focus-visible { box-shadow: 0 0 0 1px var(--text-3), 0 14px 28px rgba(0, 0, 0, 0.18); }
.oci-card__a:hover .oci-card__pic .ocs-spec { box-shadow: 0 0 0 1px var(--text-3); }
.oci-card .ocp1-badge, .oci-card .ocp1-badge--s, .oci-card .ocp1-badge--a { color: var(--text-2); background: transparent; border: 1px solid var(--oci-line, rgba(var(--ink-rgb), 0.2)); }
.oci-bx__tab { border: 1px solid transparent; }
.oci-bx { --bx-up: #14697A; --bx-up-fill: rgba(20,105,122, 0.1); --bx-down: #C4342E; --bx-down-fill: rgba(196, 52, 46, 0.1); }
:root:not([data-theme="light"]) .oci-bx { --bx-up: #28BCD0; --bx-up-fill: rgba(40,188,208, 0.12); --bx-down: #EE807B; --bx-down-fill: rgba(238, 128, 123, 0.12); }
.oci-bx__tab[for$="LONG_BUILD"], .oci-bx__tab[for$="SHORT_COVER"] { --bx: var(--bx-up); --bx-fill: var(--bx-up-fill); }
.oci-bx__tab[for$="SHORT_BUILD"], .oci-bx__tab[for$="LONG_UNWIND"] { --bx: var(--bx-down); --bx-fill: var(--bx-down-fill); }
.oci-bx:has(#oci-bx-LONG_BUILD:checked) label[for="oci-bx-LONG_BUILD"], .oci-bx:has(#oci-bx-SHORT_BUILD:checked) label[for="oci-bx-SHORT_BUILD"],
.oci-bx:has(#oci-bx-SHORT_COVER:checked) label[for="oci-bx-SHORT_COVER"], .oci-bx:has(#oci-bx-LONG_UNWIND:checked) label[for="oci-bx-LONG_UNWIND"] { background: var(--bx-fill); border-color: var(--bx); }
.oci-bx:has(#oci-bx-LONG_BUILD:checked) label[for="oci-bx-LONG_BUILD"] b, .oci-bx:has(#oci-bx-SHORT_BUILD:checked) label[for="oci-bx-SHORT_BUILD"] b,
.oci-bx:has(#oci-bx-SHORT_COVER:checked) label[for="oci-bx-SHORT_COVER"] b, .oci-bx:has(#oci-bx-LONG_UNWIND:checked) label[for="oci-bx-LONG_UNWIND"] b { color: color-mix(in srgb, var(--bx) 70%, var(--text-1)); }
.oci-bx:has(#oci-bx-LONG_BUILD:checked) label[for="oci-bx-LONG_BUILD"] *, .oci-bx:has(#oci-bx-SHORT_BUILD:checked) label[for="oci-bx-SHORT_BUILD"] *,
.oci-bx:has(#oci-bx-SHORT_COVER:checked) label[for="oci-bx-SHORT_COVER"] *, .oci-bx:has(#oci-bx-LONG_UNWIND:checked) label[for="oci-bx-LONG_UNWIND"] * { color: revert-layer; }
.oci-bx:has(#oci-bx-LONG_BUILD:checked) label[for="oci-bx-LONG_BUILD"] span, .oci-bx:has(#oci-bx-SHORT_BUILD:checked) label[for="oci-bx-SHORT_BUILD"] span,
.oci-bx:has(#oci-bx-SHORT_COVER:checked) label[for="oci-bx-SHORT_COVER"] span, .oci-bx:has(#oci-bx-LONG_UNWIND:checked) label[for="oci-bx-LONG_UNWIND"] span { color: var(--text-2); }
.oci-bx__tab[for$="LONG_BUILD"] b, .oci-bx__tab[for$="SHORT_COVER"] b { color: var(--bx-up); }
.oci-bx__tab[for$="SHORT_BUILD"] b, .oci-bx__tab[for$="LONG_UNWIND"] b { color: color-mix(in srgb, var(--bx-down) 70%, var(--text-1)); }
.oci-bx__theory strong { color: var(--text-1); }

#oc-index .ocp1-filter label { white-space: nowrap; }
@media (max-width: 520px) { .oci-vw { display: none; } }

/* link colour: the plum link token in both themes; green stays for bullish figures only */
.oci-card { --oci-link: #A50F66; }
:root:not([data-theme="light"]) .oci-card { --oci-link: #FC6AD0; }
.oci-card__go { color: var(--oci-link); }
.oci-card__a:focus-visible, .oci-card__a { scroll-margin-top: 150px; }
#oc-index input.ocp1-f:focus-visible + label, .oci-help summary:focus-visible, .oci-bx__tab:focus-visible { outline: 2px solid var(--text-1); outline-offset: 2px; }
.oci-bx__set { margin: 0; padding: 0; border: 0; min-width: 0; display: grid; gap: 8px; }
.oci-bx__mock { margin: 0 0 8px; font-size: 0.8438rem; line-height: 1.45; color: var(--text-3); }
.oci-bx__panel .oci-card__pic--build { margin-top: 0; }
/* a Strike card is wide: the two cells read at the same size as the neighbours */
.oci-card--wide .ocs-spec--strike { zoom: 1; }
.oci-card:not(.oci-card--build).oci-card--wide:has(.ocs-spec--strike) .oci-card__pic { height: 150px; }

/* ── 12-part-intro.css ── */
/* The introduction at the top of a Part: what the subject is, and what the Part will cover. */
.ocx-intro { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 26px 34px; align-items: start; margin: 8px 0 34px; padding: 22px 24px; border-radius: 18px; background: var(--oci-card, rgba(var(--ink-rgb), 0.03)); box-shadow: 0 0 0 1px var(--oci-line, rgba(var(--ink-rgb), 0.12)); }
:root:not([data-theme="light"]) .ocx-intro { --oci-card: #1A1A1A; --oci-line: #272727; }
:root[data-theme="light"] .ocx-intro { --oci-card: #FFFFFF; --oci-line: #E6E6E6; }
.ocx-intro__h { margin: 0 0 10px; font-size: 1.1875rem; font-weight: 700; color: var(--text-1); }
.ocx-intro__text p { margin: 0 0 12px; font-size: 1rem; line-height: 1.65; color: var(--text-2); }
.ocx-intro__text p:last-child { margin-bottom: 0; }
.ocx-intro__text strong { color: var(--text-1); }
.ocx-intro__list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; counter-reset: ocx; }
.ocx-intro__list li { counter-increment: ocx; }
.ocx-intro__list a { display: grid; grid-template-columns: 28px 1fr; grid-template-rows: auto auto; column-gap: 12px; padding: 10px 14px; border-radius: 12px; text-decoration: none; box-shadow: 0 0 0 1px var(--oci-line); transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s; }
.ocx-intro__list a::before { content: counter(ocx); grid-row: 1 / span 2; align-self: center; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--ocp1-pink-fill, #A50F66); color: var(--on-accent, #FFFFFF); font-size: 0.8125rem; font-weight: 700; }
.ocx-intro__list b { font-size: 0.9688rem; color: var(--text-1); }
.ocx-intro__list span { font-size: 0.8438rem; color: var(--text-3); }
.ocx-intro__list a:hover, .ocx-intro__list a:focus-visible { transform: translateY(-2px); box-shadow: 0 0 0 1px var(--text-3); }
.ocx-intro__list a:focus-visible { outline: 2px solid var(--text-1); outline-offset: 2px; }
@media (max-width: 860px) { .ocx-intro { grid-template-columns: 1fr; padding: 16px; } }
@media (prefers-reduced-motion: reduce) { .ocx-intro__list a { transition: none; } .ocx-intro__list a:hover { transform: none; } }

/* Part A's opener shows one Strike cell, large, instead of two small ones */
.ocp1-part__thumbs--solo .ocs-spec--strike { zoom: 1.3; box-shadow: 0 0 0 1px var(--ocs-edge); }

/* the map under the introduction: a light drawn table; each topic outlines its own part on hover or focus */
.ocx-intro__fig { grid-column: 1 / -1; margin-top: 4px; }
.ocx-wf { display: grid; gap: 6px; padding: 14px; border-radius: 14px; box-shadow: 0 0 0 1px var(--oci-line); font-size: 0.75rem; color: var(--text-3); }
.ocx-wf > *, .ocx-wf__rows > .ocx-wf__spot { transition: box-shadow 0.2s, background-color 0.2s; border-radius: 10px; }
.ocx-wf__top { display: flex; justify-content: center; align-items: center; gap: 10px; padding: 6px; }
.ocx-wf__cap, .ocx-wf__exp { padding: 4px 14px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--oci-line); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-2); }
.ocx-wf__head { display: grid; grid-template-columns: 1fr 1.6fr 0.9fr 1fr 0.9fr 1.6fr 1fr; gap: 6px; padding: 8px 6px; text-align: center; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
.ocx-wf__rows { display: grid; gap: 4px; padding: 6px; border-radius: 10px; }
.ocx-wf__row { display: grid; grid-template-columns: 1fr 1.6fr 0.9fr 1fr 0.9fr 1.6fr 1fr; gap: 6px; align-items: center; }
.ocx-wf__cell { height: 14px; border-radius: 6px; background: rgba(var(--ink-rgb), 0.08); }
.ocx-wf__k { height: 14px; border-radius: 6px; background: rgba(var(--ink-rgb), 0.16); }
.ocx-wf__bar { height: 14px; border-radius: 7px; background: rgba(var(--ink-rgb), 0.06); overflow: hidden; }
.ocx-wf__bar i { display: block; height: 100%; border-radius: 7px; background: rgba(var(--ink-rgb), 0.22); }
.ocx-wf__spot { display: flex; justify-content: center; align-items: center; gap: 14px; padding: 5px 10px; margin: 2px 0; border-top: 1px dashed var(--oci-line); border-bottom: 1px dashed var(--oci-line); }
.ocx-wf__spot b { padding: 2px 14px; border-radius: 999px; background: var(--text-1); color: var(--sahi-bg-1, #0F0F0F); font-size: 0.8125rem; }
.ocx-intro:has(.ocx-intro__list li:nth-child(4):is(:hover, :focus-within)) .ocx-wf__rows,
.ocx-intro:has(.ocx-intro__list li:nth-child(5):is(:hover, :focus-within)) .ocx-wf__spot,
.ocx-intro:has(.ocx-intro__list li:nth-child(1):is(:hover, :focus-within)) .ocx-wf__sw,
.ocx-intro:has(.ocx-intro__list li:nth-child(3):is(:hover, :focus-within)) .ocx-wf__head,
.ocx-intro:has(.ocx-intro__list li:nth-child(2):is(:hover, :focus-within)) .ocx-wf__exp { box-shadow: 0 0 0 2px #A50F66, 0 0 0 6px rgba(165, 15, 102, 0.2); background: rgba(165, 15, 102, 0.1); color: var(--text-1); }
.ocx-intro:has(.ocx-intro__list li:nth-child(5):is(:hover, :focus-within)) .ocx-wf__spot { border-color: transparent; }
.ocx-intro__hint { margin: 10px 0 0; font-size: 0.8438rem; color: var(--text-3); text-align: center; }
.ocx-intro__list li:is(:hover, :focus-within) a { box-shadow: 0 0 0 1px var(--text-3); }
@media (max-width: 860px) { .ocx-intro__hint { display: none; } .ocx-it__tag { font-size: 0.6875rem; padding: 2px 7px; } }
@media (prefers-reduced-motion: reduce) { .ocx-it { transition: none; } }
/* the short "what Customise decides" list at the top of the Customise section */
.ocx-decides { margin: 18px 0 8px; padding: 16px 18px; border-radius: 16px; box-shadow: 0 0 0 1px var(--oci-line, var(--border-soft)); background: var(--oci-card, transparent); }
:root:not([data-theme="light"]) .ocx-decides { --oci-card: #1A1A1A; --oci-line: #272727; }
:root[data-theme="light"] .ocx-decides { --oci-card: #FFFFFF; --oci-line: #E6E6E6; }
.ocx-decides__h { display: block; margin-bottom: 8px; font-size: 1rem; color: var(--text-1); }
.ocx-decides ul { margin: 0; padding: 0; list-style: none; display: grid; }
.ocx-decides li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; padding: 9px 0; border-top: 1px solid var(--oci-line); font-size: 0.9375rem; line-height: 1.5; color: var(--text-2); }
.ocx-decides li:first-child { border-top: 0; }
.ocx-decides li > a { flex: none; font-size: 0.875rem; font-weight: 600; }

/* where each topic lives: a page bar in the map, and a "Find it" line on every topic */
.ocx-wf__bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 6px 8px; border-bottom: 1px solid var(--oci-line); margin-bottom: 4px; }
.ocx-wf__title { font-weight: 700; letter-spacing: 0.04em; color: var(--text-2); }
.ocx-wf__seg { display: inline-flex; gap: 2px; padding: 2px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--oci-line); }
.ocx-wf__seg i { padding: 3px 12px; border-radius: 999px; font-style: normal; font-weight: 600; }
.ocx-wf__seg i.on { background: rgba(var(--ink-rgb), 0.14); color: var(--text-1); }
.ocx-wf__btn { padding: 4px 14px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--oci-line); font-weight: 700; color: var(--text-2); }
.ocx-wf__bar > * { transition: box-shadow 0.2s, background-color 0.2s; }
.ocx-intro:has(.ocx-intro__list li:nth-child(1):is(:hover, :focus-within)) .ocx-wf__seg,
.ocx-intro:has(.ocx-intro__list li:nth-child(3):is(:hover, :focus-within)) .ocx-wf__btn { box-shadow: 0 0 0 2px #A50F66, 0 0 0 6px rgba(165, 15, 102, 0.2); background: rgba(165, 15, 102, 0.1); color: var(--text-1); }
.ocx-intro__list em { grid-column: 2; margin-top: 3px; font-size: 0.8125rem; font-style: normal; line-height: 1.4; color: var(--text-2); }
.ocx-intro__list a { grid-template-rows: auto auto auto; }
.ocx-intro__list a::before { grid-row: 1 / span 3; }

/* which cells each view prints */
.ocx-cov { margin: 14px 0 22px; padding: 16px 18px; border-radius: 16px; box-shadow: 0 0 0 1px var(--oci-line, var(--border-soft)); background: var(--oci-card, transparent); }
:root:not([data-theme="light"]) .ocx-cov { --oci-card: #1A1A1A; --oci-line: #272727; }
:root[data-theme="light"] .ocx-cov { --oci-card: #FFFFFF; --oci-line: #E6E6E6; }
.ocx-cov__brk { display: grid; grid-template-columns: 1fr 1.6fr 1fr; gap: 0; margin-bottom: 10px; font-size: 0.8125rem; font-weight: 700; color: var(--text-2); }
.ocx-cov__b { display: block; padding: 5px 10px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--oci-line); text-align: center; }
.ocx-cov__b b { margin-left: 6px; color: var(--text-1); }
.ocx-cov__b--s { grid-column: 1 / span 2; margin-right: 4px; }
.ocx-cov__b--a { grid-column: 2 / span 2; margin-left: 4px; }
.ocx-cov__lanes { display: grid; grid-template-columns: 1fr 1.6fr 1fr; gap: 12px; }
.ocx-cov__lane { padding: 10px 12px; border-radius: 12px; background: rgba(var(--ink-rgb), 0.04); }
.ocx-cov__h { margin: 0 0 8px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); }
.ocx-cov__h b { margin-left: 6px; color: var(--text-1); }
.ocx-cov__lane ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
.ocx-cov__lane a { display: inline-block; padding: 3px 9px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--oci-line); font-size: 0.8125rem; font-weight: 600; text-decoration: none; color: var(--text-2); transition: box-shadow 0.2s, color 0.2s; }
.ocx-cov__lane a:hover, .ocx-cov__lane a:focus-visible { color: var(--text-1); box-shadow: inset 0 0 0 1px var(--text-3); }
.ocx-cov__note { margin: 10px 0 0; font-size: 0.8438rem; color: var(--text-3); }
@media (max-width: 760px) { .ocx-cov__brk { display: none; } .ocx-cov__lanes { grid-template-columns: 1fr; } }

/* contrast (Day 14): unselected segment text and the build-up tab titles read at 4.5:1 or more in both themes */
.ocx-wf__seg i { color: var(--text-2); }
.ocx-wf__seg i.on { color: var(--text-1); }
.ocs-spec .ltp-change-pct.val-down { color: color-mix(in srgb, var(--ocs-down) 65%, var(--text-1)); }

/* ── 13-a1-align.css ── */
/* Part A, sections 1 and 2: where the captures sit in the page (pins, cards, tabs). Loaded after the shared hero sheet. */
:is(#oc-a-ladder, #oc-a-spot-line) .ocx-scene { margin: 22px 0 28px; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-tabs__pane > .ocx-scene { margin: 0; }
/* the strip is a thin picture: its cards open upward, over the rows above */
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-strip-fig .ocx-pin__card { top: auto; bottom: 34px; }
@media (max-width: 760px) {
  :is(#oc-a-ladder, #oc-a-spot-line) .ocx-scene .ocx-hero__scroll { padding: 10px; }
}
/* the strip's pins ride above the pills so they never cover a figure */
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-strip-fig .ocx-pin--t { top: -30px; }
:is(#oc-a-ladder, #oc-a-spot-line) .oca1-strip-fig .ocx-pin--t .ocx-pin__card { bottom: 38px; }
/* links inside a figure take the brand text colour, not the page accent */
:is(#oc-a-ladder, #oc-a-spot-line) .ocx-hero__cap a, :is(#oc-a-ladder, #oc-a-spot-line) .ocx-legend a, :is(#oc-a-ladder, #oc-a-spot-line) .oca1-mx__why a { color: var(--h-pin-text, var(--a1-plum-text)); font-weight: 600; }

/* ── 14-a2-align.css ── */
/* Option Chain guide, part A (second half): the Views, Customise and Expiry sections in the look of the Start section.
   Neutral hairline cards (dark #1A1A1A on #0F0F0F, light #FFFFFF on #F5F5F5), plum for numbers and buttons only.
   Loaded after 11-a2-views-customise-expiry.css, so where the two meet this file wins. */

:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) { --a2-card: #1A1A1A; --a2-well: #0F0F0F; --a2-line: #272727; --a2-ink: #FAFAFA; --a2-mute: #A3A3A3; --a2-pin: #A50F66; --a2-pin-ink: #FFFFFF; }
:root[data-theme="light"] :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) { --a2-card: #FFFFFF; --a2-well: #F5F5F5; --a2-line: #E6E6E6; --a2-ink: #0F0F0F; --a2-mute: #5F5F5F; }

/* the numeral: the same plum disc as a pin */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-n { display: inline-grid; place-items: center; flex: none; width: 22px; height: 22px; margin-right: 10px; border-radius: 50%; background: var(--a2-pin); color: var(--a2-pin-ink); font-size: 0.75rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) ol.oca2-legend { list-style: none; margin: 16px 0 24px; padding: 0; display: grid; gap: 10px 28px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-legend li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; align-items: start; font-size: 0.9063rem; line-height: 1.5; color: var(--text-2); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-legend .oca2-n { margin: 1px 0 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-legend strong { color: var(--text-1); }

/* scene figures in these sections */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocx-scene { margin: 22px 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocx-scene .ocx-pin__card { z-index: 8; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-narrow .ocx-shot { min-width: 0; max-width: 400px; margin-inline: auto; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-pair, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-trio { display: grid; gap: 16px; margin: 22px 0; align-items: start; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-trio { grid-template-columns: repeat(3, minmax(0, 1fr)); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) :is(.oca2-pair, .oca2-trio) .ocx-scene { margin: 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) :is(.oca2-pair, .oca2-trio) .ocx-shot { min-width: 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) :is(.oca2-pair, .oca2-trio) .ocx-hero__head { padding: 12px 16px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) :is(.oca2-pair, .oca2-trio) .ocx-hero__scroll { padding: 10px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) :is(.oca2-pair, .oca2-trio) .ocx-hero__cap { padding: 2px 16px 14px; font-size: 0.875rem; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) :is(.oca2-pair, .oca2-trio) .ocx-pin__card { width: 220px; }
@media (max-width: 900px) { :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-trio { grid-template-columns: minmax(0, 1fr); } :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-trio .ocx-shot { max-width: 400px; margin-inline: auto; } }
@media (max-width: 760px) { :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-pair { grid-template-columns: minmax(0, 1fr); } }

/* the Customise panel: picture on the left, its key beside it; cards may open over the key */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-side { display: grid; grid-template-columns: minmax(260px, 380px) minmax(0, 1fr); grid-template-areas: "head head" "pic key" "cap cap"; overflow: visible; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-side > .ocx-hero__head { grid-area: head; border-radius: 18px 18px 0 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-side > .ocx-hero__scroll { grid-area: pic; overflow: visible; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-side > .ocx-legend { grid-area: key; grid-template-columns: minmax(0, 1fr); align-content: start; padding: 16px 22px 18px 6px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-side > .ocx-hero__cap { grid-area: cap; border-radius: 0 0 18px 18px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-side .ocx-shot { min-width: 0; }
@media (max-width: 820px) {
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-side { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "pic" "key" "cap"; }
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-side > .ocx-hero__scroll { max-width: 400px; margin-inline: auto; width: 100%; }
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-side > .ocx-legend { padding: 4px 22px 18px; }
}

/* a drawn piece (the market clock) in the same card */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-drawn__body { padding: 22px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-drawn .ocx-hero__cap { padding-top: 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-drawn .oca2-legend { margin: 0; }

/* the three pill states */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-states { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 14px 22px; padding: 18px 22px 8px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-state { display: grid; gap: 10px; justify-items: start; align-content: start; margin: 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-state img { display: block; height: auto; max-width: 100%; border-radius: 10px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-state figcaption { font-size: 0.9063rem; line-height: 1.45; color: var(--a2-mute); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-state figcaption b { display: block; color: var(--a2-ink); font-size: 0.9375rem; }

/* tables and cards: neutral hairlines, the same fill as the Start cards */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp-wrap, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card { border: 0; border-radius: 18px; background: var(--a2-card); box-shadow: 0 0 0 1px var(--a2-line); overflow: hidden; margin: 22px 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocx-more .oca2-cmp-wrap, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocx-more .oca2-card { margin: 4px 0 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp thead th { background: var(--a2-well); border-bottom: 1px solid var(--a2-line); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody th, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody td { border-top-color: var(--a2-line); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp td:nth-child(3):last-child, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp thead th:nth-child(3):last-child { background-image: none; }
@media (max-width: 720px) { :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cmp tbody tr { border-top-color: var(--a2-line); } }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-badge { border-color: var(--a2-line); background: var(--a2-well); color: var(--a2-mute); font-size: 0.75rem; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-badge--adv, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-badge--sim { border-color: var(--a2-mute); color: var(--a2-ink); background: transparent; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-saved, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-sw--on { background: var(--a2-well); color: var(--a2-ink); box-shadow: 0 0 0 1px var(--a2-mute); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-sw--off { background: transparent; color: var(--a2-mute); box-shadow: 0 0 0 1px var(--a2-line); }

/* the column catalogue (folded under "Which columns each view can print") */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; padding: 14px 20px; background: var(--a2-well); border-bottom: 1px solid var(--a2-line); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card__title { font-size: 1rem; font-weight: 700; color: var(--text-1); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card__sub { font-size: 0.875rem; color: var(--a2-mute); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-card__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; padding: 12px 20px; border-top: 1px solid var(--a2-line); background: var(--a2-well); font-size: 0.8125rem; color: var(--a2-mute); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-key { display: inline-flex; align-items: center; gap: 8px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__cols, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__row { display: grid; grid-template-columns: 150px minmax(0, 1fr) minmax(0, 1fr); gap: 4px 20px; align-items: start; padding: 12px 20px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__cols { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--a2-mute); border-bottom: 1px solid var(--a2-line); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__cols b { color: var(--a2-ink); margin-left: 6px; letter-spacing: 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__cols small { display: block; margin-top: 2px; font-size: 0.75rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__row { border-top: 1px solid var(--a2-line); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__cols + .oca2-cat__row { border-top: 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__g strong { display: block; color: var(--text-1); font-size: 0.9375rem; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__g small { display: block; margin-top: 2px; font-size: 0.75rem; color: var(--a2-mute); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) ul.oca2-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-chip { display: inline-block; padding: 3px 10px; border-radius: 8px; border: 1px solid var(--a2-line); background: transparent; color: var(--text-2); font-size: 0.8125rem; line-height: 1.45; list-style: none; white-space: nowrap; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-chip--d { background: var(--a2-well); border-color: var(--a2-mute); color: var(--text-1); font-weight: 700; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-chip--x { border-style: dashed; color: var(--a2-mute); text-decoration: line-through; text-decoration-thickness: 1px; }
@media (max-width: 720px) {
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__cols { display: none; }
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__row { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 14px 16px; }
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-cat__g { display: flex; align-items: baseline; justify-content: space-between; }
  :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) ul.oca2-chips::before { content: attr(data-label); flex-basis: 100%; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--a2-mute); }
}

/* feeds: neutral cards */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-feeds { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 14px; margin: 22px 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-feed { display: grid; justify-items: start; align-content: start; gap: 8px; padding: 16px; border-radius: 16px; background: var(--a2-card); box-shadow: 0 0 0 1px var(--a2-line); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-feed strong { font-size: 1.0625rem; color: var(--text-1); margin-top: 4px; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-feed small { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; color: var(--a2-mute); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-feed span:last-child { font-size: 0.9063rem; line-height: 1.45; color: var(--text-2); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clk.is-fallback { --ring: var(--oca2-ink); }

/* the preset explorer (08-explorer.css): the mint accent becomes plum for the chosen tab and neutral ink for lit columns */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocp-ex { border: 0; border-radius: 18px; background: var(--a2-card); box-shadow: 0 0 0 1px var(--a2-line); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocp-ex__bar { background: var(--a2-well); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocp-ex__chips li { border-color: var(--a2-line); color: var(--a2-mute); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocp-ex__chips li.is-on { border-color: var(--a2-mute); background: var(--a2-well); color: var(--a2-ink); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocp-ex__key i.is-on { border-color: var(--a2-mute); background: var(--a2-well); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocp-ex:has(#ocp-pr-simple:checked) label[for="ocp-pr-simple"], :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocp-ex:has(#ocp-pr-buyer:checked) label[for="ocp-pr-buyer"], :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocp-ex:has(#ocp-pr-seller:checked) label[for="ocp-pr-seller"],
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocp-ex:has(#ocp-pr-hedger:checked) label[for="ocp-pr-hedger"], :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocp-ex:has(#ocp-pr-other:checked) label[for="ocp-pr-other"] { background: var(--a2-pin); color: var(--a2-pin-ink); box-shadow: none; }

:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) h3 { margin: 48px 0 12px; }

/* figures whose hover cards open past the picture's edge, and pins whose card opens upward */
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-open, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-open .ocx-hero__scroll { overflow: visible; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-open > .ocx-hero__head { border-radius: 18px 18px 0 0; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocx-pin.oca2-up .ocx-pin__card { top: auto; bottom: 36px; transform: translateY(4px); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocx-pin.oca2-up:hover .ocx-pin__card, :is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .ocx-pin.oca2-up:focus-visible .ocx-pin__card { transform: none; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clock__card .oca2-n { position: absolute; left: -11px; top: -11px; margin: 0; z-index: 2; }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) h4 { margin: 28px 0 0; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); }
:is(#oc-a-views, #oc-a-customise, #oc-a-expiry) .oca2-clock__card { position: relative; }

/* the clock chip as the tool draws it now (MarketClock.tsx): time, quiet seconds, then AM/PM over IST after a hairline; the description is a tooltip, not a card */
:is(#oc-a-expiry) .oca2-clk { gap: 8px; padding: 0 12px; }
:is(#oc-a-expiry) .oca2-clk__t { font-size: 14px; font-weight: 500; letter-spacing: 0.01em; }
:is(#oc-a-expiry) .oca2-clk__t .s { color: var(--text-3); }
:is(#oc-a-expiry) .oca2-clk__m { position: relative; z-index: 1; display: grid; gap: 2px; padding-left: 8px; border-left: 1px solid var(--oca2-line); color: var(--text-3); font: 600 10px/1 var(--font-sans); letter-spacing: 0.04em; }
:is(#oc-a-expiry) .oca2-clk__m b { font: inherit; }
:is(#oc-a-expiry) .oca2-clk__m small { font: inherit; font-weight: 400; }
:is(#oc-a-expiry) .oca2-clock__tip { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
:is(#oc-a-expiry) .oca2-tipbox { padding: 6px 10px; border-radius: 8px; box-shadow: 0 0 0 1px var(--oca2-line); background: var(--oca2-well, transparent); font-size: 0.8125rem; color: var(--text-2); }

/* ── 15-mx-real.css ── */
/* The moneyness explorer, drawn to look like the chain: a narrow Strike spine between the Call and Put cells, the tool's own warm in-the-money tint and ATM mark, and its spot pill on a rule. */
#oc-a-ladder .oca1-mx__shell { max-width: 600px; margin: 0 auto; overflow: hidden; border-radius: 14px; background: var(--oc-grid-bg, transparent); box-shadow: 0 0 0 1px var(--border-soft); }
#oc-a-ladder .oca1-mx__t { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; margin: 0; }
#oc-a-ladder .oca1-mx__kcol { width: 112px; }
#oc-a-ladder .oca1-mx__t th { padding: 9px 8px; border-bottom: 1px solid var(--border-soft); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; text-align: center; background: transparent; }
#oc-a-ladder .oca1-mx__t td { height: 54px; padding: 0 8px; border: 0; border-bottom: 1px solid var(--border-soft); text-align: center; vertical-align: middle; background: transparent; }
#oc-a-ladder .oca1-mx__c b { display: block; font-size: 0.9375rem; font-weight: 600; color: var(--text-2); opacity: 1; }
#oc-a-ladder .oca1-mx__c small { display: block; margin-top: 1px; font-size: 0.6875rem; letter-spacing: 0.04em; color: var(--text-2); opacity: 1; }
#oc-a-ladder .oca1-mx__c.is-itm { background: color-mix(in srgb, var(--warm-400) 20%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warm-400) 28%, transparent); }
#oc-a-ladder .oca1-mx__c.is-itm b { color: var(--text-1); }
#oc-a-ladder .oca1-mx__c.is-itm small { color: var(--text-2); }
/* the Strike spine */
#oc-a-ladder .oca1-mx__t td.strike-cell { height: 54px; padding: 4px 6px; background: color-mix(in srgb, var(--text-1) 4%, transparent); border-inline: 1px solid var(--border-soft); }
#oc-a-ladder .oca1-mx__t td.strike-cell .strike-cell-inner { display: grid; justify-items: center; gap: 1px; }
#oc-a-ladder .oca1-mx__t .strike-val-lbl { font-size: 0.9375rem; font-weight: 600; color: var(--text-1); }
#oc-a-ladder .oca1-mx__d { font-size: 0.6875rem; color: var(--text-3); font-variant-numeric: tabular-nums; }
#oc-a-ladder .oca1-mx__t tr.atm-row td.strike-cell { background: color-mix(in srgb, var(--warm-400) 16%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--warm-400) 42%, transparent); }
#oc-a-ladder .oca1-mx__t tr.atm-row .strike-market-row { margin-top: 1px; }
#oc-a-ladder .oca1-mx__kh { color: var(--text-3); }
/* the spot line */
#oc-a-ladder .oca1-mx__spot td { position: relative; height: 26px; padding: 0; border: 0; background: transparent; }
#oc-a-ladder .oca1-mx__spot td::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 2px solid var(--text-1); opacity: 0.85; }
#oc-a-ladder .oca1-mx__pill { position: relative; display: inline-block; margin: 0 auto; padding: 3px 16px; border-radius: 999px; background: var(--text-1); color: var(--sahi-bg-1, #0F0F0F); font-size: 0.875rem; font-weight: 700; font-variant-numeric: tabular-nums; }
#oc-a-ladder .oca1-mx__spot td { text-align: center; }
@media (max-width: 520px) { #oc-a-ladder .oca1-mx__kcol { width: 92px; } #oc-a-ladder .oca1-mx__c small { font-size: 0.625rem; } }

#oc-a-ladder .oca1-mx__t td.strike-cell .strike-cell-inner { display: flex; flex-direction: column; align-items: center; gap: 1px; }
#oc-a-ladder .oca1-mx__t .strike-val-lbl { order: 1; }
#oc-a-ladder .oca1-mx__d { order: 2; }
#oc-a-ladder .oca1-mx__t .strike-market-row { order: 3; position: static; }
#oc-a-ladder .oca1-mx__spot .oca1-mx__pill { display: inline-block; width: auto; max-width: none; margin: 0 auto; }
#oc-a-ladder .oca1-mx__t td.strike-cell .strike-val-lbl { order: 1 !important; }
#oc-a-ladder .oca1-mx__t td.strike-cell .oca1-mx__d { order: 2 !important; }
#oc-a-ladder .oca1-mx__t td.strike-cell .strike-market-row { order: 3 !important; }
#oc-a-ladder .oca1-mx__c.is-itm { box-shadow: none; }
#oc-a-ladder .oca1-mx__spot td { height: 38px; overflow: visible; }
#oc-a-ladder .oca1-mx__pill { padding: 3px 10px; white-space: nowrap; font-size: 0.8125rem; z-index: 1; }

/* ── 15-part-d.css ── */
/* Part D: neutral-ink line for Theta (chart in option-chain-parts/dviz.mjs). */
.vz-fig .vz-ln--ink { stroke: var(--vz-ink); }
.vz-fig .vz-dot--ink { fill: var(--vz-ink); }
.vz-fig--theta, .vz-fig--gap, .vz-fig--rho { margin: 18px 0; }

/* ── 16-part-e.css ── */
/* Option Chain guide, part E: the drawn breakeven and distance charts, the compact reference table, the cautions and the six-step reading order.
   Chart colours come from the .vz-fig tokens (09-charts.css); page colours from the guide's own tokens. */

.vz-fig--be .ocpe-gain, .vz-fig .ocpe-gain { fill: var(--vz-put); opacity: 0.28; }
.vz-fig .ocpe-loss { fill: var(--vz-call); opacity: 0.26; }
.vz-fig .ocpe-barkey { fill: var(--vz-ink); opacity: 0.22; }
.vz-fig .ocpe-cekey { fill: var(--vz-call); }
.vz-fig .ocpe-pekey { fill: var(--vz-put); }
.vz-fig .ocpe-bar { fill: var(--vz-ink); opacity: 0.22; }
.vz-fig .ocpe-be { stroke: var(--vz-ink); stroke-width: 1.5; stroke-dasharray: 2 3; }
.vz-fig .ocpe-k { stroke: var(--vz-mute); stroke-width: 1.5; }
.vz-fig .ocpe-bedot { fill: var(--vz-card); stroke: var(--vz-ink); stroke-width: 2.5; }
.vz .ocpe-lb { fill: var(--vz-ink); font-size: 12px; font-weight: 700; }
.vz .ocpe-lb--mute { fill: var(--vz-mute); font-weight: 600; }
.vz-fig--dist .vz { min-width: 640px; }

/* Value equation, one line under the chart */
.ocpe-eq { position: relative; flex-wrap: wrap; margin: 26px 0 8px; }
.ocpe-eq__n { flex-basis: 100%; text-align: center; color: var(--text-3); font-size: 0.875rem; }

/* Reference table: one row per cell */
.ocpe-ref { margin: 26px 0 6px; }
.ocpe-t { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 0.9375rem; line-height: 1.5; }
.ocpe-t caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ocpe-t thead th { padding: 8px 14px; text-align: left; color: var(--text-3); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; border-bottom: 1px solid var(--border-soft); }
.ocpe-t tbody th, .ocpe-t tbody td { padding: 12px 14px; text-align: left; vertical-align: top; color: var(--text-2); border-bottom: 1px solid var(--border-soft); }
.ocpe-t tbody th { color: var(--text-1); font-weight: 700; white-space: nowrap; }
.ocpe-t code { color: var(--text-1); font-size: 0.875em; }
.ocpe-foot { margin: 8px 0 24px; color: var(--text-3); font-size: 0.9rem; }

/* Cautions: short plain lines */
.ocpe-notes { display: grid; gap: 10px; margin: 22px 0 8px; padding: 0; list-style: none; }
.ocpe-notes li { position: relative; padding: 12px 16px 12px 40px; border: 1px solid var(--border-soft); border-radius: 12px; background: var(--surface); color: var(--text-2); font-size: 0.97rem; line-height: 1.55; }
.ocpe-notes li::before { content: "!"; position: absolute; left: 14px; top: 12px; width: 18px; height: 18px; border: 1.5px solid var(--text-3); border-radius: 50%; color: var(--text-3); font-size: 0.75rem; font-weight: 700; line-height: 15px; text-align: center; }
.ocpe-notes li strong { color: var(--text-1); }

/* The six steps */
.ocpe-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 26px 0 22px; padding: 0; list-style: none; counter-reset: none; }
.ocpe-step { display: grid; align-content: start; gap: 8px; min-width: 0; padding: 18px; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--surface); }
.ocpe-step__n { display: grid; place-items: center; width: 28px; height: 28px; border: 1.5px solid var(--text-3); border-radius: 50%; color: var(--text-1); font-size: 0.875rem; font-weight: 700; }
.ocpe-step__t { margin: 2px 0 0; color: var(--text-1); font-size: 1.0625rem; font-weight: 700; }
.ocpe-step p { margin: 0; }
.ocpe-step__q { color: var(--text-2); font-size: 0.9375rem; line-height: 1.45; }
.ocpe-step__c { display: flex; flex-wrap: wrap; gap: 6px; }
.ocpe-chip { padding: 2px 10px; border: 1px solid var(--border-soft); border-radius: 999px; background: color-mix(in srgb, var(--text-3) 10%, transparent); color: var(--text-1); font-size: 0.8125rem; font-weight: 600; }
.ocpe-step__k { color: var(--text-2); font-size: 0.9rem; line-height: 1.5; font-variant-numeric: tabular-nums; }
.ocpe-step__go { display: flex; flex-wrap: wrap; gap: 6px; }

@media (max-width: 960px) { .ocpe-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .ocpe-steps { grid-template-columns: minmax(0, 1fr); } }

/* ── 16-strikes.css ── */
/* How many strikes the page shows: five settings of the Strikes control, one pane each */
#oc-a-ladder .oca1-sx__r { position: absolute; opacity: 0; pointer-events: none; }
#oc-a-ladder .oca1-sx__bar2 { display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.06); }
#oc-a-ladder .oca1-sx__bar2 label { min-width: 44px; padding: 6px 14px; border-radius: 999px; text-align: center; cursor: pointer; font-weight: 700; font-size: 0.9375rem; color: var(--text-2); transition: background-color 0.2s, color 0.2s; }
#oc-a-ladder .oca1-sx__bar2 label:hover { color: var(--text-1); }
#oc-a-ladder .oca1-sx__p { display: none; margin-top: 14px; animation: oca1-in 0.3s cubic-bezier(0.16, 1, 0.3, 1); }
#oc-a-ladder .oca1-sx__sum { margin: 0 0 12px; font-size: 1rem; color: var(--text-2); }
#oc-a-ladder .oca1-sx__sum b { color: var(--text-1); }
#oc-a-ladder .oca1-sx__sum em { font-style: normal; color: var(--text-3); }
#oc-a-ladder .oca1-sx__bar { display: flex; gap: 2px; height: 34px; align-items: stretch; }
#oc-a-ladder .oca1-sx__bar i { flex: 1 1 0; border-radius: 2px; background: rgba(var(--ink-rgb), 0.1); transition: background-color 0.25s; }
#oc-a-ladder .oca1-sx__bar i.is-on { background: rgba(var(--ink-rgb), 0.5); }
#oc-a-ladder .oca1-sx__bar i.is-atm { background: #A50F66; }
#oc-a-ladder .oca1-sx__bar i.is-wall { box-shadow: 0 0 0 2px var(--text-1); }
#oc-a-ladder .oca1-sx__axis { display: flex; justify-content: space-between; margin-top: 6px; font-size: 0.75rem; color: var(--text-3); font-variant-numeric: tabular-nums; }
#oc-a-ladder .oca1-sx__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 14px 0 0; padding: 0; list-style: none; }
#oc-a-ladder .oca1-sx__stats li { padding: 10px 12px; border-radius: 12px; box-shadow: 0 0 0 1px var(--line, var(--border-soft)); }
#oc-a-ladder .oca1-sx__stats b { display: block; font-size: 1.375rem; font-weight: 600; color: var(--text-1); font-variant-numeric: tabular-nums; }
#oc-a-ladder .oca1-sx__stats span { font-size: 0.8438rem; line-height: 1.4; color: var(--text-3); }
@media (max-width: 640px) { #oc-a-ladder .oca1-sx__stats { grid-template-columns: 1fr; } #oc-a-ladder .oca1-sx__bar { height: 26px; } }
@media (prefers-reduced-motion: reduce) { #oc-a-ladder .oca1-sx__p { animation: none; } }
#oc-a-ladder .oca1-sx__r:nth-of-type(1):checked ~ .oca1-sx__p:nth-of-type(1) { display: block; }
#oc-a-ladder .oca1-sx__r:nth-of-type(1):checked ~ .oca1-sx__bar2 label:nth-child(1) { background: #A50F66; color: #FFFFFF; }
#oc-a-ladder .oca1-sx__r:nth-of-type(2):checked ~ .oca1-sx__p:nth-of-type(2) { display: block; }
#oc-a-ladder .oca1-sx__r:nth-of-type(2):checked ~ .oca1-sx__bar2 label:nth-child(2) { background: #A50F66; color: #FFFFFF; }
#oc-a-ladder .oca1-sx__r:nth-of-type(3):checked ~ .oca1-sx__p:nth-of-type(3) { display: block; }
#oc-a-ladder .oca1-sx__r:nth-of-type(3):checked ~ .oca1-sx__bar2 label:nth-child(3) { background: #A50F66; color: #FFFFFF; }
#oc-a-ladder .oca1-sx__r:nth-of-type(4):checked ~ .oca1-sx__p:nth-of-type(4) { display: block; }
#oc-a-ladder .oca1-sx__r:nth-of-type(4):checked ~ .oca1-sx__bar2 label:nth-child(4) { background: #A50F66; color: #FFFFFF; }
#oc-a-ladder .oca1-sx__r:nth-of-type(5):checked ~ .oca1-sx__p:nth-of-type(5) { display: block; }
#oc-a-ladder .oca1-sx__r:nth-of-type(5):checked ~ .oca1-sx__bar2 label:nth-child(5) { background: #A50F66; color: #FFFFFF; }
#oc-a-ladder .oca1-sx__r:focus-visible ~ .oca1-sx__bar2 { outline: 2px solid var(--text-1); outline-offset: 2px; }

/* ── 17-expiry.css ── */
:is(#oc-a-expiry) .oca2-panel { margin: 18px 0; border-radius: 16px; overflow: hidden; box-shadow: 0 0 0 1px var(--oca2-line, var(--border-soft)); background: var(--oca2-card, transparent); }
:root:not([data-theme="light"]) :is(#oc-a-expiry) .oca2-panel { --oca2-card: #1A1A1A; --oca2-line: #272727; }
:root[data-theme="light"] :is(#oc-a-expiry) .oca2-panel { --oca2-card: #FFFFFF; --oca2-line: #E6E6E6; }
:is(#oc-a-expiry) .oca2-panel__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 14px 20px; border-bottom: 1px solid var(--oca2-line); }
:is(#oc-a-expiry) .oca2-panel__head b { font-size: 1.0625rem; color: var(--text-1); }
:is(#oc-a-expiry) .oca2-panel__head span { font-size: 0.875rem; color: var(--text-3); }
:is(#oc-a-expiry) .oca2-panel__body { padding: 16px 20px 20px; }
:is(#oc-a-expiry) .oca2-ex__r { position: absolute; opacity: 0; pointer-events: none; }
:is(#oc-a-expiry) .oca2-ex__bar { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 16px; background: rgba(var(--ink-rgb), 0.06); }
:is(#oc-a-expiry) .oca2-ex__bar label { flex: 1 1 auto; padding: 7px 12px; border-radius: 12px; text-align: center; cursor: pointer; font-size: 0.875rem; font-weight: 600; color: var(--text-2); transition: background-color 0.2s, color 0.2s; }
:is(#oc-a-expiry) .oca2-ex__bar label:hover { color: var(--text-1); }
:is(#oc-a-expiry) .oca2-ex__p { display: none; margin-top: 16px; animation: oca2-in 0.3s cubic-bezier(0.16, 1, 0.3, 1); }
@keyframes oca2-in { from { opacity: 0; transform: translateY(4px); } }
:is(#oc-a-expiry) .oca2-ex__data { margin: 0 0 10px; font-size: 0.9063rem; color: var(--text-3); }
:is(#oc-a-expiry) .oca2-ex__data b { color: var(--text-1); }
:is(#oc-a-expiry) .oca2-ex__cap { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; border-radius: 999px; box-shadow: 0 0 0 1px var(--oca2-line); font-size: 1rem; color: var(--text-1); }
:is(#oc-a-expiry) .oca2-ex__cap i { font-style: normal; color: var(--text-3); }
:is(#oc-a-expiry) .oca2-ex__list { margin: 14px 0 0; padding: 0; list-style: none; max-width: 420px; border-radius: 12px; box-shadow: 0 0 0 1px var(--oca2-line); overflow: hidden; }
:is(#oc-a-expiry) .oca2-ex__list li { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--oca2-line); font-size: 0.9688rem; color: var(--text-2); }
:is(#oc-a-expiry) .oca2-ex__list li:first-child { border-top: 0; }
:is(#oc-a-expiry) .oca2-ex__list li.is-on { background: rgba(var(--ink-rgb), 0.05); color: var(--text-1); }
:is(#oc-a-expiry) .oca2-ex__tick { width: 16px; color: var(--text-1); font-weight: 700; }
:is(#oc-a-expiry) .oca2-ex__d { flex: 1; }
:is(#oc-a-expiry) .oca2-ex__d small { margin-left: 6px; font-size: 0.8125rem; color: var(--text-3); }
:is(#oc-a-expiry) .oca2-ex__mo { padding: 1px 8px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--oca2-line); font-style: normal; font-size: 0.75rem; font-weight: 600; color: var(--text-3); }
:is(#oc-a-expiry) .oca2-ex__note { margin: 14px 0 0; font-size: 0.9375rem; line-height: 1.55; color: var(--text-2); }
@media (prefers-reduced-motion: reduce) { :is(#oc-a-expiry) .oca2-ex__p { animation: none; } }
:is(#oc-a-expiry) .oca2-ex__r:nth-of-type(1):checked ~ .oca2-ex__p:nth-of-type(1) { display: block; }
:is(#oc-a-expiry) .oca2-ex__r:nth-of-type(1):checked ~ .oca2-ex__bar label:nth-child(1) { background: #A50F66; color: #FFFFFF; }
:is(#oc-a-expiry) .oca2-ex__r:nth-of-type(2):checked ~ .oca2-ex__p:nth-of-type(2) { display: block; }
:is(#oc-a-expiry) .oca2-ex__r:nth-of-type(2):checked ~ .oca2-ex__bar label:nth-child(2) { background: #A50F66; color: #FFFFFF; }
:is(#oc-a-expiry) .oca2-ex__r:nth-of-type(3):checked ~ .oca2-ex__p:nth-of-type(3) { display: block; }
:is(#oc-a-expiry) .oca2-ex__r:nth-of-type(3):checked ~ .oca2-ex__bar label:nth-child(3) { background: #A50F66; color: #FFFFFF; }
:is(#oc-a-expiry) .oca2-ex__r:nth-of-type(4):checked ~ .oca2-ex__p:nth-of-type(4) { display: block; }
:is(#oc-a-expiry) .oca2-ex__r:nth-of-type(4):checked ~ .oca2-ex__bar label:nth-child(4) { background: #A50F66; color: #FFFFFF; }
:is(#oc-a-expiry) .oca2-ex__r:nth-of-type(5):checked ~ .oca2-ex__p:nth-of-type(5) { display: block; }
:is(#oc-a-expiry) .oca2-ex__r:nth-of-type(5):checked ~ .oca2-ex__bar label:nth-child(5) { background: #A50F66; color: #FFFFFF; }
:is(#oc-a-expiry) .oca2-ex__r:focus-visible ~ .oca2-ex__bar { outline: 2px solid var(--text-1); outline-offset: 2px; }

/* ── 18-panel.css ── */
/* The drawn Customise panel: a scrollable panel of separate cards, with a list that jumps to each section */
.ocz__r { position: absolute; opacity: 0; pointer-events: none; }
.ocz__bar { display: inline-flex; gap: 4px; padding: 4px; margin: 4px 0 14px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.06); }
.ocz__bar label { padding: 6px 16px; border-radius: 999px; cursor: pointer; font-size: 0.9375rem; font-weight: 600; color: var(--text-2); }
.ocz__grid { display: grid; grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); gap: 20px; align-items: start; }
.ocz__v--s, .ocz__l--s { display: none; }
.ocz__v--a, .ocz__l--a { display: block; }
.ocz__v { grid-column: 1; grid-row: 1; } .ocz__l { grid-column: 2; grid-row: 1; }
#ocz-s:checked ~ .ocz__grid .ocz__v--a, #ocz-s:checked ~ .ocz__grid .ocz__l--a { display: none; }
#ocz-s:checked ~ .ocz__grid .ocz__v--s, #ocz-s:checked ~ .ocz__grid .ocz__l--s { display: block; }
#ocz-a:checked ~ .ocz__bar label:nth-child(1), #ocz-s:checked ~ .ocz__bar label:nth-child(2) { background: #A50F66; color: #FFFFFF; }
.ocz-panel { max-height: 560px; overflow-y: auto; border-radius: 16px; box-shadow: 0 0 0 1px var(--border-soft); background: rgba(var(--ink-rgb), 0.03); scroll-behavior: smooth; }
.ocz-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 14px; background: var(--bg, Canvas); border-bottom: 1px solid var(--border-soft); }
.ocz-head b { display: block; font-size: 1.0625rem; color: var(--text-1); } .ocz-head small { font-size: 0.8125rem; color: var(--text-3); }
.ocz-btns { display: flex; gap: 6px; } .ocz-btn { padding: 4px 10px; border-radius: 999px; box-shadow: 0 0 0 1px var(--border-soft); font-size: 0.8125rem; color: var(--text-2); }
.ocz-body { display: grid; gap: 12px; padding: 12px; }
.ocz-sec { scroll-margin-top: 64px; padding: 2px; border-radius: 14px; transition: box-shadow 0.2s; }
.ocz-sec:target, .ocz-sec.is-hl { box-shadow: 0 0 0 2px #A50F66; }
.ocz-sec__t { display: flex; justify-content: space-between; align-items: baseline; margin: 0 4px 4px; font-size: 0.9375rem; font-weight: 600; color: var(--text-1); }
.ocz-sec__t small, .ocz-sec__c { font-size: 0.8125rem; font-weight: 400; color: var(--text-3); } .ocz-sec__c { margin: 0 4px 8px; }
.ocz-card { display: grid; gap: 8px; padding: 12px; border-radius: 12px; box-shadow: 0 0 0 1px var(--border-soft); background: var(--bg, Canvas); }
.ocz-row { display: flex; justify-content: space-between; gap: 8px; font-size: 0.875rem; color: var(--text-1); } .ocz-row small { color: var(--text-3); }
.ocz-seg { display: flex; flex-wrap: wrap; gap: 4px; padding: 3px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.06); }
.ocz-seg span { flex: 1 1 auto; padding: 5px 10px; border-radius: 999px; text-align: center; font-size: 0.8125rem; font-weight: 600; color: var(--text-2); }
.ocz-seg span.is-on { background: #A50F66; color: #FFFFFF; }
.ocz-sw, .ocz-step, .ocz-col { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 0.875rem; color: var(--text-1); }
.ocz-tg { width: 34px; height: 20px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.18); position: relative; flex: none; }
.ocz-tg::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #FFFFFF; transition: left 0.2s; }
.ocz-tg.is-on { background: #A50F66; } .ocz-tg.is-on::after { left: 16px; }
.ocz-stepper { display: inline-flex; align-items: center; gap: 12px; } .ocz-stepper i { font-style: normal; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; box-shadow: 0 0 0 1px var(--border-soft); }
.ocz-col { padding: 6px 8px; border-radius: 8px; box-shadow: 0 0 0 1px var(--border-soft); } .ocz-drag { color: var(--text-3); font-style: normal; letter-spacing: -2px; } .ocz-col > span:first-of-type { flex: 1; }
.ocz-arrows { display: inline-flex; gap: 6px; color: var(--text-3); } .ocz-arrows i { font-style: normal; }
.ocz-groups div { display: flex; justify-content: space-between; font-size: 0.875rem; color: var(--text-1); } .ocz-groups small { color: var(--text-3); } .ocz-groups p { margin: 4px 0 0; font-size: 0.8125rem; color: var(--text-3); }
.ocz-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.ocz-list a { display: flex; gap: 10px; padding: 10px 12px; border-radius: 12px; box-shadow: 0 0 0 1px var(--border-soft); font-size: 0.9063rem; line-height: 1.5; color: var(--text-2); text-decoration: none; }
.ocz-list a:hover, .ocz-list a:focus-visible { box-shadow: 0 0 0 2px #A50F66; } .ocz-list b { color: var(--text-1); }
.ocz-list i { flex: none; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; font-style: normal; font-size: 0.75rem; font-weight: 700; background: #A50F66; color: #FFFFFF; }
@media (max-width: 760px) { .ocz__grid { grid-template-columns: 1fr; } .ocz__l { grid-column: 1; grid-row: 2; } .ocz-panel { max-height: 440px; } }
.ocz-groups { display: grid; gap: 8px; }
.ocz-grp ul { margin: 0; padding: 0; list-style: none; border-radius: 10px; background: rgba(var(--ink-rgb), 0.04); }
.ocz-grp li { display: flex; align-items: center; gap: 10px; padding: 8px 10px; font-size: 0.875rem; color: var(--text-1); border-top: 1px solid var(--border-soft); }
.ocz-grp li:first-child { border-top: 0; }
.ocz-grp li i { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--green); color: var(--green); font-style: normal; font-size: 0.8125rem; line-height: 1; }
.ocz { --green: #14697A; }
:root:not([data-theme="light"]) .ocz { --green: #28BCD0; }
:root[data-theme="light"] .ocz { --green: #14697A; }
.ocz .ocz-grp { display: flex; flex-direction: column; gap: 8px; }
.ocz .ocz-grp .ocz-row { display: flex; width: 100%; }
.ocz .ocz-grp ul { display: block; width: 100%; margin: 0; padding: 0; }
.ocz .ocz-grp li { display: flex; width: 100%; box-sizing: border-box; }
.ocz .ocz-grp li i { flex: none; box-shadow: inset 0 0 0 1px var(--green); color: var(--green); }
.ocz-list li { display: flex; gap: 10px; padding: 10px 12px; border-radius: 12px; box-shadow: 0 0 0 1px var(--border-soft); font-size: 0.9063rem; line-height: 1.5; color: var(--text-2); cursor: pointer; }
.ocz-list li:hover { box-shadow: 0 0 0 2px #A50F66; }
.ocz-list li > span { min-width: 0; }
.ocz-list li a { color: #A50F66; text-decoration: underline; }
:root:not([data-theme="light"]) .ocz-list li a { color: #FC6AD0; }
.ocz-n { flex: none; width: 24px; height: 24px; display: grid; place-items: center; border: 0; border-radius: 50%; font: 700 0.75rem/1 inherit; background: #A50F66; color: #FFFFFF; cursor: pointer; }
.ocz-n:focus-visible { outline: 2px solid var(--text-1); outline-offset: 2px; }

/* ── 19-views.css ── */
/* Drawn explorers for the Views section: same radio mechanics as the other explorers */
.ocv { margin: 18px 0; padding: 14px 18px 18px; border-radius: 16px; box-shadow: 0 0 0 1px var(--border-soft); }
.ocv__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin-bottom: 12px; }
.ocv__head b { font-size: 1.0625rem; color: var(--text-1); } .ocv__head span { font-size: 0.875rem; color: var(--text-3); }
.ocv__r { position: absolute; opacity: 0; pointer-events: none; }
.ocv__bar { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.06); }
.ocv__bar label { padding: 6px 16px; border-radius: 999px; cursor: pointer; font-size: 0.9375rem; font-weight: 600; color: var(--text-2); }
.ocv__p { display: none; margin-top: 14px; }
.ocv__cells { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
.ocv__says { margin: 12px 0 0; font-size: 0.9375rem; line-height: 1.55; color: var(--text-2); }
.ocv__sub { margin: 0 0 8px; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
.ocv__strip { border-radius: 12px; box-shadow: 0 0 0 1px var(--border-soft); overflow-x: auto; }
.ocv__top { display: flex; justify-content: space-around; padding: 8px 12px; border-bottom: 1px solid var(--border-soft); }
.ocv__chip { padding: 3px 14px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--border-soft); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
.ocv__chip--on { color: var(--text-1); box-shadow: inset 0 0 0 1px var(--text-3); }
.ocv__row { display: flex; min-width: max-content; }
.ocv__h { flex: 1 0 auto; min-width: 74px; padding: 12px 10px; text-align: center; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; white-space: nowrap; color: var(--text-2); border-right: 1px solid var(--border-soft); }
.ocv__h:last-child { border-right: 0; }
.ocv__h--k { min-width: 92px; background: rgba(var(--ink-rgb), 0.06); color: var(--text-1); }
.ocv .ocs-spec { margin: 0; }
.ocv__r[id="ocv-vw-0"]:checked ~ .ocv__p:nth-of-type(1) { display: block; }
.ocv__r[id="ocv-vw-0"]:checked ~ .ocv__bar label:nth-child(1) { background: #A50F66; color: #FFFFFF; }
.ocv__r[id="ocv-vw-1"]:checked ~ .ocv__p:nth-of-type(2) { display: block; }
.ocv__r[id="ocv-vw-1"]:checked ~ .ocv__bar label:nth-child(2) { background: #A50F66; color: #FFFFFF; }
.ocv__r[id="ocv-ly-0"]:checked ~ .ocv__p:nth-of-type(1) { display: block; }
.ocv__r[id="ocv-ly-0"]:checked ~ .ocv__bar label:nth-child(1) { background: #A50F66; color: #FFFFFF; }
.ocv__r[id="ocv-ly-1"]:checked ~ .ocv__p:nth-of-type(2) { display: block; }
.ocv__r[id="ocv-ly-1"]:checked ~ .ocv__bar label:nth-child(2) { background: #A50F66; color: #FFFFFF; }
.ocv__r[id="ocv-ly-2"]:checked ~ .ocv__p:nth-of-type(3) { display: block; }
.ocv__r[id="ocv-ly-2"]:checked ~ .ocv__bar label:nth-child(3) { background: #A50F66; color: #FFFFFF; }
.ocv__r[id="ocv-ly-3"]:checked ~ .ocv__p:nth-of-type(4) { display: block; }
.ocv__r[id="ocv-ly-3"]:checked ~ .ocv__bar label:nth-child(4) { background: #A50F66; color: #FFFFFF; }
.ocv__strip--ph { max-width: 420px; }
.ocv__strip--ph .ocv__h { min-width: 0; }
.ocv__dotrow { display: flex; justify-content: center; padding: 8px; border-top: 1px solid var(--border-soft); }
.ocv__dots { display: inline-flex; gap: 6px; }
.ocv__dots i { width: 7px; height: 7px; border-radius: 50%; background: rgba(var(--ink-rgb), 0.2); }
.ocv__dots i.is-on { background: #A50F66; }
.ocv__r[id="ocv-ph-0"]:checked ~ .ocv__p:nth-of-type(1) { display: block; }
.ocv__r[id="ocv-ph-0"]:checked ~ .ocv__bar label:nth-child(1) { background: #A50F66; color: #FFFFFF; }
.ocv__r[id="ocv-ph-1"]:checked ~ .ocv__p:nth-of-type(2) { display: block; }
.ocv__r[id="ocv-ph-1"]:checked ~ .ocv__bar label:nth-child(2) { background: #A50F66; color: #FFFFFF; }
.ocv__r[id="ocv-ph-2"]:checked ~ .ocv__p:nth-of-type(3) { display: block; }
.ocv__r[id="ocv-ph-2"]:checked ~ .ocv__bar label:nth-child(3) { background: #A50F66; color: #FFFFFF; }
.ocv__strip--ph .ocv__h { padding: 12px 6px; letter-spacing: 0.04em; } .ocv__strip--ph .ocv__row { min-width: 0; } .ocv__strip--ph .ocv__h { flex: 1 1 0; white-space: normal; }

/* ── 20-b1-price-range.css ── */
/* Option Chain guide, part B1: the price and range cards (sections #oc-b-price and #oc-b-range).
   One card template for every cell: header, the cell as the tool prints it with numbered callouts, anatomy,
   worked example with a gauge, five fact rows, states. Classes are ocb1-*; every rule is scoped to the two sections.
   Cell colours are the tool's own tokens (sahi-colour-system.css). Dark: ink #fafafa, muted #a3a3a3, up #28bcd0, down #ee807b,
   column header #1a1a1a on a #0f0f0f body, rule #404040. Light (read off the light captures and the tool's
   :root[data-theme="light"] block): ink #0f0f0f, muted #5f5f5f (neutral-550), up #115b68 (success-800, --up-ink),
   down #ae2c27 (error-700, --down-ink), header and body both white, rule #e6e6e6 (neutral-200). Everything that is not a
   replica of the tool uses the page tokens, so the page flips with the theme. */

:is(#oc-b-price, #oc-b-range) {
  --ocb1-bg: #0f0f0f;
  --ocb1-head: #1a1a1a;
  --ocb1-ink: #fafafa;
  --ocb1-muted: #a3a3a3;
  --ocb1-up: #28bcd0;
  --ocb1-down: #ee807b;
  --ocb1-rule: #404040;
  --ocb1-avg: var(--bu-long-unwind, #c5aa84);
  --ocb1-pin: var(--sahi-cyan, #5acfe0);
  --ocb1-pin-ink: #052a30;
  --ocb1-ring: #0a0a0a;
  /* the outline of a replicated cell, three strengths as the dark cells use them */
  --ocb1-edge-1: rgba(var(--ink-rgb), 0.07);
  --ocb1-edge-2: rgba(var(--ink-rgb), 0.08);
  --ocb1-edge-3: rgba(var(--ink-rgb), 0.1);
  /* gauge furniture */
  --ocb1-track: rgba(var(--ink-rgb), 0.11);
  --ocb1-tick: rgba(var(--ink-rgb), 0.3);
  --ocb1-brk: rgba(var(--ink-rgb), 0.5);
  --ocb1-brk-hi: rgba(var(--ink-rgb), 0.85);
  --ocb1-halo: rgba(var(--ink-rgb), 0.14);
  --ocb1-dim: 0.55;
  --ocb1-dim-t: 0.9;
  --ocb1-dim-2: 0.9;
}
:root[data-theme="light"] :is(#oc-b-price, #oc-b-range) {
  --ocb1-bg: #ffffff;
  --ocb1-head: #ffffff;
  --ocb1-ink: #0f0f0f;
  --ocb1-muted: #5f5f5f;
  --ocb1-up: #115b68;
  --ocb1-down: #ae2c27;
  --ocb1-rule: #e6e6e6;
  --ocb1-pin-ink: #ffffff;
  --ocb1-ring: #ffffff;
  --ocb1-edge-1: #d3d3d3;
  --ocb1-edge-2: #d3d3d3;
  --ocb1-edge-3: #d3d3d3;
  --ocb1-track: rgba(var(--ink-rgb), 0.16);
  --ocb1-tick: rgba(var(--ink-rgb), 0.45);
  --ocb1-brk: rgba(var(--ink-rgb), 0.5);
  --ocb1-brk-hi: rgba(var(--ink-rgb), 0.85);
  --ocb1-halo: rgba(var(--ink-rgb), 0.12);
  --ocb1-dim: 0.6;
  --ocb1-dim-t: 0.9;
  --ocb1-dim-2: 0.9;
}

/* ── The stack of cards ─────────────────────────────────────────────────── */
:is(#oc-b-price, #oc-b-range) .ocb1-stack { display: flex; flex-direction: column; gap: 34px; margin: 36px 0; }

:is(#oc-b-price, #oc-b-range) .ocb1-card {
  container: ocb1 / inline-size;
  border: 1px solid var(--border-soft);
  border-radius: 20px;
  background: var(--surface);
  overflow: hidden;
  font-size: 15px;
  line-height: 1.55;
  color: var(--text-2);
  font-variant-numeric: tabular-nums;
}
:is(#oc-b-price, #oc-b-range) .ocb1-card code {
  font-size: 13px; padding: 1px 6px; border-radius: 5px;
  background: rgba(var(--ink-rgb), 0.07); color: var(--text-1); overflow-wrap: anywhere;
}
:is(#oc-b-price, #oc-b-range) .ocb1-card strong { color: var(--text-1); font-weight: 700; }

/* ── Header: column chip, name, one-line description, where it appears ──── */
:is(#oc-b-price, #oc-b-range) .ocb1-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "id where" "lede where";
  gap: 8px 28px;
  align-items: start;
  padding: 22px 28px 20px;
  background: rgba(var(--shade-ch), calc(0.26 * var(--k-band)));
  border-bottom: 1px solid var(--border-soft);
}
:is(#oc-b-price, #oc-b-range) .ocb1-head__id { grid-area: id; display: flex; align-items: center; flex-wrap: wrap; gap: 12px 14px; }
:is(#oc-b-price, #oc-b-range) .ocb1-head__col {
  display: inline-block; padding: 8px 14px; border-radius: 8px; line-height: 1;
  background: var(--ocb1-head); border: 1px solid var(--ocb1-edge-2); color: var(--ocb1-muted);
  font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap;
}
:is(#oc-b-price, #oc-b-range) .ocb1-head h3 {
  margin: 0; font-family: var(--font-display); font-size: 1.5rem; line-height: 1.2; font-weight: 700; color: var(--text-1);
}
:is(#oc-b-price, #oc-b-range) .ocb1-head__lede { grid-area: lede; max-width: 64ch; font-size: 15.5px; line-height: 1.55; color: var(--text-2); }
:is(#oc-b-price, #oc-b-range) .ocb1-where { grid-area: where; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
:is(#oc-b-price, #oc-b-range) .ocb1-where li {
  display: inline-flex; align-items: baseline; gap: 8px; padding: 5px 13px; border-radius: 999px;
  border: 1px solid var(--border-soft); font-size: 13px; line-height: 1.35; white-space: nowrap;
}
:is(#oc-b-price, #oc-b-range) .ocb1-where b { color: var(--text-1); font-weight: 700; }
:is(#oc-b-price, #oc-b-range) .ocb1-where span { color: var(--text-3); }
:is(#oc-b-price, #oc-b-range) .ocb1-where .is-on { border-color: color-mix(in srgb, var(--ocb1-up) 45%, transparent); background: color-mix(in srgb, var(--ocb1-up) 7%, transparent); }
:is(#oc-b-price, #oc-b-range) .ocb1-where .is-on span { color: var(--text-2); }
:is(#oc-b-price, #oc-b-range) .ocb1-where .is-none { border-style: dashed; }

/* ── Stage: the cell as printed (left), anatomy and worked example (right) ─ */
:is(#oc-b-price, #oc-b-range) .ocb1-stage { display: grid; grid-template-columns: minmax(0, 1fr); gap: 26px; padding: 26px 28px; }
:is(#oc-b-price, #oc-b-range) .ocb1-stage__shot { min-width: 0; }
:is(#oc-b-price, #oc-b-range) .ocb1-stage__read { min-width: 0; display: flex; flex-direction: column; gap: 22px; }

:is(#oc-b-price, #oc-b-range) .ocb1-h {
  margin: 0 0 12px; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 14px;
  font-family: var(--font-sans); font-size: 13px; line-height: 1.35; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-3);
}
:is(#oc-b-price, #oc-b-range) .ocb1-h em { font-style: normal; font-weight: 600; letter-spacing: 0.01em; text-transform: none; color: var(--text-3); }

/* The picture frame (the guide's .ocv-real figure, stretched to the column) */
:is(#oc-b-price, #oc-b-range) .ocb1-stage__shot .ocv-real { margin: 0; height: 100%; display: flex; flex-direction: column; border-radius: 16px; }
:is(#oc-b-price, #oc-b-range) .ocb1-stage__shot .ocv-real__bar { padding: 10px 16px; }
:is(#oc-b-price, #oc-b-range) .ocb1-stage__shot .ocv-real__label { font-size: 13.5px; line-height: 1.35; }
:is(#oc-b-price, #oc-b-range) .ocb1-stage__shot .ocv-real__shot { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; padding: 22px 16px; overflow: hidden; }
:is(#oc-b-price, #oc-b-range) .ocb1-stage__shot .ocv-real__cap { padding: 0 18px 16px; font-size: 13.5px; line-height: 1.5; text-align: left; }
:is(#oc-b-price, #oc-b-range) .ocv-real__tag { font-size: 13px; letter-spacing: 0.08em; }
:is(#oc-b-price, #oc-b-range) .ocb1-drawn .ocv-real__tag { color: var(--ocb1-avg); }

:is(#oc-b-price, #oc-b-range) .ocb1-pinbox { position: relative; display: block; flex: none; width: min(100%, calc(var(--real-w) * 1.28)); }
:is(#oc-b-price, #oc-b-range) .ocb1-pinbox img { display: block; width: 100%; height: 100%; max-width: none; border-radius: 4px; }
:is(#oc-b-price, #oc-b-range) .ocb1-leads { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
:is(#oc-b-price, #oc-b-range) .ocb1-leads line { stroke: var(--ocb1-pin); stroke-width: 1.5; vector-effect: non-scaling-stroke; opacity: 0.9; }
:is(#oc-b-price, #oc-b-range) .ocb1-dot { position: absolute; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; border-radius: 50%; background: var(--ocb1-pin); box-shadow: 0 0 0 2px var(--ocb1-ring); }
:is(#oc-b-price, #oc-b-range) .ocb1-pin,
:is(#oc-b-price, #oc-b-range) .ocb1-n {
  display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; flex: none;
  background: var(--ocb1-pin); color: var(--ocb1-pin-ink); font: 700 14px/1 var(--font-sans); font-variant-numeric: tabular-nums;
}
:is(#oc-b-price, #oc-b-range) .ocb1-pin { position: absolute; margin: -13px 0 0 -13px; box-shadow: 0 0 0 3px var(--ocb1-ring); z-index: 2; }

/* The cell drawn at the capture's proportions (for cells the deck could not capture) */
:is(#oc-b-price, #oc-b-range) .ocb1-pinbox--drawn { container-type: inline-size; }
:is(#oc-b-price, #oc-b-range) .ocb1-big { position: absolute; inset: 0; display: block; background: var(--ocb1-bg); border-radius: 4px; overflow: hidden; }
:is(#oc-b-price, #oc-b-range) .ocb1-big__h {
  position: absolute; left: 0; right: 0; top: 0; height: 44.2%; display: flex; align-items: center; justify-content: center;
  background: var(--ocb1-head); box-shadow: inset 0 -1cqw 0 var(--ocb1-rule); color: var(--ocb1-muted);
  font-size: 12.4cqw; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; line-height: 1; padding-bottom: 1.2cqw;
}
:is(#oc-b-price, #oc-b-range) .ocb1-big__v {
  position: absolute; left: 7.65%; top: 72.6%; transform: translateY(-50%); color: var(--ocb1-ink);
  font-size: 12.4cqw; font-weight: 600; line-height: 1; letter-spacing: -0.006em;
}

/* Anatomy legend */
:is(#oc-b-price, #oc-b-range) .ocb1-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
:is(#oc-b-price, #oc-b-range) .ocb1-legend li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; align-items: start; font-size: 14.5px; line-height: 1.5; color: var(--text-2); }
:is(#oc-b-price, #oc-b-range) .ocb1-legend .ocb1-n { margin-top: 1px; }

/* Gauge panel (right column) */
:is(#oc-b-price, #oc-b-range) .ocb1-gaugebox { flex: 1 1 auto; display: flex; flex-direction: column; border: 1px solid var(--border-soft); border-radius: 16px; background: rgba(var(--shade-ch), calc(0.28 * var(--k-band))); padding: 16px 18px 12px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gaugebox .ocb1-gauge { margin-block: auto; }
:is(#oc-b-price, #oc-b-range) .ocb1-gaugebox .ocb1-h { margin-bottom: 8px; }

/* Worked example: three steps across the card */
:is(#oc-b-price, #oc-b-range) .ocb1-calc { padding: 22px 28px 26px; border-top: 1px solid var(--border-soft); }
:is(#oc-b-price, #oc-b-range) .ocb1-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
:is(#oc-b-price, #oc-b-range) .ocb1-steps li {
  position: relative; display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 14px 16px 16px;
  border: 1px solid var(--border-soft); border-radius: 14px; background: rgba(var(--shade-ch), calc(0.26 * var(--k-band))); font-size: 14.5px; line-height: 1.5;
}
:is(#oc-b-price, #oc-b-range) .ocb1-steps__k { font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); line-height: 1.3; }
:is(#oc-b-price, #oc-b-range) .ocb1-steps__x { flex: 1 1 auto; color: var(--text-2); min-width: 0; overflow-wrap: anywhere; }
:is(#oc-b-price, #oc-b-range) .ocb1-steps__r { margin-top: auto; font-size: 1.35rem; font-weight: 700; line-height: 1.2; color: var(--text-1); white-space: nowrap; }
:is(#oc-b-price, #oc-b-range) .ocb1-print {
  display: inline-block; min-width: 5rem; padding: 7px 14px 8px; border-radius: 9px; text-align: center; line-height: 1.3;
  background: var(--ocb1-bg); border: 1px solid var(--ocb1-edge-3); color: var(--ocb1-ink); font-size: 1.15rem; font-weight: 700;
}
:is(#oc-b-price, #oc-b-range) .ocb1-print small { font-size: 14px; font-weight: 600; color: var(--ocb1-muted); }
:is(#oc-b-price, #oc-b-range) .ocb1-print small.is-up { color: var(--ocb1-up); }
:is(#oc-b-price, #oc-b-range) .ocb1-print small.is-down { color: var(--ocb1-down); }

/* ── Gauge: a number line with exact positions ─────────────────────────── */
:is(#oc-b-price, #oc-b-range) .ocb1-gauge { position: relative; padding: 0 34px; margin: 4px 0 8px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gr { position: relative; }
:is(#oc-b-price, #oc-b-range) .ocb1-gr--top { height: 28px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gr--track { height: 32px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gr--bot { height: 48px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gr--axis { height: 26px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gr--gap { height: 58px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gm { position: absolute; display: flex; flex-direction: column; white-space: nowrap; font-size: 14px; line-height: 1.25; color: var(--text-1); }
:is(#oc-b-price, #oc-b-range) .ocb1-gr--top .ocb1-gm { bottom: 4px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gr--bot .ocb1-gm { top: 4px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gm--c { transform: translateX(-50%); align-items: center; }
:is(#oc-b-price, #oc-b-range) .ocb1-gm--s { align-items: flex-start; }
:is(#oc-b-price, #oc-b-range) .ocb1-gm--e { transform: translateX(-100%); align-items: flex-end; }
:is(#oc-b-price, #oc-b-range) .ocb1-gm b { font-weight: 700; margin-right: 2px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gm small { font-size: 13px; color: var(--text-3); font-weight: 600; }
:is(#oc-b-price, #oc-b-range) .ocb1-gm__t { font-weight: 700; }
:is(#oc-b-price, #oc-b-range) .ocb1-gm[data-k="prev"] b { color: var(--ocb1-muted); }
:is(#oc-b-price, #oc-b-range) .ocb1-gm[data-k="avg"] b { color: var(--ocb1-avg); }
:is(#oc-b-price, #oc-b-range) .ocb1-gm[data-k="high"] b { color: var(--ocb1-up); }
:is(#oc-b-price, #oc-b-range) .ocb1-gm[data-k="low"] b { color: var(--ocb1-down); }
:is(#oc-b-price, #oc-b-range) .ocb1-gtrack { position: absolute; left: 0; right: 0; top: 50%; height: 10px; margin-top: -5px; border-radius: 5px; background: var(--ocb1-track); }
:is(#oc-b-price, #oc-b-range) .ocb1-gband { position: absolute; top: 50%; height: 10px; margin-top: -5px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gband--down { background: color-mix(in srgb, var(--ocb1-down) 55%, transparent); }
:is(#oc-b-price, #oc-b-range) .ocb1-gband--up { background: color-mix(in srgb, var(--ocb1-up) 50%, transparent); }
:is(#oc-b-price, #oc-b-range) .ocb1-gband--avg { background: color-mix(in srgb, var(--ocb1-avg) 50%, transparent); }
:is(#oc-b-price, #oc-b-range) .ocb1-gpin { position: absolute; top: 50%; width: 4px; height: 28px; margin: -14px 0 0 -2px; border-radius: 2px; background: var(--ocb1-ink); }
:is(#oc-b-price, #oc-b-range) .ocb1-gpin[data-k="prev"] { background: var(--ocb1-muted); }
:is(#oc-b-price, #oc-b-range) .ocb1-gpin[data-k="avg"] { background: var(--ocb1-avg); }
:is(#oc-b-price, #oc-b-range) .ocb1-gpin[data-k="high"] { background: var(--ocb1-up); }
:is(#oc-b-price, #oc-b-range) .ocb1-gpin[data-k="low"] { background: var(--ocb1-down); }
:is(#oc-b-price, #oc-b-range) .ocb1-gr--axis span { position: absolute; top: 0; transform: translateX(-50%); font-size: 13px; line-height: 1; color: var(--text-3); }
:is(#oc-b-price, #oc-b-range) .ocb1-gr--axis span::before { content: ""; display: block; width: 1px; height: 6px; margin: 0 auto 4px; background: var(--ocb1-tick); }
:is(#oc-b-price, #oc-b-range) .ocb1-gbr { position: absolute; top: 4px; height: 10px; border: 1.5px solid var(--ocb1-brk); border-top: 0; border-radius: 0 0 5px 5px; }
:is(#oc-b-price, #oc-b-range) .ocb1-gbr__t { position: absolute; top: 16px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; white-space: nowrap; font-size: 14px; line-height: 1.3; color: var(--text-1); }
:is(#oc-b-price, #oc-b-range) .ocb1-gbr__t small { font-size: 13px; font-weight: 600; color: var(--text-3); }
/* LTP Chg points at the gap in rupees, Chg% at the same gap as a share of Prev */
:is(#oc-b-price, #oc-b-range) .ocb1-gauge:is([data-focus="gap"], [data-focus="pct"]) .ocb1-gbr { border-color: var(--ocb1-brk-hi); }
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="gap"] .ocb1-gbr__t small { opacity: var(--ocb1-dim-2); }
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="pct"] .ocb1-gbr__t b { opacity: var(--ocb1-dim-2); font-weight: 600; }
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="pct"] .ocb1-gbr__t small { color: var(--text-1); font-size: 14px; font-weight: 700; }
/* A card puts its own marker forward; the other markers step back */
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="ltp"] .ocb1-gpin:not([data-k="ltp"]),
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="prev"] .ocb1-gpin:not([data-k="prev"]),
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="avg"] .ocb1-gpin:not([data-k="avg"]):not([data-k="ltp"]),
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="high"] .ocb1-gpin:not([data-k="high"]),
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="low"] .ocb1-gpin:not([data-k="low"]) { opacity: var(--ocb1-dim); }
/* a marker's words step back less than its pin does, so they stay readable (dark: the same 0.55 for both) */
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="ltp"] .ocb1-gm:not([data-k="ltp"]),
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="prev"] .ocb1-gm:not([data-k="prev"]),
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="avg"] .ocb1-gm:not([data-k="avg"]):not([data-k="ltp"]),
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="high"] .ocb1-gm:not([data-k="high"]),
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="low"] .ocb1-gm:not([data-k="low"]) { opacity: var(--ocb1-dim-t); }
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus]:not([data-focus="gap"]) .ocb1-gpin[data-k="ltp"] { box-shadow: none; }
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="ltp"] .ocb1-gpin[data-k="ltp"],
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="prev"] .ocb1-gpin[data-k="prev"],
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="avg"] .ocb1-gpin[data-k="avg"],
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="high"] .ocb1-gpin[data-k="high"],
:is(#oc-b-price, #oc-b-range) .ocb1-gauge[data-focus="low"] .ocb1-gpin[data-k="low"] { box-shadow: 0 0 0 4px var(--ocb1-halo); }

/* ── Fact rows ─────────────────────────────────────────────────────────── */
:is(#oc-b-price, #oc-b-range) .ocb1-facts { display: grid; grid-template-columns: minmax(0, 1fr); margin: 0; border-top: 1px solid var(--border-soft); }
:is(#oc-b-price, #oc-b-range) .ocb1-facts > div { padding: 16px 28px 18px; border-bottom: 1px solid var(--border-soft); min-width: 0; }
:is(#oc-b-price, #oc-b-range) .ocb1-facts > div:last-child { border-bottom: 0; }
:is(#oc-b-price, #oc-b-range) .ocb1-facts dt { font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); line-height: 1.3; }
:is(#oc-b-price, #oc-b-range) .ocb1-facts dd { margin: 5px 0 0; font-size: 14.5px; line-height: 1.6; color: var(--text-2); overflow-wrap: anywhere; }
:is(#oc-b-price, #oc-b-range) .ocb1-facts .is-warn { background: color-mix(in srgb, var(--ocb1-avg) 7%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ocb1-avg) 45%, transparent); }
:is(#oc-b-price, #oc-b-range) .ocb1-facts .is-warn dt { color: var(--ocb1-avg); }

/* ── States ────────────────────────────────────────────────────────────── */
:is(#oc-b-price, #oc-b-range) .ocb1-states { padding: 22px 28px 28px; border-top: 1px solid var(--border-soft); background: rgba(var(--shade-ch), calc(0.16 * var(--k-band))); }
:is(#oc-b-price, #oc-b-range) .ocb1-states__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 14px; }
:is(#oc-b-price, #oc-b-range) .ocb1-tile { margin: 0; display: flex; flex-direction: column; gap: 12px; padding: 14px; border: 1px solid var(--border-soft); border-radius: 14px; background: rgba(var(--ink-rgb), 0.025); min-width: 0; }
:is(#oc-b-price, #oc-b-range) .ocb1-tile figcaption { display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; line-height: 1.4; color: var(--text-3); }
:is(#oc-b-price, #oc-b-range) .ocb1-tile figcaption b { font-size: 14px; color: var(--text-1); }
:is(#oc-b-price, #oc-b-range) .ocb1-tile figcaption em { margin-top: 4px; font-style: normal; font-size: 13px; line-height: 1.35; color: var(--ocb1-avg); }
:is(#oc-b-price, #oc-b-range) .ocb1-none {
  width: 150px; max-width: 100%; min-height: 118px; margin: 0 auto; padding: 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  border: 1.5px dashed rgba(var(--ink-rgb), 0.22); border-radius: 8px; text-align: center; font-size: 13.5px; line-height: 1.35; color: var(--text-3);
}
:is(#oc-b-price, #oc-b-range) .ocb1-none b { font-size: 14px; color: var(--text-2); }

/* The tool's cell, redrawn small */
:is(#oc-b-price, #oc-b-range) .ocb1-cell { width: 150px; max-width: 100%; margin: 0 auto; border-radius: 8px; overflow: hidden; border: 1px solid var(--ocb1-edge-1); background: var(--ocb1-bg); }
:is(#oc-b-price, #oc-b-range) .ocb1-cell__h {
  padding: 21px 6px 20px; text-align: center; background: var(--ocb1-head); border-bottom: 1.5px solid var(--ocb1-rule); color: var(--ocb1-muted);
  font-size: 17px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; line-height: 1;
}
:is(#oc-b-price, #oc-b-range) .ocb1-cell__b { min-height: 74px; display: flex; flex-direction: column; justify-content: center; gap: 7px; padding: 8px 12px; color: var(--ocb1-ink); }
:is(#oc-b-price, #oc-b-range) .ocb1-cell--center .ocb1-cell__b { align-items: center; }
:is(#oc-b-price, #oc-b-range) .ocb1-cell--left .ocb1-cell__b { align-items: flex-start; padding-left: 11px; }
/* The tool prints the LTP and Chg% cells at weight 700 and the plain figure columns at 600 */
:is(#oc-b-price, #oc-b-range) .ocb1-cell__v { font-size: 16.5px; font-weight: 700; line-height: 1.05; letter-spacing: -0.006em; }
:is(#oc-b-price, #oc-b-range) .ocb1-cell--left .ocb1-cell__v { font-weight: 600; font-size: 18.5px; }
:is(#oc-b-price, #oc-b-range) .ocb1-cell__v.is-dim { color: var(--ocb1-muted); }
:is(#oc-b-price, #oc-b-range) .ocb1-cell__s { font-size: 14px; font-weight: 600; line-height: 1; color: var(--ocb1-muted); }
:is(#oc-b-price, #oc-b-range) .ocb1-cell__s.is-up { color: var(--ocb1-up); }
:is(#oc-b-price, #oc-b-range) .ocb1-cell__s.is-down { color: var(--ocb1-down); }

/* ── Day-range hero ────────────────────────────────────────────────────── */
:is(#oc-b-price, #oc-b-range) .ocb1-hero { margin: 36px 0; border: 1px solid var(--border-soft); border-radius: 20px; background: var(--surface); overflow: hidden; font-variant-numeric: tabular-nums; }
:is(#oc-b-price, #oc-b-range) .ocb1-hero__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; padding: 18px 28px; background: rgba(var(--shade-ch), calc(0.26 * var(--k-band))); border-bottom: 1px solid var(--border-soft); }
:is(#oc-b-price, #oc-b-range) .ocb1-hero__eyebrow { font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sahi-cyan); }
:is(#oc-b-price, #oc-b-range) .ocb1-hero__title { font-size: 1.05rem; font-weight: 700; color: var(--text-1); }
:is(#oc-b-price, #oc-b-range) .ocb1-hero__sub { font-size: 14px; color: var(--text-3); }
:is(#oc-b-price, #oc-b-range) .ocb1-hero__body { padding: 28px 28px 24px; display: flex; flex-direction: column; gap: 22px; }
:is(#oc-b-price, #oc-b-range) .ocb1-hero .ocb1-gauge { padding: 0 54px; margin: 0; }
:is(#oc-b-price, #oc-b-range) .ocb1-hero__stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 12px; }
:is(#oc-b-price, #oc-b-range) .ocb1-hero__stats li { display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; border: 1px solid var(--border-soft); border-radius: 12px; background: rgba(var(--ink-rgb), 0.03); font-size: 14px; line-height: 1.45; color: var(--text-2); }
:is(#oc-b-price, #oc-b-range) .ocb1-hero__stats b { font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); }
:is(#oc-b-price, #oc-b-range) .ocb1-hero__stats strong { color: var(--text-1); }
:is(#oc-b-price, #oc-b-range) .ocb1-hero__foot { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px 16px; padding: 14px 28px; border-top: 1px solid var(--border-soft); background: rgba(var(--shade-ch), calc(0.18 * var(--k-band))); font-size: 13.5px; line-height: 1.5; color: var(--text-3); }
:is(#oc-b-price, #oc-b-range) .ocb1-tag { flex: none; padding: 2px 10px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--ocb1-avg) 50%, transparent); color: var(--ocb1-avg); font-size: 13px; font-weight: 700; letter-spacing: 0.04em; white-space: nowrap; }
:is(#oc-b-price, #oc-b-range) .ocb1-hero__foot > span:last-child { flex: 1 1 320px; }

/* The price line, cropped to its middle pill */
:is(#oc-b-price, #oc-b-range) .ocv-real.ocb1-spot { max-width: 760px; margin: 28px 0 36px; }
:is(#oc-b-price, #oc-b-range) .ocb1-spot .ocv-real__shot { display: block; padding: 16px 0; overflow: hidden; }
:is(#oc-b-price, #oc-b-range) .ocb1-spot .ocv-real__shot img { width: 250%; max-width: none; margin-left: -75%; border-radius: 0; clip-path: inset(0 32.9% 0 32.9%); }
:is(#oc-b-price, #oc-b-range) .ocb1-spot .ocv-real__cap { text-align: left; padding: 0 18px 16px; }

/* ── Wide cards: picture left, reading right ───────────────────────────── */
@container ocb1 (min-width: 780px) {
  :is(#oc-b-price, #oc-b-range) .ocb1-stage { grid-template-columns: minmax(0, 28rem) minmax(0, 1fr); gap: 32px; }
}
@container ocb1 (min-width: 700px) {
  :is(#oc-b-price, #oc-b-range) .ocb1-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  :is(#oc-b-price, #oc-b-range) .ocb1-steps li + li::before { content: "\203A"; position: absolute; left: -14px; top: 50%; width: 14px; margin-top: -12px; text-align: center; font-size: 22px; line-height: 1; color: var(--text-3); }
}
@container ocb1 (min-width: 700px) {
  :is(#oc-b-price, #oc-b-range) .ocb1-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :is(#oc-b-price, #oc-b-range) .ocb1-facts > div:nth-child(odd):not(.is-wide) { border-right: 1px solid var(--border-soft); }
  :is(#oc-b-price, #oc-b-range) .ocb1-facts > .is-wide { grid-column: 1 / -1; }
}
/* Narrow cards (phones): tighter padding, header stacks */
@container ocb1 (max-width: 600px) {
  :is(#oc-b-price, #oc-b-range) .ocb1-head { grid-template-columns: minmax(0, 1fr); grid-template-areas: "id" "lede" "where"; padding: 18px 18px 16px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-where { flex-direction: row; flex-wrap: wrap; align-items: center; margin-top: 4px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-head h3 { font-size: 1.3rem; }
  :is(#oc-b-price, #oc-b-range) .ocb1-stage { padding: 18px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-facts > div { padding: 14px 18px 16px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-states { padding: 18px 18px 22px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-states__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-tile { padding: 10px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-gaugebox { padding: 14px 14px 6px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-calc { padding: 18px 18px 22px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-gauge { padding: 0 28px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-stage__shot .ocv-real__shot { min-height: 0; padding: 18px 12px; }
}
@media (max-width: 640px) {
  :is(#oc-b-price, #oc-b-range) .ocb1-stack { gap: 26px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-hero__head, :is(#oc-b-price, #oc-b-range) .ocb1-hero__foot { padding-left: 18px; padding-right: 18px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-hero__body { padding: 22px 18px 20px; }
  :is(#oc-b-price, #oc-b-range) .ocb1-hero .ocb1-gauge { padding: 0 30px; }
}

/* ── 21-b2-quote-pct-table.css ── */
/* Option Chain guide, part B (second half): the quote cells, the quote as a share of spot, the worked table.
   Sections #oc-b-quote, #oc-b-pct, #oc-b-table. Every class starts with ocb2-. Markup: scripts/guides/option-chain-parts/b2.mjs. */
/* Part B (second half), light and dark. The replica cells copy the tool's own neutral chain palette, taken from the real close-ups.
   Dark: header band #1a1a1a with #a3a3a3 text, cell body #0f0f0f with #fafafa figures, rule #404040.
   Light (read off the light captures and the tool's :root[data-theme="light"] block): header and body both white, ink #0f0f0f,
   header text #5f5f5f, rule #e6e6e6 (neutral-200), outer edge #d3d3d3 (neutral-300, the tool's --line-strong).
   The hover card replica is the tool's .chv__card: dark #242424 with a #404040 ring, light white with an #e6e6e6 ring and the
   tool's lift shadow. Everything else uses the page tokens, so it flips with the theme. */

:is(#oc-b-quote, #oc-b-pct, #oc-b-table) {
    --ocb2-th-bg: #1a1a1a;
    --ocb2-th-ink: #a3a3a3;
    --ocb2-td-bg: #0f0f0f;
    --ocb2-td-ink: #fafafa;
    --ocb2-rule: #404040;
    --ocb2-edge: #404040;
    --ocb2-bid: var(--sahi-cyan);
    --ocb2-ask: #FEA3E5;
    --ocb2-plate: rgba(var(--shade-ch), calc(0.28 * var(--k-band)));
    --ocb2-warn: var(--bu-long-unwind);
    --ocb2-bar: rgba(var(--ink-rgb), 0.07);
    --ocb2-span-edge: rgba(var(--ink-rgb), 0.4);
    --ocb2-hatch: rgba(var(--ink-rgb), 0.14);
    --ocb2-lane-bid: inset 2px 0 0 var(--ocb2-bid);
    --ocb2-lane-ask: inset 2px 0 0 var(--ocb2-ask);
    --ocb2-lane-edge-bid: var(--border-soft);
    --ocb2-lane-edge-ask: var(--border-soft);
    --ocb2-hov-bg: #242424;
    --ocb2-hov-edge: #404040;
    --ocb2-hov-bw: 2px;
    --ocb2-hov-rule: #404040;
    --ocb2-hov-ink: #ffffff;
    --ocb2-hov-muted: #a3a3a3;
    --ocb2-hov-val: #d3d3d3;
    --ocb2-hov-lift: none;
}
:root[data-theme="light"] :is(#oc-b-quote, #oc-b-pct, #oc-b-table) {
    --ocb2-th-bg: #ffffff;
    --ocb2-th-ink: #5f5f5f;
    --ocb2-td-bg: #ffffff;
    --ocb2-td-ink: #0f0f0f;
    --ocb2-rule: #e6e6e6;
    --ocb2-edge: #d3d3d3;
    /* the guide's highlight is the brand pink on light, so Buyers and Sellers keep two hues: green and pink */
    --ocb2-bid: var(--sahi-positive);
    --ocb2-ask: var(--sahi-accent);
    --ocb2-bar: rgba(var(--ink-rgb), 0.1);
    --ocb2-span-edge: rgba(var(--ink-rgb), 0.45);
    --ocb2-hatch: rgba(var(--ink-rgb), 0.16);
    /* no side stripe on a card in light: a thin tinted edge says the same */
    --ocb2-lane-bid: none;
    --ocb2-lane-ask: none;
    --ocb2-lane-edge-bid: color-mix(in srgb, var(--ocb2-bid) 55%, transparent);
    --ocb2-lane-edge-ask: color-mix(in srgb, var(--ocb2-ask) 55%, transparent);
    --ocb2-hov-bg: #ffffff;
    --ocb2-hov-edge: #d3d3d3;
    --ocb2-hov-bw: 1px;
    --ocb2-hov-rule: #e6e6e6;
    --ocb2-hov-ink: #0f0f0f;
    --ocb2-hov-muted: #5f5f5f;
    --ocb2-hov-val: #404040;
    --ocb2-hov-lift: 0 8px 20px rgba(var(--shade-ch), calc(0.28 * var(--k-shadow)));
}

/* guide-ux.js reveals a whole section once 8% of it is on screen. These three sections are taller than a phone screen divided by
   0.08 (about 9,000px at 390px wide), so that threshold can never be met and the section would stay invisible. Their inner
   blocks reveal on their own (data-aos, threshold 0), so the section wrapper is simply always shown. The same script hides every
   *__bar / *__fill element (the "Real tool" label bar, the order-book bars) at scaleX(0) until that section has revealed, so those
   are shown as well. */
#oc-b-quote.ux-r, #oc-b-pct.ux-r, #oc-b-table.ux-r { opacity: 1; transform: none; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) :is(.ux-grow-x, .ux-grow-y, .ux-r):not(.ux-in) { opacity: 1; transform: none; }

/* ── Furniture shared by the three sections ───────────────────────────────── */
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-h {
    margin: 0 0 10px; font-size: 13px; font-weight: 700; line-height: 1.3; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3);
}
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-h span { margin-left: 8px; letter-spacing: 0.02em; text-transform: none; font-weight: 600; color: var(--text-2); }

:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-pin {
    display: inline-grid; place-items: center; flex: none; width: 22px; height: 22px; border-radius: 50%;
    background: var(--sahi-cyan); color: var(--sahi-bg-0); font: 700 13px/1 var(--font-sans); font-style: normal; font-variant-numeric: tabular-nums;
}
/* a part of a replica that a numbered pin points at */
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-part { position: relative; display: inline-block; outline: 1.5px dashed color-mix(in srgb, var(--sahi-cyan) 60%, transparent); outline-offset: 5px; border-radius: 3px; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-part::after {
    content: attr(data-n); position: absolute; top: -21px; right: -20px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%;
    background: var(--sahi-cyan); color: var(--sahi-bg-0); font: 700 13px/1 var(--font-sans); letter-spacing: 0; text-transform: none;
}

/* A replica of one column cell: header band over a figure, as the tool prints it */
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell {
    display: inline-flex; flex-direction: column; min-width: 132px; text-align: center; font-variant-numeric: tabular-nums;
    border: 1px solid var(--ocb2-edge); border-radius: 12px; background: var(--ocb2-td-bg); overflow: hidden;
}
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell__h {
    padding: 13px 16px; border-bottom: 1px solid var(--ocb2-rule); background: var(--ocb2-th-bg); color: var(--ocb2-th-ink);
    font: 700 12px/1.2 var(--font-sans); letter-spacing: 0.14em; text-transform: uppercase; white-space: nowrap;
}
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell__v { padding: 18px 16px; color: var(--ocb2-td-ink); font-size: 22px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.1; white-space: nowrap; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell__s { padding: 0 14px 12px; margin-top: -6px; font-size: 13px; line-height: 1.2; color: var(--ocb2-th-ink); }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell--lg { min-width: 168px; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell--lg .ocb2-cell__h { padding: 14px 22px; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell--lg .ocb2-cell__v { padding: 22px 20px; font-size: 30px; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell--lg .ocb2-cell__s { padding-bottom: 14px; margin-top: -10px; }
/* a pin on the whole cell (the order book) */
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell.has-pin { position: relative; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell.has-pin::after {
    content: attr(data-n); position: absolute; top: -11px; right: -11px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%;
    background: var(--sahi-cyan); color: var(--sahi-bg-0); font: 700 13px/1 var(--font-sans);
}
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell--sm { min-width: 0; width: 100%; max-width: 200px; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell--sm .ocb2-cell__h { padding: 9px 10px; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell--sm .ocb2-cell__v { padding: 13px 10px; font-size: 20px; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell--book { min-width: 156px; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell--book .ocb2-cell__v { padding: 14px 16px; font-size: 26px; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell--flow { min-width: 0; width: 100%; max-width: 188px; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-cell--flow .ocb2-cell__v { padding: 14px 10px; font-size: 24px; }

/* Figure shell (the book, the flow, the table) */
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-fig {
    container: ocb2fig / inline-size; margin: 32px 0; border: 1px solid var(--border-soft); border-radius: 18px; background: var(--surface); overflow: hidden; line-height: 1.5;
}
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-fig__head {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; padding: 15px 22px; border-bottom: 1px solid var(--border-soft); background: var(--ocb2-plate);
}
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-fig__eyebrow { font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sahi-cyan); }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-fig__title { font-size: 1rem; font-weight: 700; color: var(--text-1); }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-fig__chip { margin-left: auto; font-size: 13px; color: var(--text-3); }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-fig figcaption { padding: 16px 22px 20px; border-top: 1px solid var(--border-soft); background: rgba(var(--shade-ch), calc(0.18 * var(--k-band))); }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-fig figcaption > p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--text-2); }

/* ── The real tool in context (the wide crop) ─────────────────────────────── */
#oc-b-quote .ocb2-context { margin: 28px 0; }
#oc-b-quote .ocb2-context .ocv-real { margin: 0; }
#oc-b-quote .ocb2-context .ocv-real__tag { font-size: 13px; }
#oc-b-quote .ocb2-context .ocv-real__label { font-size: 0.95rem; }
#oc-b-quote .ocb2-context .ocv-real__cap { padding: 4px 22px 18px; font-size: 0.95rem; line-height: 1.6; text-align: left; color: var(--text-2); }
/* the capture is the whole chain; crop it to the columns this section is about (everything from Ask Size to Strike) */
#oc-b-quote .ocb2-wide .ocv-real__shot { padding: 0; display: block; overflow-x: auto; }
#oc-b-quote .ocb2-wide .ocv-real__shot img {
    display: block; width: 100%; max-width: none; height: auto; aspect-ratio: 936 / 351; object-fit: cover; object-position: 100% 0; border-radius: 0;
}
#oc-b-quote .ocb2-hint { display: none; color: var(--sahi-cyan); font-weight: 600; }
@media (max-width: 760px) {
    #oc-b-quote .ocb2-wide .ocv-real__shot img { width: 768px; }
    #oc-b-quote .ocb2-hint { display: inline; }
}

/* ── The mini order book ──────────────────────────────────────────────────── */
#oc-b-quote .ocb2-book__body { padding: 20px 22px 18px; display: flex; flex-direction: column; }
#oc-b-quote .ocb2-book__cols, #oc-b-quote .ocb2-book__row, #oc-b-quote .ocb2-book__gap {
    display: grid; grid-template-columns: 132px 176px minmax(0, 1fr); column-gap: 26px; align-items: center;
}
#oc-b-quote .ocb2-book__cols { padding-bottom: 8px; font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
#oc-b-quote .ocb2-book__row { padding: 14px 0; border-top: 1px solid var(--border-soft); }
#oc-b-quote .ocb2-book__who { display: flex; flex-direction: column; gap: 2px; font-size: 14px; color: var(--text-3); }
#oc-b-quote .ocb2-book__who b { font-size: 1.05rem; color: var(--text-1); }
#oc-b-quote .ocb2-book__row.is-ask .ocb2-book__who b { color: var(--ocb2-ask); }
#oc-b-quote .ocb2-book__row.is-bid .ocb2-book__who b { color: var(--ocb2-bid); }
#oc-b-quote .ocb2-book__px { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
#oc-b-quote .ocb2-book__ltp { font-size: 13px; line-height: 1.2; color: var(--text-3); }
#oc-b-quote .ocb2-book__qty { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
#oc-b-quote .ocb2-book__bar { display: block; height: 16px; border-radius: 8px; background: var(--ocb2-bar); overflow: hidden; }
#oc-b-quote .ocb2-book__bar i { display: block; height: 100%; min-width: 6px; border-radius: 8px; }
#oc-b-quote .ocb2-book__row.is-ask .ocb2-book__bar i { background: var(--ocb2-ask); }
#oc-b-quote .ocb2-book__row.is-bid .ocb2-book__bar i { background: var(--ocb2-bid); }
#oc-b-quote .ocb2-book__fig { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; color: var(--text-2); }
#oc-b-quote .ocb2-book__fig .ocb2-pin { align-self: center; }
#oc-b-quote .ocb2-book__fig small { font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
#oc-b-quote .ocb2-book__fig b { font-size: 1.3rem; line-height: 1.1; color: var(--text-1); }
#oc-b-quote .ocb2-book__fig em { font-style: normal; font-size: 14px; color: var(--text-3); }
#oc-b-quote .ocb2-book__gap { min-height: 84px; }
#oc-b-quote .ocb2-book__gap .ocb2-book__who span { display: inline-flex; align-items: center; gap: 8px; }
#oc-b-quote .ocb2-book__gap .ocb2-book__who small { font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-1); }
#oc-b-quote .ocb2-book__span {
    display: grid; place-items: center; width: 156px; height: 62px; border-radius: 6px; border: 1px dashed var(--ocb2-span-edge);
    background: repeating-linear-gradient(135deg, var(--ocb2-hatch) 0 2px, transparent 2px 7px);
}
#oc-b-quote .ocb2-book__span b { padding: 2px 10px; border-radius: 6px; background: var(--sahi-bg-0); font-size: 1.1rem; color: var(--text-1); }
#oc-b-quote .ocb2-book__qty .ocb2-book__sum { display: block; font-size: 1.05rem; color: var(--text-2); }
#oc-b-quote .ocb2-book__sum b { margin-right: 8px; font-size: 1.5rem; color: var(--text-1); }
#oc-b-quote .ocb2-book__cost { display: block; font-size: 14px; color: var(--text-3); }
#oc-b-quote .ocb2-keys { list-style: none; margin: 0 0 14px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); gap: 10px 18px; }
#oc-b-quote .ocb2-keys li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 2px 10px; align-items: center; font-size: 15px; line-height: 1.35; }
#oc-b-quote .ocb2-keys a { font-weight: 700; }
#oc-b-quote .ocb2-keys li > span:last-child { grid-column: 2; font-size: 14px; color: var(--text-3); }
@container ocb2fig (max-width: 680px) {
    #oc-b-quote .ocb2-book__cols { display: none; }
    #oc-b-quote .ocb2-book__row, #oc-b-quote .ocb2-book__gap { grid-template-columns: 1fr; row-gap: 10px; }
    #oc-b-quote .ocb2-book__row { padding: 16px 0; }
    #oc-b-quote .ocb2-book__who { flex-direction: row; align-items: baseline; gap: 8px; }
    #oc-b-quote .ocb2-book__gap { min-height: 0; padding: 12px 0; }
    #oc-b-quote .ocb2-book__span { display: none; }
}

/* ── The annualising flow ─────────────────────────────────────────────────── */
#oc-b-pct .ocb2-flow__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 16px; }
#oc-b-pct .ocb2-factor { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--border-soft); background: var(--ocb2-plate); }
#oc-b-pct .ocb2-factor__t { flex: 0 0 100%; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-term {
    display: inline-flex; flex-direction: column; gap: 2px; padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border-soft); background: rgba(var(--ink-rgb), 0.045); font-variant-numeric: tabular-nums;
}
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-term small { font-size: 13px; line-height: 1.2; color: var(--text-3); }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-term b { font-size: 1.1rem; line-height: 1.2; color: var(--text-1); }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-term.is-out { border-color: var(--sahi-cyan); background: color-mix(in srgb, var(--sahi-cyan) 8%, transparent); }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-op { font-size: 15px; color: var(--text-3); white-space: nowrap; }
:is(#oc-b-quote, #oc-b-pct, #oc-b-table) .ocb2-step { display: inline-flex; align-items: center; gap: 12px; }
#oc-b-pct .ocb2-lane {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, 0.8fr) minmax(0, 1fr) minmax(104px, 0.6fr) minmax(0, 1fr); align-items: center; padding: 16px 18px;
    border: 1px solid var(--border-soft); border-radius: 14px; background: rgba(var(--ink-rgb), 0.025);
}
#oc-b-pct .ocb2-lane.is-bid { box-shadow: var(--ocb2-lane-bid); border-color: var(--ocb2-lane-edge-bid); }
#oc-b-pct .ocb2-lane.is-ask { box-shadow: var(--ocb2-lane-ask); border-color: var(--ocb2-lane-edge-ask); }
#oc-b-pct .ocb2-node { display: flex; flex-direction: column; align-items: center; gap: 8px; min-width: 0; }
#oc-b-pct .ocb2-node__x { font-size: 13px; line-height: 1.2; color: var(--text-3); font-variant-numeric: tabular-nums; }
#oc-b-pct .ocb2-node.is-end .ocb2-cell { border-color: var(--sahi-cyan); }
#oc-b-pct .ocb2-arrow { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 0 8px; font-size: 14px; line-height: 1.25; text-align: center; color: var(--text-2); font-variant-numeric: tabular-nums; }
#oc-b-pct .ocb2-arrow i { position: relative; display: block; width: 100%; height: 2px; background: var(--text-3); }
#oc-b-pct .ocb2-arrow i::after { content: ""; position: absolute; right: -1px; top: -5px; border: 6px solid transparent; border-left: 9px solid var(--text-3); border-right: 0; }
@container ocb2fig (max-width: 700px) {
    #oc-b-pct .ocb2-lane { grid-template-columns: 1fr; row-gap: 6px; justify-items: center; }
    #oc-b-pct .ocb2-arrow { padding: 4px 0; }
    #oc-b-pct .ocb2-arrow i { width: 2px; height: 22px; }
    #oc-b-pct .ocb2-arrow i::after { right: auto; left: -5px; top: auto; bottom: -1px; border: 6px solid transparent; border-top: 9px solid var(--text-3); border-bottom: 0; }
}

/* ── One cell: the sheet ──────────────────────────────────────────────────── */
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet {
    container: ocb2sheet / inline-size; margin: 30px 0; border: 1px solid var(--border-soft); border-radius: 18px; background: var(--surface); overflow: hidden;
    font-variant-numeric: tabular-nums; line-height: 1.5;
}
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 16px 22px 18px; border-bottom: 1px solid var(--border-soft); background: var(--ocb2-plate); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet__head h3 { margin: 0; font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; line-height: 1.2; color: var(--text-1); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-key { padding: 3px 9px; border: 1px solid color-mix(in srgb, var(--sahi-cyan) 30%, transparent); border-radius: 6px; font: 700 13px/1.3 "SAHI Sans", sans-serif; color: var(--sahi-cyan); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-scope { padding: 3px 11px; border: 1px solid var(--border-soft); border-radius: 999px; background: rgba(var(--ink-rgb), 0.05); font-size: 13px; font-weight: 600; color: var(--text-2); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-scope.is-adv { border-color: color-mix(in srgb, var(--sahi-cyan) 35%, transparent); color: var(--sahi-cyan); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-lede { flex: 0 0 100%; margin: 0; font-size: 1rem; line-height: 1.5; color: var(--text-2); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet__body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px 28px; padding: 22px; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet__see, :is(#oc-b-quote, #oc-b-pct) .ocb2-sheet__main { min-width: 0; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet__main { display: flex; flex-direction: column; gap: 22px; }

/* the real capture, inside the sheet */
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet .ocb2-real { margin: 0; border-radius: 14px; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet .ocb2-real .ocv-real__bar { padding: 9px 14px; gap: 4px 10px; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet .ocb2-real .ocv-real__tag { font-size: 13px; letter-spacing: 0.06em; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet .ocb2-real .ocv-real__label { font-size: 14px; line-height: 1.35; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet .ocb2-real .ocv-real__shot { padding: 16px 12px; flex: 1; align-items: center; }
/* the capture's frame fills the column, so the picture sits in a stage as tall as the explanation beside it */
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet__see { display: flex; flex-direction: column; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-sheet__see .ocb2-real { flex: 1 1 auto; display: flex; flex-direction: column; }

/* anatomy */
:is(#oc-b-quote, #oc-b-pct) .ocb2-anat__stage {
    display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: center; gap: 22px 30px; padding: 34px 24px 28px;
    border: 1px solid var(--border-soft); border-radius: 14px; background: var(--ocb2-plate);
}
:is(#oc-b-quote, #oc-b-pct) .ocb2-legend { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 9px; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-legend li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; align-items: start; font-size: 15px; line-height: 1.5; color: var(--text-2); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-legend .ocb2-pin { margin-top: 1px; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-legend code, :is(#oc-b-quote, #oc-b-pct) .ocb2-fact code {
    padding: 1px 5px; border-radius: 4px; background: rgba(var(--ink-rgb), 0.08); font-size: 13.5px; color: var(--text-1);
}
/* the hover card the tool opens on Sprd */
:is(#oc-b-quote, #oc-b-pct) .ocb2-hov {
    display: inline-flex; flex-direction: column; gap: 10px; min-width: 262px; padding: 14px 18px 16px 26px; border: var(--ocb2-hov-bw) solid var(--ocb2-hov-edge); border-radius: 14px; background: var(--ocb2-hov-bg); box-shadow: var(--ocb2-hov-lift);
}
:is(#oc-b-quote, #oc-b-pct) .ocb2-hov__top { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding-bottom: 10px; border-bottom: 1px solid var(--ocb2-hov-rule); font-size: 14px; color: var(--ocb2-hov-muted); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-hov__top b { font-size: 16px; color: var(--ocb2-hov-ink); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-hov__row { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; font-size: 14px; font-weight: 600; color: var(--ocb2-hov-muted); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-hov__row > b { font-size: 16px; color: var(--ocb2-hov-val); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-hov .ocb2-part { outline-offset: 3px; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-hov .ocb2-part::after { top: 50%; right: auto; left: -37px; transform: translateY(-50%); }

/* worked example */
:is(#oc-b-quote, #oc-b-pct) .ocb2-calc {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; padding: 14px 16px; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--ocb2-plate);
}
:is(#oc-b-quote, #oc-b-pct) .ocb2-work__note { margin: 12px 0 0; font-size: 15px; line-height: 1.6; color: var(--text-2); }

/* states */
:is(#oc-b-quote, #oc-b-pct) .ocb2-states { padding: 0 22px 8px; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-states ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); column-gap: 14px; row-gap: 0; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-state { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 8px; padding-bottom: 18px; align-content: start; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-state .ocb2-cell { align-self: start; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-state__t { font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--text-1); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-state__c { font-size: 14px; line-height: 1.5; color: var(--text-3); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-state--rule .ocb2-cell { border-style: dashed; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-state--rule .ocb2-state__t::after { content: " \00B7  rule"; font-weight: 500; color: var(--text-3); }

/* fact rows */
:is(#oc-b-quote, #oc-b-pct) .ocb2-facts { display: grid; grid-template-columns: minmax(0, 1fr); margin: 0; border-top: 1px solid var(--border-soft); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-fact { padding: 15px 22px 16px; border-bottom: 1px solid var(--border-soft); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-fact:last-child { border-bottom: 0; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-fact dt { margin: 0 0 4px; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-3); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-fact dd { margin: 0; font-size: 15px; line-height: 1.6; color: var(--text-2); overflow-wrap: anywhere; }
:is(#oc-b-quote, #oc-b-pct) .ocb2-fact.is-warn { background: color-mix(in srgb, var(--ocb2-warn) 6%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ocb2-warn) 45%, transparent); }
:is(#oc-b-quote, #oc-b-pct) .ocb2-fact.is-warn dt { color: var(--ocb2-warn); }

@container ocb2sheet (min-width: 720px) {
    :is(#oc-b-quote, #oc-b-pct) .ocb2-sheet__body { grid-template-columns: 312px minmax(0, 1fr); align-items: stretch; }
    :is(#oc-b-quote, #oc-b-pct) .ocb2-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    :is(#oc-b-quote, #oc-b-pct) .ocb2-fact:nth-child(odd):not(.is-warn) { border-right: 1px solid var(--border-soft); }
    :is(#oc-b-quote, #oc-b-pct) .ocb2-fact:nth-last-child(2):nth-child(odd) { border-bottom: 1px solid var(--border-soft); }
    :is(#oc-b-quote, #oc-b-pct) .ocb2-fact.is-warn { grid-column: 1 / -1; }
}
@container ocb2sheet (max-width: 520px) {
    :is(#oc-b-quote, #oc-b-pct) .ocb2-sheet__head, :is(#oc-b-quote, #oc-b-pct) .ocb2-sheet__body, :is(#oc-b-quote, #oc-b-pct) .ocb2-fact { padding-left: 16px; padding-right: 16px; }
    :is(#oc-b-quote, #oc-b-pct) .ocb2-states { padding-left: 16px; padding-right: 16px; }
    :is(#oc-b-quote, #oc-b-pct) .ocb2-anat__stage { padding: 30px 14px 24px; gap: 20px; }
    :is(#oc-b-quote, #oc-b-pct) .ocb2-hov { min-width: 0; width: 100%; }
}

/* ── The worked table ─────────────────────────────────────────────────────── */
#oc-b-table .ocb2-tbl { container: ocb2tbl / inline-size; margin: 32px 0; border: 1px solid var(--border-soft); border-radius: 18px; background: var(--surface); overflow: hidden; line-height: 1.5; }
#oc-b-table .ocb2-tbl__scroll {
    position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; background-color: var(--sahi-bg-0);
    /* edge fades: the covers (local) hide the shadows (scroll) once the end is reached */
    background-image:
        linear-gradient(to right, var(--sahi-bg-0) 30%, transparent),
        linear-gradient(to left, var(--sahi-bg-0) 30%, transparent),
        linear-gradient(to right, var(--scroll-edge), transparent),
        linear-gradient(to left, var(--scroll-edge), transparent);
    background-position: 0 0, 100% 0, 0 0, 100% 0;
    background-size: 34px 100%, 34px 100%, 16px 100%, 16px 100%;
    background-repeat: no-repeat;
    background-attachment: local, local, scroll, scroll;
}
#oc-b-table .ocb2-tbl__scroll:focus-visible { outline: 2px solid var(--sahi-cyan); outline-offset: -2px; }
#oc-b-table .ocb2-table { width: 100%; min-width: 840px; border-collapse: separate; border-spacing: 0; font-variant-numeric: tabular-nums; }
#oc-b-table .ocb2-table caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#oc-b-table .ocb2-table th, #oc-b-table .ocb2-table td { padding: 11px 14px; text-align: left; vertical-align: middle; font-size: 15px; line-height: 1.4; border-bottom: 1px solid var(--rule-2); }
#oc-b-table .ocb2-table thead th { padding-top: 13px; padding-bottom: 13px; font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); background: var(--sahi-bg-0); border-bottom: 1px solid var(--border-soft); white-space: nowrap; }
#oc-b-table .ocb2-table .ocb2-num { text-align: right; white-space: nowrap; }
#oc-b-table .ocb2-table td.ocb2-num { font-size: 16px; font-weight: 700; color: var(--text-1); }
#oc-b-table .ocb2-table td.ocb2-num.is-up { color: var(--toast-positive-text); }
#oc-b-table .ocb2-table td.ocb2-num.is-down { color: var(--toast-negative-text); }
#oc-b-table .ocb2-table td.ocb2-num.is-na { text-align: center; font-size: 14px; font-weight: 400; font-style: italic; color: var(--text-3); white-space: normal; }
#oc-b-table .ocb2-table thead .is-call { color: var(--sahi-negative); }
#oc-b-table .ocb2-table thead .is-put { color: var(--sahi-positive); }
#oc-b-table .ocb2-table .ocb2-rule { color: var(--text-2); }
#oc-b-table .ocb2-table .ocb2-empty { color: var(--text-3); }
#oc-b-table .ocb2-table tbody tr:last-child > * { border-bottom: 0; }
/* the cell name column stays put while the rest scrolls */
#oc-b-table .ocb2-table thead th:first-child, #oc-b-table .ocb2-table tbody th[scope="row"] {
    position: sticky; left: 0; z-index: 2; min-width: 112px; background: var(--sahi-bg-0); box-shadow: 1px 0 0 var(--border-soft), 10px 0 14px -10px rgba(var(--shade-ch), calc(0.7 * var(--k-shadow)));
}
#oc-b-table .ocb2-table thead th:first-child { background: var(--sahi-bg-0); z-index: 3; }
#oc-b-table .ocb2-table tbody th[scope="row"] { font-size: 15px; font-weight: 700; color: var(--text-1); white-space: nowrap; }
#oc-b-table .ocb2-table tbody th a { color: var(--text-1); text-decoration: none; border-bottom: 1px dotted color-mix(in srgb, var(--sahi-cyan) 70%, transparent); }
#oc-b-table .ocb2-table tbody th a:hover { color: var(--sahi-cyan); }
#oc-b-table .ocb2-grp__t { position: sticky; left: 14px; display: inline-block; }
#oc-b-table .ocb2-table .ocb2-grp th { padding: 9px 14px; background: rgba(var(--ink-rgb), 0.045); box-shadow: none; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sahi-cyan); border-bottom: 1px solid var(--border-soft); }
#oc-b-table .ocb2-m { display: inline-block; padding: 2px 10px; border: 1px solid var(--border-soft); border-radius: 999px; font-size: 13px; font-weight: 600; line-height: 1.4; white-space: nowrap; color: var(--text-2); }
#oc-b-table .ocb2-m.is-adv { border-color: color-mix(in srgb, var(--sahi-cyan) 35%, transparent); color: var(--sahi-cyan); }
#oc-b-table .ocb2-tbl__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; padding: 14px 22px; border-top: 1px solid var(--border-soft); background: rgba(var(--shade-ch), calc(0.18 * var(--k-band))); font-size: 14px; line-height: 1.55; color: var(--text-3); }
#oc-b-table .ocb2-tbl__foot .ocb2-fig__chip { margin-left: 0; color: var(--sahi-cyan); }
#oc-b-table .ocb2-swipe { display: none; font-size: 13px; font-weight: 600; color: var(--sahi-cyan); }
@container ocb2tbl (max-width: 880px) { #oc-b-table .ocb2-swipe { display: inline; } }

/* narrow screens: each row becomes a card, no sideways scroll */
@container ocb2tbl (max-width: 600px) {
    #oc-b-table .ocb2-swipe { display: none; }
    #oc-b-table .ocb2-tbl__scroll { overflow-x: visible; background-image: none; }
    #oc-b-table .ocb2-table, #oc-b-table .ocb2-table tbody { display: block; min-width: 0; }
    #oc-b-table .ocb2-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    #oc-b-table .ocb2-table tbody { display: grid; gap: 12px; padding: 14px; }
    #oc-b-table .ocb2-table tbody tr { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--border-soft); border-radius: 14px; overflow: hidden; background: rgba(var(--ink-rgb), 0.025); }
    #oc-b-table .ocb2-table tbody tr.ocb2-grp { display: block; border: 0; border-radius: 0; background: none; margin-top: 6px; }
    #oc-b-table .ocb2-table .ocb2-grp th { display: block; position: static; padding: 4px 2px 0; background: none; border: 0; }
    #oc-b-table .ocb2-table tbody th[scope="row"] {
        position: static; grid-column: 1; grid-row: 1; display: flex; align-items: center; padding: 12px 14px; font-size: 1.05rem; background: rgba(var(--shade-ch), calc(0.3 * var(--k-band))); box-shadow: none; border-bottom: 1px solid var(--border-soft);
    }
    #oc-b-table .ocb2-table td { display: block; padding: 10px 14px; border-bottom: 0; text-align: left; }
    #oc-b-table .ocb2-table td::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
    #oc-b-table .ocb2-table td.ocb2-where { grid-column: 2; grid-row: 1; display: flex; align-items: center; justify-content: flex-end; padding: 12px 14px; background: rgba(var(--shade-ch), calc(0.3 * var(--k-band))); border-bottom: 1px solid var(--border-soft); }
    #oc-b-table .ocb2-table td.ocb2-where::before { display: none; }
    #oc-b-table .ocb2-table td.ocb2-num { grid-row: 2; text-align: left; }
    #oc-b-table .ocb2-table td.ocb2-num.is-na { grid-column: 1 / -1; text-align: left; }
    #oc-b-table .ocb2-table td.ocb2-num.is-na::before { content: "23400 Call and Put"; }
    #oc-b-table .ocb2-table td.ocb2-rule, #oc-b-table .ocb2-table td.ocb2-empty { grid-column: 1 / -1; }
    #oc-b-table .ocb2-table td.ocb2-rule { border-top: 1px solid var(--rule-2); }
    #oc-b-table .ocb2-table td.ocb2-empty { padding-top: 0; }
    #oc-b-table .ocb2-tbl__foot, #oc-b-table .ocb2-fig__head { padding-left: 16px; padding-right: 16px; }
}

/* the three empty marks */
#oc-b-table .ocb2-marks { margin: 36px 0; }
#oc-b-table .ocb2-marks h3 { margin: 0 0 16px; font-size: 1.25rem; line-height: 1.3; color: var(--text-1); }
#oc-b-table .ocb2-marks ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 16px; }
#oc-b-table .ocb2-marks li { display: grid; grid-template-rows: auto 1fr; gap: 14px; padding: 18px; border: 1px solid var(--border-soft); border-radius: 16px; background: var(--surface); }
#oc-b-table .ocb2-mark {
    display: grid; place-items: center; min-height: 64px; border: 1px solid var(--ocb2-edge); border-radius: 10px; background: var(--ocb2-td-bg); color: var(--ocb2-td-ink);
    font-size: 28px; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums;
}
#oc-b-table .ocb2-marks li b { display: block; margin-bottom: 4px; font-size: 1rem; line-height: 1.35; color: var(--text-1); }
#oc-b-table .ocb2-marks li p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--text-2); }

/* ── 30-c1-oi-volume.css ── */
/* Option Chain guide, part C, sections 1-3: Open Interest profile, OI change, Volume (agent C1).
   Everything is scoped under the three section ids and every new class carries the occ1- prefix.

   The cell replicas below are the tool's own cells, ported rule by rule so a reader can hold the guide against the app:
     src/components/common/oi-cell.css, volume-cell.css          geometry and the three-line rhythm
     src/features/option-chain/chain-bar-finish.css               bar paint: solid, stripes cut in the row, 22% wash with a 1px edge
     src/styles/sahi-chain-grid-finish.css                        sizes (13 / 11 / 10px), rail 10px (12px for the top three), dot 6px
     src/styles/sahi-colour-system.css (dark)                     the values of the colour tokens below
   Every length that belongs to the cell is in em of the cell's 13px figure, so the same markup draws at 1.3x (13px floor for
   the guide) in tables and at up to 3x in the anatomy, with the proportions of the real cell. The tool's Call and Put cells are
   NOT mirrored: the figure sits left, the change right, and every bar grows from the left. */

:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) {
    --occ1-fs: 16.9px;                 /* 13px x 1.3 */
    --occ1-row: #0f0f0f;               /* --oc-grid-row (dark) */
    --occ1-head: #1a1a1a;              /* --oc-grid-strike: the Strike column and the drawn header band */
    --occ1-colhead: #1a1a1a;           /* the header of a Simple column (white in the light theme) */
    --occ1-track: #242424;             /* --oc-grid-track */
    --occ1-line: #272727;              /* --oc-grid-line-strong */
    --occ1-sep: #272727;               /* the rule under a Simple column header */
    --occ1-hair: rgba(255, 255, 255, 0.06);
    --occ1-ink: #fafafa;               /* --text, neutral-50 */
    --occ1-muted: #a3a3a3;             /* --text-muted, neutral-400 */
    --occ1-chg: #F5F5F5;               /* the change line before a sign tints it */
    --occ1-prev: #E6E6E6;              /* Volume's Prev line: --text 68% over --text-muted */
    --occ1-call: #ee807b;              /* --dash-call, error-400 */
    --occ1-put: #28bcd0;               /* --dash-put, success-500 */
    --occ1-up: #28bcd0;                /* --up-text, success-400: the change amount in the profile cells */
    --occ1-down: #ee807b;              /* --down-text, error-400 */
    --occ1-val-up: #28bcd0;            /* --up-ink: signed figures in Simple's plain columns */
    --occ1-val-down: #ee807b;          /* --down-ink */
    --occ1-call-ink: #ee807b;          /* --down-ink: a Call label as type */
    --occ1-put-ink: #28bcd0;           /* --up-ink: a Put label as type */
    --occ1-vbar: color-mix(in srgb, var(--occ1-ink) 70%, var(--occ1-head));   /* the Volume bar: ink 70% over the strike surface */
    --occ1-warn: #D9C9AE;              /* the Misreading label */
    --occ1-pct-a: 0.78;                /* how far the percent steps back from the amount */
    --occ1-hint-a: 0.8;                /* the quiet second line of a drawn column header */
    --occ1-pin: var(--sahi-cyan);
    --occ1-pin-ink: #052A30;           /* the number inside a pin */
}
/* The tool's LIGHT theme, from the same files: sahi-chain-grid-finish.css (row #FFFFFF, strike #F5F5F5, line #F5F5F5, strong #D3D3D3,
   track #E6E6E6), sahi-colour-system.css (text #0F0F0F, muted neutral-550, --up-ink success-800, --down-ink error-700) and
   oi-design-tokens.css (--dash-call error-600, --dash-put success-600, --up-text success-800, --down-text error-800). */
:root[data-theme="light"] :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) {
    --occ1-row: #FFFFFF;
    --occ1-head: #F5F5F5;
    --occ1-colhead: #FFFFFF;
    --occ1-track: #E6E6E6;
    --occ1-line: #D3D3D3;
    --occ1-sep: #E6E6E6;
    --occ1-hair: #F5F5F5;
    --occ1-ink: #0F0F0F;
    --occ1-muted: #5F5F5F;
    --occ1-chg: color-mix(in srgb, var(--occ1-ink) 78%, var(--occ1-muted));
    --occ1-prev: color-mix(in srgb, var(--occ1-ink) 68%, var(--occ1-muted));
    --occ1-call: #C4342E;
    --occ1-put: #2096A6;
    --occ1-up: #115B68;
    --occ1-down: #902824;
    --occ1-val-up: #115B68;
    --occ1-val-down: #AE2C27;
    --occ1-call-ink: #AE2C27;
    --occ1-put-ink: #115B68;
    --occ1-warn: #835241;
    /* the tool steps the percent back to 78%, which is 4.1:1 on white in green; 88% keeps the same look and clears 4.5:1 */
    --occ1-pct-a: 0.88;
    --occ1-hint-a: 1;
    --occ1-pin-ink: #FFFFFF;
}

/* ═══ The cell ═══════════════════════════════════════════════════════════════ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-cell {
    --occ1-leg: var(--occ1-ink);
    display: flex; flex-direction: column; gap: 0.2308em;
    width: 100%; min-width: 0; box-sizing: border-box;
    font-size: var(--occ1-fs); font-weight: 400; line-height: normal; text-align: left;
    color: var(--occ1-ink); font-variant-numeric: tabular-nums;
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-cell.is-call { --occ1-leg: var(--occ1-call); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-cell.is-put { --occ1-leg: var(--occ1-put); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-cell.occ1-vol { --occ1-leg: var(--occ1-vbar); gap: 0.2308em; }

:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-line { display: flex; align-items: baseline; justify-content: space-between; gap: 0.769em; min-width: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-vol .occ1-line { gap: 0.615em; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-now { font-size: 1em; font-weight: 600; line-height: 1.15; letter-spacing: -0.006em; color: var(--occ1-ink); white-space: nowrap; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-chg { display: flex; align-items: baseline; gap: 0.4545em; font-size: 0.846em; font-weight: 600; line-height: 1; color: var(--occ1-chg); white-space: nowrap; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-chg b { font-weight: 500; opacity: var(--occ1-pct-a); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-chg .is-up { color: var(--occ1-up); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-chg .is-down { color: var(--occ1-down); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-new { font-size: 0.909em; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--occ1-muted); }
/* Volume: the amount leads, the percent steps back in the muted ink and one size down */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-meta { display: flex; align-items: baseline; justify-content: flex-end; gap: 0.4615em; min-width: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-vchg { display: flex; align-items: baseline; gap: 0.3077em; white-space: nowrap; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-vchg b { font-size: 0.846em; font-weight: 600; line-height: 1; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-vchg small { font-size: 0.769em; font-weight: 500; line-height: 1; color: var(--occ1-muted); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-vchg.is-up b { color: var(--occ1-up); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-vchg.is-down b { color: var(--occ1-down); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-vchg.is-flat b { color: var(--occ1-chg); }

/* The track carries the column's full scale; the bar inside it runs to the higher of today and the previous close */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-rail { position: relative; height: 0.769em; border-radius: 0.1538em; background: var(--occ1-track); overflow: hidden; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-cell.is-top .occ1-rail { height: 0.923em; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-bar { position: absolute; top: 0; bottom: 0; left: 0; display: flex; min-width: 0.1538em; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg { flex: none; height: 100%; box-sizing: border-box; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-base { border-radius: 0.1538em 0 0 0.1538em; background: var(--occ1-leg); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-base:only-child { border-radius: 0.1538em; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-add,
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-drop { border-radius: 0 0.1538em 0.1538em 0; }
/* Added since the previous close: the leg colour with fine stripes CUT IN the row surface, 1px in every 4px */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-add {
    background-color: var(--occ1-leg);
    background-image: repeating-linear-gradient(90deg, var(--occ1-row) 0 0.0769em, transparent 0.0769em 0.3077em);
}
/* Unwound: a 22% wash of the leg colour over the track, with a 1px edge in the leg colour where the book stands now */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-drop {
    background: color-mix(in srgb, var(--occ1-leg) 22%, var(--occ1-track));
    border-left: 0.0769em solid var(--occ1-leg);
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-vol .occ1-seg.is-drop { background: color-mix(in srgb, var(--occ1-ink) 16%, var(--occ1-track)); }
/* Unwound to zero: a dashed ghost of the previous close, capped where the book stood */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-bar.is-gone {
    display: block; box-sizing: border-box; min-width: 0.615em; border-right: 0.1538em solid currentColor; border-radius: 0.1538em;
    background: repeating-linear-gradient(to right, currentColor 0 0.3846em, transparent 0.3846em 0.6923em) left 50% / 100% 0.1538em no-repeat;
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .is-call .occ1-bar.is-gone { color: color-mix(in srgb, var(--occ1-call) 62%, transparent); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .is-put .occ1-bar.is-gone { color: color-mix(in srgb, var(--occ1-put) 62%, transparent); }
/* The wall dot: today's level on the strike that ranks #1 */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-dot {
    position: absolute; top: 50%; width: 0.4615em; height: 0.4615em; border-radius: 50%; transform: translate(-50%, -50%);
    background: var(--occ1-leg); box-shadow: 0 0 0 0.0769em var(--occ1-row);
}

/* The Prev line: label at the start, the previous figure at the end, the rank chip parked in the slack between */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-lead { font-size: 0.769em; font-weight: 600; letter-spacing: 0.05em; line-height: 1; text-transform: uppercase; color: var(--occ1-muted); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-was { font-size: 0.846em; font-weight: 500; line-height: 1; color: var(--occ1-muted); white-space: nowrap; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-vprev { display: flex; align-items: baseline; justify-content: space-between; gap: 0.4615em; min-width: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-vprev .occ1-lead { color: var(--occ1-prev); letter-spacing: 0.06em; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-vprev .occ1-was { font-size: 0.769em; font-weight: 600; color: var(--occ1-prev); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-chip {
    flex: none; margin: -0.2em auto; padding: 0 0.3em; border: 0.1em solid var(--occ1-line); border-radius: 0.4em;
    font-size: 0.769em; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--occ1-muted); background: transparent;
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-line > .occ1-chip.is-near { margin: 0 auto 0 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-meta > .occ1-chip { margin: 0; }

/* Simple's plain columns: one centred figure on the row surface, a caps header on the header ground */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-plain {
    display: flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 3.15em; padding: 0 0.7em;
    font-size: var(--occ1-fs); font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--occ1-ink); background: var(--occ1-row);
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-plain.is-up { color: var(--occ1-val-up); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-plain.is-down { color: var(--occ1-val-down); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-plain.is-na { color: var(--occ1-muted); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-plain.is-left { justify-content: flex-start; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-colhead {
    display: flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 2.6em; padding: 0 0.5em; text-align: center;
    font-size: calc(var(--occ1-fs) * 0.923); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--occ1-muted); background: var(--occ1-colhead);
}

/* ═══ A drawn table of cells (Call | Strike | Put) ═══════════════════════════ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pairs { container-type: inline-size; border: 1px solid var(--occ1-line); border-radius: 12px; background: var(--occ1-row); overflow: hidden; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pairs__head,
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair {
    display: grid; grid-template-columns: minmax(0, 365px) 96px minmax(0, 365px); justify-content: center; column-gap: 0; align-items: center;
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pairs__head { background: var(--occ1-colhead); border-bottom: 1px solid var(--occ1-sep); padding: 12px 16px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pairs__head > * { text-align: center; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--occ1-muted); line-height: 1.25; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pairs__head > .is-ce { color: var(--occ1-call-ink); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pairs__head > .is-pe { color: var(--occ1-put-ink); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pairs__head small { display: block; margin-top: 3px; font-size: 0.7rem; letter-spacing: 0.06em; font-weight: 600; opacity: var(--occ1-hint-a); color: var(--occ1-muted); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair { padding: 8px 16px; border-top: 1px solid var(--occ1-hair); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pairs__head + .occ1-pair { border-top: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair__cell { min-width: 0; padding: 0 8px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair__k {
    align-self: stretch; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; margin: -8px 0; background: var(--occ1-head);
    color: var(--occ1-ink); font-weight: 600; font-size: var(--occ1-fs); font-variant-numeric: tabular-nums;
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair__k em { font-style: normal; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; color: var(--sahi-cyan); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-side { display: none; margin: 0 0 6px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--occ1-muted); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair__cell.is-ce .occ1-side { color: var(--occ1-call-ink); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair__cell.is-pe .occ1-side { color: var(--occ1-put-ink); }
@container (max-width: 759px) {
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pairs__head { display: none; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px 16px; padding: 12px 14px 14px; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair__k { grid-column: 1 / -1; grid-row: 1; flex-direction: row; justify-content: flex-start; gap: 10px; margin: 0 -14px; padding: 7px 14px; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair__cell { padding: 0; grid-row: 2; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-side { display: block; }
}
@container (max-width: 459px) {
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair { grid-template-columns: minmax(0, 1fr); }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pair__cell { grid-row: auto; }
}

/* ═══ The key under a drawn table: each swatch is a slice of the real bar ═══ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-key { list-style: none; margin: 0; padding: 14px 16px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 12px 24px; border: 1px solid var(--border-soft); border-radius: 12px; background: color-mix(in srgb, var(--text-1) 3%, transparent); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-key li { display: flex; align-items: center; gap: 14px; min-width: 0; font-size: 0.88rem; line-height: 1.45; color: var(--text-2); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-key li > span:last-child { min-width: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-key b { color: var(--text-1); font-weight: 700; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sw { flex: none; width: 92px; padding: 7px 8px; border-radius: 6px; background: var(--occ1-row); border: 1px solid var(--occ1-line); display: flex; align-items: center; justify-content: center; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sw .occ1-cell { gap: 0; width: auto; align-items: center; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sw .occ1-chip { margin: 0; font-size: 0.769em; }

/* ═══ The anatomy: the real cell, enlarged, with numbered pins ═══════════════ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-anat { margin: 0; display: flex; flex-direction: column; gap: 18px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-anat__one { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-anat__cap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0; font-size: 0.85rem; color: var(--text-3); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-anat__cap b { color: var(--text-1); font-size: 0.95rem; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-anat__stage { container-type: inline-size; border: 1px solid var(--occ1-line); border-radius: 12px; background: var(--occ1-row); padding: 6px 12px 6px 18px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-anat__cell { position: relative; padding-right: 40px; --occ1-fs: clamp(16.9px, 4.4cqw, 40px); font-size: var(--occ1-fs); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pins { position: relative; height: 38px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pins.is-top { margin-bottom: 2px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pins.is-bot { margin-top: 2px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pin {
    position: absolute; z-index: 2; left: var(--x, 0%); width: 22px; height: 22px; margin-left: -11px; border-radius: 50%; box-sizing: border-box;
    display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 800; line-height: 1; font-family: var(--font-sans, inherit);
    color: var(--occ1-pin-ink); background: var(--occ1-pin); box-shadow: 0 0 0 2px var(--occ1-row);
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pins.is-top .occ1-pin { top: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pins.is-bot .occ1-pin { bottom: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pin::after { content: ""; position: absolute; left: 50%; width: 2px; margin-left: -1px; background: var(--occ1-pin); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pins.is-top .occ1-pin::after { top: 100%; height: 14px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pins.is-bot .occ1-pin::after { bottom: 100%; height: 14px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pins.is-bot .occ1-pin.is-rail::after { height: calc(var(--occ1-fs) * 1.05 + 14px); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pin.is-gut { top: calc(var(--occ1-fs) * 1.842); left: auto; right: 0; margin: -11px 0 0; transform: none; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pin.is-gut::after { top: 50%; right: 100%; left: auto; width: calc(40px - 22px - 4px); height: 2px; margin: -1px 0 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-pin.is-gut-plain { top: calc(var(--occ1-fs) * 1.765); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-anat__cell.has-top .occ1-pin.is-gut { top: calc(40px + var(--occ1-fs) * 1.842); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-anat__cell.has-top .occ1-pin.is-gut-plain { top: calc(40px + var(--occ1-fs) * 1.765); }

:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-legend { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 12px 28px; counter-reset: none; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-legend li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start; font-size: 0.9rem; line-height: 1.5; color: var(--text-3); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-legend li > i {
    width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-style: normal; font-size: 13px; font-weight: 800; line-height: 1; color: var(--occ1-pin-ink); background: var(--occ1-pin);
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-legend b { display: block; color: var(--text-1); font-size: 0.95rem; font-weight: 700; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-legend code,
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps code,
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-facts code { font-family: inherit; font-size: 0.92em; color: var(--text-1); overflow-wrap: anywhere; }

/* ═══ Worked steps ═══════════════════════════════════════════════════════════ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps li { display: grid; grid-template-columns: 26px minmax(0, 1fr) minmax(86px, auto); gap: 4px 14px; align-items: center; padding: 12px 0; border-top: 1px solid color-mix(in srgb, var(--text-1) 7%, transparent); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps li:first-child { border-top: 0; padding-top: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps li:last-child { padding-bottom: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps__n { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; font-weight: 800; color: var(--text-1); border: 1px solid var(--border-soft); background: color-mix(in srgb, var(--text-1) 6%, transparent); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps b { display: block; font-size: 0.95rem; color: var(--text-1); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps__calc { display: block; margin-top: 2px; font-size: 0.88rem; line-height: 1.5; color: var(--text-3); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps__out {
    justify-self: end; padding: 5px 12px; border-radius: 8px; background: var(--occ1-row); border: 1px solid var(--occ1-line); color: var(--occ1-ink);
    font-size: 1rem; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; text-align: center;
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps__out.is-up { color: var(--occ1-up); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps__out.is-down { color: var(--occ1-down); }
@media (max-width: 560px) {
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps li { grid-template-columns: 26px minmax(0, 1fr); }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-steps__out { grid-column: 2; justify-self: start; }
}

/* ═══ Fact rows: the same five labels, in the same order, everywhere on the page ═══ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-facts { margin: 28px 0; border: 1px solid var(--border-soft); border-radius: 14px; overflow: hidden; background: var(--surface); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-facts__row { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: 6px 20px; padding: 13px 18px; border-top: 1px solid color-mix(in srgb, var(--text-1) 7%, transparent); font-size: 0.9rem; line-height: 1.55; color: var(--text-2); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-facts__row:first-child { border-top: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-facts__k { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sahi-cyan); padding-top: 3px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-facts__row.is-warn .occ1-facts__k { color: var(--occ1-warn); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-facts__v { min-width: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-facts__v p { margin: 0 0 6px; font-size: inherit; line-height: inherit; color: inherit; font-weight: 400; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-facts__v p:last-child { margin-bottom: 0; }
@media (max-width: 640px) {
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-facts__row { grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 12px 14px; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-facts__k { padding-top: 0; }
}

/* ═══ Tiles: one state of the cell each ══════════════════════════════════════ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 262px), 1fr)); gap: 14px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-tile { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 14px 16px 16px; border: 1px solid var(--occ1-line); border-radius: 12px; background: var(--occ1-row); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-tile h4 { margin: 0; font-size: 0.95rem; font-weight: 700; color: var(--text-1); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-tile h4 small { display: block; margin-top: 2px; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-tile p { margin: 0; font-size: 0.86rem; line-height: 1.5; color: var(--text-3); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-tile .occ1-cell { flex: none; }

/* ═══ Real captures ═════════════════════════════════════════════════════════ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .ocv-real { margin: 22px 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 14px 0 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip .ocv-real { margin: 0; border-radius: 12px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip .ocv-real__tag { display: none; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip .ocv-real__bar { padding: 8px 12px; justify-content: center; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip .ocv-real__label { font-size: 0.85rem; text-align: center; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip .ocv-real__shot { padding: 10px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip { --occ1-sc: 0.6; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip--5 { --occ1-sc: 0.46; }
/* every capture in a strip is drawn at the same scale, so the header bands and the figures line up across the row */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip .ocv-real__shot img { width: calc(var(--real-w) * var(--occ1-sc)); max-width: 100%; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin: 26px 0 0; font-size: 0.92rem; color: var(--text-2); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip__head .ocv-real__tag { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sahi-cyan); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip__note { margin: 10px 0 0; font-size: 0.86rem; line-height: 1.5; color: var(--text-3); }
@media (max-width: 820px) {
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip, :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); --occ1-sc: 0.44; }
}
@media (min-width: 560px) and (max-width: 820px) {
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip, :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip--5 { --occ1-sc: 0.6; }
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-strip .ocv-real__shot { align-items: flex-start; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) h3 { margin-top: 2.6rem; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .ocv-real-row { gap: 14px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .ocv-real-row .ocv-real__shot { padding: 12px 10px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .ocv-real-row .ocv-real__shot img { width: 100%; }

/* ═══ One cell, four columns (OI Chg section) ════════════════════════════════ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-map { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--occ1-line); border-radius: 12px; overflow: hidden; --occ1-fs: 16.9px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-map > div { display: flex; flex-direction: column; min-width: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-map > div + div { border-left: 1px solid var(--occ1-line); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-colhead { gap: 8px; border-bottom: 1px solid var(--occ1-sep); flex-wrap: wrap; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-colhead i {
    flex: none; width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-style: normal; font-size: 13px; font-weight: 800; line-height: 1; color: var(--occ1-pin-ink); background: var(--occ1-pin);
}
@media (max-width: 560px) {
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-map > div:nth-child(3) { border-left: 0; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-map > div:nth-child(n+3) { border-top: 1px solid var(--occ1-line); }
}

/* ═══ States grid: the Advanced cell against the two Simple columns ═════════ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid { container-type: inline-size; border: 1px solid var(--occ1-line); border-radius: 12px; background: var(--occ1-row); overflow: hidden; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__head,
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__row { display: grid; grid-template-columns: 150px minmax(0, 365px) minmax(0, 1fr) minmax(0, 1fr); gap: 0 14px; align-items: center; padding: 10px 16px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__head { background: var(--occ1-head); border-bottom: 1px solid var(--occ1-line); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__head span { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--occ1-muted); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__head span:nth-child(n+3) { text-align: center; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__row { border-top: 1px solid var(--occ1-hair); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__head + .occ1-sgrid__row { border-top: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__who { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__who b { font-size: 0.95rem; color: var(--text-1); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__who span { font-size: 0.78rem; line-height: 1.4; color: var(--text-3); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__adv { min-width: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__col { min-width: 0; display: flex; flex-direction: column; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__lab { display: none; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--occ1-muted); margin-bottom: 4px; }
@container (max-width: 759px) {
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__head { display: none; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px 14px; padding: 14px; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__who { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__adv { grid-column: 1 / -1; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__lab { display: block; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-sgrid__col .occ1-plain { border: 1px solid var(--occ1-line); border-radius: 8px; }
}

/* ═══ Volume: the three-up, aligned at every width ═══════════════════════════ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-trio { container-type: inline-size; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 22px; align-items: stretch; padding: 16px; border: 1px solid var(--occ1-line); border-radius: 12px; background: var(--occ1-row); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-trio__item { display: grid; grid-template-rows: 3.3em auto; row-gap: 8px; min-width: 0; align-content: start; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-trio__cap { margin: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 2px; font-size: 0.78rem; line-height: 1.35; color: var(--text-3); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-trio__cap b { font-size: 0.95rem; color: var(--text-1); }
@media (max-width: 760px) {
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-trio { grid-template-columns: minmax(0, 1fr); }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-trio__item { grid-template-rows: auto auto; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-trio__cap { justify-content: flex-start; }
}

/* ═══ Vol/OI chart (the guide's own, drawn in a neutral accent, not the tool's) ═══ */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-ratio { display: flex; flex-direction: column; gap: 12px; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-ratio__row { display: grid; grid-template-columns: 96px minmax(150px, 1.1fr) minmax(90px, 2fr) 56px; gap: 6px 14px; align-items: center; font-size: 0.9rem; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-ratio__who { color: var(--text-1); font-weight: 600; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-ratio__nums { display: flex; gap: 14px; flex-wrap: wrap; color: var(--text-3); font-size: 0.82rem; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-ratio__nums b { color: var(--text-1); font-weight: 600; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-ratio__bar { display: block; height: 10px; border-radius: 3px; background: color-mix(in srgb, var(--text-1) 7%, transparent); overflow: hidden; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-ratio__bar i { display: block; height: 100%; min-width: 2px; border-radius: 3px; background: var(--sahi-cyan); opacity: 0.8; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-ratio__val { text-align: right; font-weight: 700; color: var(--text-1); font-variant-numeric: tabular-nums; }
@media (max-width: 560px) {
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-ratio__row { grid-template-columns: 1fr 56px; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-ratio__nums, :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-ratio__bar { grid-column: 1 / -1; }
}

/* A wide capture stays readable on a phone: it keeps a legible width and scrolls inside its own frame */
@media (max-width: 860px) {
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-wide .ocv-real__shot { justify-content: flex-start; padding-bottom: 14px; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-wide .ocv-real__shot img { max-width: none; width: 840px; }
    :is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-wide .ocv-real__cap::before { content: "Swipe the picture sideways to see all of it."; display: block; margin-bottom: 4px; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--sahi-cyan); }
}

/* a paragraph that follows a table keeps its distance */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .iv-scroll + p { margin-top: 20px; }

/* The tool's bars are capsules now (sahi-data-surface-finish.css): a fully rounded recessed track and bar, square segments inside, the added part drawn as 1.5px rungs over a 24% tint, the unwound part a pale tint with a 2px edge at today's level */
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-rail { border-radius: 999px; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--occ1-ink) 9%, transparent); }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-bar { border-radius: 999px; overflow: hidden; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-base,
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-base:only-child,
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-add,
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-drop { border-radius: 0; }
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-add {
    background-color: transparent;
    background-image: repeating-linear-gradient(90deg, var(--occ1-leg) 0 0.1154em, transparent 0.1154em 0.3077em), linear-gradient(color-mix(in srgb, var(--occ1-leg) 24%, transparent), color-mix(in srgb, var(--occ1-leg) 24%, transparent));
}
:is(#oc-c-oi, #oc-c-oi-change, #oc-c-volume) .occ1-seg.is-drop { border-left-width: 0.1538em; }

/* ── 31-c2-buildup-windows.css ── */
/* Option Chain guide, part C2: Build-Up (#oc-c-buildup) and the three windows (#oc-c-windows).
   Colours are the tool's own (src/styles/sahi-colour-system.css, sahi-chain-grid-finish.css): up #28BCD0, down #E35650,
   flat neutral-400, chain row #0F0F0F, lane #242424. The page already carries two of them as --bu-short-cover / --bu-short-build.
   Those are the dark values; the light theme's are in the token block that follows them, taken from the same files. The captures in this
   section are pairs (c2.mjs pic() writes the dark and the light bitmap); everything drawn here reads its colours from the tokens. */

#oc-c-buildup, #oc-c-windows {
    --occ2-up: var(--bu-short-cover, #28BCD0);
    --occ2-down: var(--bu-short-build, #E35650);
    --occ2-flat: #A3A3A3;
    --occ2-row: #0F0F0F;
    --occ2-lane: #242424;
    --occ2-line: #272727;
    /* window accents: deliberately not green or red, which belong to direction */
    --occ2-w1d: #D3D3D3;
    --occ2-w15: var(--sahi-accent-ink);
    --occ2-w5: var(--bu-long-unwind);
    /* the numbered pins, their leader lines and the ring that keeps a pin legible over a capture */
    --occ2-pin: #FFFFFF;
    --occ2-pin-ink: #15020B;
    --occ2-ring: rgba(0, 0, 0, 0.55);
    --occ2-lead: rgba(255, 255, 255, 0.62);
    --occ2-lead-2: rgba(255, 255, 255, 0.7);
    --occ2-stripe: 3px;                /* the colour band on a quadrant or a window card */
    --occ2-rowstripe: 4px;             /* the colour band on a matrix row label */
    --occ2-inset: 2px;                 /* the inset colour edge on a sign chip */
}
/* The tool's light theme (sahi-chain-grid-finish.css: row #FFFFFF, track #E6E6E6, strong line #D3D3D3; oi-design-tokens.css: --flat neutral-500).
   The window accents keep their roles (silver, brand, tan) at a step that reads on white; the pins turn brand pink with white numbers, as everywhere on
   the light page. The colour bands thin to a hairline so every card edge is one thin even border. */
:root[data-theme="light"] :is(#oc-c-buildup, #oc-c-windows) {
    --occ2-flat: #727272;
    --occ2-row: #FFFFFF;
    --occ2-lane: #E6E6E6;
    --occ2-line: #D3D3D3;
    --occ2-w1d: #5F5F5F;
    --occ2-pin: var(--sahi-cyan);
    --occ2-pin-ink: #FFFFFF;
    --occ2-ring: #FFFFFF;
    --occ2-lead: color-mix(in srgb, var(--sahi-cyan) 85%, transparent);
    --occ2-lead-2: color-mix(in srgb, var(--sahi-cyan) 85%, transparent);
    --occ2-stripe: 1px;
    --occ2-rowstripe: 2px;
    --occ2-inset: 0px;
}

#oc-c-buildup .occ2-pic, #oc-c-windows .occ2-pic { display: block; width: 100%; max-width: var(--w, 100%); height: auto; border-radius: 8px; }
#oc-c-buildup code, #oc-c-windows code { font-size: 0.88em; }

/* A real capture inside one of my own panels: the tool's dark surface, a hairline frame. */
#oc-c-buildup .occ2-shot, #oc-c-windows .occ2-shot {
    position: relative; display: flex; justify-content: center;
    padding: 10px; border: 1px solid var(--border-soft); border-radius: 12px; background: var(--real-frame);
}
#oc-c-buildup .occ2-shot--card, #oc-c-windows .occ2-shot--card { background: var(--real-frame); padding: 6px; }

/* Texture swatches: hatched = contracts written, flat = unwound (chain-bar-finish.css). */
#oc-c-buildup .occ2-sw { display: inline-block; vertical-align: middle; width: 30px; height: 10px; margin-right: 8px; border-radius: 2px; color: var(--occ2-flat); }
#oc-c-buildup .occ2-sw.is-add { background-color: currentColor; background-image: repeating-linear-gradient(90deg, var(--occ2-row) 0 1px, transparent 1px 4px); }
#oc-c-buildup .occ2-sw.is-drop { background: color-mix(in srgb, currentColor 30%, var(--occ2-lane)); border-right: 2px solid currentColor; }

/* ── The matrix ─────────────────────────────────────────────────────────── */
#oc-c-buildup .occ2-mx { display: grid; grid-template-columns: 104px minmax(0, 1fr) minmax(0, 1fr); gap: 14px; align-items: stretch; }
#oc-c-buildup .occ2-mx__col { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 4px; text-align: center; padding-bottom: 2px; }
#oc-c-buildup .occ2-mx__col b { font-size: 0.95rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-1); }
#oc-c-buildup .occ2-mx__col span { font-size: 13px; color: var(--text-3); }
#oc-c-buildup .occ2-mx__row { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding-right: 6px; border-right: var(--occ2-rowstripe) solid var(--tone); }
#oc-c-buildup .occ2-mx__row.is-up { --tone: var(--occ2-up); }
#oc-c-buildup .occ2-mx__row.is-down { --tone: var(--occ2-down); }
#oc-c-buildup .occ2-mx__row b { font-size: 0.95rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-1); }
#oc-c-buildup .occ2-mx__row span { font-size: 13px; color: var(--text-3); }

#oc-c-buildup .occ2-q {
    --tone: var(--occ2-up);
    display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 14px 14px 16px;
    border: 1px solid color-mix(in srgb, var(--tone) 34%, transparent); border-top: var(--occ2-stripe) solid var(--tone); border-radius: 14px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--tone) 7%, transparent), transparent 70%), var(--surface);
}
#oc-c-buildup .occ2-q.is-down { --tone: var(--occ2-down); }
#oc-c-buildup .occ2-q__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
#oc-c-buildup .occ2-q h4 { margin: 0; font-size: 1.15rem; line-height: 1.2; color: var(--text-1); }
#oc-c-buildup .occ2-q__code { font-size: 13px; font-weight: 700; letter-spacing: 0.1em; color: var(--tone); }
#oc-c-buildup .occ2-q__tag { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-3); }
#oc-c-buildup .occ2-q__leg { margin: 0; font-size: 0.9rem; line-height: 1.45; color: var(--text-2); }
#oc-c-buildup .occ2-q__leg b { color: var(--text-1); }
#oc-c-buildup .occ2-q__mean { margin: 0; font-size: 0.9rem; line-height: 1.5; color: var(--text-3); }
#oc-c-buildup .occ2-q__mean b { color: var(--text-1); font-weight: 600; }

#oc-c-buildup .occ2-neutral {
    grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 18px; align-items: center;
    padding: 14px; border: 1px dashed color-mix(in srgb, var(--occ2-flat) 55%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--text-1) 2%, transparent);
}
#oc-c-buildup .occ2-neutral h4 { margin: 0 0 6px; font-size: 1.1rem; color: var(--text-1); }
#oc-c-buildup .occ2-neutral p { margin: 0; font-size: 0.92rem; line-height: 1.55; color: var(--text-2); }

@media (max-width: 760px) {
    #oc-c-buildup .occ2-mx { grid-template-columns: minmax(0, 1fr); }
    #oc-c-buildup .occ2-mx__col, #oc-c-buildup .occ2-mx__row, #oc-c-buildup .occ2-mx__corner { display: none; }
    #oc-c-buildup .occ2-neutral { grid-template-columns: minmax(0, 1fr); }
}

/* ── Anatomy: a real capture with pins ─────────────────────────────────── */
#oc-c-buildup .occ2-anat { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 28px; align-items: center; }
#oc-c-buildup .occ2-stage, #oc-c-windows .occ2-stage { position: relative; margin: 52px 6px 54px; }
#oc-c-buildup .occ2-stage .occ2-pic { border-radius: 10px; }
#oc-c-buildup .occ2-stage--card { margin: 8px 40px 8px; }
#oc-c-buildup .occ2-leads { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
#oc-c-buildup .occ2-leads line { stroke: var(--occ2-lead); stroke-width: 1.25px; vector-effect: non-scaling-stroke; }
#oc-c-buildup .occ2-tgt { position: absolute; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%; background: var(--occ2-pin); box-shadow: 0 0 0 2px var(--occ2-ring); }
#oc-c-buildup .occ2-pin {
    position: absolute; z-index: 2; display: grid; place-items: center; width: 26px; height: 26px; margin: -13px 0 0 -13px;
    border-radius: 50%; background: var(--occ2-pin); color: var(--occ2-pin-ink); font-size: 14px; font-weight: 800; line-height: 1; box-shadow: 0 0 0 2px var(--occ2-ring);
}
#oc-c-buildup .occ2-badge, #oc-c-windows .occ2-badge {
    flex: none; display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%;
    background: var(--occ2-pin); color: var(--occ2-pin-ink); font-size: 14px; font-weight: 800; line-height: 1;
}
#oc-c-buildup .occ2-badge--sm { width: 22px; height: 22px; margin-right: 8px; font-size: 13px; vertical-align: middle; }
#oc-c-buildup .occ2-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
#oc-c-buildup .occ2-legend li { display: flex; gap: 12px; align-items: flex-start; font-size: 0.92rem; line-height: 1.55; color: var(--text-3); }
#oc-c-buildup .occ2-legend li > div { min-width: 0; }
#oc-c-buildup .occ2-legend b { color: var(--text-1); }
#oc-c-buildup .occ2-legend .iv-num { color: var(--text-1); }
#oc-c-buildup .occ2-anat .occ2-legend { margin-top: 0; }
@media (max-width: 860px) {
    #oc-c-buildup .occ2-anat { grid-template-columns: minmax(0, 1fr); gap: 14px; }
}

/* ── Rule: three steps and two worked legs ─────────────────────────────── */
#oc-c-buildup .occ2-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; counter-reset: occ2; }
#oc-c-buildup .occ2-step { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 14px 14px 16px; border: 1px solid var(--border-soft); border-radius: 14px; background: color-mix(in srgb, var(--text-1) 3%, transparent); }
#oc-c-buildup .occ2-step:not(:last-child)::after {
    content: ''; position: absolute; top: 28px; right: -14px; width: 14px; height: 2px; background: var(--border-soft);
}
#oc-c-buildup .occ2-step__n { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--occ2-pin); color: var(--occ2-pin-ink); font-size: 14px; font-weight: 800; }
#oc-c-buildup .occ2-step h4 { margin: 0; font-size: 1rem; color: var(--text-1); }
#oc-c-buildup .occ2-step p { margin: 0; font-size: 0.9rem; line-height: 1.55; color: var(--text-3); }
#oc-c-buildup .occ2-floors { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
#oc-c-buildup .occ2-floors li { display: grid; grid-template-columns: 38px 1fr 1fr; gap: 8px; align-items: baseline; padding: 6px 10px; border-radius: 8px; background: rgba(var(--shade-ch), calc(0.3 * var(--k-band))); font-size: 13px; color: var(--text-2); font-variant-numeric: tabular-nums; }
#oc-c-buildup .occ2-floors b { color: var(--text-1); }
#oc-c-buildup .occ2-signs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 4px; }
#oc-c-buildup .occ2-signs span { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-radius: 8px; background: rgba(var(--shade-ch), calc(0.3 * var(--k-band))); font-size: 15px; font-weight: 700; letter-spacing: 0.1em; }
#oc-c-buildup .occ2-signs small { font-size: 13px; font-weight: 500; letter-spacing: 0; color: var(--text-2); }
#oc-c-buildup .occ2-signs .is-up { color: var(--occ2-up); box-shadow: inset var(--occ2-inset) 0 0 var(--occ2-up); }
#oc-c-buildup .occ2-signs .is-down { color: color-mix(in srgb, var(--occ2-down) 65%, var(--text-1)); box-shadow: inset var(--occ2-inset) 0 0 var(--occ2-down); }
@media (max-width: 860px) {
    #oc-c-buildup .occ2-steps { grid-template-columns: minmax(0, 1fr); }
    #oc-c-buildup .occ2-step:not(:last-child)::after { display: none; }
}

#oc-c-buildup .occ2-exs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
#oc-c-buildup .occ2-ex { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 14px; border: 1px solid var(--border-soft); border-radius: 14px; background: color-mix(in srgb, var(--text-1) 2%, transparent); }
#oc-c-buildup .occ2-ex h4 { margin: 0; font-size: 1rem; color: var(--text-1); }
#oc-c-buildup .occ2-ledger { margin: 0; display: flex; flex-direction: column; gap: 0; font-variant-numeric: tabular-nums; }
#oc-c-buildup .occ2-ledger > div { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 4px 12px; padding: 9px 0; border-top: 1px solid var(--border-soft); align-items: baseline; }
#oc-c-buildup .occ2-ledger dt { font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-3); }
#oc-c-buildup .occ2-ledger dd { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; align-items: baseline; font-size: 0.92rem; color: var(--text-2); }
#oc-c-buildup .occ2-ledger dd .occ2-floor { grid-column: 1 / -1; }
#oc-c-buildup .occ2-ledger .is-result dd { display: block; }
#oc-c-buildup .occ2-ledger b { font-weight: 700; color: var(--text-1); }
#oc-c-buildup .occ2-ledger b.is-up { color: var(--occ2-up); }
#oc-c-buildup .occ2-ledger b.is-down { color: color-mix(in srgb, var(--occ2-down) 65%, var(--text-1)); }
#oc-c-buildup .occ2-nums { white-space: nowrap; color: var(--text-2); }
#oc-c-buildup .occ2-floor { font-size: 13px; color: var(--text-3); white-space: nowrap; }
#oc-c-buildup .occ2-ok { color: var(--occ2-up); font-weight: 700; }
#oc-c-buildup .occ2-ok::before { content: '\2713\00a0'; }
#oc-c-buildup .occ2-no { color: var(--text-1); font-weight: 700; text-decoration: underline; text-decoration-color: var(--occ2-down); text-underline-offset: 3px; }
#oc-c-buildup .occ2-no::before { content: '\2717\00a0'; color: var(--occ2-down); text-decoration: none; display: inline-block; }
#oc-c-buildup .occ2-ledger .is-result dd { color: var(--text-2); }
#oc-c-buildup .occ2-ex .occ2-shot--card { align-self: center; margin-top: 2px; }
@media (max-width: 860px) {
    #oc-c-buildup .occ2-exs { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
    #oc-c-buildup .occ2-ledger > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

/* ── Loud and quiet: wash scale ────────────────────────────────────────── */
#oc-c-buildup .occ2-ramp { position: relative; margin: 36px 10px 44px; }
#oc-c-buildup .occ2-ramp__bar {
    position: relative; height: 22px; border-radius: 8px; border: 1px solid var(--border-soft);
    background: linear-gradient(to right, var(--occ2-row), color-mix(in srgb, var(--occ2-down) 40%, var(--occ2-row)));
}
#oc-c-buildup .occ2-ramp__floor { position: absolute; top: -5px; bottom: -5px; width: 0; border-left: 2px dashed rgba(var(--ink-rgb), 0.55); }
#oc-c-buildup .occ2-ramp__pin {
    position: absolute; top: -30px; z-index: 2; display: grid; place-items: center; width: 24px; height: 24px; margin-left: -12px;
    border-radius: 50%; background: var(--occ2-pin); color: var(--occ2-pin-ink); font-size: 13px; font-weight: 800; box-shadow: 0 0 0 2px var(--occ2-ring);
}
#oc-c-buildup .occ2-ramp__pin::after { content: ''; position: absolute; left: 50%; top: 100%; width: 0; height: 12px; border-left: 1px solid var(--occ2-lead-2); }
#oc-c-buildup .occ2-ramp__pin.is-low { top: -48px; }
#oc-c-buildup .occ2-ramp__pin.is-low::after { height: 30px; }
#oc-c-buildup .occ2-ramp__scale { position: relative; height: 22px; margin-top: 8px; font-size: 13px; font-weight: 700; color: var(--text-2); }
#oc-c-buildup .occ2-ramp__key { margin: -18px 10px 0; font-size: 13px; line-height: 1.5; color: var(--text-3); }
#oc-c-buildup .occ2-ramp__key b { color: var(--text-1); }
#oc-c-buildup .occ2-ramp__scale span { position: absolute; top: 0; white-space: nowrap; }
#oc-c-buildup .occ2-ramp__scale span:first-child { left: 0 !important; }
#oc-c-buildup .occ2-ramp__scale span:nth-child(2) { transform: translateX(-50%); }
#oc-c-buildup .occ2-ramp__scale span:last-child { right: 0; left: auto !important; }
#oc-c-buildup .occ2-wash { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
#oc-c-buildup .occ2-wash__item { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
#oc-c-buildup .occ2-wash__item p { margin: 0; font-size: 0.88rem; line-height: 1.45; color: var(--text-3); }
#oc-c-buildup .occ2-wash__item p b { color: var(--text-1); }
#oc-c-buildup .occ2-wash__sub { display: block; margin-top: 2px; padding-left: 30px; }
#oc-c-buildup .occ2-calc th, #oc-c-buildup .occ2-calc td { white-space: nowrap; }
#oc-c-buildup .occ2-formula { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 0.9rem; line-height: 1.55; color: var(--text-3); }
#oc-c-buildup .occ2-formula li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; }
#oc-c-buildup .occ2-formula b { color: var(--text-1); }
@media (max-width: 860px) {
    #oc-c-buildup .occ2-wash { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    #oc-c-buildup .occ2-wash { grid-template-columns: minmax(0, 1fr); }
    #oc-c-buildup .occ2-formula li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

/* ── Colour, sorting, size ─────────────────────────────────────────────── */
#oc-c-buildup .occ2-trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 18px 0 30px; }
#oc-c-buildup .occ2-card { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 16px; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--surface); }
#oc-c-buildup .occ2-card h4 { margin: 0; font-size: 0.95rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sahi-cyan); }
#oc-c-buildup .occ2-card p { margin: 0; font-size: 0.9rem; line-height: 1.55; color: var(--text-3); }
#oc-c-buildup .occ2-card__keys { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px !important; color: var(--text-2) !important; }
#oc-c-buildup .occ2-card__keys span { display: inline-flex; align-items: center; }
#oc-c-buildup .occ2-card__keys i:not(.occ2-sw) { width: 12px; height: 12px; margin-right: 6px; border-radius: 3px; background: var(--k); }
#oc-c-buildup .occ2-card__keys .is-up { --k: var(--occ2-up); }
#oc-c-buildup .occ2-card__keys .is-down { --k: var(--occ2-down); }
#oc-c-buildup .occ2-card__keys .is-flat { --k: var(--occ2-flat); }
#oc-c-buildup .occ2-sort { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
#oc-c-buildup .occ2-sort li { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 6px 10px; border-radius: 8px; border: 1px solid color-mix(in srgb, var(--c) 40%, transparent); background: color-mix(in srgb, var(--c) 10%, transparent); font-size: 14px; color: var(--text-1); }
#oc-c-buildup .occ2-sort li.is-up { --c: var(--occ2-up); }
#oc-c-buildup .occ2-sort li.is-down { --c: var(--occ2-down); }
#oc-c-buildup .occ2-sort li.is-flat { --c: var(--occ2-flat); }
#oc-c-buildup .occ2-sort small { font-size: 13px; color: var(--text-3); }
@media (max-width: 860px) {
    #oc-c-buildup .occ2-trio { grid-template-columns: minmax(0, 1fr); }
}

/* ── Hover cards ───────────────────────────────────────────────────────── */
#oc-c-buildup .occ2-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 20px; }
#oc-c-buildup .occ2-cards > div { min-width: 0; width: 100%; max-width: 460px; margin-inline: auto; }
#oc-c-buildup .occ2-cards3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
#oc-c-buildup .occ2-cards3 figure, #oc-c-windows .occ2-cards2 figure { margin: 0; display: flex; flex-direction: column; gap: 8px; align-items: center; min-width: 0; }
#oc-c-buildup .occ2-cards3 figcaption, #oc-c-windows .occ2-cards2 figcaption { font-size: 0.88rem; color: var(--text-3); text-align: center; }
@media (max-width: 860px) {
    #oc-c-buildup .occ2-cards { grid-template-columns: minmax(0, 1fr); }
    #oc-c-buildup .occ2-cards3 { grid-template-columns: minmax(0, 1fr); max-width: 420px; margin-inline: auto; }
}

/* ── Facts ─────────────────────────────────────────────────────────────── */
#oc-c-buildup .occ2-facts, #oc-c-windows .occ2-facts {
    display: grid; grid-template-columns: 150px minmax(0, 1fr); margin: 14px 0 8px; border: 1px solid var(--border-soft); border-radius: 16px; overflow: hidden; background: var(--surface);
}
#oc-c-buildup .occ2-facts dt, #oc-c-windows .occ2-facts dt {
    padding: 14px 16px; border-top: 1px solid var(--border-soft); background: rgba(var(--shade-ch), calc(0.22 * var(--k-band)));
    font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sahi-cyan);
}
#oc-c-buildup .occ2-facts dd, #oc-c-windows .occ2-facts dd { margin: 0; padding: 14px 18px; border-top: 1px solid var(--border-soft); font-size: 0.92rem; line-height: 1.6; color: var(--text-2); }
#oc-c-buildup .occ2-facts dt:first-of-type, #oc-c-buildup .occ2-facts dt:first-of-type + dd,
#oc-c-windows .occ2-facts dt:first-of-type, #oc-c-windows .occ2-facts dt:first-of-type + dd { border-top: 0; }
#oc-c-buildup .occ2-facts code, #oc-c-windows .occ2-facts code { color: var(--text-1); overflow-wrap: anywhere; }
@media (max-width: 640px) {
    #oc-c-buildup .occ2-facts, #oc-c-windows .occ2-facts { grid-template-columns: minmax(0, 1fr); }
    #oc-c-buildup .occ2-facts dt, #oc-c-windows .occ2-facts dt { padding: 12px 16px 2px; border-top: 1px solid var(--border-soft); background: transparent; }
    #oc-c-buildup .occ2-facts dd, #oc-c-windows .occ2-facts dd { padding: 0 16px 14px; border-top: 0; }
    #oc-c-buildup .occ2-facts dt:first-of-type, #oc-c-windows .occ2-facts dt:first-of-type { border-top: 0; }
}

/* ═══════════════════════════ Windows ═══════════════════════════ */
#oc-c-windows .occ2-wchip {
    display: inline-block; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--wc); background: color-mix(in srgb, var(--wc) 14%, transparent);
    font-size: 13px; font-weight: 700; letter-spacing: 0.04em; color: color-mix(in srgb, var(--wc) 70%, rgb(var(--ink-rgb))); white-space: nowrap;
}

/* Timeline: HTML, so every word stays 13px or more at any width. */
#oc-c-windows .occ2-tl { --lab: 132px; display: grid; grid-template-columns: var(--lab) minmax(0, 1fr); font-variant-numeric: tabular-nums; }
#oc-c-windows .occ2-tl__head { position: relative; height: 30px; }
#oc-c-windows .occ2-tl__nowlab { position: absolute; bottom: 4px; transform: translateX(-100%); padding: 2px 8px; border-radius: 6px; background: var(--occ2-pin); color: var(--occ2-pin-ink); font-size: 13px; font-weight: 800; white-space: nowrap; }
#oc-c-windows .occ2-tl__lab { display: flex; flex-direction: column; justify-content: center; gap: 2px; padding-right: 12px; border-bottom: 1px solid var(--border-soft); }
#oc-c-windows .occ2-tl__lab b { font-size: 0.95rem; color: var(--wc, var(--text-1)); }
#oc-c-windows .occ2-tl__lab small { font-size: 13px; color: var(--text-3); line-height: 1.3; }
#oc-c-windows .occ2-tl__lab--axis { border-bottom: 0; }
#oc-c-windows .occ2-tl__lab--axis b { color: var(--text-2); }
#oc-c-windows .occ2-tl__track { position: relative; height: 92px; border-bottom: 1px solid var(--border-soft); }
#oc-c-windows .occ2-tl__bar { position: absolute; top: 40px; height: 14px; border-radius: 7px; background: color-mix(in srgb, var(--wc) 34%, transparent); border: 1px solid var(--wc); }
#oc-c-windows .occ2-tl__track.is-open .occ2-tl__bar { border-left: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; background: linear-gradient(to right, transparent, color-mix(in srgb, var(--wc) 34%, transparent) 14%); }
#oc-c-windows .occ2-tl__tail { position: absolute; left: 2px; top: 34px; font-size: 18px; line-height: 1; color: var(--wc); }
#oc-c-windows .occ2-tl__now { position: absolute; top: 0; bottom: 0; width: 0; border-left: 2px solid var(--occ2-pin); }
#oc-c-windows .occ2-tl__band {
    position: absolute; top: 28px; height: 38px; border-radius: 6px; border: 1px dashed color-mix(in srgb, var(--wc) 75%, transparent);
    background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--wc) 20%, transparent) 0 5px, transparent 5px 10px);
}
#oc-c-windows .occ2-tl__band.is-empty { background: transparent; }
#oc-c-windows .occ2-tl__bandlab { position: absolute; top: 6px; transform: translateX(-50%); font-size: 13px; font-weight: 600; color: var(--wc); white-space: nowrap; }
#oc-c-windows .occ2-tl__dot { position: absolute; top: 43px; width: 10px; height: 10px; margin-left: -5px; border-radius: 50%; background: var(--wc); box-shadow: 0 0 0 3px var(--sahi-bg-0); }
#oc-c-windows .occ2-tl__dot.is-missing { background: var(--sahi-bg-0); border: 2px solid var(--wc); box-sizing: border-box; box-shadow: none; }
#oc-c-windows .occ2-tl__marklab { position: absolute; top: 70px; transform: translateX(-50%); font-size: 13px; font-weight: 700; color: var(--text-1); white-space: nowrap; }
#oc-c-windows .occ2-tl__pill { position: absolute; left: 0; top: 10px; padding: 3px 10px; border-radius: 8px; background: rgba(var(--shade-ch), calc(0.45 * var(--k-band))); border: 1px solid var(--border-soft); font-size: 13px; color: var(--text-1); line-height: 1.35; }
#oc-c-windows .occ2-tl__short { position: absolute; top: 70px; height: 0; border-top: 2px solid var(--text-1); }
#oc-c-windows .occ2-tl__short em { position: absolute; top: 4px; left: 0; font-style: normal; font-size: 13px; font-weight: 700; color: var(--text-1); white-space: nowrap; }
#oc-c-windows .occ2-tl__axis { position: relative; height: 66px; }
#oc-c-windows .occ2-tl__snap { position: absolute; top: 12px; width: 6px; height: 6px; margin-left: -3px; border-radius: 50%; background: var(--text-1); opacity: 0.85; }
#oc-c-windows .occ2-tl__snap.is-none { background: transparent; border: 1px solid var(--text-3); box-sizing: border-box; opacity: 0.6; }
#oc-c-windows .occ2-tl__hole {
    position: absolute; top: 4px; height: 22px; margin-left: -3px; padding-left: 3px; border-radius: 4px; border: 1px dashed var(--occ2-down); box-sizing: content-box;
    background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--occ2-down) 28%, transparent) 0 4px, transparent 4px 8px);
}
#oc-c-windows .occ2-tl__hole em { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: 0 8px; background: var(--sahi-bg-0); font-style: normal; font-size: 13px; color: var(--text-1); white-space: nowrap; }
#oc-c-windows .occ2-tl__tick { position: absolute; top: 30px; transform: translateX(-50%); font-size: 13px; color: var(--text-2); white-space: nowrap; }
#oc-c-windows .occ2-tl__hole + .occ2-tl__snap, #oc-c-windows .occ2-tl__axis .occ2-tl__tick { z-index: 1; }
#oc-c-windows .occ2-tls { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
#oc-c-windows .occ2-tls figure { margin: 0; padding: 14px 16px 10px; border: 1px solid var(--border-soft); border-radius: 14px; background: color-mix(in srgb, var(--text-1) 2%, transparent); }
#oc-c-windows .occ2-tls figcaption { margin-bottom: 8px; font-size: 0.92rem; color: var(--text-3); }
#oc-c-windows .occ2-tls figcaption b { color: var(--text-1); }
#oc-c-windows .occ2-tls .occ2-tl__track { height: 100px; }
#oc-c-windows .occ2-tl__pill { white-space: nowrap; }
@media (max-width: 640px) {
    #oc-c-windows .occ2-tl { grid-template-columns: minmax(0, 1fr); }
    #oc-c-windows .occ2-tl__spacer { display: none; }
    #oc-c-windows .occ2-tl__lab { flex-direction: row; justify-content: flex-start; align-items: baseline; gap: 10px; padding: 12px 0 0; border-bottom: 0; text-align: left; }
    #oc-c-windows .occ2-tl__lab--axis { padding-top: 10px; }
    #oc-c-windows .occ2-tl__head, #oc-c-windows .occ2-tl__track, #oc-c-windows .occ2-tl__axis { margin-inline: 22px; }
    #oc-c-windows .occ2-tl__track { border-bottom: 0; }
}

/* Comparison table: stacks per window on a phone */
#oc-c-windows .occ2-score th { vertical-align: top; }
#oc-c-windows .occ2-score thead th { text-align: left; }
#oc-c-windows .occ2-tablewrap { margin: 14px 0 36px; }
#oc-c-windows .occ2-score td { color: var(--text-2); }
@media (max-width: 640px) {
    #oc-c-windows .occ2-tablewrap { overflow: visible; }
    #oc-c-windows .occ2-score { min-width: 0 !important; }
    #oc-c-windows .occ2-score thead { display: none; }
    #oc-c-windows .occ2-score, #oc-c-windows .occ2-score tbody, #oc-c-windows .occ2-score tr, #oc-c-windows .occ2-score th, #oc-c-windows .occ2-score td { display: block; width: auto; }
    #oc-c-windows .occ2-score tr { padding: 12px 0; border-top: 1px solid var(--border-soft); }
    #oc-c-windows .occ2-score tbody th { padding: 0 0 6px; border: 0; color: var(--text-1); }
    #oc-c-windows .occ2-score td { display: flex; gap: 10px; padding: 3px 0; border: 0; }
    #oc-c-windows .occ2-score td::before { content: attr(data-w); flex: none; min-width: 62px; font-size: 13px; font-weight: 700; color: var(--wc); }
}

/* Same strike, three windows: one card each */
#oc-c-windows .occ2-win3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
#oc-c-windows .occ2-win { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 14px; border: 1px solid var(--border-soft); border-top: var(--occ2-stripe) solid var(--wc); border-radius: 14px; background: color-mix(in srgb, var(--text-1) 2%, transparent); font-variant-numeric: tabular-nums; }
#oc-c-windows .occ2-win__head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
#oc-c-windows .occ2-win__head small { font-size: 13px; color: var(--text-3); }
#oc-c-windows .occ2-win dl { margin: 0; display: flex; flex-direction: column; gap: 10px; }
#oc-c-windows .occ2-win dt { font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-3); }
#oc-c-windows .occ2-win dd { margin: 2px 0 0; font-size: 0.92rem; color: var(--text-2); }
#oc-c-windows .occ2-win dd b { margin-left: 6px; font-weight: 700; }
#oc-c-windows .occ2-win dd b.is-up { color: var(--occ2-up); }
#oc-c-windows .occ2-win dd b.is-down { color: var(--occ2-down); }
#oc-c-windows .occ2-win__read { margin: 0; }
@media (max-width: 860px) {
    #oc-c-windows .occ2-win3 { grid-template-columns: minmax(0, 1fr); }
}
#oc-c-windows .occ2-verdict { display: inline-block; padding: 4px 12px; border-radius: 8px; font-size: 0.95rem; font-weight: 700; color: var(--text-1); border: 1px solid color-mix(in srgb, var(--c) 40%, transparent); background: color-mix(in srgb, var(--c) 16%, transparent); }
#oc-c-windows .occ2-verdict.is-up { --c: var(--occ2-up); }
#oc-c-windows .occ2-verdict.is-down { --c: var(--occ2-down); }
#oc-c-windows .occ2-verdict.is-flat { --c: var(--occ2-flat); }
#oc-c-windows .occ2-cards2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 760px; margin: 6px auto 0; }
@media (max-width: 640px) {
    #oc-c-windows .occ2-cards2 { grid-template-columns: minmax(0, 1fr); max-width: 420px; }
}

/* What "now" means */
#oc-c-windows .occ2-now { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 14px 0 28px; }
#oc-c-windows .occ2-now__case { display: flex; flex-direction: column; gap: 8px; padding: 16px; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--surface); }
#oc-c-windows .occ2-now__case h4 { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 1rem; color: var(--text-1); }
#oc-c-windows .occ2-now__when { margin: 0; font-size: 0.9rem; line-height: 1.5; color: var(--text-3); }
#oc-c-windows .occ2-now__case p { margin: 0; font-size: 0.92rem; line-height: 1.55; color: var(--text-2); }
#oc-c-windows .occ2-now__case p b { color: var(--text-1); }
@media (max-width: 760px) {
    #oc-c-windows .occ2-now { grid-template-columns: minmax(0, 1fr); }
}

/* Empty states */
#oc-c-windows .occ2-states { list-style: none; margin: 0 0 18px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
#oc-c-windows .occ2-state { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 14px; border: 1px solid var(--border-soft); border-radius: 14px; background: color-mix(in srgb, var(--text-1) 2%, transparent); }
#oc-c-windows .occ2-state__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 10px; }
#oc-c-windows .occ2-state h4 { margin: 0; font-size: 1rem; color: var(--text-1); }
#oc-c-windows .occ2-scope { padding: 2px 8px; border-radius: 999px; border: 1px solid var(--border-soft); font-size: 13px; font-weight: 600; color: var(--text-2); white-space: nowrap; }
#oc-c-windows .occ2-scope.is-strike { border-color: color-mix(in srgb, var(--occ2-w5) 60%, transparent); color: var(--occ2-w5); }
#oc-c-windows .occ2-state__prints { margin: 0; font-size: 0.88rem; color: var(--text-3); }
#oc-c-windows .occ2-state__prints code { margin-left: 6px; padding: 2px 8px; border-radius: 6px; background: var(--occ2-row); border: 1px solid var(--occ2-line); color: var(--text-1); }
#oc-c-windows .occ2-state .occ2-shot { flex: 1; align-items: center; }
#oc-c-windows .occ2-state__cause { margin: 0; font-size: 0.88rem; line-height: 1.5; color: var(--text-3); }
@media (max-width: 700px) {
    #oc-c-windows .occ2-states { grid-template-columns: minmax(0, 1fr); }
}

/* Empty 5m and 15m columns, side by side */
#oc-c-windows .occ2-pair { margin: 14px 0 28px; padding: 14px; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--real-frame); display: flex; flex-direction: column; gap: 12px; }
#oc-c-windows .occ2-pair__row { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
#oc-c-windows .occ2-pair .occ2-shot { padding: 6px; }
#oc-c-windows .occ2-pair figcaption { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; }
#oc-c-windows .occ2-pair .occ2-pic { width: 100%; max-width: 230px; }

/* Insight strips: the right-hand end of each, where the Measured over control sits */
#oc-c-windows .occ2-strips { margin: 14px 0 28px; display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--real-frame); }
#oc-c-windows .occ2-crop { position: relative; overflow: hidden; aspect-ratio: 11.2 / 1; border-radius: 8px; background: var(--occ2-row); }
#oc-c-windows .occ2-crop .occ2-pic { position: absolute; top: -100%; left: -108.3%; width: 208.3%; max-width: none; border-radius: 0; }
#oc-c-windows .occ2-strips figcaption { margin-top: 4px; display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; }

/* Wide table crops: on a phone they keep a readable width and scroll sideways, with the right edge fading as the hint. */
@media (max-width: 760px) {
    #oc-c-buildup .occ2-wide .ocv-real__shot { justify-content: flex-start; -webkit-mask-image: linear-gradient(to right, #0F0F0F calc(100% - 34px), transparent); mask-image: linear-gradient(to right, #0F0F0F calc(100% - 34px), transparent); }
    #oc-c-buildup .occ2-wide .ocv-real__shot img { width: 760px; max-width: none; }
}

/* Figure chrome in my panels: nothing below 13px */
#oc-c-buildup .iv-block__eyebrow, #oc-c-windows .iv-block__eyebrow,
#oc-c-buildup .ocv-real__tag, #oc-c-windows .ocv-real__tag { font-size: 13px; }
#oc-c-buildup .iv-table thead th, #oc-c-windows .iv-table thead th { font-size: 13px; }

/* ── 40-d1-iv-engine-delta.css ── */
/* Option Chain guide, part D (first half): IV cell, the pricing engine, Delta and Gamma.
   Every rule is scoped to the three sections and every new class carries the ocd1- prefix.
   Layout of the figures answers to the width of the figure (container queries), not the window, because the page
   column changes with the left navigation. Plots keep their labels in HTML so type stays 13px or more at any width. */

:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) {
  /* The tool's own values (src/styles/sahi-colour-system.css), for the cards drawn here. Dark is the dark theme's
     semantic palette (--up, --down, --text-muted, --line); light is the light theme's (--up-ink, --down-ink, --bg,
     --text, --line), overridden in the :root[data-theme="light"] block at the end of this file. */
  --ocd1-card: #272727;
  --ocd1-line: #404040;
  --ocd1-muted: #a3a3a3;
  --ocd1-up: #28bcd0;
  --ocd1-down: #ee807b;
  /* the drawn chain cell (.ocd1-rc): frame, body, header strip, rule under it, ink of the figure, empty state */
  --ocd1-cell-bg: #0f0f0f;
  --ocd1-cell-head: #1a1a1a;
  --ocd1-cell-rule: #404040;
  --ocd1-cell-ink: #fff;
  --ocd1-na-ink: #a3a3a3;
  --ocd1-na-op: 0.82;
  /* a card on the page: a faint wash in dark, a white card in light */
  --ocd1-card-bg: rgba(255, 255, 255, 0.02);
  /* the edge of a bare column crop (none in dark: the cell is a box against the frame) */
  --ocd1-shot-ring: transparent;
  /* plot grid and the zero line */
  --ocd1-grid: color-mix(in srgb, var(--text-1) 10%, transparent);
  --ocd1-zero: color-mix(in srgb, var(--text-1) 34%, transparent);
  /* Calls red, Puts green, as in the chain */
  --ocd1-call: var(--sahi-negative, #E35650);
  --ocd1-put: var(--sahi-positive, #2096A6);
  --ocd1-accent: var(--sahi-cyan, #5ACFE0);
  --ocd1-tan: var(--bu-long-unwind, #C5AA84);
  --ocd1-gut: 34px;
}

/* Superscripts in formulas (e^-rT) stay at the 13px floor */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) sup { font-size: 0.8125rem; line-height: 0; }

/* ── Stage heads: 1 What you will see, 2 Anatomy, 3 Worked example … ─────────────────────────────────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-stage { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: start; gap: 4px 12px; margin: 48px 0 18px; padding-top: 20px; border-top: 1px solid var(--border-soft); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-stage__k { flex: none; width: 28px; height: 28px; border-radius: 50%; display: inline-grid; place-items: center; font-size: 0.85rem; font-weight: 700; line-height: 1; color: var(--sahi-bg-0); background: var(--sahi-cyan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-stage__t { margin: 0; line-height: 28px; font-size: 1.25rem; font-weight: 700; letter-spacing: -0.01em; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-stage__s { grid-column: 2; margin: 0; font-size: 0.95rem; line-height: 1.5; color: var(--text-3); }

/* ── Cards that hold drawn figures ───────────────────────────────────────────────────────────────────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card { container: ocd1card / inline-size; margin: 0 0 24px; border: 1px solid var(--border-soft); border-radius: 16px; background: var(--ocd1-card-bg); overflow: hidden; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 14px 20px; border-bottom: 1px solid var(--border-soft); background: rgba(var(--shade-ch), calc(0.28 * var(--k-band))); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card__eyebrow { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sahi-cyan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card__title { font-size: 1.02rem; font-weight: 700; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card__sub { font-size: 0.9rem; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card__body { display: flex; flex-direction: column; gap: 20px; padding: 22px 20px; min-width: 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; padding: 12px 20px; border-top: 1px solid var(--border-soft); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tag { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tag--drawn { padding: 3px 9px; border: 1px dashed color-mix(in srgb, var(--text-1) 30%, transparent); border-radius: 999px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-legend { display: inline-flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; font-size: 0.9rem; color: var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-key { display: inline-flex; align-items: center; gap: 8px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-key i { display: inline-block; flex: none; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-key__call, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-key__put, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-key__gamma, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-key__slope, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-key__bend { width: 22px; height: 0; border-top: 3px solid var(--ocd1-accent); border-radius: 2px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-key__call { border-top-color: var(--ocd1-call); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-key__put { border-top-color: var(--ocd1-put); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-key__slope { border-top: 3px dashed var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-note { margin: 0; font-size: 0.95rem; line-height: 1.6; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-note b { color: var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-note a, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lead a { color: var(--sahi-cyan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-note--flag { margin: 8px 0 0; padding: 16px 20px; border: 1px solid color-mix(in srgb, var(--ocd1-tan) 40%, var(--border-soft)); border-radius: 12px; background: color-mix(in srgb, var(--text-1) 3%, transparent); color: var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lead { margin: 4px 0 14px; font-size: 1rem; line-height: 1.55; color: var(--text-2); }

/* ── Real captures: the base figure, tightened ───────────────────────────────────────────────────────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocv-real { margin: 0 0 24px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocv-real__tag { font-size: 0.8125rem; letter-spacing: 0.06em; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocv-real__label { font-size: 0.95rem; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocv-real__cap { padding: 0 20px 18px; font-size: 0.92rem; line-height: 1.55; text-align: left; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocv-real-row.ocd1-cards { margin: 0 0 24px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); align-items: start; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cards .ocv-real__bar { flex-direction: column; align-items: flex-start; gap: 2px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cards .ocv-real { display: flex; flex-direction: column; height: 100%; margin: 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cards .ocv-real__shot { flex: 1 1 auto; align-items: center; padding: 16px 14px 12px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cards .ocv-real__cap { padding: 0 16px 16px; font-size: 0.9rem; }

/* A wide capture of the chain, with the columns of this section outlined */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-crop__scroll { overflow-x: auto; padding: 22px 18px 60px; background-image: linear-gradient(to right, var(--real-frame) 30%, transparent), linear-gradient(to left, var(--real-frame) 30%, transparent), linear-gradient(to right, color-mix(in srgb, var(--sahi-cyan) 28%, transparent), transparent), linear-gradient(to left, color-mix(in srgb, var(--sahi-cyan) 28%, transparent), transparent); background-position: 0 0, 100% 0, 0 0, 100% 0; background-size: 28px 100%, 28px 100%, 14px 100%, 14px 100%; background-repeat: no-repeat; background-attachment: local, local, scroll, scroll; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-crop__in { position: relative; width: min(var(--w), 100%); min-width: 700px; max-width: none; margin: 0 auto; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-crop__in img { display: block; width: 100%; height: auto; border-radius: 6px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hl { position: absolute; border: 2px solid var(--sahi-cyan); border-radius: 8px; background: color-mix(in srgb, var(--sahi-cyan) 9%, transparent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--sahi-cyan) 12%, transparent); pointer-events: none; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hl em { position: absolute; top: 100%; left: 50%; transform: translate(-50%, 10px); white-space: nowrap; padding: 6px 12px; border-radius: 999px; font-style: normal; font-size: 0.8125rem; font-weight: 700; line-height: 1; color: var(--sahi-bg-0); background: var(--sahi-cyan); }

/* ── Anatomy: a real capture with numbered pins in the margin, and the list that names each part ──────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-anat { container: ocd1anat / inline-size; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-anat__body { display: grid; grid-template-columns: calc(var(--w) + 2 * var(--ocd1-gut)) minmax(0, 1fr); gap: 20px 28px; align-items: center; padding: 26px 22px 24px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-shot { padding: 0 var(--ocd1-gut); min-width: 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-shot__in { position: relative; width: min(var(--w), 100%); margin: 0 auto; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-shot__in img { display: block; width: 100%; height: auto; border-radius: 6px; }
/* A bare column crop: in dark the cell is a box against the frame; in light it is white on white, so it gets the tool's hairline */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-anat:not(.ocd1-anat--below) .ocd1-shot__in img { box-shadow: 0 0 0 1px var(--ocd1-shot-ring); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pin { position: absolute; left: 0; right: 0; top: var(--y); height: 0; pointer-events: none; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pin b { position: absolute; top: calc(var(--ocd1-pin, 24px) / -2); width: var(--ocd1-pin, 24px); height: var(--ocd1-pin, 24px); display: grid; place-items: center; border: 2px solid var(--sahi-cyan); border-radius: 50%; background: var(--sahi-bg-0); font-size: 0.8125rem; font-weight: 700; line-height: 1; color: var(--sahi-cyan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pin--l b { left: calc(-1 * var(--ocd1-gut)); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pin--r b { right: calc(-1 * var(--ocd1-gut)); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pin::before { content: ''; position: absolute; top: -0.75px; height: 1.5px; background: var(--sahi-cyan); opacity: 0.85; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pin--l::before { left: calc(-1 * var(--ocd1-gut) + var(--ocd1-pin, 24px)); width: calc(var(--ocd1-gut) - var(--ocd1-pin, 24px) + var(--x)); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pin--r::before { right: calc(-1 * var(--ocd1-gut) + var(--ocd1-pin, 24px)); width: calc(var(--ocd1-gut) - var(--ocd1-pin, 24px) + 100% - var(--x)); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pin::after { content: ''; position: absolute; top: -3.5px; left: calc(var(--x) - 3.5px); width: 7px; height: 7px; border-radius: 50%; background: var(--sahi-cyan); box-shadow: 0 0 0 2px var(--sahi-bg-0); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-leg { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-leg li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; align-items: start; font-size: 0.95rem; line-height: 1.5; color: var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-leg b { color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-leg__n { width: 24px; height: 24px; margin-top: 1px; display: grid; place-items: center; border: 2px solid var(--sahi-cyan); border-radius: 50%; font-size: 0.8125rem; font-weight: 700; line-height: 1; color: var(--sahi-cyan); }
/* legend under a wide capture, in two columns */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-anat--below .ocd1-anat__body { grid-template-columns: minmax(0, 1fr); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-anat--below .ocd1-shot { justify-self: center; width: calc(var(--w) + 2 * var(--ocd1-gut)); max-width: 100%; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-anat--below .ocd1-leg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 32px; padding-top: 6px; }
@container ocd1anat (max-width: 700px) {
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-anat--below .ocd1-leg { grid-template-columns: minmax(0, 1fr); }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-anat__body { grid-template-columns: minmax(0, 1fr); padding: 22px 16px 20px; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-shot { padding: 0 var(--ocd1-gut); }
}
@container ocd1anat (max-width: 420px) {
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-anat__body { --ocd1-gut: 26px; --ocd1-pin: 20px; }
}
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0 0 24px; align-items: stretch; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pair > .ocv-real { margin: 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-anat--half .ocd1-anat__body { grid-template-columns: minmax(0, 1fr); padding: 22px 16px 20px; }
@media (max-width: 1100px) { :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pair { grid-template-columns: minmax(0, 1fr); } }

/* ── Sums: what is taken, how, what comes out ────────────────────────────────────────────────────────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-sheet { margin: 0 0 24px; border: 1px solid var(--border-soft); border-radius: 16px; background: var(--ocd1-card-bg); overflow: hidden; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-sums { margin: 0; container: ocd1sums / inline-size; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card__body > .ocd1-sums { margin: -22px -20px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-sum { display: grid; grid-template-columns: 185px minmax(0, 1fr) 200px; gap: 4px 20px; align-items: baseline; padding: 14px 20px; border-bottom: 1px solid var(--rule-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-sum:last-child { border-bottom: 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-sum dt { margin: 0; font-size: 0.95rem; font-weight: 700; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-sum dd { margin: 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-sum__w { font-size: 0.93rem; line-height: 1.55; color: var(--text-3); overflow-wrap: anywhere; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-sum__r { justify-self: end; text-align: right; font-size: 1.05rem; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-sum__r small { font-size: 0.8125rem; font-weight: 500; color: var(--text-3); }
@container ocd1sums (max-width: 620px) {
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-sum { grid-template-columns: minmax(0, 1fr) auto; padding: 14px 16px; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-sum__w { grid-column: 1 / -1; grid-row: 2; }
}

/* A move in a hover card: arrow and tone follow the sign, a zero is a bar */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-mv { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-mv--up { color: var(--ocd1-up); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-mv--down { color: var(--ocd1-down); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-mv--flat { color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tri { flex: none; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-flat { display: inline-block; width: 9px; height: 2px; border-radius: 1px; background: currentColor; }

/* ── Plots ───────────────────────────────────────────────────────────────────────────────────────────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-plot { position: relative; --ph: 260px; margin: 0; min-width: 0; padding-bottom: 58px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-plot__yt { display: block; width: fit-content; margin: 0 0 4px; font-size: 0.8125rem; line-height: 1.3; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-plot__area { position: relative; height: var(--ph); margin: 18px 30px 0 58px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-plot__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-grid { stroke: var(--ocd1-grid); stroke-width: 1; stroke-dasharray: 1000 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-grid.is-zero { stroke: var(--ocd1-zero); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref { stroke: var(--text-3); stroke-width: 1.2; stroke-dasharray: 5 5; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref.is-atm { stroke: var(--ocd1-tan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-line { stroke-width: 2.6; stroke-linejoin: round; stroke-linecap: round; stroke-dasharray: 1000 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-line--call { stroke: var(--ocd1-call); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-line--put { stroke: var(--ocd1-put); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-line--gamma, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-line--bend { stroke: var(--ocd1-accent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-line--slope { stroke: var(--text-2); stroke-dasharray: 7 5; stroke-width: 2; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-yt, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-xt { position: absolute; font-size: 0.8125rem; line-height: 1; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-yt { right: calc(100% + 10px); transform: translateY(-50%); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-xt { top: calc(100% + 10px); transform: translateX(-50%); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-plot__xtitle { position: absolute; left: 58px; right: 30px; bottom: 4px; text-align: center; font-size: 0.8125rem; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pt { position: absolute; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: var(--sahi-bg-0); border: 2.5px solid var(--ocd1-accent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pt--call { border-color: var(--ocd1-call); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pt--put { border-color: var(--ocd1-put); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pt--slope { border-color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lab { position: absolute; font-size: 0.8125rem; font-weight: 600; line-height: 1.2; white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--text-2); pointer-events: none; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lab--call { color: var(--ocd1-call); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lab--put { color: var(--ocd1-put); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lab--gamma, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lab--bend { color: var(--ocd1-accent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lab--plain { font-weight: 500; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lab.is-tr { transform: translate(8px, calc(-100% - 6px)); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lab.is-tl { transform: translate(calc(-100% - 8px), calc(-100% - 6px)); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lab.is-br { transform: translate(8px, 8px); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lab.is-bl { transform: translate(calc(-100% - 8px), 8px); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-lab.is-r { transform: translate(12px, -50%); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-br { position: absolute; width: 0; margin-left: -1px; border-left: 2px solid var(--text-2); pointer-events: none; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-br::before, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-br::after { content: ''; position: absolute; left: -6px; width: 10px; border-top: 2px solid var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-br::before { top: -1px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-br::after { bottom: -1px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pair2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-plot__h { margin: 0; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-1); }
@media (max-width: 1100px) { :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-pair2 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) {
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-states { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-xt.is-minor { display: none; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-plot { --ph: 230px; padding-bottom: 54px; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-plot__area { margin: 16px 22px 0 52px; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-plot__xtitle { left: 52px; right: 22px; }
}

/* ── IV provenance: counts, tiers and the strike map ─────────────────────────────────────────────────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-split { display: flex; gap: 3px; height: 36px; border-radius: 9px; overflow: hidden; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-split__s { display: flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; font-size: 0.8125rem; font-weight: 600; white-space: nowrap; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-split__s b { font-size: 0.95rem; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-split__s--feed { background: var(--sahi-cyan); color: var(--sahi-bg-0); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-split__s--solved { background: var(--ocd1-tan); color: var(--sahi-bg-0); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-split__s--none { color: var(--text-1); background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--text-1) 20%, transparent) 0 3px, color-mix(in srgb, var(--text-1) 5%, transparent) 3px 7px); outline: 1px dashed color-mix(in srgb, var(--text-1) 45%, transparent); outline-offset: -1px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tiers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 4px 14px; align-items: start; padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--ocd1-accent) 40%, var(--border-soft)); border-radius: 12px; background: color-mix(in srgb, var(--text-1) 3%, transparent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier--solved { border-color: color-mix(in srgb, var(--ocd1-tan) 40%, var(--border-soft)); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier--mirror { border-color: color-mix(in srgb, var(--text-1) 28%, transparent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier--none { border-style: dashed; border-color: color-mix(in srgb, var(--text-1) 28%, transparent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier__n { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--sahi-cyan) 45%, transparent); font-size: 0.9rem; font-weight: 700; line-height: 1; color: var(--sahi-cyan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier__t h4 { margin: 0 0 4px; font-size: 1rem; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier__t p { margin: 0; font-size: 0.9rem; line-height: 1.5; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier__c { text-align: right; font-size: 0.8125rem; line-height: 1.2; color: var(--text-3); white-space: nowrap; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier__c b { display: block; font-size: 1.7rem; line-height: 1.1; font-variant-numeric: tabular-nums; color: var(--text-1); }
@container ocd1card (max-width: 700px) { :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tiers { grid-template-columns: minmax(0, 1fr); } }
@container ocd1card (max-width: 420px) {
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier { grid-template-columns: 30px minmax(0, 1fr); }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier__c { grid-column: 2; text-align: left; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tier__c b { display: inline; margin-right: 6px; font-size: 1.2rem; }
}
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-map { display: flex; flex-direction: column; gap: 6px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-map__row { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 10px; align-items: center; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-map__side { font-size: 0.8125rem; font-weight: 600; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-map__strip { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 2px; height: 24px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-map__axis { position: relative; height: 20px; margin-left: 50px; font-size: 0.8125rem; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-map__axis span { position: absolute; top: 2px; white-space: nowrap; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-map__axis span:nth-child(2) { transform: translateX(-50%); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-mp { display: block; border-radius: 2px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-mp--feed { background: var(--sahi-cyan); opacity: 0.85; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-mp--solved { background: var(--ocd1-tan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-mp--mirror { background: color-mix(in srgb, var(--text-1) 50%, transparent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-mp--none { background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--text-1) 28%, transparent) 0 2px, color-mix(in srgb, var(--text-1) 4%, transparent) 2px 4px); outline: 1px dashed color-mix(in srgb, var(--text-1) 50%, transparent); outline-offset: -1px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-key .ocd1-mp { width: 14px; height: 14px; }
@media (max-width: 480px) {
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-map__strip { gap: 1px; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-map__row { grid-template-columns: 34px minmax(0, 1fr); gap: 8px; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-map__axis { margin-left: 42px; }
}

/* ── Replica of one chain cell: header strip over one value, in the tool's dark ink ───────────────────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-rc { display: inline-flex; flex-direction: column; min-width: 104px; border: 1px solid var(--ocd1-line); border-radius: 8px; overflow: hidden; background: var(--ocd1-cell-bg); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-rc__h { padding: 8px 14px; border-bottom: 2px solid var(--ocd1-cell-rule); background: var(--ocd1-cell-head); text-align: center; font-size: 0.8125rem; font-weight: 700; line-height: 1; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ocd1-muted); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-rc__v { padding: 14px 14px; text-align: center; font-size: 1.25rem; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums; color: var(--ocd1-cell-ink); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-rc.is-na .ocd1-rc__v { color: var(--ocd1-na-ink); opacity: var(--ocd1-na-op); }

/* Floor test rows */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-fls { display: flex; flex-direction: column; gap: 12px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-fl { display: grid; grid-template-columns: 110px minmax(0, 1fr) 300px; gap: 12px 24px; align-items: center; padding: 14px 18px; border: 1px solid var(--border-soft); border-radius: 12px; background: color-mix(in srgb, var(--text-1) 3%, transparent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-fl__leg b { font-size: 1.02rem; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-fl__n { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 18px; margin: 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-fl__n dt { margin: 0 0 2px; font-size: 0.8125rem; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-fl__n dd { margin: 0; font-size: 1.02rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-fl__n dd.is-pos { color: var(--ocd1-up); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-fl__n dd.is-neg { color: var(--ocd1-down); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-fl__cell { display: flex; align-items: center; gap: 14px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-fl__cell span { font-size: 0.9rem; line-height: 1.4; color: var(--text-2); }
@container ocd1card (max-width: 740px) {
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-fl { grid-template-columns: minmax(0, 1fr); gap: 10px; }
}

/* ── Engine: four inputs in, one model, outputs out ──────────────────────────────────────────────────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng { display: grid; grid-template-columns: minmax(0, 1.25fr) 190px minmax(0, 1fr); gap: 0; align-items: stretch; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ei { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; align-items: start; padding: 12px 14px; border: 1px solid var(--border-soft); border-radius: 12px; background: color-mix(in srgb, var(--text-1) 3%, transparent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ei__s { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 8px; background: color-mix(in srgb, var(--sahi-cyan) 12%, transparent); font-size: 1.05rem; font-style: italic; font-weight: 700; line-height: 1; color: var(--sahi-cyan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ei__n { display: block; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ei b { display: block; margin: 1px 0 3px; font-size: 1.25rem; line-height: 1.2; font-variant-numeric: tabular-nums; color: var(--text-1); overflow-wrap: anywhere; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ei b small { font-size: 0.85rem; font-weight: 600; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ei__d { display: block; font-size: 0.88rem; line-height: 1.45; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng__core { display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 0; padding: 0 4px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng__box { display: flex; flex: 1 1 auto; flex-direction: column; align-items: center; gap: 4px; min-width: 0; padding: 16px 8px; border: 1px solid color-mix(in srgb, var(--sahi-cyan) 45%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--sahi-cyan) 6%, transparent); text-align: center; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng__box b { font-size: 1.05rem; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng__box span, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng__box i { font-size: 0.8125rem; font-style: normal; line-height: 1.35; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng__arrow { display: block; flex: 0 0 18px; height: 14px; background: linear-gradient(var(--text-3), var(--text-3)) center / 100% 2px no-repeat; position: relative; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng__arrow::after { content: ''; position: absolute; right: 0; top: 50%; width: 9px; height: 9px; margin-top: -4.5px; border-top: 2px solid var(--text-3); border-right: 2px solid var(--text-3); transform: rotate(45deg); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eo { display: grid; grid-template-columns: 62px auto minmax(0, 1fr); grid-template-areas: 'n v s' 'n u s'; gap: 0 12px; align-items: center; padding: 9px 12px; border: 1px solid var(--border-soft); border-radius: 12px; background: color-mix(in srgb, var(--text-1) 3%, transparent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eo__n { grid-area: n; font-size: 0.9rem; font-weight: 700; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eo b { grid-area: v; font-size: 1.15rem; font-variant-numeric: tabular-nums; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eo__u { grid-area: u; font-size: 0.8125rem; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eo__s { grid-area: s; justify-self: end; padding: 3px 9px; border-radius: 999px; font-size: 0.8125rem; font-weight: 600; white-space: nowrap; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eo__s--feed { color: var(--sahi-cyan); border: 1px solid color-mix(in srgb, var(--sahi-cyan) 55%, transparent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eo__s--model { color: var(--sahi-bg-0); background: var(--ocd1-tan); }
@container ocd1card (max-width: 820px) {
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng__core { flex-direction: column; padding: 0; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng__box { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 4px 14px; padding: 12px; width: 100%; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng__arrow { flex: 0 0 22px; width: 14px; height: 22px; background: linear-gradient(var(--text-3), var(--text-3)) center / 2px 100% no-repeat; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-eng__arrow::after { right: auto; left: 50%; top: auto; bottom: 0; margin: 0 0 0 -4.5px; transform: rotate(135deg); }
}

/* Two clocks */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk { position: relative; height: 176px; background-image: linear-gradient(to right, color-mix(in srgb, var(--text-1) 10%, transparent) 1px, transparent 1px); background-size: 20% 100%; border-right: 1px solid color-mix(in srgb, var(--text-1) 10%, transparent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__days { display: grid; grid-template-columns: repeat(5, 1fr); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__days span { padding: 4px 0 6px 8px; font-size: 0.8125rem; font-weight: 600; color: var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__days .is-we { background: color-mix(in srgb, var(--text-1) 5%, transparent); color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__bar { position: absolute; height: 32px; display: flex; align-items: center; padding: 0 12px; border-radius: 8px; font-size: 0.8125rem; color: var(--sahi-bg-0); white-space: nowrap; overflow: hidden; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__bar--t { top: 42px; background: var(--sahi-cyan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__bar--l { top: 128px; background: var(--ocd1-tan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__cap { position: absolute; top: 82px; font-size: 0.8125rem; line-height: 1.2; color: var(--text-2); white-space: nowrap; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__cap--c { text-align: right; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__cap--t::before, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__cap--c::before { content: ''; position: absolute; top: -10px; height: 8px; border-left: 2px solid var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__cap--t::before { left: 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-clk__cap--c::before { right: 0; }

/* ── Tables: source matrix, comparison, units ─────────────────────────────────────────────────────────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-tscroll { overflow-x: auto; container: ocd1tab / inline-size; margin: 0 -4px; padding: 0 4px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) :is(.ocd1-src, .ocd1-cmp, .ocd1-ref-t) { width: 100%; border-collapse: collapse; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) :is(.ocd1-src, .ocd1-cmp, .ocd1-ref-t) :is(th, td) { padding: 11px 14px; text-align: left; vertical-align: top; font-size: 0.92rem; line-height: 1.45; color: var(--text-2); border-bottom: 1px solid var(--rule-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) :is(.ocd1-src, .ocd1-cmp, .ocd1-ref-t) thead th { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-3); background: rgba(var(--shade-ch), calc(0.25 * var(--k-band))); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) :is(.ocd1-src, .ocd1-cmp, .ocd1-ref-t) tbody th { font-weight: 600; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) :is(.ocd1-src, .ocd1-cmp, .ocd1-ref-t) tbody tr:last-child :is(th, td) { border-bottom: 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) :is(.ocd1-cmp, .ocd1-ref-t) small { display: block; font-size: 0.8125rem; font-weight: 400; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp td { font-variant-numeric: tabular-nums; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp td.is-prints { color: var(--text-1); font-weight: 700; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src tbody th { min-width: 180px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src__case { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 0 10px; align-items: center; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src__n { grid-row: span 2; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; border: 2px solid var(--ocd1-accent); font-size: 0.8125rem; font-weight: 700; color: var(--ocd1-accent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src--solved .ocd1-src__n { border-color: var(--ocd1-tan); color: var(--ocd1-tan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src--mirror .ocd1-src__n { border-color: color-mix(in srgb, var(--text-1) 55%, transparent); color: var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src--none .ocd1-src__n { border-style: dashed; border-color: color-mix(in srgb, var(--text-1) 55%, transparent); color: var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src__c { font-size: 0.8125rem; font-weight: 500; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src td.is-dash { color: var(--text-3); }
@container ocd1tab (max-width: 700px) {
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src thead, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp thead, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref-t thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src tbody, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src tr, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src td, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src th, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp tbody, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp tr, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp td, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp th, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref-t, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref-t tbody, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref-t tr, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref-t td, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref-t th { display: block; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src tr, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp tr, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref-t tr { padding: 10px 0; border-bottom: 1px solid var(--border-soft); }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src tbody tr:last-child, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp tbody tr:last-child, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref-t tbody tr:last-child { border-bottom: 0; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src td, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp td, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref-t td { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 12px; padding: 5px 4px; border-bottom: 0; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src td::before, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp td::before, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref-t td::before { content: attr(data-label); font-size: 0.8125rem; font-weight: 700; color: var(--text-3); }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src tbody th, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-cmp tbody th, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-ref-t tbody th { padding: 5px 4px 6px; border-bottom: 0; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-src th { min-width: 0; }
}

/* ── Dashes and states ──────────────────────────────────────────────────────────────────────────────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-dashes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 14px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-dash { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px; border: 1px solid var(--border-soft); border-radius: 12px; background: color-mix(in srgb, var(--text-1) 3%, transparent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-dash h4 { margin: 0; font-size: 1rem; color: var(--text-1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-dash p { margin: 0; font-size: 0.9rem; line-height: 1.5; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-states { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 14px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-st { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px; border: 1px solid var(--border-soft); border-radius: 12px; background: color-mix(in srgb, var(--text-1) 3%, transparent); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-st > span { font-size: 0.9rem; line-height: 1.5; color: var(--text-3); }

/* ── Fact rows ───────────────────────────────────────────────────────────────────────────────────────────────── */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-facts { margin: 0 0 8px; border: 1px solid var(--border-soft); border-radius: 16px; background: var(--ocd1-card-bg); overflow: hidden; container: ocd1facts / inline-size; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-facts > div { display: grid; grid-template-columns: minmax(130px, 190px) minmax(0, 1fr); gap: 4px 24px; padding: 14px 20px; border-bottom: 1px solid var(--rule-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-facts > div:last-child { border-bottom: 0; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-facts dt { margin: 0; padding-top: 2px; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--sahi-cyan); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-facts dd { margin: 0; font-size: 0.95rem; line-height: 1.6; color: var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-facts > div:last-child dt { color: var(--ocd1-tan); }
@container ocd1facts (max-width: 560px) {
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-facts > div { grid-template-columns: minmax(0, 1fr); padding: 12px 16px; }
}

/* Phones: the cards and plots keep their own gutters */
@media (max-width: 480px) {
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card__head, :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card__foot { padding-left: 16px; padding-right: 16px; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card__body { padding: 18px 16px; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-card__body > .ocd1-sums { margin: -18px -16px; }
  :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocv-real__cap { padding: 0 16px 16px; }
}

/* ── Light theme: the tool's own light values for the cells and cards drawn here ──────────────────────────────────
   Source: src/styles/sahi-colour-system.css, :root[data-theme="light"] (--surface white, --line #E6E6E6, --line-strong
   #D3D3D3, --text #0F0F0F, --text-muted #5F5F5F, --text-subtle #6E6E6E, --up-ink #115B68, --down-ink #AE2C27); checked
   against the real light captures (embed-13f68889 IV column, embed-19e70f91 IV card). */
:root[data-theme="light"] :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) {
  --ocd1-line: #D3D3D3;
  --ocd1-muted: #5F5F5F;
  --ocd1-up: #115B68;
  --ocd1-down: #AE2C27;
  --ocd1-cell-bg: #FFFFFF;
  --ocd1-cell-head: #FFFFFF;
  --ocd1-cell-rule: #E6E6E6;
  --ocd1-cell-ink: #0F0F0F;
  --ocd1-na-ink: #6E6E6E;
  --ocd1-na-op: 1;
  --ocd1-card-bg: var(--surface);
  --ocd1-shot-ring: #D3D3D3;
  --ocd1-grid: color-mix(in srgb, var(--text-1) 12%, transparent);
  --ocd1-zero: color-mix(in srgb, var(--text-1) 45%, transparent);
}
/* the IV cell is the app's own cell, drawn at the figure's width; the callouts sit on its header and its figure */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-shot__in > .ocs-spec { display: block; width: 100%; margin: 0 auto; }

/* The Advanced hover cards, drawn (hcard in d1.mjs): title and leg, a rule, then one block per question with its answer on the right */
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc { --hc-bg: #1A1A1A; --hc-line: #272727; --hc-up: #28BCD0; --hc-down: #EE807B; display: flex; flex-direction: column; box-sizing: border-box; width: 100%; padding: 18px 22px; border-radius: 14px; background: var(--hc-bg); box-shadow: 0 0 0 1px var(--hc-line), 0 10px 26px rgba(0, 0, 0, 0.28); color: var(--text-1); }
:root[data-theme="light"] :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc { --hc-bg: #FFFFFF; --hc-line: #E6E6E6; --hc-up: #14697A; --hc-down: #C4342E; box-shadow: 0 0 0 1px var(--hc-line), 0 10px 26px rgba(15, 15, 15, 0.1); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc__t { display: flex; justify-content: space-between; align-items: center; gap: 12px; height: 44px; border-bottom: 1px solid var(--hc-line); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc__t b { font-size: 1.25rem; font-weight: 700; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc__t span { font-size: 1.0625rem; color: var(--text-3); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc__r { display: flex; justify-content: space-between; align-items: center; gap: 14px; min-height: 76px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc__q { display: flex; flex-direction: column; gap: 2px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc__q b { font-size: 1.0625rem; font-weight: 600; color: var(--text-2); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc__q small { font-size: 0.9375rem; color: var(--text-3); font-variant-numeric: tabular-nums; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc__a { font-size: 1.1875rem; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc .ocd1-mv { display: inline-flex; align-items: center; gap: 8px; }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc .ocd1-mv--up { color: var(--hc-up); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc .ocd1-mv--down { color: var(--hc-down); }
:is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc .ocd1-mv--flat { color: var(--text-1); }
@media (max-width: 520px) { :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc { padding: 14px 16px; } :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc__t b { font-size: 1.0625rem; } }
@media (max-width: 520px) { :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc__q b { font-size: 0.9375rem; white-space: nowrap; } :is(#oc-d-iv, #oc-d-engine, #oc-d-delta-gamma) .ocd1-hc__a { font-size: 1rem; } }

/* ── 41-d2-theta-theor.css ── */
/* Option Chain guide, part D2: Theta, Vega and Rho; Theor. Scoped to #oc-d-theta-vega-rho and #oc-d-theor; every class is ocd2-*. */

:is(#oc-d-theta-vega-rho, #oc-d-theor) {
  /* a card: a faint wash in dark, a white card in light */
  --ocd2-card: rgba(255, 255, 255, 0.03);
  /* the drawn chain cell (.ocd2-cell), in the tool's own palette; light values are in the block at the end of this file */
  --ocd2-cell-bg: #0f0f0f;
  --ocd2-cell-head: #1A1A1A;
  --ocd2-cell-rule: #404040;
  --ocd2-cell-line: #272727;
  --ocd2-cell-ink: #fff;
  --ocd2-cell-mute: rgba(255, 255, 255, 0.6);
  --ocd2-na-ink: var(--text-3);
  --ocd2-na-op: 0.82;
  --ocd2-call: var(--sahi-negative);
  --ocd2-put: var(--sahi-positive);
  --ocd2-focus: var(--sahi-cyan);
  --ocd2-bar: color-mix(in srgb, var(--text-1) 40%, transparent);
  --ocd2-axis: color-mix(in srgb, var(--text-1) 28%, transparent);
  --ocd2-grid: color-mix(in srgb, var(--text-1) 8%, transparent);
  --ocd2-small: 0.82rem;
  --ocd2-card-solid: var(--scroll-fade);
  --ocd2-chip: var(--sahi-bg-1);
  /* the edge of a bare column crop (none in dark: the cell is a box against the frame) */
  --ocd2-shot-ring: transparent;
  /* Rho: how strong the unselected Call and Put bars are */
  --ocd2-rc-op: 0.6;
}

:is(#oc-d-theta-vega-rho, #oc-d-theor) sup { font-size: 0.95em; line-height: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocv-real__tag { font-size: 0.82rem; }

/* ── Card with a numbered step header ── */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-card { margin: 28px 0; border: 1px solid var(--border-soft); border-radius: 16px; background: var(--ocd2-card); min-width: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-step { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding: 14px 20px; border-bottom: 1px solid var(--border-soft); background: rgba(var(--shade-ch), calc(0.18 * var(--k-band))); border-radius: 16px 16px 0 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-step__n { flex: none; width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 0.85rem; font-weight: 700; color: var(--ocd2-focus); border: 1px solid var(--border-glow); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-step__t { margin: 0; font-size: 1.02rem; font-weight: 700; line-height: 1.3; color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-step__s { font-size: 0.88rem; color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-card__body { padding: 20px; display: flex; flex-direction: column; gap: 20px; min-width: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-card__foot { padding: 10px 20px; border-top: 1px solid var(--border-soft); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-tag { font-size: var(--ocd2-small); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-note { margin: 0; font-size: 0.92rem; line-height: 1.6; color: var(--text-2); }

/* ── Real captures, several in one frame ── */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-real { margin: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-real .ocv-real__label { font-size: 0.9rem; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-shots { display: flex; flex-wrap: nowrap; justify-content: center; align-items: flex-start; gap: 20px; padding: 20px 16px 16px; overflow: hidden; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-shot { flex: 0 1 var(--w); min-width: 0; margin: 0; text-align: center; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-shot__crop { overflow: hidden; border-radius: 6px; box-shadow: 0 0 0 1px var(--ocd2-shot-ring); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-shot img { display: block; width: 100%; height: auto; border-radius: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-shot figcaption { margin-top: 10px; font-size: 0.9rem; font-weight: 600; color: var(--text-2); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-real + .ocd2-real { margin-top: 0; }

/* ── A drawn copy of a chain cell, in the capture's proportions ── */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-cell { display: inline-flex; flex-direction: column; width: 140px; max-width: 100%; border: 1px solid var(--ocd2-cell-line); border-radius: 8px; overflow: hidden; background: var(--ocd2-cell-bg); font-variant-numeric: tabular-nums lining-nums; text-align: left; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-cell__h { display: block; padding: 10px 12px; text-align: center; background: var(--ocd2-cell-head); border-bottom: 2px solid var(--ocd2-cell-rule); font-size: var(--ocd2-small); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ocd2-cell-mute); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-cell.is-left .ocd2-cell__h { text-align: left; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-cell__v { position: relative; display: block; padding: 14px 16px; font-size: 1.4rem; font-weight: 600; line-height: 1.1; color: var(--ocd2-cell-ink); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-cell.is-na .ocd2-cell__v { color: var(--ocd2-na-ink); opacity: var(--ocd2-na-op); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-cell--lg { width: 248px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-cell--lg .ocd2-cell__h { padding: 16px 14px; font-size: 0.95rem; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-cell--lg .ocd2-cell__v { padding: 26px 28px 58px; font-size: 2.3rem; }

/* Numbered marks: a pin, a bracket under the part it points at */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-pin,
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-p::before { content: attr(data-n); box-sizing: border-box; flex: none; width: 26px; height: 26px; border-radius: 50%; display: inline-grid; place-items: center; font-style: normal; font-size: var(--ocd2-small); font-weight: 700; line-height: 1; color: var(--ocd2-focus); border: 1.5px solid var(--ocd2-focus); background: var(--sahi-bg-0); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-pin { content: none; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-p { position: relative; display: inline-block; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-p::before { position: absolute; top: calc(100% + 18px); left: 50%; transform: translateX(-50%); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-cell__v .ocd2-p::after { content: ""; position: absolute; left: 0; right: 0; top: calc(100% + 4px); height: 8px; border: 2px solid var(--ocd2-focus); border-top: 0; border-radius: 0 0 4px 4px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-p--h::before { top: 50%; left: calc(100% + 14px); transform: translateY(-50%); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-pin--ink { position: absolute; right: 14px; top: 31px; }

/* ── Anatomy ── */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-anat { display: grid; grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); gap: 24px 36px; align-items: center; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-anat__fig { display: flex; justify-content: center; padding: 28px 12px 24px; border-radius: 12px; background: var(--real-frame); border: 1px solid var(--border-soft); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-legend { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-legend li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; align-items: start; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-legend .ocd2-pin::before { content: none; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-legend b { display: block; font-size: 0.95rem; color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-legend span { display: block; font-size: 0.9rem; line-height: 1.5; color: var(--text-2); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-card__body > .ocd2-legend { margin-top: 2px; }

/* ── Worked example ── */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-inputs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-inputs li { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--border-soft); border-radius: 10px; background: color-mix(in srgb, var(--text-1) 3%, transparent); min-width: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-inputs span { font-size: var(--ocd2-small); color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-inputs b { font-size: 1.05rem; color: var(--text-1); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-inputs em { font-style: normal; font-size: var(--ocd2-small); color: var(--text-3); font-variant-numeric: tabular-nums; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calcs { display: grid; gap: 14px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc { padding: 16px 18px; border: 1px solid var(--border-soft); border-radius: 12px; background: color-mix(in srgb, var(--text-1) 3%, transparent); min-width: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc h4 { display: inline; margin: 0 12px 0 0; font-size: 1.05rem; color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc__f { display: inline; margin: 0; font-size: 0.9rem; color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc ol, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-steps { list-style: none; margin: 12px 0 0; padding: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-steps { border: 1px solid var(--border-soft); border-radius: 12px; margin: 0; padding: 4px 18px; background: color-mix(in srgb, var(--text-1) 3%, transparent); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc li, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-steps li { display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; gap: 4px 16px; align-items: baseline; padding: 9px 0; border-top: 1px solid var(--rule-2); font-variant-numeric: tabular-nums; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc li:first-child, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-steps li:first-child { border-top: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc li > span, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-steps__k { font-size: 0.9rem; font-weight: 600; color: var(--text-2); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc code, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-steps code { font: inherit; font-size: 0.9rem; color: var(--text-3); overflow-wrap: anywhere; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc li > b, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-steps li > b { font-size: 0.98rem; color: var(--text-1); text-align: right; white-space: nowrap; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-steps li > b.is-result { color: var(--ocd2-focus); font-size: 1.1rem; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc__r { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 14px 0 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc__r > div { padding: 10px 12px; border: 1px solid var(--border-soft); border-radius: 10px; background: rgba(var(--shade-ch), calc(0.2 * var(--k-band))); min-width: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc__r dt { font-size: var(--ocd2-small); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc__r dd { margin: 2px 0 0; font-size: 1.1rem; font-weight: 600; color: var(--text-1); font-variant-numeric: tabular-nums; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc__r dd small { display: block; font-size: var(--ocd2-small); font-weight: 400; color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc__r .is-print { border-color: var(--border-glow); background: color-mix(in srgb, var(--sahi-cyan) 7%, transparent); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc__r .is-print dt, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc__r .is-print dd { color: var(--ocd2-focus); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-vs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-vs > div { padding: 12px 14px; border: 1px solid var(--border-soft); border-radius: 10px; background: color-mix(in srgb, var(--text-1) 3%, transparent); min-width: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-vs dt { font-size: var(--ocd2-small); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-vs dd { margin: 2px 0 0; font-size: 1.25rem; font-weight: 700; color: var(--text-1); font-variant-numeric: tabular-nums; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-vs .is-gap { border-color: var(--border-glow); background: color-mix(in srgb, var(--sahi-cyan) 7%, transparent); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-vs .is-gap dd { color: var(--ocd2-focus); }

/* Three figures of one leg on one rupee scale */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid var(--border-soft); border-radius: 12px; background: rgba(var(--shade-ch), calc(0.16 * var(--k-band))); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__row { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px; align-items: center; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__name b { display: block; font-size: 0.95rem; color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__name small { display: block; font-size: var(--ocd2-small); color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__track { position: relative; height: 34px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__zero { position: absolute; left: 50%; top: 0; bottom: 0; border-left: 1px solid var(--ocd2-axis); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__bar { position: absolute; top: 7px; bottom: 7px; border-radius: 4px; background: var(--ocd2-focus); opacity: 0.85; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__bar.is-neg { right: 50%; border-radius: 4px 0 0 4px; transform-origin: 100% 50%; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__bar.is-pos { left: 50%; border-radius: 0 4px 4px 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__val { position: absolute; top: 50%; transform: translateY(-50%); font-size: 0.98rem; color: var(--text-1); font-variant-numeric: tabular-nums; white-space: nowrap; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__val.is-neg { margin-right: 8px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__val.is-pos { margin-left: 8px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__axis { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__axis span { grid-column: 2; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__axis { display: flex; justify-content: space-between; padding-left: calc(150px + 14px); font-size: var(--ocd2-small); color: var(--text-3); }

/* ── Figures ── */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-figs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-fig { margin: 0; padding: 16px 18px 18px; border: 1px solid var(--border-soft); border-radius: 12px; background: rgba(var(--shade-ch), calc(0.16 * var(--k-band))); min-width: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-figs > .ocd2-fig:first-child { grid-column: 1 / -1; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-fig > figcaption b { display: block; font-size: 1rem; color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-fig > figcaption span { display: block; margin-top: 2px; font-size: 0.88rem; line-height: 1.45; color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-fig__note { margin: 14px 0 0; font-size: 0.9rem; line-height: 1.6; color: var(--text-2); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-fig__key { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 12px 0 0; font-size: var(--ocd2-small); color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-key { display: inline-flex; align-items: center; gap: 8px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-key i { display: inline-block; flex: none; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-key__ce, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-key__pe { width: 12px; height: 12px; border-radius: 3px; background: var(--ocd2-call); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-key__pe { background: var(--ocd2-put); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-key__fwd { width: 0; height: 14px; border-left: 1.5px dashed color-mix(in srgb, var(--text-1) 55%, transparent); }

:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-plot, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bars { display: grid; grid-template-columns: 38px minmax(0, 1fr); column-gap: 8px; margin-top: 16px; --ocd2-h: 280px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-plot__y { position: relative; height: var(--ocd2-h); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-plot__y span { position: absolute; right: 0; transform: translateY(-50%); font-size: var(--ocd2-small); line-height: 1; color: var(--text-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bars .ocd2-plot__y span { transform: translateY(50%); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-plot__area, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bars__area { position: relative; height: var(--ocd2-h); border-left: 1px solid var(--ocd2-axis); border-bottom: 1px solid var(--ocd2-axis); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-grid { position: absolute; left: 0; right: 0; height: 0; border-top: 1px solid var(--ocd2-grid); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-grid.is-zero { border-top-color: var(--ocd2-axis); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-plot__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-line { stroke: var(--ocd2-focus); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 20000; /* longer than the line, so solid; also keeps guide-ux from draw-animating it */ }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-dot { position: absolute; box-sizing: border-box; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: var(--sahi-bg-0); border: 2px solid var(--text-2); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-dot.is-leg { width: 18px; height: 18px; margin: -9px 0 0 -9px; background: var(--ocd2-focus); border: 3px solid var(--sahi-bg-0); box-shadow: 0 0 0 2px var(--ocd2-focus); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-lb { position: absolute; font-size: var(--ocd2-small); line-height: 1.25; color: var(--text-3); white-space: nowrap; pointer-events: none; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-lb b { color: var(--text-1); font-variant-numeric: tabular-nums; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-lb--br { transform: translate(12px, 10px); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-lb--ar { transform: translate(12px, calc(-100% - 10px)); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-lb--bl { transform: translate(calc(-100% - 2px), 16px); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-lb.is-leg { color: var(--ocd2-focus); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-lb.is-leg b { color: var(--ocd2-focus); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-plot__x, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bars__x { grid-column: 2; position: relative; height: 22px; margin-top: 8px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-plot__x span, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bars__x span { position: absolute; top: 0; transform: translateX(-50%); font-size: var(--ocd2-small); line-height: 1.2; color: var(--text-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bars__x span.is-fwd { color: var(--text-2); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-plot__cap { grid-column: 2; margin-top: 2px; font-size: var(--ocd2-small); color: var(--text-3); text-align: center; }

:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bars__cols { position: absolute; inset: 0; display: grid; align-items: end; column-gap: 3px; padding: 0 2px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bar { display: block; width: 100%; min-height: 1px; background: var(--ocd2-bar); border-radius: 3px 3px 0 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bar.is-leg { background: var(--ocd2-focus); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-fwd { position: absolute; top: 0; bottom: 0; border-left: 1.5px dashed color-mix(in srgb, var(--text-1) 55%, transparent); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bl { position: absolute; padding: 2px 4px; border-radius: 3px; background: var(--ocd2-chip); font-size: var(--ocd2-small); line-height: 1; color: var(--text-3); white-space: nowrap; font-variant-numeric: tabular-nums; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bl b { color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bl--l { transform: translateX(calc(-100% - 8px)); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bl--r { margin-left: 8px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bl.is-leg, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bl.is-leg b { color: var(--ocd2-focus); }
/* Rho: a Call bar up and a Put bar down from the same zero line */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-rc { position: relative; display: block; height: 100%; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-rc i { position: absolute; left: 8%; right: 8%; opacity: var(--ocd2-rc-op); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-rc__up { bottom: 50%; background: var(--ocd2-call); border-radius: 3px 3px 0 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-rc__dn { top: 50%; background: var(--ocd2-put); border-radius: 0 0 3px 3px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-rc.is-leg i { opacity: 1; }

/* ── Tables ── */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 12px; background: linear-gradient(to right, var(--ocd2-card-solid) 30%, transparent) left center / 28px 100% no-repeat local, linear-gradient(to left, var(--ocd2-card-solid) 30%, transparent) right center / 28px 100% no-repeat local, linear-gradient(to right, color-mix(in srgb, var(--text-1) 14%, transparent), transparent) left center / 12px 100% no-repeat scroll, linear-gradient(to left, color-mix(in srgb, var(--text-1) 14%, transparent), transparent) right center / 12px 100% no-repeat scroll; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table th, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table td { padding: 10px 12px; text-align: left; vertical-align: top; font-size: 0.9rem; line-height: 1.5; color: var(--text-2); border-bottom: 1px solid var(--rule-2); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table tbody tr:last-child th, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table tbody tr:last-child td { border-bottom: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table thead th { font-size: var(--ocd2-small); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-3); background: rgba(var(--shade-ch), calc(0.22 * var(--k-band))); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table thead th small { display: block; margin-top: 2px; font-size: var(--ocd2-small); font-weight: 400; letter-spacing: 0; text-transform: none; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table tbody th { font-weight: 600; color: var(--text-1); white-space: nowrap; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table small { font-size: var(--ocd2-small); color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--hv td, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--hv thead th:nth-child(n+2) { text-align: right; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--hv td { white-space: nowrap; color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--hv tbody th small { display: block; margin-top: 2px; font-weight: 400; white-space: normal; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--facts { min-width: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--facts tbody th { width: 120px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--gap { min-width: 540px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--gap th, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--gap td { text-align: right; white-space: nowrap; color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--gap thead th { color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--gap th:first-child, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--gap td:first-child { text-align: left; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--gap td.is-gap { font-weight: 700; color: var(--ocd2-focus); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-side { display: inline-block; flex: none; width: 10px; height: 10px; margin-right: 8px; border-radius: 50%; background: var(--ocd2-call); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-side--pe { background: var(--ocd2-put); }

:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-facts { margin: 0; display: grid; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-facts > div { display: grid; grid-template-columns: minmax(110px, 160px) minmax(0, 1fr); gap: 4px 20px; padding: 12px 0; border-top: 1px solid var(--rule-2); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-facts > div:first-child { border-top: 0; padding-top: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-facts dt { font-size: var(--ocd2-small); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); padding-top: 2px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-facts dd { margin: 0; font-size: 0.92rem; line-height: 1.6; color: var(--text-2); }

/* ── States ── */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-states { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-states--three { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-state { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px; border: 1px solid var(--border-soft); border-radius: 12px; background: color-mix(in srgb, var(--text-1) 3%, transparent); min-width: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-state__k { font-size: var(--ocd2-small); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-state__t { font-size: 0.88rem; line-height: 1.5; color: var(--text-2); }

/* ── Theor: inputs, model, cell ── */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-flow { display: grid; grid-template-columns: minmax(0, 1.25fr) auto minmax(0, 1.35fr) auto minmax(0, 1fr); gap: 14px 14px; align-items: center; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-flow__col { display: flex; flex-direction: column; min-width: 0; align-self: stretch; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-flow__col--mid .ocd2-model, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-flow__col:last-child .ocd2-cell { margin-block: auto; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-flow__h { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 0.95rem; font-weight: 700; color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-flow__arrow { color: var(--text-3); flex: none; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-ins { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-ins li { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 0 10px; align-items: baseline; padding: 8px 12px; border: 1px solid var(--border-soft); border-radius: 10px; background: color-mix(in srgb, var(--text-1) 3%, transparent); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-ins .ocd2-in__k { grid-row: 1 / span 2; font-size: var(--ocd2-small); color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-ins b { font-size: 1rem; color: var(--text-1); font-variant-numeric: tabular-nums; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-ins em { font-style: normal; font-size: var(--ocd2-small); color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-model { display: grid; gap: 8px; padding: 16px; border: 1px solid var(--border-glow); border-radius: 12px; background: var(--accent-wash); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-model b { font-size: 1.1rem; color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-model span { font-size: 0.9rem; line-height: 1.5; color: var(--text-2); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-flow .ocd2-cell--lg { width: 100%; max-width: 230px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-flow .ocd2-cell--lg .ocd2-cell__v { padding: 26px 24px; }

/* ── Theor: model against market ── */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm { display: grid; gap: 16px; align-content: start; padding: 16px 18px 18px; border: 1px solid var(--border-soft); border-radius: 12px; background: rgba(var(--shade-ch), calc(0.16 * var(--k-band))); min-width: 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__t { display: flex; align-items: center; margin: 0; font-size: 1rem; color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__t span { margin-left: auto; font-size: var(--ocd2-small); color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__pair { display: grid; gap: 8px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__row { display: grid; grid-template-columns: 48px minmax(0, 1fr) 62px; gap: 10px; align-items: center; font-size: 0.9rem; color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__row b { text-align: right; color: var(--text-1); font-variant-numeric: tabular-nums; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__track { display: block; height: 20px; border-radius: 4px; background: color-mix(in srgb, var(--text-1) 5%, transparent); overflow: hidden; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__bar { display: block; height: 100%; border-radius: 0 4px 4px 0; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__bar.is-model { background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--sahi-cyan) 70%, transparent) 0 6px, color-mix(in srgb, var(--sahi-cyan) 30%, transparent) 6px 12px); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__bar.is-market { background: color-mix(in srgb, var(--text-1) 78%, transparent); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__zoom { display: grid; gap: 6px; padding-top: 14px; border-top: 1px dashed var(--border-soft); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__ztag { font-size: var(--ocd2-small); color: var(--text-3); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__strip { position: relative; display: block; height: 82px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__strip::before { content: ""; position: absolute; left: 0; right: 0; top: 41px; border-top: 2px solid var(--ocd2-axis); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__span { position: absolute; top: 33px; height: 18px; border-radius: 9px; background: color-mix(in srgb, var(--text-1) 16%, transparent); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__m { position: absolute; top: 42px; box-sizing: border-box; width: 14px; height: 14px; transform: translate(-50%, -50%); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__m.is-model { background: var(--ocd2-focus); transform: translate(-50%, -50%) rotate(45deg); border-radius: 2px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__m.is-market { background: var(--text-1); border-radius: 50%; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__l { position: absolute; top: 58px; font-size: var(--ocd2-small); line-height: 1.2; white-space: nowrap; font-variant-numeric: tabular-nums; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__l.is-model { transform: translateX(calc(-100% - 6px)); color: var(--ocd2-focus); text-align: right; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__l.is-market { transform: translateX(6px); color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__gap { position: absolute; top: 4px; transform: translateX(-50%); font-size: 0.95rem; font-weight: 700; line-height: 1.2; color: var(--text-1); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ── Quote and misreading ── */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-quote, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-misread { margin: 32px 0; padding: 20px 24px; border: 1px solid color-mix(in srgb, var(--ocd2-focus) 40%, var(--border-soft)); border-radius: 12px; background: color-mix(in srgb, var(--text-1) 3%, transparent); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-misread { border-left-color: var(--bu-long-unwind); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-quote__k, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-misread__k { display: block; margin-bottom: 6px; font-size: var(--ocd2-small); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ocd2-focus); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-misread__k { color: var(--bu-long-unwind); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-misread h3 { margin: 0 0 8px; font-size: 1.02rem; line-height: 1.35; color: var(--text-1); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-quote p, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-misread p { margin: 0; font-size: 0.95rem; line-height: 1.65; color: var(--text-2); }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-quote p + p { margin-top: 10px; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-misread a { color: var(--sahi-cyan); }

:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-swipe { display: none; }

/* ── Narrow screens ── */
@media (max-width: 860px) {
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-inputs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-figs, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvms { grid-template-columns: minmax(0, 1fr); }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-flow { grid-template-columns: minmax(0, 1fr); justify-items: stretch; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-flow__arrow { justify-self: center; transform: rotate(90deg); }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-flow .ocd2-cell--lg { max-width: 260px; }
}
@media (max-width: 720px) {
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-anat { grid-template-columns: minmax(0, 1fr); }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc li, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-steps li { grid-template-columns: minmax(0, 1fr) auto; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc li > span, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-steps__k { grid-column: 1 / -1; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-vs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* The facts table becomes one card per row: label, then Theta, Vega, Rho */
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack thead { display: none; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack tbody, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack tr, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack th, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack td { display: block; width: auto; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack tr { margin-bottom: 14px; border: 1px solid var(--border-soft); border-radius: 12px; overflow: hidden; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--facts tbody th { width: auto; padding: 10px 14px; background: rgba(var(--shade-ch), calc(0.22 * var(--k-band))); font-size: var(--ocd2-small); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack td { padding: 10px 14px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack td::before { content: attr(data-g); display: block; margin-bottom: 2px; font-weight: 700; color: var(--text-1); }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack tbody tr:last-child th, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack tbody tr:last-child td { border-bottom: 1px solid var(--rule-2); }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-stack tbody tr:last-child td:last-child { border-bottom: 0; }
}
@media (max-width: 640px) {
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-wide .ocv-real__shot { justify-content: flex-start; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-wide .ocv-real__shot img { max-width: none; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-swipe { display: block; margin-top: 6px; color: var(--text-2); }
}
@media (max-width: 640px) {
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-real--cards .ocd2-shots { flex-direction: column; align-items: center; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-real--cards .ocd2-shot { flex: 0 0 auto; width: 100%; }
}
@media (max-width: 420px) {
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-inputs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--gap th, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-table--gap td { padding: 10px 8px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-states, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-states--three { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-state { padding: 12px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-real .ocv-real__bar { padding: 8px 12px; gap: 2px 10px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-card__body { padding: 14px; gap: 16px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-step { padding: 12px 14px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-card__foot { padding: 10px 14px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-shots { gap: 10px; padding: 14px 10px 12px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc { padding: 14px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-calc__r { grid-template-columns: minmax(0, 1fr); }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-fig { padding: 14px 12px 16px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-plot, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-bars { --ocd2-h: 240px; grid-template-columns: 32px minmax(0, 1fr); column-gap: 6px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theta-vega-rho) .ocd2-scale__row, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__row { grid-template-columns: 96px minmax(0, 1fr); gap: 10px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-scale__axis { padding-left: calc(96px + 10px); }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-facts > div { grid-template-columns: minmax(0, 1fr); }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-quote, :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-misread { padding: 16px 18px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm { padding: 14px 12px 16px; }
  :is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-mvm__row { grid-template-columns: 42px minmax(0, 1fr) 56px; gap: 8px; }
}

/* ── Light theme: the tool's own light values for the cells drawn here, and plot tones that read on white ─────────
   Cell values: src/styles/sahi-colour-system.css, :root[data-theme="light"] (--surface white, --line #E6E6E6,
   --line-strong #D3D3D3, --text #0F0F0F, --text-muted #5F5F5F, --text-subtle #6E6E6E), checked against the real light
   captures (embed-13f68889 IV column, embed-ed24f45f Delta, embed-63d7b033 Theta). Plot tones: a grey series mark needs
   3:1 on white, so bars and axes are heavier than their dark counterparts. */
:root[data-theme="light"] :is(#oc-d-theta-vega-rho, #oc-d-theor) {
  --ocd2-card: var(--surface);
  --ocd2-cell-bg: #FFFFFF;
  --ocd2-cell-head: #FFFFFF;
  --ocd2-cell-rule: #E6E6E6;
  --ocd2-cell-line: #D3D3D3;
  --ocd2-cell-ink: #0F0F0F;
  --ocd2-cell-mute: #5F5F5F;
  --ocd2-na-ink: #6E6E6E;
  --ocd2-na-op: 1;
  --ocd2-bar: color-mix(in srgb, var(--text-1) 50%, transparent);
  --ocd2-axis: color-mix(in srgb, var(--text-1) 45%, transparent);
  --ocd2-grid: color-mix(in srgb, var(--text-1) 12%, transparent);
  --ocd2-shot-ring: #D3D3D3;
  --ocd2-rc-op: 0.75;
}
/* each state tile: the cell sits in the middle, its figure centred, the words centred under it */
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-state { display: flex; flex-direction: column; align-items: center; text-align: center; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-state__k { align-self: flex-start; text-align: left; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-state .ocd2-cell { align-self: center; margin: 4px auto; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-state .ocd2-cell__v { text-align: center; justify-content: center; }
:is(#oc-d-theta-vega-rho, #oc-d-theor) .ocd2-state__t { text-align: center; }

/* ── 50-e1-value-distance.css ── */
/* Option Chain guide, part E (Intrinsic and TV, B/E and B/E %, Dist and Rel dist, the reading routine).
   Class prefix oce1-. Every rule is scoped under the four section ids so nothing leaks into other parts. */

/* Tokens. Dark values are the guide's original look; the light block below follows the tool's own light theme, measured from
   the real light captures (docs/widgets/option-chain-advanced/images/<id>-light.png): a chain cell is a white header with a
   #5F5F5F label over a white value in #0F0F0F, split by a light rule; the spot line pill is near-black with white text. */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) {
  --oce1-i: var(--sahi-cyan);
  --oce1-on-i: #052A30;                              /* text on the solid Intrinsic fill */
  --oce1-head: #1A1A1A;                              /* header band of a real chain cell, measured from the captures */
  --oce1-row: #0F0F0F;                               /* value band of a real chain cell */
  --oce1-ink: #FFFFFF;                               /* the value a replica cell prints */
  --oce1-head-ink: rgba(255, 255, 255, 0.64);        /* the header label of a replica cell */
  --oce1-head-rule: rgba(255, 255, 255, 0.14);       /* the rule under that header */
  --oce1-div: rgba(255, 255, 255, 0.05);             /* the hairline between joined replica cells */
  --oce1-edge: transparent;                          /* an outline that keeps a white replica visible on a white card */
  --oce1-pill: #F5F5F5;                              /* the spot line pill of the tool */
  --oce1-pill-ink: #0F0F0F;
  --oce1-warn: var(--bu-long-unwind, #C5AA84);
  --oce1-halo: #15020B;                              /* knocks a chart label out of the lines behind it */
  --oce1-tvbase: #404040;                            /* under the hatched time-value bar */
  --oce1-tvink: #FFFFFF;
  --oce1-tvshadow: rgba(0, 0, 0, 0.6);
  --oce1-trk: rgba(255, 255, 255, 0.045);            /* the empty track of a split bar */
  --oce1-trk-line: rgba(255, 255, 255, 0.13);
  --oce1-hair: rgba(255, 255, 255, 0.06);            /* table row and column hairlines */
  --oce1-vline: rgba(255, 255, 255, 0.07);
  --oce1-grid: rgba(255, 255, 255, 0.08);            /* chart gridlines */
  --oce1-zero: rgba(255, 255, 255, 0.5);
  --oce1-len: color-mix(in srgb, var(--sahi-cyan) 55%, transparent);   /* a Dist bar on the ruler */
  --oce1-fade: color-mix(in srgb, var(--sahi-cyan) 30%, transparent);  /* the sideways-scroll hint on a phone */
}
:root[data-theme="light"] :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) {
  --oce1-on-i: #FFFFFF;
  --oce1-head: #FFFFFF;
  --oce1-row: #FFFFFF;
  --oce1-ink: #0F0F0F;
  --oce1-head-ink: #5F5F5F;
  --oce1-head-rule: #E6E6E6;
  --oce1-div: rgba(var(--ink-rgb), 0.1);
  --oce1-edge: var(--border-soft);
  --oce1-pill: #0F0F0F;
  --oce1-pill-ink: #FFFFFF;
  --oce1-halo: #FFFFFF;
  --oce1-tvbase: #FFFFFF;
  --oce1-tvink: var(--text-1);
  --oce1-tvshadow: transparent;
  --oce1-trk: rgba(var(--ink-rgb), 0.06);
  --oce1-trk-line: rgba(var(--ink-rgb), 0.18);
  --oce1-hair: rgba(var(--ink-rgb), 0.1);
  --oce1-vline: rgba(var(--ink-rgb), 0.14);
  --oce1-grid: rgba(var(--ink-rgb), 0.12);
  --oce1-zero: rgba(var(--ink-rgb), 0.55);
  --oce1-len: color-mix(in srgb, var(--sahi-cyan) 70%, transparent);
  --oce1-fade: color-mix(in srgb, var(--sahi-cyan) 22%, transparent);
}

/* ── Step headings ────────────────────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-h { display: flex; align-items: center; gap: 12px; margin: 52px 0 18px; font-family: var(--font-sans); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-3); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-h::before { content: ""; flex: none; width: 22px; height: 2px; border-radius: 2px; background: var(--sahi-cyan); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-h::after { content: ""; flex: 1; height: 1px; background: var(--border-soft); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-lede { margin-bottom: 8px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-block { margin: 20px 0 28px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-block .iv-key i.oce1-keyi, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-block .iv-key i.oce1-keyt, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-block .iv-key i.oce1-keyp, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-block .iv-key i.oce1-keyl, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-block .iv-key i.oce1-keyd { width: 18px; height: 10px; border: 0; border-radius: 2px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-key i.oce1-keyi, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-key i.oce1-keyd { background: var(--oce1-i); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-key i.oce1-keyt { background: repeating-linear-gradient(135deg, rgba(var(--ink-rgb), 0.6) 0 2px, rgba(var(--ink-rgb), 0.22) 2px 4px); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-key i.oce1-keyp { background: color-mix(in srgb, var(--sahi-positive) 60%, transparent); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-key i.oce1-keyl { background: color-mix(in srgb, var(--sahi-negative) 55%, transparent); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .iv-key i.iv-key__spot { width: 18px; }

/* ── Real captures laid in one row ────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-band { margin: 8px 0 28px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-band__shot { display: flex; align-items: flex-start; width: calc(100% - 36px); margin: 18px auto 16px; border: 1px solid var(--border-soft); border-radius: 10px; overflow: hidden; background: var(--oce1-row); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-band__shot img, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-strip__row img { display: block; min-width: 0; height: auto; border-radius: 0; }

/* ── Pins ─────────────────────────────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-pin { flex: none; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--sahi-cyan); background: var(--sahi-bg-1); color: var(--sahi-cyan); font: 700 13px/1 var(--font-sans); font-style: normal; font-variant-numeric: tabular-nums; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-pin--sq { border-radius: 6px; font-size: 13px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-c > .oce1-pin { position: absolute; top: -11px; left: 50%; margin-left: -11px; z-index: 2; }

/* ── A drawn replica of a chain cell: header band over a value band ───── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-rep { display: flex; width: 100%; max-width: 360px; border-radius: 10px; box-shadow: 0 0 0 1px var(--oce1-edge); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-c { position: relative; flex: 1 1 0; min-width: 0; text-align: center; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-c__h { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 11px 8px; background: var(--oce1-head); border-bottom: 2px solid var(--oce1-head-rule); color: var(--oce1-head-ink); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; white-space: nowrap; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-c__v { display: block; padding: 17px 8px 18px; background: var(--oce1-row); color: var(--oce1-ink); font-size: 1.3rem; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.2; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-rep .oce1-c:first-child .oce1-c__h { border-top-left-radius: 10px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-rep .oce1-c:first-child .oce1-c__v { border-bottom-left-radius: 10px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-rep .oce1-c:last-child .oce1-c__h { border-top-right-radius: 10px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-rep .oce1-c:last-child .oce1-c__v { border-bottom-right-radius: 10px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-rep .oce1-c + .oce1-c { box-shadow: inset 1px 0 0 var(--oce1-div); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-key { flex: none; width: 10px; height: 10px; border-radius: 2px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-key--i { background: var(--oce1-i); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-key--t { background: repeating-linear-gradient(135deg, rgba(var(--ink-rgb), 0.7) 0 2px, rgba(var(--ink-rgb), 0.28) 2px 4px); }

/* ── Anatomy: intrinsic + TV = LTP ────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-anat { margin: 8px 0 28px; padding: 22px 22px 24px; border: 1px solid var(--border-soft); border-radius: 16px; background: var(--surface); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-anat__cap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-anat__cap b { color: var(--text-1); font-size: 1rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-anat__cap span { color: var(--text-3); font-size: 0.88rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-eq { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 34px 0 20px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-eq .oce1-c { flex: 0 1 158px; border-radius: 10px; box-shadow: 0 0 0 1px var(--oce1-edge); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-eq .oce1-c__h { border-radius: 10px 10px 0 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-eq .oce1-c__v { border-radius: 0 0 10px 10px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-op { flex: none; color: var(--text-3); font-size: 1.7rem; font-weight: 300; line-height: 1; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-split { display: flex; height: 36px; border-radius: 9px; overflow: hidden; box-shadow: 0 0 0 1px var(--oce1-edge); font-size: 0.82rem; font-weight: 700; letter-spacing: 0.02em; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-split__i, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-split__t { display: grid; place-items: center; min-width: 0; white-space: nowrap; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-split__i { background: var(--oce1-i); color: var(--oce1-on-i); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-split__t { color: var(--oce1-tvink); background: repeating-linear-gradient(135deg, rgba(var(--ink-rgb), 0.26) 0 4px, rgba(var(--ink-rgb), 0.12) 4px 8px), var(--oce1-tvbase); text-shadow: 0 1px 2px var(--oce1-tvshadow); }

:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-legend { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 14px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-legend li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start; color: var(--text-2); font-size: 0.95rem; line-height: 1.55; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-legend .oce1-pin { margin-top: 1px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-legend b { color: var(--text-1); font-weight: 700; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-legend--side { margin-top: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) code { font-family: inherit; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-legend code, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc code, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact code { font-family: var(--font-sans); font-size: max(0.8125rem, 0.86em); padding: 1px 6px; border-radius: 4px; background: color-mix(in srgb, var(--text-1) 7%, transparent); color: var(--text-1); white-space: nowrap; }

/* ── Worked examples ──────────────────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calcgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 8px 0 28px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc { border: 1px solid var(--border-soft); border-radius: 14px; background: var(--surface); overflow: hidden; min-width: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; padding: 13px 18px; background: rgba(var(--shade-ch), calc(0.28 * var(--k-band))); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc__head b { color: var(--text-1); font-size: 1rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc__head span { color: var(--text-3); font-size: 0.82rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc__r { display: grid; grid-template-columns: 5.6rem minmax(0, 1fr) 6.4rem; gap: 6px 14px; align-items: center; padding: 14px 18px; border-top: 1px solid var(--border-soft); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc__k { color: var(--text-3); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc__w { color: var(--text-2); font-size: 0.9rem; line-height: 1.5; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc__p { justify-self: end; min-width: 5.6rem; padding: 6px 12px; border-radius: 8px; background: var(--oce1-row); border: 1px solid var(--border-soft); color: var(--oce1-ink); font-weight: 600; font-size: 1rem; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc__r.is-check .oce1-calc__p { background: transparent; border-style: dashed; color: var(--text-2); font-weight: 500; }

/* ── Split bars ───────────────────────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sbgrp { display: flex; flex-direction: column; gap: 4px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sbgrp + .oce1-sbgrp { margin-top: 14px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sbgrp__h { margin: 0 0 6px; padding: 0 8px; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sbgrp--ce .oce1-sbgrp__h { color: var(--sahi-negative); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sbgrp--pe .oce1-sbgrp__h { color: var(--sahi-positive); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb { display: grid; grid-template-columns: 6.6rem minmax(0, 1fr) 16.4rem; column-gap: 16px; align-items: center; min-height: 32px; padding: 3px 10px; border-radius: 8px; font-variant-numeric: tabular-nums; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb--atm { background: color-mix(in srgb, var(--text-1) 5.5%, transparent); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__k { display: grid; grid-template-columns: 3.1rem 2.4rem; align-items: baseline; column-gap: 6px; white-space: nowrap; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__k b { color: var(--text-1); font-size: 0.95rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__k small { color: var(--text-3); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb--atm .oce1-sb__k small { color: var(--text-1); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__track { display: flex; height: 16px; border-radius: 4px; overflow: hidden; background: linear-gradient(to right, var(--oce1-trk-line) 1px, transparent 1px) 0 0 / 25% 100% repeat-x, var(--oce1-trk); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__i { flex: none; height: 100%; background: var(--oce1-i); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__t { flex: none; height: 100%; background: repeating-linear-gradient(135deg, rgba(var(--ink-rgb), 0.55) 0 3px, rgba(var(--ink-rgb), 0.24) 3px 6px); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__n { display: grid; grid-template-columns: 4.7rem 1.1rem 4.7rem 1.1rem 4.7rem; align-items: baseline; justify-content: end; text-align: right; font-size: 0.9rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__n b { color: var(--text-1); font-weight: 600; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__n em { font-style: normal; text-align: center; color: var(--text-3); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__n > span:last-child { color: var(--text-2); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__flag { grid-column: 2 / -1; display: flex; align-items: center; gap: 8px; margin-top: 3px; color: var(--oce1-warn); font-size: 0.82rem; line-height: 1.4; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__flag i { font-style: normal; font-weight: 700; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb--clamp .oce1-sb__n b:nth-of-type(2) { color: var(--oce1-warn); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb--axis { min-height: 0; padding-bottom: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__ax { position: relative; height: 18px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__ax i { position: absolute; top: 0; transform: translateX(-50%); font-style: normal; font-size: 0.8125rem; color: var(--text-3); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__ax i:first-child { transform: none; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__ax i:last-child { transform: translateX(-100%); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb--axis .oce1-sb__n { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }

/* ── States ───────────────────────────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-states { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 8px 0 28px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-state { display: flex; flex-direction: column; gap: 14px; min-width: 0; padding: 18px; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--surface); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-state__t { display: flex; flex-direction: column; gap: 2px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-state__t b { color: var(--text-1); font-size: 0.98rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-state__t span { color: var(--text-3); font-size: 0.82rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-state .oce1-rep { max-width: none; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-state .oce1-c__v { font-size: 1.2rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-state__n { margin: 0; margin-top: auto; color: var(--text-3); font-size: 0.88rem; line-height: 1.5; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-state.is-warn { border-color: color-mix(in srgb, var(--oce1-warn) 50%, transparent); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-state.is-warn .oce1-state__n { color: var(--oce1-warn); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-state.is-rule { border-style: dashed; }

/* ── Reference ────────────────────────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-factgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 8px 0 32px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact { min-width: 0; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--surface); overflow: hidden; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; padding: 14px 18px; background: rgba(var(--shade-ch), calc(0.28 * var(--k-band))); text-align: left; border: 0; margin: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact__head b { color: var(--text-1); font-size: 1.05rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact__head span { color: var(--text-3); font-size: 0.82rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact__dl { margin: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact__dl > div { display: grid; grid-template-columns: 8.2rem minmax(0, 1fr); gap: 4px 14px; padding: 12px 18px; border-top: 1px solid var(--border-soft); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact__dl dt { padding-top: 3px; color: var(--text-3); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact__dl dd { margin: 0; color: var(--text-2); font-size: 0.92rem; line-height: 1.55; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-chips { display: block; margin-bottom: 4px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-ln { display: block; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-ln + .oce1-ln { margin-top: 4px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-chip { display: inline-block; margin: 0 6px 4px 0; padding: 1px 9px; border: 1px dashed var(--border-soft); border-radius: 999px; color: var(--text-3); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.04em; text-decoration: line-through; vertical-align: 1px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-chip--on { border-style: solid; border-color: color-mix(in srgb, var(--sahi-cyan) 40%, transparent); background: color-mix(in srgb, var(--sahi-cyan) 8%, transparent); color: var(--sahi-cyan); text-decoration: none; }

/* ── SVG figures ──────────────────────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-anatrow { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 12px 32px; align-items: center; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-anatrow__fig { min-width: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-svg { display: block; width: 100%; height: auto; overflow: visible; font-family: var(--font-sans); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-svg text { font-variant-numeric: tabular-nums; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-grid { stroke: var(--oce1-grid); stroke-width: 1; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-zero { stroke: var(--oce1-zero); stroke-width: 1.25; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-ax { fill: var(--text-3); font-size: 13.6px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-ax--k { fill: var(--sahi-cyan); font-weight: 700; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-lb { fill: var(--text-1); font-size: 13.6px; font-weight: 600; paint-order: stroke; stroke: var(--oce1-halo); stroke-width: 4px; stroke-linejoin: round; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-loss { fill: color-mix(in srgb, var(--sahi-negative) 20%, transparent); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-gain { fill: color-mix(in srgb, var(--sahi-positive) 34%, transparent); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-pay { stroke: var(--text-1); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-spot { stroke: var(--text-3); stroke-width: 1.5; stroke-dasharray: 4 4; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-drop { stroke: var(--sahi-cyan); stroke-width: 1.25; stroke-dasharray: 2 3; opacity: 0.85; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-arr-l { stroke: var(--sahi-cyan); stroke-width: 1.5; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-arr { fill: var(--sahi-cyan); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-pn circle { fill: var(--sahi-bg-1); stroke: var(--sahi-cyan); stroke-width: 1.5; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-pn text { fill: var(--sahi-cyan); font-size: 13.6px; font-weight: 700; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-svg--ruler .oce1-lb { font-size: 14.4px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-r-zero { stroke: var(--text-3); stroke-width: 1.5; stroke-dasharray: 4 4; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-r-len { fill: var(--oce1-len); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-r-dot { fill: var(--text-1); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-r-pill { fill: var(--oce1-pill); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-r-spot { fill: var(--oce1-pill-ink); font-size: 14.4px; font-weight: 700; }

/* ── Where to switch a column on ──────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-where { display: grid; grid-template-columns: minmax(0, 440px) minmax(0, 1fr); gap: 20px 32px; align-items: center; margin: 8px 0 32px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-where__fig .ocv-real { margin: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-where__fig .ocv-real__shot { padding: 14px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-mk { position: relative; width: var(--real-w); max-width: 100%; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-mk img { display: block; width: 100%; height: auto; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-mk__b { position: absolute; left: 3%; right: 3%; display: flex; align-items: center; justify-content: flex-end; padding-right: 10px; border: 2px solid var(--sahi-cyan); border-radius: 10px; background: color-mix(in srgb, var(--sahi-cyan) 7%, transparent); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-mk__b b { padding: 2px 9px; border-radius: 6px; background: var(--sahi-cyan); color: var(--oce1-on-i); font-size: 0.8125rem; font-weight: 700; line-height: 1.5; white-space: nowrap; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-map { display: grid; gap: 0; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--surface); overflow: hidden; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-map__h, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-map__r { display: grid; grid-template-columns: minmax(0, 1fr) 28px minmax(0, 0.6fr); align-items: center; padding: 12px 18px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-map__h { grid-template-columns: minmax(0, 1fr) minmax(0, 0.6fr); gap: 28px; background: rgba(var(--shade-ch), calc(0.28 * var(--k-band))); color: var(--text-3); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-map__r { border-top: 1px solid var(--border-soft); color: var(--text-2); font-size: 0.95rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-map__r i { color: var(--sahi-cyan); font-style: normal; text-align: center; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-map__r b { color: var(--text-1); font-weight: 700; font-variant-numeric: tabular-nums; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-where__n { margin: 16px 2px 0; color: var(--text-3); font-size: 0.92rem; line-height: 1.6; }

/* ── One row per strike ───────────────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-tbl { margin: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-tbl + .oce1-tbl { margin-top: 18px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table { width: 100%; min-width: 640px; table-layout: fixed; border-collapse: collapse; font-variant-numeric: tabular-nums; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table th:nth-child(1) { width: 19%; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table th:nth-child(2) { width: 11%; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table--ce caption { color: color-mix(in srgb, var(--sahi-negative) 82%, rgb(var(--ink-rgb))); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table--pe caption { color: color-mix(in srgb, var(--sahi-positive) 82%, rgb(var(--ink-rgb))); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table caption { padding: 0 0 8px; text-align: left; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table th, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table td { padding: 9px 12px; text-align: right; color: var(--text-2); font-size: 0.88rem; font-weight: 400; border-bottom: 1px solid var(--oce1-hair); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table thead th { color: var(--text-3); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table thead th.g { text-align: center; color: var(--text-2); border-bottom: 1px solid var(--border-soft); border-left: 1px solid var(--oce1-vline); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table thead tr:first-child th:first-child, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table thead tr:first-child th:nth-child(2) { vertical-align: bottom; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table tbody th { text-align: left; color: var(--text-1); font-weight: 700; font-size: 0.92rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table th:nth-child(1), :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table td:nth-child(1) { text-align: left; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table td:nth-child(3), :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table td:nth-child(5), :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table td:nth-child(7), :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table thead tr:last-child th:nth-child(1), :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table thead tr:last-child th:nth-child(3), :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table thead tr:last-child th:nth-child(5) { border-left: 1px solid var(--oce1-vline); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table tr.is-cap th, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table tr.is-cap td { background: color-mix(in srgb, var(--sahi-cyan) 9%, transparent); color: var(--text-1); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table tr.is-cap th::after { content: "captured above"; margin-left: 8px; padding: 1px 7px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--sahi-cyan) 40%, transparent); color: var(--sahi-cyan); font-size: 0.62rem; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 700; vertical-align: 1px; white-space: nowrap; }

/* ── The reading routine ──────────────────────────────────────────────── */
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-steps { list-style: none; margin: 28px 0 36px; padding: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step { position: relative; display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 0 20px; padding-bottom: 26px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step:last-child { padding-bottom: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step::before { content: ""; position: absolute; left: 22px; top: 48px; bottom: 2px; width: 2px; background: linear-gradient(var(--sahi-cyan), color-mix(in srgb, var(--sahi-cyan) 12%, transparent)); opacity: 0.5; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step:last-child::before { display: none; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__n { z-index: 1; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 2px solid var(--sahi-cyan); background: var(--sahi-bg-1); color: var(--sahi-cyan); font: 700 1.2rem/1 var(--font-display); font-variant-numeric: tabular-nums; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__body { min-width: 0; padding: 18px 22px 20px; border: 1px solid var(--border-soft); border-radius: 16px; background: var(--surface); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__top { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 14px; margin-bottom: 16px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__t { margin: 0; padding: 0; border: 0; color: var(--text-1); font-family: var(--font-sans); font-size: 1.25rem; font-weight: 700; letter-spacing: -0.005em; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__q { color: var(--text-3); font-size: 0.95rem; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-strips { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 4px 18px; margin: 0 0 14px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-strip { position: relative; flex: 0 1 max(var(--sw, 100%), 200px); min-width: 0; max-width: 100%; padding-top: 24px; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-strip__tag { position: absolute; top: 0; left: 0; color: var(--sahi-cyan); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-strip__row { display: flex; align-items: flex-start; width: min(100%, var(--sw, 100%)); border: 1px solid var(--border-soft); border-radius: 10px; overflow: hidden; background: var(--oce1-row); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-crop { position: relative; width: 100%; overflow: hidden; border: 1px solid var(--border-soft); border-radius: 10px; background: var(--oce1-row); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-crop img { position: absolute; top: 0; max-width: none; height: auto; border-radius: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__check { margin: 0 0 12px; color: var(--text-2); font-size: 1rem; line-height: 1.6; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__check strong { margin-right: 10px; color: var(--sahi-cyan); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__go { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__go > span { margin-right: 4px; color: var(--text-3); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) a.oce1-go { display: inline-flex; align-items: center; min-height: 32px; padding: 3px 13px; border: 1px solid color-mix(in srgb, var(--sahi-cyan) 35%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--sahi-cyan) 6%, transparent); color: var(--sahi-cyan); font-size: 0.86rem; font-weight: 600; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) a.oce1-go:hover { background: color-mix(in srgb, var(--sahi-cyan) 14%, transparent); border-color: var(--sahi-cyan); color: var(--sahi-cyan); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-caution { margin: 12px 0 32px; padding: 22px 26px; border: 1px solid color-mix(in srgb, var(--oce1-warn) 45%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--oce1-warn) 7%, transparent); }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-caution__k { display: block; margin-bottom: 8px; color: var(--oce1-warn); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
:is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-caution p { margin: 0; color: var(--text-2); font-size: 1.05rem; line-height: 1.6; }

/* ── Tablet and phone ─────────────────────────────────────────────────── */
@media (max-width: 860px) {
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-where { grid-template-columns: minmax(0, 1fr); }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-anatrow { grid-template-columns: minmax(0, 1fr); }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-anatrow__fig { width: 100%; max-width: 440px; margin: 0 auto; }
}
@media (max-width: 760px) {
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calcgrid, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-states, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-factgrid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-legend code, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc code, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact code { white-space: normal; overflow-wrap: anywhere; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-h { margin-top: 40px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-anat { padding: 18px 14px 20px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-eq { flex-direction: column; align-items: stretch; gap: 4px; margin: 20px 0 18px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-eq .oce1-c { display: flex; flex: none; align-items: stretch; border-radius: 10px; overflow: visible; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-eq .oce1-c__h { flex: 0 0 52%; justify-content: flex-start; padding: 0 12px; border-bottom: 0; border-radius: 10px 0 0 10px; font-size: 0.8125rem; letter-spacing: 0.06em; min-height: 54px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-eq .oce1-c__v { flex: 1; display: flex; align-items: center; justify-content: flex-end; padding: 0 16px; border-radius: 0 10px 10px 0; font-size: 1.25rem; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-eq .oce1-c > .oce1-pin { top: 50%; left: -11px; margin: -11px 0 0; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-eq .oce1-op { text-align: center; font-size: 1.15rem; line-height: 1.1; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-band__shot { width: calc(100% - 20px); }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb { grid-template-columns: 5.4rem minmax(0, 1fr); column-gap: 12px; row-gap: 3px; padding: 4px 6px 6px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb__n { grid-column: 2; grid-template-columns: 3.7rem 1rem 3.7rem 1rem 3.7rem; justify-self: end; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb--axis { padding-bottom: 0; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-sb--axis .oce1-sb__n { margin-bottom: 4px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc__r { grid-template-columns: minmax(0, 1fr) auto; padding: 12px 14px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc__w { grid-column: 1 / -1; grid-row: 2; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-calc__head { padding: 12px 14px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact__dl > div { grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 11px 14px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-fact__head { padding: 13px 14px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step { grid-template-columns: 34px minmax(0, 1fr); gap: 0 12px; padding-bottom: 20px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step::before { left: 16px; top: 38px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__n { width: 34px; height: 34px; font-size: 1rem; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__body { padding: 14px 14px 16px; border-radius: 14px; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-step__t { font-size: 1.15rem; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-caution { padding: 18px 18px; }
}
@media (max-width: 600px) {
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-strip__row { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-strip__row img { flex: none; width: calc(var(--iw) * 0.42px); max-width: none; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-strip--scroll { position: relative; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-strip--scroll::after { content: ""; position: absolute; right: 1px; bottom: 1px; width: 26px; height: calc(100% - 25px); border-radius: 0 10px 10px 0; background: linear-gradient(to left, var(--oce1-fade), transparent); pointer-events: none; }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-strip--scroll .oce1-strip__tag::after { content: "  \00B7  swipe"; color: var(--text-3); }
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-table tr.is-cap th::after { display: none; }
}
@media (max-width: 400px) {
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-ax, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-lb, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-pn text, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-svg--ruler .oce1-lb, :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) .oce1-r-spot { font-size: 14.8px; }
}
@media (prefers-reduced-motion: reduce) {
  :is(#oc-e-value, #oc-e-breakeven, #oc-e-distance, #oc-e-routine) a.oce1-go { transition: none; }
}


/* ── Skin polish (final pass): figure frame, label bar and captions; spacing only, no colour, font or wording ─────── */
section[id^="oc-"] .ocv-real { border-radius: 14px; }
section[id^="oc-"] .ocv-real__bar { align-items: baseline; padding: 11px 18px; }
section[id^="oc-"] .ocv-real__shot { padding: 20px 18px 16px; }
section[id^="oc-"] .ocv-real__cap { padding: 2px 18px 18px; text-wrap: pretty; }
section[id^="oc-"] .ocv-real__cap a:focus-visible { outline: 2px solid var(--sahi-cyan); outline-offset: 3px; border-radius: 4px; }
section[id^="oc-"] .ocv-real-row { gap: 18px; }
section[id^="oc-"] h2, section[id^="oc-"] h3 { text-wrap: balance; }
@media (max-width: 480px) {
  section[id^="oc-"] .ocv-real { border-radius: 12px; }
  section[id^="oc-"] .ocv-real__bar { padding: 10px 14px; }
  section[id^="oc-"] .ocv-real__shot { padding: 14px 12px 12px; }
  section[id^="oc-"] .ocv-real__cap { padding: 2px 14px 16px; }
}
