:root{font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#172b36;background:#f2f4f6;font-synthesis:none;--accent:#007f78;--line:#ced7df;--muted:#6b7c88;--white:#fff}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;font-size:13px;color:inherit}button,select,input{border:1px solid #b7c4ce;border-radius:6px;background:#fff;min-height:36px}button{padding:0 14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:500;white-space:nowrap}button:hover:not(:disabled){border-color:var(--accent);background:#f0f8f7}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #89cbc5;outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}input{padding:8px 10px;min-width:0}select{padding:7px 32px 7px 12px;max-width:100%}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover:not(:disabled){background:#006b65;color:#fff}.text-button{border:0;background:transparent;min-height:30px;padding:2px 9px}.app-header{height:66px;padding:0 24px;display:flex;align-items:center;gap:26px;background:#fff;border-bottom:1px solid var(--line)}h1{font-size:24px;line-height:1.2;margin:0;letter-spacing:.02em}h2{margin:0;font-size:16px;line-height:1.4}.tool-picker{border-left:1px solid var(--line);padding-left:26px}.tool-picker select{width:230px}.account{margin-left:auto;display:flex;align-items:center;gap:20px;font-size:14px}.account button{border-left:1px solid var(--line);border-radius:0}.toolbar{min-height:68px;padding:12px 24px;display:flex;align-items:center;gap:14px;background:#fff;border-bottom:1px solid var(--line)}.device-picker{display:flex;align-items:center;gap:10px;font-weight:600;font-size:13px}.device-picker select{width:236px;font-weight:400}.status{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);margin:0 5px;white-space:nowrap}.status i{width:8px;height:8px;border-radius:50%;background:currentColor}.status[data-state=live]{color:var(--accent)}.status[data-state=stale],.status[data-state=frozen]{color:#a66b13}.status[data-state=error]{color:#b84436}.camera-tools{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px}.segmented{display:flex}.segmented button{border-radius:0;margin-left:-1px;min-width:62px}.segmented button:first-child{border-radius:6px 0 0 6px;margin-left:0}.segmented button:last-child{border-radius:0 6px 6px 0}.segmented button[aria-pressed=true]{background:var(--accent);color:white;border-color:var(--accent);z-index:1}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 304px;gap:12px;padding:14px 14px 0;min-height:590px;height:calc(100dvh - 242px)}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}.view-panel{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:white;border:1px solid var(--line);border-radius:6px}.view-panel>header{height:55px;flex:none;display:flex;align-items:center;gap:13px;padding:0 18px;border-bottom:1px solid #d9e0e5}.baseline-tag{font-size:12px;color:var(--accent);background:#e8f6f4;border:1px solid #a4d8d3;border-radius:4px;padding:3px 9px}.trial-count{font-size:12px;color:var(--muted)}.view-area{position:relative;flex:1;min-height:240px;background:#e9eef2}.scene{position:absolute;inset:0}.scene canvas{display:block;width:100%;height:100%;outline:none}.view-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;background:#e9eef2;color:var(--muted);padding:18px;font-size:12px}.view-empty strong{color:#526975;font-size:14px;font-weight:500}.empty-grid{color:#8ea5b3;font-size:42px;line-height:1.3;font-weight:300}.measurements{display:grid;grid-template-columns:1fr 1fr;margin:9px 10px 0;border:1px solid #d8e1e7;border-radius:4px;overflow:hidden;flex:none}.measurement{min-height:34px;padding:8px 9px;display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;white-space:nowrap;border-bottom:1px solid #d8e1e7}.measurement:nth-child(odd){border-right:1px solid #d8e1e7}.measurement:nth-child(n+3){border-bottom:0}.measurement b{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}.measurement small{font-size:10px;font-weight:400}.view-panel>footer{text-align:center;padding:10px 8px 12px;min-height:36px;font-size:11px;color:var(--muted)}.view-panel>footer span{display:block;color:#a66b13;font-size:11px;margin-top:3px}.inspector{border:1px solid var(--line);border-radius:6px;background:#fff;padding:18px;display:flex;flex-direction:column;min-height:0}.inspector>header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.inspector h2{font-size:18px}.inspector p{font-size:12px;margin:6px 0 0;line-height:1.6}.inspector>header button{min-height:32px;font-size:12px;padding:0 10px}.parameter-tabs{margin-top:20px;flex:none}.parameter-tabs button{flex:1;min-width:0}.parameter-fields{overflow:auto;padding-right:4px;margin-top:9px;flex:1;scrollbar-width:thin}.parameter-field{display:grid;grid-template-columns:minmax(0,1fr) 86px 20px;gap:8px;align-items:center;margin-bottom:12px;font-size:12px;min-height:32px}.parameter-field input,.parameter-field select{width:100%;height:32px;min-height:32px;padding:5px 7px;font-variant-numeric:tabular-nums}.parameter-field input:invalid{border-color:#bf5b4a}.parameter-field .unit{font-size:11px;color:var(--muted)}.inspector .inspector-note{border-top:1px solid var(--line);padding-top:12px;margin-top:12px;color:var(--muted);font-size:11px;flex:none}.frame-strip{margin:12px 14px 14px;border:1px solid var(--line);border-radius:6px;padding:12px 17px;background:white}.angle-row{display:flex;align-items:center;gap:25px;min-height:29px}.angle-row h2{font-size:13px;flex:none}.angle-row #angles{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));width:100%;gap:18px}.angle{font-size:12px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-variant-numeric:tabular-nums}.angle b{font-size:15px;font-weight:500}.frame-meta{border-top:1px solid #e0e6eb;margin-top:10px;padding-top:10px;display:flex;gap:20px;color:var(--muted);font-size:11px;align-items:baseline;flex-wrap:wrap}.frame-meta strong{font-weight:400;color:#344e5d;margin-left:8px;font-variant-numeric:tabular-nums}.event-meta{min-width:0;overflow-wrap:anywhere}.notice{background:#fff6e4;color:#7c571b;margin:10px 14px 0;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;font-size:12px;border:1px solid #ebd7aa;border-radius:6px;gap:15px}.notice+.workspace{height:calc(100dvh - 292px)}.notice[hidden]+.workspace{height:calc(100dvh - 242px)}.login-screen{min-height:calc(100dvh - 66px);display:grid;place-items:center;padding:32px 20px}.login-panel{width:400px;max-width:100%;padding:34px;background:#fff;border:1px solid var(--line);border-radius:8px}.login-mark{width:40px;height:40px;border-radius:6px;background:#e5f3f1;color:var(--accent);display:grid;place-items:center;font-size:27px;margin-bottom:23px}.login-panel h2{font-size:22px}.login-panel p{font-size:13px;color:var(--muted);line-height:1.7;margin:12px 0 26px}.login-panel>label{display:block;font-size:13px;margin:17px 0 8px;font-weight:500}.login-panel>input{width:100%;height:42px}.code-row{display:flex;gap:8px}.code-row input{width:100%;height:42px}.code-row button{height:42px}.login-submit{width:100%;height:42px}.login-panel .login-footnote{text-align:center;font-size:11px;margin:18px 0 0}.form-error{color:#b84436!important;font-size:12px!important;line-height:1.5!important;min-height:0}.login-panel .form-error{margin:12px 0;min-height:18px}.inspector .form-error:empty{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 355px}.measurement{font-size:13px;padding:9px 12px;min-height:38px}.measurement b{font-size:15px}.parameter-field{grid-template-columns:minmax(0,1fr) 100px 20px;font-size:13px}.parameter-field input,.parameter-field select{height:36px}.inspector{padding:22px}.view-panel>header{height:60px}.angle-row h2{font-size:15px}.angle{font-size:14px}}
@media(max-width:1080px){.toolbar{flex-wrap:wrap;gap:10px;padding:12px 14px}.camera-tools{margin-left:0}.workspace{grid-template-columns:minmax(0,1fr) 260px}.inspector{padding:14px}.parameter-field{grid-template-columns:minmax(0,1fr) 75px 18px;gap:5px}.measurement{display:block;white-space:normal}.measurement b{display:block;margin-top:3px}.angle-row{gap:15px}.angle-row #angles{gap:12px}.angle{display:block}.angle b{display:block;margin-top:3px}}
@media(max-width:760px){.app-header{height:auto;min-height:64px;flex-wrap:wrap;gap:12px;padding:14px}.app-header h1{font-size:20px}.tool-picker{order:3;border:0;padding:0;width:100%}.tool-picker select{width:100%}.account{gap:8px;font-size:12px}.toolbar{gap:10px}.device-picker{width:100%}.device-picker select{width:100%}.camera-tools{width:100%;justify-content:space-between}.workspace,.notice+.workspace,.notice[hidden]+.workspace{height:auto;min-height:0;display:flex;flex-direction:column;padding:10px 10px 0;gap:10px}.comparison{gap:8px;min-height:430px}.view-panel>header{padding:0 10px;height:48px;gap:7px;flex-wrap:wrap;align-content:center}.view-panel h2{font-size:14px}.baseline-tag{font-size:10px;padding:1px 5px}.trial-count{font-size:10px}.view-area{min-height:260px}.measurements{margin:7px 6px 0}.measurement{font-size:10px;padding:6px}.measurement b{font-size:12px}.view-panel>footer{font-size:10px;padding:8px 5px}.view-empty{font-size:10px;padding:10px}.view-empty strong{font-size:12px}.inspector{padding:18px;max-height:440px}.parameter-fields{min-height:130px;max-height:245px}.parameter-field{grid-template-columns:minmax(0,1fr) 110px 24px;font-size:13px}.frame-strip{margin:10px;padding:12px}.angle-row{display:block}.angle-row #angles{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:12px}.angle{display:flex}.angle b{margin:0}.frame-meta{gap:8px;display:flex;flex-direction:column}.event-meta{max-width:100%}.notice{margin:10px 10px 0}.login-screen{min-height:calc(100dvh - 117px)}.login-panel{padding:26px}}
.insertion-state{margin-left:auto;font-size:12px;color:var(--accent);white-space:nowrap}.view-panel>footer .result-delta{color:var(--muted);margin-top:0}
.device-picker{white-space:nowrap}.device-picker select{min-width:0}
@media(max-width:760px){.view-panel>footer{min-height:50px;line-height:16px}}
.plane-label{position:absolute;bottom:9px;left:10px;color:#4f6572;background:#ffffffd9;padding:4px 6px;border-radius:3px;font-size:10px;pointer-events:none}
button,input,select{min-height:32px;line-height:1.25}button{padding:0 12px;gap:6px}button svg{flex:none;vertical-align:middle}select{padding:6px 28px 6px 10px}.app-header{height:54px;padding:0 18px;gap:20px}h1{font-size:20px}.tool-picker{padding-left:20px}.tool-picker select{width:190px}.account{font-size:13px;gap:12px}#workbench{height:calc(100dvh - 54px);min-height:540px;display:flex;flex-direction:column}.toolbar{min-height:52px;flex:none;padding:9px 18px;gap:10px}.device-picker{gap:8px}.device-picker select{width:230px}.status{min-width:62px;margin:0 4px}.camera-tools{gap:10px}.segmented button{min-width:56px}.workspace,.notice+.workspace,.notice[hidden]+.workspace{height:auto;min-height:0;flex:1;grid-template-columns:minmax(0,1fr) 304px;padding:10px 10px 0;gap:10px;overflow:hidden}.comparison{gap:10px;min-height:0}.view-panel>header{height:44px;padding:0 14px;gap:10px}.view-panel h2{font-size:15px}.baseline-tag{padding:2px 7px;font-size:11px}.view-area{min-height:160px}.measurements{margin:8px 8px 0}.measurement{min-height:32px;padding:6px 10px;font-size:12px;display:flex;white-space:nowrap}.measurement b{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:3px;margin:0;font-size:14px;line-height:20px}.measurement:nth-child(-n+2) b{font-size:17px}.measurement small{font-size:10px;color:var(--muted)}.view-panel>footer{padding:5px 8px;min-height:25px;font-size:11px;line-height:15px}.view-panel>footer span{margin-top:0}.view-panel>footer span:empty{display:none}.inspector{padding:14px}.inspector>header{align-items:center;min-height:32px}.inspector h2{font-size:16px}.inspector>header button{min-height:32px}.parameter-tabs{margin-top:12px}.parameter-fields{margin-top:12px;padding-right:2px}.parameter-field{grid-template-columns:minmax(0,1fr) 92px 20px;gap:7px;min-height:32px;margin-bottom:7px;font-size:12px}.parameter-field>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.parameter-field input,.parameter-field select{height:32px;min-height:32px;padding:5px 7px;text-align:right}.parameter-field select{padding-right:24px}.parameter-field .unit{text-align:left;font-size:11px}.frame-strip{flex:none;margin:10px;padding:9px 14px}.angle-row{gap:18px;min-height:24px}.angle-row h2{font-size:13px}.angle-row #angles{gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.angle{display:grid;grid-template-columns:minmax(0,1fr) 82px;align-items:baseline;gap:8px;padding-left:14px;border-left:1px solid #e0e6eb;font-size:12px}.angle>span{white-space:nowrap}.angle b{font-size:15px;margin:0;text-align:right;white-space:nowrap}.frame-meta{margin-top:7px;padding-top:7px;gap:18px;font-size:11px}.notice{margin:8px 10px 0;padding:5px 10px;flex:none}.login-screen{min-height:calc(100dvh - 54px)}.plane-label{bottom:7px;left:8px;padding:3px 5px}
@media(min-width:1700px){.workspace{grid-template-columns:minmax(0,1fr) 320px}.parameter-field{grid-template-columns:minmax(0,1fr) 100px 20px;font-size:13px}.view-panel>header{height:46px}}
@media(max-width:1080px){.toolbar{flex-wrap:wrap}.workspace{grid-template-columns:minmax(0,1fr) 270px}.camera-tools{margin-left:auto}.parameter-field{grid-template-columns:minmax(0,1fr) 82px 18px}.measurement{display:block;white-space:normal;padding:5px 8px}.measurement b{display:flex;justify-content:flex-start}.angle-row{gap:10px}.angle-row #angles{gap:8px}.angle{grid-template-columns:1fr;padding-left:8px;gap:2px}.angle b{text-align:left}}
@media(max-width:760px){.app-header{height:auto;min-height:52px;padding:10px 12px;gap:10px}.app-header h1{font-size:18px}.tool-picker{padding:0}.tool-picker select{width:100%}.account{font-size:12px;gap:7px}#workbench{height:auto;min-height:0;display:block}.toolbar{padding:10px 12px;gap:8px;min-height:0}.device-picker select{width:100%}.camera-tools{margin-left:0;width:100%}.workspace,.notice+.workspace,.notice[hidden]+.workspace{display:flex;flex:none;overflow:visible;padding:8px 8px 0;gap:8px}.comparison{gap:8px;min-height:414px}.view-panel>header{height:44px;padding:0 9px;gap:5px}.view-panel h2{font-size:13px}.baseline-tag{font-size:10px;padding:1px 4px}.insertion-state,.trial-count{font-size:10px}.view-area{min-height:260px}.measurements{margin:6px 5px 0}.measurement{padding:5px;font-size:10px}.measurement b,.measurement:nth-child(-n+2) b{font-size:13px;line-height:18px;gap:2px}.measurement small{font-size:9px}.view-panel>footer{padding:5px;min-height:28px;font-size:10px;line-height:14px}.view-panel>footer span{font-size:10px}.inspector{padding:12px;max-height:410px}.parameter-fields{max-height:300px;min-height:130px}.parameter-field{grid-template-columns:minmax(0,1fr) 108px 22px;font-size:13px;margin-bottom:6px}.frame-strip{margin:8px;padding:10px}.angle-row{display:block}.angle-row #angles{grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}.angle{grid-template-columns:minmax(0,1fr) 74px;border:0;padding:0;gap:5px;font-size:11px}.angle b{font-size:14px;text-align:right}.frame-meta{display:flex;gap:5px;flex-direction:column}.notice{margin:8px 8px 0}.login-screen{min-height:calc(100dvh - 106px)}.plane-label{font-size:9px;left:6px;bottom:6px}.parameter-tabs{margin-top:10px}}
.device-picker strong{font-size:13px;font-weight:500;max-width:310px;overflow:hidden;text-overflow:ellipsis}.camera-tools{margin-left:auto}
@media(max-width:760px){.device-picker strong{max-width:calc(100vw - 80px)}.camera-tools{width:auto;margin-left:auto}.segmented button{min-width:44px;padding:0 9px}.measurement>span{min-height:25px;display:block}.angle>span{font-size:12px}.login-screen{min-height:calc(100dvh - 52px)}}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m3 4.5 3 3 3-3' fill='none' stroke='%23526975' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:12px;padding-right:32px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.parameter-field select{padding:5px 30px 5px 10px;text-align:left}select:hover:not(:disabled){border-color:#759b9c}select:focus{border-color:var(--accent);box-shadow:0 0 0 2px #007f7814}select:disabled{color:#8a98a2;background-color:#f2f4f6;cursor:not-allowed}select option{color:#172b36;background:#fff}.login-screen{grid-template-columns:minmax(0,1fr)}.login-panel h2{margin-bottom:26px}.save-summary{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-size:11px;line-height:1.5;flex:none}#save-state{color:#9b6b20}#save-state[data-state=saved]{color:var(--accent)}#save-state[data-state=saving]{color:var(--muted)}#saved-meta{color:var(--muted);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}#saved-meta:empty{display:none}#result-error{margin:7px 0 0}#retry-result{align-self:flex-start;min-height:26px;font-size:11px;color:var(--accent);padding:2px 0}.save-summary+.form-error[hidden]+#retry-result[hidden]+.parameter-tabs{margin-top:10px}
@media(forced-colors:active){select{appearance:auto;background-image:none}}
