:is(
    [data-unit-visual-extension="parallel_load_terminal_sag"],
    [data-unit-visual-extension="circuit_symbol_workbench"],
    [data-unit-visual-extension="emf_pd_energy_ledger"],
    [data-unit-visual-extension="terminal_pd_load_lab"],
    [data-unit-visual-extension="junction_charge_balance"],
    [data-unit-visual-extension="loop_energy_traverse"],
    [data-unit-visual-extension="two_loop_equation_solver"],
    [data-unit-visual-extension="resistance_network_derivation"],
    [data-unit-visual-extension="potential_divider_sensor_lab"],
    [data-unit-visual-extension="potentiometer_null_balance"]
) {
    --ch10-ink: #17384b;
    --ch10-muted: #647c8a;
    --ch10-line: #8ca1ad;
    --ch10-surface: #f2f8fa;
    --ch10-current: #087f9c;
    --ch10-energy: #d16b35;
    --ch10-voltage: #6356b0;
    --ch10-neutral: #587080;
    --ch10-warning: #ac4851;
    margin: clamp(1rem, 2.3vw, 1.65rem) 0;
    padding: clamp(0.9rem, 2.25vw, 1.35rem);
    border: 1px solid color-mix(in srgb, var(--ch10-current) 16%, transparent);
    border-radius: 1.25rem;
    background: linear-gradient(145deg, #fff 0%, var(--ch10-surface) 100%);
    color: var(--ch10-ink);
    box-shadow: 0 0.8rem 2rem rgb(23 56 75 / 0.065);
    overflow: clip;
}

.ch10-visual[data-unit-visual-extension] .ch10-visual-heading {
    display: grid;
    gap: 0.16rem;
    margin-bottom: 0.82rem;
}

.ch10-visual[data-unit-visual-extension] .ch10-visual-heading h3 {
    margin: 0;
    color: var(--ch10-ink);
    font-size: var(--unit-text-heading-medium, 17px);
    font-weight: 750;
    line-height: 1.22;
    letter-spacing: -0.015em;
}

.ch10-visual[data-unit-visual-extension] .ch10-visual-kicker {
    margin: 0;
    color: var(--ch10-current);
    font-size: var(--unit-text-micro, 11px);
    font-weight: 800;
    letter-spacing: 0.085em;
    text-transform: uppercase;
}

.ch10-visual[data-unit-visual-extension] .ch10-visual-controls.unit-dynamics-controls {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(auto-fit, minmax(min(6.3rem, 100%), 1fr));
    gap: 0.42rem;
    margin: 0 0 0.75rem;
}

.ch10-visual[data-unit-visual-extension] .unit-dynamics-control {
    min-width: 0;
    height: 40px;
    padding: 0.44rem 0.5rem;
    border: 1px solid color-mix(in srgb, var(--ch10-line) 62%, transparent);
    border-radius: 0.72rem;
    background: rgb(255 255 255 / 0.94);
    color: var(--ch10-ink);
    font: inherit;
    font-size: var(--unit-text-meta, 12px);
    font-weight: 740;
    line-height: 1;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    cursor: pointer;
}

.ch10-visual[data-unit-visual-extension] .unit-dynamics-control:hover {
    border-color: var(--ch10-current);
}

.ch10-visual[data-unit-visual-extension] .unit-dynamics-control[aria-pressed="true"] {
    border-color: var(--ch10-current);
    background: var(--ch10-current);
    color: #fff;
    box-shadow: 0 0.32rem 0.85rem rgb(8 127 156 / 0.2);
}

.ch10-visual[data-unit-visual-extension] .unit-dynamics-auto[hidden] {
    display: none !important;
}

.ch10-visual[data-unit-visual-extension] .ch10-timeline {
    display: grid;
    grid-template-columns: max-content minmax(6rem, 1fr) max-content;
    align-items: center;
    gap: 0.62rem;
    margin: -0.16rem 0 0.82rem;
    padding: 0.56rem 0.65rem;
    border-radius: 0.78rem;
    background: color-mix(in srgb, var(--ch10-voltage) 5%, #fff);
}

.ch10-visual[data-unit-visual-extension] .ch10-timeline-play {
    min-width: 4.5rem;
    min-height: 34px;
    padding: 0.32rem 0.66rem;
    border: 1px solid color-mix(in srgb, var(--ch10-voltage) 42%, transparent);
    border-radius: 0.6rem;
    background: #fff;
    color: var(--ch10-voltage);
    font: inherit;
    font-size: var(--unit-text-meta, 12px);
    font-weight: 760;
    white-space: nowrap;
    cursor: pointer;
}

.ch10-visual[data-unit-visual-extension] :is(.ch10-timeline-scrub, .ch10-live-range) {
    width: 100%;
    min-width: 0;
    accent-color: var(--ch10-voltage);
}

.ch10-visual[data-unit-visual-extension] .ch10-timeline-phase {
    color: var(--ch10-muted);
    font-size: var(--unit-text-meta, 12px);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ch10-visual[data-unit-visual-extension] .ch10-live-lab {
    display: grid;
    grid-template-columns: minmax(8.8rem, 1fr) minmax(5.5rem, 0.7fr) minmax(7.2rem, max-content);
    align-items: center;
    gap: 0.7rem;
    margin: -0.12rem 0 0.82rem;
    padding: 0.58rem 0.68rem;
    border-radius: 0.78rem;
    background: color-mix(in srgb, var(--ch10-current) 5%, #fff);
}

.ch10-visual[data-unit-visual-extension] .ch10-live-label {
    display: grid;
    gap: 0.3rem;
    color: var(--ch10-muted);
    font-size: var(--unit-text-meta, 12px);
    font-weight: 700;
}

.ch10-visual[data-unit-visual-extension] .ch10-live-meter {
    height: 10px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ch10-line) 24%, #fff);
    overflow: hidden;
}

.ch10-visual[data-unit-visual-extension] .ch10-live-meter-fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--ch10-current), var(--ch10-voltage));
    transition: width 120ms ease-out;
}

.ch10-visual[data-unit-visual-extension] .ch10-live-output {
    min-width: 7.2rem;
    color: var(--ch10-voltage);
    font-size: var(--unit-text-meta, 12px);
    font-weight: 760;
    text-align: right;
    white-space: nowrap;
}

.ch10-visual[data-unit-visual-extension] .ch10-visual-drawing {
    position: relative;
    width: 100%;
    aspect-ratio: var(--ch10-drawing-ratio, 720 / 390);
    border-radius: 0.95rem;
    background: rgb(255 255 255 / 0.78);
    container-type: inline-size;
    overflow: clip;
}

.ch10-visual[data-unit-visual-extension] .ch10-visual-drawing > svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-height: none;
    overflow: hidden;
}

.ch10-visual[data-unit-visual-extension] :is(.ch10-math-label, .ch10-text-label) {
    position: absolute;
    z-index: 4;
    max-width: 48%;
    transform: translate(-50%, -50%);
    color: var(--ch10-ink);
    font-size: clamp(0.63rem, 2.02cqi, 0.9rem);
    font-weight: 670;
    line-height: 1.05;
    white-space: nowrap;
    pointer-events: none;
}

.ch10-visual[data-unit-visual-extension] :is(.ch10-math-label, .ch10-text-label)[data-math-anchor="start"] {
    transform: translate(0, -50%);
}

.ch10-visual[data-unit-visual-extension] :is(.ch10-math-label, .ch10-text-label)[data-math-anchor="end"] {
    transform: translate(-100%, -50%);
}

.ch10-visual[data-unit-visual-extension] .is-current { color: var(--ch10-current); }
.ch10-visual[data-unit-visual-extension] .is-energy { color: var(--ch10-energy); }
.ch10-visual[data-unit-visual-extension] .is-voltage { color: var(--ch10-voltage); }
.ch10-visual[data-unit-visual-extension] .is-neutral { color: var(--ch10-neutral); }
.ch10-visual[data-unit-visual-extension] .is-warning { color: var(--ch10-warning); }

.ch10-visual[data-unit-visual-extension] .ch10-stage-surface {
    fill: rgb(255 255 255 / 0.58);
    stroke: rgb(8 127 156 / 0.12);
    stroke-width: 1;
}

.ch10-visual[data-unit-visual-extension] :is(
    .ch10-wire,
    .ch10-component-lead,
    .ch10-symbol-detail,
    .ch10-lamp-filament,
    .ch10-cell-long,
    .ch10-cell-short,
    .ch10-switch-blade,
    .ch10-pot-contact-wire
) {
    fill: none;
    stroke: var(--ch10-neutral);
    stroke-width: 1.55;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ch10-visual[data-unit-visual-extension] .ch10-cell-long { stroke-width: 2.2; }
.ch10-visual[data-unit-visual-extension] .ch10-cell-short { stroke-width: 1.7; }
.ch10-visual[data-unit-visual-extension] .ch10-node { fill: var(--ch10-neutral); stroke: #fff; stroke-width: 1; }
.ch10-visual[data-unit-visual-extension] :is(.ch10-switch-contact, .ch10-open-terminal) {
    fill: #fff;
    stroke: var(--ch10-neutral);
    stroke-width: 1.6;
}
.ch10-visual[data-unit-visual-extension] .ch10-switch-blade { stroke-width: 1.8; }

.ch10-visual[data-unit-visual-extension] :is(.ch10-resistor, .ch10-symbol-circle, .ch10-meter, .ch10-galvanometer) {
    fill: #f8fbfc;
    stroke: var(--ch10-neutral);
    stroke-width: 1.45;
}

.ch10-visual[data-unit-visual-extension] .ch10-resistor.is-internal {
    fill: #fff1e8;
    stroke: var(--ch10-energy);
}

.ch10-visual[data-unit-visual-extension] .ch10-resistor.is-load {
    fill: #efedfb;
    stroke: var(--ch10-voltage);
}

.ch10-visual[data-unit-visual-extension] .ch10-resistor.is-shared,
.ch10-visual[data-unit-visual-extension] .ch10-resistor.is-equivalent {
    fill: #e9f7f7;
    stroke: var(--ch10-current);
}

.ch10-visual[data-unit-visual-extension] .ch10-resistor.is-sensor {
    fill: #fff1e8;
    stroke: var(--ch10-energy);
    stroke-width: 1.8;
}

.ch10-visual[data-unit-visual-extension] .ch10-resistor.is-track {
    fill: #edf4f7;
    stroke: var(--ch10-neutral);
}

.ch10-visual[data-unit-visual-extension] .ch10-resistor.is-heater {
    fill: #fff1e8;
    stroke: var(--ch10-energy);
}

.ch10-visual[data-unit-visual-extension] .ch10-diode {
    fill: color-mix(in srgb, var(--ch10-voltage) 12%, #fff);
    stroke: var(--ch10-voltage);
    stroke-width: 1.4;
}

.ch10-visual[data-unit-visual-extension] .ch10-lamp {
    fill: #ffd45f;
    fill-opacity: var(--ch10-brightness, 0.8);
    stroke: var(--ch10-energy);
    stroke-width: 1.6;
    filter: drop-shadow(0 0 5px rgb(255 190 62 / 0.42));
}

.ch10-visual[data-unit-visual-extension] .ch10-vector {
    fill: none;
    stroke-width: 2.15;
    stroke-linecap: round;
}

.ch10-visual[data-unit-visual-extension] .ch10-arrowhead {
    fill: none;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ch10-visual[data-unit-visual-extension] :is(.ch10-vector.is-current, .ch10-arrowhead.is-current) { stroke: var(--ch10-current); }
.ch10-visual[data-unit-visual-extension] :is(.ch10-vector.is-energy, .ch10-arrowhead.is-energy) { stroke: var(--ch10-energy); }
.ch10-visual[data-unit-visual-extension] :is(.ch10-vector.is-voltage, .ch10-arrowhead.is-voltage) { stroke: var(--ch10-voltage); }
.ch10-visual[data-unit-visual-extension] :is(.ch10-vector.is-neutral, .ch10-arrowhead.is-neutral) { stroke: var(--ch10-neutral); }
.ch10-visual[data-unit-visual-extension] :is(.ch10-vector.is-warning, .ch10-arrowhead.is-warning) { stroke: var(--ch10-warning); }

.ch10-visual[data-unit-visual-extension] .ch10-vector.ch10-axis { stroke-width: 1.35; }
.ch10-visual[data-unit-visual-extension] .ch10-vector.is-assumed { stroke-dasharray: 5 4; }
.ch10-visual[data-unit-visual-extension] .ch10-vector.is-corrected { stroke-width: 2.4; }

.ch10-visual[data-unit-visual-extension] .ch10-route-highlight {
    fill: none;
    stroke: var(--ch10-energy);
    stroke-width: 2.6;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 10 7;
    animation: ch10-route-trace 900ms ease-out 1;
}

.ch10-visual[data-unit-visual-extension] .ch10-route-highlight.is-complete {
    stroke: var(--ch10-voltage);
}

.ch10-visual[data-unit-visual-extension] :is(.ch10-guide, .ch10-measure-line) {
    fill: none;
    stroke: var(--ch10-line);
    stroke-width: 1;
    stroke-dasharray: 5 5;
}

.ch10-visual[data-unit-visual-extension] :is(.ch10-measure-cap, .ch10-pot-tick, .ch10-zero-line) {
    stroke: var(--ch10-line);
    stroke-width: 1;
}

.ch10-visual[data-unit-visual-extension] :is(.ch10-voltage-bracket, .ch10-voltage-cap) {
    stroke: var(--ch10-voltage);
    stroke-width: 1.5;
    stroke-linecap: round;
}

.ch10-visual[data-unit-visual-extension] .ch10-pot-wire {
    stroke: var(--ch10-neutral);
    stroke-width: 2.4;
    stroke-linecap: round;
}

.ch10-visual[data-unit-visual-extension] .ch10-jockey {
    fill: none;
    stroke: var(--ch10-voltage);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ch10-visual[data-unit-visual-extension] .ch10-pot-contact[data-contact-state="lifted"] .ch10-jockey {
    stroke: var(--ch10-warning);
}

.ch10-visual[data-unit-visual-extension] .ch10-gauge-track {
    stroke: var(--ch10-line);
    stroke-width: 2;
    stroke-linecap: round;
}

.ch10-visual[data-unit-visual-extension] .ch10-needle {
    stroke: var(--ch10-warning);
    stroke-width: 2;
    stroke-linecap: round;
    transform-origin: center;
}

.ch10-visual[data-unit-visual-extension] .ch10-data-line {
    fill: none;
    stroke-width: 2.25;
    stroke-linecap: round;
}

.ch10-visual[data-unit-visual-extension] .ch10-data-line.is-voltage { stroke: var(--ch10-voltage); }
.ch10-visual[data-unit-visual-extension] .ch10-graph-point { fill: var(--ch10-energy); stroke: #fff; stroke-width: 1.6; }

.ch10-visual[data-unit-visual-extension] .ch10-packet {
    fill: var(--ch10-current);
    stroke: #fff;
    stroke-width: 1;
    transform-box: fill-box;
    transform-origin: center;
}

.ch10-visual[data-unit-visual-extension] .ch10-packet.is-energy-packet { fill: var(--ch10-energy); }

.ch10-visual[data-unit-visual-extension] :is(.ch10-energy-track, .ch10-heat-track, .ch10-accumulation-track, .ch10-ledger-track) {
    fill: #edf3f5;
    stroke: color-mix(in srgb, var(--ch10-line) 48%, transparent);
    stroke-width: 1;
}

.ch10-visual[data-unit-visual-extension] .ch10-energy-fill { fill: var(--ch10-energy); }
.ch10-visual[data-unit-visual-extension] .ch10-heat-fill { fill: color-mix(in srgb, var(--ch10-energy) 80%, #fff); }
.ch10-visual[data-unit-visual-extension] .ch10-accumulation-fill { fill: var(--ch10-current); }
.ch10-visual[data-unit-visual-extension] .ch10-accumulation-fill.is-warning { fill: var(--ch10-warning); }
.ch10-visual[data-unit-visual-extension] .ch10-ledger-fill { fill: var(--ch10-voltage); }

.ch10-visual[data-unit-visual-extension] .ch10-result-surface {
    fill: #fff8ef;
    stroke: color-mix(in srgb, var(--ch10-energy) 55%, transparent);
    stroke-width: 1;
}

.ch10-visual[data-unit-visual-extension] :is(.ch10-visual-state-title, .ch10-visual-caption) {
    margin-inline: 0.1rem;
}

.ch10-visual[data-unit-visual-extension] .ch10-visual-state-title {
    margin-top: 0.76rem;
    margin-bottom: 0.2rem;
    color: var(--ch10-ink);
    font-size: var(--unit-text-body, 15.5px);
    font-weight: 760;
    line-height: 1.26;
}

.ch10-visual[data-unit-visual-extension] .ch10-visual-caption {
    margin-top: 0;
    margin-bottom: 0;
    color: var(--ch10-muted);
    font-size: var(--unit-text-body, 15.5px);
    line-height: 1.52;
}

@keyframes ch10-flow-right {
    from { transform: translateX(-12px); opacity: 0.5; }
    to { transform: translateX(12px); opacity: 1; }
}

@keyframes ch10-flow-down {
    from { transform: translateY(-10px); opacity: 0.5; }
    to { transform: translateY(10px); opacity: 1; }
}

@keyframes ch10-flow-up {
    from { transform: translateY(10px); opacity: 0.5; }
    to { transform: translateY(-10px); opacity: 1; }
}

@keyframes ch10-state-pulse {
    0% { transform: scale(0.75); opacity: 0.55; }
    55% { transform: scale(1.28); opacity: 1; }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes ch10-route-trace {
    from { stroke-dashoffset: 150; }
    to { stroke-dashoffset: 0; }
}

@keyframes ch10-panel-enter {
    from { opacity: 0.72; transform: translateY(3px); }
    to { opacity: 1; transform: translateY(0); }
}

.ch10-visual[data-unit-visual-extension] .ch10-packet.is-flowing-right { animation: ch10-flow-right 1.4s ease-in-out var(--ch10-delay, 0s) infinite alternate; }
.ch10-visual[data-unit-visual-extension] .ch10-packet.is-flowing-down { animation: ch10-flow-down 1.4s ease-in-out var(--ch10-delay, 0s) infinite alternate; }
.ch10-visual[data-unit-visual-extension] .ch10-packet.is-flowing-up { animation: ch10-flow-up 1.4s ease-in-out var(--ch10-delay, 0s) infinite alternate; }
.ch10-visual[data-unit-visual-extension] .is-state-pulse { transform-box: fill-box; transform-origin: center; animation: ch10-state-pulse 700ms ease-out 1; }
.ch10-visual[data-unit-visual-extension] .ch10-visual-panel.is-state-entering { animation: ch10-panel-enter 260ms ease-out 1; }
.ch10-visual[data-unit-visual-extension].is-motion-paused * { animation-play-state: paused !important; }

@media (max-width: 620px) {
    :is(
        [data-unit-visual-extension="parallel_load_terminal_sag"],
        [data-unit-visual-extension="circuit_symbol_workbench"],
        [data-unit-visual-extension="emf_pd_energy_ledger"],
        [data-unit-visual-extension="terminal_pd_load_lab"],
        [data-unit-visual-extension="junction_charge_balance"],
        [data-unit-visual-extension="loop_energy_traverse"],
        [data-unit-visual-extension="two_loop_equation_solver"],
        [data-unit-visual-extension="resistance_network_derivation"],
        [data-unit-visual-extension="potential_divider_sensor_lab"],
        [data-unit-visual-extension="potentiometer_null_balance"]
    ) {
        padding: 0.82rem;
        border-radius: 1.05rem;
    }

    .ch10-visual[data-unit-visual-extension] .ch10-visual-controls.unit-dynamics-controls {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ch10-visual[data-unit-visual-extension] .unit-dynamics-control {
        height: 38px;
        padding-inline: 0.34rem;
        font-size: 11px;
    }

    .ch10-visual[data-unit-visual-extension] .ch10-timeline {
        grid-template-columns: max-content minmax(0, 1fr) max-content;
        gap: 0.42rem;
        padding-inline: 0.5rem;
    }

    .ch10-visual[data-unit-visual-extension] .ch10-live-lab {
        grid-template-columns: minmax(0, 1fr) minmax(6.5rem, max-content);
        gap: 0.42rem 0.6rem;
    }

    .ch10-visual[data-unit-visual-extension] .ch10-live-meter {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .ch10-visual[data-unit-visual-extension] .ch10-live-output {
        min-width: 0;
        font-size: 11px;
    }

    .ch10-visual[data-unit-visual-extension] :is(.ch10-math-label, .ch10-text-label) {
        font-size: clamp(0.52rem, 2.55cqi, 0.72rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ch10-visual[data-unit-visual-extension] * {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important;
    }
}
