.page-error-correcting-code-observatory .lab-hero h1 { font-size:clamp(1.8rem,3.6vw,3rem); }
.ecc-app { max-width:1480px; margin:auto; padding:0 clamp(16px,3vw,44px) 48px; }
.ecc-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(310px,.85fr); gap:20px; align-items:start; }
.ecc-panel { min-width:0; padding:clamp(18px,2.5vw,30px); }
.ecc-panel h2 { font-size:clamp(1.3rem,2.3vw,2rem); line-height:1.3; margin:8px 0 16px; }
.ecc-panel p,.ecc-panel li { color:#a5b5d4; line-height:1.7; }
.ecc-chip { color:#72e3e9!important; font:700 .72rem/1.5 ui-monospace,monospace; letter-spacing:.08em; }
.ecc-state { display:inline-block; padding:8px 12px; color:#77e1ac; border:1px solid #77e1ac66; font:700 .75rem/1.5 monospace; }
.ecc-frame { margin-top:18px; border:1px solid #a4c0ff38; background:#07131f; }
#eccCanvas { display:block; width:100%; height:auto; aspect-ratio:900/430; outline-offset:-4px; }
.ecc-group { border-top:1px solid #a4c0ff38; padding-top:16px; margin-top:18px; }
.ecc-group h3 { font-size:.9rem; margin:0 0 12px; }
.ecc-buttons { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.ecc-bits { display:grid; grid-template-columns:repeat(4,minmax(44px,1fr)); gap:8px; }
.ecc-app button,.ecc-app summary,.ecc-app a[download] { min-height:44px; }
.ecc-app button { min-width:44px; padding:10px 8px; border:1px solid #a4c0ff66; color:#e8efff; background:#10243a; cursor:pointer; font:700 .8rem/1.4 ui-monospace,monospace; overflow-wrap:anywhere; }
.ecc-app button:hover,.ecc-app button[aria-pressed="true"] { background:#20415a; border-color:#72e3e9; }
.ecc-app button[aria-pressed="true"] { box-shadow:inset 0 -3px #72e3e9; }
.ecc-app button:disabled { opacity:.45; cursor:default; }
.ecc-app :focus-visible { outline:3px solid #fff; outline-offset:3px; }
.ecc-app .ecc-help { font-size:.82rem; }
.ecc-results { display:grid; gap:20px; margin-top:20px; }
.ecc-table-wrap { overflow-x:auto; max-width:100%; }
.ecc-app table { width:100%; border-collapse:collapse; font-size:.83rem; line-height:1.6; }
.ecc-app th,.ecc-app td { padding:10px; border-bottom:1px solid #a4c0ff38; text-align:left; }
.ecc-app th { color:#a5b5d4; }
.ecc-ledger td { color:#e8efff; overflow-wrap:anywhere; }
.ecc-matrix th,.ecc-matrix td { white-space:nowrap; text-align:center; }
.ecc-output { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }.ecc-output button { flex:1; }
.ecc-app details>summary { cursor:pointer; padding:12px 0; }
.ecc-app pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:.82rem; line-height:1.6; max-height:32rem; overflow-y:auto; }
.ecc-app [hidden] { display:none!important; }
.ecc-notes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:20px; }
.ecc-notes code { overflow-wrap:anywhere; white-space:normal; }
.ecc-lower-grid { max-width:1480px; margin:auto; padding:0 clamp(16px,3vw,44px) 40px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }.ecc-lower-grid>.related-labs { grid-column:1/-1; }
@media(max-width:960px) { .ecc-layout { grid-template-columns:minmax(0,1fr); } }
@media(max-width:560px) { .ecc-app { padding:0 14px 30px; }.ecc-panel { padding:16px; }.ecc-panel h2 { font-size:1.5rem; }.ecc-notes,.ecc-lower-grid { grid-template-columns:minmax(0,1fr); }.ecc-lower-grid { padding:0 14px 30px; }.ecc-bits button { font-size:.73rem; padding:8px 4px; }.ecc-ledger th,.ecc-ledger td { padding:8px 5px; }.ecc-ledger th { width:52%; } }
