.iw-app{--iw-green: #17604c;--iw-mist: #e4f1e9;--iw-line: #d9e3dd;background:#f3f6f3}.iw-bar{min-height:54px;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 20px;padding:10px clamp(14px,4vw,48px);color:#fff;background:#13352e}.iw-bar a{color:inherit;text-underline-offset:3px}.iw-brand{font-size:15px;font-weight:700;text-decoration:none}.iw-page{min-height:0;flex:1;overflow:auto;padding:24px clamp(12px,4vw,48px) 36px}.iw-page>*{max-width:1400px;margin-inline:auto}.iw-page h1,.iw-page h2,.iw-page h3,.iw-page h4{margin:0;line-height:1.35}.iw-page h1{font-size:clamp(24px,4vw,32px)}.iw-page h2{font-size:clamp(20px,3vw,25px)}.iw-page h3{font-size:16px}.iw-page p{margin:0}.iw-heading{margin-bottom:17px}.iw-eyebrow{color:var(--iw-green);font-weight:700;font-size:12px;letter-spacing:.06em}.iw-orders input,.iw-field select,.iw-field textarea{min-height:32px;min-width:0;padding:5px 8px;color:inherit;background:#fff;border:1px solid #aebeb4;border-radius:6px;font:inherit}.iw-order-shell{display:grid;grid-template-columns:minmax(188px,238px) minmax(0,1fr);gap:15px;align-items:start}.iw-order-shell.iw-orders-collapsed{grid-template-columns:46px minmax(0,1fr)}.iw-orders{position:sticky;top:0;display:grid;gap:9px;min-width:0;padding:12px;border:1px solid var(--iw-line);border-radius:10px;background:#fff}.iw-orders-collapsed .iw-orders{padding:6px}.iw-orders-head{display:flex;justify-content:space-between;gap:6px;align-items:center}.iw-orders-body{display:grid;gap:9px;min-width:0}.iw-orders-body[hidden]{display:none}.iw-orders-toggle.btn{flex:0 0 30px;min-height:30px;padding:0;font-size:21px;line-height:1}.iw-orders-head h2{font-size:17px}.iw-orders-head span,.iw-order-list small,.iw-product-list small{color:#53655b;font-size:12px}.iw-order-list{display:grid;gap:5px;max-height:min(56vh,620px);overflow:auto;padding:3px;margin:-3px}.iw-order-list button{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;width:100%;min-width:0;padding:6px;text-align:left;border:1px solid transparent;border-radius:6px;background:#fff;color:inherit;cursor:pointer}.iw-order-list button:hover,.iw-order-list button[aria-current]{border-color:var(--iw-green);background:var(--iw-mist)}.iw-order-list img{width:34px;height:34px;border-radius:4px;object-fit:cover;background:#f3f5f3}.iw-order-list strong,.iw-order-list small,.iw-product-list small{display:block;overflow-wrap:anywhere}.iw-order-content{min-width:0}.iw-demo-samples .btn{display:block;margin-top:6px}.iw-run-tools{display:grid;gap:10px}.iw-run-toolbar label{display:grid;gap:4px}.iw-run-toolbar .select{width:min(100%,28rem)}.iw-run-toolbar button[aria-current],.iw-run-toolbar button[aria-pressed=true]{border-color:var(--iw-green);background:var(--iw-mist)}.iw-run-tools .workflow-page,.iw-run-tools .delivery-page{padding:0;overflow:visible}.iw-element-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,330px);height:clamp(460px,66vh,760px);border:1px solid var(--iw-line)}@media (max-width: 1000px){.iw-element-editor{grid-template-columns:minmax(0,1fr);height:auto}.iw-element-editor .canvas-host{height:clamp(340px,55vh,600px)}}.iw-order-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;overflow-wrap:anywhere}.iw-order-header h1{font-size:clamp(20px,3vw,25px)}.iw-order-views{display:flex;gap:4px;padding:3px;border:1px solid var(--iw-line);border-radius:7px;background:#fff}.iw-order-views button{padding:4px 11px;border:0;border-radius:4px;background:transparent;color:inherit;cursor:pointer}.iw-order-views button:hover,.iw-order-views button[aria-current]{background:var(--iw-mist);color:var(--iw-green);font-weight:700}.iw-products{display:grid;gap:10px}.iw-product-list{list-style:none;display:grid;gap:6px;padding:0;margin:0}.iw-product-list li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px 12px;padding-top:7px;border-top:1px solid var(--iw-line);overflow-wrap:anywhere}.iw-product-list a{color:var(--iw-green);text-underline-offset:3px}.iw-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:16px}.iw-stages button{display:flex;align-items:center;gap:8px;min-height:50px;padding:8px 10px;color:#172b25;background:#fff;border:1px solid var(--iw-line);border-radius:8px;text-align:left;font-weight:700;cursor:pointer}.iw-stages button:hover,.iw-stages button[aria-current]{border-color:var(--iw-green)}.iw-stages button[aria-current]{background:var(--iw-mist)}.iw-stages button>span{display:grid;flex:0 0 28px;min-height:28px;place-items:center;border-radius:5px;color:var(--iw-green);background:var(--iw-mist);font:700 12px var(--mono)}.iw-stages button[aria-current]>span{background:var(--iw-green);color:#fff}.iw-phase{padding:clamp(12px,2vw,20px);border:1px solid var(--iw-line);border-radius:10px;background:#fff}.iw-phase-head{margin-bottom:12px}.iw-layout{display:grid;grid-template-columns:minmax(0,2.6fr) minmax(210px,1fr);gap:12px;align-items:start}.iw-main{min-width:0;display:grid;gap:10px}.iw-card,.iw-handoff{min-width:0;padding:14px;border:1px solid var(--iw-line);border-radius:8px;overflow-wrap:anywhere}.iw-card{display:grid;gap:12px;align-content:start}.iw-handoff{display:grid;gap:6px;background:#f2f7f3}.iw-handoff h3{color:var(--iw-green);font-size:15px}.iw-progress{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0;gap:6px}.iw-progress li{border:1px solid var(--iw-line);border-radius:6px;padding:3px 8px;color:#53655b}.iw-progress [aria-current]{color:var(--iw-green);background:var(--iw-mist);border-color:var(--iw-green);font-weight:700}.iw-inputs,.iw-image-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}.iw-order-text{white-space:pre-wrap;overflow-wrap:anywhere}.iw-field{display:grid;gap:5px}.iw-field textarea{width:100%;resize:vertical}.iw-image{margin:0;min-width:0}.iw-image a{display:block}.iw-image img{display:block;max-width:100%;max-height:540px;width:auto;height:auto}.iw-image figcaption{color:#52645b;margin-top:4px}.iw-reconstruction-review{display:grid;gap:10px;min-width:0}.iw-review-status{border:1px solid #ebd5bf;border-radius:7px;padding:7px 9px;color:#814420;background:#fff3e5}.iw-annotation-board{position:relative;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(255px,1fr);align-items:start;gap:13px}.iw-reconstruction-board{grid-template-columns:minmax(0,2fr) minmax(275px,1fr)}.iw-review-pane{min-width:0;border:1px solid var(--iw-line);border-radius:8px;background:#fff}.iw-review-pane-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;padding:7px 9px;background:#f6faf7;border-bottom:1px solid var(--iw-line);border-radius:8px 8px 0 0}.iw-review-pane-head small,.iw-review-footer p,.iw-compare-note{font-size:12px;color:#52645b}.iw-review-comparison{position:sticky;top:0;z-index:1}.iw-review-comparison .iw-image img{max-height:min(49dvh,525px)}.iw-review-comparison>.iw-image{padding:9px}.iw-review-comparison .iw-image-pair{padding:9px}.iw-review-comparison .iw-annotated,.iw-review-comparison .iw-image img{margin-inline:auto}.iw-compare-note{padding:0 9px 7px}.iw-review-disclosure{border-top:1px solid var(--iw-line);padding:6px 9px}.iw-review-disclosure summary{color:var(--iw-green);font-weight:650}.iw-review-disclosure .iw-report{margin-top:6px}.iw-review-tabs,.iw-review-footer{padding:7px 9px;display:flex;flex-wrap:wrap;gap:5px}.iw-review-tabs{border-bottom:1px solid var(--iw-line)}.iw-review-tabs [aria-pressed=true]{background:var(--iw-mist);color:var(--iw-green);border-color:#82aa97;font-weight:700}.iw-review-footer{border-top:1px solid var(--iw-line);flex-direction:column;align-items:start}.iw-review-footer .iw-review-gate{color:#814420;font-weight:650}.iw-annotation-list{display:grid;align-content:start;gap:6px;max-height:min(54dvh,540px);overflow-y:auto;scrollbar-gutter:stable;padding:8px}.iw-annotation-item{min-width:0;border:1px solid var(--iw-line);border-radius:6px}.iw-annotation-item.active{border-color:#c18860;background:#fff8ee}.iw-annotation-item>button{display:grid;grid-template-columns:21px minmax(0,1fr);gap:6px;width:100%;border:0;padding:7px;background:transparent;color:inherit;cursor:pointer;text-align:left}.iw-note-number{display:grid;place-items:center;border-radius:50%;width:21px;height:21px;color:var(--iw-green);background:var(--iw-mist);font-size:12px;font-weight:750}.iw-annotation-item.active .iw-note-number{color:#fff;background:#984923}.iw-annotation-item small{display:block;color:#52645b}.iw-note-body{padding:0 8px 8px 34px;font-size:13px}.iw-note-body p+p,.iw-note-body label{margin-top:5px}.iw-annotation-leader{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}.iw-annotation-leader path{fill:none;stroke:#984923;stroke-width:1.7;stroke-linejoin:round}.iw-annotation-leader .halo{stroke:#fff;stroke-width:5;opacity:.8}.iw-annotated{position:relative;width:fit-content;max-width:100%}.iw-region{position:absolute;border:1px dashed #fff9;pointer-events:none}.iw-region.active{border:2px solid #ffd08d;box-shadow:0 0 0 1px #8a451f;z-index:1}.iw-marker{position:absolute;top:0;left:0;transform:translate(-34%,-35%);display:grid;place-items:center;width:25px;height:25px;padding:0;border:1px solid #fff;border-radius:50%;background:#214b3c;color:#fff;font:750 12px var(--mono)}button.iw-marker{pointer-events:auto;cursor:pointer}.iw-region.active .iw-marker{background:#984923;box-shadow:0 0 0 2px #ffd08d}.iw-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.iw-actions .primary{background:var(--iw-green);border-color:var(--iw-green);color:#fff}.iw-report h4{margin-top:9px}.iw-report ul,.iw-report ol{padding-left:20px;margin-block:5px}.iw-report li+li{margin-top:5px}.iw-run dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:3px 8px;margin:8px 0 0}.iw-run dd{margin:0}.iw-history article{border-top:1px solid var(--iw-line);margin-top:8px;padding-top:8px}.iw-checks{display:grid;gap:5px;margin:0;padding:8px 10px;border:1px solid var(--iw-line);border-radius:6px}.iw-checks label,.iw-confirm{display:flex;align-items:start;gap:7px}.iw-checks input,.iw-confirm input{margin-top:4px;accent-color:var(--iw-green)}.iw-good{background:var(--iw-mist);color:var(--iw-green);padding:6px 9px;border-radius:6px}.iw-geometry{margin-block:12px}.iw-geometry-fields{display:flex;flex-wrap:wrap;gap:10px;padding:12px;border:1px solid var(--iw-line);border-radius:6px}.iw-geometry-fields label{display:grid;gap:4px;min-width:120px}.iw-geometry-fields input[type=number]{width:140px}.iw-geometry-fields fieldset,.iw-geometry-fields p,.iw-geometry-fields .iw-confirm{flex-basis:100%}.iw-geometry-fields .iw-confirm{display:flex;min-width:0}.iw-geometry .iw-image svg{width:100%;max-height:400px}.iw-page summary{cursor:pointer}.iw-page .banner{margin-block:8px}.iw-app :focus-visible{outline:2px solid #217e63;outline-offset:2px}@media (max-width: 980px){.iw-annotation-board{grid-template-columns:minmax(0,1fr)}.iw-annotation-leader{display:none}.iw-review-comparison .iw-image img{max-height:min(28dvh,300px)}.iw-annotation-list{max-height:43dvh}}@media (max-width: 780px){.iw-order-shell,.iw-order-shell.iw-orders-collapsed{grid-template-columns:minmax(0,1fr)}.iw-orders{position:static}.iw-order-list{max-height:176px}.iw-stages{grid-template-columns:repeat(2,minmax(0,1fr))}.iw-layout{grid-template-columns:1fr}}@media (max-width: 480px){.iw-inputs{grid-template-columns:1fr}.iw-stages button{padding-inline:6px;gap:5px}}:root{--ink: #1d1d1b;--ink-2: #444441;--muted: #6e6c66;--line: #e4e1da;--line-2: #cfcbc1;--bg: #fbfbf9;--paper: #edeae3;--blue: #185fa5;--blue-dark: #0c447c;--blue-bg: #e6f1fb;--amber: #ba7517;--amber-bg: #faeeda;--amber-ink: #854f0b;--red: #a32d2d;--red-bg: #fcebeb;--red-ink: #791f1f;--teal: #0f6e56;--teal-bg: #e1f5ee;--teal-ink: #04342c;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow:hidden;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:13.5px;line-height:1.6;-webkit-font-smoothing:antialiased}button{font-family:inherit}.access-gate{display:grid;min-height:100%;place-items:center;padding:20px;background:var(--paper)}.access-card{width:min(100%,390px);padding:28px;border:1px solid var(--line);border-radius:12px;background:#fff}.access-card .brand{margin:0}.access-card h1{margin:18px 0 12px;font-size:24px}.access-card form{display:grid;gap:10px}.access-code{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(4px,2vw,10px)}.access-card input,.access-card button{min-height:44px;border:1px solid var(--line-2);border-radius:6px;padding:8px 12px;font:inherit}.access-code input{width:100%;min-width:0;padding-inline:0;text-align:center;font-size:20px}.access-code input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.access-card button{border-color:var(--blue);background:var(--blue);color:#fff;cursor:pointer}.access-card button:disabled{opacity:.65;cursor:default}.access-card [role=alert]{margin:0;color:var(--red-ink)}.app{height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:9px;font-weight:600;letter-spacing:-.01em;font-size:14px;white-space:nowrap}.brand-mark{width:15px;height:15px;border-radius:4px;background:var(--blue);box-shadow:inset 0 0 0 3.5px #fff,inset 0 0 0 4.5px var(--blue)}.field-label{display:block;font-size:10.5px;letter-spacing:.09em;color:var(--muted);margin-bottom:6px}.select{width:100%;height:34px;border:1px solid var(--line-2);border-radius:8px;padding:0 9px;background:#fff;color:var(--ink);font-size:12.5px;font-family:inherit}.select:focus,.textarea:focus{outline:2px solid #b9d4ec;outline-offset:1px}.count{background:#f1efe8;border-radius:999px;padding:0 7px;font-size:10.5px}.tag{font-size:9.5px;letter-spacing:.04em;padding:1px 5px;border-radius:4px;font-weight:600}.tag.mock{background:var(--amber-bg);color:var(--amber-ink)}.tag.ok{background:var(--teal-bg);color:var(--teal-ink)}.tag.err{background:var(--red-bg);color:var(--red-ink)}.dot{width:6px;height:6px;border-radius:50%;flex:0 0 auto}.dot.g{background:#4e9a76}.dot.a{background:#d9a441}.dot.r{background:#c25b5b}.canvas-host{min-width:0;min-height:0;overflow:hidden;display:flex;background:var(--paper)}.canvas-pane{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.canvas-toolbar{height:44px;flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:0 14px;overflow:hidden;background:#ffffffc7;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.segmented{display:inline-flex;flex:0 0 auto;background:#f1efe8;border-radius:8px;padding:2px}.segmented button{white-space:nowrap;border:0;background:transparent;font-size:12px;color:var(--muted);padding:3px 11px;border-radius:6px;cursor:pointer}.segmented button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px #00000012;font-weight:600}.segmented button:disabled{opacity:.4;cursor:not-allowed}.canvas-hint{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zoom-controls{margin-left:auto;display:flex;align-items:center;gap:6px}.zoom-controls button{height:26px;min-width:26px;padding:0 8px;border:1px solid var(--line-2);background:#fff;border-radius:6px;font-size:11.5px;color:var(--ink-2);cursor:pointer}.zoom-controls button:disabled{opacity:.4;cursor:not-allowed}.zoom-value{font-size:11.5px;color:var(--muted);min-width:40px;text-align:center;font-variant-numeric:tabular-nums}.canvas-viewport{flex:1;min-height:0;min-width:0;position:relative;overflow:hidden}.canvas-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);font-size:12.5px}.placeholder{margin:auto;display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px;text-align:center;color:var(--ink-2);font-size:13px;max-width:380px}.inspector{border-left:1px solid var(--line);background:#fff;display:flex;flex-direction:column;min-height:0}.inspector-tabs{display:flex;gap:2px;padding:8px 10px 0;border-bottom:1px solid var(--line)}.inspector-tabs button{border:0;background:transparent;font-size:12.5px;color:var(--muted);padding:7px 10px;border-radius:8px 8px 0 0;cursor:pointer;border-bottom:2px solid transparent}.inspector-tabs button.on{color:var(--ink);border-bottom-color:var(--blue);font-weight:600}.badge{font-size:10px;background:#f1efe8;color:var(--muted);padding:0 5px;border-radius:999px;margin-left:3px}.badge.done{background:var(--teal-bg);color:var(--teal-ink)}.inspector-body{overflow:auto;padding:10px 12px 18px}.review-editor{scroll-margin-block:12px}.review-editor:focus{outline:none}.review-filters{flex-wrap:wrap}.review-quality{padding:8px 12px}.element-state{flex:0 0 auto;color:var(--muted);font-size:10.5px}.object-thumb{display:inline-grid;place-items:center;flex:0 0 34px;width:34px;height:28px;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:4px}.object-crop{display:block;width:100%;height:100%}.object-preview{margin:6px 0}.object-preview summary,.review-more summary{color:var(--blue-dark);cursor:pointer}.object-preview summary .object-thumb{margin:0 6px;vertical-align:middle}.object-comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,115px),1fr));gap:6px;margin-top:6px}.object-comparison figure{margin:0;min-width:0;padding:4px;border:1px solid var(--line);border-radius:5px}.object-comparison figcaption{color:var(--muted);font-size:11px}.object-comparison .object-crop{height:64px}.review-preflight{padding:6px 8px;margin:8px 0;border-radius:6px;background:var(--amber-bg);color:var(--amber-ink);font-size:11.5px}.review-preflight ul{padding-left:16px;margin:2px 0 0}.review-more{margin:8px 0}.filter-row{display:flex;align-items:center;gap:6px;margin-bottom:8px}.chip{font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--muted);cursor:pointer}.chip.on{background:var(--blue-bg);border-color:#b9d4ec;color:var(--blue-dark);font-weight:600}.element-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:1px}.element-row{width:100%;display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:7px;border:0;background:transparent;text-align:left;cursor:pointer;color:var(--ink-2)}.element-row:hover{background:#f7f6f2}.element-row.on{background:var(--blue-bg);color:var(--blue-dark);font-weight:600}.element-index{font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--muted);width:18px}.element-row.on .element-index{color:var(--blue)}.element-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}.conf{width:6px;height:6px;border-radius:50%;flex:0 0 auto}.conf.high{background:#4e9a76}.conf.medium{background:#d9a441}.conf.low{background:#c25b5b}.detail{border-top:1px solid var(--line);padding-top:12px}.detail-head{display:flex;flex-direction:column;gap:2px;margin-bottom:9px}.detail-title{font-size:13.5px;font-weight:600}.kv{display:grid;grid-template-columns:72px 1fr;gap:5px 10px;margin:0;font-size:12px}.kv dt{color:var(--muted)}.kv dd{margin:0;color:var(--ink-2);overflow-wrap:anywhere}.question{margin-bottom:13px}.question-label{font-size:12px;margin-bottom:5px;color:var(--ink-2)}.options{display:flex;gap:4px;flex-wrap:wrap}.pill{font-size:11px;padding:3px 9px;border-radius:6px;border:1px solid var(--line-2);background:#fff;color:var(--muted);cursor:pointer}.pill:hover{border-color:var(--blue)}.pill.on{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}.pill.ghost.on{background:#fff;color:var(--blue-dark);border-color:var(--blue)}.textarea{width:100%;border:1px solid var(--line-2);border-radius:8px;padding:8px 9px;font-family:inherit;font-size:12px;resize:vertical;color:var(--ink)}.save-state{border-top:1px solid var(--line);padding-top:10px;min-height:26px}.ok-text{color:var(--teal)}.err-text{color:var(--red)}.statusbar{height:30px;flex:0 0 auto;display:flex;align-items:center;gap:16px;padding:0 16px;background:#fff;border-top:1px solid var(--line);font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden}.statusbar>span:first-child{overflow:hidden;text-overflow:ellipsis}.status-right{margin-left:auto;display:flex;gap:14px}.banner.err{background:var(--red-bg);color:var(--red-ink);padding:7px 16px;display:flex;justify-content:space-between;gap:12px;font-size:12.5px;border-bottom:1px solid #e7b5b5}.banner button{border:0;background:transparent;color:inherit;text-decoration:underline;cursor:pointer;font-size:12.5px}.muted{color:var(--muted)}.small{font-size:11.5px}.mono{font-family:var(--mono);font-size:11px}.pad{padding:8px}.progress-block{background:#faf9f6;border:1px solid var(--line);border-radius:10px;padding:9px 10px 8px;margin-bottom:10px}.progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px;color:var(--ink-2)}.progress-bar{height:4px;border-radius:999px;background:#ebe8e0;overflow:hidden;margin:7px 0 9px}.progress-bar>span{display:block;height:100%;background:var(--blue);transition:width .18s ease}.quality-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.quality-strip>div{display:flex;flex-direction:column;line-height:1.25;cursor:help}.quality-strip strong{font-size:14px;font-variant-numeric:tabular-nums;color:var(--ink)}.quality-strip span{font-size:10.5px;color:var(--muted)}.tally{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}.tally-i{font-size:10.5px;padding:1px 6px;border-radius:999px}.tally-i.mod{background:var(--amber-bg);color:var(--amber-ink)}.tally-i.del{background:var(--red-bg);color:var(--red-ink)}.tally-i.add{background:var(--teal-bg);color:var(--teal-ink)}.link{border:0;background:transparent;color:var(--blue);font-size:11.5px;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.tally .link{margin-left:auto;color:var(--muted)}.status-mark{width:13px;text-align:center;font-size:10px;font-weight:700;flex:0 0 auto}.status-mark.accepted{color:var(--teal)}.status-mark.modified{color:var(--amber-ink)}.status-mark.deleted{color:var(--red)}.element-row.st-accepted .element-name{color:var(--ink-2)}.element-row.st-modified{background:#fdf7ec}.element-row.st-modified.on{background:var(--amber-bg)}.element-row.st-deleted .element-name{color:var(--muted);text-decoration:line-through}.element-row.st-deleted.on{background:var(--red-bg)}.added-block{border-top:1px dashed var(--line-2);margin:4px 0 12px;padding-top:8px}.added-head{font-size:10.5px;letter-spacing:.08em;color:var(--muted);margin-bottom:4px}.added-row{display:flex;align-items:center;gap:8px;padding:2px 8px;border-radius:6px;font-size:12px}.added-row.on{background:var(--teal-bg)}.added-row .link{flex:1;text-align:left;color:var(--ink-2)}.icon-btn{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:14px;line-height:1;padding:2px 4px;border-radius:4px}.icon-btn:hover{background:var(--red-bg);color:var(--red)}.detail-title-row{display:flex;align-items:center;gap:8px}.status-pill{font-size:10px;padding:1px 6px;border-radius:999px;background:#f1efe8;color:var(--muted);font-weight:500}.status-pill.accepted{background:var(--teal-bg);color:var(--teal-ink)}.status-pill.modified{background:var(--amber-bg);color:var(--amber-ink)}.status-pill.deleted{background:var(--red-bg);color:var(--red-ink)}.action-row{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 12px}.btn{height:27px;padding:0 10px;border:1px solid var(--line-2);background:#fff;border-radius:7px;font-size:11.5px;color:var(--ink-2);cursor:pointer}.btn:hover{border-color:var(--blue);color:var(--blue-dark)}.btn.on{background:var(--teal);border-color:var(--teal);color:#fff}.btn.on-danger{background:var(--red);border-color:var(--red);color:#fff}.btn.ghost{color:var(--muted)}.btn.danger{border-color:#e0b4b4;color:var(--red-ink)}.btn.danger:hover{background:var(--red-bg);border-color:var(--red)}.edit-label{display:block;font-size:11px;color:var(--muted);margin:10px 0 4px}.edit-hint{margin-top:3px}.kv.compact{grid-template-columns:62px 1fr;gap:4px 10px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.strike{display:block;text-decoration:line-through;color:var(--muted);opacity:.75}@media (max-width: 1180px){.canvas-hint{display:none}}.tag.ghost{background:#f0eee8;color:var(--muted)}.tag.human{background:var(--blue-bg);color:var(--blue-dark);margin-left:6px;font-style:normal}.z-order{margin-top:4px}.z-row{display:flex;align-items:center;gap:4px}.z-btn{border:1px solid var(--line-2);background:#fff;border-radius:5px;padding:1px 7px;font-size:11px;color:var(--ink-2);cursor:pointer}.z-btn:hover{border-color:var(--blue);color:var(--blue-dark)}.z-buttons{display:inline-flex;gap:3px;margin-left:8px}.z-buttons button{border:1px solid var(--line-2);background:#fff;border-radius:4px;font-size:11px;padding:0 5px;cursor:pointer}.summary-head{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.summary-head div{display:flex;flex-direction:column;line-height:1.25}.summary-head strong{font-size:15px}.summary-head span{font-size:10.5px;color:var(--muted)}.summary-head .warn strong{color:var(--amber-ink)}.summary-note{margin:8px 2px}.summary-actions{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.summary-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.summary-row{width:100%;text-align:left;display:flex;flex-direction:column;gap:1px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:#fff;cursor:pointer}.summary-row:hover{border-color:var(--blue)}.summary-row.has-rework{border-left:3px solid var(--amber)}.summary-name{font-weight:600;font-size:12.5px}.summary-meta{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}.summary-meta .rework{color:var(--amber-ink);background:var(--amber-bg);border-radius:4px;padding:0 4px;font-weight:600}.summary-text{font-size:11.5px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.summary-text .arrow{color:var(--muted);margin:0 5px}.summary-note-text{font-size:11px;color:var(--blue-dark);background:var(--blue-bg);border-radius:4px;padding:1px 5px;align-self:flex-start}.summary-time{font-size:10.5px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14161a6b;display:flex;align-items:center;justify-content:center;padding:28px;z-index:50}.modal{background:var(--bg);border-radius:12px;box-shadow:0 24px 60px #0f141c47;display:flex;flex-direction:column;max-height:100%;overflow:hidden}.delivery-page{flex:1;min-height:0}.delivery-layout{display:flex;flex-direction:column;height:100%;background:var(--bg)}.delivery-header,.delivery-footer{display:flex;align-items:center;gap:12px;padding:10px clamp(12px,2.4vw,32px);background:#fff}.delivery-header{justify-content:space-between;border-bottom:1px solid var(--line)}.delivery-header h2,.delivery-card h4{margin:0}.delivery-scroll{flex:1;min-height:0;overflow:auto;scroll-padding:12px}.delivery-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,36%);gap:18px;align-items:start;max-width:1360px;margin:auto;padding:14px clamp(12px,2.4vw,32px) 24px}.delivery-tasks{display:grid;gap:9px;min-width:0}.delivery-card,.delivery-preview{min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff}.delivery-card{padding:10px 13px}.delivery-card p{margin:3px 0}.delivery-card-head,.delivery-issue-list li,.delivery-overview,.delivery-overview>div,.delivery-actions{display:flex;align-items:center;gap:8px}.delivery-overview{gap:14px;align-items:stretch}.delivery-overview>div{flex:1;flex-wrap:wrap;padding:4px 0}.delivery-overview>div+div{border-left:1px solid var(--line);padding-left:14px}.delivery-overview b{margin-left:auto}.delivery-todo-heading{margin:3px 0 0;font-size:15px}.delivery-card-head,.delivery-issue-list li{justify-content:space-between}.delivery-card .btn{flex:0 0 auto}.delivery-factory-form{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.delivery-issue-list{margin:5px 0;padding:0;list-style:none}.delivery-issue-list li{padding:6px 0;border-top:1px solid var(--line)}.delivery-disclosure summary,.delivery-history summary{cursor:pointer;font-weight:600}.delivery-disclosure summary span{margin-left:8px;font-weight:400}.delivery-preview{position:sticky;top:14px}.delivery-preview .preview-pane{border-radius:9px 9px 0 0}.delivery-preview .preview-frame{height:clamp(190px,39vh,360px)}.delivery-cdr-preview{display:block;max-width:100%;max-height:320px;margin:8px auto}.order-workbench form{display:grid;gap:16px}.order-workbench input[type=checkbox]{width:auto}.order-workbench label.order-checkbox{display:flex;align-items:center;gap:8px}.order-production{margin-block:18px;padding:16px;border:1px solid var(--line);border-radius:8px}.order-production h3{margin-top:0}.order-production details{margin-top:12px}.order-workbench .btn.primary{justify-self:start}.order-previews{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px}.order-previews figure{margin:0}.order-previews img{display:block;width:100%;height:300px;object-fit:contain;background:#fff}.delivery-footer{flex-wrap:wrap;border-top:1px solid var(--line)}.delivery-actions{margin-left:auto;flex-wrap:wrap}.delivery-history{position:relative}.delivery-history-list{position:absolute;z-index:4;bottom:calc(100% + 12px);left:0;width:min(450px,calc(100vw - 36px));max-height:min(40vh,340px);overflow:auto;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 8px 24px #14191f26}@media (max-width: 760px){.delivery-grid{grid-template-columns:minmax(0,1fr);gap:12px}.delivery-preview{position:static}.delivery-overview b{margin-left:0}}.workflow-page{flex:1;min-height:0;overflow:auto;padding:clamp(16px,4vw,48px)}.workflow-card{max-width:1130px;margin:0 auto;padding:clamp(18px,3vw,36px);border:1px solid var(--line);border-radius:12px;background:#fff}.workflow-card h1,.workflow-dialog h2{margin:4px 0 16px;line-height:1.25}.workflow-card-head,.workflow-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.workflow-card-head{justify-content:space-between}.workflow-actions{margin-top:14px}.step-index{color:var(--blue-dark);font-size:12px;font-weight:600}.intake-layout,.material-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.intake-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-items:start}.intake-images figure{margin:0;min-width:0}.intake-images img,.upload-preview,.material-preview{display:block;width:100%;max-height:390px;object-fit:contain;background:var(--paper);border-radius:6px}.intake-images figcaption{margin-top:6px;color:var(--muted)}.material-preview{max-height:300px;background:repeating-conic-gradient(#eee,#eee 25%,#fff 0%,#fff 50%) 50% / 16px 16px}.sample-facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:7px 12px}.sample-facts dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.sample-facts dt{color:var(--muted)}.workflow-card label,.workflow-dialog label,.factory-preset label{display:grid;gap:4px;margin:10px 0}.workflow-card input,.workflow-card textarea,.workflow-card select,.workflow-dialog input,.workflow-dialog textarea,.workflow-dialog select,.factory-preset select,.factory-preset input{width:100%;min-width:0;padding:7px 9px;border:1px solid var(--line-2);border-radius:5px;background:#fff;color:var(--ink);font:inherit}.factory-preset input[type=checkbox]{width:auto}.workflow-card textarea,.workflow-dialog textarea{min-height:78px;resize:vertical}.workflow-card details,.workflow-dialog details,.factory-preset{margin:12px 0}.workflow-dialog{width:min(720px,calc(100% - 28px));max-height:calc(100% - 28px);padding:22px;border:1px solid var(--line);border-radius:12px;color:var(--ink)}.workflow-dialog::backdrop{background:#14161a7a}.materials-dialog{width:min(1010px,calc(100% - 28px))}.material-entry{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.job-status{color:var(--blue-dark);background:var(--blue-bg);padding:8px 10px;border-radius:6px}@media (max-width: 730px){.intake-layout,.material-layout{grid-template-columns:minmax(0,1fr)}}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fff}.modal-head h2{margin:0;font-size:15px}.modal-body{flex:1;min-height:0;overflow:hidden}.preview-pane{padding:12px 16px 10px;border-bottom:1px solid var(--line);background:#fff}.preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.preview-head h3{margin:0}.preview-frame{position:relative;display:grid;grid-template:minmax(0,1fr) / minmax(0,1fr);place-items:center;height:368px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#f4f5f7;overflow:hidden}.preview-frame img{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in;transition:opacity .12s ease;box-shadow:0 1px 6px #141a2224}.preview-open{display:grid;grid-template:minmax(0,1fr) / minmax(0,1fr);place-items:center;width:100%;height:100%;min-height:0;padding:0;border:0;background:transparent;cursor:zoom-in}.preview-zoom[open]{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:24px;background:#101318d1;cursor:zoom-out}.preview-close{position:absolute;top:12px;right:12px}.preview-zoom img{max-width:94vw;max-height:92vh;border-radius:4px;box-shadow:0 20px 60px #00000073}.preview-frame.busy img{opacity:.4}.preview-frame.busy:after{content:"更新中";position:absolute;right:8px;bottom:8px;padding:2px 8px;border-radius:999px;background:#171a1fb8;color:#fff;font-size:11px;letter-spacing:.04em}.preview-meta{margin:7px 0 0}.preview-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;font-size:11px;color:var(--ink)}.preview-legend i{display:inline-block;width:9px;height:9px;margin-right:4px;border-radius:2px;vertical-align:-1px}.preview-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.preview-chips button{padding:2px 8px;border:1px solid var(--line);border-radius:999px;background:var(--bg);font-size:11px;color:var(--muted);cursor:pointer}.preview-chips button.on{border-color:var(--blue);background:var(--blue-bg);color:var(--blue)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.field-grid label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--muted)}.field-grid input{border:1px solid var(--line-2);border-radius:6px;padding:4px 7px;font-size:12.5px;color:var(--ink);background:#fff}.check{display:flex;align-items:flex-start;gap:7px;font-size:12px;margin:6px 0;cursor:pointer}.check.inline{margin:0;align-items:center}.notice{margin:10px 0;padding:7px 9px;border-radius:7px;background:var(--blue-bg);color:var(--blue-dark);font-size:11.5px}.notice.warn{background:var(--amber-bg);color:var(--amber-ink)}.notice .link{margin-left:4px}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:disabled{background:#c9c7c0;border-color:#c9c7c0;color:#fff}.history-row{display:flex;align-items:center;gap:6px;padding:3px 0;color:var(--ink-2);text-decoration:none;border-bottom:1px dashed var(--line)}.history-row:hover{color:var(--blue-dark)}.banner.inline{margin-top:10px;border-radius:7px}.fidelity-block{margin-top:12px;border:1px solid var(--line);border-radius:8px;padding:9px 10px 7px;background:var(--bg)}.fidelity-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}.fidelity-head h4{margin:0;font-size:12.5px;font-weight:600}.fidelity-table{width:100%;border-collapse:collapse;font-size:11.5px;font-variant-numeric:tabular-nums}.fidelity-table th{text-align:left;font-weight:500;color:var(--muted);padding:2px 6px 4px 0;border-bottom:1px solid var(--line)}.fidelity-table td{padding:4px 6px 4px 0;border-bottom:1px solid var(--line)}.fidelity-table tr:last-child td{border-bottom:0}.fidelity-table td.bad{color:var(--red-ink);font-weight:600}.fidelity-table tr.unknown td{color:var(--muted)}.compare{flex:1;min-height:0;display:flex;flex-direction:column;padding:10px 14px 12px;gap:8px;overflow:auto}.compare-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.compare-title{font-weight:600;margin-right:4px}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-height:300px;flex:1 1 auto}.compare-pane{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--paper)}.compare-pane-head{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#fff;border-bottom:1px solid var(--line);font-size:12px}.compare-pane-foot{padding:4px 10px;background:#fff;border-top:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-canvas{flex:1;min-height:180px;position:relative;overflow:hidden}.compare-bottom{display:grid;grid-template-columns:300px minmax(0,1fr);gap:10px}.compare-metrics table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:12px}.compare-metrics th,.compare-metrics td{padding:4px 9px;text-align:left;border-bottom:1px solid var(--line)}.compare-metrics thead th{background:var(--bg);color:var(--muted);font-weight:600}.compare-metrics tbody th{color:var(--muted);font-weight:500}.compare-metrics tr.differs td{color:var(--blue-dark);font-weight:600}.compare-diff{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px;min-width:0}.compare-diff h3{margin:0 0 4px;font-size:13px}.compare-diff h4{margin:10px 0 4px;font-size:11.5px;color:var(--muted)}.diff-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.diff-columns ul{margin:0;padding-left:16px;font-size:12px}.pair-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.pair-list li{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:5px;font-size:12px}.pair-list li:hover{background:var(--amber-bg)}.pair-name{flex:0 0 auto;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pair-iou{font-family:var(--mono);color:var(--teal-ink)}.pair-iou.warn{color:var(--amber-ink)}.pair-iou.bad{color:var(--red-ink)}.pair-text{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1180px){.compare-bottom{grid-template-columns:1fr}}.compare{overflow:hidden}.compare-toolbar .select{width:auto;min-width:200px;max-width:340px;flex:0 1 auto}.compare-grid{flex:1 1 auto;min-height:0}.compare-pane,.mini-canvas{min-height:0}.compare-bottom{flex:0 0 auto;max-height:44%;min-height:0;overflow:auto}.compare-diff{overflow:auto}.compare-diff .diff-columns ul{max-height:132px;overflow:auto}.compare-pane-head{flex-wrap:nowrap;min-width:0}.compare-pane-head strong{white-space:nowrap}.compare-pane-head .muted{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
