:root{font-family:system-ui,-apple-system,'PingFang SC',sans-serif;color:#17333f;background:#eef3f3;font-size:13px}*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;padding:20px 26px;background:#fff;border-bottom:1px solid #d5e3e5}h1{font-size:23px;margin:3px 0}h1 span{font-size:12px;color:#728d94;font-weight:400;margin-left:10px}small{font-size:11px;color:#758e94;font-weight:400}h2{font-size:15px;margin:0 0 12px}h2 small{margin-left:6px}h3{font-size:14px}p{line-height:1.7;font-size:12px;color:#607982}.status{padding:9px 13px;background:#e4f4ed;border-radius:7px;color:#26735b}nav{display:flex;gap:14px;align-items:center;padding:13px 26px;font-size:12px;color:#68818a}nav b{color:#2b6375}nav i{font-style:normal;color:#9caeb3}main{display:grid;grid-template-columns:220px minmax(320px,1fr) 440px;gap:14px;padding:0 20px 20px;max-width:1700px;margin:auto}.panel{background:#fff;border:1px solid #dbe7e8;border-radius:11px;padding:15px;box-shadow:0 4px 20px #203d4b05}.source,.model{height:830px}.sourceimage{position:relative;height:690px;width:140px;margin:auto;overflow:hidden;border-radius:5px}.sourceimage img{width:100%;height:100%}.sourceimage svg{position:absolute;inset:0;width:100%;height:100%}.sourceimage path{stroke:#54ffd5;stroke-width:1;fill:none}.sourceimage .axis{stroke-dasharray:5 5;opacity:.65}.panelhead{display:flex;justify-content:space-between;align-items:center;gap:6px}.buttons,.toolbar,.row{display:flex;gap:6px}.toolbar{margin-top:2px}button,select{border:1px solid #d6e3e7;background:white;color:#37515b;padding:7px 10px;border-radius:6px;cursor:pointer;font:inherit;font-size:12px}button:hover{border-color:#42889e;background:#f2f8fa}button.active,.primary{background:#226b80;color:#fff;border-color:#226b80}button:disabled{opacity:.5;cursor:wait}#viewport{height:652px;position:relative;background:radial-gradient(ellipse at center,#fff 0%,#f1f7f8 70%);margin:12px -4px 0;border-radius:8px;overflow:hidden}#viewport canvas{display:block;width:100%;height:100%;touch-action:none}.metrics{display:flex;justify-content:space-around;background:#f0f6f7;padding:12px;border-radius:7px}.metrics small,.metrics strong{display:block}.metrics strong{font-size:18px;margin-top:3px}aside{display:flex;flex-direction:column;gap:12px}.dimensions{border-top:3px solid #5c9bad}.inventory{border-top:3px solid #bba272}.output{border-top:3px solid #7f92c4}label{font-size:11px;color:#647e87;display:block;flex:1;min-width:0}input[type=number]{width:100%;border:1px solid #d6e2e6;border-radius:5px;padding:7px;margin-top:4px;color:#244653;background:#fbfdfe;font:inherit}input:focus,textarea:focus{outline:2px solid #8dbccc}table{width:100%;border-collapse:collapse;font-size:12px;margin:8px 0}th,td{padding:7px 4px;text-align:left;border-bottom:1px solid #edf2f3}th{font-size:10px;color:#70868e}td input{max-width:100px}details{margin:10px 0}summary{cursor:pointer;font-size:11px;color:#547d8a}.warning{background:#fff8e9;padding:8px 10px;color:#846d3c;border-radius:5px;font-size:11px}textarea{width:100%;resize:vertical;border:1px solid #d5e2e6;border-radius:5px;padding:8px;font:inherit;font-size:11px}.inventory p{margin:5px 0}.inventory button{margin-top:5px}#matches{font-size:11px;line-height:1.8;margin-top:6px}.review{display:flex;align-items:center;gap:5px;margin:10px 0}.review input{margin:0}#progress{font-size:12px;line-height:1.7;color:#5b7680}#downloads{max-height:180px;overflow:auto}#downloads a{display:block;color:#28708b;text-decoration:none;font-size:11px;word-break:break-all;padding:5px 0;border-bottom:1px solid #eaf0f1}.skins{grid-column:1/4}.skinlayout{display:grid;grid-template-columns:230px 1fr;gap:24px}.textureWrap{max-height:560px;overflow:auto;background:#eff3f4;text-align:center;border:1px solid #e1e8eb}.textureWrap img{width:100%;display:block}.skins li{line-height:2;color:#526b74}footer{text-align:center;font-size:11px;color:#83979c;padding:0 15px 20px}@media(min-width:1500px){.source,.model{height:920px}#viewport{height:742px}.sourceimage{height:775px;width:157px}}@media(max-width:1050px){main{grid-template-columns:180px 1fr}aside{grid-column:1/3;display:grid;grid-template-columns:1fr 1fr}.dimensions{grid-row:span 2}.skins{grid-column:1/3}.source,.model{height:810px}.sourceimage{width:135px;height:665px}.status{font-size:11px}}@media(max-width:650px){header{padding:15px;display:block}h1{font-size:20px}.status{margin-top:9px;display:inline-block}nav{overflow:auto;white-space:nowrap;padding:12px}main{padding:0 10px;grid-template-columns:110px minmax(0,1fr);gap:8px}.panel{padding:10px}.source,.model{height:630px}.sourceimage{width:90px;height:445px}.source p{font-size:10px}.source h2 small{display:none}.model h2 small{display:none}.panelhead{display:block}.buttons{margin-bottom:5px}.toolbar{flex-wrap:wrap;gap:3px}button{padding:6px;font-size:10px}#viewport{height:408px}.metrics strong{font-size:12px}.metrics{padding:6px;gap:4px}.metrics small{font-size:9px}aside{display:flex}.skinlayout{grid-template-columns:120px 1fr;gap:12px}.skins h2 small{display:block;margin:5px 0}.skins p{font-size:11px}}

/* v0.2.0：在CAD部位直接编辑外径，长度为只读标尺 */
#cad{width:100%;height:auto;display:block;border:1px solid #dce8ec;border-radius:7px;max-height:610px}.cad-hint{margin:0 0 8px;color:#39798a}.cad-edit{font-family:system-ui,-apple-system,'PingFang SC',sans-serif;background:#eaf6fc;border:1px solid #6aa4c3;border-radius:6px;padding:5px 7px;color:#226b8a}.cad-edit label{font-size:10px;color:#3a6b7e;margin-bottom:2px}.cad-edit>div{display:flex;align-items:center;gap:3px}.cad-edit input[type=number]{width:93px;background:white;border:1px solid #a9cddc;font-size:16px;font-weight:600;color:#125979;padding:3px;margin:0;height:27px;appearance:textfield}.cad-edit input::-webkit-inner-spin-button{appearance:none}.cad-edit span{font-size:10px}.cad-edit b{font-size:16px}.cad-edit input[aria-invalid=true]{border:2px solid #c64444}#cadMessage{font-size:11px;margin:7px 0;color:#567582}.dimensions details{margin-bottom:0}#manufacturingInfo{font-size:11px}

/* v0.3.0 高清修复对照 */
.toolbar{flex-wrap:wrap}.skins a{color:#226b80}#skinQuality{color:#226b80;background:#eef8fc}#texturePreview{cursor:zoom-in}

.artwork{grid-column:1/-1;border-top:3px solid #67a794}.art-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:22px}.text-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin:10px 0}.text-controls input[type=text],.text-controls select{display:block;width:100%;margin-top:5px;padding:7px;border:1px solid #bed4db;border-radius:5px;font:inherit;color:#244653}.text-controls input[type=range],.flag-control input{display:block;width:100%}output{color:#29708b}.flag-control{max-width:200px}#assetLibrary{display:grid;grid-template-columns:1fr 1fr;gap:7px}.asset{border:1px solid #dce7e9;border-radius:6px;padding:8px;display:flex;gap:8px;align-items:center}.asset img{width:48px;height:48px;object-fit:contain;background:white}.asset b{font-size:11px}.asset p{font-size:10px;margin:3px 0}.asset a{font-size:10px;color:#34748a}@media(max-width:650px){.art-grid{grid-template-columns:1fr}.text-controls{gap:5px}}

.reference{grid-column:1/-1;border-top:4px solid #ad8151}.reference-controls{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin:12px 0}.reference-controls label{display:flex;align-items:center;gap:7px}.reference-controls input[type=number]{width:76px}.reference-examples{display:flex;gap:20px;align-items:center}.reference-examples figure{margin:8px 0;flex:1;min-width:0}.reference-examples img{max-width:100%;height:110px;object-fit:contain;border:1px solid #dae3e7;background:white}.reference-examples figure+figure{flex:0 0 160px}.reference-examples figcaption{font-size:12px;line-height:1.5;margin-top:4px}.reference summary{cursor:pointer;color:#22677a;padding:12px 0}.reference table{width:100%;font-size:13px}.reference td,.reference th{padding:8px;text-align:left;border-bottom:1px solid #dce6e9}.reference .muted{font-size:12px;color:#557381}

#texturePreview{object-fit:fill;margin:0 auto}.textureWrap{align-self:start}

.logo-library{grid-column:1/-1;border-top:4px solid #648eab;scroll-margin-top:15px}.logo-filters,.logo-placement{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}.logo-filters input[type=search]{min-width:230px;flex:1;padding:9px;border:1px solid #bed1da;border-radius:6px}.logo-filters label,.logo-placement label{flex:initial;display:flex;align-items:center;gap:7px}.logo-library a{color:#226b80;font-size:12px}#logoGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px;max-height:750px;overflow:auto;padding:3px}.logo-card{padding:12px;border:1px solid #d8e4e9;border-radius:8px;display:flex;flex-direction:column;min-width:0;background:#fbfdfe}.logo-card b{font-size:13px;margin-top:10px;overflow-wrap:anywhere}.logo-card p{font-size:11px;margin:4px 0}.logo-zoom{width:100%;height:140px;background:#e3eaed;padding:7px;cursor:zoom-in}.logo-zoom img{width:100%;height:100%;object-fit:contain}.logo-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:9px}.logo-actions span{font-size:11px;color:#798a92}.logo-actions button{font-size:11px;padding:5px 7px}#logoCount{font-weight:600;color:#226b80}#logoSelection{background:#eff7fa;padding:8px 10px;border-radius:5px}#logoDialog{width:min(760px,94vw);border:1px solid #b8ced6;border-radius:10px;padding:18px}#logoDialog::backdrop{background:#17333f88}#logoLarge{display:block;width:100%;height:65vh;object-fit:contain;background:#e4eaed}#logoDialog h3{margin:0}
@media(max-width:650px){.reference-controls label{flex:1 1 100%}.reference-controls input[type=range]{flex:1;min-width:0;max-width:160px}.logo-filters input[type=search]{min-width:0;width:100%;flex-basis:100%}.logo-placement label{flex-wrap:wrap}.reference table{font-size:11px}}

.logo-zoom,#logoLarge{background-color:#d7e1e5;background-image:conic-gradient(#aebec6 25%,transparent 0 50%,#aebec6 0 75%,transparent 0);background-size:18px 18px}.logo-filters select{max-width:100%;min-width:0}.logo-card p{overflow-wrap:anywhere}.logo-card b{overflow-wrap:anywhere}
