*{box-sizing:border-box}html,body,#app{margin:0;height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#223943;background:#f5f7f8}body{font-size:13px}#app{display:grid;grid-template-rows:auto minmax(0,1fr);height:100dvh}button,input,select{font:inherit}button,select,input{accent-color:#207f7a}button{cursor:pointer;border:1px solid #cdd8dc;background:#fff;border-radius:6px;color:#36535f;padding:9px 12px;font-weight:550}button:hover{background:#eaf0f2}button:disabled,select:disabled,input:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #209892;outline-offset:3px}button.active{background:#fff;box-shadow:0 2px 5px #172f3a13;color:#1f6e70}button.primary{background:#226e70;border-color:#226e70;color:#fff}button.primary:hover{background:#195d60}.wide{width:100%;display:flex;justify-content:space-between}.secondary{background:#e9f0f1}.topbar{min-height:92px;display:flex;align-items:center;gap:13px;padding:12px 24px;border-bottom:1px solid #d7e0e3;background:#fcfdfd}.brand,.brand-icon{flex-shrink:0}.brand-icon{display:grid;place-items:center;font-size:33px;color:#397a79;border:1px solid #a9c4c6;border-radius:10px;width:41px;height:41px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:.15em;color:#477b80}.brand h1{font-size:20px;letter-spacing:-.5px;margin:2px 0 0;font-weight:620}.top-stats{display:flex;gap:25px;margin-left:auto}.top-stats>div{display:flex;flex-direction:column;gap:5px}.top-stats span{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#768d96}.top-stats strong{font-size:11px;font-weight:620}.state-stat{min-width:168px;max-width:240px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 386px;min-height:0}.viewport-card{position:relative;overflow:hidden;min-width:0;background:#e8edf0}#scene{display:block;width:100%;height:100%;touch-action:none}.sidebar{padding:17px 20px 24px;overflow:auto;background:#fafcfc;border-left:1px solid #d6dfe3;scrollbar-width:thin}.view-toolbar{position:absolute;top:21px;left:23px;display:flex;gap:3px;padding:4px;background:#f7f9fae8;border:1px solid #cbd6dc;border-radius:9px;box-shadow:0 4px 15px #344f5c0b}.view-toolbar button{background:transparent;border:0;padding:8px 12px;font-size:11px}.view-toolbar button.active{background:#fff}.scene-badges{position:absolute;top:79px;left:25px;display:flex;gap:13px;flex-wrap:wrap;pointer-events:none}.scene-badges span{font-size:9px;font-weight:650;letter-spacing:.08em;color:#607983}.scene-badges span:before{content:"";width:5px;height:5px;background:#6c8a91;border-radius:50%;display:inline-block;margin:0 6px 1px 0}.scene-badges span.on{color:#008e85}.scene-badges span.on:before{background:#13bfb0;box-shadow:0 0 8px #13bfb0}.view-options{position:absolute;top:118px;left:25px;display:flex;gap:14px;font-size:10px;color:#536c77}.view-options label{display:flex;align-items:center;gap:4px}.view-options input{width:12px;height:12px;margin:0}.scene-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.model-label{position:absolute;left:0;top:0;background:#f8fcfde8;color:#3b5c68;padding:5px 7px;border:1px solid #bbcdd4;border-radius:3px;font-size:8px;font-weight:650;letter-spacing:.07em;white-space:nowrap;box-shadow:0 2px 10px #2943520b}.model-label[hidden]{display:none}.scale-legend{position:absolute;left:25px;bottom:143px;display:flex;flex-direction:column;gap:6px;color:#607986;font-size:9px;pointer-events:none}#scaleBar{border:1px solid #536f7d;border-top:0;height:6px}.scale-legend small{font-size:9px;color:#7b9098}.scene-caption{position:absolute;left:25px;bottom:25px;max-width:calc(100% - 295px);pointer-events:none}.scene-caption p{font-size:14px;line-height:1.5;margin:8px 0;color:#294958;max-width:430px}.scene-caption small{font-size:10px;color:#7b909a}.detail-monitor{position:absolute;right:20px;bottom:24px;width:222px;border-radius:9px;background:#f9fcfcef;border:1px solid #bfced5;box-shadow:0 6px 25px #34536512;overflow:hidden}.monitor-head{display:flex;justify-content:space-between;padding:12px 12px 8px;font-size:9px;letter-spacing:.11em;font-weight:700}.live-dot{font-size:8px;color:#7a8e97;letter-spacing:.04em}.live-dot:before{content:"";display:inline-block;width:4px;height:4px;background:#388c89;border-radius:50%;margin-right:5px}.monitor-tabs{display:flex;gap:4px;margin:0 10px 5px;background:#eaf0f2;border-radius:5px;padding:3px}.monitor-tabs button{padding:5px;flex:1;font-size:10px;border:0;background:transparent}.monitor-tabs button.active{background:#fff}.detail-monitor canvas{display:block;width:220px;height:160px}.monitor-values{display:flex;justify-content:space-between;padding:5px 13px;font-family:ui-monospace,monospace;font-size:10px;color:#297276}.detail-monitor p{font-size:8px;text-align:center;color:#7b8d95;margin:4px 0 12px}.tabs{display:flex;padding:4px;background:#e9eff1;border:1px solid #dce4e7;border-radius:8px;gap:4px;margin-bottom:22px}.tab{flex:1;padding:8px 6px;background:transparent;border:0;font-size:11px}.tab-page{display:none}.tab-page.active{display:block}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 8px;gap:10px}.section-heading h2{font-size:15px;letter-spacing:-.3px;margin:0;font-weight:630}.section-heading>span{font-size:10px;color:#7e949c}.hint{font-size:11px;line-height:1.65;color:#6c818c;margin:8px 0 17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 11px}.form-grid label,.standalone-label{display:flex;flex-direction:column;gap:6px;font-size:10px;color:#637b85;font-weight:560}select,input[type=number]{width:100%;height:36px;background:#fff;color:#344f5b;border:1px solid #cbd7dc;border-radius:6px;padding:7px 10px;outline:none;font-size:12px}.input-unit{position:relative}.input-unit input{padding-right:34px}.input-unit span{position:absolute;right:10px;top:10px;font-size:10px;color:#7a8e97}.field-note{font-size:9px;line-height:1.5;color:#899aa2;margin:10px 0 13px}.check-row{display:flex;gap:15px;margin-bottom:15px;font-size:10px;color:#597480}.check-row label{display:flex;align-items:center;gap:5px}.check-row input{margin:0;width:12px;height:12px}.phase-list{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0}.phase-list span{border-bottom:2px solid #dce5e8;padding:3px 0 7px;font-size:10px;color:#7d929c}.phase-list .current{color:#147772;border-color:#238e87;font-weight:650}.phase-list .done{border-color:#abc7be;color:#5a7c73}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.metric-grid>div{border:1px solid #dbe4e7;border-radius:7px;background:#fff;padding:10px 11px}.metric-grid span{display:block;font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:#8a9ca4}.metric-grid strong{display:block;font-family:ui-monospace,SFMono-Regular,monospace;font-size:14px;font-weight:500;margin-top:7px;color:#2c515e}.metric-grid>div:first-child{border-color:#b9d7d2;background:#f2f9f7}.metric-grid>div:first-child strong{color:#1d7c75}.calibration-list{display:flex;flex-direction:column;margin:13px 0;gap:7px}.cal-item{display:flex;align-items:center;justify-content:space-between;border:1px solid #dae4e7;border-radius:6px;background:#fff;padding:10px;gap:8px}.cal-item span{font-size:11px}.cal-item small{display:block;margin-top:5px;font-size:9px;color:#ac7551}.cal-item.done small{color:#688d83}.cal-item button{font-size:10px;padding:5px 8px}.button-row{display:flex;gap:8px;margin:10px 0}.button-row button{flex:1;font-size:11px}.playback{flex:1 1 430px;min-width:360px;max-width:480px;margin:0 16px}.manual-laser-panel{border-top:1px solid #dce5e8;border-bottom:1px solid #dce5e8;padding:18px 0;margin:20px 0}.playback-title{display:flex;justify-content:space-between;color:#6b8692;font-size:10px}.playback-title strong{font-weight:550}.playback-title>span{font-family:ui-monospace,monospace}.progress-wrap{height:4px;background:#e0e9eb;border-radius:4px;overflow:hidden;margin:6px 0 9px}.progress-wrap>div{height:100%;width:0;background:#489c90;transition:width .1s}.playback-controls{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.playback-controls button{font-size:10px;padding:7px 13px}.playback-controls label{display:flex;gap:7px;align-items:center;margin-left:auto;font-size:10px;color:#69828d}.vision-panel{margin-bottom:20px}.vision-panel .section-heading h2{font-size:12px}.vision-content{display:flex;gap:15px;border:1px solid #d3e0e3;background:#eef4f5;border-radius:7px;padding:12px}.reticle{position:relative;width:140px;min-width:140px;height:92px;border:1px solid #b2c6ce;background:radial-gradient(ellipse,#f5fafb,#d7e4e9)}.reticle:before,.reticle:after{content:"";position:absolute;background:#6e919b80}.reticle:before{width:1px;top:0;bottom:0;left:50%}.reticle:after{height:1px;left:0;right:0;top:50%}.reticle i{position:absolute;width:22px;height:22px;border:1px solid #4c9991;border-radius:50%;left:calc(50% - 11px);top:calc(50% - 11px)}.reticle b{position:absolute;width:5px;height:5px;border-radius:50%;background:#c89540;left:calc(50% - 2.5px);top:calc(50% - 2.5px)}.vision-readouts{display:flex;flex-direction:column;justify-content:space-between}.vision-readouts span{font-size:8px;color:#8197a0}.vision-readouts strong{display:block;margin-top:3px;font-size:10px;color:#4c6d79;font-family:ui-monospace,monospace;font-weight:500}.axis-table{margin-top:15px}.axis-row{display:grid;grid-template-columns:1fr 1fr 45px;align-items:center;padding:8px 0;border-bottom:1px solid #e4eaed;font-size:11px}.axis-row strong{font-family:ui-monospace,monospace;text-align:right;font-weight:500}.axis-row em{font-size:9px;color:#91a1a8;text-align:right;font-style:normal}.component-card{font-size:11px;line-height:1.6;border:1px solid #cadcde;background:#f1f7f6;border-radius:7px;padding:12px;margin-top:15px}.component-card p{margin:6px 0 0;color:#6a858d}.source-notes{font-size:10px;line-height:1.7;color:#718992;margin-top:18px}.source-notes summary{cursor:pointer;color:#456d79}.log-card summary{cursor:pointer;font-size:11px;font-weight:550;color:#506e79}.log-card summary span{float:right;font-size:9px;font-weight:400;color:#8b9ea7}.event-log{height:124px;overflow:auto;scrollbar-width:thin;border:1px solid #dce5e7;background:#fff;border-radius:6px;padding:8px;margin-top:10px;font-family:ui-monospace,monospace;font-size:9px;line-height:1.65;color:#7e929c}.log-line{margin-bottom:5px}.log-line b{font-weight:400;color:#367e83}.model-note{font-size:8px;line-height:1.75;letter-spacing:.015em;color:#97a7ae;margin:19px 0 0}@media(min-width:1600px){.layout{grid-template-columns:minmax(0,1fr) 420px}.sidebar{padding:23px 26px}}@media(max-width:1150px){.topbar{flex-wrap:wrap}.playback{order:1;flex-basis:100%;min-width:0;max-width:none;margin:0}.layout{grid-template-columns:minmax(0,1fr) 350px}.sidebar{padding:17px 16px}.view-toolbar{left:16px}.view-toolbar button{padding:7px 8px}.scene-badges,.view-options{left:18px}.detail-monitor{width:200px;right:12px;bottom:18px}.detail-monitor canvas{width:198px;height:144px}.scene-caption{left:18px;max-width:calc(100% - 240px)}.scene-caption p{font-size:12px}.vision-content{gap:10px}.reticle{width:125px;min-width:125px}.top-stats{gap:15px}.scale-legend{left:18px;bottom:172px}}@media(max-width:850px){#app{display:block;height:auto;min-height:100dvh}.layout{display:block;height:auto}.viewport-card{height:650px}.sidebar{border-top:1px solid #d3dfe4;border-left:0;overflow:visible}.topbar{padding:12px 14px}.brand h1{font-size:17px}.top-stats{gap:10px}.top-stats>div:first-child{display:none}.state-stat{min-width:135px}.scene-caption{max-width:calc(100% - 245px)}.form-grid{grid-template-columns:1fr 1fr}.sidebar{max-width:700px;margin:auto}.scale-legend{bottom:145px}}@media(max-width:500px){.topbar{gap:8px}.brand-icon{display:none}.brand h1{font-size:16px}.eyebrow{font-size:8px}.top-stats>div:nth-child(2){display:none}.state-stat{min-width:110px;max-width:136px}.top-stats strong{font-size:9px}.view-toolbar{left:10px;right:10px;justify-content:space-between}.view-toolbar button{font-size:10px;padding:7px 9px}.scene-badges{gap:7px;left:13px}.scene-badges span{font-size:7px}.view-options{left:13px;gap:11px}.viewport-card{height:720px}.detail-monitor{bottom:18px;right:13px}.scene-caption{left:13px;bottom:30px;max-width:calc(100% - 232px)}.scene-caption p{font-size:11px}.scene-caption small{font-size:9px}.scale-legend{left:13px;bottom:280px}.model-label{font-size:7px;padding:4px}.scene-caption .eyebrow{font-size:7px}}.pattern-spec{padding:11px 12px;background:#edf3f5;border:1px solid #d4e0e5;border-radius:6px;margin-bottom:16px}.pattern-spec strong{display:block;font-size:12px;font-weight:550}.pattern-spec span{display:block;font-family:ui-monospace,monospace;font-size:10px;color:#54828b;margin-top:5px}.pattern-spec small{display:block;font-size:9px;color:#8f867a;line-height:1.5;margin-top:6px}.exposure-status{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px;padding:12px;border:1px solid #d4e0e4;background:#f1f6f7;border-radius:7px;margin-bottom:11px}.exposure-status span{font-size:8px;letter-spacing:.1em;color:#7b939e;display:block}.exposure-status strong{font-family:ui-monospace,monospace;font-size:13px;display:block;margin-top:5px;font-weight:500}.exposure-status b{font-size:10px;color:#208580;font-weight:600}.exposure-status small{flex-basis:100%;font-size:9px;color:#8a9da6}.view-toolbar button{padding-left:10px;padding-right:10px}@media(max-width:500px){.view-toolbar button{font-size:9px;padding:7px 5px}.view-toolbar{gap:0}}.detail-view-note{position:absolute;left:25px;top:160px;max-width:320px;pointer-events:none}.detail-view-note[hidden]{display:none}.detail-view-note strong{display:block;font-size:12px;color:#3a6170}.detail-view-note span{display:block;font-size:10px;color:#6d8994;margin-top:6px}.detail-view-note small{display:block;font-size:9px;color:#8298a2;line-height:1.5;margin-top:6px}.scene-caption{background:#f8fbfbdc;border:1px solid #d1dde0aa;border-radius:7px;padding:12px 14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.scene-caption p{font-size:12px;margin:7px 0}.detail-view-note{background:#f8fbfbeb;border:1px solid #cbdadd;border-radius:7px;padding:12px;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.micro-zooms{display:flex;gap:5px;margin-top:10px}.micro-zooms button{font-size:9px;padding:6px 8px}.inspection-site{display:block;margin-top:10px;font-size:10px;color:#456472}.inspection-site select{width:100%;margin:5px 0 8px;padding:6px;font-size:11px}#followWriting{padding:6px 8px;font-size:10px}#followWriting[aria-pressed=true]{background:#dcebed;color:#236d70}#inspectionPosition{font-variant-numeric:tabular-nums}#scene:focus-visible{outline:2px solid #278b88;outline-offset:-2px}.view-options{background:#f4f8f9ed;padding:7px 9px;border-radius:5px;top:113px}.scene-badges span{background:#f4f8f9df;padding:4px 6px;border-radius:3px}.scale-legend{background:#f4f8f9db;padding:8px;border-radius:4px;bottom:168px}.monitor-tabs button{white-space:nowrap;padding:5px 3px}@media(max-width:500px){.scale-legend{bottom:287px}.scene-caption{padding:10px}.scene-caption p{font-size:10px}.detail-view-note{max-width:250px;left:13px}.scene-badges{gap:3px}}.tabs{position:sticky;top:0;z-index:4}.view-options button{border:0;background:transparent;padding:0 2px;margin-left:2px;font-size:10px;color:#337a7b}.parts-list{list-style:none;margin:0;padding:0}.parts-list .parts-list{margin-left:10px;padding-left:12px;border-left:1px solid #d7e3e6}.part-row{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:33px;padding:4px 0}.part-row label{display:flex;align-items:center;gap:7px;font-size:11px;line-height:1.3;min-width:0;cursor:pointer}.part-row input{width:13px;height:13px;flex-shrink:0;margin:0}.part-solo{border:0;background:transparent;padding:4px 5px;font-size:9px;color:#7a969d}.part-solo:hover{color:#236c6e;background:#e1eff0}.part-branch-head{position:relative;padding-top:1px}.part-branch-head>.part-row{position:absolute;left:18px;right:0;top:0}.part-branch>summary{height:34px;cursor:pointer;color:#698a94;list-style:none;display:flex;align-items:center;width:16px}.part-branch>summary:before{content:"›";font-size:20px;display:inline-block;transform:rotate(0);transition:transform .12s}.part-branch[open]>summary:before{transform:rotate(90deg)}.part-branch>summary::-webkit-details-marker{display:none}.parts-list>li{border-bottom:1px solid #edf1f3}.part-branch-head>.part-row label{font-weight:600}.part-presets{display:flex;gap:7px;margin-bottom:10px}.part-presets button{font-size:10px;padding:8px 10px}.part-actions{display:flex;gap:6px;padding-bottom:13px;margin-bottom:6px;border-bottom:1px solid #dbe5e8}.part-actions button{font-size:10px;padding:6px 8px}.tabs .tab{font-size:10px}#partsTree{margin-top:5px}.cal-item{display:grid;grid-template-columns:minmax(0,1fr) auto}.cal-checklist{grid-column:1 / -1;list-style:none;padding:8px 0 0;margin:0;border-top:1px solid #e4ebee}.cal-checklist[hidden]{display:none}.cal-checklist li{display:flex;align-items:flex-start;gap:7px;padding:5px 4px;font-size:10px;line-height:1.45;color:#71828b;border-radius:3px}.cal-checklist li b{width:13px;flex-shrink:0;text-align:center}.cal-checklist li span{font-size:10px}.cal-checklist li[data-status=running]{background:#eee8fb;color:#593c9b;font-weight:650}.cal-checklist li[data-status=complete]{color:#287565}.cal-checklist li[data-status=failed]{color:#a44436}.cal-checklist li[data-status=cancelled]{color:#9a7d67}.cal-results{font-size:10px}.cal-results details{padding:9px 0;border-bottom:1px solid #dfe7eb;overflow-x:auto}.cal-results summary{cursor:pointer;font-weight:600}.cal-results table{width:100%;border-collapse:collapse;margin-top:8px;font-variant-numeric:tabular-nums}.cal-results td,.cal-results th{padding:5px 3px;text-align:right;border-bottom:1px solid #e6ecef}.cal-results td:first-child,.cal-results th:first-child{text-align:left}.playback-controls label{flex:1;min-width:150px;display:flex;align-items:center;gap:6px}#speed{width:100%;min-width:60px;padding:0;accent-color:#6c4aca}#speedValue{font-size:11px;min-width:44px;font-variant-numeric:tabular-nums}#manualLaser{margin-top:12px}#manualLaser[aria-pressed=true]{background:#eee5ff;color:#5b30bb;border-color:#9067de}#finishMetalens{margin:10px 0 0}#laserBadge.on{color:#6636c5;background:#ede5ff}.manual-holder{margin:16px 0;padding:13px;border:1px solid #d8e3e8;border-radius:7px;background:#f7fafb}.manual-holder>strong{font-size:12px}.manual-holder>p{font-size:11px;color:#587582}.manual-holder .standalone-label{margin-top:12px}
