
:root{font-family:Inter,"Microsoft YaHei","PingFang SC",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#173149;background:#eef3f7;font-synthesis:none}
*{box-sizing:border-box}html,body{height:100%;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #80b7eb;outline-offset:2px}
.app{height:100dvh;min-height:670px;display:flex;flex-direction:column;overflow:hidden}
.topbar{height:70px;flex:none;background:#fff;border-bottom:1px solid #dce5ed;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 24px;box-shadow:0 2px 12px #15324c05;z-index:4}
.brand{display:flex;align-items:center;gap:13px;min-width:0}.brand-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#14668a,#163b64);display:grid;place-items:center;color:#fff;font-weight:900;font-size:19px;box-shadow:0 5px 11px #134b762b}.brand-txt{min-width:0}.brand-title{font-size:17px;font-weight:800;letter-spacing:.3px;white-space:nowrap}.brand-sub{font-size:11px;margin-top:3px;color:#91a4b3;white-space:nowrap}.top-actions{display:flex;align-items:center;gap:9px}.offline{font-size:11px;color:#417d68;background:#eef9f2;border-radius:40px;padding:8px 12px;white-space:nowrap}.offline:before{content:"";display:inline-block;width:6px;height:6px;background:#2fb78b;border-radius:50%;margin-right:6px}.top-btn{border:1px solid #d7e3eb;background:#fff;color:#284861;border-radius:9px;font-size:12px;font-weight:700;padding:11px 13px;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;transition:.18s}.top-btn:hover{border-color:#8db1ca;background:#f5faff}.top-btn.primary{background:#12628b;color:#fff;border-color:#12628b}.top-btn.primary:hover{background:#0d5376}
.workspace{display:grid;grid-template-columns:116px minmax(0,1fr) 355px;min-height:0;flex:1}
.rail{border-right:1px solid #dce6ed;background:#fff;display:flex;flex-direction:column;align-items:stretch;padding:20px 9px 12px;gap:8px}.rail-kicker{text-align:center;font-size:10px;font-weight:800;color:#92a4b2;letter-spacing:2px;margin:3px 0 12px}.line-btn{border:1px solid transparent;background:transparent;color:#688093;display:flex;flex-direction:column;align-items:center;gap:6px;padding:11px 4px 9px;border-radius:12px;transition:.17s;min-height:76px}.line-btn:hover{background:#f1f6f9;color:#164c6a}.line-btn.active{background:#edf7fc;color:#0c5983;border-color:#c8e3f2;box-shadow:0 1px 4px #113b5b0b}.line-icon{display:grid;place-items:center;width:29px;height:24px;border:1.5px solid currentColor;border-radius:5px;position:relative}.line-icon:before{content:"";position:absolute;top:-5px;left:6px;width:14px;border-top:1.5px solid currentColor}.line-name{font-size:13px;font-weight:800;white-space:nowrap}.line-count{font-size:10px;font-weight:700;border-radius:10px;padding:2px 7px;background:#edf1f4;color:#7d93a2}.line-btn.active .line-count{background:#cfeaf7;color:#176487}.rail-foot{margin-top:auto;font-size:9px;line-height:1.65;text-align:center;color:#9caebb;border-top:1px solid #edf0f4;padding-top:13px}
.stage{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column;background:#122e45;isolation:isolate;overflow:hidden}.stage-head{position:absolute;top:17px;left:18px;right:18px;z-index:3;pointer-events:none;display:flex;align-items:start;justify-content:space-between;gap:12px}.stage-head>*{pointer-events:auto}.stage-intro{color:#fff;max-width:350px;background:#0f2c43bc;border:1px solid #55788e55;border-radius:12px;padding:13px 15px;backdrop-filter:blur(9px)}.stage-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#9fc5dc;font-weight:700}.stage-name{font-size:21px;font-weight:750;margin:4px 0 3px}.stage-desc{font-size:11px;color:#a9c0ce;line-height:1.6}.mode-toolbar{display:flex;gap:6px;align-items:center;background:#0b273dd6;border:1px solid #51778d66;backdrop-filter:blur(12px);border-radius:13px;padding:5px;max-width:100%;flex-wrap:wrap}.mode-btn{background:transparent;border:1px solid transparent;color:#b7d0e0;border-radius:9px;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;padding:9px 11px;white-space:nowrap}.mode-btn svg{width:15px;height:15px}.mode-btn:hover{background:#2e5368}.mode-btn.active{background:#e9f7ff;color:#155a7f}.mode-btn .mode-dot{display:inline-block;width:9px;height:9px;border:2px solid currentColor;border-radius:50%}.mode-btn .mode-poly{font-size:16px;line-height:10px}.stage-canvas{position:absolute;inset:0;width:100%;height:100%}.stage-canvas canvas{display:block;width:100%;height:100%;touch-action:none}.model-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}.overlay-svg{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.marker-layer{position:absolute;inset:0;pointer-events:none}.pin{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:2px solid white;box-shadow:0 3px 13px #0008,0 0 0 4px #ffffff27;border-radius:100%;display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:11px;font-weight:900;white-space:nowrap;color:#fff;background:#1d9e83;transition:box-shadow .15s,filter .15s;z-index:1;padding:0}.pin:hover,.pin.selected{box-shadow:0 0 0 6px #ffffff58,0 5px 20px #000a;filter:brightness(1.13);z-index:5}.pin.replaced{background:#dc9a3d}.pin.removed{background:#8a98a7}.pin.shared{background:#173d54b0;border:2px dashed #aac7da;color:#ddf2ff;font-size:21px;font-weight:500}.pin.preview{background:#f47948;pointer-events:none;width:28px;height:28px;box-shadow:0 0 0 8px #f4794840;z-index:9}.pin.occluded{opacity:.57}.pin[title]{cursor:pointer}
.stage-bottom{position:absolute;bottom:17px;left:18px;right:18px;display:flex;align-items:end;justify-content:space-between;gap:8px;z-index:3;pointer-events:none}.stage-bottom>*{pointer-events:auto}.helper{font-size:11px;line-height:1.85;color:#d0e6f3;background:#0a283ed9;padding:10px 14px;border:1px solid #537b8d75;border-radius:11px;max-width:440px;backdrop-filter:blur(8px)}.helper b{color:#fff}.view-keys{display:flex;gap:5px;align-items:center;background:#0b293edb;border:1px solid #537b8d75;padding:5px;border-radius:10px}.view-keys button{font-size:11px;background:none;border:0;border-radius:6px;padding:8px;color:#c4dcec}.view-keys button:hover{background:#285269;color:#fff}.view-keys button.active{color:#154968;background:#e5f3ff;font-weight:800}.stage-center-msg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#e3f4fb;background:#153c54e8;padding:18px 24px;border:1px solid #5b889b;border-radius:12px;text-align:center;font-size:13px;line-height:1.9;z-index:5;pointer-events:none}.stage-center-msg[hidden]{display:none}.glass-controls{position:absolute;right:20px;bottom:74px;z-index:3;color:#cde4f3;font-size:11px;background:#0d2c43d9;padding:8px 11px;border:1px solid #58768c66;border-radius:9px;display:flex;align-items:center;gap:6px}.glass-controls input{accent-color:#e9a54e}.stage-canvas.selecting canvas{cursor:crosshair}.region-actions{position:absolute;top:95px;right:20px;z-index:5;background:#f6fbff;border:1px solid #cbebfb;border-radius:13px;box-shadow:0 10px 32px #071f2f66;padding:13px;width:218px;color:#1e445d}.region-actions[hidden]{display:none}.region-actions b{display:block;font-size:12px;margin-bottom:5px}.region-actions p{margin:0 0 12px;font-size:11px;line-height:1.6;color:#648093}.region-buttons{display:flex;gap:7px}.small-btn{font-size:11px;font-weight:750;border-radius:7px;border:1px solid #bdd8e7;padding:9px 10px;background:#fff;color:#1d597b;flex:1}.small-btn.accent{color:#fff;background:#11668b;border-color:#11668b}.small-btn:disabled{opacity:.4}
.inspector{min-width:0;min-height:0;background:#f6f9fb;border-left:1px solid #d7e2ea;display:flex;flex-direction:column}.inspect-head{padding:22px 21px 17px;background:#fff;border-bottom:1px solid #e4ecf2;flex:none}.section-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:2px;font-weight:800;color:#8da6b7}.section-title{font-size:20px;letter-spacing:-.5px;font-weight:800;margin:5px 0 4px}.section-small{color:#859baa;font-size:11px;line-height:1.6}.metrics{margin-top:17px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.metric{padding:12px 5px;border-radius:10px;background:#f5f8fb;border:1px solid #ecf1f5}.metric-num{font-weight:800;font-size:21px;font-variant-numeric:tabular-nums;line-height:1}.metric-label{font-size:9px;color:#8ca0b0;margin-top:7px}.metric:nth-child(1) .metric-num{color:#15977f}.metric:nth-child(2) .metric-num{color:#b98033}.metric:nth-child(3) .metric-num{color:#718394}.metric:nth-child(4) .metric-num{color:#536a9d}
.inspector-body{overflow-y:auto;min-height:0;flex:1;padding:17px 18px 30px;scrollbar-width:thin;scrollbar-color:#c8d9e3 transparent}.side-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px}.side-heading h3{font-size:14px;margin:0}.side-heading small{font-size:11px;color:#8da0b1}.seg{display:flex;flex-wrap:wrap;background:#eaf0f5;padding:4px;gap:3px;border-radius:10px;margin-bottom:15px}.seg button{flex:1 1 18%;border:0;border-radius:7px;background:none;padding:9px 1px;font-size:11px;color:#668092;white-space:nowrap}.seg button.active{background:#fff;color:#14648a;box-shadow:0 1px 4px #17364a18;font-weight:800}.action-main{border:1px solid #116388;background:#116388;color:#fff;border-radius:9px;width:100%;display:flex;justify-content:center;align-items:center;gap:8px;padding:13px;font-size:12px;font-weight:800;margin:3px 0 14px}.action-main:hover{background:#0b5275}.list-stack{display:flex;flex-direction:column;gap:9px}.record-row{padding:14px;background:#fff;border:1px solid #e0eaf0;border-radius:12px;text-align:left;display:flex;gap:12px;align-items:start;transition:.16s;width:100%;color:inherit}.record-row:hover{border-color:#9bc7df;box-shadow:0 7px 18px #12436a0a;transform:translateY(-1px)}.record-number{font-size:10px;font-weight:800;color:#2b6f8e;background:#ebf6fc;padding:8px 5px;border-radius:7px;min-width:46px;text-align:center}.row-info{flex:1;min-width:0}.row-title{font-size:12px;font-weight:800;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:6px}.row-sub{color:#829aab;font-size:11px;line-height:1.5}.row-foot{margin-top:8px;display:flex;justify-content:space-between;align-items:center;gap:4px}.status-chip{font-size:10px;font-weight:800;padding:5px 8px;border-radius:20px;background:#e5f7f2;color:#148c73;display:inline-block}.status-chip.replaced{background:#fff1df;color:#b67d33}.status-chip.removed{background:#edf0f4;color:#758491}.photo-icon{font-size:10px;color:#92aaba}.shared-row{border-style:dashed;background:#fafeff}.empty-state{padding:40px 18px;text-align:center;background:#fff;border:1px dashed #cbdce5;border-radius:13px}.empty-symbol{width:48px;height:48px;margin:0 auto 13px;border-radius:15px;background:#eaf5fc;display:grid;place-items:center;font-size:22px;color:#207baa}.empty-state strong{display:block;font-size:13px;margin-bottom:8px}.empty-state p{font-size:11px;line-height:1.8;color:#8198a7;margin:0}.divider-label{font-size:10px;letter-spacing:.7px;color:#9aaeba;text-transform:uppercase;margin:18px 0 10px}.tips{font-size:11px;line-height:1.8;color:#6f8c9f;background:#eaf2f7;padding:13px;border-radius:10px;border:1px solid #dfebf2;margin-top:14px}
.back-btn{border:0;background:none;color:#2376a0;font-size:12px;font-weight:800;padding:2px 0 14px}.form-title{font-size:16px;font-weight:800;margin:0 0 6px}.form-description{font-size:11px;line-height:1.8;color:#7792a4;margin:0 0 17px}.form-card{padding:17px 15px;background:#fff;border:1px solid #e0e9ef;border-radius:12px}.field{display:block;margin-bottom:14px}.field-label{display:block;font-size:11px;color:#506d82;font-weight:800;margin:0 0 7px}.field-label em{font-style:normal;color:#8a9daa;margin-left:5px;font-weight:500}.field input,.field select,.field textarea{width:100%;border:1px solid #d5e2ea;background:#fbfdff;color:#23465e;border-radius:8px;padding:11px 10px;outline:none;font-size:12px;min-width:0}.field input:focus,.field select:focus,.field textarea:focus{border-color:#4da2ca;box-shadow:0 0 0 3px #e0f4ff}.field textarea{height:75px;resize:vertical;line-height:1.5}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-caption{color:#8aa0ae;font-size:10px;margin-top:5px;line-height:1.6}.line-info{font-size:11px;border-radius:8px;padding:11px;background:#edf6fc;color:#477b98;line-height:1.9;margin-bottom:14px;overflow-wrap:anywhere}.line-info strong{color:#175c80}.upload{border:1.5px dashed #b6cfdf;border-radius:10px;padding:13px;background:#f8fcfe;text-align:center;position:relative}.upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.upload strong{display:block;color:#316783;font-size:11px}.upload small{display:block;color:#91a6b4;font-size:10px;margin-top:5px}.photo-preview{margin-top:11px;display:none}.photo-preview img{display:block;max-width:100%;max-height:230px;margin:0 auto 8px;border-radius:8px;border:1px solid #dfebf2}.photo-preview button{border:1px solid #dae5eb;background:#fff;color:#a05047;padding:7px 10px;border-radius:7px;font-size:11px}.form-actions{display:flex;gap:9px;margin-top:16px}.form-actions button{flex:1;padding:12px 8px;border-radius:9px;border:1px solid #c9dbe4;background:#fff;color:#396782;font-size:12px;font-weight:800}.form-actions button.save{background:#0f6b8f;color:#fff;border-color:#0f6b8f;flex:2}.form-actions button:hover{filter:brightness(.97)}.danger-actions{display:flex;gap:8px;margin-top:12px}.danger-actions button{flex:1;font-size:11px;padding:10px 6px;border:1px solid #efc2be;color:#a64740;background:#fff7f5;border-radius:8px;font-weight:750}.danger-actions button:hover{background:#ffebeb}.danger-actions button:disabled{opacity:.42;cursor:not-allowed}.record-row.archived{opacity:.78;border-style:dashed}.archive-hint{font-size:11px;color:#8d6261;background:#fff2ef;border:1px solid #f0d4cb;padding:12px;border-radius:10px;line-height:1.8;margin-top:12px}.status-chip.unspecified{color:#5d7190;background:#eef2f8}.export-count{font-size:11px;color:#5381a0;background:#f1f8fc;padding:8px;border-radius:15px;white-space:nowrap}.photo-full{display:block;width:100%;max-height:310px;object-fit:contain;border-radius:8px;border:1px solid #dce6ea;margin:9px 0}.history-head{font-size:13px;font-weight:800;margin:22px 0 12px}.timeline{border-left:2px solid #dbeaf2;margin-left:7px;padding-left:16px}.history-event{position:relative;margin-bottom:17px}.history-event:before{content:"";position:absolute;left:-22px;top:2px;width:10px;height:10px;border-radius:100%;background:#6fa7c5;border:2px solid #fff;box-shadow:0 0 0 1px #b8d7e9}.history-date{font-size:10px;color:#8aa1af}.history-action{font-size:11px;color:#37566a;font-weight:700;margin:4px 0}.history-note{font-size:10px;color:#899ca9;line-height:1.7}.history-photo-btn{background:none;border:0;color:#12739c;text-decoration:underline;font-size:10px;padding:5px 0}.hint-compact{font-size:10px;color:#8a9daa;line-height:1.7}.status-row{display:flex;justify-content:space-between;align-items:center}.glass-chip{color:#3289ad;background:#e8f7ff;border-radius:20px;padding:5px 8px;font-size:10px;font-weight:800}
.toast-stack{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:100;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{padding:12px 18px;color:#fff;background:#173e58eb;border-radius:9px;box-shadow:0 8px 25px #0002;font-size:12px;min-width:220px;text-align:center;animation:pop .2s ease-out}.toast.error{background:#a34e3fee}@keyframes pop{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.photo-modal{position:fixed;inset:0;z-index:99;background:#081d2ddf;display:flex;align-items:center;justify-content:center;padding:30px}.photo-modal[hidden]{display:none}.photo-modal img{display:block;max-width:90vw;max-height:85vh;object-fit:contain;border-radius:9px}.modal-close{position:absolute;top:20px;right:20px;background:#fff;border:0;border-radius:25px;padding:10px 16px;font-size:12px;font-weight:800}.accessory-muted{opacity:.7}
@media(max-width:1220px){.workspace{grid-template-columns:100px minmax(0,1fr) 324px}.mode-btn{font-size:11px;padding:8px}.topbar{padding:0 17px}.rail{padding-left:6px;padding-right:6px}.inspect-head{padding-left:15px;padding-right:15px}.inspector-body{padding:15px 12px 24px}.stage-intro{padding:10px 12px}.stage-name{font-size:18px}}
@media(max-width:990px){.export-count{display:none}}
@media(max-width:990px){.workspace{grid-template-columns:75px minmax(0,1fr) 292px}.brand-sub{display:none}.rail-kicker{letter-spacing:0}.line-name{font-size:11px}.line-icon{display:none}.line-btn{min-height:61px;padding:10px 0}.stage-head{flex-direction:column;align-items:flex-start}.stage-intro{max-width:100%}.mode-toolbar{max-width:100%}.stage-bottom{flex-direction:column;align-items:flex-start}.stage-bottom .view-keys{align-self:flex-end}.offline{display:none}.top-btn{padding:9px 11px;font-size:11px}.brand-title{font-size:14px}}
@media(max-width:700px){.app{min-height:100dvh;height:auto;overflow:visible}.topbar{height:62px}.workspace{display:grid;grid-template-columns:1fr;grid-template-rows:66px minmax(480px,68vh) auto}.rail{grid-row:1;display:flex;flex-direction:row;gap:4px;padding:6px 8px;overflow-x:auto;border-bottom:1px solid #dce6ed}.rail-kicker,.rail-foot{display:none}.line-btn{flex:1;min-width:52px;min-height:54px}.line-count{display:none}.stage{grid-row:2;min-height:480px}.inspector{grid-row:3;min-height:430px}.stage-head{top:10px;left:10px;right:10px}.stage-intro{padding:9px 10px}.stage-desc,.stage-eyebrow{display:none}.stage-name{font-size:15px;margin:0}.mode-btn{padding:8px;font-size:11px}.stage-bottom{left:10px;right:10px;bottom:10px}.helper{font-size:10px;padding:8px}.glass-controls{bottom:108px;right:10px}.inspector-body{overflow:visible}.inspector{border-left:0}.top-actions .top-btn:not(.primary){display:none}}

/* V3 3D leader tags: subtle physical anchor, visible connector, readable mesh name. */
.marker-layer .pin{width:13px;height:13px;border:2px solid #f5ffff;box-shadow:0 0 0 3px #092c44b5,0 0 11px #53dcc499;font-size:0;line-height:0;z-index:7}
.marker-layer .pin:hover,.marker-layer .pin.selected{box-shadow:0 0 0 4px #f8fdffb0,0 0 16px #3dedbd;filter:brightness(1.18)}
.marker-layer .pin.shared{background:#164964;border:2px dashed #c4eafd;font-size:0}
.marker-layer .pin.preview{width:14px;height:14px;box-shadow:0 0 0 5px #f28b4b45;font-size:0}
.marker-name{position:absolute;transform:translateY(-50%);pointer-events:auto;display:flex;align-items:center;justify-content:flex-start;min-height:29px;max-width:185px;padding:5px 10px 6px 11px;border:1px solid #9ab8c99c;border-left:3px solid #55deb7;border-radius:5px;background:#0b2d43ee;color:#f4fdff;font-size:11px;line-height:1.35;font-weight:750;letter-spacing:.08px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 3px 13px #0617258c;z-index:3;backdrop-filter:blur(6px)}
.marker-name:hover,.marker-name.selected{background:#153e55;color:#fff;border-color:#d3effc;box-shadow:0 0 0 2px #9edce04d,0 5px 20px #051522a0;z-index:9}
.marker-name.replaced{border-left-color:#f0be6b}.marker-name.removed{border-left-color:#adb9c8}.marker-name.unspecified{border-left-color:#7dccff}
.marker-name.shared{background:#0a344ce9;border-left-color:#89c0e1;border-style:dashed;color:#d5f0ff}
@media(max-width:700px){.marker-name{max-width:132px;padding:5px 6px;font-size:10px;min-height:25px}}

/* V4 safety: shared 3D point references must never be mistaken for actual tape on this production line. */
.shared-control{margin-top:13px;display:flex;flex-direction:column;gap:7px}
.shared-toggle{width:100%;border:1px solid #93bbcc;background:#f0f8fc;border-radius:9px;color:#1c6080;min-height:39px;padding:7px 10px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:800;box-shadow:0 1px 3px #0b32500c}
.shared-toggle:hover:not(:disabled){background:#e3f2fa;border-color:#4b99b6}
.shared-toggle[aria-pressed="true"]{color:#7c491b;background:#fff4e4;border-color:#e4ad62}
.shared-toggle[aria-pressed="true"]:hover{background:#ffebd0}
.shared-toggle-icon{font-size:17px;line-height:1}
.shared-toggle .shared-count{font-size:10px;font-weight:700;background:#dceaf3;color:#426f8a;padding:3px 6px;border-radius:10px;margin-left:auto;white-space:nowrap}
.shared-toggle[aria-pressed="true"] .shared-count{background:#fae1b8;color:#8a5e27}
.shared-guidance{font-size:10px;line-height:1.65;color:#728d9c}
.shared-control.is-open .shared-guidance{color:#a36825;font-weight:650}
.shared-ref-notice{padding:10px 12px;margin:14px 0 10px;background:#fff8e9;border:1px solid #ecd5a5;border-radius:9px;color:#795d31;font-size:11px;line-height:1.7}
@media(max-width:700px){.shared-control{margin-top:10px}.shared-guidance{font-size:10px}}

/* Compact landscape workspace, sized from the visible browser viewport. */
.excel-export-modal{position:fixed;inset:0;z-index:130;background:#0b223bc9;display:flex;align-items:center;justify-content:center;padding:16px}.excel-export-modal[hidden]{display:none}.excel-export-dialog{background:#fff;color:#173149;border-radius:16px;width:min(100%,560px);max-height:90dvh;overflow-y:auto;box-shadow:0 20px 80px #071b4677;padding:22px}.export-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.export-dialog-head h2{font-size:20px;margin:0}.export-dialog-head button{background:none;border:0;font-size:27px;color:#6c8292;min-width:40px;min-height:40px}.export-dialog-desc{font-size:12px;line-height:1.8;color:#627c8f;margin:10px 0 16px}.export-selection-tools{display:flex;align-items:center;gap:8px;margin-bottom:12px}.export-selection-tools button{border:1px solid #cbdce7;background:#f8fbff;border-radius:7px;padding:8px 12px;color:#215c7f;font-size:12px}.export-selection-tools span{margin-left:auto;font-size:12px;color:#55748b}.export-columns-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.export-column{display:flex;align-items:center;gap:10px;min-height:45px;padding:10px 12px;border:1px solid #dce6ee;background:#f8fbfe;border-radius:9px;font-size:13px;cursor:pointer}.export-column:has(input:checked){background:#eef8fc;border-color:#91c9e3}.export-column input{width:18px;height:18px;accent-color:#12628b;flex:none;margin:0}.export-selection-error{font-size:12px;color:#a74839;min-height:18px;margin:10px 0}.export-dialog-footer{display:flex;justify-content:flex-end;gap:9px;position:sticky;bottom:-22px;background:#fff;padding:12px 0 5px}.export-dialog-footer button{border:1px solid #cbdce7;border-radius:8px;background:white;color:#285b76;padding:11px 16px;min-height:43px;font-size:13px}.export-dialog-footer button[type=submit]{background:#12628b;color:white;border-color:#12628b}.export-dialog-footer button:disabled{opacity:.4}
.field[hidden]{display:none}.clear-record-actions{margin-top:14px}.clear-record-actions>button{width:100%;min-height:44px;padding:11px 12px;border:1px solid #e3b86d;border-radius:9px;background:#fff2d8;color:#895611;font-size:12px;font-weight:800}.clear-record-actions>button:hover{background:#ffe8b9}.quick-clear-record{font-size:12px;line-height:1.8;background:#edf6fb;padding:10px 12px;border-radius:8px;color:#3a6f8b;overflow-wrap:anywhere}.quick-clear-dialog{width:min(100%,520px)}#confirmQuickClear{background:#a76a13;border-color:#a76a13}#quickClearError{margin-bottom:0}
html,body{overflow:hidden;height:100%;overscroll-behavior:none}
.app{height:var(--app-height,100dvh);min-height:0;overflow:hidden}
.network-status{font-size:11px;color:#227660;white-space:nowrap}.network-status.error{color:#b84638}
.top-actions{overflow-x:auto;max-width:72%;scrollbar-width:thin}
.top-btn{min-height:40px}.screen-control{display:inline-flex}.network-banner{display:flex;align-items:center;gap:10px;padding:8px 16px;background:#fff1df;color:#754c19;font-size:12px;flex:none}.network-banner[hidden]{display:none}.network-banner button{border:1px solid #d4af78;border-radius:6px;background:white;padding:6px 10px;color:inherit}
.clear-fields{padding:12px;margin-bottom:15px;border:1px solid #c8dfeb;border-radius:9px;background:#f2f9fc}.clear-fields[hidden]{display:none}.clear-fields .field:last-child{margin-bottom:0}.field-check{display:flex;gap:8px;align-items:start;font-size:12px;line-height:1.6;margin-bottom:12px}.field-check input{width:auto;margin-top:3px}.camera-upload{display:none}.upload-row{display:flex;gap:8px}.upload-row .upload{flex:1}.upload-row .upload input{font-size:16px}.legacy-warning{font-size:11px;color:#9b5427;line-height:1.7}
.mobile-gate{position:fixed;inset:0;z-index:120;background:#0c273feF;color:#fff;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(6px)}.mobile-gate[hidden]{display:none}.mobile-gate article{width:min(90vw,450px);padding:28px;border:1px solid #7097b1;border-radius:18px;background:#15384d}.mobile-gate h2{font-size:22px;margin:0 0 14px}.mobile-gate p{font-size:14px;line-height:1.9;color:#c1d9e9}.mobile-gate button{padding:13px 16px;border-radius:9px;border:1px solid #b7d9ed;background:#e8f6ff;color:#174c69;font:inherit;margin:6px 7px 0 0;min-height:44px}.mobile-gate .secondary{background:transparent;color:white}
@media(pointer:coarse){.camera-upload{display:block}.pin{min-width:20px;min-height:20px}.field input,.field select,.field textarea{font-size:16px}.top-btn,.mode-btn,.small-btn{min-height:40px}.inspector-body{-webkit-overflow-scrolling:touch}}
@media(max-width:1100px),(max-height:650px){
 .topbar{height:52px;padding:4px 10px;gap:8px}.brand-mark{width:30px;height:30px;border-radius:8px}.brand{gap:7px}.brand-title{font-size:13px}.brand-sub,.offline,.export-count{display:none}.top-actions{gap:6px}.top-btn{font-size:11px;padding:7px 9px}.network-status{font-size:10px}
 .workspace{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(265px,32%);grid-template-rows:minmax(0,1fr)}.rail{grid-row:auto;flex-direction:column;gap:3px;overflow-y:auto;padding:8px 5px}.rail-kicker,.rail-foot,.line-icon{display:none}.line-btn{min-height:43px;padding:6px 2px;flex:none;min-width:0}.line-count{display:block;padding:1px 5px;font-size:9px}.line-name{font-size:11px}
 .stage{grid-row:auto;min-height:0}.stage-head{top:9px;left:9px;right:9px;flex-direction:row;gap:6px}.stage-intro{padding:8px}.stage-name{font-size:14px;margin:0}.stage-desc,.stage-eyebrow{display:none}.mode-toolbar{gap:2px;padding:3px}.mode-btn{font-size:10px;padding:7px 6px;gap:4px}.stage-bottom{left:9px;right:9px;bottom:9px;flex-direction:row;align-items:end}.helper{display:none}.view-keys{margin-left:auto}.glass-controls{right:10px;bottom:60px;font-size:10px}.region-actions{right:10px;top:64px;width:205px}
 .inspector{grid-row:auto;min-height:0;border-left:1px solid #d7e2ea}.inspect-head{padding:10px 12px 8px}.section-eyebrow,.section-small{display:none}.section-title{font-size:16px;margin:0}.metrics{margin-top:8px}.metric{padding:6px 5px}.metric-num{font-size:17px}.metric-label{margin-top:4px}.shared-control{margin-top:8px}.shared-toggle{padding:8px}.shared-guidance{display:none}.inspector-body{padding:12px 10px 20px;overflow-y:auto}.form-card{padding:12px 10px}.photo-modal{padding:12px}
}
@media(max-width:700px) and (orientation:portrait){
 .workspace{grid-template-columns:50px minmax(0,1fr);grid-template-rows:minmax(180px,38%) minmax(0,1fr)}.rail{grid-column:1;grid-row:1/3}.stage{grid-column:2;grid-row:1}.inspector{grid-column:2;grid-row:2;border-top:1px solid #d7e2ea}.top-actions{max-width:64%}.top-actions .top-btn:not(.primary){display:inline-flex}.brand-title{font-size:11px}.brand-mark{display:none}.network-status{display:none}.mode-btn{min-height:36px}.network-banner{flex-wrap:wrap;font-size:11px}
}
@media(max-height:440px){.inspect-head .metrics{display:none}.topbar{height:46px}.inspect-head{padding:7px 10px}.shared-control{margin-top:6px}.brand-title{font-size:12px}.shared-toggle{min-height:32px;font-size:11px}.stage-head{flex-direction:column;align-items:start}.stage-intro{padding:5px 8px}.stage-name{font-size:12px}}
