@import "https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap";:root{--mesco-navy:#0b1f33;--mesco-navy-deep:#061422;--mesco-steel:#1a3348;--mesco-slate:#2c4a5e;--mesco-sky:#3a7ca5;--mesco-sky-bright:#4e9fd1;--mesco-accent:#c45c26;--mesco-gold:#c9a227;--mesco-fog:#e8eef3;--mesco-muted:#9bb0c0;--mesco-white:#f7fafc;--mesco-pass:#1f8a4c;--mesco-fail:#c0392b;--mesco-warn:#d4a017;--bg:var(--mesco-navy-deep);--bg-elevated:var(--mesco-navy);--bg-panel:var(--mesco-steel);--text:var(--mesco-white);--text-muted:var(--mesco-muted);--border:#9bb0c040;--focus:var(--mesco-sky-bright);--font-display:"Barlow Condensed", "Arial Narrow", sans-serif;--font-body:"Source Sans 3", "Segoe UI", sans-serif;--radius:4px;--shadow:0 12px 40px #00000059;--btn-pad-y:.7rem;--btn-pad-x:1.25rem;--btn-min-height:2.75rem;--camera-min-h:max(72vh, calc(100dvh - 11rem));--chrome:#0b1f33eb}html[data-theme=light]{--bg:#eef3f7;--bg-elevated:#f7fafc;--bg-panel:#dce6ee;--text:#0b1f33;--text-muted:#3a5164;--border:#0b1f3333;--chrome:#f7fafcf5;--shadow:0 12px 40px #0b1f331f}html[data-theme=light] body{background:radial-gradient(ellipse 80% 50% at 10% -10%, color-mix(in srgb, var(--mesco-sky) 18%, transparent), transparent 50%), linear-gradient(180deg, #eef3f7 0%, #dce6ee 100%)}html[data-theme=light] input,html[data-theme=light] select,html[data-theme=light] textarea{background:var(--bg-elevated)}html[data-theme=light] .panel{background:#f7fafce0}html[data-theme=light] .agent-log{background:var(--bg-elevated)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100dvh;max-height:100dvh;margin:0;overflow:hidden}body{font-family:var(--font-body);background:radial-gradient(ellipse 80% 50% at 10% -10%, color-mix(in srgb, var(--mesco-sky) 25%, transparent), transparent 50%), radial-gradient(ellipse 60% 40% at 100% 0%, color-mix(in srgb, var(--mesco-accent) 12%, transparent), transparent 45%), linear-gradient(180deg, var(--mesco-navy-deep) 0%, var(--mesco-navy) 100%);color:var(--text);font-size:clamp(.82rem,.35vw + .75rem,1.05rem);line-height:1.4}h1,h2,h3,.display{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:0 0 .4rem;font-weight:600}a{color:var(--mesco-sky-bright);text-decoration:none}a:hover{text-decoration:underline}button,.btn{font-family:var(--font-body);font-weight:600;font-size:inherit;border-radius:var(--radius);padding:var(--btn-pad-y) var(--btn-pad-x);min-height:var(--btn-min-height);text-align:center;text-transform:capitalize;cursor:pointer;background:var(--mesco-sky);color:var(--mesco-white);border:1px solid #0000;justify-content:center;align-items:center;line-height:1.2;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}button:hover:not(:disabled),.btn:hover:not(:disabled){background:var(--mesco-sky-bright);transform:translateY(-1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--mesco-accent)}button.primary:hover:not(:disabled){background:#d96a2e}button.ghost{border:1px solid var(--border);color:var(--text);background:0 0}button.danger{background:var(--mesco-fail)}button.pass{background:var(--mesco-pass)}.wizard-launch{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.wizard-launch>.btn,.wizard-launch>button{box-sizing:border-box;text-align:center;justify-content:center;align-items:center;width:100%;min-height:100%;text-decoration:none;display:inline-flex}input,select,textarea{font-family:var(--font-body);background:var(--mesco-navy-deep);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);width:100%;min-height:2.75rem;padding:.65rem .85rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--focus);outline-offset:1px}label{color:var(--text-muted);margin-bottom:.35rem;font-size:.85rem;display:block}.field{margin-bottom:1rem}.field-row{align-items:center;gap:.5rem;display:flex}.field-row input{flex:auto;width:auto;min-width:8rem;min-height:2.75rem}.field-row input[type=checkbox]{flex:none;width:1.15rem;min-width:1.15rem;height:1.15rem;min-height:1.15rem}.field-row select{flex:none;width:auto;min-width:5.5rem;min-height:2.75rem}.exposure-sliders{margin:.5rem 0 1rem}.exposure-sliders input[type=range]{flex:auto;min-width:8rem;min-height:2rem}.exposure-sliders .field-row input[inputmode=decimal]{flex:0 0 5rem;min-width:5rem;max-width:5.5rem}.calib-grid-ref{border:1px solid var(--border);object-fit:contain;background:#111;width:auto;max-width:180px;height:auto;max-height:140px;margin:.5rem 0 .75rem;display:block}.app-shell{grid-template-rows:auto auto minmax(0,1fr);height:100%;max-height:100dvh;display:grid;overflow:hidden}.topbar{background:var(--chrome);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0;align-items:center;gap:clamp(.5rem,1.2vw,1.25rem);min-height:0;padding:clamp(.35rem,1vh,.75rem) clamp(.6rem,1.5vw,1.5rem);display:flex}.topbar img.logo{flex-shrink:0;width:auto;height:clamp(28px,4.5vh,40px)}.brand-block{flex-direction:column;gap:.1rem;display:flex}.brand-block .name{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;font-size:clamp(1rem,1.6vw,1.35rem)}.brand-block .tag{color:var(--mesco-gold);letter-spacing:.12em;text-transform:uppercase;font-size:clamp(.6rem,.9vw,.72rem)}.nav{scrollbar-width:none;flex-wrap:nowrap;align-items:center;gap:.25rem;min-width:0;margin-left:auto;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav a{color:var(--text-muted);border-radius:var(--radius);white-space:nowrap;padding:.3rem .55rem;font-size:clamp(.75rem,1.1vw,.9rem);text-decoration:none}.nav a.active,.nav a:hover{color:var(--text);background:#4e9fd126}.main{flex-direction:column;gap:clamp(.4rem,1vh,.85rem);width:100%;max-width:none;min-height:0;margin:0;padding:clamp(.45rem,1.2vh,1.25rem) clamp(.6rem,1.8vw,1.5rem);display:flex;overflow:auto}.main>*{flex-direction:column;flex:auto;gap:clamp(.4rem,1vh,.85rem);min-height:0;display:flex;overflow:auto}.panel{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:#1a3348bf;flex:none;min-height:0;padding:clamp(.65rem,1.4vh,1.25rem) clamp(.75rem,1.6vw,1.5rem)}.main>.panel,.main>.wizard-shell.panel{flex-direction:column;flex:auto;display:flex;overflow:auto}.panel+.panel{margin-top:0}.main h1{flex-shrink:0;margin:0 0 .25rem;font-size:clamp(1.15rem,2.2vw,1.75rem)}.main>.panel>.muted,.main>*>.muted:first-of-type{flex-shrink:0}.verdict{font-family:var(--font-display);letter-spacing:.08em;text-align:center;border-radius:var(--radius);padding:1.5rem;font-size:clamp(3rem,8vw,5rem)}.verdict.pass{color:#6dff9f;border:2px solid var(--mesco-pass);background:#1f8a4c40}.verdict.fail{color:#ff8a80;border:2px solid var(--mesco-fail);background:#c0392b47}.verdict-time{letter-spacing:.04em;opacity:.9;margin-top:.35rem;font-size:clamp(1rem,2.4vw,1.35rem);font-weight:600;display:block}.pass-report{z-index:40;background:#000000b8;justify-content:center;align-items:stretch;padding:.75rem;display:flex;position:fixed;inset:0;overflow:auto}.pass-report-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-panel);flex-direction:column;gap:.65rem;width:min(1100px,100%);max-height:calc(100dvh - 1.5rem);margin:auto;padding:1rem 1.1rem 1.25rem;display:flex;overflow:auto}.pass-report-card .verdict{margin:0;padding:.75rem 1rem;font-size:clamp(2rem,5vw,3.25rem)}.pass-report-serial{text-align:center;margin:0;font-size:1.1rem}.pass-report-hint{text-align:center;margin:0}.pass-report-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.85rem;display:grid}.pass-report-cam{flex-direction:column;gap:.45rem;min-width:0;display:flex}.pass-report-cam h3{margin:0;font-size:1.05rem}.pass-report-still{aspect-ratio:4/3;border:1px solid var(--border);border-radius:var(--radius);background:#000;overflow:hidden}.pass-report-still img{object-fit:contain;width:100%;height:100%;display:block}.pass-report-cam .dim-record h3{font-size:.95rem}.dim-record[data-tone=pass] h3,.dim-record[data-tone=pass] .dim-measured,.dim-record[data-tone=pass] .dim-result,.pass-report-grid.tone-pass .pass-report-cam>h3{color:#6dff9f}.dim-record[data-tone=pass] .dim-measured,.dim-record[data-tone=pass] .dim-result{font-weight:650}.dim-record .dim-result.ok,.dim-record[data-tone=fail] tr.dim-ok .dim-measured,.dim-record[data-tone=auto] tr.dim-ok .dim-measured{color:#6dff9f;font-weight:650}.dim-record .dim-result.bad,.dim-record[data-tone=fail] tr.dim-bad .dim-measured,.dim-record[data-tone=auto] tr.dim-bad .dim-measured{color:#ff8a80;font-weight:650}.pass-report-card>.ghost,.pass-report-card>.fail-ack-btn{align-self:center;margin-top:.25rem}.pass-report-card.fail{border-color:var(--mesco-fail)}.pass-report-fail-reasons{border-radius:var(--radius);border:1px solid var(--mesco-fail);background:#c0392b29;margin:0;padding:.75rem 1rem}.pass-report-fail-reasons h3{color:#ffc9c4;margin:0 0 .4rem;font-size:1.05rem}.pass-report-fail-reasons ul{color:#ffc9c4;margin:0;padding-left:1.2rem;line-height:1.4}.pass-report-fail-reasons li+li{margin-top:.35rem}.pass-report-ack-hint{text-align:center;color:#ffc9c4;margin:.25rem 0 0;font-weight:600}.fail-ack-btn{border-color:var(--mesco-fail);background:#c0392b59}.pass-report-thumb{cursor:zoom-in;background:0 0;border:0;width:100%;height:100%;padding:0;display:block}.pass-report-thumb img{object-fit:contain;width:100%;height:100%}.history-cycle-report{margin:.5rem 0 .75rem}.history-cycle-report-title{margin:0 0 .5rem;font-size:1.1rem}.history-expand .pass-report-grid{margin-bottom:.5rem}.cycle-btn{font-family:var(--font-display);letter-spacing:.1em;width:100%;max-width:420px;margin:1rem auto;padding:1.25rem 2.5rem;font-size:1.75rem;display:block}.inspect-status{margin:0 0 1rem}.inspect-status p{margin:0 0 .5rem;font-weight:600}.inspect-progress{background:var(--mesco-navy);border:1px solid var(--mesco-sky);border-radius:999px;height:12px;overflow:hidden}.inspect-progress span{background:var(--mesco-sky);width:40%;height:100%;animation:1.2s ease-in-out infinite inspect-slide;display:block}@keyframes inspect-slide{0%{transform:translate(-100%)}to{transform:translate(280%)}}.inspect-result{margin:0 0 1rem}.learn-status{color:#c8f0d4;background:#14301f;border:1px solid #2f6f4a;margin:.4rem 0;padding:.45rem .65rem;font-weight:600}.prod-page{min-height:0}.prod-page.has-result>.panel:not(.prod-run){padding-block:.4rem}.prod-page.has-result>.panel:not(.prod-run) h2,.prod-page.has-result>.panel:not(.prod-run)>.muted{display:none}.prod-run{flex-direction:column;display:flex;overflow:auto}.prod-page.has-result .prod-run>.muted{display:none}.prod-run .inspect-result{flex:none;max-height:12rem;margin:0 0 .35rem;overflow:auto}.prod-run .issue-draw-prompt{color:#ffc9c4;background:#3a1a1a;flex:none;margin:0 0 .35rem;padding:.4rem .75rem;font-weight:650}.fail-why{color:#ffc9c4;text-align:center;margin:.35rem 0 0;padding:0 .75rem;font-size:.95rem;line-height:1.35}.prod-run .verdict{padding:.35rem 1rem;font-size:clamp(1.5rem,3vw,2.25rem)}.prod-run .verdict-time{margin:0 0 0 .75rem;font-size:.95rem;display:inline}.prod-run .physical-prompt{margin:0;padding:.35rem .65rem}.prod-run .inspect-result h3,.prod-run .inspect-result>.muted{display:none}.prod-run .inspect-result ul{flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;margin:.25rem 0 0;padding:0;list-style:none;display:flex}.prod-run .inspect-result .table{display:none}.prod-run .live-camera,.prod-run .live-camera.compact{flex:auto;min-height:max(62vh,100dvh - 16rem)}.prod-run .live-camera-frame{flex:auto;min-height:calc(max(62vh,100dvh - 16rem) - 3.25rem)}.prod-run .cycle-btn{z-index:6;background:var(--bg-panel);flex:none;margin:.4rem auto 0;padding:.55rem 1.5rem;font-size:1.25rem;position:sticky;bottom:0}.prod-run .issue-reason-row{z-index:7;background:var(--bg-panel);margin:0;padding:.45rem .5rem .15rem;position:sticky;bottom:3.35rem}.issue-reason-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin:.6rem 0;display:flex}.issue-reason-row .danger{min-height:2.8rem;padding:.55rem 1rem;font-size:1.05rem}.inspect-win-commit{z-index:8;min-height:2.8rem;padding:.55rem 1.1rem;font-size:1.05rem;position:absolute;bottom:.5rem;left:50%;transform:translate(-50%)}.issue-reason-row label{color:var(--text-muted);flex-direction:column;flex:16rem;gap:.3rem;font-size:.85rem;display:flex}.issue-reason-row input{min-height:2.6rem;font-size:1rem}.wizard-shell{flex-direction:column;gap:clamp(.5rem,1.2vh,1.25rem);min-height:0;display:flex;overflow:auto}.wizard-body{flex-direction:column;flex:0 auto;gap:.75rem;min-height:min-content;display:flex;overflow:visible}.wizard-body>.field,.wizard-body>p,.wizard-body>table,.wizard-shell>h1,.wizard-steps,.physical-prompt{flex-shrink:0}.wizard-steps{flex-wrap:wrap;gap:.35rem;display:flex}.wizard-steps .step{text-align:center;border-radius:var(--radius);border:1px solid var(--border);min-width:88px;color:var(--text-muted);background:#0003;flex:1;padding:.55rem .4rem;font-size:.78rem}.wizard-steps .step.done{border-color:var(--mesco-pass);color:#8fefb0}.wizard-steps .step.current{border-color:var(--mesco-sky-bright);color:var(--text);background:#4e9fd12e;box-shadow:0 0 0 1px #4e9fd159}.physical-prompt{border-left:4px solid var(--mesco-gold);background:#c9a2271a;margin:1rem 0;padding:.9rem 1rem}.wizard-actions{flex-shrink:0;justify-content:space-between;gap:1rem;margin-top:1rem;padding:.25rem 0 .5rem;display:flex;position:static}.table{border-collapse:collapse;width:100%;font-size:.92rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:.55rem .6rem}.table th{color:var(--text-muted);font-weight:600}.table th.row-actions{text-align:right;width:99%}.table td.row-actions{text-align:right;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.table tr.history-row-open td{border-bottom-color:#0000}.table tr.history-expand>td{background:color-mix(in srgb, var(--bg-panel) 88%, #000);border-bottom:1px solid var(--border);padding:.4rem .6rem 1rem}.img-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;display:grid}.img-grid>div{flex-direction:column;gap:.4rem;min-width:0;display:flex}.img-grid>div>label,.img-grid>div>button:not(.img-thumb),.img-grid>div>.muted{z-index:1;flex-shrink:0;position:relative}.img-grid img{object-fit:contain;transform-origin:50%;border-radius:var(--radius);border:1px solid var(--border);background:#000;width:100%;height:100%}.unit-trace-fields{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem 1.25rem;margin:0 0 1rem;display:grid}.unit-trace-fields dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#8a9bb0);margin:0;font-size:.75rem}.unit-trace-fields dd{margin:.15rem 0 0;font-size:1.1rem;font-weight:600}.unit-trace-stills{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;display:grid}.unit-trace-still{border:1px solid var(--border);border-radius:var(--radius);background:#000;max-width:640px;margin:0;overflow:hidden}.unit-trace-still img{width:100%;height:auto;display:block}.img-thumb{aspect-ratio:4/3;text-transform:none;cursor:zoom-in;border-radius:var(--radius);background:#000;border:none;width:100%;min-height:0;padding:0;display:block;overflow:hidden}.img-thumb img{display:block}.img-missing{min-height:140px;color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius);background:#000;place-items:center;font-size:.85rem;display:grid}.img-zoom{z-index:50;cursor:zoom-out;background:#000000db;align-content:center;place-items:center;gap:.6rem;padding:1.25rem;display:grid;position:fixed;inset:0}.img-zoom img{border-radius:var(--radius);border:1px solid var(--border);background:#000;width:auto;max-width:min(96vw,1400px);height:auto;max-height:82vh}.img-zoom-caption{color:var(--text-muted);font-size:.9rem}.login-page{background:linear-gradient(120deg,#0b1f33eb,#061422e0),url(https://static.wixstatic.com/media/17262e_f93954a54c2e42a28556c7be839091aa~mv2.png) 50%/cover;place-items:center;height:100%;max-height:100dvh;padding:clamp(.75rem,2vh,1.5rem);display:grid;overflow:auto}.login-page--unit-trace{background:linear-gradient(180deg, var(--mesco-navy-deep) 0%, var(--mesco-navy) 100%)}.login-card{width:min(420px,100%);animation:.45s rise}.login-install-help{margin:.6rem 0 0;font-size:13px}.login-face-enable{align-items:center;gap:.65rem;min-height:2.5rem;margin:.85rem 0 .35rem;font-size:1rem;display:flex}.login-face-enable input{flex-shrink:0;width:1.25rem;height:1.25rem}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes pulse-ready{0%,to{box-shadow:0 0 #4e9fd173}50%{box-shadow:0 0 0 10px #4e9fd100}}.ready-pulse{animation:1.8s infinite pulse-ready}.error{color:#ff8a80;margin:.5rem 0}.alarm-banner{border-bottom:1px solid var(--border);text-align:left;flex-wrap:nowrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;min-height:0;max-height:2.75rem;padding:.35rem 1rem;font-size:.9rem;line-height:1.25;display:flex}.alarm-banner.fault{color:#ffcdd2;background:#b423288c;border-color:#c62828}.alarm-banner.warning{color:#ffe082;background:#b4781473;border-color:#f9a825}.alarm-banner-main{flex-wrap:nowrap;align-items:center;gap:.5rem;min-width:0;display:flex;overflow:hidden}.alarm-banner-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.alarm-banner-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.alarm-banner-actions .btn,.alarm-banner-actions a,.alarm-banner-actions button{transform:none}.alarm-popup{z-index:40;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.alarm-popup-card{border-radius:var(--radius);color:#ffe082;text-align:left;background:#3a2a0c;border:1px solid #f9a825;width:min(28rem,100vw - 2rem);padding:1.25rem 1.4rem}.alarm-popup-card strong{letter-spacing:.04em;margin-bottom:.5rem;display:block}.alarm-popup-card p{margin:0 0 .75rem}.alarm-popup-card button{min-height:2.4rem}.muted{color:var(--text-muted)}.live-camera{border:1px solid var(--border);border-radius:var(--radius);min-height:var(--camera-min-h);background:#00000059;flex-direction:column;flex:auto;margin:0;display:flex;overflow:hidden}.live-camera-toolbar{border-bottom:1px solid var(--border);background:#0b1f33d9;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.5rem;padding:clamp(.3rem,.7vh,.55rem) .75rem;display:flex}.live-camera-toolbar select{width:auto;min-width:8rem}.live-camera-frame{background:#050b12;flex:auto;place-items:center;min-height:0;display:grid;position:relative;overflow:hidden}.live-camera-frame img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;touch-action:none;background:#000;display:block}.live-camera-stage{will-change:transform;line-height:0;transition:transform .12s;display:inline-block;position:relative}.live-camera-frame[data-panning="1"] .live-camera-stage,.live-camera-frame:not([data-zoom="1"]) .live-camera-stage{transition:none}.cal-dot-svg{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.cal-dot circle{fill:none;stroke:#1f8a4c;vector-effect:non-scaling-stroke;stroke-width:2.6px}.cal-dot line{stroke:#1f8a4c;vector-effect:non-scaling-stroke;stroke-width:2px;stroke-linecap:round}.fail-region-layer{pointer-events:none;z-index:2;position:absolute;inset:0}.fail-region-hud{pointer-events:none;z-index:4;position:absolute;inset:0;overflow:visible}.fail-region-hud-svg,.fail-region-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.fail-region-box{fill:#c0392b38;stroke:var(--mesco-fail);stroke-width:3px;vector-effect:non-scaling-stroke}.fail-region-box[data-pass="1"]{fill:#1f8a4c33;stroke:var(--mesco-pass)}.fail-region-line{stroke:var(--mesco-fail);stroke-width:3px;stroke-linecap:square;vector-effect:non-scaling-stroke}.fail-region-line[data-pass="1"]{stroke:var(--mesco-pass)}.fail-region-witness{stroke:var(--mesco-fail);stroke-width:2px;stroke-dasharray:6 5;fill:none;vector-effect:non-scaling-stroke}.fail-region-witness[data-pass="1"]{stroke:var(--mesco-pass)}.fail-region-edge{fill:none;stroke:var(--mesco-fail);stroke-width:6px}.fail-region-edge[data-pass="1"]{stroke:var(--mesco-pass)}.fail-region-leader{stroke:var(--mesco-fail);stroke-linecap:round}.fail-region-leader[data-pass="1"]{stroke:var(--mesco-pass)}.fail-region-arrow{fill:var(--mesco-fail)}.fail-region-arrow[data-pass="1"]{fill:var(--mesco-pass)}.fail-region-mark{pointer-events:none;width:1.5rem;height:1.5rem;margin-top:-.75rem;margin-left:-.75rem;position:absolute}.fail-region-dot{background:var(--mesco-fail);border:2px solid #fff;border-radius:50%;width:14px;height:14px;margin:5px auto 0;display:block}.fail-region-dot[data-pass="1"]{background:var(--mesco-pass)}.fail-region-lbl-park{pointer-events:none;z-index:3;position:absolute}.fail-region-lbl-park[data-side=right]{transform:translate(calc(-100% - 8px),-50%)}.fail-region-lbl-park[data-side=left]{transform:translate(8px,-50%)}.fail-region-lbl-park[data-side=top]{transform:translate(-50%,8px)}.fail-region-lbl-park[data-side=bottom]{transform:translate(-50%,calc(-100% - 8px))}.fail-region-lbl{color:#ff8a80;white-space:normal;background:#111;border-radius:4px;max-width:16rem;padding:.1rem .4rem;font-size:.75rem;font-weight:700;line-height:1.25;display:block}.fail-region-lbl[data-pass="1"]{color:#c8f5d8;border:1px solid var(--mesco-pass);background:#0d3b24}.dim-point-layer{pointer-events:none;position:absolute;inset:0}.dim-point-svg{color:#3d9eff;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.dim-crosshair{pointer-events:auto;cursor:grab;z-index:4;background:0 0;border:0;width:3.25rem;height:3.25rem;margin-top:-1.625rem;margin-left:-1.625rem;padding:0;position:absolute}button.dim-crosshair,button.dim-crosshair:hover,button.dim-crosshair:hover:not(:disabled),button.dim-crosshair:active,button.dim-crosshair:focus{box-shadow:none;background:0 0;border:0;min-height:0;transform:none}.dim-crosshair:active{cursor:grabbing}.dim-point-layer[data-dragging="1"] .dim-crosshair{opacity:.18}.dim-crosshair-v,.dim-crosshair-h{background:#ffe14a;position:absolute;box-shadow:0 0 0 1px #111,0 0 8px #000}.dim-crosshair-v{width:2px;height:100%;top:0;left:50%;transform:translate(-50%)}.dim-crosshair-h{width:100%;height:2px;top:50%;left:0;transform:translateY(-50%)}.dim-crosshair-dot{background:#ff2d2d;border:2px solid #fff;border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #111}.dim-crosshair-lbl{color:#ffe14a;transform-origin:50%;background:#111;border-radius:4px;min-width:1.1rem;padding:0 .25rem;font-size:.75rem;font-weight:700;line-height:1.25;position:absolute;top:calc(50% + 10px);left:calc(50% + 10px)}.dim-check-toggle{flex-wrap:wrap;align-items:stretch;gap:.5rem;display:flex}.dim-check-toggle>button{flex:7rem}.live-pan-nudge{align-items:center;gap:.2rem;display:inline-flex}.live-zoom{color:var(--text-muted);white-space:nowrap;align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.live-shutter-row{flex-wrap:wrap;flex:100%;align-items:center;gap:.55rem;display:flex}.live-shutter{color:var(--mesco-white);white-space:nowrap;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel);align-items:center;gap:.4rem;padding:.15rem .45rem;font-size:.85rem;font-weight:700;display:inline-flex}.live-shutter input[type=range]{width:clamp(6rem,14vw,10rem);accent-color:var(--mesco-gold)}.live-shutter-ms{font-variant-numeric:tabular-nums;min-width:3.2rem}.live-zoom input[type=range]{width:clamp(5rem,12vw,9rem);accent-color:var(--mesco-sky)}.live-zoom-btn{min-width:var(--btn-min-height)}.live-camera.compact,.wizard-shell .live-camera,.wizard-shell .live-camera.compact{min-height:var(--camera-min-h);flex:none;max-height:none}.live-camera-frame,.wizard-shell .live-camera-frame{min-height:calc(var(--camera-min-h) - 3.25rem)}.live-camera-placeholder{text-align:center;padding:clamp(1rem,4vh,2.5rem) 1rem}.home-page{gap:.35rem;min-height:0;overflow:hidden}.home-page>h1{margin-bottom:0}.home-page>p{margin:0}.home-page .home-actions{flex-wrap:wrap;flex-shrink:0;gap:.5rem;display:flex}.home-page .live-camera,.live-page .live-camera{min-height:var(--camera-min-h);flex:auto;margin-top:.25rem}@media (height<=720px){:root{--camera-min-h:max(62vh, calc(100dvh - 9rem))}.home-page>p:not(.muted){display:none}}.live-badge{font-family:var(--font-display);letter-spacing:.08em;color:#fff;background:var(--mesco-fail);border-radius:2px;padding:.15rem .5rem;font-size:.85rem;animation:1.4s infinite pulse-ready}.live-meta{font-size:.85rem}.live-page{min-height:0;overflow:hidden}.live-page .live-camera{margin-top:.5rem}.live-page>p.muted{margin:0 0 .35rem;font-size:.9em}.barcode-read-bar{border-bottom:1px solid var(--border);background:#0b1f33e6;flex-shrink:0;min-height:2.1rem;padding:.35rem .75rem}.barcode-read-bar p{margin:0;font-size:.95rem}.barcode-read-bar.ok{background:var(--mesco-pass);color:#fff}.barcode-read-bar.ok .muted{color:#fffc}.barcode-read-bar.fail{background:var(--mesco-fail);color:#fff}.barcode-output{letter-spacing:.02em;-webkit-user-select:text;user-select:text;background:#00000047;border-radius:2px;margin-left:.65rem;padding:.1rem .45rem;font-size:1.05rem;display:inline-block}.barcode-roi-layer{z-index:2;cursor:crosshair;touch-action:none;position:absolute;inset:0}.inspect-win-box,.inspect-win-draft{pointer-events:none;z-index:2;background:#ffe14a1a;border:2px solid #ffe14a;position:absolute}.inspect-win-box.with-end-rois{background:0 0;border-style:dashed;border-color:#ffe14a8c}.dim-end-roi,.dim-found-edge{pointer-events:none}.dim-edge-status{z-index:5;letter-spacing:.03em;pointer-events:none;border-radius:3px;padding:.15rem .45rem;font-size:.8rem;font-weight:700;position:absolute;top:.6rem;left:.6rem}.dim-edge-status.found{color:#fff;background:#1f8a4c}.dim-edge-status.missing{background:var(--mesco-fail);color:#fff}.inspect-win-box.editable{pointer-events:none;cursor:default}.inspect-win-rail{pointer-events:auto;touch-action:none;cursor:move;position:absolute}.inspect-win-rail.n{height:1.1rem;top:-.55rem;left:.7rem;right:.7rem}.inspect-win-rail.s{height:1.1rem;bottom:-.55rem;left:.7rem;right:.7rem}.inspect-win-rail.e{width:1.1rem;top:.7rem;bottom:.7rem;right:-.55rem}.inspect-win-rail.w{width:1.1rem;top:.7rem;bottom:.7rem;left:-.55rem}.inspect-win-handle{width:1.15rem;height:1.15rem;box-shadow:none;pointer-events:auto;touch-action:none;background:0 0;border:none;position:absolute}.inspect-win-handle:after{content:"";pointer-events:none;background:#ffe14a;border:1px solid #111;width:.35rem;height:.35rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #fff}.inspect-win-handle.nw{cursor:nwse-resize;top:0;left:0;transform:translate(-50%,-50%)}.inspect-win-handle.ne{cursor:nesw-resize;top:0;right:0;transform:translate(50%,-50%)}.inspect-win-handle.se{cursor:nwse-resize;bottom:0;right:0;transform:translate(50%,50%)}.inspect-win-handle.sw{cursor:nesw-resize;bottom:0;left:0;transform:translate(-50%,50%)}.inspect-win-handle.n{cursor:ns-resize;top:0;left:50%;transform:translate(-50%,-50%)}.inspect-win-handle.s{cursor:ns-resize;bottom:0;left:50%;transform:translate(-50%,50%)}.inspect-win-handle.e{cursor:ew-resize;top:50%;right:0;transform:translate(50%,-50%)}.inspect-win-handle.w{cursor:ew-resize;top:50%;left:0;transform:translate(-50%,-50%)}.inspect-win-handle.rot{cursor:grab;top:0;left:50%;transform:translate(-50%,calc(-100% - 1.25rem))}.inspect-win-handle.rot:after{border-radius:50%}.inspect-win-handle.rot:before{content:"";background:#ffe14a;width:2px;height:1.25rem;position:absolute;top:calc(50% + .18rem);left:50%;transform:translate(-50%)}.inspect-win-draft{border-style:dashed}.barcode-roi-box{pointer-events:none;background:#f5c5181f;border:2px solid #f5c518;position:absolute;box-shadow:0 0 0 1px #0006}.barcode-roi-box.ok{background:#1f8a4c47;border-color:#7dffa0}.barcode-roi-box.fail{background:#c0392b47;border-color:#ff8a7a}.main .table-wrap,.main .scroll-region{flex:auto;min-height:0;overflow:auto}@media (width<=1280px){:root{--camera-min-h:min(42vh, 18rem);--btn-min-height:2.5rem}html,body,#root{height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden}.app-shell{height:100%;min-height:0;max-height:100dvh;overflow:hidden}.home-page,.live-page{overflow:visible}.topbar{padding:.5rem .7rem;padding-top:max(.5rem, env(safe-area-inset-top));z-index:22;flex-wrap:wrap;position:sticky;top:0}.alarm-banner{z-index:21;position:sticky}.brand-block .tag{display:none}.nav{flex-wrap:wrap;gap:.35rem;width:100%;margin-left:0}.nav a,.nav button{min-height:2.5rem;padding:.45rem .7rem;font-size:.95rem}.main{-webkit-overflow-scrolling:touch;padding:.7rem .7rem max(1rem, env(safe-area-inset-bottom));overflow:auto}.main>*{flex:none;overflow:visible}.login-page{-webkit-overflow-scrolling:touch;height:100%;max-height:100dvh;padding-top:max(1rem, env(safe-area-inset-top));place-items:start center;overflow-y:auto}.login-card{width:100%}input,select,textarea{font-size:16px}.panel{overflow-x:auto}.table{min-width:36rem}.img-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.touch-kb{display:none!important}body.touch-kb-open .main,body.touch-kb-open .login-page{padding-bottom:.7rem}}@media (height<=700px){.brand-block .tag{display:none}.alarm-banner{max-height:2.25rem;font-size:.8rem}}body.touch-kb-open .main,body.touch-kb-open .login-page{padding-bottom:min(42vh,22rem)}.touch-kb{z-index:40;border-top:1px solid var(--border);background:#061422f7;padding:.45rem .55rem .65rem;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 40px #00000073}.touch-kb-bar{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.touch-kb-preview{background:var(--mesco-navy-deep);border:1px solid var(--border);border-radius:var(--radius);letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;min-height:2.4rem;padding:.45rem .7rem;font-size:1.15rem;overflow:hidden}.touch-kb-bar .ghost{flex-shrink:0}.touch-kb-row{justify-content:center;gap:.35rem;margin-bottom:.35rem;display:flex}.touch-kb-key{text-transform:none;background:var(--mesco-steel);min-width:2.4rem;min-height:3.1rem;color:var(--text);border:1px solid var(--border);touch-action:manipulation;-webkit-user-select:none;user-select:none;flex:1 1 0;padding:.25rem .2rem;font-size:1.2rem;font-weight:700}.touch-kb-key:active,.touch-kb-key.on{background:var(--mesco-sky)}.touch-kb-key.wide{flex:1.4 1 0}.touch-kb-key.space{flex:3.2 1 0}.touch-kb-key.shift{flex:1.2 1 0}.touch-kb-key.primary{background:var(--mesco-accent)}.touch-kb.keypad .touch-kb-key{max-width:7rem;min-height:3.6rem;font-size:1.45rem}.point-rack-wrap{justify-content:center;width:100%;display:flex}.point-rack{background:linear-gradient(#5a5d61 0 7px,#0000 7px),#323538;border-radius:2px;justify-content:center;align-items:flex-end;gap:2px;width:fit-content;max-width:100%;margin-inline:auto;padding:1.05rem .7rem .65rem;display:flex;overflow-x:auto;box-shadow:inset 0 1px #7a7d81}.point-slot{color:#1b1c1e;background:#eceef0;border:1px solid #8d9196;border-radius:3px 3px 2px 2px;flex-direction:column;flex:0 0 4.35rem;min-height:18.2rem;padding:0;display:flex;position:relative;overflow:hidden;box-shadow:0 6px 14px #00000061}a.point-slot{color:#1b1c1e;cursor:pointer;text-decoration:none}a.point-slot:hover,a.point-slot:focus-visible{outline:2px solid var(--mesco-gold);outline-offset:2px}.point-slot.role-adapter{background:#4e5155;flex-basis:13.4rem;min-height:19.2rem}.point-slot.status-offline{opacity:.82}.point-aentr{flex:1;grid-template-columns:1fr 1.08fr;min-height:0;display:grid}.point-aentr-base{color:#d4d6d9;background:#4a4d51;flex-direction:column;align-items:center;gap:.38rem;padding:.5rem .38rem .45rem;display:flex}.point-aentr-dials{gap:.28rem;display:flex}.point-aentr-dials span{background:#161616;border-radius:50%;width:.92rem;height:.92rem;position:relative;box-shadow:inset 0 0 0 2px #2a2a2a}.point-aentr-dials span:after{content:"9";color:#c8c8c8;place-items:center;font-size:.55rem;display:grid;position:absolute;inset:0}.point-aentr-link{text-align:center;letter-spacing:.01em;color:#c5c7ca;margin:0;font-size:.48rem;line-height:1.15}.point-aentr-ip{writing-mode:vertical-rl;color:#2a2c2e;letter-spacing:.14em;background:#f4f5f6;min-height:4.4rem;padding:.5rem .22rem;font-size:.52rem;font-weight:700;transform:rotate(180deg)}.point-slot-rj45{background:#141414;border:2px solid #2c2c2c;border-radius:2px;width:1.85rem;height:1.2rem;position:relative}.point-slot-rj45:after{content:"";background:#2a2a2a;height:38%;position:absolute;bottom:0;left:18%;right:18%}.point-aentr-face{background:#eceef0;flex-direction:column;min-height:0;padding:.38rem .32rem 0;display:flex}.point-aentr-brand{letter-spacing:.04em;color:#5a5d61;margin:0;font-size:.48rem}.point-aentr-cat{letter-spacing:.02em;margin:.08rem 0 0;font-size:.62rem;font-weight:700}.point-slot-wordmark{font-family:var(--font-display);letter-spacing:.04em;color:#1b1c1e;margin:.12rem 0 0;font-size:1.05rem}.point-aentr-leds{flex-direction:column;gap:.26rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.point-aentr-leds li{color:#2a2c2e;grid-template-columns:.62rem 1fr;align-items:center;gap:.28rem;font-size:.5rem;line-height:1.1;display:grid}.point-aentr-leds .point-led,.point-io-msns .point-led{width:.62rem;height:.62rem}.point-io-stripe{background:#2f6fbf;height:.45rem}.point-io-msns{color:#2a2c2e;flex-direction:column;gap:.22rem;margin:.4rem .3rem 0;padding:0;font-size:.5rem;line-height:1.1;list-style:none;display:flex}.point-io-msns li{align-items:center;gap:.22rem;display:flex}.point-slot-kind{letter-spacing:.01em;color:#2a2c2e;margin:.4rem .3rem .15rem;font-size:.58rem;line-height:1.15}.point-slot-channels{font-variant-numeric:tabular-nums;color:#1b1c1e;flex-direction:column;gap:.14rem;margin:.2rem .3rem 0;padding:0;font-size:.7rem;list-style:none;display:flex}.point-slot-channels li{align-items:center;gap:.32rem;display:flex}.point-slot-channels .point-led{width:.52rem;height:.52rem}.point-io-foot{color:#f3f4f6;text-align:center;font-family:var(--font-display);letter-spacing:.08em;background:#141414;flex-direction:column;margin-top:auto;padding:.38rem .2rem .42rem;font-size:.78rem;line-height:1.05;display:flex}.point-slot-index,.point-slot-status{text-transform:uppercase;letter-spacing:.06em;color:#5a5d61;margin:.2rem .3rem 0 auto;font-size:.5rem}.point-slot.role-adapter .point-slot-index{color:#d4d6d9;margin:0;position:absolute;top:.22rem;right:.28rem}.point-slot-detail{margin:0;font-size:.72rem;line-height:1.3}.point-slot-rtb{background:#8c8f93;border-top:1px solid #6f7276;grid-template-columns:repeat(4,1fr);gap:.22rem;padding:.38rem .32rem;display:grid}.point-aentr-face .point-slot-rtb,.point-slot-rtb.vent{background:#9a9da1;grid-template-columns:1fr 1fr;margin-top:auto}.point-slot-hole{aspect-ratio:1;background:#1c1d1f;border-radius:2px;box-shadow:inset 0 1px 2px #000000b3}.point-points{flex-direction:column;gap:.35rem;margin:auto 0 0;padding:0;list-style:none;display:flex}.point-points li{align-items:center;gap:.4rem;font-size:.82rem;display:flex}.point-led{background:var(--mesco-slate);border-radius:50%;flex:none;width:.7rem;height:.7rem;box-shadow:inset 0 0 0 1px #00000059}.point-led.on,.point-led.status-ok{background:var(--mesco-pass)}.point-slot-channels .point-led.on{background:#e3b21a;box-shadow:0 0 5px #e3b21ad9}.point-led.status-simulate{background:var(--mesco-gold)}.point-led.status-fault{background:var(--mesco-fail)}@keyframes point-led-blink{50%{opacity:.12}}@keyframes point-led-rg{0%,49%{background:var(--mesco-pass)}50%,to{background:var(--mesco-fail)}}.point-led.led-flash-red{background:var(--mesco-fail);animation:1s step-end infinite point-led-blink;box-shadow:0 0 6px #c42b1cb3}.point-led.led-flash-green{background:var(--mesco-pass);animation:1s step-end infinite point-led-blink}.point-led.led-flash-rg{animation:1s step-end infinite point-led-rg}.point-led.off,.point-led.status-offline{background:var(--mesco-slate)}.point-led.unknown{box-shadow:inset 0 0 0 2px var(--mesco-slate);background:0 0}.point-points li.off{color:var(--text-muted)}.cell-io-slot-page{align-self:center;width:min(56rem,100%);max-width:56rem;margin-inline:auto}.cell-io-slot-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.cell-io-slot-head h1{margin:0 0 .35rem;font-size:1.45rem}.cell-io-slot-nav{gap:.5rem;display:flex}.cell-io-points{flex-direction:column;gap:.65rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.cell-io-points li{background:var(--mesco-navy);border:1px solid var(--mesco-slate);border-radius:6px;grid-template-columns:6.5rem 4.4rem 1fr 16rem;align-items:end;gap:.75rem;padding:.7rem .8rem;display:grid}.cell-io-point-live{font-variant-numeric:tabular-nums;align-items:center;gap:.4rem;min-height:2.6rem;font-size:.92rem;display:flex}.cell-io-point-live.on{color:var(--mesco-pass)}.cell-io-point-live.off,.cell-io-point-live.unknown{color:var(--text-muted)}.cell-io-point-id{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding-bottom:.45rem;font-size:.85rem}.cell-io-points label{color:var(--text-muted);flex-direction:column;gap:.3rem;font-size:.78rem;display:flex}.cell-io-points input,.cell-io-points select{min-height:2.6rem;font-size:1rem}@media (width<=720px){.cell-io-points li{grid-template-columns:1fr}}.brand-setup-overlay{z-index:40;background:color-mix(in srgb, var(--mesco-navy-deep) 82%, transparent);justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.brand-setup-overlay .panel{width:100%;max-width:32rem}.agent-page .agent-log{background:var(--mesco-navy);border:1px solid var(--mesco-slate);border-radius:6px;flex-direction:column;gap:.75rem;min-height:12rem;max-height:28rem;padding:.75rem;display:flex;overflow:auto}.agent-msg pre{white-space:pre-wrap;font:inherit;margin:.35rem 0 0}.agent-traces{color:var(--text-muted);margin:.75rem 0;padding:0;font-size:.85rem;list-style:none}.agent-traces li{flex-wrap:wrap;gap:.4rem .65rem;padding:.2rem 0;display:flex}.agent-traces .fail{color:var(--mesco-fail,#c44)}.agent-traces .edit{color:var(--mesco-pass,#2a8)}.agent-traces .status{font-style:italic}.agent-live .current{opacity:.85}.agent-step-label{font-weight:600}.agent-step-detail{color:var(--text-muted)}.theme-buttons{flex-wrap:wrap;gap:.6rem;display:flex}.agent-form{flex-direction:column;gap:.6rem;display:flex}.agent-form textarea{min-height:4.5rem;font-size:1rem}.agent-page .inspect-status{margin:0}
