/* Native 3D workbench. Marker numbers always refer to canonical Weapon slot indices. */
.f3d-workbench{min-width:0;border-block:1px solid #2d454e;background:#101d24;color:#b7cdd2}.f3d-toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 12px;background:#14252d;border-bottom:1px solid #304a54}.f3d-toolbar button{font:10px var(--mono,monospace);padding:7px 9px;min-height:31px}.f3d-toolbar .f3d-cameras{display:flex;gap:3px}.f3d-cameras button[aria-pressed=true]{background:#cdef90;color:#152218;border-color:#cdef90}.f3d-toolbar label{display:flex!important;align-items:center;gap:5px!important;font-size:10px!important;white-space:nowrap}.f3d-toolbar input[type=checkbox]{width:auto!important;accent-color:#cdef90}.f3d-stage{height:clamp(400px,39vw,550px);position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 50% 45%,#29444e 0%,#14262f 52%,#0a151c 100%);touch-action:none}.f3d-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;outline:none;touch-action:none}.f3d-markers{position:absolute;inset:0;pointer-events:none;z-index:3}.f3d-marker{position:absolute;transform:translate(-50%,-50%);display:grid;grid-template-columns:25px 13px;grid-template-rows:22px 10px;align-items:center;justify-content:center;width:47px;height:41px;min-width:0;padding:3px!important;border:1px solid #78c8bb;background:#102c32e8;border-radius:5px;box-shadow:0 3px 7px #0009;pointer-events:auto;cursor:grab;touch-action:none;user-select:none;transition:background .12s,box-shadow .12s}.f3d-marker img{grid-row:1;grid-column:1;width:25px;height:23px;object-fit:contain;pointer-events:none}.f3d-marker strong{grid-row:1;grid-column:2;font:11px var(--mono,monospace);color:#d7f4ed}.f3d-marker small{grid-row:2;grid-column:1/-1;font:7px monospace;letter-spacing:.9px;color:#99d4c9}.f3d-marker-symbol{font-size:19px;color:#a1cfc7;line-height:1}.f3d-marker.empty{border-style:dashed;background:#0a2029da;opacity:.9}.f3d-marker.aft{border-color:#d7a06f;background:#32271de8}.f3d-marker.aft small{color:#edbd93}.f3d-marker.selected,.f3d-marker:focus-visible{border-color:#dcff97;outline:2px solid #cdef9080;box-shadow:0 0 15px #cdef9055;z-index:4}.f3d-marker.dragging,.f3d-station.dragging{cursor:grabbing;opacity:.6;z-index:6;pointer-events:none}.f3d-marker.drop-target,.f3d-station.drop-target{outline:3px solid #94e7ff;box-shadow:0 0 16px #94e7ff88;background:#245469}.f3d-marker.model-missing{border-style:dotted}.f3d-direction{position:absolute;right:12px;top:12px;pointer-events:none;font:9px monospace;letter-spacing:.8px;color:#cdef90;z-index:1;background:#101e26bd;padding:6px 8px;border-radius:3px}.f3d-status{position:absolute;inset:25% 8%;display:flex;align-items:center;justify-content:center;gap:12px;text-align:center;pointer-events:none;font:12px/1.7 var(--mono,monospace);color:#d6e7e9;z-index:2;text-shadow:0 1px 3px #000}.f3d-status[hidden],.f3d-marker[hidden],.f3d-station[hidden]{display:none!important}.f3d-fallback-icon{width:110px;height:90px;object-fit:contain}.f3d-summary{padding:12px 14px;border-top:1px solid #2b454e;font-size:11px;line-height:1.6}.f3d-summary>div:first-child{display:flex;flex-wrap:wrap;gap:7px 16px}.f3d-summary b{color:#d1ed9e;font:12px var(--mono,monospace)}.f3d-summary p{font-size:10px;color:#bfd0d4;margin:9px 0 0}.f3d-arc-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.f3d-arc-list span{display:inline-block;border:1px solid #345e60;border-radius:3px;padding:3px 6px;font:9px/1.5 monospace;color:#95ded0}.f3d-arc-list span.aft{color:#e9b58a;border-color:#705440}.f3d-note{font:10px/1.7 var(--mono,monospace);color:#90acb7;padding:0 14px 12px;margin:0}.f3d-dropping{box-shadow:inset 0 0 0 3px #94e7ff}.f3d-fleet-stage{height:clamp(430px,43vw,550px)}.f3d-station{position:absolute;transform:translate(-50%,-50%);width:112px;max-width:125px;min-height:29px;display:grid;gap:3px;padding:5px 6px!important;border:1px dashed #3c5d69;background:#10212a8c;pointer-events:auto;white-space:normal;font:9px/1.3 var(--mono,monospace);color:#738e9a;border-radius:4px;touch-action:none;user-select:none}.f3d-station.occupied{border:1px solid #6d9b9b;background:#112b35ed;color:#e0edeb;cursor:grab;box-shadow:0 4px 9px #0008}.f3d-station strong{font-size:10px;color:#daf0cd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f3d-station span{font-size:8px}.f3d-station img{width:38px;height:26px;object-fit:contain;margin:auto}.f3d-station:focus-visible{outline:2px solid #cdef90}.f3d-station.model-missing{border-color:#dfb482}.f3d-fleet-stage .f3d-status{inset:30% 12%;background:#0b1b23c9;border-radius:5px;padding:10px;max-height:100px}
@media(max-width:760px){.f3d-stage{height:430px}.f3d-fleet-stage{height:460px}.f3d-toolbar{padding:8px;gap:6px}.f3d-toolbar button{padding:7px;font-size:9px}.f3d-toolbar label{font-size:9px!important}.f3d-marker{width:43px;height:38px;grid-template-columns:23px 12px}.f3d-station{width:83px;max-width:83px;min-height:27px;padding:4px!important}.f3d-station strong{font-size:8px}.f3d-station span{font-size:7px}.f3d-direction{font-size:8px;right:7px;top:8px}.f3d-summary{padding:10px}}
@media(prefers-reduced-motion:reduce){.f3d-marker{transition:none}}
@media print{.f3d-workbench{display:none}}

.f3d-marker-leader{position:absolute;display:block;height:1px;background:#99cfca88;transform-origin:0 50%;pointer-events:none;z-index:-1}.f3d-marker-leader:before{content:"";display:block;width:4px;height:4px;border-radius:50%;background:#9cddd2;position:absolute;left:-2px;top:-2px}.f3d-marker-leader[hidden]{display:none!important}

.f3d-station{width:44px;max-width:44px;min-height:20px;padding:3px!important}.f3d-station.occupied{width:104px;max-width:104px;min-height:34px;background:#102731e8}.f3d-station.occupied span{font-size:8px;color:#aac5c9}.f3d-station strong{font-size:9px}@media(max-width:760px){.f3d-station{width:34px;max-width:34px}.f3d-station.occupied{width:84px;max-width:84px}.f3d-station strong{font-size:8px}}

.f3d-kind-badge{position:absolute;top:12px;left:12px;z-index:2;padding:7px 10px;background:#102831eb;border:1px solid #5d9b94;border-radius:3px;color:#b5e8db;font:10px monospace;pointer-events:none}.f3d-kind-badge[data-kind=Armor]{color:#a8d7ff;border-color:#739bbc}.f3d-kind-badge[data-kind=Shield]{color:#cbb5ff;border-color:#9b80c6}.f3d-kind-badge[data-kind=Special]{color:#f2d694;border-color:#b09a60}.f3d-marker.kind-armor{border-color:#7fb5e0;background:#192e48e8}.f3d-marker.kind-shield{border-color:#ae8be8;background:#302544e8}.f3d-marker.kind-special{border-color:#d7bc7a;background:#39301ce8}.f3d-marker:not(.kind-weapon){width:54px}.f3d-marker:not(.kind-weapon) small{font-size:7px;letter-spacing:.4px}.f3d-arc-guides{position:absolute;inset:0;z-index:2;pointer-events:none}.f3d-arc-callout{position:absolute;transform:translate(-50%,-50%);max-width:190px;padding:6px 9px;border:1px solid #e7a165;background:#352618f0;color:#ffd2a7;border-radius:4px;font:10px/1.4 monospace;white-space:nowrap;box-shadow:0 2px 10px #0007}.f3d-arc-callout[hidden],.f3d-arc-guides[hidden]{display:none!important}.f3d-overview-row{display:flex;gap:15px;align-items:center;margin-top:9px}.f3d-arc-overview{flex:0 0 250px;width:250px;max-width:100%;height:auto;border:1px solid #354e59;background:#0c1b23;border-radius:4px}.f3d-arc-overview text{font:9px monospace}.f3d-overview-row>div{min-width:0}.f3d-overview-row p{line-height:1.6}.f3d-overview-row b{font-size:11px}.f3d-summary .f3d-overview-row{display:flex}.f3d-summary .f3d-overview-row>div{display:block}
@media(max-width:760px){.f3d-kind-badge{font-size:9px;top:9px;left:8px;padding:5px}.f3d-arc-callout{font-size:9px;padding:5px 6px}.f3d-overview-row{flex-direction:column;align-items:flex-start;gap:9px}.f3d-arc-overview{flex:auto;width:100%;max-width:300px}.f3d-marker:not(.kind-weapon){width:48px}}
