/* Data centre facilities page */

/* Hero */
.fxh-rack rect{fill:rgba(30,41,59,.92);stroke:rgba(255,255,255,.22);stroke-width:1.5}
.fxh-rack path{fill:none;stroke:rgba(255,255,255,.16);stroke-width:2;stroke-linecap:round}
.hero-art .ln.blue{stroke:var(--blue)}

/* Shared furniture */
.fx-gap{margin-top:28px}
.key-points.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.key-points .card-tag{margin-bottom:4px}

/* Plan view: aisles, racks, pods */
.hl-cold{fill:rgba(6,182,212,.10)}
.hl-hot{fill:rgba(249,115,22,.12)}
.fx-contain{stroke:#FDBA74;stroke-width:1.5}
.hl-rack{fill:#fff;stroke:#94A3B8;stroke-width:1}
.hl-rack.hda{fill:#CCFBF1;stroke:var(--teal);stroke-width:1.5}
.hl-rack.rd{stroke:var(--teal);stroke-width:1.5}
.hl-rack.ai{fill:#FFF7ED;stroke:var(--orange);stroke-width:1.5}
.hl-pod{fill:none;stroke-width:2.5}
.hl-pod.o{stroke:var(--orange)}
.hl-pod.p{stroke:var(--purple)}
.fx-fan{fill:#E2E8F0;stroke:#94A3B8;stroke-width:1}
.fx-vt{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;fill:var(--subtle);text-anchor:middle}
.fx-rd{fill:rgba(20,184,166,.10)}
.fx-hotl{fill:rgba(249,115,22,.08)}
.fx-cdu{fill:#CCFBF1;stroke:var(--teal);stroke-width:1.5}

/* Rack elevations */
.fx-frame{fill:#fff;stroke:#94A3B8;stroke-width:2}
.fx-sw{fill:#1E293B;stroke:#0F172A;stroke-width:1}
.fx-con{fill:#475569;stroke:#334155;stroke-width:1}
.fx-port{fill:#67E8F9}
.fx-panel{fill:#F1F5F9;stroke:#94A3B8;stroke-width:1}
.fx-mpo{fill:#14B8A6}
.fx-srv{fill:#fff;stroke:#94A3B8;stroke-width:1}
.fx-bezel{stroke:#CBD5E1;stroke-width:2;stroke-linecap:round}
.fx-led{fill:#22C55E}
.fx-gpu{fill:#EEF2FF;stroke:#818CF8;stroke-width:1}
.fx-dl{font-family:var(--font-mono);font-size:10px;font-weight:700;fill:#4338CA;text-anchor:middle}
.fx-blank{fill:#E2E8F0;stroke:#CBD5E1;stroke-width:1}
.fx-mgr{fill:#CBD5E1;stroke:#94A3B8;stroke-width:1}
.fx-comb{stroke:#94A3B8;stroke-width:1.5}
.fx-leader{fill:none;stroke:#CBD5E1;stroke-width:1}
.fx-hit{fill:transparent}
.fx-dev{cursor:pointer;outline:none}
.fx-dev:hover .fx-hit,.fx-dev:focus-visible .fx-hit,.fx-dev.is-on .fx-hit{fill:rgba(249,115,22,.14);stroke:var(--orange);stroke-width:2}
.fx-pdu.a{fill:#FFEDD5;stroke:var(--orange);stroke-width:1.5}
.fx-pdu.b{fill:#DBEAFE;stroke:var(--blue);stroke-width:1.5}
.fx-psu{fill:#94A3B8}
.fx-nic{fill:#99F6E4;stroke:var(--teal);stroke-width:.8}
.fx-bmc{fill:#F59E0B}
.fx-cord{fill:none;stroke-width:2;stroke-linecap:round}
.fx-cord.a{stroke:var(--orange)}
.fx-cord.b{stroke:var(--blue)}
.fx-patch{fill:none;stroke:var(--teal);stroke-width:1.5}
.fx-cu{fill:none;stroke:#F59E0B;stroke-width:1.5;stroke-dasharray:3 3}
.fx-man{fill:none;stroke-width:4;stroke-linecap:round}
.fx-man.s{stroke:var(--cyan)}
.fx-man.r{stroke:var(--orange)}
.fx-hose{fill:none;stroke-width:2}
.fx-hose.s{stroke:var(--cyan)}
.fx-hose.r{stroke:var(--orange)}
.fx-plate{fill:#CFFAFE;stroke:var(--cyan);stroke-width:1}
.fx-racks-fig .motion-svg{max-width:900px}
.fx-info{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);font-size:.9rem;line-height:1.55;color:var(--text);min-height:86px}
.fx-info b{color:var(--ink)}
.fx-info .pw{font-family:var(--font-mono);font-size:.8rem;color:var(--teal-strong)}

/* Cooling and BMS */
.fx-heat{fill:rgba(249,115,22,.25)}
.fx-alarm{fill:rgba(225,29,72,.25)}
.fx-air-fig .motion-svg{max-width:880px;margin:0 auto}
.air-cold{fill:rgba(6,182,212,.10)}
.air-hot{fill:rgba(249,115,22,.10)}

/* Capacity planner */
.fx-plan{display:grid;gap:18px}
.fx-plan-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr);gap:28px;align-items:start}
.fx-plan .sim-row{grid-template-columns:120px 1fr 70px}
.fx-red{display:flex;align-items:center;gap:12px;font-size:.88rem}
.fx-red > span{width:120px;font-weight:600;color:var(--ink)}
.fx-legend{margin:0 0 6px}
.fx-chart{position:relative;outline:none;border-radius:10px}
.fx-chart:focus-visible{box-shadow:0 0 0 3px var(--orange-border)}
.fx-chart svg{display:block;width:100%;height:auto}
.fx-chart .grid{stroke:#E2E8F0;stroke-width:1}
.fx-chart .axis{font-family:var(--font-body);font-size:11px;fill:var(--subtle);font-variant-numeric:tabular-nums}
.fx-chart .cap-ln{stroke:#94A3B8;stroke-width:1.5}
.fx-chart .cap-lbl{font-size:11px;font-weight:600;fill:var(--muted)}
.fx-chart .it-ln{fill:none;stroke:#EA580C;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.fx-chart .fac-ln{fill:none;stroke:#2563EB;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.fx-chart .over{fill:rgba(234,88,12,.07)}
.fx-chart .full-dot{fill:#EA580C;stroke:#fff;stroke-width:2}
.fx-chart .full-lbl{font-size:11px;font-weight:700;fill:var(--ink)}
.fx-chart .xh{stroke:var(--ink);stroke-width:1;opacity:.35}
.fx-chart .hd{stroke:#fff;stroke-width:2}
.fx-tip{position:absolute;top:8px;pointer-events:none;min-width:150px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow-md);font-size:.78rem;line-height:1.5;color:var(--text);opacity:0;transition:opacity .12s ease}
.fx-tip.on{opacity:1}
.fx-tip b{display:block;color:var(--ink);font-size:.8rem}
.fx-tip i{display:inline-block;width:12px;height:0;border-top:2px solid;margin-right:6px;vertical-align:middle}
.fx-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fx-stats div{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.fx-stats span{display:block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--subtle)}
.fx-stats b{display:block;font-family:var(--font-heading);font-size:1.05rem;color:var(--ink);margin-top:2px}
.fx-stats b.warn{color:#BE123C}
.fx-table summary{cursor:pointer;font-weight:600;font-size:.9rem;color:var(--orange-strong)}
.fx-table[open] summary{margin-bottom:8px}
.fx-table .sim-out td,.fx-table .sim-out th{font-variant-numeric:tabular-nums}
.fx-assume{margin:0}

@media (max-width:980px){
  .key-points.four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fx-plan-grid{grid-template-columns:1fr}
}
@media (max-width:700px){
  .key-points.four{grid-template-columns:1fr}
  .fx-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fx-stats div{padding:8px 10px}
  .fx-stats span{font-size:.64rem}
  .fx-stats b{font-size:.92rem}
  .fx-plan .sim-row{grid-template-columns:96px 1fr 60px}
  .fx-red > span{width:96px}
}
.fx-dead{opacity:.35}
.fx-vent{fill:none;stroke:#64748B;stroke-width:2;stroke-dasharray:2 3}
.fx-chart .cap-lbl{paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.fx-gap-sm{margin-top:16px}
.fx-note{margin-top:8px}
@media (max-width:700px){
  .fx-racks-fig .motion-svg{min-width:860px}
}

/* Phase 2: calculators, mixed pod, build */
.gap-note{margin-top:8px}
.fxp-big{font-family:var(--font-heading);font-size:34px;font-weight:700;fill:var(--ink);text-anchor:middle}
.dcc-track{fill:var(--surface-2);stroke:var(--line)}
.dcc-val{font-family:var(--font-mono);font-size:13px;font-weight:600;fill:var(--ink)}
.dcc-pick{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center;font-size:.88rem}
.dcc-pick > span{font-weight:600;color:var(--ink)}
.fx-pcalc-fig .sim-out th,.fx-optic-fig .sim-out th{font-weight:600;color:var(--muted);width:48%}
.fxo-bar{transition:width .3s ease}
.fxo-bar.ok{fill:var(--teal)}
.fxo-bar.tight{fill:#F59E0B}
.fxo-bar.bad{fill:#E11D48}
.fxo-mark{stroke:var(--ink);stroke-width:2;stroke-dasharray:3 3}
.fxo-verdict{font-size:14px;font-weight:700;fill:var(--ink)}
.fxo-con{fill:#fff;stroke:var(--orange);stroke-width:2.5}
.fxo-spl{stroke:var(--purple);stroke-width:2.5;stroke-linecap:round}
.ln.fxo-sm{stroke:#EAB308}
.fxo-field{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center;font-size:.88rem}
.fxo-field label{font-weight:600;color:var(--ink)}
.fxo-field select,.fxo-row input{font:inherit;font-size:.92rem;padding:7px 10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink)}
.fxo-decode{display:grid;gap:8px;padding-top:6px;border-top:1px solid var(--line)}
.fxo-decode label{font-weight:600;font-size:.88rem;color:var(--ink)}
.fxo-row{display:flex;gap:8px;flex-wrap:wrap}
.fxo-row input{flex:1 1 12rem;font-family:var(--font-mono)}
.fxm-rack{fill:var(--cyan-tint);stroke:var(--cyan)}
.fxm-ai{fill:#FFF7ED;stroke:var(--orange);stroke-width:2}
.fxm-hot{fill:rgba(249,115,22,.08);stroke:#FDBA74;stroke-dasharray:5 5}
.fxb-hall{fill:var(--surface-2);stroke:var(--line-strong)}
.fxb-rack{fill:var(--cyan-tint);stroke:var(--cyan)}
.fxb-plant{fill:#FFF7ED;stroke:#FDBA74}
@media (max-width:700px){.dcc-pick,.fxo-field{grid-template-columns:1fr;gap:6px}}
#m-fx-build .n .t{font-size:13.5px}
#m-fx-build .n .s{font-size:11px}
