/* BIMDAS 3D viewer. Uses the BIMDAS theme tokens when present, with neutral fallbacks for any theme. */
.bimdas-viewer{
  --bv-surface:var(--surface,#fff); --bv-paper:var(--paper,#f3f5f7); --bv-ink:var(--ink,#0f1722); --bv-ink2:var(--ink-2,#4a5666); --bv-ink3:var(--ink-3,#6e7a88);
  --bv-line:var(--line,#d6dce2); --bv-line2:var(--line-2,#b9c3cd); --bv-accent:var(--blue-fill,#007edf);
  --bv-mono:var(--mono,ui-monospace,Menlo,Consolas,monospace);
  --bv-stage-bg:#0b121b; --bv-stage-grid:rgba(120,160,200,.12); --bv-hud:#7f93a8; --bv-hud-strong:#dce6f0; --bv-status-bg:rgba(11,18,27,.9); --bv-status-line:#22303f;
  --bv-grid:#2a4058; --bv-grid2:#162230; --bv-edge:#13202c; --bv-wire:#4da6ff; --bv-measure:#4da6ff;
  display:grid;grid-template-columns:220px minmax(0,1fr) 300px;border:1px solid var(--bv-line);background:var(--bv-surface);color:var(--bv-ink);min-height:var(--bv-h,560px);font-size:14px;line-height:1.5;margin-block:1.5em
}
.bimdas-viewer *{box-sizing:border-box}
.bimdas-viewer .bv-tools{border-right:1px solid var(--bv-line);padding:18px;display:grid;gap:20px;align-content:start}
.bimdas-viewer .bv-group{display:grid;gap:8px}
.bimdas-viewer .bv-label{font:500 10.5px/1.2 var(--bv-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--bv-ink3)}
.bimdas-viewer .bv-seg{display:grid;gap:4px}
.bimdas-viewer .bv-seg button,.bimdas-viewer .bv-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:36px;padding:4px 10px;border:1px solid var(--bv-line);background:var(--bv-paper);color:var(--bv-ink);border-radius:2px;cursor:pointer;font:inherit;font-size:13.5px;text-align:left;line-height:1.3}
.bimdas-viewer .bv-seg button[aria-pressed="true"],.bimdas-viewer .bv-btn[aria-pressed="true"]{background:var(--bv-ink);color:var(--bv-paper);border-color:var(--bv-ink)}
.bimdas-viewer .bv-seg button:hover,.bimdas-viewer .bv-btn:hover{border-color:var(--bv-ink2)}
.bimdas-viewer button:focus-visible,.bimdas-viewer input:focus-visible+span,.bimdas-viewer a:focus-visible{outline:2px solid var(--bv-accent);outline-offset:2px}
.bimdas-viewer input[type=range]{width:100%;accent-color:var(--bv-accent)}
.bimdas-viewer .bv-mono{font-family:var(--bv-mono);font-size:12px}
.bimdas-viewer .bv-file{position:relative;overflow:hidden}
.bimdas-viewer .bv-file input{position:absolute;inset:0;opacity:0;cursor:pointer}
.bimdas-viewer .bv-note{font-size:12px;color:var(--bv-ink3);line-height:1.4}
.bimdas-viewer .bv-stage{position:relative;min-height:360px;overflow:hidden;background-color:var(--bv-stage-bg);background-image:linear-gradient(var(--bv-stage-grid) 1px,transparent 1px),linear-gradient(90deg,var(--bv-stage-grid) 1px,transparent 1px);background-size:120px 120px}
.bimdas-viewer .bv-stage canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;touch-action:none}
.bimdas-viewer .bv-hud{position:absolute;left:12px;top:12px;right:12px;display:flex;justify-content:space-between;gap:8px;pointer-events:none;font:500 11px/1.4 var(--bv-mono);color:var(--bv-hud)}
.bimdas-viewer .bv-hud b{color:var(--bv-hud-strong);font-weight:500}
.bimdas-viewer .bv-hint{position:absolute;left:12px;bottom:12px;font:500 11px/1.4 var(--bv-mono);color:var(--bv-hud);pointer-events:none;max-width:70%}
.bimdas-viewer .bv-status{position:absolute;inset:auto 12px 44px 12px;padding:10px 12px;background:var(--bv-status-bg);border:1px solid var(--bv-status-line);color:var(--bv-hud-strong);font:500 12.5px/1.4 var(--bv-mono)}
.bimdas-viewer .bv-mlabel{position:absolute;transform:translate(-50%,-130%);background:var(--bv-measure);color:#04111f;font:600 12px/1 var(--bv-mono);padding:5px 7px;border-radius:2px;pointer-events:none;white-space:nowrap}
.bimdas-viewer .bv-info{border-left:1px solid var(--bv-line);padding:18px;display:grid;gap:18px;align-content:start}
.bimdas-viewer .bv-title{font-size:18px;line-height:1.25;margin:8px 0 0}
.bimdas-viewer .bv-kv{display:grid;grid-template-columns:auto 1fr;margin:0;font-size:13.5px}
.bimdas-viewer .bv-kv dt,.bimdas-viewer .bv-kv dd{padding:7px 0;border-bottom:1px solid var(--bv-line);margin:0}
.bimdas-viewer .bv-kv dt{color:var(--bv-ink3);font:500 11.5px/1.5 var(--bv-mono);padding-right:12px}
.bimdas-viewer .bv-kv dd{text-align:right;font-variant-numeric:tabular-nums}
.bimdas-viewer .bv-mval{font-size:20px}
.bimdas-viewer .bv-dl{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.bimdas-viewer .bv-dl a{display:grid;place-items:center;height:34px;border:1px solid var(--bv-line2);background:var(--bv-paper);border-radius:2px;font:500 12px/1 var(--bv-mono);color:var(--bv-ink);text-decoration:none}
.bimdas-viewer .bv-dl a:hover{border-color:var(--bv-accent);color:var(--bv-accent)}
@media (max-width:1100px){.bimdas-viewer{grid-template-columns:1fr 280px}.bimdas-viewer .bv-tools{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--bv-line);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
@media (max-width:760px){.bimdas-viewer{grid-template-columns:1fr}.bimdas-viewer .bv-info{border-left:0;border-top:1px solid var(--bv-line)}.bimdas-viewer .bv-stage{min-height:360px}}
.bimdas-hero3d{position:absolute;inset:0}
.bimdas-hero3d canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block}
