/* Knife Studio 3.1. An extension of the existing CS2-inspired interface. */
.nav[data-view="studio"] .nav-icon{color:#dbbf8a}
.studio-badge{white-space:nowrap;display:inline-flex;align-items:center;gap:10px;color:#d6bd8b;border:1px solid #536475;padding:10px 15px;font-size:10px;font-weight:800;letter-spacing:1.3px;background:#253541}
.knife-studio-teaser{margin:31px 0 24px;padding:23px 26px;display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(100deg,#3b4042 0%,#253844 47%,#15242f 100%);border:1px solid #69707a;position:relative;overflow:hidden}
.knife-studio-teaser:after{content:'◈';position:absolute;font-family:Georgia,serif;font-size:165px;right:22%;top:-80px;opacity:.09;transform:rotate(-14deg);pointer-events:none}
.knife-studio-teaser h2{font:800 35px/.97 var(--head);letter-spacing:1px;color:#e8e7df;margin:5px 0 8px}.knife-studio-teaser p{color:#b5c1c8;margin:0;max-width:550px;font-size:12px}
.studio-layout{display:grid;grid-template-columns:minmax(0,1fr) 319px;gap:1px;background:#465661;border:1px solid #516271;min-height:650px}
.studio-main{background:linear-gradient(135deg,#293947,#101b25 75%);min-width:0;display:flex;flex-direction:column}
.studio-header{display:flex;align-items:center;justify-content:space-between;padding:20px 23px;gap:15px;border-bottom:1px solid #46535c;min-height:90px}.studio-header h2{font:700 28px/1 var(--head);letter-spacing:.5px;margin:5px 0 0}.studio-header h2 span{color:#cda95f}.studio-header>span{font-size:9px;color:#a5afb9;letter-spacing:1px;white-space:nowrap}
.studio-stage{height:490px;min-height:360px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 55% 43%,#5565774f 0%,#26384b35 39%,transparent 72%),linear-gradient(155deg,#304556,#152532 70%)}
.studio-stage::before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,transparent 20%,#819eb509 50%,transparent 83%);z-index:0}
.studio-ambient{position:absolute;inset:-20%;background:radial-gradient(ellipse,#e0c68a18 0%,#a8d3ed08 27%,transparent 57%);pointer-events:none;z-index:0}
.studio-horizon{position:absolute;bottom:14%;left:-20%;right:-20%;height:1px;background:linear-gradient(90deg,transparent,#afbbc331,transparent)}
.knife3d-host{position:absolute;inset:0;z-index:2;touch-action:none;overflow:hidden}.knife3d-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none;outline:0}.knife3d-canvas.dragging{cursor:grabbing}
.studio-watermark{position:absolute;right:20px;bottom:20px;font:700 10px var(--head);letter-spacing:2px;color:#81939d;pointer-events:none;z-index:3}
.studio-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 20px;min-height:67px;border-top:1px solid #475763}.studio-help{font-size:9px;letter-spacing:1px;color:#95a5b1;font-weight:800}.studio-help span{padding:0 7px;color:#d0b981}
.studio-panel{padding:26px 21px;min-width:0;background:linear-gradient(180deg,#293947,#1b2c38)}.studio-panel h2{font:750 32px var(--head);margin:3px 0 22px;color:#eef0e8;letter-spacing:1px}
.studio-field{display:flex;flex-direction:column;gap:9px;margin:19px 0 0}.studio-field>span,.studio-float-title>span,.studio-presets>span{font-size:10px;color:#b5c2ca;font-weight:800;letter-spacing:1.1px}
.studio-field select,.studio-field input{display:block;width:100%;border:1px solid #617281;background:#182935;color:#f5f2e9;padding:11px 12px;border-radius:2px;min-height:43px;outline:none}.studio-field select:focus,.studio-field input:focus{border-color:#dec084}.studio-field option{background:#253744;color:#f3f3f3}
.studio-float-title{display:flex;justify-content:space-between;gap:5px;align-items:center;margin-top:27px}.studio-float-title strong{font:700 14px var(--body);color:#e2c27f;font-variant-numeric:tabular-nums}
.studio-slider{display:block;margin:17px 0 8px;width:100%;accent-color:#d8b477;cursor:pointer}
.studio-wear{display:flex;align-items:center;justify-content:space-between;gap:3px;font-size:8px;letter-spacing:.15px;color:#95a9b6}.studio-wear strong{color:#e3cb9e;font-size:9px;text-align:center}
.studio-presets{margin-top:24px}.studio-presets>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-top:9px}.studio-presets button{background:#334856;border:1px solid #5b7180;color:#e6e9e7;font:700 10px var(--body);padding:8px 2px;cursor:pointer}.studio-presets button:hover{border-color:#d7bb81;background:#425462}
.studio-explainer{margin-top:28px;background:#162734;border-left:3px solid #b89660;padding:15px}.studio-explainer strong{font-size:10px;letter-spacing:1px;color:#e0bb73}.studio-explainer p{color:#b7c2c9;margin:7px 0 0;font-size:11px;line-height:1.65}.studio-case-link{margin-top:22px;width:100%}
.studio-error,.inspect3d-warning{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:min(80%,360px);padding:15px;background:#1a2839de;border:1px solid #6c8394;color:#f1d8a6;font-size:12px;text-align:center}
.inspect3d-host{z-index:3;background:radial-gradient(ellipse at 50% 51%,#8a9fb321 0%,transparent 66%)}
.inspect-mode-toggle{font-size:10px!important;font-weight:800!important;width:auto!important;min-width:70px!important;padding:0 8px!important;color:#d2b77f!important;border-color:#927d5a!important;letter-spacing:.5px}
.inspect-main .weapon-canvas-wrap:has(.inspect3d-host:not([hidden])) #inspectCanvas,.inspect-main .weapon-canvas-wrap:has(.inspect3d-host:not([hidden])) #inspectFallback,.inspect-main .weapon-canvas-wrap:has(.inspect3d-host:not([hidden])) #inspectPlaceholder{display:none!important}
@media(max-width:1100px){.studio-layout{grid-template-columns:minmax(0,1fr) 290px}.studio-panel{padding:20px 16px}.studio-stage{height:420px}}
@media(max-width:850px){.studio-layout{grid-template-columns:1fr}.studio-stage{height:390px}.studio-panel{padding:23px}.studio-panel h2{margin-bottom:10px}.studio-header h2{font-size:24px}}
@media(max-width:700px){.knife-studio-teaser{flex-direction:column;align-items:stretch;padding:18px}.knife-studio-teaser h2{font-size:29px}.studio-badge{display:none}.studio-stage{height:330px;min-height:285px}.studio-header{padding:16px;min-height:73px}.studio-header>span{display:none}.studio-bottom{padding:10px 12px}.studio-help{font-size:8px;line-height:1.4;max-width:170px}.studio-panel{padding:19px 15px}.studio-watermark{right:12px;bottom:11px;font-size:8px}}
@media(max-width:410px){.studio-stage{height:285px}.studio-header h2{font-size:23px}.studio-bottom .inspection-controls{gap:3px}.studio-bottom .inspection-controls button{min-width:28px}}

.studio-range-note{display:flex;justify-content:space-between;gap:8px;margin:15px 0 0;font-size:9px;letter-spacing:.6px;color:#b3c5cc}.studio-range-note strong{color:#e3c891;font-variant-numeric:tabular-nums}

.studio-fallback-art{position:absolute;z-index:1;left:50%;top:49%;transform:translate(-50%,-50%);max-width:82%;max-height:76%;object-fit:contain;opacity:.80;filter:drop-shadow(0 17px 20px #08131b70);pointer-events:none}

/* Developer knife controls + immediate opening */
.open-action-row{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:12px;margin:7px auto 0;max-width:680px}
.open-action-row .btn-open{margin:0;flex:1 1 260px;min-width:0}
.open-action-row .btn-open-alternate{min-height:52px;flex:0 1 210px;font-family:var(--head);font-weight:800;letter-spacing:1.1px;font-size:15px}
.reel-instant-result{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.reel-instant-result .reelitem{flex-shrink:0}
.dev-box,.dev-inspector{margin-top:24px;border:1px solid #b8a07387;background:linear-gradient(145deg,#3f4033,#2b343a 45%,#182733);padding:17px 15px;box-shadow:inset 0 1px #eed28c1c}
.dev-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.dev-heading strong{font:800 23px var(--head);letter-spacing:.6px;line-height:1}.dev-eyebrow{font:800 9px var(--body);letter-spacing:1.2px;color:#c9b284;margin-bottom:5px}
.dev-state{border:1px solid #e8bf7380;color:#e5c88c;padding:5px 7px;font:800 10px var(--body);letter-spacing:1px}
.dev-box p,.dev-inspector p{font-size:11px;color:#bdc6c9;line-height:1.65;margin:12px 0 16px}
.dev-shuffle-main{width:100%;font:800 16px var(--head);letter-spacing:1px;min-height:44px}
.dev-shuffle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0 0}
.dev-shuffle-grid button{background:#253947;border:1px solid #546776;color:#d5e0e0;font:700 10px var(--body);letter-spacing:.6px;min-height:37px;padding:8px 3px;cursor:pointer}
.dev-shuffle-grid button:hover{background:#3d5260;border-color:#d3ad67;color:#fff}.dev-shuffle-grid button:focus-visible{outline:2px solid #e8c58c}
.dev-status{margin:13px 0 7px;min-height:32px;font:600 10px/1.5 var(--body);color:#e6d4ae;overflow-wrap:anywhere}
.dev-inspect-link{background:none;border:0;border-top:1px solid #62727b;width:100%;padding:14px 0 2px;text-align:left;color:#e4c690;font:800 11px var(--body);letter-spacing:.5px;cursor:pointer}
.dev-inspect-link:hover{color:#fff}
.dev-inspector{margin:20px 0 16px;padding:14px}.dev-inspector .dev-heading strong{font-size:21px}
.dev-card{border-color:#c5aa78!important;background:linear-gradient(155deg,#5a4a322d,#1e2f3b 70%)!important;position:relative}
.dev-card::before{content:'DEV / TEST ITEM';position:absolute;top:6px;left:8px;color:#e7c689;z-index:3;font-size:9px;letter-spacing:1.3px;font-weight:900;pointer-events:none}
.dev-card .item-value{color:#ebd0a6!important}
@media(max-width:700px){.open-action-row{flex-direction:column;max-width:390px}.open-action-row .btn-open,.open-action-row .btn-open-alternate{flex:none;width:100%}}
@media(max-width:700px){
  /* Keep the developer test controls clickable when scrolling inside the mobile inspector. */
  .inspect-details:has(.dev-inspector:not([hidden])) .inspect-actions{position:static;bottom:auto;background:transparent;padding:7px 0;z-index:auto}
}

/* v4 inspection tools and polished viewport */
.studio-stage{background:radial-gradient(ellipse at 51% 48%,#405973aa 0%,#1b3045ba 42%,#0c1725 92%);border-bottom:1px solid #405261}
.studio-stage::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 53% 50%,transparent 18%,#090f1938 75%,#030a15a1 120%)}
.studio-ambient{opacity:.62;background:radial-gradient(ellipse,#c1d6f21f 0%,#ab8e6633 25%,transparent 63%)}
.studio-render-tag{position:absolute;z-index:4;left:20px;top:17px;pointer-events:none;font:700 10px var(--body);letter-spacing:1.25px;color:#bdccd7;background:#0c1925b8;border:1px solid #475d70;padding:8px 10px}
.studio-render-tag .studio-live-led{display:inline-block;background:#9dd8aa;width:5px;height:5px;border-radius:100%;box-shadow:0 0 9px #a9ffbc;margin-right:8px}
.render-separator{color:#6e8c9c;padding:0 7px}
.studio-watermark{color:#abb9c49c;letter-spacing:1.35px;font-size:8px;z-index:4}
.studio-view-options{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #3b505e;background:#1e303d;padding:12px 18px}
.studio-view-label{font-size:9px;font-weight:800;color:#91a9ba;letter-spacing:1.35px;white-space:nowrap}
.studio-view-buttons{display:flex;gap:5px;flex-wrap:wrap}
.studio-view-buttons button{cursor:pointer;background:#283e4b;border:1px solid #41596a;color:#aebfcb;font:700 9px var(--body);letter-spacing:.5px;padding:8px 10px;transition:background .18s,border-color .18s,color .18s}
.studio-view-buttons button:hover{background:#3b5565;color:#fff}
.studio-view-buttons button.active{background:#3c5360;color:#f8e4bb;border-color:#a89268}
.studio-stage .knife3d-host canvas{filter:drop-shadow(0 18px 18px #050d1499)}
.studio-explainer{margin-top:24px}
@media(max-width:750px){.studio-view-options{flex-direction:column;align-items:stretch}.studio-view-label{margin-bottom:4px}.studio-view-buttons button{flex:1}.studio-render-tag{font-size:8px;left:10px;top:10px}.studio-watermark{bottom:10px;right:10px;font-size:7px}}

/* User-imported Sketchfab / glTF model workflow */
.model-import-box{margin:16px 0;padding:16px;background:linear-gradient(120deg,rgba(58,83,105,.23),rgba(18,25,34,.76));border:1px solid rgba(150,177,205,.22);border-left:3px solid #85a6b8;border-radius:8px}
.model-import-title{font-weight:800;font-size:13px;letter-spacing:.06em;color:#ebf3f8;display:flex;justify-content:space-between;gap:8px}
.model-import-title span{font-size:10px;color:#9cbdcc;white-space:nowrap}
.model-import-box p{font-size:12px;color:#b7c4ce;line-height:1.6;margin:10px 0 12px}
.model-import-box .btn{display:block;width:100%;margin:7px 0;white-space:normal;min-height:39px}
.model-import-box .model-import-status{font-size:12px;line-height:1.4;color:#bdced9;margin-top:12px;overflow-wrap:anywhere}
.model-import-box a{display:inline-block;font-size:11px;margin-top:12px;color:#b0d4ee;text-decoration:underline;text-underline-offset:3px}
.model-import-box .btn:disabled{opacity:.55;cursor:progress}
/* v4.2 creator-hosted Sketchfab 3D viewers */
.web-model-viewer{position:absolute;inset:0;z-index:3;width:100%;height:100%;background:#0c1622;overflow:hidden}
.web-model-viewer[hidden]{display:none!important}
.web-model-viewer iframe{display:block;border:0;width:100%;height:100%;background:#0e1824}
.studio-stage.web-model-active #studio3DHost,.studio-stage.web-model-active #studioFallbackArt{display:none!important}
.web-model-credit{z-index:5;position:absolute;bottom:10px;left:12px;right:12px;width:max-content;max-width:calc(100% - 24px);padding:7px 9px;font:700 9px/1.5 var(--body);letter-spacing:.35px;color:#dbebf2;background:#08131dd6;box-shadow:0 2px 8px #08132161;pointer-events:none;white-space:normal}
.web-model-credit[hidden]{display:none}
.web-model-switch{display:flex;align-items:stretch;flex-wrap:wrap;gap:7px;padding:10px 14px;background:#13242f;border-bottom:1px solid #405464}
.web-model-switch button{background:#243a48;border:1px solid #466274;color:#b8ccd8;min-height:37px;padding:8px 13px;font:800 10px var(--body);letter-spacing:.6px;cursor:pointer}
.web-model-switch button:hover,.web-model-switch button.active{background:#4c6471;color:#fff;border-color:#c9ab6b}
.web-model-switch a{margin-left:auto;align-self:center;font:800 10px var(--body);color:#d7c08c;letter-spacing:.6px;text-decoration:underline}
.web-model-switch a[hidden]{display:none}
.web-model-label{display:block;font:800 9px var(--body);letter-spacing:1px;color:#bdd5e0;margin:15px 0 7px}
.web-model-setup input[type=url],.model-import-box input[type=url],.web-model-results{display:block;width:100%;min-width:0;background:#152938;border:1px solid #577185;color:#f3f4ef;padding:10px;font:500 12px var(--body);border-radius:2px;outline:none}
.web-model-setup input[type=url]:focus,.model-import-box input[type=url]:focus{border-color:#dcc281}
.web-model-results{margin-top:12px}
.web-direct-title{margin:21px 0 10px;padding-top:14px;border-top:1px solid #516574;font-size:11px;line-height:1.45}
.model-import-box p em{color:#e5ce9d;font-style:normal}
.weapon-canvas-wrap.web-inspect-active #inspectCanvas,.weapon-canvas-wrap.web-inspect-active #inspectFallback,.weapon-canvas-wrap.web-inspect-active #inspectPlaceholder,.weapon-canvas-wrap.web-inspect-active #inspect3DHost{display:none!important}
.inspect-web-viewer{z-index:7}
.inspect-main .weapon-canvas-wrap.web-inspect-active{background:#081521}
.inspect-main .weapon-canvas-wrap.web-inspect-active .inspect3d-host{display:none!important}
.inspect-stage:has(.web-inspect-active) .inspection-controls button:not(#inspectModeToggle):not(#inspectWebToggle){display:none}
.studio-stage.web-model-active .studio-watermark{display:none}
@media(max-width:700px){.web-model-switch button{flex:1 1 145px;font-size:9px}.web-model-switch a{width:100%;padding-top:5px}.web-model-credit{font-size:8px;bottom:7px}.studio-render-tag{display:none}}
.studio-stage.web-model-active~.studio-bottom .inspection-controls button:disabled,.studio-view-buttons button:disabled{opacity:.38;cursor:not-allowed}
/* v4.3 Sketchfab official Viewer API material workshop */
.texture-lab{border-left-color:#c9aa68;background:linear-gradient(135deg,rgba(69,91,103,.4),rgba(18,28,38,.9))}
.texture-lab-head{display:flex;align-items:center;gap:9px;margin:12px 0;padding:10px 9px;background:#172f3b;border:1px solid #425a63;font-size:10px;letter-spacing:1px;color:#d2e0e1}
.texture-status-led{width:8px;height:8px;background:#ddb873;border-radius:50%;box-shadow:0 0 12px #dcbf8266;flex-shrink:0}
.texture-lab-head:has([data-status=ready]) .texture-status-led{background:#90d8b3;box-shadow:0 0 10px #7fd6a684}
.texture-lab-head:has([data-status=error]) .texture-status-led{background:#f09a8c;box-shadow:0 0 10px #f09a8c85}
.texture-lab .web-model-results{margin:5px 0 9px}
.texture-lab-preview-row{display:flex;gap:12px;margin:14px 0;align-items:stretch}
#texturePreview{width:118px;height:118px;flex:0 0 118px;object-fit:cover;border:1px solid #61798a;background:#243849;image-rendering:auto}
.texture-lab-preview-row>div{flex:1;min-width:0}.texture-source-value{display:block;font:700 11px/1.5 var(--body);color:#e6cf9f;margin:5px 0 11px;overflow-wrap:anywhere}
.texture-check{display:flex;align-items:center;gap:6px;font:700 10px/1.45 var(--body);color:#e7edf1}
.texture-check input{accent-color:#cfb177}
.texture-lab-preview-row small{display:block;margin-top:7px;color:#9fb0b9;font:10px/1.45 var(--body)}
.texture-slider-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.texture-slider-row label{font:800 10px var(--body);color:#a9c2ca;letter-spacing:.6px}
.texture-slider-row output{float:right;color:#e0c68b}
.texture-slider-row input{width:100%;display:block;margin-top:12px;accent-color:#c6ae78}
.texture-actions{display:grid;grid-template-columns:1.5fr 1fr;gap:7px}
.texture-actions .btn{margin:0;min-width:0;font-size:11px;line-height:1.2;padding:9px}
#textureUpload{display:block;width:100%;font-size:11px;color:#d3e2ea;max-width:100%;margin:7px 0 13px}
#textureUpload::file-selector-button{background:#304754;border:1px solid #678194;color:#e3ecf1;padding:8px;cursor:pointer;margin-right:9px}
@media(max-width:480px){#texturePreview{width:92px;height:92px;flex-basis:92px}.texture-lab-preview-row{gap:9px}.texture-actions{grid-template-columns:1fr}}
/* Keep the 3D viewport at a sensible height beside the full-height tool panel. */
@media(min-width:851px){.studio-layout{align-items:start;min-height:0}.studio-main{position:sticky;top:18px;align-self:start}}
@media(max-width:850px){.studio-layout{min-height:0}}

/* 4.4 — clean mesh workshop */
.clean-mesh-workshop{border:1px solid rgba(114,177,208,.5)!important;background:linear-gradient(135deg,rgba(43,82,104,.19),rgba(18,24,31,.35))!important}
.clean-mesh-workshop .model-import-title span{color:#83cbdc}
.clean-mesh-controls{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.clean-mesh-controls>.btn{flex:1 1 170px;min-height:36px}
.clean-mesh-controls select{flex:2 1 220px;min-width:0}
.clean-mesh-meta{font-size:10px;letter-spacing:1px;color:#95b4c7;background:rgba(13,20,26,.34);padding:10px 12px;margin:10px 0;border-left:2px solid #79bbc7}
.clean-mesh-workshop input[type=file]{display:block;width:100%;max-width:100%;padding:10px;background:rgba(15,23,29,.35);border:1px solid rgba(143,173,190,.28);color:#d8e3e9;margin:9px 0;font-size:12px}
.clean-mesh-workshop #cleanMeshExport{width:100%;margin:8px 0}
.clean-mesh-disclaimer{font-size:11px!important;opacity:.75;line-height:1.65!important}
.clean-texture-title{margin-top:18px}
.clean-mesh-workshop .btn:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:600px){.clean-mesh-controls{flex-direction:column}.clean-mesh-controls .btn{flex:0 0 auto}.clean-mesh-controls select{flex:0 0 auto;width:100%}}

/* 4.5: make the online preview/local export boundary unambiguous. */
.online-strip-panel{margin:14px 0;padding:13px;background:linear-gradient(135deg,rgba(46,82,93,.4),rgba(11,26,33,.82));border:1px solid rgba(137,192,209,.42);border-left:3px solid #87cbd7;border-radius:7px}
.online-strip-panel .model-import-title{font-size:12px}
.online-strip-panel .model-import-title span{color:#a8d5db}
.online-strip-panel p{margin:8px 0 12px}
.online-strip-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.online-strip-buttons .btn{margin:0;white-space:normal;line-height:1.25;min-height:42px}
.online-strip-buttons #textureStripAll{grid-column:1/-1}
.online-strip-panel #textureStripStatus{margin-top:10px;color:#c2e3e7}
@media(max-width:480px){.online-strip-buttons{grid-template-columns:1fr}.online-strip-buttons #textureStripAll{grid-column:auto}}

.offline-strip-box{margin:16px 0;padding:12px;background:rgba(14,36,48,.55);border:1px solid rgba(128,189,207,.36);border-radius:5px}
.offline-strip-box .model-import-title span{color:#8ecad9}
.offline-strip-box input[type=file]{margin-bottom:10px}
.offline-strip-box .btn{width:100%}
