*{box-sizing:border-box}body{margin:0;background:#f2f4f6;color:#182630;font:14px -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif}button,a,input{touch-action:manipulation}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #e97a30;outline-offset:3px}header{height:70px;display:flex;align-items:center;gap:35px;padding:0 32px;background:white;border-bottom:1px solid #e7ebef}header a{color:#223340;text-decoration:none;font-weight:650}header span{color:#86929b;font-size:12px}header b{margin-left:auto;font-size:11px;border:1px solid #e3e8ed;padding:6px 12px;border-radius:20px;font-weight:500}main{display:grid;grid-template-columns:minmax(0,1fr) 365px;min-height:calc(100vh - 70px)}.viewport{position:sticky;top:0;height:calc(100vh - 70px);min-height:580px;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#fff,#e7edf2)}#scene{position:absolute;inset:0}#scene canvas{display:block;touch-action:none}.title{position:absolute;top:33px;left:35px;z-index:1;pointer-events:none}.title small{font-size:10px;letter-spacing:2px;color:#c17a49}.title h1{font-size:30px;letter-spacing:-1px;font-weight:650;margin:10px 0}.title p{color:#8996a0;font-size:13px;margin:0}.views{position:absolute;bottom:69px;left:50%;transform:translateX(-50%);display:flex;gap:3px;border:1px solid #fff;background:#ffffffda;backdrop-filter:blur(12px);padding:5px;border-radius:12px;box-shadow:0 5px 25px #2335420a;white-space:nowrap}.views button{border:0;background:none;border-radius:8px;padding:9px 18px;color:#758390;font-size:12px}.views button.active{background:#203442;color:#fff}.legend{position:absolute;left:35px;bottom:140px;display:grid;gap:9px;color:#73838e;font-size:10px;pointer-events:none}.legend span{display:flex;align-items:center;gap:8px}.legend i{width:7px;height:7px;border-radius:50%}.silver{background:#79909e}.orange{background:#e78c40}.hint{position:absolute;bottom:23px;left:35px;right:35px;display:flex;justify-content:space-between;color:#8997a0;font-size:11px;pointer-events:none}aside{background:#fff;padding:28px;border-left:1px solid #e5ebef}.panel-heading{display:flex;align-items:center;gap:8px;font-size:11px;color:#698087}.dot{height:6px;width:6px;border-radius:50%;background:#589986}.version{margin-left:auto;color:#9ca7af}aside h2{font-size:20px;line-height:1.5;margin:20px 0 10px}.description{font-size:12px;line-height:1.9;color:#84939e}.parts{margin-top:23px}.parts>div{display:flex;gap:13px;align-items:center;padding:11px 0}.parts>div>span{background:#f0f3f6;padding:9px;border-radius:9px;font-size:10px;color:#8596a2}.parts p{margin:0}.parts b{font-size:12px;font-weight:600}.parts small{display:block;color:#9aa4ad;font-size:10px;margin-top:5px}.separator{height:1px;background:#edf0f3;margin:20px 0}h3{font-size:13px;margin:0 0 20px}aside>label{display:block;margin-bottom:21px;font-size:12px;color:#788791}output{float:right;font-size:11px;color:#273e4e}input[type=range]{width:100%;display:block;margin:14px 0 0;accent-color:#dc833f;height:5px;cursor:pointer}.toggles{display:flex;gap:20px;font-size:11px;color:#71818d;align-items:center;margin-bottom:21px}.toggles label{display:flex;gap:6px;align-items:center}.toggles input{accent-color:#dc833f}.dimensions{display:grid;grid-template-columns:1fr 1fr;gap:15px 10px;background:#f6f8fa;padding:16px;border-radius:12px}.dimensions span{display:block;color:#96a0a9;font-size:10px;margin-bottom:6px}.dimensions b{font-size:12px;font-weight:600}details{margin:21px 0;color:#8c7967;font-size:11px;background:#fbf6ef;padding:12px;border-radius:10px;line-height:1.8}summary{cursor:pointer}details p{margin:10px 0}details strong{font-weight:600}.downloads{display:grid;grid-template-columns:1fr 1fr;gap:9px}button{border:1px solid #dce3e9;border-radius:9px;padding:11px 12px;background:#fff;color:#546774;font-size:11px}.primary{background:#213746;color:white;border-color:#213746}#reference{margin-top:11px;width:100%;border:0;background:#f6f8fa}.footnote{font-size:10px;line-height:1.7;color:#a1a9b1;margin-bottom:0}dialog{width:min(1000px,94vw);border:0;border-radius:16px;padding:0;background:#111;color:white}dialog::backdrop{background:#142333bc}dialog>div{display:flex;justify-content:space-between;align-items:center;padding:12px 20px}dialog button{border:0;background:#ffffff18;color:#fff}dialog img{width:100%;display:block;max-height:80vh;object-fit:contain}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:10px;background:#203744;color:white;font-size:12px;display:none;z-index:5}#loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#6d8190;font-size:13px;background:#fffc;padding:15px;border-radius:10px}
@media(max-width:800px){header{height:57px;padding:0 18px;gap:15px}header span{font-size:10px}header b{padding:5px 8px;font-size:10px}main{display:block}.viewport{position:relative;height:65vh;min-height:480px;max-height:700px}.title{left:21px;top:23px}.title h1{font-size:24px}.title small{font-size:8px}.title p{font-size:11px}.views{bottom:48px}.views button{padding:8px 15px}.hint{left:21px;right:21px;bottom:18px;font-size:10px}.legend{left:21px;bottom:100px;font-size:9px}aside{border:0;border-radius:22px 22px 0 0;position:relative;margin-top:-12px;padding:25px 22px}.parts{display:flex;gap:10px;flex-wrap:wrap}.parts>div{gap:8px;flex:1;min-width:135px}.parts small{font-size:9px}}

#annotations{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.annotation-toggle{position:absolute;right:22px;top:24px;z-index:3;background:#fffffff0;border:1px solid #dce5ec;border-radius:24px;padding:10px 14px;font-size:12px;display:flex;gap:7px;align-items:center;color:#294657;box-shadow:0 4px 18px #19374408}.annotation-toggle input{accent-color:#db833f}.hole-editor{margin:22px 0;padding:17px;background:#f6f8fa;border:1px solid #e9eef2;border-radius:16px}.hole-editor h3{display:flex;align-items:center;justify-content:space-between;margin:0 0 8px}.hole-editor h3 button{font-size:10px;padding:5px 7px;border:0;background:transparent;color:#b96b36}.hole-editor p{font-size:11px;color:#82909b;line-height:1.7}.hole-editor label{font-size:11px;display:flex;justify-content:space-between;align-items:center;margin-top:18px;color:#596c79}.hole-editor label span{display:flex;align-items:center;gap:5px}.hole-editor input[type=number]{width:60px;background:white;border:1px solid #d9e2e9;border-radius:7px;padding:6px;color:#203847;font-size:12px}.hole-editor input[type=range]{margin:12px 0 18px}.hole-note{border-top:1px solid #e0e7ed;padding-top:10px}#reset-holes{width:100%;padding:8px}.views button{padding-left:13px;padding-right:13px}.legend{display:none}
@media(max-width:800px){.annotation-toggle{top:106px;right:18px;font-size:10px;padding:7px 10px}.title p{display:none}.views button{padding:8px 10px;font-size:11px}.viewport{min-height:560px}.hole-editor{padding:16px}}

[hidden]{display:none!important}.annotation-toggle,.legend{display:none}.component-tabs{display:flex;gap:5px;justify-content:space-between;border-bottom:1px solid #eef1f4;padding-bottom:17px}.component-tabs button{flex:1;border:0;background:transparent;padding:9px 3px;color:#80909d;font-size:11px;border-radius:13px}.component-tabs button span{display:block;font-size:24px;height:32px;line-height:30px}.component-tabs button.selected{background:#fff0e3;color:#c47036}.selection-heading{display:flex;justify-content:space-between;align-items:center;margin:18px 0 10px}.selection-heading h2{margin:0;font-size:20px}.selection-heading>span{font-size:10px;color:#97a4ad}.part-summary{display:grid;grid-template-columns:1fr 1fr;background:#f6f8fa;border-radius:15px;gap:16px;padding:17px;margin-bottom:18px}.part-summary div span{display:block;font-size:11px;color:#8d9ca7;margin-bottom:7px}.part-summary div b{font-size:19px;font-weight:600;color:#263e50}.part-summary p{grid-column:1/-1;margin:0;font-size:10px;color:#939ea7;line-height:1.7}.hole-tabs{display:flex;background:#f3f6f9;padding:4px;border-radius:10px;margin:12px 0}.hole-tabs button{flex:1;border:0;background:transparent;padding:9px}.hole-tabs button.selected{background:#e18a4e;color:white}.hole-editor{margin-bottom:9px}.hole-editor h3{display:none}.hole-editor p:first-of-type{margin-top:0}#edit-hole,#finish-hole,#report{width:100%}#overall-controls{font-size:12px;color:#768894;margin-bottom:23px}.export-area{border-top:1px solid #e8edf2;margin-top:22px;padding-top:20px}.export-area>.primary{padding:14px;font-size:13px}.export-area .downloads{margin-top:9px}.export-area p{font-size:10px;line-height:1.7;color:#8d9ca7}.display-options{background:#f5f8fa;color:#728593}.display-options label{display:block;margin-top:15px}.display-options .toggles{margin-bottom:0}#report-dialog{background:#f1f5f8;color:#203746;width:min(800px,96vw);max-height:94vh}#report-dialog>div{background:#fff}#report-dialog img{max-height:none;width:100%}#report-dialog button{background:#203746;color:white}.report-actions{position:sticky;bottom:0;gap:10px;justify-content:center!important}.report-actions button{flex:1}#report-dialog>p{text-align:center;font-size:12px;padding-bottom:12px}.sheet-handle{display:none}
@media(max-width:800px){header{display:none}.viewport{height:57svh;min-height:420px;max-height:580px}.title{top:23px}.title h1{font-size:23px}.views{bottom:34px}.hint{bottom:12px;font-size:9px}.views button{padding:8px 10px}.sheet-handle{display:block;width:34px;height:4px;background:#d7e0e7;border-radius:5px;margin:-10px auto 14px}aside{padding:23px 18px;border-radius:26px 26px 0 0;margin-top:-8px}.component-tabs{padding-bottom:9px}.component-tabs button{font-size:11px}.selection-heading{margin-top:18px}.export-area{margin-top:18px}.part-summary{margin-bottom:16px}.hole-editor input[type=range]{height:7px}body.editing-hole .viewport{position:sticky;top:0;z-index:1;height:43svh;min-height:300px}body.editing-hole aside{z-index:2}body.editing-hole .title h1{font-size:18px}body.editing-hole .title small{display:none}}

.part-summary .material-note{grid-column:1/-1;padding-bottom:14px;border-bottom:1px solid #e0e7ed}.material-note small{display:block;margin-top:7px;color:#66808f;font-size:12px}

#fullscreen-view{position:absolute;right:20px;top:25px;z-index:4;background:#ffffffed;border:1px solid #dce5ec;border-radius:20px;padding:9px 13px;color:#294657;font-size:12px}
.views{z-index:3}
body.model-fullscreen{overflow:hidden}
body.model-fullscreen .viewport{position:fixed;inset:0;z-index:1000;width:100%;height:100dvh;min-height:0;max-height:none;border-radius:0}
body.model-fullscreen aside,body.model-fullscreen header{visibility:hidden}
body.model-fullscreen .title{top:max(20px,env(safe-area-inset-top));left:20px}
body.model-fullscreen .title small,body.model-fullscreen .title p{display:none}
body.model-fullscreen .title h1{font-size:18px}
body.model-fullscreen .views{bottom:calc(30px + env(safe-area-inset-bottom))}
body.model-fullscreen .hint{bottom:calc(10px + env(safe-area-inset-bottom))}
body.model-fullscreen #fullscreen-view{top:max(20px,env(safe-area-inset-top));right:16px}
@media(max-width:800px){#fullscreen-view{top:24px;right:12px;font-size:11px;padding:8px 10px}.title h1{font-size:20px}.title{left:16px}.title small{font-size:7px}body.model-fullscreen .title{left:12px}body.model-fullscreen .title h1{font-size:16px}}

#full-part-info{position:absolute;z-index:4;bottom:calc(82px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(430px,calc(100% - 24px));border:1px solid #dce5ec;background:#ffffffed;backdrop-filter:blur(12px);border-radius:16px;padding:14px 16px;pointer-events:none;box-shadow:0 4px 20px #20374609}
#full-part-info strong{display:block;font-size:14px;color:#294657;margin-bottom:9px}#full-part-info span{display:block;font-size:12px;color:#5d7484;line-height:1.8}#full-part-info small{display:block;color:#9aa7b1;font-size:10px;margin-top:7px}
body.model-fullscreen #scene{bottom:180px}
@media(max-height:500px){body.model-fullscreen #scene{bottom:0;right:300px}#full-part-info{width:280px;left:auto;right:12px;transform:none}}

#full-part-info{pointer-events:auto;max-height:210px;overflow:auto;padding:12px 14px}
#full-part-info .part-summary{margin:7px 0;gap:10px;padding:10px}#full-part-info .part-summary div span{font-size:10px}#full-part-info .part-summary div b{font-size:14px}#full-part-info .part-summary p{font-size:10px}#full-part-info .part-summary .material-note b{font-size:15px}
.full-component-tabs{display:flex;gap:5px;margin-bottom:10px}.full-component-tabs button{flex:1;padding:7px 3px;border:0;font-size:11px;background:#f2f5f8}.full-component-tabs button.selected{color:#bd763f;background:#fff0e3}
body.model-fullscreen #scene{bottom:290px}
#model-preview{position:absolute;inset:0;pointer-events:none;z-index:1;transition:opacity .25s}#model-preview img{position:absolute;width:100%;height:100%;object-fit:contain}.preview-low{filter:blur(2px)}.preview-clear{opacity:0;transition:opacity .25s}.preview-clear.ready{opacity:1}body.viewer-ready #model-preview{opacity:0;visibility:hidden}
#loading{z-index:3;top:auto;bottom:90px;max-width:90%;text-align:center;font-size:12px;line-height:1.8;transform:translateX(-50%)}#loading a{color:#bd763f}
@media(max-height:500px){body.model-fullscreen #scene{bottom:0;right:300px}}

#full-leader{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;display:none}
#full-part-info{max-height:185px;overflow:auto;border-radius:14px;padding:13px 16px;box-shadow:none}
#full-part-info strong{font-size:13px;margin-bottom:7px}#full-part-info>span{font-size:12px;line-height:1.9}#full-part-info button{padding:5px 9px;font-size:11px;margin-top:5px;color:#ac713d;background:#fff5ec;border:0}.full-hole-switch{display:flex;gap:8px}
body.model-fullscreen #scene{bottom:250px}
@media(max-height:500px){body.model-fullscreen #scene{bottom:0;right:300px}}

body.model-fullscreen #full-part-info{bottom:auto;right:auto;transform:none}
body.model-fullscreen #full-part-info{width:min(260px,calc(100% - 24px));padding:11px 13px;overflow-wrap:anywhere}

body.model-fullscreen #full-part-info{touch-action:none;cursor:grab;max-height:220px}body.model-fullscreen #full-part-info:active{cursor:grabbing}.callout-drag-hint{display:flex;align-items:center;justify-content:space-between;color:#8b9ca8;font-size:10px;margin-bottom:7px}#full-part-info .callout-drag-hint button{margin:0;padding:3px 6px;font-size:10px;background:#f2f5f8;color:#678091}
.studio-entry{display:block;margin:18px 0 0;padding:13px;text-align:center;border-radius:10px;background:#fff1e6;color:#ac6938;text-decoration:none;font-size:12px;font-weight:600}.studio-entry:hover{background:#ffe7d2}
