.controller-visual{--cv-mint:#8aedcf;--cv-ink:#e8f2fa;min-width:0;margin:0 0 28px;border:1px solid #ffffff1f;border-top:3px solid var(--red,#e5173a);border-radius:4px;overflow:hidden;background:linear-gradient(150deg,#20242d,#14171d 52%,#191c24);color:var(--cv-ink);box-shadow:0 14px 35px #0002}
.cv-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 20px 15px}.cv-eyebrow{font-size:9px;letter-spacing:1.9px;font-weight:800;color:#ffc42e}.settings-body .cv-heading h3{font-size:22px;letter-spacing:-.7px;margin:7px 0 0}.cv-connection{flex:none;display:flex;align-items:center;gap:7px;font-size:10px;color:#a9b9c8}.cv-connection:before{content:"";width:7px;height:7px;border-radius:50%;background:#75828f;box-shadow:0 0 0 4px #75828f13}.controller-visual[data-connected=true] .cv-connection:before{background:var(--cv-mint);box-shadow:0 0 0 4px #8aedcf12}
.cv-models{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:0 16px}.cv-model{position:relative;display:grid;justify-items:start;align-content:center;gap:4px;min-width:0;min-height:65px;padding:10px 8px 9px 22px;border:1px solid #ffffff24;border-radius:4px;background:#111318;color:#d3d7df;text-align:left;cursor:pointer}.cv-model strong{font-size:11px;white-space:nowrap}.cv-model small{font-size:8px;line-height:1.2;color:#9aa0ac}.cv-model-dot{position:absolute;left:9px;top:15px;width:6px;height:6px;border-radius:2px;background:var(--model-color);box-shadow:0 0 7px #fff2}.cv-model[aria-pressed=true]{background:linear-gradient(145deg,#3a3421,#1d1a12);border-color:#ffc42e;color:#fff4d6;box-shadow:inset 0 0 0 1px #ffc42e26}.cv-model[aria-pressed=true] small{color:#e9d9a8}
.cv-stage{position:relative;isolation:isolate;padding:0 8px;background:radial-gradient(ellipse at 50% 30%,#739db921,transparent 70%)}.cv-stage:before{content:"";position:absolute;z-index:-1;inset:12px 15px 25px;background-image:radial-gradient(#849bab1b 1px,transparent 1px);background-size:15px 15px;mask-image:radial-gradient(ellipse,#000,transparent 70%);pointer-events:none}.cv-svg{display:block;width:100%;height:auto;overflow:visible}.cv-stage-caption{margin:-8px 0 17px;text-align:center;font-size:10px;color:#a7bbcc;line-height:1.4}.cv-svg text{font-family:'Segoe UI',Arial,sans-serif;text-anchor:middle;dominant-baseline:central;pointer-events:none;user-select:none}.cv-button-label{font-size:17px;font-weight:700}.cv-small-label{font-size:8px;font-weight:800;letter-spacing:1px}.cv-brand{font-size:14px;font-weight:700;letter-spacing:.5px}.cv-stick-label{font-size:9px;fill:#aab6c5;font-weight:700}.cv-physical{cursor:pointer;outline:none}.cv-physical .cv-hit{transition:stroke .1s,filter .1s;stroke-linejoin:round}.cv-physical[data-control-key^="axis"] .cv-button-label{font-size:10px}.cv-physical[data-control-key="button:4"] .cv-button-label,.cv-physical[data-control-key="button:5"] .cv-button-label,.cv-physical[data-control-key="button:6"] .cv-button-label,.cv-physical[data-control-key="button:7"] .cv-button-label{font-size:11px;letter-spacing:1px}.cv-physical.is-selected .cv-hit{stroke:#9fe6ff;stroke-width:2.8}.cv-physical[data-active=true] .cv-hit{stroke:#8affd3;stroke-width:3;filter:drop-shadow(0 0 5px #69ffca)}.cv-physical:focus-visible .cv-hit{stroke:#fff2a9;stroke-width:4;filter:drop-shadow(0 0 6px #ffe797)}.cv-physical.is-unavailable{opacity:.5}.controller-visual[data-connected=false] .cv-stage-caption{color:#a2b1c0}
.cv-selection{margin:0 16px 16px;padding:14px;border:1px solid #ffffff21;border-radius:4px;background:#0a0b0f99}.cv-selected-info{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 10px}.cv-selected-info small{font-size:8px;font-weight:800;letter-spacing:1.3px;color:#8facbe}.cv-selected-info strong{grid-column:1;font-size:19px;line-height:1.3;color:#dcfff4}.cv-selected-info>span{grid-column:2;grid-row:1/3;max-width:230px;font-size:11px;color:#a2bed0;text-align:right;overflow-wrap:anywhere}.cv-assignment{display:grid;grid-template-columns:1fr auto;gap:6px 10px;margin-top:14px}.cv-assignment label{grid-column:1/-1;color:#b0c7d7;font-size:11px;font-weight:600}.cv-assignment select{min-width:0;width:100%;min-height:44px;border:1px solid #ffffff2e;border-radius:4px;padding:9px;background-color:#0a0b0f;color:#e5f4fa;font:inherit;font-size:12px}.cv-assign{min-height:44px;padding:9px 20px;border-radius:10px;background:var(--cv-mint);border:1px solid #b2ffe7;color:#16332c;font-size:12px;font-weight:800}.cv-assign:disabled{opacity:.4;cursor:default}.cv-conflict{font-size:10px;line-height:1.5;color:#d2c292;margin:10px 0 0}.cv-message{margin:8px 0 0;color:#8edbc5;font-size:10px;line-height:1.5}
.cv-controls{border-top:1px solid #ffffff17}.cv-controls summary{display:flex;align-items:center;min-height:44px;padding:10px 18px;font-size:11px;font-weight:700;color:#c5d9e7;cursor:pointer;list-style:none}.cv-controls summary:before{content:'+';font-size:18px;margin-right:10px;color:#9bd9d1}.cv-controls[open] summary:before{content:'−'}.cv-control-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:0 16px 14px}.cv-control-key{min-width:0;min-height:48px;padding:8px;border:1px solid #ffffff1f;border-radius:4px;background:#15181e;text-align:left}.cv-control-key strong{display:block;font-size:10px;line-height:1.3;color:#d3e5ef}.cv-control-key small{display:block;margin-top:4px;font-size:9px;line-height:1.3;color:#88a6ba;overflow-wrap:anywhere}.cv-control-key.is-selected{border-color:var(--cv-mint);background:#254748}.cv-control-key.is-unavailable{opacity:.6}.cv-note{margin:0;padding:12px 18px;background:#0a0b0f66;border-top:1px solid #ffffff14;color:#8eaabb;font-size:10px;line-height:1.6}.controller-visual button:focus-visible,.controller-visual select:focus-visible,.cv-controls summary:focus-visible{outline:2px solid #ffe49a;outline-offset:3px}
@media(max-width:700px){.cv-heading{padding:16px 14px 12px;align-items:flex-start}.settings-body .cv-heading h3{font-size:19px}.cv-connection{font-size:9px;margin-top:3px}.cv-models{padding:0 10px;gap:5px}.cv-model{padding:9px 6px 9px 17px;min-height:60px}.cv-model-dot{left:6px;width:5px;height:5px}.cv-model strong{font-size:10px}.cv-model small{font-size:8px}.cv-selection{margin:0 10px 12px;padding:12px}.cv-control-grid{padding:0 10px 12px;grid-template-columns:repeat(3,minmax(0,1fr))}.cv-stage-caption{font-size:9px;margin:-3px 7px 13px}.cv-stage{padding:0}.cv-note{padding:10px 14px}}
@media(max-width:420px){.cv-heading{display:block;padding:14px 12px 12px}.cv-heading .cv-connection{margin-top:12px}.cv-models{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-model{min-height:47px;padding:8px 8px 8px 22px}.cv-model strong{font-size:11px}.cv-model small{font-size:8px}.cv-model-dot{left:10px;top:15px}.cv-selected-info{display:block}.cv-selected-info strong{display:block;font-size:17px;margin:4px 0}.cv-selected-info>span{display:block;max-width:none;text-align:left;font-size:10px}.cv-assignment{gap:6px}.cv-assign{padding:9px 12px}.cv-control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-eyebrow{font-size:8px;letter-spacing:1.5px}.cv-stage-caption{margin:0 10px 12px}.cv-svg .cv-button-label{font-weight:800}}
@media(prefers-reduced-motion:reduce){.cv-physical .cv-hit{transition:none}}
@media(min-width:701px){.controller-visual{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(235px,1fr)}.cv-heading,.cv-models,.cv-controls,.cv-note{grid-column:1/-1}.cv-stage{align-self:center}.cv-selection{align-self:center;margin:18px 16px 18px 0;padding:12px}.cv-selected-info{display:block}.cv-selected-info strong{display:block;margin:5px 0;font-size:18px}.cv-selected-info>span{display:block;text-align:left;font-size:10px}.cv-stage-caption{margin:1px 7px 15px;font-size:9px}.cv-assignment{gap:6px}.cv-assign{padding:9px 12px}.cv-model strong{font-size:12px}}
.controller-visual,.controller-visual button,.controller-visual select{font-family:'Segoe UI',Arial,sans-serif}
.cv-input-reading{display:grid;grid-template-columns:1fr auto;gap:3px 8px;margin-top:12px;font-size:9px;color:#9cbacd}.cv-live-value{color:#a0efda;font-variant-numeric:tabular-nums}.cv-pressure{grid-column:1/-1;width:100%;height:7px;appearance:none;-webkit-appearance:none;border:0;background:#142d3c;border-radius:4px;overflow:hidden}.cv-pressure::-webkit-meter-bar{background:#142d3c;border:0;height:7px}.cv-pressure::-webkit-meter-optimum-value{background:linear-gradient(90deg,#3caf99,#a1f9dd)}.cv-pressure::-moz-meter-bar{background:#8aedcf}
