:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-synthesis:none;color:#1c2d46;background:#f4f6f9;letter-spacing:0;color-scheme:light}
*{box-sizing:border-box}body{margin:0;min-height:100svh;display:flex;flex-direction:column}button,select{font:inherit;letter-spacing:0}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #165dff;outline-offset:2px}svg{width:20px;height:20px;stroke-width:1.8;flex-shrink:0}button svg{pointer-events:none}[hidden]{display:none!important}
body>header{height:66px;display:flex;align-items:center;gap:18px;padding:0 32px;border-bottom:1px solid #e1e6ea;background:#fff}.brand{display:flex;align-items:center;gap:9px;font-size:21px;font-weight:700;color:#1c2d46;text-decoration:none}.brand svg{width:27px;height:27px;color:#165dff}.lab{font-size:12px;color:#7c8ba0;padding-left:18px;border-left:1px solid #e1e6ea}.prototype{margin-left:auto;color:#7c8ba0;font-size:11px}
main{flex:1;padding:48px 16px}.heading{margin-bottom:28px;text-align:center}h1{font-size:23px;font-weight:600;margin:0;line-height:1.4}.workspace{width:340px;max-width:100%;margin:auto}.primary,.hold,.retry{height:44px;border:0;border-radius:6px;background:#165dff;color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:500;padding:0 16px;width:100%}.primary:hover,.retry:hover{background:#124ed9}.primary:active,.retry:active{background:#1046c3}.launcher p{margin:12px 0;color:#7c8ba0;font-size:12px;text-align:center;min-height:18px}
/* Match the deployed v126 shell; the press control is specific to this method. */
.mask{position:fixed;inset:0;z-index:99998;display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:16px;background:rgba(2,6,23,.28);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);overscroll-behavior:contain;overflow:auto;animation:mask-in .16s ease-out}
.dialog{width:380px;max-width:100%;flex:none;position:relative;overflow:hidden;background:#fff;border:1px solid #e3e8ef;border-top:4px solid #165dff;border-radius:6px;box-shadow:0 10px 36px rgba(24,40,61,.19);color:#1c2d46;animation:window-in .2s ease-out}.dialog:focus{outline:none}.mask.large .dialog{width:500px}.content{padding:20px 20px 0}h2{font-size:16px;line-height:24px;font-weight:500;text-align:center;margin:0 0 16px;overflow-wrap:anywhere}
.stage{position:relative;aspect-ratio:3/2;isolation:isolate;border-radius:6px;overflow:hidden;background:#b7bec4}.stage canvas{display:block;width:100%;height:100%}.preview-badge{position:absolute;top:8px;left:8px;padding:3px 6px;border-radius:3px;background:#ffffffe3;font-size:10px;line-height:16px;color:#536779;z-index:2;pointer-events:none}
.cover{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:#f1f4f8;color:#7c8ba0;font-size:12px;text-align:center;padding:12px}.spinner{width:24px;height:24px;border:2px solid #dfe7f1;border-top-color:#165dff;border-radius:50%;animation:spin .8s linear infinite}.cover button{border:1px solid #dfe7f1;border-radius:6px;padding:8px 14px;min-height:40px;font-size:12px;background:#fff;color:#526b8b}.cover #fallback{background:#165dff;color:#fff;border-color:#165dff}.cover #reload{border:0;background:transparent}.cover #error-text{line-height:18px}
.control-slot{height:44px;margin-top:12px;position:relative}.hold{touch-action:none;user-select:none;-webkit-user-select:none;transition:background .12s,box-shadow .12s}.hold svg,.retry svg{width:19px;height:19px}.hold.pressed{background:#124ed9;box-shadow:inset 0 2px 4px #082d7733}.hold:disabled{background:#f0f4f8;color:#8a98ae}.hold.complete{background:#edf7ed;color:#318b30}.hold .lucide-loader-circle{animation:spin .8s linear infinite}
.action-status{height:28px;display:flex;align-items:center;justify-content:center;gap:6px;padding:3px 0;color:#7c8ba0;font-size:10px;font-weight:400;line-height:15px;text-align:center}.action-status span{min-width:0;overflow-wrap:anywhere}.action-status #detail{width:100%}.dialog[data-state=error] .action-status,.dialog[data-state=failed] .action-status{color:#c3452d}.dialog[data-state=success] .control-slot,.dialog[data-state=success] .action-status{display:none}.dialog[data-state=success] h2{display:flex;align-items:center;justify-content:center;gap:10px;height:32px;margin-bottom:8px;line-height:24px;color:#14233a}.success-mark{width:32px;height:32px;flex:none;display:grid;place-items:center;color:#2468eb;animation:completion-in .2s ease-out}.success-mark svg{width:32px;height:32px;stroke-width:1.6;fill:#2468eb}.success-mark svg path:last-child{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:0;animation:success-check-in .32s ease-out .1s both}.success-label{font-size:17px;font-weight:600;line-height:24px;animation:completion-in .2s ease-out}@keyframes success-check-in{from{stroke-dashoffset:24}to{stroke-dashoffset:0}}.dialog[data-state=success] .dialog-footer{margin-top:12px}.dialog[data-state=success] .height-guide{visibility:hidden}
.dialog-footer{height:46px;display:flex;align-items:center;gap:2px;padding:0 0 2px;margin-left:-8px}.tools{display:flex;gap:2px}.icon{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:8px;background:transparent;color:#7c8ba0;transition:color .15s,background .15s}.icon:hover{background:#f0f4f8;color:#486484}.icon:active{background:#e8eef6}.icon:disabled{opacity:.45;cursor:default}.icon svg{width:22px;height:22px}.icon.is-refreshing svg{animation:spin .72s linear infinite}
.mini-brand{display:flex;align-items:center;gap:6px;margin-left:auto;min-height:32px;padding:2px 0;color:#8a98ae;font-size:12px;line-height:16.8px;text-decoration:none;border-radius:4px}.mini-brand strong{font-weight:650}.mini-brand:hover{color:#526b8b}.brand-mark{color:#7387a5;width:17px;height:17px;display:block}.brand-mark svg{width:17px;height:17px}
.feedback{position:absolute;z-index:3;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;margin:0;padding:8px 9px;color:#fff;background:#ff603e;font-size:12px;font-weight:500;line-height:20px;text-align:center;pointer-events:none;animation:feedback-in .24s ease-out}.feedback>svg{width:16px;height:16px}.feedback strong{font-size:12px;font-weight:500}.feedback.preview{background:#526b8b}.feedback.error,.feedback.interrupted{background:#62758d}
.below{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;font-size:11px;color:#8a98ae;font-variant-numeric:tabular-nums}.text-button{display:flex;align-items:center;gap:6px;min-height:44px;padding:7px 0;border:0;background:transparent;color:#526b8b;font-size:12px}.text-button:hover{color:#165dff}.text-button svg{width:16px;height:16px}.debug{margin-top:14px;border-top:1px solid #dfe4e8;font-size:12px;color:#7c8ba0}.debug>summary{cursor:pointer;padding:13px 0;min-height:44px}.debug[open]>summary{margin-bottom:4px}
.mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border-bottom:1px solid #dbe1e5;margin-bottom:16px}.mode-tabs button{height:44px;border:0;border-bottom:2px solid transparent;display:flex;align-items:center;justify-content:center;gap:5px;background:transparent;color:#7c8ba0;font-size:12px;padding:0 3px;min-width:0}.mode-tabs button svg{width:15px;height:15px}.mode-tabs button[aria-selected=true]{border-bottom-color:#165dff;color:#165dff}.mode-tabs button:focus-visible{outline-offset:-2px}
.selections{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:15px;margin-bottom:14px}.selections label{display:flex;align-items:center;gap:8px;font-size:11px;color:#7c8ba0;min-width:0}.selections label>span{flex-shrink:0}.selections select{min-width:0;flex:1;width:0;min-height:40px;background:transparent;border:0;border-bottom:1px solid #dce3e7;color:#3c505e;font-size:11px;padding:7px 0;cursor:pointer}.toolbar{height:44px;display:flex;align-items:center;justify-content:space-between;margin:8px 0}.edition{font-size:11px}.modes{display:flex;gap:4px}.modes button{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:4px;background:transparent;color:#7c8ba0;padding:0}.modes button svg{width:16px;height:16px}.modes button:hover,.modes button.selected{background:#e7eef9;color:#165dff}
.metrics{margin-top:10px;padding-top:12px;border-top:1px solid #dfe5e9;font-size:11px;color:#7c8ba0}.metrics summary{cursor:pointer;min-height:32px}.metrics table{border-collapse:collapse;width:100%;margin-top:10px;text-align:right;font-size:10px;font-variant-numeric:tabular-nums}.metrics th,.metrics td{padding:8px 2px;border-bottom:1px solid #e0e6ea;font-weight:400}.metrics th:first-child,.metrics td:first-child{text-align:left;white-space:nowrap}.page-footer{display:flex;justify-content:space-between;gap:16px;padding:17px 32px;border-top:1px solid #e1e6ea;font-size:10px;color:#8a98ae}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes mask-in{from{opacity:0}to{opacity:1}}@keyframes window-in{from{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}@keyframes feedback-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes completion-in{from{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}
@media(max-width:600px){body>header{height:57px;padding:0 18px;gap:12px}.brand{font-size:19px}.lab{font-size:10px;padding-left:12px}.prototype{font-size:10px}main{padding:28px 16px}h1{font-size:21px}.page-footer{padding:15px 18px;justify-content:center}.page-footer>span:first-child{display:none}}
@media(max-width:359px){.content{padding-left:13px;padding-right:13px}.lab{display:none}.dialog h2{font-size:16px}.mode-tabs button{font-size:11px}}
@media(max-height:480px){.mask{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.action-status{height:36px;font-size:12px;line-height:17px;color:#53657a}
.height-guide{position:absolute;left:12px;top:0;bottom:0;width:12px;pointer-events:none;z-index:1}
.height-range{position:absolute;left:2px;width:8px;border:1px solid #688597;background:#d5e6f080;border-radius:3px}
.height-point{position:absolute;left:0;width:12px;height:4px;margin-top:-2px;border-radius:2px;background:#263e51;box-shadow:0 0 0 1px #fff}
.height-guide[data-alignment=holding] .height-range,.height-guide[data-alignment=complete] .height-range{border-color:#287b66;background:#b8e3d4b3}
.height-guide[data-alignment=braking] .height-point{background:#975d20}
.metrics{overflow-x:auto}.metrics table{min-width:320px}.metrics th{white-space:nowrap}
@media(max-height:480px){.mask{padding:8px;align-items:center}.content{padding-top:12px}.dialog h2{margin-bottom:10px;font-size:15px;line-height:22px}.dialog .stage{height:max(85px,calc(100dvh - 232px));max-height:220px;aspect-ratio:auto}.control-slot{margin-top:8px}.dialog-footer{height:44px}.action-status{height:34px}}
