/* 3D field (public/field3d.js). Follows the field toolbar look: dark-green chrome, condensed display type, white "on" segment. */
#ffield.is3d>svg,#ffield.is3d>.dnote{display:none}
.g3d.f3d{position:relative;width:100%;background:#0f2a1a}
.g3d.f3d canvas{display:block;width:100%;border-radius:6px;cursor:grab;touch-action:none;outline:none}
.g3d.f3d canvas:active{cursor:grabbing}.g3d.f3d canvas:focus-visible{box-shadow:0 0 0 2px #fff inset}
.f3d-ov{position:absolute;left:8px;top:8px;right:8px;display:flex;align-items:center;gap:8px;pointer-events:none}
.f3d-tag{font:900 12px/1 var(--disp,"Arial Narrow",sans-serif);letter-spacing:.08em;background:rgba(10,16,12,.72);color:#fff;padding:5px 7px;border-radius:6px}
.f3d-cams{margin-left:auto;display:inline-flex;background:rgba(10,16,12,.72);border-radius:10px;padding:3px;pointer-events:auto}
.f3d-cams button{border:0;background:transparent;color:#cfd8d2;font:800 12px/1 var(--disp,"Arial Narrow",sans-serif);letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:6px;cursor:pointer}
.f3d-cams button:hover{color:#fff}.f3d-cams button.on{background:#fff;color:var(--ink,#121a15)}
.f3d-cams button:focus-visible{outline:2px solid #fff;outline-offset:1px}
.f3d-legend{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;padding:7px 4px 0;font-size:11px;color:#cfe3d5}
.f3d-legend .sw{display:inline-block;width:14px;height:4px;border-radius:2px;margin-right:5px;vertical-align:middle}
.f3d-legend .sw.los{background:#2e7df7}.f3d-legend .sw.fd{background:#ffd600}.f3d-legend .sw.ball{background:#8c4519;width:10px;height:7px;border-radius:50%}.f3d-legend .sw.sc{background:#f4c400;width:4px;height:12px}
.f3d-src{margin-left:auto;opacity:.75}.f3d-ill{color:#ffd600;font-weight:700}
.f3d-fallback{color:#ffd600;font-weight:700}
@media (prefers-reduced-motion:reduce){.f3d-cams button{transition:none}}
/* Field3D draws no players: hide the 2D/three reconstructed-player tools and badges while it is on */
#ffield.f3d-on :is(.rbadge,.rtools,.rhud){display:none!important}

.f3d-books{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin-left:.4rem;padding-left:.45rem;border-left:1px solid rgba(255,255,255,.12);pointer-events:auto;position:relative;z-index:2}
.f3d-books-lbl{font:800 10px/1 var(--disp,"Arial Narrow",sans-serif);letter-spacing:.08em;text-transform:uppercase;opacity:.65}
.f3d-books button{appearance:none;border:1px solid rgba(255,255,255,.16);background:rgba(0,0,0,.35);color:#e8efe9;border-radius:999px;padding:.25rem .5rem;font:600 10px/1.1 system-ui;cursor:pointer}
.f3d-books button:hover{background:rgba(255,255,255,.12)}
.f3d-book-list{display:inline-flex;flex-wrap:wrap;gap:.25rem;align-items:center}
.f3d-book{max-width:7.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.f3d-book-x{padding:.15rem .4rem!important;opacity:.7}

.f3d-legend .f3d-pers{color:#9fd0ff;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.f3d-legend .f3d-pers[hidden]{display:none!important}

.f3d-miniwrap{position:absolute;right:8px;bottom:8px;width:min(220px,42%);z-index:3;pointer-events:auto;border-radius:8px;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.18);cursor:crosshair;background:#0f2a1a}
.f3d-miniwrap svg{display:block;width:100%;height:auto}
.f3d-miniwrap:focus-within,.f3d-miniwrap:hover{border-color:#86efac}
@media (prefers-reduced-motion:reduce){.f3d-miniwrap{transition:none}}
