.workshop-page{min-height:100vh;background:#11100e;color:var(--cream)}.workshop-topbar{min-height:78px;padding:0 20px;border-bottom:1px solid #3d3328;background:#1c1915;display:grid;grid-template-columns:auto minmax(72px,1fr) auto;align-items:center;gap:18px}.workshop-brand{color:var(--cream);text-decoration:none}.workshop-title{justify-self:center;color:var(--muted);font-size:12px;text-transform:uppercase}.workshop-header-actions{min-width:0;justify-self:end;display:flex;align-items:center;gap:7px}.workshop-keepsakes{flex:0 0 auto;width:clamp(190px,calc(var(--keepsake-count, 1) * 58px + 12px),360px);height:64px;margin-right:4px;padding:4px 7px;box-sizing:border-box;border:1px solid rgb(62 181 175 / 36%);border-radius:5px;background:#0c22207a;display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:none}.workshop-keepsakes[hidden]{display:none}.workshop-keepsakes::-webkit-scrollbar{display:none}.workshop-keepsakes:hover,.workshop-keepsakes:focus-visible{border-color:#3eb5afc2;background:#0e302dad}.workshop-keepsake{flex:0 0 54px;width:54px;height:54px;object-fit:contain;filter:drop-shadow(0 3px 4px rgb(0 0 0 / 38%))}.workshop-header-actions select,.quiet-button,.quiet-link,.play-link{min-height:34px;border:1px solid #514536;border-radius:5px;background:#28231d;color:#d8cfbf;font-size:11px;font-weight:800}.workshop-header-actions select{max-width:180px;padding:0 27px 0 9px}.quiet-button{padding:0 11px;cursor:pointer}.quiet-link{padding:0 11px;display:inline-flex;align-items:center;text-decoration:none}.play-link{padding:0 13px;background:var(--teal-dark);color:#fff;display:inline-flex;align-items:center;text-decoration:none}.workshop-layout{min-height:calc(100vh - 78px);display:grid;grid-template-columns:220px minmax(560px,1fr) 300px}.workshop-tools,.workshop-inspector{min-width:0;padding:24px 18px;background:#1b1814}.workshop-tools{border-right:1px solid #3a3127}.workshop-inspector{border-left:1px solid #3a3127}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.tool-button{min-width:0;min-height:52px;padding:6px 3px;border:1px solid #514536;border-radius:5px;background:#252019;color:#b9af9f;cursor:pointer;display:grid;place-items:center;align-content:center;gap:3px}.tool-button b{color:var(--brass-pale);font-size:16px;line-height:1}.tool-button span{max-width:100%;overflow:hidden;font-size:9px;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.tool-button:hover,.tool-button[aria-pressed=true]{border-color:#36b3ae;background:var(--teal-dark);color:#fff}.danger-tool b{color:#e8926c}.control-group{margin-top:22px}.control-label,.field-label{display:block;margin-bottom:7px;color:#8e8475;font-size:9px;font-weight:850;text-transform:uppercase}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr}.segmented button{min-width:0;min-height:32px;padding:0 4px;border:1px solid #514536;border-right:0;background:#252019;color:#a69b8b;cursor:pointer;font-size:10px;font-weight:850}.segmented button:first-child{border-radius:4px 0 0 4px}.segmented button:last-child{border-right:1px solid #514536;border-radius:0 4px 4px 0}.segmented button[aria-pressed=true]{border-color:#36b3ae;background:var(--teal-dark);color:#fff}.mechanic-control select{width:100%;min-height:32px;margin-bottom:7px;padding:0 8px;border:1px solid #514536;border-radius:4px;background:#252019;color:#d8d0c2;font:inherit;font-size:10px}.mechanic-control select:disabled{color:#796f61;cursor:not-allowed}.compact-segmented button{font-size:8px}.workshop-canvas{min-width:0;padding:24px clamp(14px,2.5vw,36px) 32px;background:#242019}.workshop-toolbar{min-height:42px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:16px}.workshop-board{width:100%;max-width:980px;margin:0 auto}.editor-grid{position:absolute;inset:18px;z-index:-1;background:linear-gradient(90deg,rgb(215 168 77 / 9%) 1px,transparent 1px) 0 0 / calc(100% / 42) 100%,linear-gradient(rgb(215 168 77 / 9%) 1px,transparent 1px) 0 0 / 100% calc(100% / 30),linear-gradient(90deg,rgb(215 168 77 / 18%) 1px,transparent 1px) 0 0 / calc(100% / 7) 100%,linear-gradient(rgb(215 168 77 / 18%) 1px,transparent 1px) 0 0 / 100% 20%;pointer-events:none}.workshop-board .workshop-entity{pointer-events:auto;touch-action:none}.workshop-board .clutch-station.workshop-entity,.workshop-board .ratchet-station.workshop-entity,.workshop-board .lever-control.workshop-entity{cursor:grab}.workshop-board .clutch-station.workshop-entity.selected .clutch-collar,.workshop-board .ratchet-station.workshop-entity.selected .ratchet-collar,.workshop-board .lever-control.workshop-entity.selected img{filter:saturate(1.08) brightness(1.08) drop-shadow(0 0 9px rgb(215 168 77 / 70%)) drop-shadow(0 5px 4px rgb(0 0 0 / 48%))}.workshop-board .clutch-station .entity-tag,.workshop-board .lever-control .entity-tag{right:-12px;bottom:-14px}.workshop-board .ratchet-station .entity-tag{top:-12px;right:-12px;bottom:auto}.workshop-board .belt-assembly.workshop-entity{pointer-events:none}.workshop-belt-point{padding:0;border:0;background:transparent;cursor:grab;pointer-events:auto;touch-action:none}.workshop-belt.loose-solution .belt-surface{stroke:#276e6b;stroke-dasharray:.12 .055}.workshop-belt.loose-solution .belt-stitch{stroke:#86e2dc;opacity:.72}.workshop-belt.loose-solution .belt-handle{border-color:#1d6562;background:#48bdb7;box-shadow:inset 0 0 0 3px #277f7a,0 3px 5px #0000007f;color:#102d2b}.loose-anchor{overflow:visible}.loose-anchor:after{position:absolute;inset:6%;z-index:7;border:2px dashed #4b806f;border-radius:50%;content:"";pointer-events:none}.loose-anchor.selected:after{border-color:var(--brass-pale);box-shadow:0 0 0 5px #d7a84d33}.belt-handle{position:absolute;left:calc((var(--x) + .5) * (100% / 7));top:calc((var(--y) + .5) * 20%);z-index:6;width:25px;height:25px;padding:0;transform:translate(-50%,-50%);border:2px solid #4b351d;border-radius:50%;background:var(--brass);box-shadow:inset 0 0 0 3px #8b6228,0 3px 5px #0000007f;color:#2b1d0d;cursor:grab;font-size:11px;font-weight:950;line-height:1;pointer-events:auto;touch-action:none}.workshop-board .machine-node.workshop-entity{padding:0;border:0;background:transparent;cursor:grab}.workshop-board .workshop-entity.selected:not(.belt-assembly):before{border-color:var(--brass-pale);box-shadow:inset 0 0 0 5px #2a231b,0 0 0 6px #d7a84d33;opacity:1}.workshop-board .workshop-belt.selected .pulley-art,.workshop-board .workshop-belt.selected .station-pinion{filter:drop-shadow(0 0 8px rgb(215 168 77 / 62%)) drop-shadow(0 5px 4px rgb(0 0 0 / 46%))}.workshop-board .workshop-belt.selected .belt-handle{border-color:#75ddd7;box-shadow:inset 0 0 0 3px #8b6228,0 0 0 4px #278c873d,0 3px 5px #0000007f}.workshop-board .machine-node.workshop-entity.selected{filter:drop-shadow(0 0 8px rgb(215 168 77 / 48%))}.entity-tag{position:absolute;right:-5px;bottom:-7px;z-index:8;min-width:30px;padding:3px 5px;border:1px solid #6a5639;border-radius:3px;background:#171511ed;color:var(--brass-pale);font-size:7px;font-weight:900;line-height:1;text-align:center;text-transform:uppercase;white-space:nowrap}.workshop-board .solution-entity .entity-tag,.workshop-board .cartridge-solution-entity .entity-tag,.workshop-board .belt-anchor .entity-tag,.workshop-board .loose-anchor .entity-tag{border-color:#278c87;color:#75ddd7}.workshop-board .socket-entity .entity-tag{color:#a69b8b}.draft-summary{max-width:980px;margin:14px auto 0;padding:10px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);gap:10px;color:#8e8476;font-size:10px;font-weight:750;text-align:center}.draft-summary b{margin-right:3px;color:var(--cream);font-size:13px}.inspector-section{padding:0 0 22px;border-bottom:1px solid var(--line);margin-bottom:22px}.inspector-section:last-child{border-bottom:0;margin-bottom:0}.workshop-inspector input,.workshop-inspector textarea{width:100%;border:1px solid #514536;border-radius:4px;background:#211d17;color:var(--cream);font:inherit}.workshop-inspector input{min-height:34px;margin-bottom:13px;padding:0 9px;font-size:11px}.inspector-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.delete-button,.copy-button{min-height:27px;padding:0 8px;border:1px solid #5e4f3c;border-radius:4px;background:#28231d;color:#d8cfbf;cursor:pointer;font-size:10px;font-weight:850}.delete-button{width:28px;padding:0;color:#e8926c;font-size:17px}.delete-button:disabled{cursor:not-allowed;opacity:.35}#selectedKind{display:block;min-height:32px;margin-bottom:11px;color:#d8d0c2;font-size:12px}.coordinate-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.coordinate-fields label span{display:block;margin-bottom:4px;color:#8e8475;font-size:9px;font-weight:850}.coordinate-fields input{margin:0}.proof-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.test-button,.verify-button,.playtest-button{min-height:40px;border:0;border-radius:5px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;font-weight:850}.test-button{background:var(--teal);color:#fff}.verify-button{border:1px solid var(--brass);background:#2b2419;color:var(--brass-pale)}.playtest-button{grid-column:1 / -1;border:1px solid #278c87;background:#0f706e;color:#fff}.playtest-button:hover{border-color:#75ddd7;background:#14827f}.proof-result{min-height:52px;margin-top:9px;padding:10px;border:1px solid #514536;border-radius:4px;background:#211d17;display:flex;align-items:center;justify-content:space-between;gap:10px}.proof-result strong{max-width:50%;color:#d8d0c2;font-size:11px}.proof-result span{max-width:46%;color:#8e8475;font-size:9px;line-height:1.25;text-align:right}.proof-result.success{border-color:#278c87}.proof-result.success strong{color:#75ddd7}.proof-result.error{border-color:#9a4b2e}.proof-result.error strong{color:#e8926c}.json-section textarea{height:170px;padding:9px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px;line-height:1.45}.load-json-button{width:100%;margin-top:7px}@media (max-width: 1180px){.workshop-keepsakes{width:clamp(156px,calc(var(--keepsake-count, 1) * 49px + 10px),304px);height:56px;padding:4px 6px;gap:3px}.workshop-keepsake{flex-basis:46px;width:46px;height:46px}.workshop-layout{grid-template-columns:200px minmax(520px,1fr)}.workshop-inspector{grid-column:1 / -1;border-top:1px solid #3a3127;border-left:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.inspector-section{min-width:0;padding:0 20px 0 0;border-right:1px solid var(--line);border-bottom:0;margin:0}.inspector-section:last-child{border-right:0;padding-right:0}}@media (max-width: 760px){.workshop-topbar{min-height:64px;padding:0 12px;grid-template-columns:auto minmax(0,1fr);gap:8px}.workshop-title,.workshop-header-actions select,#loadCampaignButton{display:none}.workshop-keepsakes{width:clamp(100px,calc(var(--keepsake-count, 1) * 45px + 8px),278px);height:52px;padding:4px}.workshop-keepsake{flex-basis:42px;width:42px;height:42px}.workshop-layout{min-height:calc(100vh - 64px);display:flex;flex-direction:column}.workshop-tools{padding:14px;border-right:0;border-bottom:1px solid #3a3127}.tool-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.tool-button{min-height:46px}.control-group{width:calc(50% - 5px);margin-top:12px;display:inline-block;vertical-align:top}.workshop-canvas{padding:12px 10px 18px}.workshop-board{min-height:0}.workshop-inspector{padding:18px 14px;display:grid;grid-template-columns:1fr 1fr}.inspector-section:nth-child(2){border-right:0;padding-right:0}.json-section{grid-column:1 / -1;border-top:1px solid var(--line);padding-top:18px}}@media (max-width: 520px){.workshop-brand span,.workshop-header-actions>.quiet-link{display:none}.workshop-keepsakes{width:clamp(100px,calc(var(--keepsake-count, 1) * 45px + 8px),120px)}.tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.workshop-inspector{display:block}.inspector-section,.inspector-section:nth-child(2){padding:0 0 18px;border-right:0;border-bottom:1px solid var(--line);margin-bottom:18px}}
