/* FrostCandy's Laboratory — Discrete Diagonal Propagation & Isotropy browser lab */
.isotropy-lab-stage {
    display: block;
    padding: 14px;
    text-align: left;
}
.isotropy-workbench {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(255px, .72fr);
    gap: 12px;
    align-items: start;
}
.isotropy-side-stack {
    min-width: 0;
    display: grid;
    gap: 10px;
}
.isotropy-visual-panel,
.isotropy-controls,
.isotropy-results,
.isotropy-sweep {
    border: 1px solid rgba(117,213,253,.17);
    border-radius: 12px;
    background: rgba(2,8,12,.56);
}
.isotropy-visual-panel {
    grid-column: 1;
    grid-row: 1;
    overflow: hidden;
}
.isotropy-side-stack {
    grid-column: 2;
    grid-row: 1 / span 2;
}
.isotropy-visual-head,
.isotropy-sweep-head {
    min-height: 34px;
    padding: 7px 11px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border-bottom: 1px solid rgba(117,213,253,.12);
    color: #8ecadd;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .07em;
}
#isoRunState,
#isoSweepVerdict {
    color: #75d5fd;
    white-space: nowrap;
}
.isotropy-vector-svg { display: block; width: 100%; height: auto; min-height: 245px; }
.iso-cube path {
    fill: none;
    stroke: rgba(117,213,253,.15);
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}
.iso-cube circle { fill: #07131b; stroke: rgba(117,213,253,.38); stroke-width: 2; }
.iso-hop-guide {
    stroke: rgba(117,213,253,.12);
    stroke-width: 1.6;
    stroke-dasharray: 3 6;
}
.iso-hop-line {
    stroke: rgba(255,255,255,.34);
    stroke-width: 2.2;
    stroke-linecap: round;
    filter: url(#isoGlow);
}
.iso-hop-node {
    fill: rgba(7,19,27,.82);
    stroke: rgba(117,213,253,.30);
    stroke-width: 2;
    transition: fill .16s ease, stroke .16s ease, opacity .16s ease, r .16s ease;
}
.iso-hop-node.is-active {
    fill: #f9fdff;
    stroke: #ffffff;
}
.iso-hop-node-label {
    fill: #81aab7;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .04em;
}
.iso-origin { fill: #f6fdff; stroke: #75d5fd; stroke-width: 3; filter: url(#isoGlow); }
.iso-fv-vector {
    stroke: #75d5fd;
    stroke-width: 7;
    stroke-linecap: round;
    opacity: 0;
    filter: url(#isoGlow);
    transition: opacity .25s ease;
}
.iso-sample-vector {
    stroke: #d7f4ff;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-dasharray: 6 7;
    opacity: 0;
}
.iso-ruler-vector {
    stroke: #f4fbff;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 3 8;
    opacity: 0;
}
.iso-sample-dot { fill: #07131b; stroke: #f4fbff; stroke-width: 3; opacity: 0; filter: url(#isoGlow); }
.iso-svg-label { fill: #82adbb; font-size: 12px; font-weight: 900; letter-spacing: .08em; }
.iso-svg-note { fill: #91b8c4; font-size: 11.5px; font-weight: 700; }
.isotropy-seal {
    padding: 7px 10px;
    border-top: 1px solid rgba(117,213,253,.12);
    color: #7899a4;
    font-size: .69rem;
    font-weight: 900;
    letter-spacing: .065em;
    text-align: center;
}
.isotropy-seal.is-sealed { color: #dfffc9; background: rgba(170,245,127,.04); }
.isotropy-controls {
    padding: 11px;
    display: grid;
    gap: 8px;
}
.isotropy-controls label {
    display: grid;
    gap: 4px;
    color: #9fc3ce;
    font-size: .7rem;
    font-weight: 800;
}
.isotropy-controls input,
.isotropy-controls select {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    border: 1px solid rgba(117,213,253,.27);
    border-radius: 7px;
    background: rgba(3,10,14,.92);
    color: #eefbff;
    padding: 6px 7px;
    font: inherit;
}
.isotropy-controls input[type="range"] { padding: 0; accent-color: #75d5fd; }
.iso-vector-inputs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.iso-range-value { color: #75d5fd; font-size: .69rem; }
.iso-control-actions { display: grid; gap: 6px; }
.iso-control-actions button {
    min-height: 32px;
    border-radius: 8px;
    font: inherit;
    font-size: .72rem;
    font-weight: 900;
    cursor: pointer;
}
.iso-run-button {
    border: 1px solid rgba(117,213,253,.8);
    background: rgba(117,213,253,.14);
    color: #f5fdff;
}
.iso-secondary-button {
    border: 1px solid rgba(117,213,253,.35);
    background: rgba(117,213,253,.06);
    color: #b7deea;
}
.iso-ruler-button {
    border: 1px solid rgba(244,251,255,.38);
    background: rgba(244,251,255,.045);
    color: #eaf9ff;
}
.iso-control-actions button:hover:not(:disabled),
.iso-control-actions button:focus-visible:not(:disabled) {
    border-color: #ffffff;
    color: #ffffff;
    outline: none;
}
.iso-control-actions button:disabled { opacity: .34; cursor: not-allowed; }
.isotropy-results {
    grid-column: 1;
    grid-row: 2;
    padding: 9px;
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 7px;
    align-self: stretch;
}
.iso-result-card {
    min-width: 0;
    padding: 9px;
    border: 1px solid rgba(117,213,253,.12);
    border-radius: 8px;
    background: rgba(4,12,17,.7);
}
.iso-result-card span { display: block; margin-bottom: 4px; color: #728f99; font-size: .62rem; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.iso-result-card strong { display: block; color: #dff7ff; font-size: .74rem; line-height: 1.35; overflow-wrap: anywhere; }
.iso-ruler-result.is-open { border-color: rgba(244,251,255,.24); background: rgba(244,251,255,.035); }
.iso-ruler-result.is-open strong { color: #ffffff; }
.isotropy-sweep { overflow: hidden; }
.isotropy-sweep-head strong { font-size: .64rem; }
#isoSweepSvg { display:block; width:100%; height:auto; min-height:72px; max-height:112px; }
.iso-sweep-axis { stroke: rgba(117,213,253,.25); stroke-width: 1.5; }
.iso-sweep-gate { stroke: rgba(255,214,102,.55); stroke-width: 1.5; stroke-dasharray: 6 5; }
.iso-sweep-gate-label { fill: #ead79f; font-size: 22px; font-weight: 900; paint-order: stroke fill; stroke: rgba(3,9,13,.88); stroke-width: 2px; stroke-linejoin: round; }
.iso-sweep-bar { fill: rgba(117,213,253,.68); }
.iso-sweep-bar.is-over { fill: rgba(255,150,194,.75); }
.iso-sweep-stats {
    display:grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap:5px;
    padding: 6px 9px 8px;
    border-top:1px solid rgba(117,213,253,.1);
    color:#9fc1cb;
    font-size:.61rem;
    font-weight:800;
}
@media (max-width: 860px) {
    .isotropy-workbench { grid-template-columns: 1fr; }
    .isotropy-visual-panel { grid-column: 1; grid-row: 1; }
    .isotropy-results { grid-column: 1; grid-row: 2; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .isotropy-side-stack { grid-column: 1; grid-row: 3; }
}
@media (max-width: 520px) {
    .isotropy-lab-stage { padding: 9px; }
    .isotropy-results { grid-template-columns: 1fr 1fr; }
    .iso-vector-inputs { grid-template-columns: 1fr 1fr 1fr; }
    .isotropy-vector-svg { min-height: 215px; }
    .iso-sweep-stats { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .iso-fv-vector { transition: none; }
}
