/* BimCraft browser UI — three columns: file panel | model stage | properties.
 * Tokens only (paper/model aware); hierarchy by line weight; no shadows. */

.bc {
  display: grid;
  grid-template-columns: 17rem minmax(0, 1fr) 21rem;
  height: 100%;
  min-height: 0;
}

/* ---- Panels ---- */
.bc-panel { overflow-y: auto; min-height: 0; background: var(--sheet-2); }
.bc-left { border-right: var(--pen-2) solid var(--ink); }
.bc-right { border-left: var(--pen-2) solid var(--ink); }
.bc-sec { padding: 1rem; border-bottom: var(--pen-1) solid var(--line); }
.bc-sec:last-child { border-bottom: 0; }
.bc-h { font-size: var(--fs-sm); font-weight: 700; font-stretch: 112%; margin: 0 0 .65rem; }
.bc-muted, .bc-note { color: var(--ink-2); font-size: var(--fs-sm); margin: 0; }
.bc-note { margin-top: .65rem; display: flex; gap: .4rem; align-items: baseline; }

.bc-drop {
  display: grid;
  justify-items: center;
  gap: .15rem;
  padding: 1.1rem .75rem;
  text-align: center;
  border: var(--pen-2) dashed var(--ink);
  border-radius: var(--radius);
  cursor: pointer;
}
.bc-drop:hover, .bc-drop:focus-within { border-style: solid; background: var(--sheet); }
.bc-drop:focus-within { outline: var(--pen-3) solid var(--action); outline-offset: 2px; }
.bc-drop .bi { font-size: 1.5rem; color: var(--layer); }
.bc-drop-main { font-weight: 700; }
.bc-drop-sub { font-size: var(--fs-sm); color: var(--ink-2); }

.bc-dl { display: grid; grid-template-columns: fit-content(50%) minmax(0, 1fr); gap: .3rem .75rem; margin: 0; font-size: var(--fs-sm); }
.bc-dl dt { color: var(--ink-2); font-weight: 500; overflow-wrap: anywhere; }
.bc-dl dd { margin: 0; overflow-wrap: anywhere; }

.bc-checks, .bc-counts { list-style: none; margin: 0; padding: 0; font-size: var(--fs-sm); }
.bc-checks li + li, .bc-counts li + li { border-top: var(--pen-1) solid var(--grid); }
.bc-checks label { display: flex; align-items: center; gap: .55rem; padding: .35rem 0; cursor: pointer; }
.bc-checks input { accent-color: var(--action); width: 1rem; height: 1rem; }
.bc-checks .n, .bc-counts .n { margin-left: auto; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.bc-counts li { display: flex; gap: .5rem; padding: .3rem 0; }

/* ---- Stage ---- */
.bc-stage { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: var(--sheet); }
.bc-canvas { position: absolute; inset: 0; }
.bc-canvas canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: crosshair; }

.bc-toolbar {
  position: absolute;
  z-index: 2;
  top: .75rem;
  left: .75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  background: var(--sheet-2);
  border: var(--pen-2) solid var(--ink);
  border-radius: var(--radius);
}
.bc-tool {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .35rem .5rem;   /* view + Edit fit one row and the library tools the next at 1440 px */
  font: inherit;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--ink);
  background: transparent;
  border: 0;
  border-right: var(--pen-1) solid var(--line);
  cursor: pointer;
}
.bc-tool:last-child { border-right: 0; }
.bc-tool:hover { background: var(--sheet); }
.bc-tool:focus-visible { outline: var(--pen-3) solid var(--action); outline-offset: -3px; }
.bc-tool[aria-pressed="true"] { background: var(--ink); color: var(--sheet); }
.bc-tool-sep { width: var(--pen-2); background: var(--ink); }
/* Tools that cannot act right now: still focusable and clickable (the click says why), title = the reason. */
.bc-tool[aria-disabled="true"] { color: var(--ink-2); opacity: .55; cursor: default; }
.bc-tool[aria-disabled="true"]:hover { background: transparent; }

/* Edit › More: a menu in the toolbar (details, so it works without layout scripts) */
.bc-menu { position: relative; display: flex; }
.bc-menu > summary.bc-tool { list-style: none; border-right: var(--pen-1) solid var(--line); }
.bc-menu > summary.bc-tool::-webkit-details-marker { display: none; }
.bc-menu[open] > summary.bc-tool { background: var(--ink); color: var(--sheet); }
.bc-menu-list {
  position: absolute; z-index: 4; top: calc(100% + var(--pen-2)); left: calc(-1 * var(--pen-2)); min-width: 15rem;
  display: flex; flex-direction: column; padding: .25rem 0;
  background: var(--sheet-2); border: var(--pen-2) solid var(--ink); border-radius: var(--radius);
}
.bc-menu.is-right .bc-menu-list { left: auto; right: calc(-1 * var(--pen-2)); }
.bc-menu-list button {
  display: flex; align-items: baseline; justify-content: space-between; gap: 1.25rem;
  font: inherit; font-size: var(--fs-sm); font-weight: 600; text-align: left; color: var(--ink);
  background: none; border: 0; padding: .4rem .8rem; cursor: pointer;
}
.bc-menu-list button:hover, .bc-menu-list button:focus-visible { background: var(--sheet); text-decoration: underline; outline: none; }
.bc-menu-list button[aria-disabled="true"] { color: var(--ink-2); opacity: .6; cursor: default; text-decoration: none; }
.bc-menu-list kbd { font: inherit; font-size: .75rem; font-weight: 500; color: var(--ink-2); background: none; border: 0; padding: 0; white-space: nowrap; }
.bc-menu-list hr { margin: .25rem 0; border: 0; border-top: var(--pen-1) solid var(--line); opacity: 1; }

.bc-status {
  position: absolute;
  z-index: 2;
  left: .75rem;
  bottom: .75rem;
  margin: 0;
  max-width: calc(100% - 1.5rem);
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums;
}
.bc-status:not(:empty) { padding: .3rem .6rem; background: var(--sheet-2); border: var(--pen-1) solid var(--ink); border-radius: var(--radius); }
.bc-status.is-error { border-color: var(--layer-red); color: var(--layer-red); font-weight: 600; }

.bc-empty {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  padding: clamp(1.5rem, 1rem + 3vw, 4rem);
  background-image:
    linear-gradient(var(--grid-minor) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-minor) 1px, transparent 1px);
  background-size: 1.5rem 1.5rem;
}
.bc-empty-h { font-size: var(--fs-2xl); margin: 0 0 .5rem; }
.bc-empty-lede { font-size: var(--fs-md); color: var(--ink-2); margin: 0 0 1.25rem; }
.bc-empty-cta { margin: 0 0 2rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.bc-empty-cta .btn-plot, .bc-empty-cta .btn-line { display: inline-flex; align-items: center; gap: .5rem; }
.bc-folder-btn { display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; margin-top: .6rem; }
.bc-recent { margin-top: .75rem; }
.bc-recent-h { margin: 0 0 .25rem; font-size: var(--fs-sm); font-weight: 600; color: var(--ink-2); }
.bc-recent ul { list-style: none; margin: 0; padding: 0; font-size: var(--fs-sm); }
.bc-recent li { display: flex; align-items: center; gap: .5rem; padding: .2rem 0; }
.bc-recent .bc-linkbtn { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bc-forget { margin-left: auto; padding: 0 .3rem; line-height: 1.4; color: var(--ink-2); background: none; border: var(--pen-1) solid transparent; border-radius: var(--radius); cursor: pointer; }
.bc-forget:hover { border-color: var(--ink); color: var(--ink); }
.bc-forget:focus-visible { outline: var(--pen-3) solid var(--action); outline-offset: 1px; }
.bc-back { display: inline-flex; align-items: center; gap: .35rem; margin-top: .75rem; }

/* ---- Buttons that read as links ---- */
.bc-linkbtn { padding: 0; font: inherit; font-weight: 600; color: var(--action); background: none; border: 0; text-align: left; text-decoration: underline; text-underline-offset: .15em; cursor: pointer; }
.bc-linkbtn:hover { text-decoration-thickness: var(--pen-2); }
.bc-linkbtn:focus-visible { outline: var(--pen-3) solid var(--action); outline-offset: 2px; }
.bc-sub { display: block; color: var(--ink-2); font-size: var(--fs-sm); font-weight: 400; overflow-wrap: anywhere; }

/* ---- Status pills ---- */
.bc-pill { display: inline-block; padding: 0 .45rem; font-size: var(--fs-sm); font-weight: 600; white-space: nowrap; border: var(--pen-1) solid currentColor; border-radius: var(--radius); }
.bc-pill.is-ok { color: var(--layer-green); }
.bc-pill.is-warn { color: var(--layer-ochre); }
.bc-pill.is-bad { color: var(--layer-red); }
.bc-pill.is-info { color: var(--ink-2); border-style: dashed; }

/* ---- Folder report ---- */
.bc-focus { margin: 1.25rem 0 .25rem; padding: 1rem 1.25rem; background: var(--sheet-2); border: var(--pen-3) solid var(--action); border-radius: var(--radius); }
.bc-focus-k { margin: 0 0 .2rem; color: var(--action); font-weight: 700; font-size: var(--fs-sm); }
.bc-focus-name { margin: 0 0 .35rem; font-size: var(--fs-lg); font-weight: 700; }
.bc-focus-name .bc-linkbtn { font-weight: 700; overflow-wrap: anywhere; }
.bc-focus-why { margin: .75rem 0 .5rem; padding-left: 1.1rem; }
.bc-focus-why li { margin: .15rem 0; }
.bc-focus-note { margin: 0 0 .75rem; color: var(--ink-2); font-size: var(--fs-sm); }
.bc-focus-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
.bc-ftable tr.is-focus > th, .bc-ftable tr.is-focus > td { background: color-mix(in srgb, var(--action) 9%, transparent); }
.bc-ftable tr.is-focus > th { border-left: var(--pen-3) solid var(--action); padding-left: .5rem; }
.bc-pill.is-focus { margin-right: .4rem; color: var(--on-action); background: var(--action); border-color: var(--action); }
.bc-roles { display: block; margin-top: .1rem; color: var(--ink-2); font-size: var(--fs-sm); font-weight: 400; font-style: italic; }
.bc-folder-head { padding-bottom: 1rem; border-bottom: var(--pen-2) solid var(--ink); }
.bc-folder-head h1 { font-size: var(--fs-xl); margin: 0 0 .5rem; overflow-wrap: anywhere; }
.bc-folder-privacy { margin-top: .6rem; }
.bc-folder-alert { margin: .6rem 0 0; padding: .5rem .75rem; font-weight: 600; color: var(--layer-red); border: var(--pen-1) solid var(--layer-red); border-radius: var(--radius); }
.bc-folder-alert.is-warn { color: var(--layer-ochre); border-color: var(--layer-ochre); }
.bc-card .bc-ftable th { width: auto; }
.bc-ftable thead th { font-weight: 600; color: var(--ink-2); border-bottom: var(--pen-2) solid var(--ink); }
.bc-ftable tbody th { color: var(--ink); font-weight: 600; }
.bc-model-name { font-weight: 700; }
.bc-model-more td { padding-top: 0; }
.bc-model-more p { margin: .2rem 0 .4rem; color: var(--layer-red); }
.bc-model-more summary { cursor: pointer; color: var(--ink-2); font-size: var(--fs-sm); padding: .15rem 0; }
.bc-copies { list-style: none; margin: .3rem 0 .5rem; padding: 0; }
.bc-copies li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .75rem; padding: .3rem 0; border-bottom: var(--pen-1) solid var(--grid); }
.bc-copies li .bc-sub { display: inline; }
.bc-setaside p { margin: 0 0 .4rem; color: var(--ink-2); font-size: var(--fs-sm); overflow-wrap: anywhere; }
.bc-card-back { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem 1rem; margin: 0 0 1rem; }
.bc-card-back .bc-sub { display: inline; }
@media (max-width: 760px) {
  .bc-ftable thead { display: none; }
  .bc-ftable tr { display: block; padding: .5rem 0; border-bottom: var(--pen-1) solid var(--line); }
  .bc-card .bc-ftable th, .bc-card .bc-ftable td { display: block; border: 0; padding: .1rem 0; }
  .bc-ftable td[data-label]::before { content: attr(data-label) ": "; color: var(--ink-2); }
}
.bc-formats { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; border-top: var(--pen-2) solid var(--ink); }
.bc-formats li { padding-top: 1rem; display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 1rem; }
.bc-formats li + li { border-top: var(--pen-1) solid var(--line); }
.bc-formats p { margin: 0; }
.bc-fmt-name { font-weight: 700; font-stretch: 112%; color: var(--layer); }
.bc-noscript { margin-top: 1.5rem; font-weight: 600; }

.bc-dropveil {
  position: absolute;
  inset: .75rem;
  z-index: 3;
  display: grid;
  place-items: center;
  border: var(--pen-3) dashed var(--action);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--sheet) 85%, transparent);
  pointer-events: none;
}
.bc-dropveil p { margin: 0; font-size: var(--fs-lg); font-weight: 700; }

/* ---- DWG / DXF drawing ---- */
.bc-dwg { position: absolute; inset: 0; }
.bc-dwg canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: crosshair; }
.bc-dwg canvas.is-panning { cursor: grabbing; }
.bc-sheets { max-width: calc(100% - 1.5rem); overflow-x: auto; flex-wrap: nowrap; }
.bc-sheets .bc-tool { white-space: nowrap; }
/* Drawing in 3D (dwg-view3d.js): the view bar sits under the model/sheet tabs */
.bc-dwg3d { position: absolute; inset: 0; }
.bc-dwg3d canvas { cursor: grab; }
.bc-dwg3d-bar { top: 3.9rem; }
/* IFC section plane bar (under the view toolbar) */
.bc-sectionbar { position: absolute; z-index: 2; left: .75rem; max-width: calc(100% - 1.5rem); top: var(--bc-sec-top, 3.9rem); display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem;
  padding: .45rem .6rem; background: var(--sheet-2); border: var(--pen-1) solid var(--line); border-radius: var(--radius); font-size: var(--fs-sm); }
.bc-sectionbar label { display: inline-flex; align-items: center; gap: .4rem; }
.bc-sectionbar input[type="range"] { width: 12rem; max-width: 40vw; accent-color: var(--action); }
.bc-sectionbar .bc-input { width: 7rem; }
.bc-sectionbar .bc-sub { color: var(--ink-2); }
.bc-coords { position: absolute; right: .75rem; bottom: .75rem; margin: 0; padding: .2rem .5rem; font-size: var(--fs-sm); font-variant-numeric: tabular-nums;
  background: var(--sheet-2); border: var(--pen-1) solid var(--line); border-radius: var(--radius); pointer-events: none; }
.bc-coords:empty { display: none; }
/* Equipment schedule (over the drawing, under the sheet tabs) */
.bc-equip { position: absolute; inset: 0; overflow: auto; padding: 4.25rem clamp(1rem, .75rem + 2vw, 2.5rem) 2rem; background: var(--sheet); }
.bc-equip-head { padding-bottom: .9rem; border-bottom: var(--pen-2) solid var(--ink); }
.bc-equip-head h1 { font-size: var(--fs-xl); margin: 0 0 .35rem; }
.bc-equip-head p { margin: 0; }
.bc-equip-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin: 1rem 0 .4rem; }
.bc-equip-tools .select-cc { width: auto; max-width: 100%; }
.bc-equip-search { flex: 1 1 14rem; min-width: 0; padding: .4rem .6rem; font: inherit; color: var(--ink); background: var(--sheet-2); border: var(--pen-1) solid var(--line); border-radius: var(--radius); }
.bc-equip-search::placeholder { color: var(--placeholder); }
.bc-equip-search:focus-visible { outline: var(--pen-2) solid var(--action); outline-offset: 1px; }
.bc-equip-count { margin: .25rem 0 .5rem; }
.bc-equip-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.bc-equip-table th, .bc-equip-table td { padding: .4rem .6rem .4rem 0; vertical-align: top; text-align: left; border-bottom: var(--pen-1) solid var(--grid); }
.bc-equip-table td.is-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.bc-equip-table tbody th { white-space: nowrap; font-variant-numeric: tabular-nums; }
.bc-equip-table tr.is-clash > th { border-left: var(--pen-3) solid var(--layer-ochre); padding-left: .4rem; }
.bc-equip-clash { margin-left: .4rem; }
.bc-equip-table td .bc-linkbtn { white-space: nowrap; text-align: left; }
.bc-equip-note { margin: 1rem 0 0; font-size: var(--fs-sm); }
@media (max-width: 760px) {
  .bc-equip-table thead { display: none; }
  .bc-equip-table tr { display: block; padding: .5rem 0; border-bottom: var(--pen-1) solid var(--line); }
  .bc-equip-table th, .bc-equip-table td { display: block; border: 0; padding: .1rem 0; }
  .bc-equip-table td[data-label]::before { content: attr(data-label) ": "; color: var(--ink-2); }
}
.bc-layer-all { display: flex; gap: .75rem; margin: -.3rem 0 .4rem; font-size: var(--fs-sm); }
.bc-swatch { width: .8rem; height: .8rem; flex: 0 0 auto; border: var(--pen-1) solid var(--line); border-radius: 1px; }

/* ---- RVT / RFA file card ---- */
.bc-card { position: absolute; inset: 0; overflow-y: auto; padding: clamp(1rem, .75rem + 2vw, 2.5rem); }
.bc-card-head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.5rem; align-items: start; padding-bottom: 1.25rem; border-bottom: var(--pen-2) solid var(--ink); }
.bc-card-preview { width: 12rem; aspect-ratio: 1; display: grid; place-items: center; background: #fff; border: var(--pen-1) solid var(--ink); border-radius: var(--radius); }
.bc-card-preview img { max-width: 100%; max-height: 100%; image-rendering: auto; }
.bc-card-preview .bc-muted { padding: 1rem; text-align: center; color: #34404E; }
.bc-card-kind { color: var(--layer); font-weight: 700; font-size: var(--fs-sm); margin: 0 0 .25rem; }
.bc-card h1 { font-size: var(--fs-xl); margin: 0 0 .35rem; overflow-wrap: anywhere; }
.bc-card-sub { color: var(--ink-2); margin: 0; }
.bc-card-alert { margin: 0 0 1.25rem; padding: .6rem .9rem; color: var(--layer-ochre); border: var(--pen-1) solid var(--layer-ochre); border-radius: var(--radius); }
.bc-card-alert p { margin: 0; }
.bc-card-alert .bc-card-alert-strong { margin-top: .35rem; font-weight: 700; }
.bc-card-note { margin: 1.25rem 0 0; padding: .75rem 1rem; border: var(--pen-1) dashed var(--ink); border-radius: var(--radius); background: var(--sheet-2); }
.bc-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 0 2rem; }
.bc-card-sec { padding: 1.25rem 0 0; }
.bc-card-sec h2 { font-size: var(--fs-base); font-weight: 700; font-stretch: 112%; margin: 0 0 .6rem; padding-bottom: .35rem; border-bottom: var(--pen-1) solid var(--line); }
.bc-card table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.bc-card th, .bc-card td { text-align: left; vertical-align: top; padding: .3rem .75rem .3rem 0; border-bottom: var(--pen-1) solid var(--grid); overflow-wrap: anywhere; }
.bc-card th { color: var(--ink-2); font-weight: 500; width: 40%; }

/* ---- Properties ---- */
.bc-edit-hint { margin: -.4rem 0 .75rem; color: var(--ink-2); font-size: var(--fs-sm); }
.bc-editable { position: relative; }
.bc-val { display: block; width: 100%; padding: 0 .25rem; margin: 0 -.25rem; font: inherit; color: inherit; text-align: left; background: none;
  border: var(--pen-1) dashed transparent; border-radius: var(--radius); cursor: text; overflow-wrap: anywhere; }
.bc-val:hover { border-color: var(--line); background: var(--sheet); }
.bc-val:focus-visible { outline: var(--pen-3) solid var(--action); outline-offset: 1px; }
.bc-empty-val { color: var(--placeholder); font-style: italic; }
.bc-editable.is-edited .bc-val { border-left: var(--pen-3) solid var(--action); border-top-left-radius: 0; border-bottom-left-radius: 0; font-weight: 600; }
.bc-input { width: 100%; padding: .1rem .3rem; font: inherit; color: var(--ink); background: var(--sheet-2); border: var(--pen-2) solid var(--action); border-radius: var(--radius); }
.bc-input:focus { outline: none; }
.bc-input-err { display: block; color: var(--layer-red); font-size: var(--fs-sm); font-weight: 600; }
.bc-input-err:empty { display: none; }
.bc-type-note { margin: 0 0 .4rem; padding: .3rem .5rem; color: var(--layer-ochre); font-size: var(--fs-sm); border: var(--pen-1) dashed var(--layer-ochre); border-radius: var(--radius); }
.bc-changes { margin: 0 0 .6rem; padding: 0; list-style: none; font-size: var(--fs-sm); max-height: 14rem; overflow-y: auto; }
.bc-changes li { padding: .25rem 0; border-bottom: var(--pen-1) solid var(--grid); }
.bc-change-what { display: block; font-weight: 600; overflow-wrap: anywhere; }
.bc-change-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.bc-change-actions button { display: inline-flex; align-items: center; gap: .35rem; }
.bc-change-actions button:disabled { opacity: .45; cursor: not-allowed; }
.bc-prop-cls { color: var(--layer); font-weight: 700; font-size: var(--fs-sm); margin: 0; }
.bc-prop-name { font-size: var(--fs-md); font-weight: 700; margin: .1rem 0 .75rem; overflow-wrap: anywhere; }
.bc-set { border-top: var(--pen-1) solid var(--line); }
.bc-set summary { padding: .45rem 0; font-size: var(--fs-sm); font-weight: 700; cursor: pointer; }
.bc-set .bc-dl { padding-bottom: .6rem; }

/* ---- Narrow screens: stage on top, panels below ---- */
@media (max-width: 960px) {
  .bc { grid-template-columns: 1fr; grid-template-rows: auto; height: auto; }
  .bc-stage { order: -1; height: 62vh; min-height: 22rem; border-bottom: var(--pen-2) solid var(--ink); }
  .bc-left, .bc-right { border: 0; overflow: visible; }
  .bc-right { border-top: var(--pen-2) solid var(--ink); }
  .bc-formats li { grid-template-columns: 1fr; gap: .25rem; }
  .bc-card-head { grid-template-columns: 1fr; }
}
@media (max-width: 960px) and (min-width: 600px) {
  .bc { grid-template-columns: 1fr 1fr; }
  .bc-stage { grid-column: 1 / -1; }
  .bc-right { border-top: 0; border-left: var(--pen-2) solid var(--ink); }
}

/* ---- Right panel tabs: Properties | Library ---- */
.bc-rtabs { display: flex; border-bottom: var(--pen-2) solid var(--ink); position: sticky; top: 0; z-index: 2; background: var(--sheet-2); }
.bc-rtab { flex: 1 1 0; padding: .55rem .75rem; font: inherit; font-size: var(--fs-sm); font-weight: 700; color: var(--ink-2); background: none; border: 0; border-right: var(--pen-1) solid var(--line); cursor: pointer; }
.bc-rtab:last-child { border-right: 0; }
.bc-rtab[aria-selected="true"] { color: var(--sheet); background: var(--ink); }
.bc-rtab:focus-visible { outline: var(--pen-3) solid var(--action); outline-offset: -3px; }

/* ---- Library panel ---- */
.bc-lib-srcs { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem; margin: 0 0 .75rem; }
.bc-lib-src { padding: .35rem .5rem; font: inherit; font-size: var(--fs-sm); font-weight: 600; color: var(--ink); background: var(--sheet); border: var(--pen-1) solid var(--line); border-radius: var(--radius); cursor: pointer; }
.bc-lib-src[aria-pressed="true"] { color: var(--sheet); background: var(--ink); border-color: var(--ink); }
.bc-lib-src:focus-visible, .bc-lib-card:focus-visible { outline: var(--pen-3) solid var(--action); outline-offset: 1px; }
.bc-lib-signin, .bc-lib-files p, .bc-lib-feeds p { margin: 0 0 .6rem; }
.bc-lib-filter { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .6rem; }
.bc-lib-filter .select-cc { flex: 1 1 10rem; min-width: 0; width: auto; }
.bc-lib-search { flex: 1 1 10rem; min-width: 0; padding: .35rem .55rem; font: inherit; font-size: var(--fs-sm); color: var(--ink); background: var(--sheet); border: var(--pen-1) solid var(--line); border-radius: var(--radius); }
.bc-lib-search::placeholder { color: var(--placeholder); }
.bc-lib-search:focus-visible { outline: var(--pen-2) solid var(--action); outline-offset: 1px; }
.bc-lib-feedlist { list-style: none; margin: 0 0 .6rem; padding: 0; font-size: var(--fs-sm); }
.bc-lib-feedlist li { display: flex; align-items: center; gap: .4rem; padding: .2rem 0; }
.bc-lib-feedlist .bc-linkbtn { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bc-lib-feedlist .bc-linkbtn[aria-pressed="true"] { color: var(--ink); text-decoration-thickness: var(--pen-2); }
.bc-lib-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.bc-lib-card { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: .6rem; width: 100%; padding: .4rem; font: inherit; text-align: left; color: var(--ink); background: var(--sheet); border: var(--pen-1) solid var(--line); border-radius: var(--radius); cursor: pointer; }
.bc-lib-card:hover { border-color: var(--ink); }
.bc-lib-prev { display: grid; place-items: center; width: 6rem; height: 4.5rem; background: #fff; border: var(--pen-1) solid var(--grid); }   /* 4:3, the previews' tile */
.bc-lib-prev img { max-width: 100%; max-height: 100%; object-fit: contain; }
.bc-lib-noprev { color: var(--ink-2); font-size: 1.5rem; }
.bc-lib-body { min-width: 0; display: flex; flex-direction: column; gap: .1rem; font-size: var(--fs-sm); }
.bc-lib-name { font-weight: 700; overflow-wrap: anywhere; }
.bc-lib-tags { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .15rem; }
.bc-lib-detail .bc-prop-name { margin: .5rem 0; }
.bc-lib-bigprev { background: #fff; border: var(--pen-1) solid var(--line); padding: .5rem; text-align: center; }
.bc-lib-bigprev img { max-width: 100%; max-height: 14rem; }
.bc-lib-license { margin: .75rem 0; font-size: var(--fs-sm); }
.bc-lib-license p { margin: 0 0 .3rem; overflow-wrap: anywhere; }
.bc-lib-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .75rem 0 0; }
.bc-lib-actions .btn-plot, .bc-lib-actions .btn-line { display: inline-flex; align-items: center; gap: .35rem; }
.bc-lib-notes { margin-top: .75rem; font-size: var(--fs-sm); color: var(--ink-2); }
.bc-lib-notes summary { cursor: pointer; }
.bc-lib-notes ul { margin: .3rem 0 0; padding-left: 1.1rem; overflow-wrap: anywhere; }
.bc-lib-propblock { margin: .5rem 0 .75rem; padding: .6rem .75rem; border: var(--pen-1) solid var(--line); border-left: var(--pen-3) solid var(--action); border-radius: var(--radius); background: var(--sheet); }
.bc-lib-propblock .bc-h { margin-bottom: .4rem; }
.bc-lib-propblock .bc-lib-actions { margin-top: .5rem; }

/* ---- Placing bar (over the 3D view, above the status line) ---- */
.bc-placebar { position: absolute; left: .75rem; right: .75rem; bottom: 4rem; z-index: 4; padding: .5rem .75rem; font-size: var(--fs-sm);
  background: var(--sheet-2); border: var(--pen-2) solid var(--action); border-radius: var(--radius); }
.bc-placebar-what { margin: 0 0 .35rem; font-weight: 700; }
.bc-placebar-what .bc-sub { display: inline; font-weight: 400; }
.bc-placebar-row { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; }
.bc-placebar-row label { display: inline-flex; align-items: center; gap: .35rem; }
.bc-placebar-row .select-cc { width: auto; }
.bc-placebar-row .bc-tool { border: var(--pen-1) solid var(--ink); border-radius: var(--radius); }
.bc-placebar-xy { font-variant-numeric: tabular-nums; color: var(--ink-2); }
.bc-ifc-equip { z-index: 1; }

/* ---- Dialogs (place prompt, credits, updates) ---- */
.bc-dialog { max-width: min(30rem, calc(100vw - 2rem)); padding: 1.1rem 1.25rem; color: var(--ink); background: var(--sheet); border: var(--pen-2) solid var(--ink); border-radius: var(--radius); }
.bc-dialog-wide { max-width: min(60rem, calc(100vw - 2rem)); width: 100%; }
.bc-dialog::backdrop { background: rgb(0 0 0 / .35); }
.bc-dialog form { margin: 0; }
.bc-dlg-field { display: grid; gap: .2rem; margin: 0 0 .65rem; font-size: var(--fs-sm); font-weight: 600; }
.bc-dlg-field .bc-input { width: 100%; }
.bc-dialog .bc-equip-table { margin-top: .5rem; }
.bc-placebar .bc-input { width: auto; }

/* Copy's fallback when the Clipboard API is refused: a textarea off screen, else a dialog to copy from */
.bc-offscreen { position: fixed; left: -100vw; top: 0; width: 1px; height: 1px; opacity: 0; }
.bc-copy-text { display: block; width: 100%; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: var(--fs-sm); }
@media (max-width: 600px) {
  .bc-menu .bc-menu-list, .bc-menu.is-right .bc-menu-list { position: fixed; top: auto; left: 1rem; right: 1rem; min-width: 0; }
}
/* Settings › BimCraft: the opening view has four choices */
.shell-seg.bc-set-seg4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 480px) { .shell-seg.bc-set-seg4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
