/* Presentation only. Capture geometry and every inspection decision are unchanged. */
body.cx-clean{--bg:#0b111a;--panel:#111d2b;--line:#28374a;--accent:#58a6ff;--good:#58a6ff;--bad:#ff626b;--muted:#99aec5;color:#edf4fc;font-family:'Malgun Gothic','Segoe UI',sans-serif}
.cx-clean .suite-header{background:#0d1724;border-bottom-color:#29394e;gap:22px}.cx-clean .suite-brand{font-size:15px;letter-spacing:.5px}.cx-clean .suite-nav a{font-size:12px;min-width:84px;padding:0 12px}.cx-header-controls{margin-left:auto;display:flex;align-items:center;gap:8px}.cx-header-controls button{min-height:29px;font-size:11px;padding:0 10px;background:#152438;border-color:#31465f}.cx-header-controls button[aria-pressed=true]{background:#234c79;border-color:#6bb5ff}.cx-connection{font-size:11px;color:#a9b5c7;padding-right:9px;white-space:nowrap}.cx-connection:before{content:'●';color:#8094ad;margin-right:7px}.cx-connection.connected:before{color:#4ca1ff}
.cx-clean .viewer{grid-template-rows:68px minmax(0,1fr);grid-template-columns:minmax(0,53fr) minmax(380px,47fr);gap:1px;background:#263345}.cx-clean .pair{grid-row:2}.cx-clean .result-view{grid-row:2;background:#101926}.cx-clean .viewer-log{display:none!important}.cx-clean .cx-flow{grid-column:1 / -1;grid-row:1;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#29384a;z-index:8}.cx-step{background:#111e2d;display:grid;grid-template-columns:25px 1fr;align-content:center;column-gap:8px;padding:10px 20px;position:relative}.cx-step-number{grid-row:1 / 3;font-size:13px;align-self:center;color:#7391b2}.cx-step strong{font-size:12px}.cx-step-state{font-size:10px;color:#a1b2c5;margin-top:4px}.cx-step.active{background:#152e49}.cx-step.active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#58a6ff}.cx-step.warn .cx-step-state{color:#f6bc6d}
.cx-clean .detection-zone,.cx-clean .safe-zone,.cx-clean .trigger-zone{display:none}.cx-clean.cx-guides .detection-zone,.cx-clean.cx-guides .safe-zone,.cx-clean.cx-guides .trigger-zone{display:block;opacity:.5}.cx-clean .detection-zone:before,.cx-clean .safe-zone:before,.cx-clean .trigger-zone:before{content:none!important;display:none!important}.cx-clean .tag{font-size:10px;border:1px solid #44617b;background:#101c2ad9;color:#bcd8f5;border-radius:5px;letter-spacing:.4px}.cx-clean #livePreviewStatus{border:0;color:#a6bbd0;font-size:10px}.cx-clean .track-shape-label{font-size:11px;font-weight:600;padding:4px 7px;background:#122237df;box-shadow:0 2px 10px #0003}.cx-clean .track-shape-polygon{stroke-width:2}
.cx-clean .head{padding:17px 18px}.cx-clean .head h1{font-size:14px;color:#b7c9dd}.cx-clean .controls{padding:16px}.cx-clean .controls>.config-panel,.cx-clean .controls>.status,.cx-clean #modeHelp{display:none}.cx-clean .controls>.buttons{margin-top:20px;gap:7px}.cx-clean .buttons>button{min-height:36px;font-size:11px;border-radius:7px}.cx-clean .buttons>#outputToggleBtn,.cx-clean .buttons>#continuousFrameSaveBtn{display:none}.cx-clean .cx-session{padding:0 2px}.cx-overline{font:9px 'Segoe UI',sans-serif;color:#67a9ed;letter-spacing:2px;margin:0 0 12px}.cx-session h2{font-size:21px;margin:0 0 9px;letter-spacing:-.8px}.cx-queue{font-size:12px;color:#9cb1c7;margin:0 0 12px}.cx-warning{color:#f5bb6d;font-size:11px;line-height:1.6;padding:10px 11px;border:1px solid #655032;border-radius:7px;background:#5b421419}.cx-warning:empty{display:none}.cx-session h3{font-size:11px;color:#94adc8;border-top:1px solid #2a3b50;padding-top:18px;margin-top:22px;font-weight:500}.cx-empty{font-size:11px;color:#839ab3;line-height:1.6}.cx-recent-row{display:grid;grid-template-columns:46px 1fr;gap:6px;text-align:left;width:100%;padding:10px 9px!important;min-height:55px!important;border:0!important;border-bottom:1px solid #28384b!important;border-radius:0!important;background:transparent!important;font-size:11px!important}.cx-recent-row small{grid-column:2;color:#8da6bf;font-size:10px}.cx-pill{border-radius:4px;font-size:10px;padding:3px 6px;text-align:center;align-self:start}.cx-pill.ok{background:#21497b;color:#b1d7ff}.cx-pill.ng{background:#672c38;color:#ffc4cc}.cx-pill.review{background:#5a4529;color:#ffe0ad}
.cx-clean .result-toolbar{background:#111d2b;padding:10px 13px;border-bottom-color:#2c4056}.cx-clean .result-toolbar>.tag{display:none}.cx-clean .result-tab{border-radius:6px;font-size:11px;background:#192b3e;border-color:#2f4862}.cx-clean .result-tab.active{background:#24558a;border-color:#649ddb}.cx-clean .archive-filter-bar{background:#142235;border-color:#2b415b;color:#d6e8fa}.cx-clean .archive-filter-bar input,.cx-clean .archive-filter-bar select,.cx-clean .archive-filter-bar button{background:#0e1b2b;color:#c7d9ec;border-color:#344b65;font-size:10px}.cx-clean .result-list,.cx-clean .inspection-stage-list{background:#0f1927;color:#e9f3ff}.cx-clean .result-card{color:#dcecff}.cx-clean .result-card-meta{color:#89a3bf;font-size:10px}.cx-clean .result-thumb-wrap{border-width:2px;border-color:#526980;border-radius:8px;box-shadow:none;background:#14202e}.cx-clean .result-card.ok .result-thumb-wrap{border-color:#519eff}.cx-clean .result-card.ng .result-thumb-wrap{border-color:#ef6671}.cx-clean .inspection-stage-card{border:1px solid #334b64;background:#0d1723;border-radius:8px}.cx-clean .inspection-stage-copy{background:#17273b;padding:8px 10px}.cx-clean .inspection-stage-title{font-size:11px}.cx-clean .inspection-stage-list{padding-inline:12px}.cx-clean .result-view.inspection-run-open.has-stages .inspection-stage-list{padding:59px 12px 43px;gap:10px}.cx-clean .result-meta{background:#101c2b;border-color:#2a3d53;color:#9ab2cb;font-size:10px;min-height:34px;padding:8px 11px}.cx-clean .result-pagination{background:#152438;border-color:#293e58;bottom:34px}.cx-clean .result-page-button{background:#182d44;border-color:#3a5674;color:#bfd8f3}.cx-clean .result-page-button.active{background:#306195;color:#fff}.cx-clean .result-view.has-photo-surface{padding:48px 0 34px}.cx-clean .result-view.has-photo-surface .archive-filter-bar{display:none}.cx-clean .result-view.has-photo-surface .result-column-control{display:none}.cx-clean .result-card.ok .result-card-title:before{content:'정상 · ';color:#73b2ff}.cx-clean .result-card.ng .result-card-title:before{content:'불량 · ';color:#ff8691}
.cx-toasts{position:absolute;right:18px;top:58px;z-index:10;display:flex;flex-direction:column;gap:8px;width:min(310px,calc(100% - 36px));pointer-events:none}.cx-toast{display:flex;align-items:center;gap:12px;border:1px solid #37639a;border-left:4px solid #69b2ff;background:#102844ee;box-shadow:0 10px 30px #0005;border-radius:10px;padding:16px 13px;color:#e3f1ff;animation:cx-in .18s ease-out;pointer-events:auto}.cx-toast.ng{background:#441c28ee;border-color:#9f4c60;border-left-color:#ff7184;color:#ffedf0}.cx-toast.review{background:#3c301cee;border-color:#8e774a;border-left-color:#f5c474}.cx-toast-icon{font-size:22px;width:33px;height:33px;text-align:center;line-height:33px;border-radius:50%;background:#ffffff18}.cx-toast-copy{display:flex;flex-direction:column;gap:4px}.cx-toast-copy strong{font-size:22px;letter-spacing:1px}.cx-toast-copy>span{font-size:10px;opacity:.8}.cx-toast-close{border:0;background:transparent;color:inherit;padding:0;min-height:24px;width:24px;margin-left:auto;align-self:start;font-size:19px}.cx-toast.leaving{opacity:0;transform:translateY(-6px);transition:opacity .2s,transform .2s}@keyframes cx-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.cx-clean.cx-settings .controls>.config-panel{display:block}.cx-clean.cx-settings .controls>.status{display:grid}.cx-clean.cx-settings #modeHelp{display:block}.cx-clean.cx-settings .buttons>#outputToggleBtn,.cx-clean.cx-settings .buttons>#continuousFrameSaveBtn{display:inline-flex}.cx-clean.cx-settings .viewer{grid-template-rows:68px minmax(0,1fr) 140px}.cx-clean.cx-settings .viewer-log{display:block!important;grid-row:3;grid-column:1 / -1}.cx-clean.cx-settings .cx-session{display:none}.cx-clean.cx-presentation:not(.cx-settings) .app{grid-template-columns:minmax(0,1fr) 245px}.cx-clean.cx-presentation:not(.cx-settings) .controls>.buttons,.cx-clean.cx-presentation:not(.cx-settings) .head{display:none}.cx-clean.cx-presentation .suite-nav{display:none}.cx-clean.cx-presentation #livePreviewStatus{display:none}
@media(max-width:1100px){.cx-header-controls{gap:4px}.cx-header-controls button{font-size:10px;padding:0 7px}.cx-connection{display:none}.cx-step{padding:10px}.cx-clean .app{grid-template-columns:minmax(0,1fr) 260px}.cx-clean .viewer{grid-template-columns:minmax(0,1fr) minmax(320px,1fr)}}@media(prefers-reduced-motion:reduce){.cx-toast{animation:none}.cx-toast.leaving{transition:none}}
