*{box-sizing:border-box} :root{--ink:#17252c;--muted:#667277;--paper:#fff;--bg:#f4f5f2;--line:#dfe4df;--red:#d94839;--soft:#fceeea;--green:#256657;--amber:#916224;--radius:16px}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,Arial,sans-serif;font-size:15px;line-height:1.5}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #268f9a;outline-offset:3px}button{border:0}h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,3.5vw,42px);letter-spacing:-1.3px;line-height:1.15}h2{font-size:23px;letter-spacing:-.5px;line-height:1.25}h3{font-size:17px;line-height:1.35}small{font-size:12px}.topbar{background:var(--ink);color:white}.topbar-inner{max-width:1320px;margin:auto;min-height:84px;padding:16px 36px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:17px;letter-spacing:1.5px;font-weight:400}.brand b{font-weight:750}.brand small{display:block;letter-spacing:.3px;color:#b7c4c6;font-size:11px}.brand-mark{width:39px;height:42px;border:1px solid #5a6a6e;border-radius:10px;display:grid;place-items:center;font-size:28px;font-weight:750;position:relative}.brand-mark:after{content:'';width:9px;height:9px;background:#eb6354;border:3px solid var(--ink);box-sizing:content-box;border-radius:50%;position:absolute;bottom:-5px;right:-5px}.top-actions{display:flex;gap:22px;align-items:center}.test-label{font-size:12px;color:#b7c4c6}.connection{display:flex;align-items:center;gap:8px;color:#dae4e0;background:transparent;font-size:12px;padding:8px 0}.connection-dot{height:7px;width:7px;border-radius:50%;background:#aab9b2}.connection.ready .connection-dot{background:#7fcb9e}.connection.offline .connection-dot{background:#f2c27a}main{max-width:1248px;margin:auto;padding:0 0 55px;min-height:calc(100vh - 150px)}.steps{display:flex;gap:0;border-bottom:1px solid var(--line);padding:26px 0;align-items:center;margin-bottom:34px}.step{display:flex;gap:10px;align-items:center;background:transparent;color:#7d888b;font-size:13px;padding:0;text-align:left}.step-num{width:28px;height:28px;border:1px solid #cdd5ce;border-radius:50%;display:grid;place-items:center;font-size:12px}.step.active{color:var(--ink);font-weight:650}.step.active .step-num{background:var(--ink);color:#fff;border-color:var(--ink)}.step.done{color:var(--green)}.step.done .step-num{background:#e0ebe3;border-color:#e0ebe3}.step-line{height:1px;background:#d4dcd5;flex:1;max-width:110px;margin:0 24px}.intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:74px;align-items:start}.eyebrow{font-size:11px;letter-spacing:1.8px;text-transform:uppercase;font-weight:700;color:var(--red);margin:6px 0 14px}.lead{color:var(--muted);font-size:16px;max-width:520px;margin:17px 0 28px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px}.input-label{display:block;font-size:13px;font-weight:650;margin-bottom:8px}.identify-input,.search-input{width:100%;border:1px solid #bdc7c0;border-radius:10px;background:white;color:var(--ink);padding:16px 16px;font-size:17px;min-height:56px}.identify-input:focus,.search-input:focus{border-color:#506d68;outline:2px solid #dbe7df;outline-offset:0}.hint{color:var(--muted);font-size:12px;margin-top:8px}.example-row,.chip-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.chip,.example{border:1px solid var(--line);border-radius:7px;padding:7px 10px;background:white;font-size:12px;color:#53615f}.example:hover,.chip:hover{border-color:#87998b;background:#f1f5ef}.chip.selected{background:var(--ink);border-color:var(--ink);color:white}.section-label{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);margin:25px 0 12px;font-weight:650}.equipment-option{width:100%;display:flex;align-items:center;gap:15px;text-align:left;padding:17px 16px;background:white;border:1px solid var(--line);border-radius:11px;margin-top:10px;transition:border-color .15s}.equipment-option:hover,.equipment-option.selected{border-color:var(--ink)}.equipment-option.selected{box-shadow:inset 0 0 0 1px var(--ink)}.equipment-icon{width:45px;height:53px;background:#f1f3ef;border-radius:7px;display:grid;place-items:center;color:#607269;flex-shrink:0}.equipment-option strong{font-size:15px;display:block}.equipment-option small{color:var(--muted)}.option-arrow{margin-left:auto;color:#79867e}.match-code{font-family:Consolas,monospace;font-size:12px;letter-spacing:.5px;color:#6d7771;margin-bottom:2px}.selection-panel{background:#eaf0e8;border-color:#d5dfd2;margin-top:18px}.date-field{display:flex;gap:12px;align-items:end;margin-top:18px}.date-field>div{flex:1}.date-field input{width:100%;padding:10px;border:1px solid #b8c5b8;border-radius:7px;background:#fff;min-height:44px}.date-origin{font-size:12px;color:#49634e;margin-top:7px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--ink);color:white;border-radius:9px;padding:13px 19px;min-height:48px;font-weight:600;text-decoration:none;font-size:14px}.primary:hover{background:#30434a}.primary.red{background:var(--red)}.primary.red:hover{background:#c53f31}.secondary{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:white;padding:10px 14px;min-height:44px;color:var(--ink);font-size:13px;text-decoration:none}.secondary:hover{background:#eef2ec}.text-button{background:transparent;color:var(--muted);padding:9px 0;text-decoration:underline;text-underline-offset:4px;font-size:13px}.full-width{width:100%;margin-top:18px}.error{padding:12px 14px;border:1px solid #edc3ba;background:#fff2ee;color:#923b30;border-radius:9px;margin-top:14px;font-size:13px}.guide{padding-top:11px}.guide-title{font-size:20px;letter-spacing:-.4px;margin-bottom:20px}.guide-steps{display:grid;gap:22px}.guide-item{display:grid;grid-template-columns:28px 1fr;gap:12px;font-size:14px}.guide-n{border:1px solid #cdd6cd;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;color:#64776b;font-size:12px}.guide-item p{color:var(--muted);font-size:13px;margin-top:5px}.scope-box{border-top:1px solid var(--line);margin-top:29px;padding-top:20px;color:var(--muted);font-size:12px}.scope-box strong{display:block;color:var(--ink);font-size:14px;margin-bottom:5px}.photo-button{display:flex;align-items:center;gap:8px;margin-top:18px}.plate-preview{max-width:100%;max-height:240px;border-radius:9px;margin-top:12px}.equipment-strip{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #ced8ce;background:#eaf0e8;padding:16px 20px;border-radius:12px;margin-bottom:26px}.equipment-strip h2{font-size:17px;margin:2px 0 3px}.equipment-strip p{font-size:12px;color:#57705d}.equipment-strip .secondary{background:transparent;border-color:#b9c9b9}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 302px;gap:28px;align-items:start}.search-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin:0 0 18px}.search-heading p{color:var(--muted);font-size:13px;margin-top:7px}.search-wrap{position:relative}.search-input{padding-left:46px;padding-right:42px}.search-icon{position:absolute;left:16px;top:17px;color:#77867c;pointer-events:none}.clear-query{position:absolute;right:8px;top:7px;background:transparent;font-size:23px;color:var(--muted);width:40px;height:40px}.search-tools{margin:12px 0 24px;display:flex;justify-content:space-between;gap:15px;align-items:center}.search-tools .chip-row{margin:0}.small-link{font-size:12px;color:#617268;background:transparent;text-decoration:underline;text-underline-offset:3px}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.result-heading strong{font-size:13px}.result-heading span{font-size:12px;color:var(--muted)}.parts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.part{background:white;border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;min-width:0;transition:border-color .15s,box-shadow .15s}.part:hover{border-color:#adbaac;box-shadow:0 4px 15px #1c302808}.part-main{display:flex;align-items:start;gap:13px;flex:1}.part-img{width:76px;height:76px;object-fit:contain;border:1px solid #edf0e9;border-radius:8px;flex-shrink:0;background:white}.part-placeholder{width:47px;height:47px;background:#f0f3ee;display:grid;place-items:center;border-radius:9px;flex-shrink:0;color:#829184}.part-title{font-size:13px;font-weight:600;line-height:1.4;margin:0 0 7px}.part-article{font-family:Consolas,monospace;font-size:20px;font-weight:700;letter-spacing:.1px;overflow-wrap:anywhere;color:#243b31}.part-pos{font-size:11px;color:#7c897f;margin-top:4px}.part-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #edf0e9;align-items:center;justify-content:space-between}.part-actions button{font-size:12px;background:transparent;color:#52655a;padding:4px 0}.part-actions .open-part{font-weight:650;color:var(--ink)}.badge{display:inline-flex;gap:5px;align-items:center;font-size:10px;line-height:1.3;border-radius:5px;padding:5px 7px;background:#f0f2ef;color:#68756b;margin-top:10px;align-self:start}.badge.good{background:#e7f1e9;color:#2f7053}.badge.pending{background:#fff1da;color:#8c612b}.badge.out{background:#fbe8e4;color:#9c4b3e}.sidebar{display:grid;gap:16px;position:sticky;top:20px}.sidebar .panel{padding:19px}.sidebar h3{font-size:15px}.sidebar p{font-size:12px;color:var(--muted);margin-top:8px}.material-link{display:flex;align-items:center;gap:11px;background:#f3f5f0;border:1px solid #e1e7dc;border-radius:9px;margin-top:13px;padding:12px;text-decoration:none;font-size:13px;width:100%;text-align:left}.material-link small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.material-link svg{flex-shrink:0}.help-note{display:flex;gap:9px;font-size:12px;color:#647265;margin:16px 0 20px;padding:12px 14px;border-left:2px solid #c2d0be;background:#eef2e9;border-radius:0 7px 7px 0}.questions{border-color:#e2d2b4;background:#fffaf0}.question{margin-top:17px}.question:first-of-type{margin-top:13px}.question-label{font-size:12px;font-weight:650;margin-bottom:8px}.question .chip-row{margin-top:6px}.question input{width:100%;border:1px solid #d6c5a8;background:white;border-radius:6px;padding:8px;min-height:42px}.question select{max-width:100%;border:1px solid #d6c5a8;background:white;border-radius:6px;padding:8px}.empty{padding:35px 22px;border:1px dashed #cdd6c9;text-align:center;border-radius:12px;background:#ffffff60}.empty h3{margin-bottom:9px}.empty p{font-size:13px;color:var(--muted)}.excluded{margin-top:20px;border-top:1px solid var(--line);padding-top:14px}.excluded summary{font-size:12px;color:#7d6d64;cursor:pointer;margin-bottom:15px}.excluded .part{opacity:.78}.mobile-materials{display:none}.footer{max-width:1248px;margin:0 auto;padding:20px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#8b958b;font-size:11px}.modal-backdrop{position:fixed;inset:0;background:#10201890;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(3px)}.modal{background:var(--bg);border:1px solid white;border-radius:18px;max-width:760px;width:100%;max-height:93vh;overflow:auto;box-shadow:0 15px 80px #091b2a40}.modal-head{display:flex;justify-content:space-between;gap:16px;align-items:start;padding:22px 26px;border-bottom:1px solid var(--line);background:white;position:sticky;top:0;z-index:3}.modal-head h2{font-size:20px}.modal-head p{font-size:12px;color:var(--muted);margin-top:5px}.close-modal{background:#eef1ec;border-radius:50%;width:36px;height:36px;font-size:23px;line-height:1;flex-shrink:0}.modal-content{padding:26px}.detail-layout{display:grid;grid-template-columns:220px 1fr;gap:26px}.detail-photo{width:100%;aspect-ratio:1;object-fit:contain;background:white;border-radius:12px;border:1px solid var(--line);cursor:zoom-in}.detail-placeholder{height:170px;background:#eaf0e6;border-radius:12px;display:grid;place-items:center;color:#91a18c}.detail-code{font:700 31px Consolas,monospace;overflow-wrap:anywhere;margin-bottom:15px}.detail-name{font-size:16px;margin:9px 0 15px}.detail-caption{font-size:11px;color:var(--muted);margin-top:9px}.detail-equipment{border-top:1px solid var(--line);margin-top:25px;padding-top:18px}.detail-equipment h3{font-size:14px;margin-bottom:9px}.detail-equipment p{font-size:13px;color:var(--muted);margin-top:6px}.source-record{border:1px solid var(--line);background:white;border-radius:9px;margin-top:12px;padding:13px}.source-record p{font-size:12px;color:#5f6f63}.source-record a{font-size:12px;text-underline-offset:3px}.source-record .source-meta{margin:7px 0}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:19px}.scheme-modal{max-width:1150px}.scheme-tools{display:flex;gap:8px;padding:12px 20px;background:white;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line)}.scheme-tools select{padding:8px;border:1px solid var(--line);border-radius:7px;max-width:100%;min-height:42px}.scheme-tools .zoom-actions{display:flex;gap:6px;margin-left:auto}.scheme-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px}.scheme-viewport{height:65vh;overflow:auto;background:#e3e8e0;padding:12px;position:relative;overscroll-behavior:contain}.scheme-canvas{width:100%;position:relative;margin:auto;line-height:0}.scheme-canvas img{width:100%;display:block}.hotspot{position:absolute;transform:translate(-50%,-50%);width:28px;min-height:25px;border:1px solid #b6503570;background:#fff2d1a0;color:#852d20;font-size:10px;font-weight:700;line-height:1;z-index:1;border-radius:5px;padding:2px}.hotspot:hover,.hotspot.chosen{z-index:2;background:#d94839;color:white;border-color:#d94839;box-shadow:0 0 0 4px #d9483920}.scheme-parts{height:65vh;overflow:auto;background:white;border-left:1px solid var(--line);padding:15px}.scheme-item{display:block;text-align:left;background:#f4f6f0;border:1px solid #e1e7dc;border-radius:7px;padding:10px;width:100%;margin-bottom:8px}.scheme-item strong{font:700 15px Consolas,monospace;display:block;margin:3px 0}.scheme-item span{font-size:11px}.scheme-item small{display:block;font-size:11px;color:var(--muted)}.scheme-caption{padding:10px 20px;font-size:11px;color:var(--muted);background:#f7f9f3}.offline-list{margin:18px 0;padding:0;list-style:none;display:grid;gap:12px}.offline-list li{padding:13px 15px;background:white;border-radius:9px;border:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;font-size:13px}.offline-list span{color:var(--muted)}.offline-progress{margin:15px 0;padding:12px;border-radius:8px;background:#e4ede0;font-size:13px}.photo-large{max-width:1100px}.photo-large img{display:block;width:100%;height:auto}.photo-source{font-size:11px;color:var(--muted);margin-top:8px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(100px);background:var(--ink);color:white;padding:12px 20px;border-radius:9px;box-shadow:0 5px 20px #0002;z-index:100;font-size:13px;opacity:0;transition:.2s;max-width:90vw}#toast.show{transform:translateX(-50%) translateY(0);opacity:1}@media(min-width:1400px){.intro{padding:10px 70px 0 20px}}@media(max-width:1320px){main,.footer{margin-left:32px;margin-right:32px}.workspace{gap:22px;grid-template-columns:minmax(0,1fr) 285px}}@media(max-width:1020px){.parts-grid{grid-template-columns:1fr}.intro{gap:32px;grid-template-columns:1.2fr .8fr}.part-img{width:70px;height:70px}.topbar-inner{padding:15px 28px}}@media(max-width:760px){.topbar-inner{min-height:72px;padding:13px 20px}.brand{font-size:15px}.brand small{font-size:10px}.brand-mark{width:33px;height:37px;font-size:24px}.test-label{display:none}.connection{font-size:10px;max-width:122px;text-align:right}.top-actions{gap:8px}main{margin:0;padding:0 18px 35px}.steps{padding:20px 0;margin-bottom:25px}.step{gap:7px;font-size:11px}.step-num{width:24px;height:24px;flex-shrink:0}.step-line{margin:0 10px;min-width:8px}.intro{display:block}.eyebrow{font-size:10px;margin-top:0}h1{font-size:31px;letter-spacing:-.8px}.lead{font-size:14px;margin:13px 0 23px}.guide{margin-top:32px}.guide-steps{gap:17px}.panel{padding:18px}.identify-input{font-size:16px;padding:14px 12px}.date-field{display:block}.equipment-strip{padding:14px;margin-bottom:23px;align-items:start}.equipment-strip h2{font-size:14px}.equipment-strip .secondary{padding:8px;font-size:11px;min-height:37px}.equipment-strip p{font-size:11px}.workspace{display:flex;flex-direction:column;gap:18px}.results-column{width:100%}.sidebar{position:static;width:100%;order:-1}.sidebar .materials-panel{display:none}.sidebar .info-panel{display:none}.search-heading h1{font-size:27px}.search-heading{margin-bottom:16px}.search-heading p{font-size:12px}.search-heading .secondary{font-size:12px;padding:8px 10px;min-height:40px}.mobile-materials{display:flex;gap:8px;overflow:auto;align-items:center;margin-top:13px}.mobile-materials .secondary{white-space:nowrap;flex-shrink:0;font-size:12px}.search-tools{margin:12px 0 19px;align-items:start}.search-tools .chip-row{gap:6px}.chip{font-size:11px;padding:6px 9px}.small-link{font-size:11px;padding:3px 0;white-space:nowrap}.help-note{font-size:11px;padding:10px 11px;margin:13px 0 17px}.result-heading strong{font-size:12px}.result-heading span{font-size:11px}.parts-grid{gap:10px}.part{padding:14px;min-height:0}.part-title{font-size:13px}.part-article{font-size:22px}.part-img{width:78px;height:78px}.part-placeholder{width:43px;height:43px}.badge{font-size:10px;margin-top:7px}.footer{margin:0 18px;padding:17px 0;font-size:10px}.footer span:first-child{display:none}.modal-backdrop{padding:8px;align-items:end}.modal{border-radius:15px;max-height:95dvh}.modal-head{padding:16px}.modal-head h2{font-size:17px}.modal-content{padding:18px}.detail-layout{grid-template-columns:105px 1fr;gap:17px}.detail-code{font-size:24px}.detail-name{font-size:14px}.detail-photo{border-radius:8px}.detail-layout .primary{font-size:12px;padding:10px 13px;min-height:43px}.detail-equipment{margin-top:19px}.scheme-layout{display:flex;flex-direction:column}.scheme-viewport{height:52dvh;padding:6px}.scheme-parts{height:auto;max-height:24dvh;border-left:0;border-top:1px solid var(--line);padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.scheme-item{margin:0}.scheme-tools{padding:10px;gap:6px}.scheme-tools select{font-size:12px;max-width:180px}.scheme-tools .secondary{font-size:12px;padding:6px 10px}.scheme-caption{font-size:10px;padding:9px 12px}.hotspot{width:24px;min-height:23px;font-size:9px}.offline-list li{font-size:12px}.offline-list{gap:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.search-input::-webkit-search-cancel-button{appearance:none}.mobile-materials{scrollbar-width:none}.mobile-materials::-webkit-scrollbar{display:none}.hotspot{font-size:0;background:transparent;border:0;width:22px;min-height:20px}.hotspot:hover,.hotspot.chosen{font-size:10px;width:30px;min-height:24px}.hotspot:hover{outline:1px solid #d94839}.questions{margin-bottom:16px}.source-meta{font-size:12px;color:#627064}
.is-local a[download]{display:none}
@media(max-width:760px){#mobile-questions-slot .questions{padding:13px;margin-top:14px;margin-bottom:12px}#mobile-questions-slot .questions>.eyebrow,#mobile-questions-slot .questions>h3,#mobile-questions-slot .questions>p{display:none}#mobile-questions-slot .question:first-of-type{margin-top:0}#mobile-questions-slot .questions>.text-button{font-size:11px;padding:6px 0 0}#mobile-questions-slot .question p{font-size:11px;margin-top:4px}#mobile-questions-slot .question .question-label{font-size:12px;margin:0 0 6px}.mobile-materials .secondary{min-height:38px}.search-tools{margin-bottom:14px}}
.hotspot,.hotspot:hover,.hotspot.chosen{min-height:0;padding:0;font-size:0;border:0;border-radius:0;background:transparent;box-shadow:none}.hotspot:hover,.hotspot.chosen{outline:1px solid #d94839}.hotspot.chosen:after,.hotspot:hover:after{content:attr(data-position);position:absolute;left:0;bottom:100%;width:32px;line-height:20px;font-size:10px;font-weight:700;text-align:center;color:white;background:#d94839;border-radius:4px;pointer-events:none}.scheme-canvas img{user-select:none}

/* V2: visible zoom controls, draggable scheme, in-place product preview. */
.scheme-modal{max-width:1280px}.scheme-tools{gap:12px;padding:13px 18px}.scheme-tools select{flex:1;max-width:330px;min-width:200px}.scheme-tools .zoom-actions{gap:8px;align-items:center}.zoom-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;min-height:44px;border:1px solid #df8277;border-radius:8px;background:#fff0ec;color:#9a3025;font-size:13px;font-weight:650}.zoom-button b{font-size:25px;font-weight:500;line-height:1}.zoom-plus{background:#d94839;border-color:#d94839;color:white;box-shadow:0 3px 9px #d9483920}.zoom-button:hover{background:#f9dacf}.zoom-plus:hover{background:#c63b2d}.zoom-button:disabled{opacity:.45}.zoom-fit{min-height:44px;font-size:12px}.zoom-actions output{min-width:47px;font:600 13px Consolas,monospace;text-align:center;color:#384c41}.scheme-interaction-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px}.scheme-interaction-row>div{display:flex;gap:16px;align-items:center}.pan-hint{display:flex;gap:7px;align-items:center;color:#65756a;font-size:11px}.scheme-interaction-row button{font-size:11px;min-height:29px}.scheme-interaction-row button[aria-pressed=true]:not(:disabled){font-weight:700;color:#c44132}.scheme-viewport{cursor:grab;touch-action:none;user-select:none}.scheme-viewport.is-dragging,.scheme-viewport.is-dragging *{cursor:grabbing!important}.scheme-canvas{isolation:isolate}.scheme-canvas>img{pointer-events:none;-webkit-user-drag:none}.part-regions{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.part-region{fill:transparent;stroke:transparent;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:all;cursor:pointer;transition:fill .12s,stroke .12s}.part-region.selected{fill:#e64b3d30;stroke:#d94839}.part-region:hover{fill:#e64b3d22;stroke:#d94839}.part-region:focus-visible{outline:none;stroke:#168189;stroke-width:3}.hotspot{z-index:2}.hotspot.chosen,.hotspot:hover{z-index:3}.scheme-layout{grid-template-columns:minmax(0,1fr) 300px}.scheme-position-title{font-size:12px;line-height:1.5;color:#627064;margin-bottom:12px}.scheme-position-title strong{color:#233b2d}.scheme-selection{border:1px solid #dbe3d7;border-radius:11px;padding:12px;background:#f5f8f0;margin-bottom:12px}.scheme-photo{background:white;border:1px solid #e1e7dc;border-radius:8px;overflow:hidden;margin-bottom:12px}.scheme-photo img{display:block;object-fit:contain;width:100%;height:175px}.scheme-photo span{display:block;text-align:center;font-size:10px;color:#849080;padding:4px 6px}.scheme-selection-article{font:700 23px Consolas,monospace;color:#243b31;overflow-wrap:anywhere;margin-bottom:8px}.scheme-selection h3{font-size:13px;line-height:1.4}.scheme-selection-actions{display:grid;gap:7px;margin-top:15px}.scheme-selection-actions button{padding:9px 10px;min-height:39px;font-size:12px;width:100%}.scheme-no-photo{min-height:85px;background:#eef2e8;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;font-size:11px;color:#83927c;margin-bottom:12px}.scheme-parts.has-selection{display:block}.scheme-selection .badge{font-size:10px}.scheme-caption{font-size:11px}.scheme-selection-info{min-width:0}
@media(max-width:760px){.scheme-modal .modal-head{padding:13px 15px}.scheme-tools{padding:10px 12px;gap:8px}.scheme-tools select{max-width:none;width:100%;min-width:0;flex-basis:100%;min-height:40px;font-size:12px}.scheme-tools .zoom-actions{width:100%;justify-content:space-between;gap:5px;margin-left:0}.zoom-button{font-size:11px;padding:8px;gap:5px;min-height:44px}.zoom-button b{font-size:21px}.zoom-actions output{min-width:33px;font-size:11px}.zoom-fit{font-size:10px;padding:6px 8px;min-height:44px}.scheme-interaction-row{display:block}.pan-hint{font-size:10px}.scheme-interaction-row>div{gap:15px;margin-top:3px}.scheme-interaction-row button{min-height:27px;font-size:10px}.scheme-viewport{height:40dvh;padding:6px}.scheme-parts{max-height:28dvh;height:auto;display:grid;grid-template-columns:1fr 1fr;padding:11px;gap:8px}.scheme-position-title{grid-column:1/-1;font-size:11px;margin:0 0 6px}.scheme-parts.has-selection{display:block}.scheme-selection{display:grid;grid-template-columns:92px 1fr;gap:12px;margin:0 0 6px;padding:10px}.scheme-photo{margin:0;align-self:start}.scheme-photo img{height:88px}.scheme-photo span{font-size:8px;padding:3px}.scheme-selection-article{font-size:20px;margin-bottom:5px}.scheme-selection h3{font-size:11px}.scheme-selection-actions{margin-top:9px;gap:5px}.scheme-selection-actions button{font-size:10px;min-height:32px;padding:6px 8px}.scheme-no-photo{height:88px;margin:0;display:grid;gap:2px;align-content:center;justify-items:center;min-height:0;font-size:9px}.scheme-caption{font-size:10px;padding:8px 12px}.scheme-parts>.text-button{font-size:11px;padding:4px 0}}

/* Keep scheme controls visible while its canvas and part list scroll independently. */
.scheme-modal{display:flex;flex-direction:column;height:93dvh;overflow:hidden}.scheme-modal>.modal-head,.scheme-modal>.scheme-tools,.scheme-modal>.scheme-caption{flex-shrink:0}.scheme-layout{flex:1;min-height:0;overflow:hidden}.scheme-viewport,.scheme-parts{height:100%;max-height:none}
@media(max-width:760px){.scheme-modal{height:95dvh}.scheme-layout{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(140px,1fr) auto}.scheme-layout>.scheme-parts{height:auto;max-height:28dvh}.scheme-layout>.scheme-viewport{height:100%;min-height:0}.scheme-modal .scheme-caption{font-size:9px;padding:7px 10px}}
