:root{color-scheme:light;--ink:#102743;--blue:#164cf0;--muted:#536379;--line:#d9e1ed;--paper:#f2f5fb;--red:#b62a32;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;font-size:16px;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}main{width:min(100% - 32px,580px);margin:0 auto;padding:32px 0 max(30px,env(safe-area-inset-bottom))}header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:25px}.eyebrow{font-size:.75rem;font-weight:750;letter-spacing:.12em}h1{font-size:1.9rem;letter-spacing:-.04em;margin:8px 0 0}h2{font-size:1rem;margin:0;font-weight:750}.badge{font-size:.875rem;white-space:nowrap;border:1px solid var(--line);border-radius:30px;padding:8px 12px;background:#fff}.badge.connected{background:#daf2ff;border-color:#8fcbe9}section,details{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;margin-bottom:16px}p{font-size:1rem;line-height:1.65;margin:14px 0}p.minor,.minor{font-size:.875rem;color:var(--muted);line-height:1.6}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.connect-row,.arm-row{display:flex;align-items:end;gap:12px}.connect-row label,.arm-row label{flex:1;min-width:0}label{display:block;font-size:.875rem;font-weight:650;line-height:1.5}input:not([type=checkbox]):not([type=range]),select{display:block;border:1px solid #acb9cc;border-radius:10px;font:inherit;font-size:1rem;background:#fff;color:var(--ink);padding:12px;width:100%;margin-top:6px;min-height:48px}button{border:1px solid var(--line);border-radius:12px;font:inherit;font-size:1rem;font-weight:650;color:var(--ink);background:#edf1f9;padding:13px 16px;min-height:48px;cursor:pointer;touch-action:manipulation}button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}button:disabled{cursor:not-allowed;opacity:.48}button:not(:disabled):active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #5586ff;outline-offset:3px}[id$="-message"]{border-left:3px solid #9bb9e9;padding-left:12px;font-size:.875rem;overflow-wrap:anywhere;margin-bottom:0}[id$="-message"].error{border-color:var(--red);color:#96222c}.check{display:flex;align-items:start;gap:10px;font-size:.875rem;font-weight:450;margin:20px 0}.check input{width:20px;height:20px;min-width:20px;margin:2px 0;accent-color:var(--blue)}.tap-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 14px}.tap{display:flex;align-items:start;flex-direction:column;text-align:left;min-height:150px;background:#102743;color:#fff;border:0;padding:19px}.tap .letter{font-size:3rem;font-weight:450;line-height:1;margin-bottom:15px;color:#aeeaff}.tap small{font-size:.75rem;font-weight:450;opacity:.75;margin-top:5px}.count-row{margin-bottom:16px}.count-row label{display:flex;align-items:center;gap:10px}.count-row select{width:auto;margin:0}button.stop{width:100%;background:#fff0f1;border-color:#e1a2a8;color:#9c1c25;display:flex;align-items:center;justify-content:center;gap:12px}.stop span{font-size:1.15rem}summary{cursor:pointer;font-size:1rem;font-weight:750;line-height:1.6}summary span{display:block;font-size:.875rem;color:var(--muted);font-weight:450;padding-left:18px}details[open] summary{margin-bottom:24px}[id$="-settings"]>label{margin-bottom:20px}output{float:right;color:var(--blue)}input[type=range]{display:block;width:100%;margin-top:14px;accent-color:var(--blue);height:28px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}[id$="-apply"]{width:100%;margin-top:6px}footer{font-size:.875rem;color:var(--muted);line-height:1.8;padding:4px 6px}footer a,.link{color:var(--blue);font-size:.875rem}.link{border:0;background:transparent;padding:0;min-height:40px;text-decoration:underline}[id$="-compatibility"] a{color:var(--blue)}@media(max-width:390px){main{width:calc(100% - 24px)}section,details{padding:16px}.connect-row,.arm-row{flex-wrap:wrap}.connect-row label,.arm-row label{flex-basis:100%}.connect-row button,.arm-row button{width:100%}h1{font-size:1.6rem}.count-row{flex-wrap:wrap}.tap{min-height:135px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
:root{--line:#d9e1ed}
.repeat-status{font-size:.875rem;border-radius:10px;padding:10px 14px;background:#edf1f9;color:var(--muted)}.repeat-status.running{background:#e1edff;color:#143a9e;font-weight:650}
main{width:min(100% - 32px,900px);padding-bottom:145px}
.side-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}
.side-card{margin:0;min-width:0;border:1px solid var(--line);border-radius:14px;padding:18px}
legend{font-weight:750;padding:0 8px}h3{font-size:1rem;margin:26px 0 10px}
.angle-row{display:grid;grid-template-columns:minmax(0,1fr) 86px;align-items:center;gap:12px}
.side-card>label{margin-top:12px}.angle-row input[type=range]{margin:0}.angle-row input[type=number]{padding:10px 8px}
.travel{font-size:.85rem;color:var(--blue);line-height:1.6;min-height:42px}
details[id$="-jogPanel"]{padding:16px;margin:18px 0 0}.side-card details{border:0;border-top:1px solid var(--line);border-radius:0;padding:15px 0 0;margin:0}
.side-card details summary{font-size:.875rem}.side-card details summary span{padding:0;font-size:.8rem}
.tap-grid{grid-template-columns:1fr 1fr 1fr}.tap .letter{font-size:2rem}.tap{min-height:112px}
.arm-row>label:last-child{max-width:105px}.position{font-size:1rem;text-align:right;color:var(--blue)}
.jog-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.jog-row button{padding:12px 6px}.profile-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.profile-row button{font-size:.875rem;flex:1}.stop-dock{position:fixed;bottom:0;left:0;width:100%;background:#fffef9f5;border-top:1px solid var(--line);padding:10px max(16px,calc((100vw - 860px)/2)) max(12px,env(safe-area-inset-bottom));z-index:5}
.stop-dock span{display:block;font-size:.75rem;color:var(--muted);text-align:center;margin:7px 0 0}
.stop-dock button{min-height:48px}.stop-dock button:not(:disabled){background:#a52631;color:white;border-color:#a52631}
[id$="-settingsStatus"].dirty{color:#a45a0a}[id$="-settingsStatus"].error{color:var(--red)}
@media(max-width:640px){.side-grid{grid-template-columns:1fr}.arm-row{flex-wrap:wrap}.arm-row>label:first-child{flex-basis:100%}.arm-row>label:last-child{max-width:95px;flex:0 0 95px}.arm-row>button{flex:1}.tap{padding:14px;min-height:106px}.tap .letter{font-size:1.5rem}.tap-grid{gap:8px}.row{flex-wrap:wrap}.connect-row{flex-wrap:wrap}.connect-row>label{flex-basis:100%}.connect-row>button{flex:1}.position{font-size:.875rem}.profile-row button{min-width:120px}.jog-row{gap:7px}[id$="-jogPanel"] .settings-grid button{font-size:.8rem;padding:10px 6px}}
@media(max-width:390px){.arm-row>button,.connect-row>button{width:auto}.arm-row>label:last-child{flex-basis:95px}.side-card{padding:14px}.tap{font-size:.875rem}header{align-items:flex-start}.badge{font-size:.75rem}}

[hidden]{display:none!important}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.mode-switch button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink);opacity:1}.wide{width:100%}[id$="-visualPanel"] .tap{background:#173e45}[id$="-visualPanel"] .letter{color:#b8f2d8}@media(max-width:390px){.mode-switch button{padding:12px 8px;font-size:.85rem}}

.intro{margin-bottom:0}.wiring-link{color:var(--blue);font-size:.875rem;white-space:nowrap}.device-overview{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.device-overview>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px;background:white;border:1px solid var(--line);border-radius:16px}.device-name{font-weight:750;line-height:1.4}.device-name small{display:block;font-size:.75rem;font-weight:450;color:var(--muted);margin-top:4px}.board-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.board-tabs button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.board-note{margin:12px 2px 22px}.local-stop{margin:4px 0 24px}.device-overview .badge{max-width:100%;font-size:.75rem;padding:6px 9px}.board-panel{min-width:0}footer{margin-top:20px}@media(max-width:640px){.device-overview>div{align-items:flex-start;flex-direction:column;padding:14px}.device-overview{gap:9px}.wiring-link{white-space:normal;min-width:66px}.board-tabs button{padding:12px 8px}.device-name small{font-size:.7rem}}
#lights-visualPanel .tap{background:#edf3f4;color:#173e45;border:1px solid #c8d7da}#lights-visualPanel .tap .letter{color:inherit}#lights-visualPanel .tap[aria-pressed=true]{background:#126447;color:#fff;border-color:#126447}#lights-visualPanel .tap[aria-pressed=mixed]{background:#e1f2e8;border-color:#6a9b80}#lights-visualPanel .led-state{font-size:.8rem;font-weight:750;letter-spacing:.03em;margin-top:8px;padding:3px 8px;border:1px solid currentColor;border-radius:20px}
