/* Tactile hardware study. Homepage-only component, promoted from the approved hardware study. */
.hardware-enabled{--hw-css:ready}
.hw-preview-banner{display:flex;justify-content:space-between;gap:16px;padding:10px max(20px,calc((100vw - 1280px)/2));background:#1c2a1b;color:#d4e4c8;font:10px/1.5 var(--mono);border-bottom:1px solid #4b6341}
.hw-preview-banner a{text-decoration:none;white-space:nowrap}
.hardware-enabled #equipo{scroll-margin-top:110px;background:#161e17;border-color:#697e5c;border-radius:8px;box-shadow:0 30px 70px #0009,0 2px 0 #b8c3aa33 inset,0 0 0 5px #26312355}
.hardware-enabled #equipo::before{display:none}
.hardware-enabled .ops-head{background:linear-gradient(95deg,#aac59b,#91ad83);color:#152410;box-shadow:inset 0 1px #e4efdc66;border-bottom:1px solid #020602;padding:16px 22px}
.hardware-enabled .ops-head b{color:#23371d}
.hardware-enabled .appliance-face{position:relative;padding:22px 18px 12px;background:linear-gradient(180deg,#30392d 0,#20291f 7%,#1c241b 82%,#111a11 100%);box-shadow:0 1px 0 #74826833 inset,0 -2px 3px #03070388 inset;border-bottom:1px solid #46513e}
.hardware-enabled .appliance-face::before,.hardware-enabled .appliance-face::after{content:'';position:absolute;width:8px;height:8px;border:1px solid #637059;border-radius:50%;top:9px;background:linear-gradient(135deg,transparent 43%,#7d8b6d 44% 52%,transparent 53%),#1b2319;box-shadow:0 1px 2px #000}
.hardware-enabled .appliance-face::before{left:8px}.hardware-enabled .appliance-face::after{right:8px}
.hardware-enabled .appliance-label{gap:11px;padding:0 3px;font-size:14px;color:#edf1e7}
.hardware-enabled .hardware-mark{border:1px solid #515d47;background:linear-gradient(145deg,#303b2b,#1d281c);box-shadow:inset 0 1px #a8b49922,0 2px 3px #0005;font-size:10px;padding:10px 8px}
.hardware-enabled .appliance-label small{font-size:8px;letter-spacing:.065em;color:#9cae90}
.hw-power{margin-left:auto;font:20px var(--mono);color:#a6bc95;filter:drop-shadow(0 0 4px #adc98b22)}
.hardware-enabled .port-bank{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:18px;max-width:340px;margin-inline:auto}
.hw-port{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;min-height:84px;padding:7px 3px 9px;color:#9aa88d;background:linear-gradient(180deg,#16201444,#0b110b66);border:1px solid #3c4935;border-bottom-color:#090f08;border-radius:3px;box-shadow:0 1px #6d7c5a22 inset,0 2px 2px #060b0688;transition:border-color .2s,background .2s,box-shadow .2s}
.hw-port:hover{border-color:#788e62;background:#273421}
.hw-port:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.hw-port[aria-pressed="true"]{border-color:#98af7d;background:linear-gradient(180deg,#36462a66,#192615);box-shadow:0 0 0 1px #a2c07e22,inset 0 2px 5px #030803aa}
.hw-port-meta{display:flex;justify-content:space-between;align-items:center;width:100%;padding:0 3px;font:8px var(--mono);color:#91a27f}
.hw-led{width:6px;height:3px;background:#45543b;box-shadow:0 0 0 1px #080d07}
.hw-port[aria-pressed="true"] .hw-led{background:#c4e49b;box-shadow:0 0 5px #b7e37a77}
.hw-socket{display:block;width:100%;max-width:46px;height:auto;overflow:visible;filter:drop-shadow(0 2px 1px #0009)}
.hw-plug{opacity:0;transition:opacity .2s}
.hw-port[aria-pressed="true"] .hw-plug{opacity:1}
.hw-port-label{font:9px var(--mono);letter-spacing:.09em;color:#aabb99}
.hw-port[aria-pressed="true"] .hw-port-label{color:#d3eab8}
.hw-face-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:14px;font:7px/1.5 var(--mono);letter-spacing:.07em;color:#899c7c}
.hw-face-footer>span:last-child{white-space:nowrap}.hw-face-footer i{display:inline-block;width:4px;height:4px;margin-right:4px;background:#a1b98a}
.hardware-enabled .console-window{border:1px solid #3f4e36;box-shadow:0 2px 5px #0004,inset 0 1px #000;margin:18px 17px 0;background:#071009}
.hardware-enabled .console-bar{background:#1d291c;padding:9px 12px;border-bottom:1px solid #33432b;font-size:8px}
.hardware-enabled .console-body{padding:13px 12px 12px}
.hw-command{display:flex;align-items:center;gap:7px;min-width:0;font:10px/1.6 var(--mono);color:#c8dfa9}
.hw-command>span:first-child{color:#91b077}.hw-command code{font:inherit;color:#dde7d0;white-space:nowrap}.hw-command-mark{color:#6f855f;margin-left:auto}
.hw-disclaimer{font:9px/1.5 var(--mono);color:#8b9b80;margin:8px 0 13px}
.hw-detail{padding:11px 10px 8px;border-left:2px solid #647e4f;background:#b4d19307}
.hw-detail-label{display:block;font:10px/1.5 var(--mono);color:#c9dab7}
.hw-detail pre{white-space:pre-wrap;overflow-wrap:anywhere;font:9px/1.8 var(--mono);min-height:33px;color:#8fa47c;margin:6px 0 0}
.hw-topology{padding:10px 3px 3px}.hw-topology svg{display:block;width:100%;height:auto}
.hw-bus{stroke:#35482d;stroke-width:1;stroke-dasharray:3 5}
.hw-route{stroke:#aecf86;stroke-width:1.2;stroke-linejoin:round}
.hw-core rect{stroke:#718c5a;fill:#192b13}.hw-core path{stroke:#b0d389;stroke-width:1.2}
.hw-node rect{stroke:#566c43;fill:#101a0e}.hw-node text{font:8px var(--mono);fill:#7d956a;text-anchor:middle}
.hw-node-selected rect{stroke:#c1e599;fill:#375026}.hw-node-selected text{fill:#c8e7a6}
.hw-packet{fill:#e1f6ba;stroke:#f0ffd7;stroke-width:.7;visibility:hidden;filter:drop-shadow(0 0 3px #c1ec8a)}
.hw-result{font:10px/1.5 var(--mono);min-height:30px;color:#a7bc95;margin:11px 0 8px;overflow-wrap:anywhere}
.hw-console-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #293b22;padding-top:10px}
.hw-send{display:flex;align-items:center;justify-content:space-between;gap:17px;min-height:36px;padding:8px 11px;background:#25381d;border:1px solid #6b8a50;border-radius:2px;font:10px/1.4 var(--mono);color:#d1e9b5}
.hw-send:hover{background:#344b29;border-color:#a1bc81}.hw-count{font:9px var(--mono);color:#8da17d;white-space:nowrap}
.hardware-enabled .ops-services{padding:10px 18px}
.hardware-enabled .ops-card .ops-row{padding:10px 0;grid-template-columns:112px minmax(0,1fr);transition:color .2s}
.hardware-enabled .hw-service-selected strong{color:#c8e6a4}.hardware-enabled .hw-service-selected>span{color:#d1ddc5}
.hardware-enabled .ops-foot{background:#0d160c}
.hw-console-actions{flex-wrap:wrap;gap:8px}
.hw-send{min-height:44px}
.hw-cable-toggle{min-height:44px;padding:8px 10px;border:1px solid #405234;background:transparent;border-radius:2px;font:9px/1.4 var(--mono);color:#acbd9d}
.hw-cable-toggle:hover{border-color:#8ba66e;color:#d1e5bc}
.hw-send:disabled{opacity:.4;cursor:not-allowed}
.hw-count{margin-left:auto}
.hardware-enabled #equipo[data-hw-connected="false"] .hw-plug{opacity:0}
.hardware-enabled #equipo[data-hw-connected="false"] .hw-port[aria-pressed="true"] .hw-led{background:#45543b;box-shadow:0 0 0 1px #080d07}
.hardware-enabled #equipo[data-hw-connected="false"] .hw-route{stroke:#627551;stroke-dasharray:2 5;opacity:.45}
.hardware-enabled #equipo[data-hw-connected="false"] .hw-node-selected rect{fill:#182512;stroke:#728364}
.hw-intake-notice{font-size:13px;color:#c5d4b9}
@media(max-width:1050px) and (min-width:781px){.hardware-enabled .appliance-label{font-size:12px}.hardware-enabled .appliance-label small{font-size:7px}.hardware-enabled .port-bank{gap:5px}.hardware-enabled .hw-command{font-size:9px}.hardware-enabled .ops-card .ops-row{grid-template-columns:95px minmax(0,1fr)}.hardware-enabled .hw-face-footer{font-size:6px}}
@media(max-width:500px){.hw-socket{max-width:40px}.hw-preview-banner{font-size:8px;padding:10px 18px;gap:10px}.hardware-enabled .appliance-face{padding-inline:13px}.hardware-enabled .port-bank{gap:5px}.hw-port{min-height:78px;padding:6px 2px 8px}.hw-port-label{font-size:9px}.hardware-enabled .appliance-label{font-size:13px;gap:8px}.hardware-enabled .appliance-label small{font-size:7px}.hardware-enabled .hardware-mark{font-size:8px;padding:8px 5px}.hardware-enabled .console-window{margin:14px 12px 0}.hardware-enabled .console-body{padding:12px 10px}.hw-command{font-size:9px}.hw-disclaimer{font-size:9px}.hw-detail pre{font-size:9px}.hw-face-footer{font-size:6px}.hardware-enabled .ops-card .ops-row{grid-template-columns:103px minmax(0,1fr);gap:7px}.hardware-enabled .ops-services{padding-inline:14px}.hw-count{font-size:8px}}
@media(prefers-reduced-motion:reduce){.hardware-enabled .hw-port,.hardware-enabled .hw-plug,.hardware-enabled .ops-row{transition:none!important}}
html.motion-paused .hardware-enabled .hw-port,html.motion-paused .hardware-enabled .hw-plug{transition:none}
