/* COLDGATE component ports: lightboard, dithered hall bezel, route lamp field, incident terminal */
.lb{padding:14px var(--pad) 12px;background:#f3f0fd;border-bottom:1px solid var(--t-line);position:relative;min-height:84px}
.lb canvas{display:block;width:100%;height:70px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.hall-frame.has-dither{background:#f3f0fd}
.cg-dither{position:absolute;inset:0;z-index:0;pointer-events:none}
.cg-dither canvas{display:block;width:100%;height:100%}
.hall-frame>.cg-hero{position:relative;z-index:1}
.route-gutter{display:flex;flex-direction:column}
.route-field{position:relative;flex:1 1 auto;min-height:140px;margin:22px calc(var(--pad)*-1) -34px;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,transparent,#000 40%);mask-image:linear-gradient(180deg,transparent,#000 40%)}
.route-field canvas{position:absolute;inset:0}
.route-field canvas{display:block;width:100%;height:100%}
.cg-term{border:1px solid var(--t-line2);background:#f3f0fd;font-family:var(--mono)}
.cg-term-bar{display:flex;align-items:center;gap:14px;min-height:44px;padding:0 0 0 16px;border-bottom:1px solid var(--t-line);font-size:11px;letter-spacing:.06em;background:#f3f0fd}
.cg-term-path{color:#252668}
.cg-term-file{color:#252668;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cg-term-replay{align-self:stretch;font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#252668;background:transparent;border:0;border-left:1px solid var(--t-line);padding:0 16px;cursor:pointer;transition:background .2s}
.cg-term-replay:hover{background:#f3f0fd}
.cg-term-replay:focus-visible{outline:2px solid var(--ice);outline-offset:-2px}
.cg-term-body{padding:20px 20px 14px}
.cg-term .tl{font:13px/1.7 var(--mono);color:#252668;margin:0 0 8px;min-height:1.7em;max-width:none}
.cg-term .tl.cmd{color:#252668}
.cg-term .tl.dim{color:#252668}
.cg-term .tl.res{color:#252668}
.cg-term .tl-t{color:#252668;margin-right:16px;white-space:nowrap}
.cg-term .tl-k{display:inline-block;min-width:150px;margin-right:16px;color:#252668;letter-spacing:.06em}
.cg-term .tl-k.hot{color:#252668}
.cg-term.armed .tl[data-line=fade]{opacity:0;transform:translateY(-5px);transition:opacity .3s,transform .3s}
.cg-term.armed .tl.on{opacity:1;transform:none}
.cg-term .ghost{visibility:hidden}
.cg-term .caret-i{display:inline-block;width:7px;height:1.05em;margin:0 -7px -2px 0;vertical-align:-2px;background:var(--ice)}
.cg-term.done .tl.res:after{content:'';display:inline-block;width:7px;height:1.05em;margin-left:6px;vertical-align:-2px;background:var(--ice);animation:t-blink 1s steps(1) infinite}
@keyframes t-blink{50%{opacity:0}}
.cg-term .diagram-caption{margin:0;padding:12px 20px;border-top:1px solid var(--t-line)}
@media(max-width:960px){
 .route-field{min-height:90px;flex:none;height:90px;margin-bottom:-24px}
}
@media(max-width:560px){
 .lb{min-height:66px;padding-top:10px;padding-bottom:10px}
 .lb canvas{height:52px}
 .cg-term-file{display:none}
 .cg-term-body{padding:16px 14px 10px}
 .cg-term .tl{font-size:12px}
 .cg-term .tl-k{display:block;min-width:0}
 .cg-term .diagram-caption{padding:12px 14px}
}
@media(prefers-reduced-motion:reduce){.cg-term.done .tl.res:after{animation:none}}
