:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#1E243F;background:#f3f4f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button,select{min-height:46px;border:1px solid #cdd0dc;border-radius:7px;padding:10px 15px;background:#fff;color:#1E243F;cursor:pointer}button:hover{background:#e7e9f0}button:disabled{opacity:.45;cursor:wait}input,textarea{padding:13px;border:1px solid #cdd0dc;border-radius:7px;min-width:0;background:white;color:#1E243F}input:focus,button:focus-visible,select:focus,textarea:focus{outline:3px solid #dbaa48;outline-offset:2px}input[type=checkbox]{width:20px;height:20px;accent-color:#1E243F}a{color:inherit;text-decoration:none}header{height:36px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;background:#1E243F;color:#fff}.brand{display:flex;align-items:center;gap:0;font-size:12px;height:100%;font-weight:750;letter-spacing:1px}.brand b{display:none}.brand small{display:none}.lan{display:none}main{max-width:1450px;margin:auto;padding:42px 4%}h1{font-size:36px;font-weight:600;letter-spacing:-1px;margin:8px 0 28px}.eyebrow{font-size:12px;letter-spacing:2px;color:#757b91}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.primary{background:#1E243F;color:white;border-color:#1E243F}.primary:hover{background:#1E243F}.searchbar{display:flex;gap:12px;margin-bottom:30px}.searchbar input{flex:1}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:22px}.card{background:white;border:1px solid #dde0e9;border-radius:12px;overflow:hidden}.card-art{height:130px;background:linear-gradient(135deg,#dce0ed,#edf0f6);padding:25px;font-size:55px;color:#687394}.card-body{padding:23px}.card h2{font-size:18px;overflow-wrap:anywhere;line-height:1.5;margin-top:0}.card p{font-size:13px;color:#71788e}.card a{display:block;margin-top:22px;border-top:1px solid #e3e6ef;padding-top:15px;font-weight:600}.viewerbar{display:flex;gap:12px;align-items:center;padding:5px 14px;background:white;border-bottom:1px solid #dce0e9}.viewerbar strong{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace{display:flex;height:calc(100dvh - 83px);min-height:450px}#stage{position:relative;flex:1;min-width:0;background:#e5e7ee}canvas{display:block;touch-action:none;width:100%;height:100%}.viewtools{position:absolute;left:15px;top:15px;z-index:1;display:flex;flex-wrap:wrap;gap:7px;right:10px}.viewtools button{background:#fffffff0}.hint{position:absolute;bottom:12px;left:16px;right:16px;font-size:11px;color:#606b85;pointer-events:none}#viewstatus{position:absolute;bottom:40px;left:16px;background:#ffffffdc;border-radius:5px;padding:6px 10px;font-size:12px;pointer-events:none}aside{width:355px;overflow:auto;background:#fff;border-left:1px solid #dce0e9}.filters{padding:16px;background:#f6f7fa;display:flex;flex-wrap:wrap;gap:12px}.filters label{display:flex;align-items:center;gap:5px;font-size:14px}.filters select,.filters>input{width:100%}#partlist{max-height:220px;overflow:auto;border-bottom:1px solid #e4e7ef}.part{width:100%;border:0;border-radius:0;text-align:left;display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #eff1f6;font-size:13px}.part.active{background:#fff0d9;border-left:4px solid #f39227}.part small{color:#6d758e}#detail{padding:20px}h2{font-size:20px}h3{font-size:14px;margin-top:25px}dl{display:grid;grid-template-columns:100px 1fr;gap:10px;font-size:13px}dt{color:#757c90}dd{margin:0;overflow-wrap:anywhere}.actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:20px}.meta{font-size:12px;border-top:1px solid #e3e6ef;padding:10px 0;overflow-wrap:anywhere}.badge{display:inline-block;background:#edf0f7;color:#1E243F;padding:6px 9px;border-radius:4px;font-size:12px}.warn{background:#fff0d9;padding:10px;color:#775321;font-size:13px}.muted{color:#757c90;font-size:13px}details pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px}dialog{border:0;border-radius:14px;padding:28px;max-width:540px;width:calc(100% - 28px);box-shadow:0 20px 100px #0004}dialog::backdrop{background:#1E243F88}dialog label{display:block;margin:20px 0}dialog input,dialog textarea{display:block;width:100%;margin-top:8px}dialog p{line-height:1.6;color:#6b748b}.drop{padding:20px;border:1px dashed #98a2bd;border-radius:8px}#message{padding:13px 4%;background:#ffe6bd;color:#653f10}#panelToggle{display:none}[hidden]{display:none!important}@media(max-width:950px){.brand small,.lan{display:none}aside{width:310px}.viewerbar{flex-wrap:wrap}.viewerbar strong{order:-1;flex-basis:100%}.workspace{height:calc(100dvh - 120px)}.viewtools button{font-size:12px;padding:8px}#panelToggle{display:block}aside.collapsed{display:none}}@media(max-width:650px){header{height:36px}.heading{display:block}h1{font-size:29px}.heading button{margin-bottom:20px}.searchbar{flex-direction:column}.workspace{height:auto;flex-direction:column}#stage{height:58dvh;flex:none}aside{width:100%;max-height:none;border-left:0}.viewerbar{padding:10px;gap:7px}.viewerbar button,.viewerbar select{font-size:12px;padding:8px}.hint{font-size:9px}.viewtools{left:8px;top:8px}.brand{font-size:12px}main{padding-top:25px}}

/* Article tree and manufacturing details */
#partlist{max-height:36dvh;min-height:100px}.treeheading{padding:12px 16px;font-size:12px;font-weight:700;letter-spacing:.5px;background:#edf0f7}.articlebranch>summary{cursor:pointer;min-height:48px;padding:12px 14px;font-size:13px;font-weight:600;border-bottom:1px solid #dce1ec;overflow-wrap:anywhere}.articlebranch>summary small{float:right;margin-left:8px;color:#6d758e}.articlebranch>summary:focus-visible{outline:3px solid #dbaa48;outline-offset:-3px}.treechildren{margin-left:15px;border-left:2px solid #dce1ec}.treechildren .part{padding-left:12px}.viewtools button[aria-pressed=true]{background:#1E243F;color:white;border-color:#1E243F}#detail dl{grid-template-columns:125px 1fr}

.cameraPreview{background:#1E243F;border-radius:8px;overflow:hidden;aspect-ratio:4/3}.cameraPreview video{width:100%;height:100%;object-fit:contain}#scanForm{margin-top:22px;padding-top:16px;border-top:1px solid #dce1ec}#scanForm button{margin-top:10px}#scanCamera{width:100%}#scanStatus{min-height:48px}#scanDialog{max-height:94dvh;overflow:auto}

.explosionControl{width:100%;border:1px solid #dce1ec;border-radius:8px;padding:12px;background:white}.explosionControl label{justify-content:space-between;font-weight:600}.explosionControl input[type=range]{width:100%;height:44px;padding:0;accent-color:#1E243F;cursor:pointer}.explosionControl p{font-size:12px;color:#6d758e;margin:0 0 10px}.explosionControl button{width:100%}.explosionControl output{font-variant-numeric:tabular-nums;white-space:nowrap}

.explosionControl{padding:6px 10px}.explosionControl label{font-size:12px;gap:8px}.explosionControl label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.explosionRow{display:flex;align-items:center;gap:8px}.explosionRow input[type=range]{flex:1;min-width:0;height:36px;margin:0}.explosionRow button{width:44px;min-width:44px;min-height:44px;padding:4px;font-size:20px}.explosionControl p{margin:0;font-size:11px}

.sourceStatus{padding:8px 4%;font-size:12px;background:#edf0f7;color:#1E243F}

/* Vertical viewer tools with expandable explosion controls. */
.viewtools{right:auto;bottom:72px;flex-direction:column;flex-wrap:nowrap;align-items:stretch;width:148px;overflow-y:auto;padding:2px;gap:6px}.viewtools>button{flex-shrink:0;text-align:left;font-size:12px;padding:8px 10px;min-height:44px}.viewtools #explodeToggle{display:flex;align-items:center;gap:9px}.viewtools #explodeToggle[aria-expanded=true]{background:#1E243F;color:white}.viewtools .explosionControl{flex-shrink:0;padding:10px}.viewtools .explosionControl label{display:flex;flex-wrap:wrap;justify-content:space-between}.viewtools .explosionRow{flex-direction:column;gap:4px}.viewtools .explosionRow input[type=range]{width:100%;flex:none;min-height:44px}.viewtools .explosionRow button{width:100%;font-size:12px}.viewtools .explosionControl p{margin-top:6px}@media(max-width:650px){.viewtools{width:138px;bottom:70px}.viewtools>button{font-size:11px}}

/* Compact drawing title bar. */
.viewerbar{gap:8px}.viewerbar button,.viewerbar select{min-height:36px;padding:5px 10px;font-size:12px}.viewerbar>a{font-size:13px}.viewerbar strong{font-size:14px}@media(max-width:650px){.viewerbar{padding:5px 10px;gap:6px}.viewerbar button,.viewerbar select{padding:5px 8px}}

.drawingTitle{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.drawingTitle strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawingTitle small{font-size:11px;color:#757c90}.drawingUpdate{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;background:#fff0d9;font-size:13px}.drawingUpdate button{min-height:36px;padding:5px 10px}#viewer:has(.drawingUpdate:not([hidden])) .workspace{height:calc(100dvh - 140px)}@media(max-width:950px){.drawingTitle{order:-1;flex-basis:100%}#viewer:has(.drawingUpdate:not([hidden])) .workspace{height:calc(100dvh - 177px)}}@media(max-width:650px){.drawingUpdate{flex-wrap:wrap}#viewer:has(.drawingUpdate:not([hidden])) .workspace{height:auto}}

.cutPanel{background:white;border:1px solid #dce1ec;border-radius:7px;padding:7px;flex-shrink:0}.cutPanel select{width:100%;min-height:36px;font-size:11px;padding:4px}.cutPanel label{display:flex;justify-content:space-between;font-size:11px;margin-top:7px}.cutPanel input{width:100%;height:36px;padding:0;accent-color:#1E243F}.cutPanel>div{display:flex;gap:5px}.cutPanel button{flex:1;min-height:36px;padding:4px;font-size:12px}

/* Narrow tool buttons; expanded controls retain their previous width. */
.viewtools{width:148px;pointer-events:none}.viewtools>button,.viewtools>.cutPanel,.viewtools>.explosionControl{pointer-events:auto}.viewtools>button{width:100px;min-height:36px;padding:5px 8px;font-size:11px}.viewtools #explodeToggle{justify-content:center}.viewtools #cutToggle{text-align:center;font-size:22px}.viewtools #explodeToggle svg{width:24px;height:24px}@media(max-width:650px){.viewtools{width:138px}.viewtools>button{width:94px}}

.viewtools>button{width:fit-content;max-width:100%;align-self:flex-start;padding:5px 6px;min-width:34px}.viewtools #reset{font-size:20px}.viewtools #explodeToggle,.viewtools #cutToggle{width:34px;padding:5px 4px}@media(max-width:650px){.viewtools>button{width:fit-content}}

/* Shared width based on the longest text tool: Verschieben. */
.viewtools #pan,.viewtools #focus,.viewtools #clear,.viewtools #blackLines,.viewtools #isolatePartTool,.viewtools #isolateArticleTool,.viewtools #xray{width:calc(11ch + 14px);text-align:center}

.loginCard{max-width:440px;margin:8vh auto;padding:24px;background:white;border-radius:12px}.loginCard label,#userForm label,#settingsForm label{display:block;margin:12px 0}.loginCard input,#userForm input:not([type=checkbox]),#settingsForm input,#userForm textarea{display:block;width:100%;margin-top:5px}.loginCard button{width:100%}.accountBar{display:flex;align-items:center;gap:10px;font-size:11px}.accountBar button{min-height:28px;padding:2px 8px;font-size:11px}.accountBar span{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#settingsDialog{width:min(660px,95vw);max-height:90dvh;overflow:auto}.settingsHeading{display:flex;align-items:center;justify-content:space-between;gap:12px}.userList{display:grid;gap:6px;margin-bottom:10px}.userList button{text-align:left;overflow-wrap:anywhere}.userList small{display:block;color:#697184}#userForm small{font-size:12px;color:#697184;display:block;margin-top:5px}#userRoles{display:flex;gap:20px;flex-wrap:wrap}#userForm{padding:12px;background:#f4f5f9;border-radius:8px;margin-top:12px}#userStatus,#settingsStatus,#loginStatus{overflow-wrap:anywhere}header .accountBar button{background:white;color:#1E243F}@media(max-width:650px){.accountBar span{max-width:100px}.loginCard{margin:30px 12px}} 

#settingsDialog{max-width:660px}#userRoles label{display:flex;align-items:center;gap:8px}#userRoles input{display:inline-block;width:20px;margin:0;padding:0;flex-shrink:0}

#userForm .allDrawingsOption{display:flex;align-items:center;gap:8px}#userForm .allDrawingsOption input{display:inline-block;width:20px;margin:0;padding:0;flex-shrink:0}#userPrefixes:disabled{background:#e9ebf0;color:#747b8c}

#settingsTabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}#settingsTabs [aria-pressed=true],#previewArticles [aria-pressed=true]{background:#1E243F;color:white}.sharedCard{border:1px solid #dce0e9;border-radius:8px;padding:12px;margin:12px 0}.sharedCard h3{margin-top:0}.sharedCard input,#shareResult{width:100%;margin:8px 0}.sharedCard p{overflow-wrap:anywhere;font-size:12px}.previewPage aside{padding:16px}.previewPage aside h2{margin-top:0}#previewArticles{display:grid;gap:6px;margin-top:12px}#previewArticles button{text-align:left;font-size:13px;overflow-wrap:anywhere}#previewStatus{position:absolute;bottom:40px;left:16px;background:#ffffffdc;border-radius:5px;padding:6px 10px;font-size:12px}#previewError{margin:30px;padding:20px;background:#fff0d9}#previewExpiry{font-size:11px}.previewPage .viewtools [aria-pressed=true]{background:#1E243F;color:white}.previewPage .viewtools>button{width:calc(11ch + 14px)}.previewPage #previewReset{width:34px}.previewPage .workspace{height:calc(100dvh - 91px)}@media(max-width:650px){.previewPage .workspace{height:auto}.previewPage aside{max-height:40dvh;overflow:auto}}

.viewtools #originalTextures{width:calc(11ch + 14px);text-align:center}.viewtools #originalTextures[aria-pressed=true]{background:#1E243F;color:white}

/* DWGs are only installed by the authenticated workshop application. */
.dwgActive>.workspace,.dwgActive #quality,.dwgActive #panelToggle,.dwgActive #scanViewer,.dwgActive #shareDrawing{display:none}
#drawingMode[aria-pressed=true]{background:#1E243F;color:white}
#dwgWorkspace{height:calc(100dvh - 94px);display:flex;flex-direction:column;background:white;min-height:420px}
#dwgWorkspace[hidden]{display:none}
#dwgWorkspace.dark{background:#202335;color:#f4f5f9}
.dwgToolbar{display:flex;align-items:center;gap:6px;padding:8px;flex-wrap:wrap;background:#f4f5f9;color:#1E243F}
.dwgToolbar button,.dwgToolbar select{min-height:36px;padding:5px 8px;font-size:12px}
.dwgToolbar label{display:flex;align-items:center;gap:5px;font-size:12px}
.dwgToolbar input{width:18px;height:18px;padding:0}
#dwgLayout{max-width:320px}
#dwgStatus{margin:0;padding:7px 10px;font-size:12px;background:#fff0d9;color:#1E243F}
#dwgCanvas{flex:1;min-height:240px;overflow:hidden;position:relative;touch-action:none;overscroll-behavior:none;user-select:none;-webkit-user-select:none}
#dwgSvg{display:block;width:100%;height:100%;touch-action:none;user-select:none;cursor:crosshair}

#dwgFoot{padding:7px 10px;display:flex;justify-content:space-between;gap:10px;font-size:12px;flex-wrap:wrap}
#dwgResult{font-weight:bold;color:#e68113}
@media(max-width:650px){#dwgWorkspace{height:calc(100dvh - 130px)}.dwgToolbar{gap:4px;padding:5px}#dwgLayout{max-width:100%}}

#dwgCanvas{position:relative}
#dwgLoupe{position:absolute;pointer-events:none;border:2px solid #00ba83;border-radius:16px;overflow:hidden;background:white;box-shadow:0 4px 16px #0006;z-index:3}
#dwgLoupe[hidden]{display:none}
#dwgLoupeSvg{display:block;width:100%;height:100%}
#dwgWorkspace.dark #dwgLoupe{background:#202335}

#dwgLoupe span{position:absolute;bottom:0;left:0;right:0;text-align:center;background:#1E243F;color:white;font-size:11px;padding:3px}

.dwgBody{display:flex;flex:1;min-height:0}
.dwgTools{flex:0 0 94px;display:flex;flex-direction:column;gap:3px;padding:5px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;background:#f4f5f9;color:#1E243F;border-right:1px solid #dce0e9}
.dwgTools>*{flex-shrink:0}
.dwgTools button{width:100%;min-height:32px;padding:3px 4px;font-size:11px;white-space:nowrap;border-radius:5px;line-height:1.15}
.dwgTools button span{display:inline-block;width:14px;font-size:14px;margin-right:2px}
.dwgTools button[aria-pressed=true]{background:#1E243F;color:white;border-color:#1E243F}
.dwgTools label{display:flex;align-items:center;justify-content:center;gap:4px;min-height:34px;font-size:11px;cursor:pointer}
.dwgTools input{width:17px;height:17px;margin:0;padding:0}
.dwgZoom{display:flex;gap:3px}.dwgZoom button{width:50%;font-size:16px}
.dwgBody #dwgCanvas{min-width:0}

.dwgStatusBox{margin:16px 0;padding:12px;border:1px solid #dce0e9;border-radius:8px;background:#f4f5f9}.dwgStatusBox h3{margin-top:0}.dwgStatusBox progress{width:100%;height:12px;accent-color:#1E243F}.storageStatus{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;font-size:14px}.storageStatus dt,.storageStatus dd{margin:0}.storageStatus dd{font-variant-numeric:tabular-nums;text-align:right}.storageStatus dt:first-child,.storageStatus dd:nth-child(2){font-weight:700}

#dwgBase{position:absolute;left:-25%;top:-25%;width:150%;height:150%;display:block;pointer-events:none;transform-origin:0 0;will-change:transform}#dwgSvg{position:relative;z-index:1}#dwgCanvas{contain:layout paint}#dwgLoupe{z-index:3}

#dwgPreloadForm small{display:block;margin:.5rem 0}#dwgPreloadSave{margin-bottom:.25rem}
#portalForm{padding:12px;background:#f4f5f9;border-radius:8px;margin-bottom:18px}#portalForm label{display:block;margin:12px 0}#portalForm input{display:block;width:100%;margin-top:5px}#portalForm small{display:block;font-size:12px;color:#697184;margin-bottom:12px}#portalStatus{overflow-wrap:anywhere}
