:root{--ink:#10233f;--muted:#68758a;--line:#dce4ee;--blue:#0c67e8;--blue-dark:#074aaf;--panel:#fff;--canvas:#f4f7fb;--high:#168a5b;--high-bg:#eaf8f1;--medium:#b66a00;--medium-bg:#fff5dc;--low:#c23c3c;--low-bg:#fff0ef}*{box-sizing:border-box}body{background:var(--canvas);color:var(--ink);font-family:var(--font-geist-sans), "Noto Sans TC", Arial, sans-serif;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{border-bottom:1px solid var(--line);z-index:10;background:#fff;align-items:center;height:72px;padding:0 32px;display:flex;position:sticky;top:0}.brand-mark{color:#fff;background:var(--blue);letter-spacing:-.04em;border-radius:10px;place-items:center;width:38px;height:38px;font-size:13px;font-weight:800;display:grid;box-shadow:inset 0 0 0 1px #ffffff38,0 5px 14px #0c67e838}.brand-copy{flex-direction:column;margin-left:11px;display:flex}.brand-copy strong{letter-spacing:-.02em;font-size:16px}.brand-copy span{color:var(--muted);margin-top:2px;font-size:11px}.topbar-spacer{flex:1}.system-state{color:#4d5b70;margin-right:22px;font-size:12px}.system-state span{background:#25a66c;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block;box-shadow:0 0 0 4px #e5f6ee}.operator-button{color:#2e4667;background:#edf3fa;border:1px solid #cbd6e3;border-radius:50%;width:38px;height:38px;font-size:12px;font-weight:750}.workspace{width:min(1480px,100% - 48px);margin:0 auto;padding:38px 0 48px}.workspace-heading{justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:28px;display:flex}.eyebrow{color:var(--blue);font-family:var(--font-geist-mono), monospace;letter-spacing:.16em;margin:0 0 10px;font-size:10px;font-weight:700}.workspace-heading h1{letter-spacing:-.045em;margin:0;font-size:clamp(28px,3vw,42px);line-height:1.08}.workspace-heading>div>p:last-child{color:var(--muted);margin:10px 0 0;font-size:14px}.review-progress{text-align:right;border-left:1px solid var(--line);min-width:120px;padding-left:26px}.review-progress span{color:var(--muted);font-size:11px;display:block}.review-progress strong{color:var(--blue);font-variant-numeric:tabular-nums;font-size:27px}.review-progress small{color:#8995a5;font-size:14px}.stepper{border:1px solid var(--line);background:#e9eef5;border-radius:12px 12px 0 0;grid-template-columns:repeat(5,1fr);display:grid;overflow:hidden}.step{color:#7c8797;text-align:left;background:0 0;border:0;border-right:1px solid #d7e0ea;align-items:center;gap:12px;height:70px;padding:0 24px;display:flex;position:relative}.step:last-child{border-right:0}.step.active{color:var(--ink);background:#fff}.step:disabled{cursor:not-allowed}.step.active:after{content:"";background:var(--blue);height:3px;position:absolute;bottom:0;left:0;right:0}.step b{font-family:var(--font-geist-mono), monospace;color:#9ba6b5;font-size:12px}.step.active b{color:var(--blue)}.step span{font-size:13px;font-weight:680}.step small{color:#9aa5b4;text-transform:uppercase;letter-spacing:.08em;margin-top:3px;font-size:9px;font-weight:450;display:block}.main-grid{border:1px solid var(--line);background:var(--panel);border-top:0;border-radius:0 0 14px 14px;grid-template-columns:330px minmax(0,1fr);min-height:620px;display:grid;overflow:hidden;box-shadow:0 15px 40px #1f395712}.upload-panel{border-right:1px solid var(--line);background:#f8fafc;padding:26px}.panel-heading{align-items:center;gap:12px;display:flex}.panel-number{width:28px;height:28px;color:var(--blue);font:700 11px var(--font-geist-mono), monospace;background:#e7f0fd;border-radius:7px;place-items:center;display:grid}.panel-heading h2{margin:0;font-size:14px}.panel-heading p{color:#8a95a4;margin:3px 0 0;font-size:10px}.dropzone{text-align:center;background:#fff;border:1.5px dashed #9eb5d1;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-height:205px;margin-top:22px;padding:24px;transition:all .2s;display:flex;position:relative;overflow:hidden}.dropzone:hover,.dropzone:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 4px #e9f2fe}.upload-icon{width:44px;height:44px;color:var(--blue);background:#e9f2ff;border-radius:50%;place-items:center;margin-bottom:14px;font-size:23px;display:grid}.dropzone strong{font-size:13px}.dropzone>span{color:#8a96a6;white-space:nowrap;text-overflow:ellipsis;max-width:220px;margin-top:6px;font-size:11px;overflow:hidden}.dropzone em{color:var(--blue);margin-top:12px;font-size:10px;font-style:normal;font-weight:650}.scan-line{background:linear-gradient(90deg, transparent, var(--blue), transparent);height:2px;box-shadow:0 0 12px var(--blue);animation:1.2s ease-in-out infinite scan;position:absolute;top:20%;left:18px;right:18px}@keyframes scan{0%,to{opacity:.25;top:18%}50%{opacity:1;top:82%}}.sample-button{width:100%;color:var(--blue);background:0 0;border:0;padding:13px;font-size:11px;font-weight:650}.file-card{border:1px solid var(--line);background:#fff;border-radius:9px;align-items:center;gap:10px;margin-top:12px;padding:10px;display:flex}.file-card>span{font:700 9px var(--font-geist-mono), monospace;color:#49617e;background:#ecf2fa;border-radius:5px;padding:7px 6px}.file-card div{flex:1;min-width:0}.file-card strong,.file-card small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.file-card strong{font-size:10px}.file-card small{color:#8b96a5;margin-top:3px;font-size:9px}.file-card b{color:var(--high)}.confidence-guide{border-top:1px solid var(--line);margin-top:30px;padding-top:20px}.confidence-guide h3{color:#66748a;text-transform:uppercase;letter-spacing:.08em;margin:0 0 14px;font-size:11px}.confidence-guide>div{align-items:center;gap:10px;margin-top:12px;display:flex}.confidence-guide i{border-radius:50%;width:8px;height:8px}.confidence-guide i.high{background:var(--high);box-shadow:0 0 0 4px var(--high-bg)}.confidence-guide i.medium{background:var(--medium);box-shadow:0 0 0 4px var(--medium-bg)}.confidence-guide i.low{background:var(--low);box-shadow:0 0 0 4px var(--low-bg)}.confidence-guide span{flex-direction:column;display:flex}.confidence-guide strong{font-size:10px}.confidence-guide small{color:#8b96a5;margin-top:2px;font-size:9px}.drawing-preview{background-color:#fafdff;background-image:linear-gradient(#e6eef7 1px,#0000 1px),linear-gradient(90deg,#e6eef7 1px,#0000 1px);background-size:14px 14px;border:1px solid #b9cadd;border-radius:10px;place-items:center;height:225px;margin-top:22px;display:grid;position:relative;overflow:hidden}.drawing-preview:before,.drawing-preview:after{content:"";background:#a6b8cc;position:absolute}.drawing-preview:before{width:1px;top:24px;bottom:24px;left:50%}.drawing-preview:after{height:1px;top:50%;left:24px;right:24px}.bobbin{z-index:1;justify-content:center;align-items:center;width:184px;height:74px;display:flex;position:relative}.bobbin i{background:#f8fcff;border:2px solid #486c95;width:16px;height:106px;position:absolute}.bobbin i:first-child{left:7px}.bobbin i:nth-child(2){right:7px}.bobbin span{background:repeating-linear-gradient(90deg,#dce9f7 0 2px,#f6faff 2px 6px);border:2px solid #486c95;border-radius:4px;width:156px;height:53px}.bobbin b{border:2px solid var(--blue);background:#fff;border-radius:50%;width:42px;height:42px;position:absolute}.dimension{z-index:2;font:700 9px var(--font-geist-mono), monospace;color:#4f6681;background:#fafdff;padding:2px 5px;position:absolute}.dimension.top{top:27px}.dimension.bottom{bottom:26px}.drawing-summary{margin:20px 0 0}.drawing-summary div{border-bottom:1px solid #e2e8f0;justify-content:space-between;gap:12px;padding:10px 0;display:flex}.drawing-summary dt{color:#7f8c9d;font-size:10px}.drawing-summary dd{color:#2e435f;font:700 10px var(--font-geist-mono), monospace;margin:0}.back-link{color:var(--blue);background:0 0;border:0;padding:17px 0;font-size:10px;font-weight:700}.dynamic-simulation{background:#fafdff;border:1px solid #b8c9dc;border-radius:10px;margin-top:22px;overflow:hidden;box-shadow:inset 0 0 0 1px #fff}.dynamic-simulation.invalid{border-color:#dc9c9c}.simulation-toolbar{background:#f4f8fc;border-bottom:1px solid #dce5ef;justify-content:space-between;align-items:center;height:32px;padding:0 10px;display:flex}.simulation-toolbar span,.simulation-toolbar b{font:700 7px var(--font-geist-mono), monospace;letter-spacing:.1em}.simulation-toolbar span{color:var(--blue)}.simulation-toolbar b{color:var(--high)}.dynamic-simulation.invalid .simulation-toolbar b{color:var(--low)}.dynamic-simulation svg{width:100%;height:auto;display:block}.dynamic-simulation svg text{fill:#53677f;font:700 8px var(--font-geist-mono), monospace}.dynamic-simulation svg .direction-label{fill:var(--blue);font-size:10px}.simulation-stats{border-top:1px solid #dce5ef;grid-template-columns:repeat(3,1fr);display:grid}.simulation-stats span{text-align:center;color:#7e8c9e;border-right:1px solid #dce5ef;padding:9px 4px;font-size:7px}.simulation-stats span:last-child{border-right:0}.simulation-stats b{color:#304966;font:800 10px var(--font-geist-mono), monospace;margin-bottom:2px;display:block}.results-panel{flex-direction:column;min-width:0;display:flex}.results-topline{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:80px;padding:20px 25px;display:flex}.score-summary{gap:7px;display:flex}.score-summary span{border-radius:99px;padding:5px 9px;font-size:10px;font-weight:700}.score-summary .high{background:var(--high-bg);color:var(--high)}.score-summary .medium{background:var(--medium-bg);color:var(--medium)}.score-summary .low{background:var(--low-bg);color:var(--low)}.filter-row{border-bottom:1px solid var(--line);background:#fbfcfe;gap:3px;padding:10px 24px;display:flex}.filter-row button{color:#7c899b;background:0 0;border:0;border-radius:6px;padding:7px 12px;font-size:10px;font-weight:650}.filter-row button.active{color:var(--blue);background:#e9f2ff}.empty-state{text-align:center;color:#8793a3;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:400px;display:flex}.empty-state h3{color:#4e5f76;margin:16px 0 5px;font-size:14px}.empty-state p{margin:0;font-size:11px}.blueprint-symbol{background-image:linear-gradient(#edf3f9 1px,#0000 1px),linear-gradient(90deg,#edf3f9 1px,#0000 1px);background-size:10px 10px;border:1px solid #bbcadb;width:94px;height:70px;position:relative}.blueprint-symbol span{border:2px solid #8ba6c4;border-radius:50%;width:34px;height:34px;position:absolute;top:18px}.blueprint-symbol span:first-child{left:13px}.blueprint-symbol span:nth-child(2){right:13px}.blueprint-symbol span:last-child{border-color:var(--blue);width:22px;height:22px;top:24px;left:35px}.field-list{flex:1}.field-header,.field-row{grid-template-columns:1.25fr 1.55fr .8fr .9fr 52px;align-items:center;gap:12px;display:grid}.field-header{color:#8a96a5;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);background:#f7f9fc;height:38px;padding:0 24px;font-size:9px}.field-row{border-bottom:1px solid #e8edf3;min-height:66px;padding:9px 24px;position:relative}.field-row:before{content:"";border-radius:0 3px 3px 0;width:3px;position:absolute;top:10px;bottom:10px;left:0}.field-row.high:before{background:var(--high)}.field-row.medium:before{background:var(--medium)}.field-row.low:before{background:var(--low)}.field-name strong,.field-name small{display:block}.field-name strong{font-size:11px}.field-name small{color:#929dac;margin-top:3px;font-size:9px}.value-editor{background:#fff;border:1px solid #d5dfeb;border-radius:6px;align-items:center;min-width:0;height:34px;transition:all .15s;display:flex}.value-editor:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #e8f1fe}.value-editor input{color:#233952;background:0 0;border:0;outline:0;width:100%;min-width:0;height:100%;padding:0 9px;font-size:11px;font-weight:650}.value-editor span{white-space:nowrap;color:#8591a2;padding-right:8px;font-size:9px}.source-tag{color:#66778c;background:#eff3f8;border-radius:4px;justify-self:start;padding:4px 6px;font-size:9px}.confidence-score strong{font:700 11px var(--font-geist-mono), monospace}.confidence-score>span{background:#e7edf3;border-radius:3px;height:3px;margin-top:5px;display:block;overflow:hidden}.confidence-score i{border-radius:3px;height:100%;display:block}.field-row.high .confidence-score i{background:var(--high)}.field-row.medium .confidence-score i{background:var(--medium)}.field-row.low .confidence-score i{background:var(--low)}.confirm-toggle{color:#0000;background:#fff;border:1px solid #cdd8e5;border-radius:6px;width:25px;height:25px}.confirm-toggle.checked{background:var(--blue);border-color:var(--blue);color:#fff}.results-footer{border-top:1px solid var(--line);background:#fbfcfe;justify-content:space-between;align-items:center;gap:20px;min-height:70px;padding:12px 24px;display:flex}.results-footer p{color:#7e8b9c;margin:0;font-size:10px}.results-footer p span{border:1px solid #b9c7d8;border-radius:50%;place-items:center;width:17px;height:17px;margin-right:7px;font-family:serif;display:inline-grid}.results-footer button{background:var(--blue);color:#fff;border:0;border-radius:7px;padding:11px 16px;font-size:11px;font-weight:700;box-shadow:0 7px 18px #0c67e833}.results-footer button:disabled{cursor:not-allowed;box-shadow:none;background:#c7d0dc}.results-footer button span{margin-left:10px}.validation-badge{color:var(--high);background:var(--high-bg);letter-spacing:.05em;border-radius:99px;padding:7px 10px;font-size:9px;font-weight:800}.validation-badge.invalid{color:var(--low);background:var(--low-bg)}.parameter-panel,.approval-panel{background:#fff}.simulation-editor{border:1px solid var(--line);border-radius:11px;margin:22px 25px 0;overflow:hidden}.simulation-input-grid{background:#fff;grid-template-columns:repeat(4,minmax(0,1fr));padding:6px 14px 14px;display:grid}.simulation-input-grid label{min-width:0;padding:10px}.simulation-input-grid label>span{color:#344a65;min-height:28px;font-size:9px;font-weight:750;display:block}.simulation-input-grid label small{color:#99a4b2;margin-top:2px;font-size:7px;font-weight:500;display:block}.simulation-input-grid input,.simulation-input-grid select{color:#203953;background:#fff;border:1px solid #d2ddea;border-radius:6px;outline:0;width:100%;height:35px;padding:0 8px;font-size:10px;font-weight:700}.simulation-input-grid input:focus,.simulation-input-grid select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e8f1fe}.simulation-input-grid label>b{color:#9aa5b3;font:600 7px var(--font-geist-mono), monospace;margin-top:4px;display:block}.calculation-grid{grid-template-columns:repeat(3,1fr);gap:12px;padding:24px 25px 10px;display:grid}.calculation-grid article{border:1px solid var(--line);background:#fbfdff;border-radius:10px;padding:17px;position:relative;overflow:hidden}.calculation-grid article:after{content:"";border:10px solid #edf4fc;border-radius:50%;width:50px;height:50px;position:absolute;top:-13px;right:-13px}.calculation-grid article>span{color:#758398;font-size:10px;display:block}.calculation-grid article strong{color:var(--blue-dark);font-variant-numeric:tabular-nums;margin-top:8px;font-size:24px;display:block}.calculation-grid article small{color:#687890;font-size:10px}.calculation-grid article p{color:#98a3b1;font:500 8px var(--font-geist-mono), monospace;margin:6px 0 0}.calculation-grid article.invalid{background:var(--low-bg);border-color:#e6b3b3}.calculation-grid article.invalid strong,.calculation-grid article.invalid p{color:var(--low)}.parameter-section{border:1px solid var(--line);border-radius:11px;margin:15px 25px 0;overflow:hidden}.section-title{border-bottom:1px solid var(--line);background:#f8fafc;justify-content:space-between;align-items:center;padding:15px 18px;display:flex}.section-title h3,.machine-checks h3{margin:0;font-size:12px}.section-title p{color:#8c98a7;margin:3px 0 0;font-size:9px}.section-title>span{color:var(--blue);font:700 8px var(--font-geist-mono), monospace;letter-spacing:.08em}.parameter-row{border-bottom:1px solid #e8edf3;grid-template-columns:1.1fr 1.25fr .8fr .75fr;align-items:center;gap:14px;min-height:62px;padding:10px 18px;display:grid}.parameter-row:last-child{border-bottom:0}.parameter-row.attention{background:#fffcf5}.parameter-row>div strong,.parameter-row>div small{display:block}.parameter-row>div strong{font-size:10px}.parameter-row>div small{color:#939eac;margin-top:3px;font-size:8px}.parameter-row>label{background:#fff;border:1px solid #d5dfeb;border-radius:6px;align-items:center;height:34px;display:flex}.parameter-row>label:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #e8f1fe}.parameter-row>label.readonly{background:#f5f7fa}.parameter-row input{color:#233952;background:0 0;border:0;outline:0;width:100%;min-width:0;height:100%;padding:0 10px;font-size:11px;font-weight:700}.parameter-row label span{white-space:nowrap;color:#8491a2;padding-right:9px;font-size:8px}.source-tag.warning{color:var(--medium);background:var(--medium-bg)}.status-pass{color:var(--high);font-size:9px}.status-block{color:var(--low);font-size:9px}.inline-confirm{background:var(--medium-bg);color:var(--medium);border:1px solid #e4bf75;border-radius:6px;justify-self:start;padding:7px 9px;font-size:9px;font-weight:700}.inline-confirm.checked{background:var(--high-bg);color:var(--high);border-color:#9bd6bb}.inline-confirm.blocked{background:var(--low-bg);color:var(--low);cursor:not-allowed;border-color:#e1a4a4}.machine-checks{background:#f5f9fd;border-radius:10px;margin:18px 25px 24px;padding:16px 18px}.machine-checks h3{margin-bottom:8px}.machine-checks>div{color:#647389;justify-content:space-between;align-items:center;padding:6px 0;font-size:9px;display:flex}.machine-checks b{color:var(--high);font:800 8px var(--font-geist-mono), monospace}.machine-checks .failed,.machine-checks .failed b{color:var(--low)}.secondary-action{color:#66768a!important;box-shadow:none!important;background:0 0!important;border:1px solid #ccd7e3!important}.approval-content{width:100%;max-width:760px;margin:0 auto;padding:28px}.approval-summary{border-bottom:1px solid var(--line);align-items:center;gap:15px;padding-bottom:20px;display:flex}.approval-icon{background:var(--high-bg);width:44px;height:44px;color:var(--high);border-radius:50%;place-items:center;font-size:20px;font-weight:800;display:grid}.approval-summary h3{margin:0;font-size:16px}.approval-summary p{color:#7f8c9d;margin:4px 0 0;font-size:10px}.approval-checklist{border:1px solid var(--line);border-radius:10px;margin-top:16px;overflow:hidden}.approval-checklist div{border-bottom:1px solid #e8edf3;justify-content:space-between;align-items:center;min-height:45px;padding:0 15px;font-size:10px;display:flex}.approval-checklist div:last-child{border-bottom:0}.approval-checklist span{color:#617086}.approval-checklist b{color:var(--high);font-size:9px}.operator-form{grid-template-columns:1fr 1fr;gap:14px;margin-top:20px;display:grid}.operator-form label>span{color:#66758a;margin-bottom:6px;font-size:9px;font-weight:700;display:block}.operator-form input{color:#273c58;border:1px solid #d3deea;border-radius:7px;outline:0;width:100%;height:40px;padding:0 11px;font-size:11px}.operator-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e8f1fe}.operator-form input[readonly]{color:#6e7c8e;background:#f5f7fa}.approval-consent{cursor:pointer;background:#f8fbff;border:1px solid #cfdce9;border-radius:9px;align-items:flex-start;gap:11px;margin-top:20px;padding:15px;display:flex}.approval-consent input{width:16px;height:16px;accent-color:var(--blue);margin:1px 0 0}.approval-consent span{flex-direction:column;display:flex}.approval-consent strong{font-size:10px}.approval-consent small{color:#8591a1;margin-top:4px;font-size:9px;line-height:1.5}.success-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:600px;padding:40px;display:flex}.success-ring{color:#fff;background:var(--high);width:76px;height:76px;box-shadow:0 0 0 12px var(--high-bg);border-radius:50%;place-items:center;margin-bottom:26px;font-size:34px;display:grid}.success-state h2{letter-spacing:-.03em;margin:0;font-size:27px}.success-state>p:not(.eyebrow){color:#778599;font-size:11px}.success-details{border:1px solid var(--line);background:#fbfcfe;border-radius:10px;grid-template-columns:repeat(3,1fr);width:min(500px,100%);margin-top:20px;display:grid}.success-details span{color:#8a96a6;border-right:1px solid var(--line);padding:14px;font-size:8px}.success-details span:last-child{border-right:0}.success-details strong{color:#324762;margin-top:5px;font-size:10px;display:block}.success-details strong.green{color:var(--high)}.success-actions{gap:10px;margin-top:22px;display:flex}.success-actions button{border:1px solid var(--blue);color:#fff;background:var(--blue);border-radius:7px;padding:10px 14px;font-size:10px;font-weight:700}.success-actions button:last-child{color:var(--blue);background:#fff}.plc-panel{background:#fff}.connection-badge{font:800 8px var(--font-geist-mono), monospace;letter-spacing:.06em;border-radius:99px;padding:7px 10px}.connection-badge.disconnected{color:#65748a;background:#edf1f5}.connection-badge.connecting{color:var(--medium);background:var(--medium-bg);animation:1s ease-in-out infinite pulse-status}.connection-badge.connected{color:var(--high);background:var(--high-bg)}@keyframes pulse-status{50%{opacity:.55}}.fat-banner{background:#fffaf0;border:1px solid #d8bd76;border-radius:8px;justify-content:space-between;align-items:center;gap:20px;margin:20px 25px 0;padding:12px 15px;display:flex}.fat-banner div{flex-direction:column;display:flex}.fat-banner strong{color:#875300;font:800 9px var(--font-geist-mono), monospace;letter-spacing:.08em}.fat-banner span{color:#8a7650;margin-top:3px;font-size:8px}.fat-banner>b{white-space:nowrap;color:var(--medium);font:800 8px var(--font-geist-mono), monospace}.plc-layout{grid-template-columns:1.5fr 1fr;gap:14px;padding:16px 25px 0;display:grid}.plc-config-card,.safety-card,.register-section{border:1px solid var(--line);border-radius:10px;overflow:hidden}.plc-config-grid{grid-template-columns:1.3fr 1.3fr 1fr 1fr;gap:10px;padding:14px;display:grid}.plc-config-grid label{min-width:0}.plc-config-grid label>span{color:#627287;margin-bottom:5px;font-size:8px;font-weight:700;display:block}.plc-config-grid input,.plc-config-grid select{color:#28405c;background:#fff;border:1px solid #d1dce8;border-radius:6px;outline:0;width:100%;height:35px;padding:0 8px;font-size:9px;font-weight:650}.plc-config-grid input:focus,.plc-config-grid select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #e8f1fe}.connect-button{border:1px solid var(--blue);height:35px;color:var(--blue);background:#eef5ff;border-radius:6px;grid-column:3/5;align-self:end;font-size:9px;font-weight:750}.connect-button.connecting{color:var(--medium);background:var(--medium-bg);border-color:#d9a846}.connect-button.connected{color:var(--high);background:var(--high-bg);border-color:#8acbad}.interlock-list{padding:7px 14px}.interlock-list>div{color:#617086;border-bottom:1px solid #e8edf3;justify-content:space-between;align-items:center;gap:10px;min-height:32px;font-size:8px;display:flex}.interlock-list>div:last-child{border-bottom:0}.interlock-list b{font:800 7px var(--font-geist-mono), monospace}.interlock-list b.ok{color:var(--high)}.interlock-list b.blocked{color:var(--medium)}.interlock-list code{color:#25517c;font:800 9px var(--font-geist-mono), monospace}.register-section{margin:16px 25px 0}.register-table{min-width:720px}.register-header,.register-row{grid-template-columns:1fr 1.8fr .65fr 1.25fr .8fr;align-items:center;gap:12px;display:grid}.register-header{color:#8a96a5;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line);background:#f5f8fb;min-height:34px;padding:0 15px;font-size:7px;font-weight:750}.register-row{border-bottom:1px solid #e8edf3;min-height:44px;padding:7px 15px}.register-row:last-child{border-bottom:0}.register-row.control-row{background:#f8fbff}.register-row code{color:#174d85;font:800 9px var(--font-geist-mono), monospace}.register-row div strong,.register-row div small{display:block}.register-row div strong{color:#334a65;font-size:9px}.register-row div small{color:#98a2af;font:600 7px var(--font-geist-mono), monospace;margin-top:2px}.register-row>span{color:#7a8899;font:700 7px var(--font-geist-mono), monospace}.register-row>b{color:#304964;font:700 8px var(--font-geist-mono), monospace}.register-row em{font:800 6px var(--font-geist-mono), monospace;border-radius:99px;justify-self:start;padding:4px 6px;font-style:normal}.register-row em.pending{color:#8793a2;background:#eef2f6}.register-row em.reading{color:var(--medium);background:var(--medium-bg)}.register-row em.verified{color:var(--high);background:var(--high-bg)}.transfer-console{background:#f8fafc;border:1px solid #d5dfeb;border-radius:10px;margin:16px 25px 20px;padding:15px}.transfer-console.success{background:#f5fcf8;border-color:#97cfb5}.transfer-console.failed{background:#fff8f7;border-color:#e4a4a4}.transfer-head{justify-content:space-between;align-items:center;gap:20px;display:flex}.transfer-head div{flex-direction:column;display:flex}.transfer-head strong{font-size:10px}.transfer-head span{color:#8b96a4;font:600 7px var(--font-geist-mono), monospace;margin-top:3px}.transfer-head>b{color:#6b798c;font:800 8px var(--font-geist-mono), monospace}.transfer-console.success .transfer-head>b{color:var(--high)}.transfer-console.failed .transfer-head>b{color:var(--low)}.transfer-progress{background:#e3e9f0;border-radius:5px;height:5px;margin-top:12px;overflow:hidden}.transfer-progress i{background:var(--blue);width:0;height:100%;transition:width .45s;display:block}.transfer-console.validating .transfer-progress i{width:20%}.transfer-console.writing .transfer-progress i{width:52%}.transfer-console.verifying .transfer-progress i{width:82%}.transfer-console.success .transfer-progress i{background:var(--high);width:100%}.transfer-console.failed .transfer-progress i{background:var(--low);width:100%}.transfer-steps{color:#9aa5b3;font:650 7px var(--font-geist-mono), monospace;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:9px;display:grid}.transfer-steps span.done{color:var(--high)}.transfer-success,.transfer-error{border-radius:6px;justify-content:space-between;gap:15px;margin-top:12px;padding:9px 10px;display:flex}.transfer-success{color:var(--high);background:var(--high-bg)}.transfer-error{color:var(--low);background:var(--low-bg)}.transfer-success strong,.transfer-error strong{font-size:8px}.transfer-success span,.transfer-error span{font:600 7px var(--font-geist-mono), monospace}.plc-footer>div{flex-direction:column;display:flex}.plc-footer>div strong{font-size:9px}.plc-footer>div span{color:#8793a3;margin-top:3px;font-size:7px}.send-plc-button{min-width:190px;background:#0756bd!important}.send-plc-button:disabled{background:#c7d0dc!important}@media (width<=900px){.workspace{width:min(100% - 24px,740px);padding-top:24px}.workspace-heading{align-items:flex-start}.main-grid{grid-template-columns:1fr}.upload-panel{border-right:0;border-bottom:1px solid var(--line)}.dropzone{min-height:155px}.confidence-guide{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.confidence-guide h3{grid-column:1/-1}.field-header,.field-row{grid-template-columns:1fr 1.4fr .8fr 40px}.field-header span:nth-child(3),.field-row .source-tag{display:none}.parameter-row{grid-template-columns:1fr 1.2fr .8fr}.parameter-row>.source-tag{display:none}.simulation-input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plc-layout{grid-template-columns:1fr}.plc-config-grid{grid-template-columns:1fr 1fr}.connect-button{grid-column:1/-1}.register-section{overflow-x:auto}}@media (width<=600px){.topbar{height:64px;padding:0 16px}.brand-copy span,.system-state{display:none}.workspace-heading{display:block}.review-progress{display:none}.workspace-heading>div>p:last-child{line-height:1.6}.step{justify-content:center;height:58px;padding:0 8px}.step span small,.step b{display:none}.step span{font-size:10px}.upload-panel,.results-topline{padding:20px}.confidence-guide{grid-template-columns:1fr}.confidence-guide h3{grid-column:auto}.score-summary{gap:3px}.score-summary span{padding:4px 6px}.field-header{display:none}.field-row{grid-template-columns:1fr 1fr 54px 30px;gap:7px;padding:12px 15px}.field-name strong{font-size:10px}.confidence-score strong{font-size:9px}.results-footer{flex-direction:column;align-items:stretch}.results-footer button{width:100%}.calculation-grid{grid-template-columns:1fr;padding:18px 16px 5px}.parameter-section,.machine-checks,.simulation-editor{margin-left:16px;margin-right:16px}.simulation-input-grid{grid-template-columns:1fr 1fr;padding:5px}.parameter-row{grid-template-columns:1fr 1.2fr;gap:8px;padding:11px}.parameter-row>b,.parameter-row>button{grid-column:2}.operator-form{grid-template-columns:1fr}.approval-content{padding:20px 16px}.success-details{grid-template-columns:1fr}.success-details span{border-right:0;border-bottom:1px solid var(--line)}.success-actions{flex-direction:column;width:100%}.fat-banner,.plc-layout,.register-section,.transfer-console{margin-left:14px;margin-right:14px}.fat-banner{flex-direction:column;align-items:flex-start}.plc-layout{padding-left:0;padding-right:0}.plc-config-grid{grid-template-columns:1fr}.connect-button{grid-column:auto}.transfer-steps{grid-template-columns:1fr 1fr}.transfer-success,.transfer-error{flex-direction:column}}
