.console.tactical{grid-template-rows:auto minmax(0,1fr) auto}.tac-body{--side:max(17rem, 26 * var(--min-label));grid-template-columns:minmax(var(--side), 1fr) minmax(0, 2.1fr) minmax(var(--side), 1fr);grid-template-areas:"left plot right";gap:.75rem;min-height:0;display:grid}.col{flex-direction:column;gap:.6rem;min-width:0;min-height:0;display:flex}.col-left{grid-area:left}.col-right{grid-area:right}.tactical .unit{contain:layout paint style;align-content:start;gap:.55rem}.shields-unit,.torps-unit,.target-unit,.tractor-unit,.beams-unit{will-change:transform}.torps-unit,.beams-unit{margin-top:auto}.tubes,.beam-bay{margin-top:.3rem}.cam-unit{flex-direction:column;flex:1 1 0;gap:.4rem;min-height:0;display:flex}.cam-unit.cramped{display:none}.bay-unit canvas{cursor:pointer}.cam-frame{border:1px solid var(--rule);background:#000;flex:1 1 0;min-height:0;position:relative}.cam-frame canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.plot-wrap{contain:strict;will-change:transform;grid-area:plot;min-width:0;min-height:0;display:flex;position:relative}#plot{touch-action:none;cursor:crosshair;width:100%;height:100%}.plot-wrap>.plot-live,.plot-wrap>.plot-rose,.plot-wrap>.plot-top{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.plot-wrap>.plot-rose{will-change:transform}.plot-rose>svg{width:100%;height:100%;display:block;overflow:visible}.inbound{font:700 max(1rem, var(--min-text)) var(--mono);letter-spacing:.08em;color:#fff;background:var(--red);white-space:nowrap;padding:.3rem .7rem;position:absolute;top:0;left:0}.inbound[hidden]{display:none}.plot-range{align-items:baseline;gap:.5rem;display:flex;position:absolute;bottom:0;left:0}.plot-range b{font-size:max(1.1rem, var(--min-data))}.seg{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;display:grid}.seg-key{min-height:3.2rem;padding-top:.15rem}.seg-key:before{content:"";background:#15181b;border-radius:2px;height:.25rem;margin:0 .5rem .3rem;display:block;box-shadow:inset 0 1px 1px #000c}.seg-key[aria-pressed=true]{transform:translateY(2px);box-shadow:0 1px #090b0c,inset 0 2px 5px #000000b3}.seg-key[data-v=Normal][aria-pressed=true]{color:var(--data);border-color:#8d97a2}.seg-key[data-v=Normal][aria-pressed=true]:before{background:var(--data);box-shadow:0 0 .45rem #ffffff80}.seg-key[data-v=Yellow][aria-pressed=true]{color:var(--yellow);border-color:#ffd60a99}.seg-key[data-v=Yellow][aria-pressed=true]:before{background:var(--yellow);box-shadow:0 0 .45rem #ffd60ab3}.seg-key[data-v=Red][aria-pressed=true]{color:var(--red);border-color:#ff2626b3}.seg-key[data-v=Red][aria-pressed=true]:before{background:var(--red);box-shadow:0 0 .45rem #ff2626cc}.gauges,.intel{--gauge-label:3.4rem;--gauge-value:3.4rem;grid-template-columns:minmax(var(--gauge-label), max-content) minmax(0, 1fr) minmax(var(--gauge-value), max-content);column-gap:.5rem}.gauges>*,.intel>*{grid-column:1/-1}.gauge{grid-template-columns:subgrid;align-items:center;display:grid}@supports not (grid-template-columns:subgrid){.gauge{grid-template-columns:minmax(var(--gauge-label), max-content) minmax(0, 1fr) minmax(var(--gauge-value), max-content);column-gap:inherit}}.gauge b{font-size:max(1.05rem, var(--min-data));text-align:right;white-space:nowrap}.bar{border:1px solid var(--rule);background:#040506;min-width:0;height:.8rem;position:relative}.bar-fill{background:var(--data);position:absolute;inset:1px auto 1px 1px}.bar-fill.yellow{background:var(--yellow)}.bar-fill.red{background:var(--red)}.bar-fill.off{background:#3a4148}.bar-cap{background:var(--data);width:2px;margin-left:-1px;position:absolute;top:-.25rem;bottom:-.25rem}.bar-cap[hidden]{display:none}.tactical{--key-w:max(5.6rem, 6.8 * var(--min-label))}.shields-row{grid-template-columns:var(--key-w) minmax(0, 1fr);align-items:center;gap:.7rem;display:grid}.shields-row .toggle{min-height:3.3rem}.gauges{row-gap:.15rem;display:grid}.gauge.hull{border-top:1px solid #1b2025;padding-top:.2rem}.tractor-row{grid-template-columns:var(--key-w) minmax(0, 1fr);align-items:center;gap:.7rem;display:grid}.tractor-row .toggle{min-height:3.3rem}.tractor-unit[hidden]{display:none}.tractor-unit .unit-title .state{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tractor-unit .unit-title .state.green{color:var(--green)}.tractor-unit .unit-title .state.yellow{color:var(--yellow)}.hold-line{border-top:1px solid #1b2025;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;gap:.4rem;padding-top:.2rem;display:grid}.hold-line b{font-size:max(1.05rem, var(--min-data));white-space:nowrap}.load-keys{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;display:grid}.load-key{place-items:center;gap:0;min-height:3rem;padding:.2rem .1rem;display:grid}.load-key span{font-size:max(.72rem, var(--min-tick));letter-spacing:.08em}.load-key b{font-size:max(1.2rem, var(--min-data));font-weight:700;line-height:1.15}.tubes{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.store{height:max(2rem, 1.5 * var(--min-data));border:1px solid var(--rule);font:700 max(1.05rem, var(--min-data)) var(--mono);letter-spacing:.08em;white-space:nowrap;background:#040506;border-radius:.25rem;place-items:center;display:grid;overflow:hidden;box-shadow:inset 0 .15rem .35rem #000000e6}.store.loaded{color:var(--data)}.store.moving{color:var(--label)}.store.empty{color:var(--label);opacity:.45;font-size:max(.8rem, var(--min-label))}.bay{border:1px solid #22282e;border-radius:.5rem;grid-template-columns:minmax(0,1fr);gap:.4rem;min-width:0;padding:0 .4rem .45rem;display:grid}.bay-head{justify-content:space-between;align-items:center;gap:.5rem;min-width:0;height:2.2rem;display:flex}.tube .bay-head{justify-content:space-between}.bay.tube{cursor:pointer}.tube-name{font:700 max(1rem, var(--min-text)) var(--mono);letter-spacing:.1em;color:var(--label);white-space:nowrap;align-items:center;gap:.4rem;display:flex}.tube-name:before{content:"";border:1px solid var(--label);border-radius:50%;width:.55rem;height:.55rem}.bay.tube.selected{border-color:var(--cyan);box-shadow:inset 0 0 0 1px #19e6ff59}.bay.tube.selected .tube-name{color:var(--cyan)}.bay.tube.selected .tube-name:before{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 .35rem #19e6ff99}.btn.mini{min-height:2.1rem;font-size:max(.7rem, var(--min-label));flex:none;padding:.15rem .55rem}.btn.mini:disabled{visibility:hidden}.tg-head{flex-wrap:wrap;align-items:center;gap:.1rem .6rem;min-width:0;min-height:1.9rem;display:flex}.tg-head .sym-slot .sym{width:1.7rem;height:1.7rem;display:block}#tg-track{font-size:max(1.35rem, var(--min-big));color:var(--cyan);white-space:nowrap;flex:none}#tg-name{font-weight:700;font-size:max(1.1rem, var(--min-data));letter-spacing:.06em;overflow-wrap:break-word;min-width:0;line-height:1.15}.tg-sub{color:var(--label);font-size:max(.78rem, var(--min-label));letter-spacing:.08em}.tg-nav{border-top:1px solid #1b2025;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding-top:.4rem;display:grid}.tg-nav div{flex-direction:column;min-width:0;display:flex}.tg-nav b{font-size:max(1.55rem, var(--min-big));white-space:nowrap;line-height:1.15}.tg-intel{height:max(3.6rem, 2.4 * var(--min-data) + .4rem);display:grid}.tg-intel>*{grid-area:1/1}.intel{--gauge-label:4.3rem;align-content:center;row-gap:.35rem;display:grid}.intel[hidden],.locked[hidden]{display:none}.locked{text-align:center;border:1px dashed var(--rule);color:var(--label);font-size:max(.75rem, var(--min-label));letter-spacing:.1em;place-items:center;line-height:1.35;display:grid}.target-unit.empty #tg-name{color:var(--label)}.target-unit.empty .tg-nav{opacity:.35}.freq-line{justify-content:space-between;align-items:baseline;gap:.5rem;min-width:0;display:flex}.match{font:max(.78rem, var(--min-label)) var(--mono);letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.match.green{color:var(--green)}.match.yellow{color:var(--yellow)}.freq-keys{grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem;display:grid}.freq-key{min-height:3.3rem;font:700 max(1.35rem, var(--min-big)) var(--mono);letter-spacing:0;place-items:center;padding:.2rem;display:grid;position:relative}.freq-key small{visibility:hidden;background:var(--yellow);border-radius:1px;width:1.4rem;height:.22rem;margin-left:-.7rem;font-size:0;position:absolute;bottom:.3rem;left:50%}.freq-key[aria-pressed=true]{color:var(--cyan);border-color:#19e6ff8c;transform:translateY(2px);box-shadow:0 1px #090b0c,inset 0 2px 5px #000000b3}.freq-key.tgt small{visibility:visible}.freq-key.tgt[aria-pressed=true] small{background:var(--green)}.btn.toggle.compact{align-items:center;gap:.5rem;min-height:2.1rem;padding:.2rem .75rem;display:flex}.btn.toggle.compact .lamp{width:1.1rem;margin:0}.hint{color:var(--label);font-size:max(.7rem, var(--min-label));letter-spacing:.08em;text-align:right}.fire-guard{background:repeating-linear-gradient(135deg,#ffd60a33 0 .5rem,#0a0b0c .5rem 1rem);border-radius:.6rem;min-width:0;padding:.4rem;box-shadow:inset 0 0 0 1px #ffd60a2e,inset 0 .2rem .5rem #000000e6}.fire-guard.hot{background:repeating-linear-gradient(135deg,#ffd60ad9 0 .5rem,#0a0b0c .5rem 1rem);box-shadow:inset 0 0 0 1px #ffd60a99,inset 0 .2rem .5rem #000000e6}.fire-key{width:100%;min-width:0;height:6.2rem;font:700 max(1.6rem, var(--min-big))/1 var(--font);letter-spacing:.18em;color:#7a2a2f;cursor:pointer;touch-action:manipulation;background:linear-gradient(#3b1316 0%,#210709 100%);border:1px solid #5c1c21;border-radius:.45rem;grid-template-rows:minmax(0,1fr) auto minmax(0,1fr);justify-items:center;padding:.4rem .3rem;display:grid;overflow:hidden;box-shadow:0 4px #080202,0 5px 10px #000000b3,inset 0 1px #ffffff14}.fire-key .legend{white-space:nowrap;grid-row:2;padding-left:.18em}.fire-key small{font:400 max(.7rem, var(--min-label))/1.2 var(--font);letter-spacing:.08em;color:var(--label);text-align:center;grid-row:3;align-self:start;padding-top:.2rem}:root[data-zoomed] .fire-key small{font-size:max(.7rem, var(--min-tick));line-height:1}.fire-key:disabled{cursor:default}.fire-key:not(:disabled){color:#d23a41;border-color:#8d2a30}.fire-key.hot{color:#fff;text-shadow:0 0 .7rem #ffffff8c;background:radial-gradient(85% 75% at 50% 35%,#ff5252 0%,#d3141d 55%,#8e0910 100%);border-color:#ff7b7b;box-shadow:0 4px #3c0307,0 0 1.5rem #ff262680,inset 0 1px #fff6}.fire-key.hot small{color:#ffe3e3;text-shadow:none}.fire-key:not(:disabled):active{transform:translateY(3px);box-shadow:0 1px #3c0307,0 0 1rem #ff262666,inset 0 2px 6px #00000073}.fire-key.flash{animation:.4s ease-out fire-flash}@keyframes fire-flash{0%{color:var(--red);background:#fff}}.meter{border:1px solid var(--rule);background:#040506;height:.4rem;position:relative}.meter-fill{background:#c8cdd2;position:absolute;inset:0 auto 0 0}.meter-fill.ready{background:var(--green)}@media (orientation:landscape) and (max-aspect-ratio:16/9.5){html{font-size:min(16px, 1.25vw / var(--fit,1))}.tac-body{grid-template-columns:minmax(15rem,1fr) minmax(0,4fr) minmax(15rem,1fr);gap:.5rem}}@media (orientation:landscape) and (max-aspect-ratio:16/9.5),(orientation:portrait) and (min-aspect-ratio:3/5){.seg-key{font-size:max(.8rem, var(--min-label));letter-spacing:.03em;padding-left:.2rem;padding-right:.2rem}.gauges,.intel{--gauge-label:2.7rem;--gauge-value:3rem;column-gap:.35rem}.bay{padding:0 .3rem .35rem}.bay-head,.tube-name{gap:.25rem}.btn.mini{font-size:max(.62rem, var(--min-tick));letter-spacing:.04em;padding:.15rem .3rem}.fire-key small{font-size:max(.62rem, var(--min-tick))}.cond-unit .state,.hint{display:none}.shields-row,.tractor-row{grid-template-columns:minmax(0,1fr);gap:.4rem}.shields-row .toggle,.tractor-row .toggle{justify-content:center;align-items:center;gap:.6rem;min-height:2.6rem;display:flex}.shields-row .toggle .lamp,.tractor-row .toggle .lamp{margin:0}.load-keys{grid-template-columns:repeat(2,minmax(0,1fr))}.load-key{justify-content:space-between;align-items:center;min-height:2.6rem;padding:.2rem .55rem;display:flex}}@media (orientation:portrait) and (max-aspect-ratio:3/5){:root[data-zoomed] :is(.cond-unit,.torps-unit,.beams-unit)>.unit-title,:root[data-zoomed] .freq-line,:root[data-zoomed] .hint{display:none}:root[data-zoomed] .load-key span{letter-spacing:.02em}:root[data-zoomed] .hold-line{grid-template-columns:auto minmax(0,1fr);row-gap:.15rem}}@media (orientation:landscape) and (max-height:820px){.col{gap:.45rem}.tactical .unit{gap:.4rem;padding:.4rem .6rem .5rem}.tactical .unit-title{font-size:max(1rem, var(--min-text));padding-bottom:.2rem}.seg-key,.freq-key{min-height:2.8rem}.load-key{min-height:2.9rem}.shields-row .toggle,.tractor-row .toggle{min-height:3rem}.gauges{row-gap:.15rem}.gauge.hull{padding-top:.15rem}.tg-nav{padding-top:.25rem}.tg-nav b{font-size:max(1.35rem, var(--min-big))}.bay-head{height:2.1rem}.btn.mini,.btn.toggle.compact{min-height:1.9rem}.fire-key{height:4.8rem}.store{height:max(1.8rem, 1.5 * var(--min-data))}:root[data-zoomed] .target-unit{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:.8rem}:root[data-zoomed] .target-unit>:not(.tg-nav,.tg-intel){grid-column:1/-1}:root[data-zoomed] .tg-nav{grid-template-columns:minmax(0,4fr) minmax(0,3fr)}:root[data-zoomed] .freq-line{display:none}}@media (orientation:landscape) and (max-height:700px){.console.tactical{gap:.35rem;padding-top:.45rem}.fire-key small{padding-top:0}}@media (orientation:portrait){.tac-body{grid-template-rows:minmax(16rem,1fr) auto minmax(min-content,0) max-content max-content;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"plot plot""cond target""bay target""shields tractor""torps beams";gap:.5rem .75rem;overflow-y:auto}.col{display:contents}.tgcam-unit{display:none}.tactical .bay-unit{grid-area:bay;display:flex}.cond-unit{grid-area:cond}.shields-unit{grid-area:shields}.torps-unit{grid-area:torps;margin:0}.target-unit{grid-area:target}.tractor-unit{grid-area:tractor}.beams-unit{grid-area:beams;margin:0}.torps-unit,.beams-unit{flex-direction:column;display:flex}.torps-unit>.tubes,.beams-unit>.beam-bay{margin-top:auto}.fire-key{height:max(5rem, 3.4rem + 2 * (var(--min-tick) + .2rem))}.softkeys .btn{min-width:0;min-height:3rem;font-size:max(.8rem, var(--min-label));letter-spacing:.04em;padding:.3rem}}@media (orientation:portrait) and (min-aspect-ratio:3/5){.tac-body{grid-template-rows:max-content max-content max-content minmax(0,1fr) min-content max-content;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"plot plot cond""plot plot shields""plot plot tractor""plot plot bay""target torps bay""target torps beams";gap:.5rem}.torps-unit,.beams-unit{align-self:end}.fire-key{height:5.2rem}}body[data-mission=Standby] .console.tactical>main{visibility:hidden}
