/*
============================================================
APPLICATION: Bigly Ink UI
APPLICATION ID: bigly-ui
FILE: shared/ui/bigly.css
VERSION: v1.16.0
REVISION DATE: 2026-09-22
STATUS: Internal Testing

Tokens and every component class (bi-*). Light by default; dark with
<html data-theme="dark">, or automatically when no data-theme is set and
the computer is in dark mode.
Source of truth: the Bigly Ink design system artifact. Rebuilt from it, not edited by hand.
============================================================
*/
:root, [data-theme="light"] {
  color-scheme: light;
  --paper: #f3f1ed;
  --surface: #ffffff;
  --surface-sunken: #e9e6e0;
  --surface-hover: #f1efea;
  --line: #dedad3;
  --line-strong: #86817a;
  --ink: #1a1c1e;
  --ink-muted: #5a5751;
  --ink-subtle: #6c6862;
  --accent: #0f6b84;
  --accent-strong: #0a5569;
  --on-accent: #ffffff;
  --accent-soft: #e1eff3;
  --focus: #0f6b84;
  --danger: #b3261e;
  --on-danger: #ffffff;
  --danger-soft: #fbe9e7;
  --warning: #8a5300;
  --warning-soft: #fdf0d9;
  --success: #256b35;
  --success-soft: #e3f2e5;
  --mark: #b0175f;
  --scrim: #1a1c1ecc;
  --status-draft-fg: #4f4c47;
  --status-draft-bg: #ebe8e3;
  --status-submitted-fg: #1f4f9e;
  --status-submitted-bg: #e4ecfa;
  --status-estimating-fg: #7a4a00;
  --status-estimating-bg: #fbeed3;
  --status-sent-fg: #6a3598;
  --status-sent-bg: #f1e8fa;
  --status-approved-fg: #1e6b4a;
  --status-approved-bg: #dff3ea;
  --status-production-fg: #9a3d0e;
  --status-production-bg: #fde8dc;
  --status-complete-fg: #ffffff;
  --status-complete-bg: #2d3035;
  --status-cancelled-fg: #9b2019;
  --status-cancelled-bg: #ffffff;
  --shadow-1: 0 1px 2px rgba(26,28,30,0.06);
  --shadow-2: 0 4px 12px rgba(26,28,30,0.10), 0 1px 3px rgba(26,28,30,0.08);
  --shadow-3: 0 16px 40px rgba(26,28,30,0.18);
}
[data-theme="dark"] {
  color-scheme: dark;
  --paper: #121416;
  --surface: #1b1e21;
  --surface-sunken: #0c0e10;
  --surface-hover: #24282c;
  --line: #30343a;
  --line-strong: #7c8189;
  --ink: #ebe9e5;
  --ink-muted: #a9a6a0;
  --ink-subtle: #8f8c86;
  --accent: #56b6cf;
  --accent-strong: #8fd0e0;
  --on-accent: #06232b;
  --accent-soft: #103640;
  --focus: #8fd0e0;
  --danger: #ff8a80;
  --on-danger: #2b0605;
  --danger-soft: #3a1411;
  --warning: #f2b95c;
  --warning-soft: #372606;
  --success: #7fd08f;
  --success-soft: #12301a;
  --mark: #ff7ab3;
  --scrim: #000000b3;
  --status-draft-fg: #c4c1bb;
  --status-draft-bg: #2a2d31;
  --status-submitted-fg: #9dbcf5;
  --status-submitted-bg: #17294a;
  --status-estimating-fg: #f2c078;
  --status-estimating-bg: #3a2807;
  --status-sent-fg: #d3b0f2;
  --status-sent-bg: #2f1b44;
  --status-approved-fg: #86dcb3;
  --status-approved-bg: #0f3325;
  --status-production-fg: #ffab7a;
  --status-production-bg: #3d1a08;
  --status-complete-fg: #121416;
  --status-complete-bg: #d9d6d0;
  --status-cancelled-fg: #ff9d95;
  --status-cancelled-bg: #1b1e21;
  --shadow-1: 0 1px 2px rgba(0,0,0,0.5);
  --shadow-2: 0 4px 12px rgba(0,0,0,0.55);
  --shadow-3: 0 16px 40px rgba(0,0,0,0.7);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
  color-scheme: dark;
  --paper: #121416;
  --surface: #1b1e21;
  --surface-sunken: #0c0e10;
  --surface-hover: #24282c;
  --line: #30343a;
  --line-strong: #7c8189;
  --ink: #ebe9e5;
  --ink-muted: #a9a6a0;
  --ink-subtle: #8f8c86;
  --accent: #56b6cf;
  --accent-strong: #8fd0e0;
  --on-accent: #06232b;
  --accent-soft: #103640;
  --focus: #8fd0e0;
  --danger: #ff8a80;
  --on-danger: #2b0605;
  --danger-soft: #3a1411;
  --warning: #f2b95c;
  --warning-soft: #372606;
  --success: #7fd08f;
  --success-soft: #12301a;
  --mark: #ff7ab3;
  --scrim: #000000b3;
  --status-draft-fg: #c4c1bb;
  --status-draft-bg: #2a2d31;
  --status-submitted-fg: #9dbcf5;
  --status-submitted-bg: #17294a;
  --status-estimating-fg: #f2c078;
  --status-estimating-bg: #3a2807;
  --status-sent-fg: #d3b0f2;
  --status-sent-bg: #2f1b44;
  --status-approved-fg: #86dcb3;
  --status-approved-bg: #0f3325;
  --status-production-fg: #ffab7a;
  --status-production-bg: #3d1a08;
  --status-complete-fg: #121416;
  --status-complete-bg: #d9d6d0;
  --status-cancelled-fg: #ff9d95;
  --status-cancelled-bg: #1b1e21;
  --shadow-1: 0 1px 2px rgba(0,0,0,0.5);
  --shadow-2: 0 4px 12px rgba(0,0,0,0.55);
  --shadow-3: 0 16px 40px rgba(0,0,0,0.7);
  }
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 64px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 10px;
  --radius-pill: 999px;
  --bp-phone: 0px;
  --bp-tablet: 720px;
  --bp-laptop: 1024px;
  --bp-desktop: 1360px;
  --control-sm: 28px;
  --control-md: 34px;
  --control-lg: 42px;
  --sidebar-w: 232px;
  --topbar-h: 56px;
  --content-max: 1280px;
  --z-sticky: 10;
  --z-drawer: 40;
  --z-modal: 50;
  --z-toast: 60;
  --font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, "Cascadia Mono", Consolas, monospace;
}
html, body { margin: 0; background: var(--paper); color: var(--ink); }

/* Bigly Ink UI — component stylesheet. Loads after tokens.css.
   Every class is prefixed bi-. Density: staff = compact (default), portal = comfortable (.bi-app--portal). */

/* ---------- base ---------- */
.bi-viewport, .bi-viewport *, .bi-viewport *::before, .bi-viewport *::after { box-sizing: border-box; }
.bi-viewport {
  container-type: inline-size; container-name: vp;
  font-family: var(--font-sans); font-size: 14px; line-height: 20px; color: var(--ink);
  background: var(--paper); -webkit-font-smoothing: antialiased;
  --ctl: var(--control-md); --pad-card: var(--space-4); --fs-body: 14px; --lh-body: 20px;
}
.bi-app--portal { --ctl: var(--control-lg); --pad-card: var(--space-6); --fs-body: 16px; --lh-body: 24px; font-size: 16px; line-height: 24px; }
.bi-viewport :where(h1,h2,h3,h4,p,ul,ol,dl,dd,figure) { margin: 0; }
.bi-viewport :where(a) { color: var(--accent); text-underline-offset: 2px; }
.bi-viewport :where(a:hover) { color: var(--accent-strong); }
.bi-viewport :where(button, input, select, textarea) { font: inherit; color: inherit; }
.bi-viewport :focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: var(--radius-sm); }
.bi-viewport [hidden] { display: none !important; }
.bi-rowlink { color: var(--ink); font-weight: 600; text-decoration: none; }
.bi-rowlink:hover { color: var(--accent); text-decoration: underline; }
.bi-mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 13px; }
.bi-eyebrow { font-family: var(--font-mono); font-size: 11px; line-height: 16px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); }
.bi-muted { color: var(--ink-muted); }
.bi-subtle { color: var(--ink-subtle); }
.bi-small { font-size: 13px; line-height: 18px; }
.bi-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.bi-ico { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }
.bi-ico--sm { width: 14px; height: 14px; }
.bi-ico--lg { width: 28px; height: 28px; stroke-width: 1.5; }

/* ---------- layout helpers ---------- */
.bi-stack { display: flex; flex-direction: column; gap: var(--space-4); }
.bi-stack--sm { gap: var(--space-2); }
.bi-stack--lg { gap: var(--space-8); }
.bi-row { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }
.bi-row--between { justify-content: space-between; }
.bi-row--end { justify-content: flex-end; }
.bi-grow { flex: 1 1 auto; min-width: 0; }
.bi-grid { display: grid; gap: var(--space-4); grid-template-columns: minmax(0,1fr); }
.bi-grid--4 { grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--space-3); }
.bi-split { display: grid; gap: var(--space-6); grid-template-columns: minmax(0,1fr); align-items: start; }
@container vp (min-width: 720px) {
  .bi-grid--2, .bi-grid--3, .bi-grid--4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .bi-grid--form { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@container vp (min-width: 1024px) {
  .bi-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .bi-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .bi-grid--form { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .bi-split { grid-template-columns: minmax(0,1fr) 320px; }
}
@container vp (min-width: 1360px) {
  .bi-split { grid-template-columns: minmax(0,1fr) 360px; }
}
.bi-span-2 { grid-column: span 2; }
.bi-span-all { grid-column: 1 / -1; }
@container vp (max-width: 719px) { .bi-span-2 { grid-column: auto; } }

/* ---------- buttons ---------- */
.bi-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  height: var(--ctl); padding: 0 14px; border-radius: var(--radius-md);
  border: 1px solid var(--line-strong); background: var(--surface); color: var(--ink);
  font-weight: 600; font-size: 14px; line-height: 1; white-space: nowrap; cursor: pointer; text-decoration: none;
  transition: background-color .12s, border-color .12s, color .12s;
}
.bi-app--portal .bi-btn { font-size: 15px; padding: 0 18px; }
.bi-btn:hover { background: var(--surface-hover); color: var(--ink); }
.bi-btn--primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.bi-btn--primary:hover { background: var(--accent-strong); border-color: var(--accent-strong); color: var(--on-accent); }
.bi-btn--danger { background: var(--danger); border-color: var(--danger); color: var(--on-danger); }
.bi-btn--danger:hover { background: var(--danger); color: var(--on-danger); filter: brightness(.92); }
.bi-btn--danger-quiet { color: var(--danger); border-color: var(--danger); background: var(--surface); }
.bi-btn--danger-quiet:hover { background: var(--danger-soft); color: var(--danger); }
.bi-btn--ghost { background: transparent; border-color: transparent; color: var(--ink); }
.bi-btn--ghost:hover { background: var(--surface-hover); }
.bi-btn--sm { height: var(--control-sm); padding: 0 10px; font-size: 13px; }
.bi-btn--lg { height: var(--control-lg); padding: 0 20px; font-size: 15px; }
.bi-btn--block { width: 100%; }
.bi-btn--icon { width: var(--ctl); padding: 0; }
.bi-btn--icon.bi-btn--sm { width: var(--control-sm); }
.bi-btn[disabled], .bi-btn[aria-disabled="true"] { background: var(--surface-sunken); border-color: var(--line); color: var(--ink-subtle); cursor: not-allowed; filter: none; }
.bi-btn .bi-spin { width: 14px; height: 14px; }
.bi-btngroup { display: inline-flex; gap: var(--space-2); flex-wrap: wrap; }

/* ---------- forms ---------- */
.bi-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.bi-label { font-size: 13px; line-height: 18px; font-weight: 600; color: var(--ink); }
.bi-app--portal .bi-label { font-size: 14px; }
.bi-req { color: var(--danger); margin-left: 2px; }
.bi-opt { color: var(--ink-muted); font-weight: 400; margin-left: 4px; }
.bi-hint { font-size: 13px; line-height: 18px; color: var(--ink-muted); }
.bi-err { font-size: 13px; line-height: 18px; color: var(--danger); display: flex; gap: 6px; align-items: flex-start; font-weight: 600; }
.bi-input, .bi-select, .bi-textarea {
  width: 100%; height: var(--ctl); padding: 0 var(--space-3);
  background: var(--surface); color: var(--ink); border: 1px solid var(--line-strong); border-radius: var(--radius-md);
  font-size: var(--fs-body);
}
.bi-textarea { height: auto; min-height: 88px; padding: var(--space-2) var(--space-3); line-height: var(--lh-body); resize: vertical; }
.bi-input::placeholder, .bi-textarea::placeholder { color: var(--ink-subtle); }
.bi-input:hover, .bi-select:hover, .bi-textarea:hover { border-color: var(--ink-muted); }
.bi-input:focus-visible, .bi-select:focus-visible, .bi-textarea:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; border-color: var(--focus); }
.bi-input[aria-invalid="true"], .bi-select[aria-invalid="true"], .bi-textarea[aria-invalid="true"] { border-color: var(--danger); border-width: 2px; }
.bi-input[readonly], .bi-textarea[readonly] { background: var(--surface-sunken); border-style: dashed; }
.bi-input:disabled, .bi-select:disabled, .bi-textarea:disabled { background: var(--surface-sunken); color: var(--ink-subtle); border-color: var(--line); cursor: not-allowed; }
.bi-inputwrap { position: relative; display: flex; align-items: stretch; }
.bi-inputwrap .bi-input { padding-right: 44px; }
.bi-inputwrap--num .bi-input { text-align: right; font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.bi-unit { position: absolute; right: 1px; top: 1px; bottom: 1px; display: flex; align-items: center; padding: 0 10px; font-size: 13px; color: var(--ink-muted); background: var(--surface-sunken); border-left: 1px solid var(--line); border-radius: 0 var(--radius-md) var(--radius-md) 0; pointer-events: none; }
.bi-inputwrap--lead .bi-input { padding-left: 34px; padding-right: var(--space-3); }
.bi-lead { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--ink-muted); pointer-events: none; display: flex; }
.bi-selectwrap { position: relative; }
.bi-select { appearance: none; -webkit-appearance: none; padding-right: 34px; cursor: pointer; }
.bi-selectwrap .bi-chev { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--ink-muted); }
.bi-check { display: inline-flex; gap: var(--space-2); align-items: flex-start; cursor: pointer; }
.bi-check input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--accent); flex: none; }
.bi-app--portal .bi-check input { width: 20px; height: 20px; margin-top: 2px; }
.bi-fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.bi-fieldset legend { font-size: 15px; font-weight: 650; padding: 0; margin-bottom: var(--space-2); }
.bi-formsection { display: grid; gap: var(--space-4); padding: var(--pad-card) 0; border-top: 1px solid var(--line); }
.bi-formsection:first-child { border-top: 0; padding-top: 0; }
@container vp (min-width: 1024px) { .bi-formsection { grid-template-columns: 240px minmax(0,1fr); gap: var(--space-8); } }
.bi-formsection__intro h3 { font-size: 15px; font-weight: 650; margin-bottom: 4px; }
.bi-formactions { display: flex; gap: var(--space-2); justify-content: flex-end; flex-wrap: wrap; padding-top: var(--space-4); border-top: 1px solid var(--line); }
.bi-switch { position: relative; display: inline-flex; align-items: center; gap: var(--space-3); cursor: pointer; }
.bi-switch input { appearance: none; -webkit-appearance: none; width: 36px; height: 20px; border-radius: 999px; background: var(--line-strong); position: relative; margin: 0; cursor: pointer; flex: none; transition: background .15s; }
.bi-switch input::after { content: ""; position: absolute; left: 2px; top: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--surface); transition: transform .15s; }
.bi-switch input:checked { background: var(--accent); }
.bi-switch input:checked::after { transform: translateX(16px); }
.bi-seg { display: inline-flex; border: 1px solid var(--line-strong); border-radius: var(--radius-md); overflow: hidden; background: var(--surface); }
.bi-seg button { border: 0; background: transparent; padding: 0 12px; height: calc(var(--ctl) - 2px); cursor: pointer; font-weight: 600; font-size: 13px; color: var(--ink-muted); border-left: 1px solid var(--line); }
.bi-seg button:first-child { border-left: 0; }
.bi-seg button[aria-pressed="true"] { background: var(--accent-soft); color: var(--ink); box-shadow: inset 0 -2px 0 var(--accent); }

/* drop zone */
.bi-drop { border: 2px dashed var(--line-strong); border-radius: var(--radius-lg); background: var(--surface); padding: var(--space-6); text-align: center; display: flex; flex-direction: column; align-items: center; gap: var(--space-2); cursor: pointer; }
.bi-drop:hover, .bi-drop.is-over { border-color: var(--accent); background: var(--accent-soft); }
.bi-drop__icon { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-sunken); color: var(--accent); }
.bi-drop strong { font-weight: 650; }
.bi-filelist { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.bi-fileitem { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-2) var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.bi-fileitem__meta { flex: 1; min-width: 0; }
.bi-fileitem__name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bi-progress { height: 6px; border-radius: 999px; background: var(--surface-sunken); overflow: hidden; margin-top: 4px; }
.bi-progress > span { display: block; height: 100%; background: var(--accent); }

/* ---------- cards, tiles ---------- */
.bi-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-1); min-width: 0; }
.bi-card__head { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--pad-card); border-bottom: 1px solid var(--line); min-height: 52px; }
.bi-card__title { font-size: 16px; line-height: 22px; font-weight: 650; flex: 1; min-width: 0; }
.bi-card__body { padding: var(--pad-card); }
.bi-card__body--flush { padding: 0; }
.bi-card__foot { padding: var(--space-3) var(--pad-card); border-top: 1px solid var(--line); display: flex; gap: var(--space-2); align-items: center; }
.bi-tile { display: flex; flex-direction: column; gap: 2px; padding: var(--space-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); text-decoration: none; color: var(--ink); min-width: 0; position: relative; box-shadow: var(--shadow-1); }
a.bi-tile:hover, button.bi-tile:hover { border-color: var(--accent); color: var(--ink); }
button.bi-tile { text-align: left; cursor: pointer; font: inherit; }
.bi-tile__n { font-family: var(--font-mono); font-size: 28px; line-height: 32px; font-weight: 600; font-variant-numeric: tabular-nums; }
.bi-tile__label { font-weight: 650; font-size: 14px; }
.bi-tile__sub { font-size: 13px; line-height: 18px; color: var(--ink-muted); }
.bi-tile.is-zero .bi-tile__n { color: var(--ink-subtle); }
.bi-tile.is-zero { box-shadow: none; background: transparent; }
.bi-tile.is-attn { border-color: var(--warning); }
.bi-tile.is-attn .bi-tile__flag { position: absolute; top: var(--space-3); right: var(--space-3); color: var(--warning); display: inline-flex; gap: 4px; align-items: center; font-size: 12px; font-weight: 600; }

/* ---------- badges, chips ---------- */
.bi-badge { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 8px 0 6px; border-radius: var(--radius-sm); font-size: 12px; line-height: 1; font-weight: 650; white-space: nowrap; border: 1px solid transparent; }
.bi-badge .bi-ico { width: 14px; height: 14px; stroke-width: 2; }
.bi-app--portal .bi-badge { height: 26px; font-size: 13px; padding: 0 10px 0 8px; }
.bi-badge--draft { color: var(--status-draft-fg); background: var(--status-draft-bg); }
.bi-badge--submitted { color: var(--status-submitted-fg); background: var(--status-submitted-bg); }
.bi-badge--estimating { color: var(--status-estimating-fg); background: var(--status-estimating-bg); }
.bi-badge--sent { color: var(--status-sent-fg); background: var(--status-sent-bg); }
.bi-badge--approved { color: var(--status-approved-fg); background: var(--status-approved-bg); }
.bi-badge--production { color: var(--status-production-fg); background: var(--status-production-bg); }
.bi-badge--complete { color: var(--status-complete-fg); background: var(--status-complete-bg); }
.bi-badge--cancelled { color: var(--status-cancelled-fg); background: var(--status-cancelled-bg); border-color: var(--status-cancelled-fg); }
.bi-badge--cancelled span { text-decoration: line-through; }
.bi-chip { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px; border-radius: var(--radius-pill); border: 1px solid var(--line-strong); font-size: 12px; font-weight: 600; color: var(--ink-muted); white-space: nowrap; background: var(--surface); }
.bi-chip--accent { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.bi-chip--internal { border-color: var(--warning); color: var(--warning); background: var(--warning-soft); }
.bi-chip--key { border-color: var(--line-strong); color: var(--ink); }
.bi-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: var(--radius-pill); background: var(--accent); color: var(--on-accent); font-size: 11px; font-weight: 700; font-family: var(--font-mono); }
.bi-count--quiet { background: var(--surface-sunken); color: var(--ink-muted); }
.bi-avatar { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--accent-soft); color: var(--ink); font-size: 11px; font-weight: 700; flex: none; letter-spacing: .02em; border: 1px solid var(--line); }
.bi-avatar--lg { width: 56px; height: 56px; font-size: 18px; }

/* status stepper */
.bi-steps { display: flex; list-style: none; padding: 0; margin: 0; gap: 0; overflow-x: auto; }
.bi-steps li { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 600; color: var(--ink-subtle); padding-top: 10px; border-top: 3px solid var(--line); margin-right: 4px; }
.bi-steps li.is-done { color: var(--ink-muted); border-top-color: var(--ink-muted); }
.bi-steps li.is-current { color: var(--ink); border-top-color: var(--accent); }
.bi-steps li .bi-ico { width: 16px; height: 16px; }
@container vp (max-width: 719px) { .bi-steps li > span:not(.bi-sr) { display: none; } .bi-steps li.is-current { flex: 4 1 0; } .bi-steps li.is-current > span { display: block; white-space: nowrap; } }

/* ---------- tabs, breadcrumb ---------- */
.bi-tabs { display: flex; gap: var(--space-1); border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: thin; }
.bi-tab { appearance: none; border: 0; background: transparent; padding: 10px 12px; font-weight: 600; font-size: 14px; color: var(--ink-muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; display: inline-flex; gap: 6px; align-items: center; white-space: nowrap; text-decoration: none; }
.bi-tab:hover { color: var(--ink); }
.bi-tab[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--accent); }
.bi-tabpanel { padding-top: var(--space-5); }
.bi-tabpanel[hidden] { display: none; }
.bi-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; list-style: none; padding: 0; margin: 0; font-size: 13px; color: var(--ink-muted); }
.bi-crumbs li { display: inline-flex; align-items: center; gap: 6px; }
.bi-crumbs li + li::before { content: "/"; color: var(--ink-subtle); }
.bi-crumbs a { color: var(--ink-muted); text-decoration: none; }
.bi-crumbs a:hover { color: var(--accent); text-decoration: underline; }
.bi-crumbs [aria-current="page"] { color: var(--ink); font-weight: 600; }

/* ---------- tables ---------- */
.bi-tabletools { display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap; padding: var(--space-3) var(--pad-card); border-bottom: 1px solid var(--line); }
.bi-tabletools .bi-inputwrap { flex: 1 1 220px; max-width: 360px; }
.bi-tabletools--stack { flex-direction: column; align-items: stretch; }
.bi-tabletools--stack .bi-inputwrap { flex: none; max-width: none; }
.bi-tablewrap { overflow-x: auto; }
.bi-table { width: 100%; border-collapse: collapse; font-size: var(--fs-body); }
.bi-table th { text-align: left; font-size: 12px; font-weight: 650; color: var(--ink-muted); background: var(--surface-sunken); padding: 8px 12px; white-space: nowrap; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: var(--z-sticky); }
.bi-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.bi-app--portal .bi-table td { padding: 14px 16px; }
.bi-app--portal .bi-table th { padding: 10px 16px; font-size: 13px; }
.bi-table tbody tr:hover { background: var(--surface-hover); }
.bi-table tbody tr.is-selected { background: var(--accent-soft); }
.bi-table tr:last-child td { border-bottom: 0; }
.bi-table th.num { text-align: right; font-family: inherit; font-size: 12px; }
.bi-table td.num { text-align: right; font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 13px; }
.bi-table .act { text-align: right; width: 1%; white-space: nowrap; }
.bi-table td a.bi-rowlink { color: var(--ink); font-weight: 600; text-decoration: none; }
.bi-table td a.bi-rowlink:hover { color: var(--accent); text-decoration: underline; }
.bi-sort { appearance: none; border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.bi-sort .bi-ico { width: 12px; height: 12px; opacity: .5; }
th[aria-sort="ascending"] .bi-sort, th[aria-sort="descending"] .bi-sort { color: var(--ink); }
th[aria-sort="ascending"] .bi-sort .bi-ico, th[aria-sort="descending"] .bi-sort .bi-ico { opacity: 1; }
th[aria-sort="descending"] .bi-sort .bi-ico { transform: rotate(180deg); }
.bi-pager { display: flex; align-items: center; gap: var(--space-2); justify-content: space-between; padding: var(--space-2) var(--pad-card); border-top: 1px solid var(--line); font-size: 13px; color: var(--ink-muted); flex-wrap: wrap; }
.bi-cellmain { font-weight: 600; }
.bi-cellsub { font-size: 12px; color: var(--ink-muted); }
.bi-hidden-cost { color: var(--ink-subtle); }
/* stacked table on phones */
@container vp (max-width: 719px) {
  .bi-table--stack thead { display: none; }
  .bi-table--stack, .bi-table--stack tbody, .bi-table--stack tr, .bi-table--stack td { display: block; width: 100%; }
  .bi-table--stack tr { padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--line); }
  .bi-table--stack td { border: 0; padding: 3px 0 !important; display: flex; justify-content: space-between; gap: var(--space-3); text-align: right; }
  .bi-table--stack td::before { content: attr(data-label); font-size: 12px; font-weight: 600; color: var(--ink-muted); text-align: left; }
  .bi-table--stack td.act { width: 100%; justify-content: flex-end; }
  .bi-table--stack td.act::before { content: none; }
  .bi-table--stack td.is-primary { font-size: 15px; justify-content: flex-start; text-align: left; }
  .bi-table--stack td.is-primary::before { content: none; }
}

/* description list */
.bi-dl { display: grid; grid-template-columns: minmax(96px, 40%) 1fr; gap: 8px var(--space-3); font-size: var(--fs-body); }
.bi-dl dt { color: var(--ink-muted); font-size: 13px; }
.bi-dl dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }

/* list rows */
.bi-list { list-style: none; margin: 0; padding: 0; }
.bi-list > li { display: flex; gap: var(--space-3); align-items: center; padding: var(--space-3) var(--pad-card); border-bottom: 1px solid var(--line); }
.bi-list > li:last-child { border-bottom: 0; }
.bi-list__main { flex: 1; min-width: 0; }
@container vp (max-width: 719px) { .bi-list > li { flex-wrap: wrap; } .bi-list > li > .bi-btn { margin-left: auto; } .bi-tile__n { font-size: 24px; line-height: 28px; } }
.bi-list__title { font-weight: 600; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); text-decoration: none; }
a.bi-list__title:hover { color: var(--accent); text-decoration: underline; }

/* ---------- overlays ---------- */
[data-modal][hidden], .bi-scrim[hidden], .bi-drawer-scrim[hidden] { display: none !important; }
.bi-scrim { position: fixed; inset: 0; background: var(--scrim); z-index: var(--z-modal); display: grid; place-items: center; padding: var(--space-4); }
.bi-scrim--inline { position: absolute; }
.bi-modal { background: var(--surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-3); width: min(520px, 100%); max-height: calc(100% - 32px); display: flex; flex-direction: column; border: 1px solid var(--line); }
.bi-modal--sm { width: min(420px, 100%); }
.bi-modal__head { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-5) var(--space-6) var(--space-3); }
.bi-modal__title { font-size: 18px; line-height: 24px; font-weight: 700; flex: 1; }
.bi-modal__body { padding: 0 var(--space-6) var(--space-5); overflow: auto; display: flex; flex-direction: column; gap: var(--space-4); }
.bi-modal__foot { display: flex; justify-content: flex-end; gap: var(--space-2); padding: var(--space-4) var(--space-6); border-top: 1px solid var(--line); background: var(--surface-sunken); border-radius: 0 0 var(--radius-lg) var(--radius-lg); flex-wrap: wrap; }
.bi-confirm__icon { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--danger-soft); color: var(--danger); flex: none; }
.bi-drawer-scrim { position: absolute; inset: 0; background: var(--scrim); z-index: var(--z-drawer); display: flex; justify-content: flex-end; }
.bi-drawer { background: var(--surface); width: min(440px, 100%); height: 100%; box-shadow: var(--shadow-3); display: flex; flex-direction: column; border-left: 1px solid var(--line); }
.bi-drawer__head { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--line); }
.bi-drawer__body { flex: 1; overflow: auto; padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-4); }
.bi-drawer__foot { padding: var(--space-3) var(--space-5); border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: var(--space-2); }
.bi-toasts { position: absolute; right: var(--space-4); bottom: var(--space-4); display: flex; flex-direction: column; gap: var(--space-2); z-index: var(--z-toast); width: min(380px, calc(100% - 32px)); }
.bi-toast { display: flex; gap: var(--space-3); align-items: flex-start; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--surface); border: 1px solid var(--line-strong); box-shadow: var(--shadow-2); font-size: 14px; }
.bi-toast__body { flex: 1; min-width: 0; }
.bi-toast__title { font-weight: 650; }
.bi-toast--success .bi-toast__icon { color: var(--success); }
.bi-toast--error .bi-toast__icon { color: var(--danger); }
.bi-toast--info .bi-toast__icon { color: var(--accent); }
.bi-menu { position: absolute; right: 0; top: calc(100% + 6px); min-width: 220px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-2); padding: var(--space-1); z-index: var(--z-drawer); }
.bi-menu[hidden] { display: none; }
.bi-menu__item { display: flex; width: 100%; gap: var(--space-2); align-items: center; padding: 8px 10px; border: 0; background: none; border-radius: var(--radius-sm); cursor: pointer; text-align: left; color: var(--ink); text-decoration: none; font-size: 14px; }
.bi-menu__item:hover { background: var(--surface-hover); color: var(--ink); }
.bi-menu__sep { height: 1px; background: var(--line); margin: 4px 0; }
.bi-menu__head { padding: 8px 10px; }

/* ---------- feedback states ---------- */
.bi-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--space-2); padding: var(--space-10) var(--space-6); color: var(--ink-muted); }
.bi-empty__art { width: 64px; height: 64px; display: grid; place-items: center; color: var(--ink-muted); position: relative; margin-bottom: var(--space-2); }
.bi-empty__art::before, .bi-empty__art::after { content: ""; position: absolute; background: var(--mark); }
.bi-empty__art::before { width: 1px; height: 100%; left: 50%; top: 0; opacity: .5; }
.bi-empty__art::after { height: 1px; width: 100%; top: 50%; left: 0; opacity: .5; }
.bi-empty__art .bi-ico { width: 30px; height: 30px; background: var(--surface); position: relative; z-index: 1; padding: 2px; border-radius: 50%; box-sizing: content-box; }
.bi-empty__title { color: var(--ink); font-weight: 650; font-size: 16px; }
.bi-empty p { max-width: 42ch; }
.bi-empty .bi-btngroup { margin-top: var(--space-2); }
.bi-skel { display: block; background: var(--surface-sunken); border-radius: var(--radius-sm); height: 12px; position: relative; overflow: hidden; }
.bi-skel::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, var(--surface-hover), transparent); animation: bi-shimmer 1.4s infinite; }
@keyframes bi-shimmer { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .bi-skel::after, .bi-spin { animation: none !important; } }
.bi-skel--title { height: 22px; width: 40%; }
.bi-skel--n { height: 28px; width: 48px; }
.bi-skelrow { display: flex; gap: var(--space-4); align-items: center; padding: 14px var(--pad-card); border-bottom: 1px solid var(--line); }
.bi-spin { width: 18px; height: 18px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: bi-rot .8s linear infinite; display: inline-block; flex: none; }
@keyframes bi-rot { to { transform: rotate(360deg); } }
.bi-loadingline { display: flex; align-items: center; gap: var(--space-2); color: var(--ink-muted); font-size: 13px; }
.bi-alert { display: flex; gap: var(--space-3); align-items: flex-start; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); border: 1px solid; font-size: 14px; }
.bi-alert__body { flex: 1; min-width: 0; }
.bi-alert__title { font-weight: 650; }
.bi-alert--danger { background: var(--danger-soft); border-color: var(--danger); color: var(--ink); }
.bi-alert--danger > .bi-ico { color: var(--danger); }
.bi-alert--warning { background: var(--warning-soft); border-color: var(--warning); color: var(--ink); }
.bi-alert--warning > .bi-ico { color: var(--warning); }
.bi-alert--info { background: var(--accent-soft); border-color: var(--accent); color: var(--ink); }
.bi-alert--info > .bi-ico { color: var(--accent); }
.bi-alert--success { background: var(--success-soft); border-color: var(--success); color: var(--ink); }
.bi-alert--success > .bi-ico { color: var(--success); }
.bi-errorpage { text-align: center; padding: var(--space-12) var(--space-6); display: flex; flex-direction: column; align-items: center; gap: var(--space-3); }
.bi-errorpage__code { font-family: var(--font-mono); color: var(--danger); font-size: 13px; letter-spacing: .12em; }

/* ---------- activity feed, comments ---------- */
.bi-feed { list-style: none; margin: 0; padding: 0; position: relative; }
.bi-feed li { display: grid; grid-template-columns: 28px 1fr; gap: var(--space-3); padding: 0 0 var(--space-4); position: relative; }
.bi-feed li::before { content: ""; position: absolute; left: 13px; top: 30px; bottom: 2px; width: 2px; background: var(--line); }
.bi-feed li:last-child::before { display: none; }
.bi-feed__dot { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-sunken); color: var(--ink-muted); border: 1px solid var(--line); }
.bi-feed__dot .bi-ico { width: 14px; height: 14px; }
.bi-feed__text { font-size: 14px; line-height: 20px; }
.bi-feed__when { font-size: 12px; color: var(--ink-muted); }
.bi-thread { display: flex; flex-direction: column; gap: var(--space-4); }
.bi-comment { display: grid; grid-template-columns: 28px 1fr; gap: var(--space-3); }
.bi-comment__bubble { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-3); }
.bi-comment--internal .bi-comment__bubble { background: var(--warning-soft); border-color: var(--warning); border-style: dashed; }
.bi-comment__meta { display: flex; gap: var(--space-2); align-items: center; font-size: 12px; color: var(--ink-muted); margin-bottom: 4px; flex-wrap: wrap; }
.bi-comment__meta strong { color: var(--ink); font-size: 13px; }
.bi-composer { border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--surface); }
.bi-composer .bi-textarea { border: 0; min-height: 72px; border-radius: var(--radius-md) var(--radius-md) 0 0; }
.bi-composer .bi-textarea:focus-visible { outline-offset: -2px; }
.bi-composer__bar { display: flex; gap: var(--space-2); align-items: center; padding: var(--space-2); border-top: 1px solid var(--line); flex-wrap: wrap; }

/* ---------- proof viewer ---------- */
.bi-proof { border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: var(--surface); }
.bi-proof__bar { display: flex; gap: var(--space-2); align-items: center; padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.bi-proof__stage { background: var(--surface-sunken); padding: var(--space-6); display: grid; place-items: center; min-height: 280px; position: relative;
  background-image: linear-gradient(45deg, var(--surface-hover) 25%, transparent 25%, transparent 75%, var(--surface-hover) 75%), linear-gradient(45deg, var(--surface-hover) 25%, transparent 25%, transparent 75%, var(--surface-hover) 75%);
  background-size: 16px 16px; background-position: 0 0, 8px 8px; }
.bi-proof__art { position: relative; width: min(420px, 90%); aspect-ratio: 3 / 2; background: #f6f1e7; box-shadow: var(--shadow-2); color: #1a1c1e; display: flex; flex-direction: column; justify-content: flex-end; padding: 6%; overflow: hidden; }
.bi-proof__art::before { content: ""; position: absolute; inset: 0 0 38% 0; background: linear-gradient(180deg, #c98a4b, #e7c08a 55%, #7d8f5a); }
.bi-proof__art b { position: relative; font-size: clamp(14px, 3.4cqw, 22px); font-weight: 750; letter-spacing: -.01em; }
.bi-proof__art i { position: relative; font-style: normal; font-size: 11px; opacity: .8; }
.bi-proof__pin { position: absolute; width: 26px; height: 26px; border-radius: 50% 50% 50% 0; background: var(--accent); color: var(--on-accent); display: grid; place-items: center; font-size: 12px; font-weight: 700; transform: rotate(-45deg); box-shadow: var(--shadow-2); border: 2px solid var(--surface); }
.bi-proof__pin span { transform: rotate(45deg); }
.bi-proof__crop { position: absolute; width: 14px; height: 14px; border-color: var(--mark); border-style: solid; border-width: 0; }
.bi-proof__decide { display: flex; gap: var(--space-2); flex-wrap: wrap; padding: var(--space-3); border-top: 1px solid var(--line); align-items: center; }

/* ---------- order board ---------- */
.bi-board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(240px, 1fr); gap: var(--space-3); overflow-x: auto; padding-bottom: var(--space-2); }
.bi-col { background: var(--surface-sunken); border-radius: var(--radius-lg); padding: var(--space-2); display: flex; flex-direction: column; gap: var(--space-2); min-height: 360px; border: 1px solid var(--line); }
.bi-col__head { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-1) var(--space-1) var(--space-2); }
.bi-ordercard { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--space-3); display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: var(--ink); box-shadow: var(--shadow-1); }
.bi-ordercard:hover { border-color: var(--accent); color: var(--ink); }
.bi-ordercard__title { font-weight: 650; line-height: 18px; }
.bi-col__empty { color: var(--ink-subtle); font-size: 13px; text-align: center; padding: var(--space-6) var(--space-2); border: 1px dashed var(--line-strong); border-radius: var(--radius-md); }

/* ---------- app shell ---------- */
.bi-app { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: var(--topbar-h) 1fr auto; grid-template-areas: "top" "main" "foot"; min-height: 760px; position: relative; background: var(--paper); }
.bi-side { grid-area: side; display: none; flex-direction: column; background: var(--surface-sunken); border-right: 1px solid var(--line); padding: var(--space-3); gap: var(--space-1); }
.bi-side__brand { display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 var(--space-2); margin-bottom: var(--space-3); color: var(--ink); text-decoration: none; }
.bi-wordmark { font-weight: 800; font-size: 18px; letter-spacing: -.02em; color: var(--ink); }
.bi-wordmark span { color: var(--accent); }
.bi-regmark { width: 20px; height: 20px; color: var(--ink); flex: none; }
.bi-nav { display: flex; flex-direction: column; gap: 2px; list-style: none; padding: 0; margin: 0; }
.bi-nav__label { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-muted); padding: var(--space-4) var(--space-2) var(--space-1); }
.bi-nav__item { display: flex; align-items: center; gap: 10px; height: 36px; padding: 0 var(--space-2); border-radius: var(--radius-md); color: var(--ink); text-decoration: none; font-weight: 550; font-size: 14px; position: relative; }
.bi-nav__item:hover { background: var(--surface-hover); color: var(--ink); }
.bi-nav__item[aria-current="page"] { background: var(--accent-soft); color: var(--ink); font-weight: 650; }
.bi-nav__item[aria-current="page"] .bi-ico { color: var(--accent); }
.bi-nav__item[aria-current="page"]::before { content: ""; position: absolute; left: -12px; top: 8px; bottom: 8px; width: 3px; border-radius: 0 2px 2px 0; background: var(--accent); }
.bi-nav__item .bi-count { margin-left: auto; }
.bi-side__foot { margin-top: auto; padding-top: var(--space-3); border-top: 1px solid var(--line); }
.bi-top { grid-area: top; display: flex; align-items: center; gap: var(--space-3); padding: 0 var(--space-4); background: var(--surface); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: var(--z-sticky); min-width: 0; }
.bi-top__brand { display: flex; align-items: center; gap: 8px; color: var(--ink); text-decoration: none; }
.bi-search { position: relative; flex: 1 1 auto; max-width: 520px; min-width: 0; }
.bi-search .bi-input { height: 36px; padding-left: 36px; padding-right: 44px; background: var(--paper); }
.bi-search .bi-lead { left: 11px; }
.bi-kbd { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); font-family: var(--font-mono); font-size: 11px; color: var(--ink-muted); border: 1px solid var(--line-strong); border-radius: 4px; padding: 1px 5px; background: var(--surface); }
.bi-iconbtn { position: relative; width: 36px; height: 36px; display: inline-grid; place-items: center; border-radius: var(--radius-md); border: 1px solid transparent; background: transparent; color: var(--ink); cursor: pointer; flex: none; }
.bi-iconbtn:hover { background: var(--surface-hover); }
.bi-iconbtn__dot { position: absolute; top: 2px; right: 1px; min-width: 14px; height: 14px; border-radius: 999px; background: var(--danger); color: var(--on-danger); font-size: 9px; font-weight: 700; display: grid; place-items: center; padding: 0 4px; border: 2px solid var(--surface); box-sizing: content-box; line-height: 1; }
.bi-usermenu { position: relative; }
.bi-userbtn { display: flex; align-items: center; gap: 8px; height: 40px; padding: 0 8px 0 4px; border-radius: var(--radius-pill); border: 1px solid var(--line); background: var(--surface); cursor: pointer; font-weight: 600; font-size: 14px; color: var(--ink); }
.bi-userbtn:hover { background: var(--surface-hover); }
.bi-userbtn__name { display: none; }
.bi-main { grid-area: main; min-width: 0; display: flex; flex-direction: column; }
.bi-page { width: 100%; max-width: var(--content-max); margin: 0 auto; padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-6); flex: 1; }
.bi-pagehead { display: flex; flex-direction: column; gap: var(--space-2); }
.bi-pagehead__row { display: flex; align-items: flex-end; gap: var(--space-3); flex-wrap: wrap; justify-content: space-between; }
.bi-pagehead h1 { font-size: 22px; line-height: 28px; font-weight: 700; letter-spacing: -.01em; }
.bi-pagehead__meta { display: flex; gap: var(--space-3); align-items: center; flex-wrap: wrap; color: var(--ink-muted); font-size: 13px; }
.bi-foot { grid-area: foot; display: flex; gap: var(--space-3); align-items: center; justify-content: space-between; flex-wrap: wrap; padding: var(--space-3) var(--space-4); border-top: 1px solid var(--line); font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; color: var(--ink-subtle); }
.bi-foot a { color: var(--ink-subtle); }
.bi-menubtn { display: inline-grid; }
.bi-hide-phone { display: none !important; }
.bi-show-phone { display: inline-grid; }
.bi-sheet { position: absolute; inset: var(--topbar-h) 0 0 0; background: var(--surface); z-index: var(--z-drawer); padding: var(--space-3); display: flex; flex-direction: column; gap: 2px; border-top: 1px solid var(--line); overflow: auto; }
.bi-sheet[hidden] { display: none; }
@container vp (min-width: 720px) {
  .bi-app { grid-template-columns: 64px minmax(0,1fr); grid-template-areas: "side top" "side main" "side foot"; }
  .bi-side { display: flex; padding: var(--space-3) var(--space-2); }
  .bi-side .bi-nav__text, .bi-side .bi-nav__label, .bi-side .bi-wordmark, .bi-side .bi-count, .bi-side .bi-side__client { display: none; }
  .bi-side .bi-nav__item { justify-content: center; padding: 0; }
  .bi-side .bi-side__brand { justify-content: center; padding: 0; }
  .bi-side .bi-nav__item[aria-current="page"]::before { left: -8px; }
  .bi-top .bi-top__brand, .bi-menubtn { display: none; }
  .bi-page { padding: var(--space-6); }
  .bi-hide-phone { display: revert !important; }
  .bi-show-phone { display: none !important; }
  .bi-search.bi-hide-phone { display: block !important; }
  .bi-powered.bi-hide-phone { display: inline-flex !important; }
  .bi-pagehead h1 { font-size: 26px; line-height: 32px; }
  .bi-sheet { display: none !important; }
}
@container vp (min-width: 1024px) {
  .bi-app { grid-template-columns: var(--sidebar-w) minmax(0,1fr); }
  .bi-side { padding: var(--space-3); }
  .bi-side .bi-nav__text, .bi-side .bi-nav__label, .bi-side .bi-wordmark, .bi-side .bi-side__client { display: revert; }
  .bi-side .bi-count { display: inline-grid; }
  .bi-side .bi-nav__item { justify-content: flex-start; padding: 0 var(--space-2); }
  .bi-side .bi-side__brand { justify-content: flex-start; padding: 0 var(--space-2); }
  .bi-side .bi-nav__item[aria-current="page"]::before { left: -12px; }
  .bi-userbtn__name { display: inline; }
  .bi-page { padding: var(--space-6) var(--space-8); }
}
/* portal variant: lighter nav on surface, roomier */
.bi-app--portal .bi-side { background: var(--surface); }
.bi-app--portal .bi-nav__item { height: 42px; font-size: 15px; }
.bi-app--portal .bi-page { gap: var(--space-8); }
.bi-app--portal .bi-pagehead h1 { font-size: 26px; line-height: 32px; }
.bi-clientlogo { display: inline-flex; align-items: center; gap: 10px; min-width: 0; text-decoration: none; color: var(--ink); }
.bi-clientlogo__slot { flex: none; white-space: nowrap; height: 32px; min-width: 32px; padding: 0 8px; border-radius: var(--radius-sm); background: var(--accent); color: var(--on-accent); display: grid; place-items: center; font-weight: 800; font-size: 13px; letter-spacing: .04em; }
.bi-clientlogo__name { font-weight: 700; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bi-powered { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; color: var(--ink-muted); white-space: nowrap; padding-left: var(--space-3); border-left: 1px solid var(--line); }
.bi-powered b { color: var(--ink); font-weight: 700; }
.bi-powered .bi-regmark { width: 12px; height: 12px; }

/* tool frame */
.bi-tool { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; min-height: 520px; box-shadow: var(--shadow-1); }
.bi-tool__head { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--line); flex-wrap: wrap; background: var(--surface); }
.bi-tool__id { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 200px; }
.bi-tool__name { font-size: 18px; line-height: 24px; font-weight: 700; display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap; }
.bi-ver { font-family: var(--font-mono); font-size: 11px; font-weight: 500; color: var(--ink-muted); border: 1px solid var(--line-strong); border-radius: var(--radius-sm); padding: 1px 6px; letter-spacing: .04em; }
.bi-tool__body { flex: 1; padding: var(--space-4); background: var(--paper); min-width: 0; }
.bi-tool__foot { display: flex; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; padding: var(--space-2) var(--space-4); border-top: 1px solid var(--line); font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; color: var(--ink-subtle); background: var(--surface-sunken); }
.bi-stage { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-family: var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
.bi-stage::before { content: ""; width: 8px; height: 8px; border: 1.5px solid currentColor; border-radius: 50%; }
.bi-stage--testing::before { border-style: dashed; }
.bi-stage--candidate::before { background: linear-gradient(90deg, currentColor 50%, transparent 50%); }
.bi-stage--production::before { background: currentColor; }

/* sign-in */
.bi-auth { min-height: 760px; display: grid; grid-template-columns: 1fr; background: var(--paper); }
.bi-auth__panel { display: flex; flex-direction: column; justify-content: center; padding: var(--space-8) var(--space-4); gap: var(--space-6); max-width: 440px; width: 100%; margin: 0 auto; }
.bi-auth__art { display: none; position: relative; background: var(--surface-sunken); border-left: 1px solid var(--line); overflow: hidden; padding: var(--space-12) var(--space-10); flex-direction: column; justify-content: flex-end; gap: var(--space-3);
  background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 64px 64px; }
.bi-auth__art .bi-display { font-size: 40px; line-height: 44px; font-weight: 750; letter-spacing: -.02em; max-width: 14ch; }
.bi-auth__art .bi-display em { font-style: normal; color: var(--accent); }
.bi-cross { position: absolute; width: 20px; height: 20px; }
.bi-cross::before, .bi-cross::after { content: ""; position: absolute; background: var(--mark); }
.bi-cross::before { left: 50%; top: 0; bottom: 0; width: 1px; }
.bi-cross::after { top: 50%; left: 0; right: 0; height: 1px; }
.bi-auth__card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); box-shadow: var(--shadow-1); }
.bi-auth__foot { font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; color: var(--ink-subtle); display: flex; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; }
@container vp (min-width: 1024px) { .bi-auth { grid-template-columns: minmax(420px, 1fr) 1.2fr; } .bi-auth__art { display: flex; } }

/* misc */
.bi-divider { height: 1px; background: var(--line); border: 0; margin: 0; }
.bi-swatch { width: 36px; height: 36px; border-radius: var(--radius-md); border: 1px solid var(--line-strong); flex: none; }
.bi-matrix td, .bi-matrix th { text-align: center; }
.bi-matrix td:first-child, .bi-matrix th:first-child { text-align: left; }
.bi-yes { color: var(--success); font-weight: 650; display: inline-flex; gap: 4px; align-items: center; }
.bi-no { color: var(--ink-subtle); display: inline-flex; gap: 4px; align-items: center; }
.bi-ro { color: var(--ink-muted); display: inline-flex; gap: 4px; align-items: center; }
.bi-lock { display: inline-flex; gap: 6px; align-items: center; font-size: 13px; color: var(--ink-muted); }
.bi-map { position: relative; height: 260px; border-radius: var(--radius-md); background: var(--surface-sunken); overflow: hidden; border: 1px solid var(--line);
  background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 40px 40px; }
.bi-map__pin { position: absolute; width: 14px; height: 14px; border-radius: 50%; background: var(--accent); border: 2px solid var(--surface); box-shadow: var(--shadow-2); }
.bi-map__pin.is-sel { width: 20px; height: 20px; background: var(--mark); }
.bi-map__path { position: absolute; border: 2px dashed var(--line-strong); border-radius: 48% 52% 40% 60%; }
.bi-thumb { width: 44px; height: 44px; border-radius: var(--radius-sm); background: var(--surface-sunken); display: grid; place-items: center; color: var(--ink-muted); flex: none; border: 1px solid var(--line); }
.bi-progressbar { display: flex; height: 8px; border-radius: 999px; overflow: hidden; background: var(--surface-sunken); }
.bi-progressbar span { display: block; height: 100%; }

/* ---------- preview harness (design system only, not product UI) ---------- */
.bi-harness { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; padding: 8px 12px; background: var(--surface-sunken); border-bottom: 1px solid var(--line); font-family: var(--font-sans); font-size: 12px; color: var(--ink-muted); }
.bi-harness label { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.bi-harness .bi-seg button { height: 26px; font-size: 12px; padding: 0 9px; }
.bi-harness .bi-select { height: 28px; font-size: 12px; width: auto; padding-right: 28px; }
.bi-harness__path { font-family: var(--font-mono); color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 4px; padding: 2px 8px; margin-left: auto; }
.bi-stagebox { display: flex; justify-content: center; background: var(--surface-sunken); padding: 16px; }
.bi-stagebox > .bi-viewport { box-shadow: var(--shadow-2); border: 1px solid var(--line); overflow: hidden; position: relative; transform: translateZ(0); }
.bi-demo { padding: 20px; background: var(--paper); font-family: var(--font-sans); color: var(--ink); }

/* ---------- app extras (live site only) ---------- */
.bi-auth__h { font-size: 26px; line-height: 32px; font-weight: 700; letter-spacing: -.01em; margin: 0; }
.login__message { display: block; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); border: 1px solid var(--accent); background: var(--accent-soft); color: var(--ink); font-size: 14px; }
.login__message[hidden] { display: none; }
.login__message--error { border-color: var(--danger); background: var(--danger-soft); }
.login__message--warn { border-color: var(--warning); background: var(--warning-soft); }
.login__message--ok { border-color: var(--success); background: var(--success-soft); }
.ptl-auth-fatal { position: fixed; left: 16px; right: 16px; top: 16px; z-index: 100; padding: 12px 16px; border-radius: 6px; border: 1px solid var(--danger); background: var(--danger-soft); color: var(--ink); font: 14px/20px var(--font-sans); }
.ptl-auth-fatal strong { display: block; }
#app > .bi-viewport > .bi-app { min-height: 100vh; }
.bi-modal--lg { width: min(760px, 100%); }
.bi-comment--internal .bi-comment__bubble { border-style: dashed; }
.bi-dl dd { overflow-wrap: anywhere; }
.bi-table .bi-mono, .bi-table .bi-rowlink.bi-mono { white-space: nowrap; }
/* sign survey */
.bi-svgallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.bi-svphoto { display: grid; place-items: center; aspect-ratio: 4 / 3; border-radius: var(--radius-md); overflow: hidden; background: var(--surface-sunken); border: 1px solid var(--line); color: var(--ink-subtle); }
.bi-svphoto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bi-svphoto.is-missing img { display: none; }
.bi-svthumb { display: block; width: 72px; }
.bi-svcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.bi-svcard { display: flex; flex-direction: column; gap: 0; padding: 0; text-align: left; font: inherit; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; cursor: pointer; }
.bi-svcard:hover { border-color: var(--line-strong); background: var(--surface-hover); }
.bi-svcard:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-svcard .bi-svphoto { border: 0; border-radius: 0; }
.bi-svcard__body { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px 12px; min-width: 0; }
.bi-svcard__title { font-weight: 650; overflow-wrap: anywhere; }
.bi-svphotowrap { position: relative; }
.bi-svphotox { position: absolute; top: 6px; right: 6px; width: 28px; height: 28px; border-radius: 50%; border: 0; background: rgba(0,0,0,.6); color: #fff; display: grid; place-items: center; cursor: pointer; }
.bi-svphotox:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-svprog { position: fixed; right: 16px; bottom: 16px; z-index: 300; width: min(360px, calc(100vw - 32px)); padding: 12px 14px; background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-3); font: 14px/20px var(--font-sans); }
.bi-svprog small { display: block; color: var(--ink-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 4px; }
.bi-svprog[hidden] { display: none; }
.bi-svmap { position: relative; height: min(72vh, 680px); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface-sunken); touch-action: none; cursor: grab; }
.bi-svmap:active { cursor: grabbing; }
.bi-svmap:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-svmap__sheet { position: absolute; left: 0; top: 0; transform-origin: 0 0; }
.bi-svmap__sheet > img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; user-select: none; -webkit-user-drag: none; }
.bi-svmap__sheet .tile { position: absolute; }
.bi-svmap__plot { position: absolute; inset: 0; background: #eef1ec; background-image: linear-gradient(#dee2db 1px, transparent 1px), linear-gradient(90deg, #dee2db 1px, transparent 1px); background-size: 2% 2%; }
.bi-svpin { position: absolute; width: 26px; height: 26px; margin: 0; padding: 0; border-radius: 50%; border: 2px solid #fff; background: #0f6b84; color: #fff; font: 700 11px/1 var(--font-sans); display: grid; place-items: center; transform: translate(-50%, -50%) scale(var(--pin-scale, 1)); cursor: pointer; box-shadow: 0 1px 3px rgba(0,0,0,.55); }
.bi-svpin.is-measured { background: #7a5a00; } .bi-svpin.is-verified { background: #1f6b3a; } .bi-svpin.is-adj { border-style: dashed; }
.bi-svpin:focus-visible { outline: 3px solid #ffd24a; }
.is-moving .bi-svpin { cursor: move; box-shadow: 0 0 0 3px #ffd24a; }
.bi-svgroup.is-skipped { opacity: .55; }
.bi-svgthumbs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.bi-svgthumb { flex: none; width: 150px; margin: 0; }
.bi-svgthumb img { width: 150px; height: 112px; object-fit: cover; border-radius: var(--radius-md); display: block; border: 1px solid var(--line); }
.bi-svgthumb figcaption { font-size: 11px; line-height: 14px; color: var(--ink-muted); margin: 4px 0; overflow-wrap: anywhere; }
.bi-svmeasure { width: 100%; border-collapse: collapse; font-size: 14px; }
.bi-svmeasure th { text-align: left; font-weight: 650; font-size: 12px; color: var(--ink-muted); padding: 6px; border-bottom: 1px solid var(--line); }
.bi-svmeasure td { padding: 6px; border-bottom: 1px solid var(--line); vertical-align: top; }
.bi-svmeasure .bi-input { width: 86px; min-width: 0; }
.bi-svmeasure .bi-select { min-width: 150px; }
.bi-svmeasure tr.is-conflict td { background: var(--warning-soft); }
.bi-noscript { font: 16px/24px var(--font-sans); padding: 40px; }
/* task master */
.bi-tm { display: flex; flex-direction: column; gap: var(--space-4); }
.bi-tm__bar { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.bi-tm__bar .bi-seg { flex-wrap: wrap; }
.bi-tm__search { flex: 1 1 240px; min-width: 200px; max-width: 420px; }
.bi-tm__filters { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: flex-end; }
.bi-tm__filters .bi-field { width: 170px; }
.bi-tm__filters .bi-field.is-on .bi-select { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.bi-tm__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; }
.bi-tm-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 4px 12px; border-radius: var(--radius-pill); border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: 500 13px/18px var(--font-sans); cursor: pointer; }
.bi-tm-chip:hover { background: var(--surface-hover); }
.bi-tm-chip[aria-pressed="true"] { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.bi-tm-chip:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-tm-chip .n { font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); }
.bi-tm-chip[aria-pressed="true"] .n { color: inherit; opacity: .8; }
.bi-tm-chip.is-alert .n { color: var(--danger); font-weight: 700; }
.bi-tm-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex: none; }
.bi-tm-sep { width: 1px; align-self: stretch; background: var(--line); margin: 0 4px; }
.bi-tm-save { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ink-muted); }
.bi-tm-save.is-error { color: var(--danger); font-weight: 600; }
.bi-tm-group { display: flex; flex-direction: column; gap: var(--space-2); }
.bi-tm-group__h { display: flex; align-items: center; gap: var(--space-3); margin: 0; font: 650 12px/16px var(--font-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); }
.bi-tm-group__h .rule { flex: 1; height: 1px; background: var(--line); }
.bi-tm-group__h .note { letter-spacing: 0; text-transform: none; font-weight: 500; }
.bi-tm-sheet { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
.bi-tm-row { display: flex; align-items: flex-start; gap: var(--space-3); padding: 12px 14px 12px 0; border-top: 1px solid var(--line); cursor: pointer; position: relative; }
.bi-tm-row:first-child { border-top: 0; }
.bi-tm-row:hover { background: var(--surface-hover); }
.bi-tm-row:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.bi-tm-row__sw { width: 4px; align-self: stretch; margin: -12px 0; flex: none; }
.bi-tm-row__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.bi-tm-row__title { font-weight: 650; overflow-wrap: anywhere; }
.bi-tm-row.is-done .bi-tm-row__title { text-decoration: line-through; color: var(--ink-muted); }
.bi-tm-row.is-archived { opacity: .7; }
.bi-tm-row__prev { font-size: 13px; color: var(--ink-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bi-tm-row__count { font: 12px/18px var(--font-mono); color: var(--ink-muted); flex: none; padding-top: 2px; }
.bi-tm-check { flex: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 6px; border: 1.5px solid var(--line-strong); background: var(--surface); color: transparent; display: grid; place-items: center; cursor: pointer; padding: 0; }
.bi-tm-check:hover { border-color: var(--ink); }
.bi-tm-check.is-on { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.bi-tm-check:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-tm-check svg { width: 14px; height: 14px; }
.bi-tm-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 12px; line-height: 18px; color: var(--ink-muted); }
.bi-tm-meta .client { font-weight: 650; color: var(--ink); }
.bi-tm-meta .job { font-family: var(--font-mono); }
.bi-tm-pill { display: inline-flex; align-items: center; gap: 5px; padding: 0 8px; border: 1px solid var(--line); border-radius: var(--radius-pill); white-space: nowrap; }
.bi-tm-pill.is-late, .bi-tm-pill.is-now { border-color: var(--danger); color: var(--danger); font-weight: 600; }
.bi-tm-pill.is-wait { border-color: var(--warning); color: var(--ink); background: var(--warning-soft); }
.bi-tm-pill.is-prio-urgent { border-color: var(--danger); color: var(--danger); font-weight: 700; text-transform: uppercase; }
.bi-tm-pill.is-prio-high { border-color: var(--warning); color: var(--ink); font-weight: 600; text-transform: uppercase; }
.bi-tm-pill.is-prio-low { text-transform: uppercase; }
.bi-tm-pill.is-gap { border-style: dashed; color: var(--danger); }
.bi-tm-money { font-family: var(--font-mono); color: var(--ink); }
.bi-tm-allclear { padding: var(--space-6); text-align: center; background: var(--surface); border: 1px dashed var(--line-strong); border-radius: var(--radius-lg); }
.bi-tm-allclear b { display: block; font-size: 16px; margin-bottom: 4px; }
.bi-tm-board { display: grid; grid-template-columns: repeat(4, minmax(220px, 1fr)); gap: var(--space-3); overflow-x: auto; padding-bottom: 6px; }
.bi-tm-board.is-wide { grid-template-columns: repeat(10, minmax(220px, 1fr)); }
.bi-tm-col { display: flex; flex-direction: column; gap: 8px; min-height: 120px; padding: 10px; background: var(--surface-sunken); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.bi-tm-col.is-drop { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.bi-tm-col__h { display: flex; align-items: center; gap: 8px; font-weight: 650; font-size: 13px; }
.bi-tm-col__h .n { margin-left: auto; font-family: var(--font-mono); color: var(--ink-muted); font-weight: 400; }
.bi-tm-card { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); cursor: grab; }
.bi-tm-card:hover { border-color: var(--line-strong); }
.bi-tm-card:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-tm-card.is-done .bi-tm-row__title { text-decoration: line-through; color: var(--ink-muted); }
.bi-tm-card.is-dragging { opacity: .5; }
.bi-tm-card__move { display: none; }
.bi-tm-ev { display: flex; gap: var(--space-3); align-items: flex-start; padding: 10px 14px; border-top: 1px solid var(--line); cursor: pointer; }
.bi-tm-ev:first-child { border-top: 0; }
.bi-tm-ev:hover { background: var(--surface-hover); }
.bi-tm-ev:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.bi-tm-ev__kind { width: 92px; flex: none; display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-muted); padding-top: 2px; }
.bi-tm-ev.is-late .bi-tm-ev__kind { color: var(--danger); }
.bi-tm-ev.is-done { opacity: .6; }
.bi-tm-group.is-today .bi-tm-group__h { color: var(--accent-strong); }
.bi-tm-more { font-size: 13px; color: var(--ink-muted); }
.bi-tm-calbar { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
.bi-tm-calbar h2 { margin: 0; font-size: 20px; line-height: 28px; min-width: 190px; }
.bi-tm-legend { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; color: var(--ink-muted); }
.bi-tm-legend span { display: inline-flex; align-items: center; gap: 5px; }
.bi-tm-calwrap { overflow-x: auto; }
.bi-tm-cal { display: grid; grid-template-columns: repeat(7, minmax(110px, 1fr)); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: var(--line); gap: 1px; min-width: 780px; }
.bi-tm-cal__wd { background: var(--surface-sunken); padding: 6px 8px; font-size: 12px; font-weight: 650; color: var(--ink-muted); }
.bi-tm-day { background: var(--surface); min-height: 112px; padding: 6px; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bi-tm-day.is-other { background: var(--surface-sunken); }
.bi-tm-day.is-other .bi-tm-day__date { color: var(--ink-subtle); }
.bi-tm-day__date { display: flex; justify-content: space-between; font: 600 12px/18px var(--font-mono); }
.bi-tm-day.is-today .bi-tm-day__date > span:first-child { background: var(--accent); color: var(--on-accent); border-radius: var(--radius-pill); padding: 0 7px; }
.bi-tm-day__date .n { color: var(--ink-muted); font-weight: 400; }
.bi-tm-calev { display: flex; align-items: center; gap: 5px; width: 100%; padding: 2px 4px; border: 0; background: none; border-radius: 4px; text-align: left; font: 12px/16px var(--font-sans); color: var(--ink); cursor: pointer; min-width: 0; }
.bi-tm-calev span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bi-tm-calev:hover { background: var(--surface-hover); }
.bi-tm-calev.is-done { opacity: .55; text-decoration: line-through; }
.bi-tm-calev:focus-visible { outline: 2px solid var(--focus); }
.bi-tm-calmore { border: 0; background: none; padding: 2px 4px; text-align: left; font: 600 12px/16px var(--font-sans); color: var(--accent-strong); cursor: pointer; }
.bi-tm-clients .bi-tm-row { padding-left: 14px; }
.bi-tm-cstats { display: flex; gap: var(--space-4); flex: none; }
.bi-tm-cstats div { display: flex; flex-direction: column; align-items: flex-end; font-size: 11px; color: var(--ink-muted); }
.bi-tm-cstats b { font: 600 16px/20px var(--font-mono); color: var(--ink); }
.bi-tm-cstats b.none { color: var(--ink-subtle); }
/* drawer */
.bi-drawer.bi-drawer--wide { width: min(680px, 100%); }
.bi-tm-dhead { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: var(--space-3); font-size: 13px; color: var(--ink-muted); }
.bi-tm-dtabs { display: flex; gap: 2px; border-bottom: 1px solid var(--line); margin: 0 0 var(--space-4); overflow-x: auto; }
.bi-tm-dtab { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border: 0; background: none; font: 600 14px/20px var(--font-sans); color: var(--ink-muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.bi-tm-dtab[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--accent); }
.bi-tm-dtab:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.bi-tm-dtab .n { font: 12px/16px var(--font-mono); color: var(--ink-muted); }
.bi-tm-block { display: flex; flex-direction: column; gap: var(--space-3); padding-bottom: var(--space-5); margin-bottom: var(--space-5); border-bottom: 1px solid var(--line); }
.bi-tm-block:last-child { border-bottom: 0; margin-bottom: 0; }
.bi-tm-block__h { margin: 0; font: 650 12px/16px var(--font-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); }
.bi-tm-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.bi-tm-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.bi-tm-title .bi-input { font-size: 18px; font-weight: 650; }
.bi-tm-picks { display: flex; flex-wrap: wrap; gap: 6px; }
.bi-tm-pick { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: var(--radius-md); border: 1px solid var(--line); background: var(--surface); font: 500 13px/18px var(--font-sans); color: var(--ink); cursor: pointer; }
.bi-tm-pick:hover { background: var(--surface-hover); }
.bi-tm-pick[aria-pressed="true"] { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); font-weight: 650; }
.bi-tm-pick:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-tm-inline { display: flex; gap: 8px; align-items: flex-start; }
.bi-tm-inline > .bi-grow { flex: 1; min-width: 0; }
.bi-tm-links { display: flex; flex-wrap: wrap; gap: 6px; }
.bi-tm-pf { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }
.bi-tm-pf .bi-input { font-family: var(--font-mono); max-width: 220px; }
.bi-tm-items { display: flex; flex-direction: column; gap: 2px; }
.bi-tm-item { display: flex; align-items: flex-start; gap: 6px; padding: 2px 0; border-top: 2px solid transparent; border-bottom: 2px solid transparent; }
.bi-tm-item.drop-before { border-top-color: var(--accent); }
.bi-tm-item.drop-after { border-bottom-color: var(--accent); }
.bi-tm-item.is-dragging { opacity: .4; }
.bi-tm-item textarea { flex: 1; min-width: 0; resize: none; overflow: hidden; border: 1px solid transparent; border-radius: var(--radius-sm); background: none; font: 14px/20px var(--font-sans); color: var(--ink); padding: 3px 6px; min-height: 28px; }
.bi-tm-item textarea:hover { border-color: var(--line); }
.bi-tm-item textarea:focus { outline: none; border-color: var(--focus); background: var(--surface); }
.bi-tm-item.is-done textarea { text-decoration: line-through; color: var(--ink-muted); }
.bi-tm-item.d0 textarea { font-weight: 650; }
.bi-tm-item__grip, .bi-tm-item__x, .bi-tm-item__mv { border: 0; background: none; color: var(--ink-subtle); cursor: pointer; padding: 4px 2px; font-size: 13px; line-height: 20px; }
.bi-tm-item__grip { cursor: grab; }
.bi-tm-item__grip:hover, .bi-tm-item__x:hover, .bi-tm-item__mv:hover { color: var(--ink); }
.bi-tm-item__mv:disabled { opacity: .3; cursor: default; }
.bi-tm-item__box { flex: none; width: 20px; height: 20px; margin-top: 4px; border-radius: 5px; border: 1.5px solid var(--line-strong); background: var(--surface); color: transparent; display: grid; place-items: center; cursor: pointer; padding: 0; }
.bi-tm-item__box svg { width: 12px; height: 12px; }
.bi-tm-item.is-done .bi-tm-item__box { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.bi-tm-item.d0 .bi-tm-item__box { visibility: hidden; }
.bi-tm-item.is-bullet .bi-tm-item__box { border: 0; }
.bi-tm-item.is-bullet .bi-tm-item__box::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--ink); }
.bi-tm-item__tools { display: flex; opacity: .6; }
.bi-tm-item:hover .bi-tm-item__tools, .bi-tm-item:focus-within .bi-tm-item__tools { opacity: 1; }
.bi-tm-value { font: 700 24px/30px var(--font-sans); letter-spacing: -.02em; }
.bi-tm-act { padding: 10px 0; border-top: 1px solid var(--line); }
.bi-tm-act:first-child { border-top: 0; }
.bi-tm-act__h { display: flex; gap: 8px; align-items: center; font-size: 12px; color: var(--ink-muted); }
.bi-tm-act__h .bi-btn { margin-left: auto; }
.bi-tm-act__b { white-space: pre-wrap; overflow-wrap: anywhere; margin-top: 2px; }
.bi-tm-doc { display: flex; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.bi-tm-doc__thumb { width: 64px; height: 64px; flex: none; border-radius: var(--radius-sm); background: var(--surface-sunken); display: grid; place-items: center; overflow: hidden; font: 600 11px/1 var(--font-mono); color: var(--ink-muted); text-transform: uppercase; }
.bi-tm-doc__thumb img { width: 100%; height: 100%; object-fit: cover; }
.bi-tm-doc__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.bi-tm-doc__name { font-weight: 650; overflow-wrap: anywhere; }
.bi-tm-doc__row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.bi-tm-doc__row .bi-select { min-width: 150px; }
.bi-tm-doc__row .bi-input { flex: 1; min-width: 140px; }
.bi-tm-path { font: 13px/18px var(--font-mono); padding: 8px 10px; background: var(--surface-sunken); border-radius: var(--radius-sm); overflow-wrap: anywhere; }
.bi-tm-link { display: flex; flex-direction: column; gap: 6px; padding: 10px; border: 1px solid var(--line); border-radius: var(--radius-md); }
.bi-tm-contact { padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-md); display: flex; flex-direction: column; gap: 10px; }
.bi-tm-contact.is-primary { border-color: var(--accent); }
.bi-tm-contact__h { display: flex; gap: 8px; align-items: center; font-weight: 650; }
.bi-tm-contact__h .bi-grow { min-width: 0; overflow-wrap: anywhere; }
.bi-tm-review { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
.bi-tm-review .is-full { grid-column: 1 / -1; }
.bi-tm-review .is-filled .bi-input, .bi-tm-review .is-filled .bi-textarea { border-color: var(--success); }
.bi-tm-review ul { margin: 0; padding-left: 18px; font-size: 13px; }
.bi-tm-handoff textarea { font: 13px/19px var(--font-mono); min-height: 260px; }
.bi-tm-toggles { display: flex; flex-wrap: wrap; gap: 6px 16px; }
@media (max-width: 720px) {
  .bi-tm__filters .bi-field { width: calc(50% - 6px); }
  .bi-tm-grid2, .bi-tm-grid3, .bi-tm-review { grid-template-columns: minmax(0, 1fr); }
  .bi-tm-cstats { display: none; }
  .bi-tm-ev__kind { width: 70px; }
  .bi-tm-board, .bi-tm-board.is-wide { grid-template-columns: repeat(var(--cols, 4), minmax(240px, 82vw)); }
}
.bi-tm-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-3); }
@media (max-width: 900px) { .bi-tm-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 520px) { .bi-tm-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.bi-tm-mini .bi-select { min-width: 0; width: auto; padding-right: 32px; }
.bi-tm__filters[hidden] { display: none; }
.bi-tm__filters { padding: var(--space-3); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); }
/* edition desk */
.bi-chip--success { background: var(--success-soft); color: var(--ink); border-color: var(--success); }
.bi-chip--warning { background: var(--warning-soft); color: var(--ink); border-color: var(--warning); }
.bi-chip--danger { background: var(--danger-soft); color: var(--danger); border-color: var(--danger); }
.bi-linkbtn { border: 0; background: none; padding: 0; font: inherit; font-size: 13px; color: var(--accent-strong); text-decoration: underline; cursor: pointer; }
.bi-ed-desk { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-5); align-items: start; }
.bi-ed-side { position: sticky; top: calc(var(--topbar-h, 56px) + 16px); }
@media (max-width: 1100px) { .bi-ed-desk { grid-template-columns: minmax(0, 1fr); } .bi-ed-side { position: static; } }
.bi-ed-paste { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 10px 12px; background: var(--surface-sunken); }
.bi-ed-paste summary { cursor: pointer; }
.bi-ed-paste[open] summary { margin-bottom: 10px; }
.bi-ed-paste .bi-textarea { width: 100%; }
.bi-ed-markup { max-height: 280px; overflow: auto; white-space: pre-wrap; font: 13px/20px var(--font-mono); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 10px 12px; }
.bi-ed-markup mark { border-radius: 3px; padding: 0 2px; color: var(--ink); }
.bi-ed-markup mark.f-client { background: #d9ecff; } .bi-ed-markup mark.f-address { background: #e3f3df; } .bi-ed-markup mark.f-title { background: #fde6c7; }
.bi-ed-markup mark.f-size { background: #efe0fb; } .bi-ed-markup mark.f-finish { background: #ffe0ea; } .bi-ed-markup mark.f-edition { background: #fff2a8; }
.bi-ed-markup mark.f-template, .bi-ed-markup mark.f-jobNo { background: #e0e7ff; }
.bi-ed-steps { display: flex; flex-direction: column; gap: var(--space-3); }
.bi-ed-step { display: flex; flex-direction: column; gap: 4px; }
.bi-ed-step.is-off { opacity: .5; }
.bi-ed-step__h { display: flex; align-items: center; gap: 8px; }
.bi-ed-step__h .bi-label { margin: 0; }
.bi-ed-step .bi-hint:empty { display: none; }
.bi-ed-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid var(--line-strong); flex: none; vertical-align: -1px; }
.bi-ed-dot.is-found { background: #2f8a4f; border-color: #2f8a4f; }
.bi-ed-dot.is-guess { background: #d49a1c; border-color: #d49a1c; }
.bi-ed-dot.is-missing { background: #c0392b; border-color: #c0392b; }
.bi-ed-badge { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: var(--radius-pill); font: 600 11px/18px var(--font-mono); text-transform: uppercase; letter-spacing: .06em; background: var(--success-soft); color: var(--ink); border: 1px solid var(--success); white-space: nowrap; }
.bi-ed-badge.is-over { background: var(--warning-soft); border-color: var(--warning); }
.bi-ed-pcs { border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; margin-top: var(--space-3); }
.bi-ed-pcs h4 { margin: 0; padding: 8px 12px; font: 650 11px/16px var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); background: var(--surface-sunken); border-bottom: 1px solid var(--line); }
.bi-ed-pc { display: flex; gap: 10px; align-items: center; padding: 8px 12px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.bi-ed-pc:last-of-type { border-bottom: 0; }
.bi-ed-pc .n { font: 12px/18px var(--font-mono); color: var(--accent-strong); width: 16px; text-align: right; flex: none; }
.bi-ed-pc .d { flex: 1; min-width: 160px; }
.bi-ed-pc .t { font-weight: 650; overflow-wrap: anywhere; }
.bi-ed-pc .s { font: 12px/18px var(--font-mono); color: var(--ink-muted); }
.bi-ed-pc .p { font-family: var(--font-mono); color: var(--ink-muted); white-space: nowrap; }
.bi-ed-pc.is-draft { background: var(--warning-soft); }
.bi-ed-pc .bi-select { min-width: 150px; }
.bi-ed-pcs .tot { display: flex; padding: 8px 12px; background: var(--surface-sunken); border-top: 1px solid var(--line); font: 13px/20px var(--font-mono); }
.bi-ed-pcs .tot b { margin-left: auto; }
.bi-ed-coaed { padding: 10px 12px; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; gap: 8px; }
.bi-ed-coaed:last-child { border-bottom: 0; }
.bi-ed-chit { display: flex; flex-direction: column; gap: var(--space-3); }
.bi-ed-well { position: relative; height: 180px; background: #232B3A; border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.bi-ed-well img { max-width: 100%; max-height: 100%; object-fit: contain; }
.bi-ed-well .ph { color: #8892A6; font: 12px/16px var(--font-mono); text-align: center; }
.bi-ed-well button { position: absolute; right: 8px; bottom: 8px; border: 1px solid #4a5570; background: rgba(17,21,30,.8); color: #e8ecf5; font: 600 12px/16px var(--font-sans); padding: 4px 10px; border-radius: var(--radius-pill); cursor: pointer; }
.bi-ed-well button:focus-visible { outline: 2px solid #ffd24a; }
.bi-ed-well--lg { height: 220px; }
.bi-ed-num { font: 700 40px/44px var(--font-mono); letter-spacing: -.02em; }
.bi-ed-num small { font-size: 18px; color: var(--ink-muted); font-weight: 500; }
.bi-ed-chit__title { font-size: 18px; font-weight: 650; line-height: 24px; overflow-wrap: anywhere; }
.bi-ed-chit__body { display: flex; flex-direction: column; gap: 2px; }
.bi-ed-tthumb { width: 56px; height: 42px; object-fit: cover; border-radius: 4px; background: #232B3A; display: block; }
.bi-ed-tog { width: 22px; height: 22px; margin-right: 6px; border: 1px solid var(--line-strong); background: var(--surface); border-radius: 4px; font: 600 13px/1 var(--font-mono); color: var(--ink); cursor: pointer; }
.bi-ed-crow td { background: var(--surface-sunken); }
.bi-ed-bar { height: 4px; background: var(--line); border-radius: 2px; margin-top: 5px; overflow: hidden; }
.bi-ed-bar i { display: block; height: 100%; background: var(--accent); }
.bi-ed-bar i.is-full { background: var(--danger); }
.bi-ed-raw { white-space: pre-wrap; font: 12px/18px var(--font-mono); background: var(--surface-sunken); padding: 10px 12px; border-radius: var(--radius-sm); max-height: 260px; overflow: auto; }
.bi-ed-printmodal { width: min(980px, 100%); }
.bi-ed-frame { width: 100%; height: min(70vh, 900px); border: 1px solid var(--line); border-radius: var(--radius-md); background: #F2F0EC; margin-top: var(--space-3); }
.bi-ed-orders td.act { white-space: nowrap; }
.bi-ed-orders td { vertical-align: middle; }
.bi-ed-orders .bi-menu { min-width: 200px; }
/* install guide builder */
.bi-ig-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.bi-ig-filters .bi-inputwrap { flex: 1 1 220px; }
.bi-ig-filters .bi-selectwrap { min-width: 180px; }
.bi-ig-desk { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: var(--space-5); align-items: start; }
.bi-ig-main { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.bi-ig-side { position: sticky; top: calc(var(--topbar-h, 56px) + 16px); display: flex; flex-direction: column; gap: var(--space-4); }
@media (max-width: 1180px) { .bi-ig-desk { grid-template-columns: minmax(0, 1fr); } .bi-ig-side { position: static; } }
.bi-ig-docrow { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: flex-end; }
.bi-ig-docrow .bi-grow { flex: 1 1 280px; }
.bi-ig-titlein { font-size: 18px; font-weight: 650; }
.bi-ig-phasehint { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-top: 10px; }
.bi-ig-phasehint .bi-hint { flex: 1 1 280px; }
.bi-ig-phasehint [hidden] { display: none; }
.bi-ig-lineage { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 10px; font-size: 14px; }
.bi-ig-lineage a { display: inline-flex; gap: 6px; align-items: center; color: var(--accent-strong); }
.bi-ig-save { font-size: 13px; color: var(--ink-muted); }
.bi-ig-save.is-ok::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--success); margin-right: 6px; vertical-align: 1px; }
.bi-ig-save.is-bad { color: var(--danger); font-weight: 600; }
.bi-ig-sec { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.bi-ig-sec > summary { display: flex; align-items: center; gap: 10px; padding: 12px 16px; cursor: pointer; list-style: none; border-radius: var(--radius-lg); }
.bi-ig-sec > summary::-webkit-details-marker { display: none; }
.bi-ig-sec > summary:hover { background: var(--surface-hover); }
.bi-ig-sec > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-ig-sec__title { font-weight: 650; font-size: 15px; }
.bi-ig-sec__chev { display: inline-flex; color: var(--ink-muted); transform: rotate(-90deg); transition: transform .12s; }
details[open] > summary > .bi-ig-sec__chev { transform: none; }
.bi-ig-sec__body { padding: 4px 16px 16px; display: flex; flex-direction: column; gap: 10px; }
.bi-ig-tag { margin-left: auto; font: 12px/18px var(--font-mono); color: var(--ink-muted); background: var(--surface-sunken); border: 1px solid var(--line); border-radius: var(--radius-pill); padding: 0 8px; max-width: 45%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bi-ig-tag.is-warn { color: var(--ink); background: var(--warning-soft); border-color: var(--warning); }
.bi-card__head .bi-ig-tag { margin-left: 8px; }
.bi-ig-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
.bi-ig-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 14px; }
@media (max-width: 720px) { .bi-ig-grid2, .bi-ig-grid3 { grid-template-columns: minmax(0, 1fr); } }
.bi-ig-mt { margin-top: 4px; }
.bi-ig-calc { font: 14px/36px var(--font-mono); color: var(--ink-muted); }
.bi-ig-calc.is-on { color: var(--ink); font-weight: 600; }
.bi-ig-addbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 4px; }
.bi-ig-addbar .bi-hint { flex: 1 1 240px; }
.bi-ig-preset { min-width: 220px; }
.bi-ig-emptyline { margin: 0; color: var(--ink-muted); font-size: 14px; }
.bi-ig-rows { display: flex; flex-direction: column; gap: 6px; }
.bi-ig-row { display: flex; gap: 6px; align-items: center; }
.bi-ig-row > .bi-input { flex: 1 1 auto; min-width: 0; }
.bi-ig-row--pt > .bi-input[type=number] { flex: 0 0 96px; }
.bi-ig-row--open .bi-check { flex: none; }
.bi-ig-row--pin .bi-selectwrap { flex: 0 1 240px; min-width: 150px; }
.bi-ig-pinno { flex: none; width: 24px; height: 24px; border-radius: 50%; background: #c0256b; color: #fff; font: 700 11px/24px var(--font-sans); text-align: center; }
.bi-ig-els { display: flex; flex-direction: column; gap: 8px; }
.bi-ig-el { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.bi-ig-el.is-active { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.bi-ig-el > summary { display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 12px; cursor: pointer; list-style: none; }
.bi-ig-el > summary::-webkit-details-marker { display: none; }
.bi-ig-el > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-ig-el > summary .bi-ig-tag { margin-left: auto; }
.bi-ig-eltype { flex: none; font: 600 11px/18px var(--font-mono); text-transform: uppercase; letter-spacing: .06em; color: var(--accent-strong); background: var(--accent-soft); border-radius: var(--radius-sm); padding: 1px 6px; }
.bi-ig-elname { font-weight: 650; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bi-ig-elbody { padding: 4px 14px 14px; display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--line); }
.bi-ig-sub { margin: 8px 0 0; font: 650 11px/16px var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
.bi-ig-sub span { text-transform: none; letter-spacing: 0; font-weight: 400; }
.bi-ig-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.bi-ig-chip { font: 12px/20px var(--font-mono); padding: 0 8px; border-radius: var(--radius-pill); background: var(--surface-sunken); border: 1px solid var(--line); color: var(--ink-muted); }
.bi-ig-chip b { color: var(--ink); font-weight: 600; }
.bi-ig-warns { margin: 4px 0 0; padding-left: 18px; }
.bi-ig-kv { width: 100%; border-collapse: collapse; font-size: 14px; }
.bi-ig-kv td { padding: 5px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.bi-ig-kv td:first-child { color: var(--ink-muted); width: 46%; padding-right: 12px; }
.bi-ig-kv td.num { text-align: right; }
.bi-ig-tbl th, .bi-ig-tbl td { font-size: 13px; padding: 4px 8px; }
.bi-ig-drop { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 18px; border: 1.5px dashed var(--line-strong); border-radius: var(--radius-md); background: var(--surface-sunken); text-align: center; cursor: pointer; }
.bi-ig-drop:hover, .bi-ig-drop.is-over { border-color: var(--accent); background: var(--accent-soft); }
.bi-ig-drop:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-ig-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.bi-ig-photo { margin: 0; border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; background: var(--surface); }
.bi-ig-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--surface-sunken); }
.bi-ig-photo figcaption { display: flex; flex-direction: column; gap: 6px; padding: 8px; }
.bi-ig-missing { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; aspect-ratio: 4 / 3; color: var(--ink-subtle); background: var(--surface-sunken); font-size: 12px; }
.bi-ig-maps { display: flex; flex-direction: column; gap: 14px; }
.bi-ig-map { display: flex; flex-direction: column; gap: 8px; }
.bi-ig-mapstage { position: relative; border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; cursor: crosshair; background: #fff; }
.bi-ig-mapstage img { display: block; width: 100%; height: auto; user-select: none; -webkit-user-drag: none; }
.bi-ig-pin { position: absolute; width: 24px; height: 24px; margin: 0; padding: 0; transform: translate(-50%, -50%); border-radius: 50%; border: 2px solid #fff; background: #c0256b; color: #fff; font: 700 11px/1 var(--font-sans); cursor: pointer; box-shadow: 0 1px 3px rgba(0,0,0,.5); }
.bi-ig-pin:focus-visible { outline: 3px solid #ffd24a; }
.bi-ig-hw { display: flex; flex-direction: column; gap: 8px; }
.bi-ig-hwblock { display: flex; flex-direction: column; gap: 6px; padding: 10px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-sunken); }
.bi-ig-hwhead { font-weight: 600; }
.bi-ig-dlstage { display: flex; justify-content: center; align-items: center; min-height: 180px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-md); padding: 8px; overflow: hidden; }
.bi-ig-dlstage svg { max-width: 100%; height: auto; }
.bi-ig-legend { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 8px; font-size: 12px; color: var(--ink-muted); }
.bi-ig-legend span { display: inline-flex; align-items: center; gap: 5px; }
.bi-ig-legend i { display: inline-block; width: 12px; height: 8px; border-radius: 2px; }
.bi-ig-prev { height: min(70vh, 720px); background: var(--surface-sunken); }
.bi-ig-prev iframe { width: 100%; height: 100%; border: 0; display: block; }
.bi-ig-prevempty { display: grid; place-items: center; height: 100%; padding: 20px; text-align: center; color: var(--ink-muted); font-size: 14px; }
.bi-ig-types { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.bi-ig-type { display: flex; flex-direction: column; gap: 3px; text-align: left; padding: 10px 12px; font: inherit; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); cursor: pointer; }
.bi-ig-type:hover { border-color: var(--accent); background: var(--accent-soft); }
.bi-ig-type:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-ig-type span { font-size: 13px; color: var(--ink-muted); }
/* site survey */
.bi-ss-page { max-width: 900px; }
.bi-ss-back { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--accent-strong); align-self: flex-start; }
.bi-ss-pad { margin: 0; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.bi-ss-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.bi-ss-span2 { grid-column: 1 / -1; }
@media (max-width: 600px) { .bi-ss-grid2 { grid-template-columns: minmax(0, 1fr); } }
.bi-ss-access { border: 0; margin: 0; padding: 0; min-width: 0; }
.bi-ss-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.bi-ss-chip { position: relative; }
.bi-ss-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.bi-ss-chip span { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: var(--radius-pill); background: var(--surface); font-size: 14px; cursor: pointer; }
.bi-ss-chip input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.bi-ss-chip input:focus-visible + span { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-ss-photoacts { margin-bottom: 12px; }
.bi-ss-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.bi-ss-thumb { display: flex; flex-direction: column; gap: 2px; padding-bottom: 8px; border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; background: var(--surface); color: var(--ink); text-decoration: none; }
.bi-ss-thumb:hover { border-color: var(--line-strong); background: var(--surface-hover); }
.bi-ss-thumb:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-ss-thumb img, .bi-ss-thumb .bi-ig-missing { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: flex; background: var(--surface-sunken); }
.bi-ss-tname { font-weight: 650; font-size: 14px; padding: 6px 10px 0; overflow-wrap: anywhere; }
.bi-ss-tmeta { font-size: 11.5px; color: var(--ink-muted); padding: 0 10px; }
.bi-ss-tmeta.is-need { color: var(--warning-ink, #7a5200); }
.bi-ss-manual { display: flex; flex-direction: column; }
.bi-ss-mrow { display: flex; align-items: center; gap: 6px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.bi-ss-mtext { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.bi-ss-mlabel { font-weight: 650; }
.bi-ss-madd { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr) minmax(0, 1fr) auto; gap: 8px; margin-top: 12px; }
@media (max-width: 640px) { .bi-ss-madd { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .bi-ss-madd #m-label { grid-column: 1 / -1; } }
.bi-ss-guides { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.bi-ss-guides a { display: inline-flex; gap: 6px; align-items: center; color: var(--accent-strong); font-weight: 600; }
.bi-ss-pdetails { margin: 0; font-size: 14px; }
.bi-ss-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.bi-ss-tools .bi-seg button { min-height: 40px; padding: 0 16px; }
.bi-ss-hint { margin: 0; min-height: 20px; font-size: 13px; color: var(--ink-muted); }
.bi-ss-canvaswrap { background: #1A1A1E; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
#measure-canvas { display: block; width: 100%; height: clamp(340px, 60vh, 680px); touch-action: none; }
.bi-ss-meas { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.bi-ss-meas:last-child { border-bottom: 0; }
.bi-ss-dot { width: 10px; height: 10px; border-radius: 50%; background: #B00E62; flex: none; }
.bi-ss-mlab { width: 110px; flex: none; font-weight: 600; }
.bi-ss-mval { flex: 1; min-width: 0; display: grid; gap: 1px; font-size: 14.5px; }
.bi-ss-help { margin: 0; padding-left: 20px; }
.bi-ss-help li { margin-bottom: 10px; }

/* live measure: Site Survey's own screen, styled to the workspace */
.bi-ss-legacy { max-width: 900px; }
.bi-ss-legacy .page { display: flex; flex-direction: column; gap: 14px; }
.bi-ss-legacy .backlink { display: inline-flex; gap: 6px; font-size: 14px; color: var(--accent-strong); }
.bi-ss-legacy .page-head h1 { font-size: 20px; margin: 0; }
.bi-ss-legacy .card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 16px; }
.bi-ss-legacy .card h2 { font-size: 16px; margin: 0 0 8px; }
.bi-ss-legacy .card-sub { color: var(--ink-muted); font-size: 14px; margin: 0 0 12px; }
.bi-ss-legacy .grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bi-ss-legacy .grid2 .span2 { grid-column: 1 / -1; }
@media (max-width: 560px) { .bi-ss-legacy .grid2 { grid-template-columns: 1fr; } }
.bi-ss-legacy label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--ink); }
.bi-ss-legacy input, .bi-ss-legacy select { font: 15px/20px var(--font-sans); color: var(--ink); background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--radius-md); min-height: 40px; padding: 8px 10px; }
.bi-ss-legacy input:focus-visible, .bi-ss-legacy select:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
.bi-ss-legacy .hint { font-weight: 400; font-size: 12px; color: var(--ink-muted); }
.bi-ss-legacy .field-error { color: var(--danger); font-weight: 600; font-size: 14px; }
.bi-ss-legacy .cal-status.warn { background: var(--warning-soft); border: 1px solid var(--warning); color: var(--ink); padding: 10px 12px; border-radius: var(--radius-md); font-size: 14px; }
.bi-ss-legacy .cal-actions, .bi-ss-legacy .dialog-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.bi-ss-legacy .dialog-actions { justify-content: flex-end; }
.bi-ss-legacy .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 16px; font: 600 14px var(--font-sans); border-radius: var(--radius-md); border: 1px solid var(--line-strong); background: var(--surface); color: var(--ink); cursor: pointer; }
.bi-ss-legacy .btn.primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent, #fff); }
.bi-ss-legacy .btn:focus-visible, .bi-ss-legacy .capture-btn:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.bi-ss-legacy .mono { font-family: var(--font-mono); }
.bi-ss-legacy .dim { color: var(--ink-muted); }
.bi-ss-legacy .live-stage { position: relative; background: #1A1A1E; border-radius: var(--radius-lg); overflow: hidden; height: clamp(380px, 64vh, 720px); }
.bi-ss-legacy #lv-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bi-ss-legacy .crosshair { position: absolute; left: 50%; top: 50%; width: 120px; height: 120px; transform: translate(-50%, -50%); pointer-events: none; }
.bi-ss-legacy .live-hud { position: absolute; top: 10px; left: 10px; right: 10px; display: flex; justify-content: center; pointer-events: none; }
.bi-ss-legacy .live-hud .chip { background: rgba(250,250,247,.94); color: #16161A; border-radius: var(--radius-pill); font-weight: 600; font-size: 13px; max-width: 100%; padding: 5px 13px; }
.bi-ss-legacy .live-hud .chip.chip-warn { background: #FFF7E6; color: #7A5200; }
.bi-ss-legacy .live-readout { position: absolute; left: 10px; right: 10px; bottom: 12px; text-align: center; color: #FAFAF7; font-size: 15px; text-shadow: 0 1px 3px rgba(0,0,0,.85); pointer-events: none; min-height: 20px; }
.bi-ss-legacy .live-results { position: absolute; left: 10px; right: 10px; bottom: 10px; background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 14px 16px; }
.bi-ss-legacy .live-results h2 { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--ink-muted); }
.bi-ss-legacy .lr-big { font-size: 26px; font-weight: 700; }
.bi-ss-legacy .lr-line { font-size: 14px; margin-top: 2px; }
.bi-ss-legacy .live-controls { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 4px calc(4px + env(safe-area-inset-bottom)); }
.bi-ss-legacy .capture-btn { width: 76px; height: 76px; flex: none; border-radius: 50%; border: 3px solid #B00E62; background: #fff; box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 30px #B00E62; color: #fff; font: 700 13px var(--font-sans); letter-spacing: .06em; cursor: pointer; }
.bi-ss-legacy .page-head { display: none; }
/* print crop app (scoped) */
.bi-pc{--ptl-d-bg:#16171a;
  --ptl-d-panel:#1e1f23;
  --ptl-d-panel-2:#26272c;
  --ptl-d-line:rgba(239,235,228,.13);
  --ptl-d-line-2:rgba(239,235,228,.22);
  --ptl-d-text:#efebe4;                    
  --ptl-d-text-2:rgba(239,235,228,.72);    
  --ptl-d-text-3:rgba(239,235,228,.55);    
  --ptl-d-cyan:#4cc3dd;                    
  --ptl-d-magenta:#ec7aa8;                 
  --ptl-d-yellow:#e8bb4a;                  
  --ptl-d-orange:#ef9a5c;}
.bi-pc{--bg:var(--ptl-d-bg);
  --panel:var(--ptl-d-panel);
  --panel-2:var(--ptl-d-panel-2);
  --sunk:#0e0f11;
  --line:var(--ptl-d-line);
  --line-2:var(--ptl-d-line-2);
  --ink:var(--ptl-d-text);
  --ink-2:var(--ptl-d-text-2);
  --ink-3:var(--ptl-d-text-3);
  --accent:var(--ptl-d-cyan);
  --accent-ink:var(--ptl-d-cyan);
  --accent-soft:rgba(76,195,221,.14);
  --good:var(--ptl-d-cyan);
  --ok:var(--ptl-d-yellow);
  --warn:var(--ptl-d-orange);
  --bad:var(--ptl-d-magenta);
  --mono:var(--font-mono);
  --ui:var(--font-body);}
.bi-pc, .bi-pc *{box-sizing:border-box}
.bi-pc{margin:0;background:var(--bg);color:var(--ink);
  font:13px/1.45 var(--ui);
  -webkit-font-smoothing:antialiased;overflow:hidden;}
.bi-pc button, .bi-pc input, .bi-pc select{font-family:inherit;font-size:inherit;color:inherit}
.bi-pc button{cursor:pointer}
.bi-pc ::selection{background:var(--accent-soft)}
.bi-pc #pc-app{display:grid;
  
  height:calc(100vh - 54px - 46px);min-height:520px;
  grid-template-columns:290px minmax(0,1fr) 330px;
  grid-template-rows:44px minmax(0,1fr) 26px;
  grid-template-areas:"tool tool tool" "left stage right" "foot foot foot";}
.bi-pc .toolbar{grid-area:tool;display:flex;align-items:center;gap:8px;padding:0 12px;
  background:var(--panel);border-bottom:1px solid var(--line);}
.bi-pc .brand{display:flex;align-items:center;gap:9px;margin-right:6px;padding-right:12px;border-right:1px solid var(--line)}
.bi-pc .brand svg{display:block}
.bi-pc .brand b{font-size:12.5px;letter-spacing:.02em}
.bi-pc .brand span{font-family:var(--mono);font-size:10px;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase}
.bi-pc .tbtn{background:transparent;border:1px solid var(--line-2);border-radius:0;
  padding:7px 12px;font-family:var(--font-mono);font-size:10.5px;font-weight:500;
  letter-spacing:.09em;text-transform:uppercase;color:var(--ink);white-space:nowrap;}
.bi-pc .tbtn:hover:not(:disabled){background:var(--panel-2);border-color:var(--ink-3)}
.bi-pc .tbtn:active:not(:disabled){background:var(--sunk)}
.bi-pc .tbtn:disabled{opacity:.4;cursor:not-allowed}
.bi-pc .tbtn.pri{background:var(--ink);border-color:var(--ink);color:var(--ptl-d-bg);font-weight:600}
.bi-pc .tbtn.pri:hover:not(:disabled){background:#fff;border-color:#fff}
.bi-pc .tbtn.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.bi-pc .spacer{flex:1}
.bi-pc .filechip{font-family:var(--mono);font-size:11px;color:var(--ink-2);
  max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bi-pc .filechip b{color:var(--ink);font-weight:500}
.bi-pc .panel{background:var(--panel);overflow-y:auto;overflow-x:hidden}
.bi-pc .panel::-webkit-scrollbar{width:9px}
.bi-pc .panel::-webkit-scrollbar-thumb{background:rgba(239,235,228,.22);border-radius:0;border:2px solid var(--panel)}
.bi-pc #left{grid-area:left;border-right:1px solid var(--line)}
.bi-pc #right{grid-area:right;border-left:1px solid var(--line)}
.bi-pc .sec{border-bottom:1px solid var(--line);padding:12px 13px 14px}
.bi-pc .sec h3{margin:0 0 10px;font-family:var(--mono);font-size:10px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
  display:flex;align-items:center;justify-content:space-between;gap:8px;}
.bi-pc .sec h3 .hint{font-size:9px;letter-spacing:.06em;color:var(--ink-3);text-transform:none;font-weight:400}
.bi-pc .row{display:flex;gap:7px;align-items:center}
.bi-pc .row+.row{margin-top:7px}
.bi-pc .f{flex:1;min-width:0}
.bi-pc label.lbl{display:block;font-size:10.5px;color:var(--ink-3);margin-bottom:3px;letter-spacing:.04em}
.bi-pc input[type=text], .bi-pc input[type=number], .bi-pc select{width:100%;background:var(--sunk);border:1px solid var(--line-2);border-radius:0;
  padding:7px 9px;font-family:var(--mono);font-size:12.5px;outline:none;color:var(--ink);}
.bi-pc input:focus, .bi-pc select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);box-shadow:none}
.bi-pc select{cursor:pointer;padding-right:4px}
.bi-pc input[type=number]::-webkit-outer-spin-button, .bi-pc input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.bi-pc input[type=number]{-moz-appearance:textfield}
.bi-pc input[type=range]{width:100%;accent-color:var(--accent)}
.bi-pc .seg{display:flex;background:var(--sunk);border:1px solid var(--line-2);border-radius:0;padding:2px;gap:2px}
.bi-pc .seg button{flex:1;background:none;border:none;border-radius:0;padding:5px 4px;font-size:11.5px;color:var(--ink-2)}
.bi-pc .seg button.on{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 0 0 0 1px #35606f}
.bi-pc .chips{display:flex;flex-wrap:wrap;gap:4px}
.bi-pc .chip{background:var(--sunk);border:1px solid var(--line-2);border-radius:0;
  padding:4px 7px;font-family:var(--mono);font-size:11px;color:var(--ink-2);}
.bi-pc .chip:hover{border-color:#4d555b;color:var(--ink)}
.bi-pc .chip.on{background:var(--accent-soft);border-color:#3f7f99;color:var(--accent-ink)}
.bi-pc .btnrow{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.bi-pc .btnrow.three{grid-template-columns:1fr 1fr 1fr}
.bi-pc .mini{background:var(--panel-2);border:1px solid var(--line-2);border-radius:0;
  padding:6px 4px;font-size:11.5px;color:var(--ink-2);}
.bi-pc .mini:hover{background:#2a2f33;color:var(--ink)}
.bi-pc .check{display:flex;align-items:center;gap:7px;padding:3px 0;font-size:12px;color:var(--ink-2);cursor:pointer}
.bi-pc .check input{accent-color:var(--accent);margin:0}
.bi-pc .kv{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:3px 0;font-size:12px}
.bi-pc .kv .k{color:var(--ink-3);white-space:nowrap}
.bi-pc .kv .v{font-family:var(--mono);color:var(--ink);text-align:right}
.bi-pc .kv .v.dim{color:var(--ink-2)}
.bi-pc .hero{background:var(--sunk);border:1px solid var(--line-2);border-radius:0;padding:10px 11px;margin-bottom:8px}
.bi-pc .hero .cap{font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}
.bi-pc .hero .big{font-family:var(--mono);font-size:26px;line-height:1.15;margin-top:2px;letter-spacing:-.01em}
.bi-pc .hero .sub{font-size:11px;color:var(--ink-2);margin-top:2px}
.bi-pc .qbar{height:6px;border-radius:0;background:#26292c;overflow:hidden;margin-top:9px}
.bi-pc .qbar i{display:block;height:100%;border-radius:0;transition:width .18s}
.bi-pc .qtag{display:inline-block;padding:2px 7px;border-radius:0;font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;margin-top:8px}
.bi-pc .note{font-size:11px;color:var(--ink-3);line-height:1.5;margin:8px 0 0}
.bi-pc table.grid{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11.5px}
.bi-pc table.grid th{text-align:left;font-weight:500;color:var(--ink-3);font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;padding:0 0 5px;border-bottom:1px solid var(--line);}
.bi-pc table.grid td{padding:4px 0;border-bottom:1px solid #23272a;color:var(--ink-2)}
.bi-pc table.grid td:last-child, .bi-pc table.grid th:last-child{text-align:right}
.bi-pc table.grid td.hi{color:var(--ink)}
.bi-pc table.grid tr.now td{color:var(--accent-ink)}
.bi-pc .warnbox{background:rgba(194,91,74,.1);border:1px solid rgba(194,91,74,.35);border-radius:0;
  padding:8px 10px;font-size:11.5px;color:#e7a99e;margin-top:9px;line-height:1.5;}
.bi-pc .okbox{background:rgba(76,154,99,.1);border:1px solid rgba(76,154,99,.3);color:#9fcfae}
.bi-pc #stage{grid-area:stage;position:relative;background:#0b0d0e;overflow:hidden}
.bi-pc #cv{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
.bi-pc #cv.drag{cursor:grabbing}
.bi-pc #drop{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:14px;text-align:center;padding:30px;}
.bi-pc #drop.hide{display:none}
.bi-pc #drop .dz{border:1.5px dashed var(--line-2);border-radius:0;padding:34px 46px;
  transition:border-color .15s,background .15s;}
.bi-pc #stage.over #drop .dz{border-color:var(--accent);background:var(--accent-soft)}
.bi-pc #drop h2{margin:0 0 6px;font-size:16px;font-weight:500}
.bi-pc #drop p{margin:0;color:var(--ink-3);font-size:12px}
.bi-pc #drop .fmt{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:.06em;margin-top:14px}
.bi-pc .stagehud{position:absolute;left:10px;bottom:10px;display:flex;gap:6px;align-items:center;
  background:rgba(14,16,18,.82);border:1px solid var(--line);border-radius:0;padding:5px 7px;
  backdrop-filter:blur(6px);}
.bi-pc .stagehud .zl{font-family:var(--mono);font-size:11px;color:var(--ink-2);padding:0 5px;min-width:74px;text-align:center}
.bi-pc .stagehud button{background:none;border:1px solid var(--line-2);border-radius:0;color:var(--ink-2);width:24px;height:22px;line-height:1;font-size:13px}
.bi-pc .stagehud button:hover{background:#22272a;color:var(--ink)}
.bi-pc .badge-tr{position:absolute;right:10px;top:10px;font-family:var(--mono);font-size:10.5px;
  color:var(--ink-3);background:rgba(14,16,18,.82);border:1px solid var(--line);
  border-radius:0;padding:4px 8px;backdrop-filter:blur(6px);}
.bi-pc .foot{grid-area:foot;display:flex;align-items:center;gap:12px;padding:0 12px;
  background:var(--panel);border-top:1px solid var(--line);
  font-size:10.5px;color:var(--ink-3);font-family:var(--mono);letter-spacing:.03em;}
.bi-pc .foot .warnpill{color:#d8a08f}
.bi-pc .modal{position:fixed;inset:0;background:rgba(6,8,9,.78);display:flex;align-items:center;justify-content:center;z-index:50;backdrop-filter:blur(2px)}
.bi-pc .modal.hide{display:none}
.bi-pc .sheet{background:var(--panel);border:1px solid var(--line-2);border-radius:0;box-shadow:0 24px 70px rgba(0,0,0,.6);max-width:96vw;max-height:94vh;display:flex;flex-direction:column;overflow:hidden}
.bi-pc .sheet header{display:flex;align-items:center;gap:10px;padding:10px 13px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.bi-pc .sheet header h2{margin:0;font-size:13px;font-weight:600;letter-spacing:.01em}
.bi-pc .sheet header .sub{font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
.bi-pc .sheet .body{padding:14px;overflow:auto}
.bi-pc .sheet footer{display:flex;gap:8px;align-items:center;padding:10px 13px;border-top:1px solid var(--line);background:var(--panel-2)}
.bi-pc .x{background:none;border:none;color:var(--ink-3);font-size:17px;line-height:1;padding:2px 5px;border-radius:0}
.bi-pc .x:hover{background:#2a2f33;color:var(--ink)}
.bi-pc #ppCanvasWrap{position:relative;background:#0b0d0e;border:1px solid var(--line);border-radius:0;overflow:hidden}
.bi-pc #ppCv{display:block;touch-action:none;cursor:grab}
.bi-pc #ppCv.drag{cursor:grabbing}
.bi-pc .ruler{position:absolute;left:12px;bottom:12px;background:rgba(14,16,18,.86);border:1px solid var(--line);
  border-radius:0;padding:6px 8px;font-family:var(--mono);font-size:10px;color:var(--ink-2);}
.bi-pc .ruler .bar{height:7px;border-left:2px solid var(--accent-ink);border-right:2px solid var(--accent-ink);border-bottom:2px solid var(--accent-ink);margin-bottom:4px}
.bi-pc .calbox{background:#e8eaec;height:56px;border-radius:0;margin:12px 0 8px;position:relative;box-shadow:inset 0 0 0 1px #b9bec2}
.bi-pc .calbox::after{content:"2 inches";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#4a5054;font-family:var(--mono);font-size:11px;letter-spacing:.1em}
.bi-pc .help{font-size:11.5px;color:var(--ink-2);line-height:1.55}
.bi-pc .help b{color:var(--ink);font-weight:600}
.bi-pc .thr{display:grid;grid-template-columns:1fr 88px;gap:6px;align-items:center;margin-bottom:6px}
.bi-pc .thr span{font-size:12px;color:var(--ink-2)}
.bi-pc .swatch{display:inline-block;width:9px;height:9px;border-radius:0;margin-right:7px;vertical-align:middle}
@media (max-width:1180px){.bi-pc #pc-app{grid-template-columns:250px minmax(0,1fr) 280px}
}
.bi-pc{--font-body:var(--font-sans);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line)}
.bi-pc #pc-app{height:calc(100vh - 200px);min-height:560px;grid-template-rows:44px minmax(0,1fr) auto}
.bi-pc .foot{padding-top:4px;padding-bottom:4px;height:auto;min-height:26px}
@media (max-width:980px){.bi-pc #pc-app{height:auto;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 60vh auto auto 26px;grid-template-areas:"tool" "stage" "left" "right" "foot"}.bi-pc .toolbar{flex-wrap:wrap;height:auto;padding:6px 10px}}
/* markup desk (scoped) */
.bi-md{--paper:var(--surface-sunken);--card:var(--surface);--ink-45:var(--ink-muted);--ink-25:var(--ink-subtle);--rule:var(--line);--rule-strong:var(--line-strong);
  --cyan:#0A8FA8;--cyan-text:var(--accent-strong);--magenta:#C0256B;--yellow:#D9A520;--orange:#D8641C;--key:#16171A;
  --font-display:var(--font-sans);--font-body:var(--font-sans);--focus-ring:0 0 0 2px var(--surface),0 0 0 4px var(--focus)}
.bi-md, .bi-md *, .bi-md *::before, .bi-md *::after{box-sizing:border-box}
.bi-md{-webkit-text-size-adjust:100%}
.bi-md{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.45}
.bi-md button, .bi-md input, .bi-md select, .bi-md textarea{font:inherit;color:inherit}
.bi-md :focus-visible{outline:none;box-shadow:var(--focus-ring)}
.bi-md [hidden]{display:none!important}
.bi-md .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bi-md .ptl-strip{display:flex;gap:2px;height:4px}
.bi-md .ptl-strip i{flex:1}
.bi-md .ptl-strip i:nth-child(1){background:var(--cyan)}
.bi-md .ptl-strip i:nth-child(2){background:var(--magenta)}
.bi-md .ptl-strip i:nth-child(3){background:var(--yellow)}
.bi-md .ptl-strip i:nth-child(4){background:var(--key)}
.bi-md .ptl-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45)}
.bi-md .ptl-btn{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border:1px solid var(--rule-strong);border-radius:0;background:var(--card);color:var(--ink);cursor:pointer;font-family:var(--font-display);font-weight:600;font-size:13px;line-height:1;white-space:nowrap}
.bi-md .ptl-btn:hover{border-color:var(--ink)}
.bi-md .ptl-btn:disabled{opacity:.45;cursor:not-allowed}
.bi-md .ptl-btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.bi-md .ptl-btn.primary:hover{background:#000}
.bi-md .ptl-btn.quiet{border-color:transparent;background:transparent}
.bi-md .ptl-btn.quiet:hover{border-color:var(--rule-strong)}
.bi-md .ptl-btn.danger{color:var(--magenta);border-color:var(--magenta)}
.bi-md .ptl-field{display:flex;flex-direction:column;gap:4px}
.bi-md .ptl-field>span{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45)}
.bi-md .ptl-input, .bi-md .ptl-select, .bi-md .ptl-textarea{width:100%;min-height:32px;padding:6px 8px;border:1px solid var(--rule-strong);border-radius:0;background:#fff;color:var(--ink)}
.bi-md .ptl-textarea{min-height:72px;resize:vertical}
.bi-md .ptl-input:focus, .bi-md .ptl-select:focus, .bi-md .ptl-textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 2px rgba(10,143,168,.25)}
.bi-md .ptl-dialog{border:1px solid var(--ink);border-radius:0;padding:0;max-width:min(560px,92vw);width:100%;background:var(--card);color:var(--ink)}
.bi-md .ptl-dialog::backdrop{background:rgba(22,23,26,.55)}
.bi-md .ptl-dialog header{padding:14px 18px 10px;border-bottom:1px solid var(--rule)}
.bi-md .ptl-dialog header h2{margin:0;font-family:var(--font-display);font-size:18px;letter-spacing:-.02em}
.bi-md .ptl-dialog .body{padding:14px 18px;display:grid;gap:12px;max-height:70vh;overflow:auto}
.bi-md .ptl-dialog footer{padding:12px 18px;border-top:1px solid var(--rule);display:flex;gap:8px;justify-content:flex-end}
.bi-md .ptl-toast{position:fixed;left:50%;bottom:52px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 14px;font-size:13px;z-index:60;max-width:min(520px,92vw);box-shadow:0 6px 24px rgba(0,0,0,.25);display:flex;gap:12px;align-items:center}
.bi-md .ptl-toast.warn{background:var(--orange)}
.bi-md .ptl-toast.error{background:var(--magenta)}
.bi-md .ptl-toast button{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff;padding:3px 8px;cursor:pointer;font-size:12px}
.bi-md .ptl-toast[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.bi-md, .bi-md *{transition:none!important;animation:none!important}
}
.bi-md{--rail-w:52px;
  --panel-w:272px;
  --mat:#3E7A66;          
  --mat-grid:rgba(255,255,255,.10);
  --mat-grid-major:rgba(255,255,255,.20);}
.bi-md, .bi-md{height:100%;overflow:hidden}
.bi-md{display:grid;grid-template-rows:auto auto 1fr auto;height:100vh}
.bi-md .app-header{display:flex;align-items:center;gap:14px;padding:8px 14px;background:var(--paper);border-bottom:1px solid var(--rule)}
.bi-md .brand{display:flex;align-items:baseline;gap:10px;min-width:0}
.bi-md .brand a{color:var(--ink-45);text-decoration:none;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.bi-md .brand a:hover{color:var(--ink);text-decoration:underline}
.bi-md .brand h1{margin:0;font-family:var(--font-display);font-size:20px;font-weight:800;letter-spacing:-.03em;white-space:nowrap}
.bi-md .docname{flex:1;min-width:0;font-family:var(--font-mono);font-size:12px;color:var(--ink-45);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:12px;border-left:1px solid var(--rule)}
.bi-md .docname b{color:var(--ink);font-weight:500}
.bi-md .header-actions{display:flex;gap:6px;align-items:center}
.bi-md .header-actions .menu{position:relative}
.bi-md .header-actions .menu-list{position:absolute;right:0;top:calc(100% + 4px);background:var(--card);border:1px solid var(--ink);min-width:220px;z-index:40;display:none;flex-direction:column}
.bi-md .header-actions .menu.open .menu-list{display:flex}
.bi-md .menu-list button{text-align:left;background:none;border:0;padding:9px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid var(--rule)}
.bi-md .menu-list button:last-child{border-bottom:0}
.bi-md .menu-list button:hover{background:var(--paper)}
.bi-md .menu-list button small{display:block;color:var(--ink-45);font-size:11px}
.bi-md .workspace{display:grid;grid-template-columns:var(--rail-w) 1fr var(--panel-w);min-height:0}
.bi-md .rail{display:flex;flex-direction:column;gap:2px;padding:6px 4px;border-right:1px solid var(--rule);background:var(--paper);overflow-y:auto}
.bi-md .rail .group{display:flex;flex-direction:column;gap:2px;padding-bottom:6px;margin-bottom:4px;border-bottom:1px solid var(--rule)}
.bi-md .rail .group:last-child{border-bottom:0}
.bi-md .tool{width:44px;height:40px;display:grid;place-items:center;border:1px solid transparent;background:transparent;cursor:pointer;position:relative;color:var(--ink)}
.bi-md .tool svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.bi-md .tool:hover{border-color:var(--rule-strong);background:var(--card)}
.bi-md .tool[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.bi-md .tool .key{position:absolute;right:3px;bottom:2px;font-family:var(--font-mono);font-size:8px;opacity:.55;line-height:1}
.bi-md .tool:disabled{opacity:.35;cursor:not-allowed}
.bi-md .bed{position:relative;overflow:auto;background-color:var(--mat);
  background-image:
    linear-gradient(var(--mat-grid-major) 1px,transparent 1px),
    linear-gradient(90deg,var(--mat-grid-major) 1px,transparent 1px),
    linear-gradient(var(--mat-grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--mat-grid) 1px,transparent 1px);
  background-size:120px 120px,120px 120px,24px 24px,24px 24px;
  background-position:-1px -1px}
.bi-md .bed.pan{cursor:grab}
.bi-md .bed.pan.dragging{cursor:grabbing}
.bi-md .sheet-wrap{display:inline-block;padding:40px;min-width:100%;min-height:100%}
.bi-md .sheet{position:relative;margin:0 auto;box-shadow:0 10px 30px rgba(0,0,0,.35),0 0 0 1px rgba(0,0,0,.4);background:#fff;width:0;height:0}
.bi-md .sheet canvas{position:absolute;left:0;top:0;display:block}
.bi-md #overlay{touch-action:none}
.bi-md .bed[data-tool="select"] #overlay{cursor:default}
.bi-md .bed[data-tool="pen"] #overlay, .bi-md .bed[data-tool="highlight"] #overlay, .bi-md .bed[data-tool="line"] #overlay, .bi-md .bed[data-tool="arrow"] #overlay, .bi-md .bed[data-tool="darrow"] #overlay, .bi-md .bed[data-tool="rect"] #overlay, .bi-md .bed[data-tool="ellipse"] #overlay, .bi-md .bed[data-tool="cloud"] #overlay{cursor:crosshair}
.bi-md .bed[data-tool="text"] #overlay, .bi-md .bed[data-tool="note"] #overlay, .bi-md .bed[data-tool="symbol"] #overlay{cursor:copy}
.bi-md .empty{position:absolute;inset:0;display:grid;place-items:center;padding:24px}
.bi-md .empty .card{background:var(--card);border:1px solid var(--ink);padding:26px 28px;max-width:440px;text-align:left}
.bi-md .empty h2{margin:0 0 6px;font-family:var(--font-display);font-size:22px;letter-spacing:-.03em}
.bi-md .empty p{margin:0 0 16px;color:var(--ink-45)}
.bi-md .empty .drop{border:1px dashed var(--rule-strong);padding:18px;text-align:center;color:var(--ink-45);margin-top:14px;font-size:13px}
.bi-md .bed.dragover .sheet-wrap{outline:3px dashed #fff;outline-offset:-12px}
.bi-md .text-editor{position:absolute;z-index:5;margin:0;padding:4px 6px;border:1px dashed var(--cyan);background:rgba(255,255,255,.92);color:var(--ink);font-family:var(--font-body);line-height:1.25;resize:none;overflow:hidden;outline:none;box-shadow:0 0 0 2px rgba(10,143,168,.25)}
.bi-md .panel{border-left:1px solid var(--rule);background:var(--paper);display:flex;flex-direction:column;min-height:0;overflow:hidden}
.bi-md .panel-tabs{display:flex;border-bottom:1px solid var(--rule)}
.bi-md .panel-tabs button{flex:1;background:none;border:0;border-bottom:2px solid transparent;padding:10px 4px 8px;cursor:pointer;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45)}
.bi-md .panel-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.bi-md .panel-tabs button .count{display:inline-block;min-width:16px;padding:0 4px;margin-left:4px;background:var(--rule);border-radius:0;color:var(--ink);font-size:9px}
.bi-md .panel-body{flex:1;overflow:auto;padding:12px}
.bi-md .panel-body[hidden]{display:none}
.bi-md .panel-section{padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--rule)}
.bi-md .panel-section:last-child{border-bottom:0}
.bi-md .panel-section h3{margin:0 0 8px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-45);font-weight:500}
.bi-md .hint{font-size:12px;color:var(--ink-45);margin:0}
.bi-md .swatches{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}
.bi-md .swatch{aspect-ratio:1;border:1px solid var(--rule-strong);cursor:pointer;padding:0;background:var(--sw);position:relative}
.bi-md .swatch[aria-pressed="true"]{outline:2px solid var(--ink);outline-offset:1px}
.bi-md .swatch.none{background:repeating-linear-gradient(45deg,#fff 0 4px,#ddd 4px 8px)}
.bi-md .swatch.none::after{content:"";position:absolute;inset:2px;border-top:2px solid var(--magenta);transform:rotate(-45deg);top:45%;height:0}
.bi-md .row{display:flex;gap:8px;align-items:center}
.bi-md .row>label{flex:1}
.bi-md .range{width:100%}
.bi-md .width-preview{height:24px;display:flex;align-items:center}
.bi-md .width-preview i{display:block;width:100%;background:var(--ink);border-radius:2px}
.bi-md .segmented{display:flex;border:1px solid var(--rule-strong)}
.bi-md .segmented button{flex:1;background:var(--card);border:0;border-right:1px solid var(--rule-strong);padding:6px 4px;cursor:pointer;font-size:12px;font-family:var(--font-display);font-weight:600}
.bi-md .segmented button:last-child{border-right:0}
.bi-md .segmented button[aria-pressed="true"]{background:var(--ink);color:#fff}
.bi-md .symbols{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.bi-md .symbols button{aspect-ratio:1;border:1px solid var(--rule-strong);background:var(--card);cursor:pointer;display:grid;place-items:center;padding:0}
.bi-md .symbols button svg{width:26px;height:26px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bi-md .symbols button[aria-pressed="true"]{background:var(--ink)}
.bi-md .symbols button[aria-pressed="true"] svg{stroke:#fff}
.bi-md .pages{display:grid;gap:10px}
.bi-md .page-thumb{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;border:1px solid var(--rule-strong);background:var(--card);padding:6px;cursor:pointer;text-align:left}
.bi-md .page-thumb[aria-current="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.bi-md .page-thumb canvas{display:block;width:72px;height:auto;border:1px solid var(--rule)}
.bi-md .page-thumb .meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-45)}
.bi-md .page-thumb .meta b{display:block;color:var(--ink);font-weight:500;font-size:12px}
.bi-md .notes{display:grid;gap:8px}
.bi-md .note-item{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:start;border:1px solid var(--rule-strong);background:var(--card);padding:8px}
.bi-md .note-item.active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.bi-md .note-item .num{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:var(--font-display);font-weight:800;font-size:12px;background:var(--nc,var(--magenta))}
.bi-md .note-item textarea{width:100%;min-height:52px;border:1px solid var(--rule);padding:4px 6px;resize:vertical;font-size:13px}
.bi-md .note-item .del{background:none;border:0;cursor:pointer;color:var(--ink-45);font-size:16px;line-height:1;padding:2px 4px}
.bi-md .note-item .del:hover{color:var(--magenta)}
.bi-md .sel-info{font-family:var(--font-mono);font-size:11px;color:var(--ink-45);margin:0 0 8px}
.bi-md .actions{display:flex;flex-wrap:wrap;gap:6px}
.bi-md .status{display:flex;align-items:center;gap:14px;padding:5px 14px;border-top:1px solid var(--rule);background:var(--paper);font-family:var(--font-mono);font-size:11px;color:var(--ink-45)}
.bi-md .status .grow{flex:1}
.bi-md .status button{background:none;border:1px solid transparent;color:var(--ink-45);cursor:pointer;font:inherit;padding:2px 6px}
.bi-md .status button:hover{border-color:var(--rule-strong);color:var(--ink)}
.bi-md .zoom{display:flex;align-items:center;gap:2px}
.bi-md .zoom output{min-width:44px;text-align:center;color:var(--ink)}
.bi-md .status .saved{color:var(--cyan-text)}
.bi-md .status a{color:inherit}
@media (max-width:1040px){.bi-md{--panel-w:232px}
}
@media (max-width:820px){.bi-md .workspace{grid-template-columns:var(--rail-w) 1fr}
.bi-md .panel{position:fixed;right:0;top:0;bottom:0;width:min(300px,86vw);z-index:45;transform:translateX(100%);transition:transform .18s ease;box-shadow:-8px 0 30px rgba(0,0,0,.25)}
.bi-md .panel.open{transform:none}
.bi-md .docname{display:none}
.bi-md .brand a{display:none}
.bi-md #panelToggle{display:inline-flex}
}
.bi-md #panelToggle{display:none}
@media (max-width:560px){.bi-md .app-header{gap:8px;padding:6px 8px}
.bi-md .brand h1{font-size:16px}
.bi-md .rail{padding:4px 2px}
.bi-md .tool{width:40px}
}
.bi-md{display:grid;grid-template-rows:auto 1fr auto;height:calc(100vh - 210px);min-height:560px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-sunken);font-size:14px}
.bi-md .app-header{border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.bi-md .bi-btn{min-height:32px}
.bi-md .header-actions .menu-list{border-color:var(--line-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-2);overflow:hidden}
.bi-md .ptl-toast{border-radius:var(--radius-md)}
/* panel gang planner (scoped) */
.bi-pg{--slate: #26313A;      
  --steel: #56626D;      
  --rule: #C7CED5;       
  --rule-soft: #DDE2E7;
  --bg: #EDF0F2;         
  --surface: #FFFFFF;
  --accent: #0B6BA8;     
  --accent-ink: #084F7D;
  --accent-tint: #E3F1FA;
  --cut: #C8157A;        
  --warn-bg: #FFF4DB; --warn-ink: #704A00; --warn-rule: #E5C57A;
  --err-bg: #FCEBED; --err-ink: #99172A; --err-rule: #E7A3AD;
  --ok-ink: #1D6B3A;
  --font: "Barlow", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-cond: "Barlow Condensed", "Arial Narrow", "Barlow", Arial, sans-serif;
  --r: 2px;}
.bi-pg, .bi-pg *{box-sizing: border-box;}
.bi-pg{font-size: 15px;}
.bi-pg{margin: 0; font-family: var(--font); color: var(--slate); background: var(--bg); line-height: 1.4; font-variant-numeric: tabular-nums;}
.bi-pg h1, .bi-pg h2, .bi-pg h3{margin: 0; line-height: 1.15;}
.bi-pg [hidden]{display: none !important;}
.bi-pg .sr{position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;}
.bi-pg .skip{position: absolute; left: -999px; top: 0; background: var(--surface); padding: .5rem 1rem; z-index: 50;}
.bi-pg .skip:focus{left: .5rem;}
.bi-pg :focus-visible{outline: 3px solid var(--accent); outline-offset: 2px;}
.bi-pg a{color: var(--accent);}
.bi-pg .app-header{display: flex; align-items: center; gap: 1.5rem; padding: .55rem 1.25rem; background: var(--slate); color: #fff; flex-wrap: wrap;}
.bi-pg .brand{display: flex; align-items: baseline; gap: .9rem; flex-wrap: wrap;}
.bi-pg .ptl-link{color: #BFD2E0; font-size: .85rem; text-decoration: none; border-right: 1px solid #56626D; padding-right: .9rem;}
.bi-pg .ptl-link:hover{color: #fff; text-decoration: underline;}
.bi-pg .app-name{font-family: var(--font-cond); font-weight: 600; font-size: 1.6rem; letter-spacing: .01em;}
.bi-pg .app-context{color: #BFD2E0; font-size: .9rem;}
.bi-pg .app-nav{display: flex; gap: .15rem; margin-left: auto;}
.bi-pg .nav-btn{background: none; border: 0; color: #D5DEE5; font: inherit; font-weight: 500; padding: .45rem .8rem; border-bottom: 3px solid transparent; cursor: pointer;}
.bi-pg .nav-btn:hover{color: #fff;}
.bi-pg .nav-btn[aria-current="page"]{color: #fff; border-bottom-color: #6CC4EE;}
.bi-pg .header-tools{display: flex; align-items: center; gap: .4rem;}
.bi-pg .app-header .btn-ghost{color: #E6EDF2; border-color: #56626D;}
.bi-pg .app-header .btn-ghost:hover{background: #33404B;}
.bi-pg .version-tag{font-size: .8rem; color: #9FB1BF; padding-left: .4rem;}
.bi-pg .store-pill{font-size: .8rem; background: var(--warn-bg); color: var(--warn-ink); padding: .2rem .5rem; border-radius: var(--r);}
.bi-pg .btn{display: inline-flex; align-items: center; justify-content: center; gap: .35rem; font: inherit; font-weight: 500; font-size: .93rem; color: var(--slate); background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r); padding: .45rem .85rem; cursor: pointer; white-space: nowrap; text-decoration: none;}
.bi-pg .btn:hover{border-color: var(--steel);}
.bi-pg .btn:disabled{opacity: .45; cursor: not-allowed;}
.bi-pg .btn-primary{background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 600;}
.bi-pg .btn-primary:hover{background: var(--accent-ink); border-color: var(--accent-ink);}
.bi-pg .btn-ghost{background: transparent;}
.bi-pg .btn-small{padding: .25rem .6rem; font-size: .85rem;}
.bi-pg .btn-icon{padding: .15rem .5rem; font-size: 1.05rem; line-height: 1;}
.bi-pg .btn-danger{color: var(--err-ink);}
.bi-pg .btn-danger:hover{border-color: var(--err-ink);}
.bi-pg .btn-row{display: flex; gap: .4rem; flex-wrap: wrap;}
.bi-pg .linkish{background: none; border: 0; padding: 0; font: inherit; color: var(--accent); text-decoration: underline; cursor: pointer;}
.bi-pg input[type="text"], .bi-pg select, .bi-pg textarea{font: inherit; color: var(--slate); background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r);
  padding: .4rem .5rem; width: 100%; min-width: 0;}
.bi-pg input[type="text"]{font-variant-numeric: tabular-nums;}
.bi-pg input[type="text"]:hover, .bi-pg select:hover, .bi-pg textarea:hover{border-color: var(--steel);}
.bi-pg input[type="text"]:focus, .bi-pg select:focus, .bi-pg textarea:focus{border-color: var(--accent);}
.bi-pg textarea{resize: vertical;}
.bi-pg label{font-size: .85rem; color: var(--steel); font-weight: 500;}
.bi-pg .req{font-weight: 400; color: var(--steel);}
.bi-pg .seg{display: inline-flex; border: 1px solid var(--rule); border-radius: var(--r); overflow: hidden; background: var(--surface);}
.bi-pg .seg label{margin: 0; position: relative;}
.bi-pg .seg input{position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer;}
.bi-pg .seg span{display: block; padding: .42rem .8rem; font-size: .9rem; color: var(--slate); border-left: 1px solid var(--rule); cursor: pointer;}
.bi-pg .seg label:first-child span{border-left: 0;}
.bi-pg .seg input:checked + span{background: var(--slate); color: #fff;}
.bi-pg .seg input:focus-visible + span{outline: 3px solid var(--accent); outline-offset: -3px;}
.bi-pg .seg-full{display: flex;}
.bi-pg .seg-full label{flex: 1; text-align: center;}
.bi-pg .switch{display: inline-flex; align-items: center; gap: .55rem; cursor: pointer; color: var(--slate); font-size: .93rem; font-weight: 500;}
.bi-pg .switch input{appearance: none; -webkit-appearance: none; width: 2.3rem; height: 1.3rem; border-radius: 1rem; background: #B8C1C9; position: relative; margin: 0; cursor: pointer; flex: none; transition: background .15s;}
.bi-pg .switch input::after{content: ""; position: absolute; top: .15rem; left: .15rem; width: 1rem; height: 1rem; border-radius: 50%; background: #fff; transition: left .15s;}
.bi-pg .switch input:checked{background: var(--accent);}
.bi-pg .switch input:checked::after{left: 1.15rem;}
.bi-pg .switch-small{font-size: .85rem;}
.bi-pg .quickbar{display: flex; flex-wrap: wrap; align-items: flex-end; gap: .9rem 1.1rem; padding: .85rem 1.25rem; background: var(--surface); border-bottom: 1px solid var(--rule);}
.bi-pg .qf{display: flex; flex-direction: column; gap: .2rem;}
.bi-pg .qf-label{font-size: .8rem; color: var(--steel); font-weight: 500;}
.bi-pg .qf input, .bi-pg .qf select{font-size: 1.05rem; padding: .45rem .55rem;}
.bi-pg .dim-pair{display: flex; align-items: center; gap: .35rem;}
.bi-pg .dim-pair input{width: 5.2rem;}
.bi-pg .dim-pair span{color: var(--steel);}
.bi-pg .w-qty{width: 5.5rem !important;}
.bi-pg .qf-mat select{min-width: 15rem;}
.bi-pg .qf-actions{flex-direction: row; gap: .45rem; margin-left: auto;}
.bi-pg .qf-actions .btn-primary{font-size: 1.02rem; padding: .5rem 1.4rem;}
.bi-pg .planner-grid{display: grid; grid-template-columns: minmax(290px, 350px) minmax(0, 1fr); gap: 0; align-items: start;}
.bi-pg .inputs{background: var(--surface); border-right: 1px solid var(--rule); min-height: calc(100vh - 140px); padding-bottom: 1rem;}
.bi-pg .grp{border-bottom: 1px solid var(--rule-soft); padding: .2rem 1rem .8rem;}
.bi-pg .grp > summary{list-style: none; cursor: pointer; padding: .7rem 0 .45rem; display: flex; align-items: center; justify-content: space-between;}
.bi-pg .grp > summary::-webkit-details-marker{display: none;}
.bi-pg .grp > summary::after{content: ""; width: .5rem; height: .5rem; border-right: 2px solid var(--steel); border-bottom: 2px solid var(--steel); transform: rotate(45deg); margin-right: .2rem; transition: transform .15s;}
.bi-pg .grp[open] > summary::after{transform: rotate(-135deg);}
.bi-pg .grp h2, .bi-pg section.grp > h2{font-size: 1rem; font-weight: 600;}
.bi-pg section.grp > h2{padding: .7rem 0 .45rem;}
.bi-pg .row{margin-top: .5rem;}
.bi-pg .row.two{display: grid; grid-template-columns: 1fr 1fr; gap: .5rem;}
.bi-pg .row.three{display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem;}
.bi-pg .row.four{display: grid; grid-template-columns: repeat(4, 1fr); gap: .45rem;}
.bi-pg .field{display: flex; flex-direction: column; gap: .2rem;}
.bi-pg .inline{display: flex; gap: .3rem;}
.bi-pg .inline select{width: auto;}
.bi-pg .hint{font-size: .83rem; color: var(--steel); margin: .45rem 0 0;}
.bi-pg .items-table{width: 100%; border-collapse: collapse; margin: .3rem 0 .5rem;}
.bi-pg .items-table th{font-size: .78rem; color: var(--steel); font-weight: 500; text-align: left; padding: 0 .2rem .2rem;}
.bi-pg .items-table td{padding: .15rem .12rem;}
.bi-pg .items-table td:first-child{width: 1rem;}
.bi-pg .items-table input{padding: .3rem .35rem;}
.bi-pg .items-table td:nth-child(3), .bi-pg .items-table td:nth-child(4){width: 3.8rem;}
.bi-pg .items-table td:nth-child(5){width: 3.4rem;}
.bi-pg .sw{display: inline-block; width: .85rem; height: .85rem; border: 1px solid rgba(38,49,58,.35); vertical-align: -1px; margin-right: .35rem;}
.bi-pg .results{padding: 1rem 1.25rem 2rem; min-width: 0;}
.bi-pg .empty{border: 1px dashed var(--rule); background: var(--surface); padding: 2.2rem 1.6rem; max-width: 42rem;}
.bi-pg .empty h2{font-family: var(--font-cond); font-weight: 600; font-size: 1.5rem; margin-bottom: .4rem;}
.bi-pg .empty p{color: var(--steel); margin: 0; max-width: 60ch;}
.bi-pg .msg{border: 1px solid; border-left-width: 5px; padding: .6rem .9rem; margin-bottom: .8rem;}
.bi-pg .msg ul{margin: .25rem 0 0; padding-left: 1.1rem;}
.bi-pg .msg-title{font-weight: 600; margin: 0;}
.bi-pg .msg-err{background: var(--err-bg); color: var(--err-ink); border-color: var(--err-rule); border-left-color: var(--err-ink);}
.bi-pg .msg-warn{background: var(--warn-bg); color: var(--warn-ink); border-color: var(--warn-rule); border-left-color: var(--warn-ink);}
.bi-pg .res-bar{display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: .7rem;}
.bi-pg .res-title{font-size: 1.05rem; font-weight: 600; margin-right: auto;}
.bi-pg .kpis{display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; background: var(--rule-soft); border: 1px solid var(--rule); border-top: 4px solid var(--slate);}
.bi-pg .kpis-7{grid-template-columns: repeat(7, minmax(0, 1fr));}
.bi-pg .kpi{display: flex; flex-direction: column; padding: .6rem .85rem .7rem; background: var(--surface); min-width: 0;}
.bi-pg .kpi-size{background: var(--accent-tint);}
.bi-pg .kpi-size .kpi-value{color: var(--accent-ink);}
.bi-pg .kpi-label{font-size: .82rem; color: var(--steel); font-weight: 500;}
.bi-pg .kpi-value{font-family: var(--font-cond); font-weight: 600; font-size: 2rem; line-height: 1.05; margin-top: .15rem; overflow-wrap: anywhere;}
.bi-pg .kpi-lead .kpi-value{font-size: 2.9rem; color: var(--accent-ink);}
.bi-pg .kpi-sub{font-size: .8rem; color: var(--steel); margin-top: .2rem;}
.bi-pg .diagrams{display: grid; gap: 1rem; margin: 1rem 0;}
.bi-pg .diagram{margin: 0; background: var(--surface); border: 1px solid var(--rule); padding: .7rem .9rem .8rem;}
.bi-pg .diagram figcaption{display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .8rem; margin-bottom: .5rem;}
.bi-pg .dg-title{font-weight: 600;}
.bi-pg .dg-sub{color: var(--steel); font-size: .88rem;}
.bi-pg .dg-canvas{background: #FAFBFC; border: 1px solid var(--rule-soft); padding: .5rem;}
.bi-pg .gang-svg{display: block; width: 100%; height: auto; max-height: 62vh;}
.bi-pg .gang-svg .pc{cursor: default; outline: none;}
.bi-pg .gang-svg .pc:hover .pc-print, .bi-pg .gang-svg .pc:focus .pc-print{stroke: var(--slate); stroke-width: 2; vector-effect: non-scaling-stroke;}
.bi-pg .gang-svg .pc:focus-visible .pc-print{stroke: var(--accent); stroke-width: 3;}
.bi-pg .gang-svg .pc-n{font-family: var(--font-cond); font-weight: 600; fill: var(--slate); pointer-events: none;}
.bi-pg .gang-svg .g-dim{font-family: var(--font); fill: var(--steel);}
.bi-pg .legend{display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; margin-top: .55rem; font-size: .83rem; color: var(--steel);}
.bi-pg .lg{display: inline-flex; align-items: center;}
.bi-pg .sw-bleed{background: #BFE3F5;}
.bi-pg .sw-trim{background: #fff; border: 2px solid var(--cut) !important;}
.bi-pg .sw-waste{background: repeating-linear-gradient(45deg, #E7EAED 0 3px, #B9C1C8 3px 4px);}
.bi-pg .sw-usable{background: transparent; border: 1px dashed var(--slate) !important;}
.bi-pg .sw-mark{background: var(--slate); border-radius: 50%;}
.bi-pg .block{background: var(--surface); border: 1px solid var(--rule); padding: .75rem .9rem .85rem; margin-top: 1rem;}
.bi-pg .block h3, .bi-pg .facts h3{font-size: .98rem; font-weight: 600; margin-bottom: .45rem;}
.bi-pg .block-head{display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: .45rem;}
.bi-pg .block-head h3{margin: 0;}
.bi-pg .tbl-wrap{overflow-x: auto;}
.bi-pg .grid-table{width: 100%; border-collapse: collapse; font-size: .92rem;}
.bi-pg .grid-table th{text-align: left; font-weight: 500; color: var(--steel); font-size: .82rem; border-bottom: 1px solid var(--rule); padding: .35rem .5rem; white-space: nowrap;}
.bi-pg .grid-table td{border-bottom: 1px solid var(--rule-soft); padding: .4rem .5rem; vertical-align: middle;}
.bi-pg .grid-table .n{text-align: right;}
.bi-pg .grid-table tr.chosen td{background: var(--accent-tint);}
.bi-pg .grid-table tr.chosen td:first-child{box-shadow: inset 4px 0 0 var(--accent);}
.bi-pg .grid-table tr.nofit td{color: var(--steel);}
.bi-pg .grid-table td.actions{white-space: nowrap; text-align: right;}
.bi-pg .grid-table td.actions .btn + .btn{margin-left: .3rem;}
.bi-pg .badge{display: inline-block; font-size: .75rem; font-weight: 600; padding: .05rem .4rem; border-radius: var(--r); background: var(--slate); color: #fff; margin-left: .25rem; vertical-align: 1px; white-space: nowrap;}
.bi-pg .badge-eff{background: var(--ok-ink);}
.bi-pg .badge-cost{background: var(--accent-ink);}
.bi-pg .facts-grid{display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1rem; margin-top: 1rem;}
.bi-pg .facts{background: var(--surface); border: 1px solid var(--rule); padding: .75rem .9rem .7rem;}
.bi-pg .kv{width: 100%; border-collapse: collapse; font-size: .92rem;}
.bi-pg .kv th{text-align: left; font-weight: 400; color: var(--steel); padding: .28rem .6rem .28rem 0; border-bottom: 1px solid var(--rule-soft);}
.bi-pg .kv td{text-align: right; padding: .28rem 0; border-bottom: 1px solid var(--rule-soft); font-weight: 500;}
.bi-pg .kv tr:last-child th, .bi-pg .kv tr:last-child td{border-bottom: 0;}
.bi-pg .kv tr.hl th{color: var(--slate); font-weight: 600;}
.bi-pg .kv tr.hl td{color: var(--accent-ink); font-weight: 600;}
.bi-pg .kv-multi thead th{font-size: .8rem; font-weight: 500;}
.bi-pg .kv-multi td{text-align: left;}
.bi-pg .kv-multi td.n{text-align: right;}
.bi-pg .view-head{padding: 1rem 1.25rem .3rem;}
.bi-pg .view-head h2{font-family: var(--font-cond); font-weight: 600; font-size: 1.6rem;}
.bi-pg .view-head .btn-row{margin-top: .7rem;}
.bi-pg #history-body, .bi-pg #presets-body{padding: 0 1.25rem 2rem;}
.bi-pg #history-body .empty{margin-top: 1rem;}
.bi-pg .app-footer{display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; padding: .7rem 1.25rem; border-top: 1px solid var(--rule); background: var(--surface); font-size: .85rem; color: var(--steel);}
.bi-pg .app-footer a{color: var(--steel);}
.bi-pg .dlg{border: 1px solid var(--rule); border-top: 4px solid var(--slate); padding: 0; width: min(640px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); color: var(--slate); border-radius: var(--r);}
.bi-pg .dlg-wide{width: min(760px, calc(100vw - 2rem));}
.bi-pg .dlg::backdrop{background: rgba(38, 49, 58, .45);}
.bi-pg .dlg-head{display: flex; align-items: center; justify-content: space-between; padding: .8rem 1rem; border-bottom: 1px solid var(--rule-soft); position: sticky; top: 0; background: var(--surface);}
.bi-pg .dlg-head h2{font-family: var(--font-cond); font-weight: 600; font-size: 1.4rem;}
.bi-pg .dlg-body{padding: .6rem 1rem 1rem; display: grid; gap: .65rem;}
.bi-pg .dlg-foot{display: flex; align-items: center; justify-content: flex-end; gap: .5rem; padding: .7rem 1rem; border-top: 1px solid var(--rule-soft); flex-wrap: wrap; position: sticky; bottom: 0; background: var(--surface);}
.bi-pg .dlg-foot .form-err{margin-right: auto;}
.bi-pg .fb-meta{margin: 0; font-size: .88rem; color: var(--steel); background: var(--bg); padding: .4rem .6rem;}
.bi-pg .form-err{color: var(--err-ink); font-weight: 500; margin: 0;}
.bi-pg .prose h3{font-size: 1rem; margin-top: .4rem;}
.bi-pg .prose p{margin: 0; max-width: 72ch;}
.bi-pg .tip{position: fixed; z-index: 40; background: var(--slate); color: #fff; padding: .45rem .6rem; font-size: .85rem; pointer-events: none; display: grid; gap: .05rem; max-width: 18rem; border-radius: var(--r);}
.bi-pg .tip span{color: #D5DEE5;}
.bi-pg .toast{position: fixed; bottom: 1.2rem; left: 50%; transform: translateX(-50%); background: var(--slate); color: #fff; padding: .6rem 1rem; z-index: 60; max-width: calc(100vw - 2rem); border-radius: var(--r);}
.bi-pg .report{display: none;}
@media (max-width: 1320px){.bi-pg .kpis, .bi-pg .kpis-7{grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));}
}
@media (max-width: 980px){.bi-pg .planner-grid{grid-template-columns: 1fr;}
.bi-pg .inputs{border-right: 0; border-top: 1px solid var(--rule); min-height: 0; order: 2;}
.bi-pg .results{order: 1;}
.bi-pg .qf-actions{margin-left: 0;}
.bi-pg .app-nav{margin-left: 0; order: 3; width: 100%;}
}
@media (max-width: 600px){.bi-pg{font-size: 14px;}
.bi-pg .kpis, .bi-pg .kpis-7{grid-template-columns: repeat(2, minmax(0, 1fr));}
.bi-pg .kpi-lead .kpi-value{font-size: 2.3rem;}
.bi-pg .qf-mat select{min-width: 0;}
.bi-pg .qf-mat{flex: 1 1 100%;}
.bi-pg .row.four{grid-template-columns: 1fr 1fr;}
.bi-pg .app-context{display: none;}
}
@media (prefers-reduced-motion: reduce){.bi-pg, .bi-pg *{transition: none !important; scroll-behavior: auto !important;}
}
@page{ size: letter; margin: .45in; }
@media print{.bi-pg{font-size: 10pt;}
.bi-pg{background: #fff;}
.bi-pg > *:not(.report){display: none !important;}
.bi-pg .report{display: block !important; color: #000;}
.bi-pg .rp-head{display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 2pt solid #000; padding-bottom: 4pt; margin-bottom: 8pt;}
.bi-pg .rp-lab{margin: 0; font-size: 9pt; color: #333;}
.bi-pg .rp-head h1{font-family: var(--font-cond); font-size: 20pt;}
.bi-pg .rp-meta{text-align: right; font-size: 8.5pt; color: #333;}
.bi-pg .rp-cols{display: grid; grid-template-columns: 1fr 1.4fr; gap: 10pt; align-items: start;}
.bi-pg .rp-t{width: 100%; border-collapse: collapse; margin-bottom: 8pt; font-size: 9pt;}
.bi-pg .rp-t caption{text-align: left; font-weight: 600; font-size: 10pt; padding-bottom: 2pt;}
.bi-pg .rp-t th, .bi-pg .rp-t td{border: .5pt solid #999; padding: 2pt 4pt; text-align: left; vertical-align: top;}
.bi-pg .rp-t th{width: 34%; font-weight: 500; background: #F1F3F5;}
.bi-pg .rp-t thead th{width: auto;}
.bi-pg .rp-fig{margin: 6pt 0; page-break-inside: avoid; break-inside: avoid;}
.bi-pg .rp-fig figcaption{font-weight: 600; font-size: 9.5pt; margin-bottom: 3pt;}
.bi-pg .rp-fig .gang-svg{width: 100%; max-height: 3.3in;}
.bi-pg .rp-fig .legend{font-size: 8pt; color: #333;}
.bi-pg .rp-notes h2{font-size: 10pt; margin: 6pt 0 2pt;}
.bi-pg .rp-notes p{margin: 0; font-size: 9pt;}
.bi-pg .rp-foot{margin-top: 8pt; font-size: 8pt; color: #444; border-top: .5pt solid #999; padding-top: 3pt;}
.bi-pg .gang-svg .pc-n{font-family: var(--font-cond); fill: #000;}
.bi-pg .sw{-webkit-print-color-adjust: exact; print-color-adjust: exact;}
.bi-pg .report svg{-webkit-print-color-adjust: exact; print-color-adjust: exact;}
}
.bi-pg{--font:var(--font-sans);--font-cond:var(--font-sans);--bg:var(--surface-sunken);--surface:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;font-size:15px}
.bi-pg .app-header{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line)}
.bi-pg .brand,.bi-pg .version-tag,.bi-pg .app-footer{display:none}
.bi-pg .nav-btn{color:var(--ink-muted)}
.bi-pg .nav-btn:hover{color:var(--ink)}
.bi-pg .nav-btn[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}
.bi-pg .app-header .btn-ghost{color:var(--ink);border-color:var(--line-strong)}
.bi-pg .app-header .btn-ghost:hover{background:var(--surface-hover)}
.bi-pg .app-nav{margin-left:0}
/* print test planner (scoped) */
.bi-pt{--ink:#16171a;
  --ink-70:rgba(22,23,26,.70);
  --ink-45:rgba(22,23,26,.62);
  --ink-25:rgba(22,23,26,.47);
  --rule:rgba(22,23,26,.14);
  --rule-solid:#d1cdc8;
  --paper:#efebe4;
  --card:#faf8f4;
  --cyan:#0a8fa8;
  --cyan-text:#077e94;
  --magenta:#c0256b;
  --yellow:#d9a520;
  --orange:#c9631f;
  --font-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --font-body:"Instrument Sans",system-ui,-apple-system,Segoe UI,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;}
.bi-pt [hidden]{display:none!important}
.bi-pt .ptl-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:0 clamp(14px,3vw,22px);height:54px;
  background:var(--paper);border-bottom:1px solid var(--ink);}
.bi-pt .ptl-home{display:flex;align-items:center;gap:9px;text-decoration:none;flex:0 0 auto}
.bi-pt .ptl-home .ptl-mark{display:block;flex:0 0 auto}
.bi-pt .ptl-wordmark{font-family:var(--font-display);font-weight:800;font-size:17px;
  line-height:1;letter-spacing:-.02em;text-transform:lowercase;color:var(--ink);}
.bi-pt .ptl-wordmark span{color:var(--cyan)}
.bi-pt .ptl-divider{width:1px;height:20px;background:var(--rule);flex:0 0 auto}
.bi-pt .ptl-appname{font-family:var(--font-display);font-weight:700;font-size:14px;
  letter-spacing:-.01em;color:var(--ink);white-space:nowrap;}
.bi-pt .ptl-appsub{font-family:var(--font-mono);font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-45);white-space:nowrap;}
.bi-pt .ptl-topnav{margin-left:auto;display:flex;gap:18px;align-items:center}
.bi-pt .ptl-top .ptl-navbtn{font-family:var(--font-body);font-size:13px;font-weight:500;
  color:var(--ink-70);background:none;border:0;border-bottom:1px solid transparent;
  padding:4px 0;cursor:pointer;text-decoration:none;
  
  text-transform:none;letter-spacing:normal;border-radius:0;
  transition:color .15s,border-color .15s;}
.bi-pt .ptl-top .ptl-navbtn:hover{color:var(--ink);border-bottom-color:var(--cyan)}
@media(max-width:700px){.bi-pt .ptl-top{height:auto;padding-top:10px;padding-bottom:10px}
.bi-pt .ptl-appsub, .bi-pt .ptl-divider{display:none}
.bi-pt .ptl-topnav{gap:14px}
}
.bi-pt .ptl-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:14px clamp(14px,3vw,22px) 28px;margin-top:28px;
  border-top:1px solid var(--rule);
  font-family:var(--font-mono);font-size:11px;color:var(--ink-45);}
.bi-pt .ptl-foot a, .bi-pt .ptl-foot .ptl-linkbtn{color:var(--ink-45);background:none;border:0;padding:0;cursor:pointer;
  font:inherit;text-decoration:underline;text-underline-offset:3px;}
.bi-pt .ptl-foot a:hover, .bi-pt .ptl-foot .ptl-linkbtn:hover{color:var(--ink)}
.bi-pt .ptl-foot .ptl-right{margin-left:auto;display:flex;gap:16px;align-items:center}
.bi-pt .ptl-swatches{display:flex;gap:3px}
.bi-pt .ptl-swatches i{width:14px;height:7px;display:block}
.bi-pt .ptl-overlay{position:fixed;inset:0;z-index:200;background:rgba(22,23,26,.55);
  display:flex;align-items:flex-start;justify-content:center;
  padding:clamp(12px,4vh,52px) 16px;overflow-y:auto;}
.bi-pt .ptl-modal{width:100%;max-width:720px;background:var(--card);
  border:1px solid var(--ink);box-shadow:0 24px 60px rgba(22,23,26,.28);}
.bi-pt .ptl-modal.ptl-narrow{max-width:540px}
.bi-pt .ptl-modal-head{display:flex;align-items:flex-start;gap:16px;
  padding:20px 24px 16px;border-bottom:1px solid var(--rule);}
.bi-pt .ptl-modal-head h2{font-family:var(--font-display);font-weight:700;font-size:21px;
  letter-spacing:-.02em;margin:4px 0 0;color:var(--ink);}
.bi-pt .ptl-eyebrow{font-family:var(--font-mono);font-size:11px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);}
.bi-pt .ptl-x{margin-left:auto;border:0;background:none;font-size:25px;line-height:1;
  cursor:pointer;color:var(--ink-45);padding:0 4px;}
.bi-pt .ptl-x:hover{color:var(--ink)}
.bi-pt .ptl-modal-body{padding:20px 24px}
.bi-pt .ptl-modal-body h3{font-family:var(--font-display);font-size:15px;margin:20px 0 6px;letter-spacing:-.01em;}
.bi-pt .ptl-modal-body>p{margin:0 0 13px;font-family:var(--font-body);font-size:14px;color:var(--ink-70)}
.bi-pt .ptl-hint{font-family:var(--font-body);font-size:13px;color:var(--ink-45);margin:0 0 16px}
.bi-pt .ptl-modal-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:15px 24px;border-top:1px solid var(--rule);background:rgba(22,23,26,.03);}
.bi-pt .ptl-actions{margin-left:auto;display:flex;gap:9px;flex-wrap:wrap}
.bi-pt .ptl-field{margin-bottom:15px;display:flex;flex-direction:column}
.bi-pt .ptl-field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
@media(max-width:600px){.bi-pt .ptl-field-row{grid-template-columns:1fr}
}
.bi-pt .ptl-field label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-70);margin-bottom:6px;
  display:flex;align-items:center;gap:8px;}
.bi-pt .ptl-req{font-size:9.5px;letter-spacing:.08em;color:var(--magenta);
  border:1px solid var(--magenta);padding:1px 5px;}
.bi-pt .ptl-modal .ptl-field input, .bi-pt .ptl-modal .ptl-field select, .bi-pt .ptl-modal .ptl-field textarea{font-family:var(--font-body);font-size:14px;color:var(--ink);background:#fff;
  border:1px solid var(--rule);padding:9px 11px;width:100%;border-radius:0;
  text-align:left;text-transform:none;letter-spacing:normal;min-width:0;}
.bi-pt .ptl-modal .ptl-field textarea{resize:vertical;min-height:42px}
.bi-pt .ptl-modal .ptl-field input:focus, .bi-pt .ptl-modal .ptl-field select:focus, .bi-pt .ptl-modal .ptl-field textarea:focus{outline:2px solid var(--cyan);outline-offset:1px;border-color:var(--cyan);}
.bi-pt .ptl-field .ptl-invalid{border-color:var(--magenta);border-left-width:3px}
.bi-pt .ptl-err{margin:6px 0 0;font-family:var(--font-body);font-size:13px;color:var(--magenta)}
.bi-pt .ptl-err::before{content:"! ";font-family:var(--font-mono);font-weight:600}
.bi-pt .ptl-btn, .bi-pt .ptl-modal .ptl-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;
  font-family:var(--font-mono);font-size:12px;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;text-decoration:none;cursor:pointer;
  border:1px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:0;
  transition:background .15s,color .15s,border-color .15s;}
.bi-pt .ptl-btn:hover{background:#000}
.bi-pt .ptl-btn.ptl-ghost{background:transparent;color:var(--ink);border-color:var(--rule)}
.bi-pt .ptl-btn.ptl-ghost:hover{border-color:var(--ink);background:transparent}
.bi-pt .ptl-confirm{text-align:center;padding:46px 24px}
.bi-pt .ptl-confirm h3{font-family:var(--font-display);font-size:21px;margin:14px 0 8px}
.bi-pt .ptl-confirm p{max-width:44ch;margin:0 auto 20px;font-family:var(--font-body);
  font-size:14px;color:var(--ink-70);}
.bi-pt .ptl-confirm .ptl-actions{justify-content:center;margin:0}
.bi-pt .ptl-reqid{display:inline-block;font-family:var(--font-mono);font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;
  border:1px solid var(--rule);padding:6px 14px;margin:0 0 14px;color:var(--ink);}
.bi-pt .ptl-dark{--ptl-d-bg:#16171a;
  --ptl-d-panel:#1e1f23;
  --ptl-d-panel-2:#26272c;
  --ptl-d-line:rgba(239,235,228,.13);
  --ptl-d-line-2:rgba(239,235,228,.22);
  --ptl-d-text:#efebe4;                    
  --ptl-d-text-2:rgba(239,235,228,.72);    
  --ptl-d-text-3:rgba(239,235,228,.55);    
  --ptl-d-cyan:#4cc3dd;                    
  --ptl-d-magenta:#ec7aa8;                 
  --ptl-d-yellow:#e8bb4a;                  
  --ptl-d-orange:#ef9a5c;}
.bi-pt .ptl-dark .ptl-top{background:var(--ptl-d-bg);color:var(--ptl-d-text);
  border-bottom:1px solid var(--ptl-d-line-2);}
.bi-pt .ptl-dark .ptl-wordmark{color:var(--ptl-d-text)}
.bi-pt .ptl-dark .ptl-wordmark span{color:var(--ptl-d-cyan)}
.bi-pt .ptl-dark .ptl-appname{color:var(--ptl-d-text)}
.bi-pt .ptl-dark .ptl-appsub{color:var(--ptl-d-text-3)}
.bi-pt .ptl-dark .ptl-divider{background:var(--ptl-d-line-2)}
.bi-pt .ptl-dark .ptl-top .ptl-navbtn{color:var(--ptl-d-text-2)}
.bi-pt .ptl-dark .ptl-top .ptl-navbtn:hover{color:var(--ptl-d-text);border-bottom-color:var(--ptl-d-cyan)}
.bi-pt .ptl-dark .ptl-mark path{stroke:var(--ptl-d-text)}
.bi-pt .ptl-dark .ptl-foot{background:var(--ptl-d-bg);color:var(--ptl-d-text-3);
  border-top:1px solid var(--ptl-d-line);margin-top:0;}
.bi-pt .ptl-dark .ptl-foot a, .bi-pt .ptl-dark .ptl-foot .ptl-linkbtn{color:var(--ptl-d-text-3)}
.bi-pt .ptl-dark .ptl-foot a:hover, .bi-pt .ptl-dark .ptl-foot .ptl-linkbtn:hover{color:var(--ptl-d-text)}
.bi-pt .ptl-dark .ptl-overlay{background:rgba(10,11,12,.72)}
.bi-pt .ptl-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:220;
  background:var(--ink);color:var(--paper);padding:11px 18px;
  font-family:var(--font-body);font-size:13.5px;
  box-shadow:0 12px 34px rgba(22,23,26,.3);max-width:90vw;}
.bi-pt .ptl-skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:10px 16px;z-index:300}
.bi-pt .ptl-skip:focus{left:8px;top:8px}
.bi-pt.ptl-locked{overflow:hidden}
@media(prefers-reduced-motion:reduce){.bi-pt .ptl-top *, .bi-pt .ptl-foot *, .bi-pt .ptl-modal *{transition:none!important;animation:none!important}
}
@media print{.bi-pt .ptl-top, .bi-pt .ptl-foot, .bi-pt .ptl-overlay, .bi-pt .ptl-toast, .bi-pt .ptl-skip{display:none!important}
}
.bi-pt .ptl-doc-head, .bi-pt .ptl-doc-foot{font-family: var(--font-body, "Instrument Sans", system-ui, sans-serif);}
.bi-pt .ptl-doc-head{display: flex;
  align-items: flex-start;
  gap: 24px;
  padding-bottom: 10px;
  border-bottom: 1.5px solid #16171a;
  margin-bottom: 16px;}
.bi-pt .ptl-doc-brand{display: flex; align-items: center; gap: 8px; flex: 0 0 auto;}
.bi-pt .ptl-doc-brand .ptl-mark{display: block; flex: 0 0 auto;}
.bi-pt .ptl-wordmark{display: block;
  font-family: var(--font-display, "Archivo", "Helvetica Neue", Arial, sans-serif);
  font-weight: 800;
  font-size: 15px;
  line-height: 1;
  letter-spacing: -.02em;
  text-transform: lowercase;
  color: #16171a;}
.bi-pt .ptl-wordmark span{color: #0a8fa8;}
.bi-pt .ptl-doc-lab{display: block;
  font-family: var(--font-mono, "IBM Plex Mono", ui-monospace, Menlo, monospace);
  font-size: 8px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #5b5d63;
  margin-top: 3px;}
.bi-pt .ptl-doc-title{margin-left: auto; text-align: right;}
.bi-pt .ptl-doc-title h1{font-family: var(--font-display, "Archivo", "Helvetica Neue", Arial, sans-serif);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -.02em;
  margin: 0;
  color: #16171a;}
.bi-pt .ptl-doc-title p{margin: 3px 0 0; font-size: 11px; color: #5b5d63;}
.bi-pt .ptl-doc-foot{display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
  padding-top: 8px;
  margin-top: 20px;
  border-top: 1px solid rgba(22, 23, 26, .2);
  font-size: 8.5px;
  color: #5b5d63;}
.bi-pt .ptl-doc-org{font-weight: 600; color: #16171a;}
.bi-pt .ptl-doc-contact{font-weight: 400; color: #5b5d63; margin-left: 10px;}
.bi-pt .ptl-doc-origin{margin-left: auto;
  font-family: var(--font-mono, "IBM Plex Mono", ui-monospace, Menlo, monospace);
  letter-spacing: .06em;}
.bi-pt .ptl-doc-note{flex: 1 0 100%; margin-top: 4px; color: #5b5d63;}
@media print{.bi-pt .ptl-doc-head{break-after: avoid;}
.bi-pt .ptl-doc-foot{break-before: avoid;}
.bi-pt .ptl-doc-head{border-bottom-color: #000;}
.bi-pt .ptl-doc-foot{border-top-color: #000;}
}
.bi-pt{--bg:var(--paper);
  --surface:var(--card);
  --field:#fff;
  --key:var(--ink);
  --line:var(--rule);
  --gray:var(--ink-45);
  --cyan-soft:rgba(10,143,168,.10);
  --magenta-soft:rgba(192,37,107,.10);
  --yellow-soft:rgba(217,165,32,.14);
  --display:var(--font-display);
  --sans:var(--font-body);
  --pill:0;}
.bi-pt, .bi-pt *{box-sizing:border-box}
.bi-pt, .bi-pt{margin:0;padding:0}
.bi-pt{background:var(--bg);color:var(--key);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
.bi-pt button, .bi-pt input, .bi-pt select, .bi-pt textarea{font-family:inherit;font-size:inherit;color:inherit}
.bi-pt .num, .bi-pt .tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.bi-pt header{background:var(--paper);color:var(--ink);padding:14px clamp(14px,3vw,22px) 0;display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-radius:0}
.bi-pt header h1{font-family:var(--display);font-size:22px;font-weight:800;letter-spacing:-.03em;margin:0;color:var(--ink)}
.bi-pt header .sub{font-family:var(--font-mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-45);background:transparent;border:0;padding:0;margin-bottom:0}
.bi-pt .strip{display:flex;gap:3px}
.bi-pt .strip i{width:16px;height:8px;border-radius:0}
.bi-pt nav{margin-left:auto;display:flex;gap:0;background:transparent;padding:0;border-radius:0}
.bi-pt nav button{background:none;border:0;border-bottom:2px solid transparent;color:var(--ink-45);font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:10px 14px 8px;cursor:pointer;border-radius:0}
.bi-pt nav button:hover{color:var(--ink)}
.bi-pt nav button[aria-current="true"]{background:transparent;color:var(--ink);border-bottom-color:var(--cyan)}
.bi-pt :focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.bi-pt .pt-main{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;padding:18px clamp(14px,3vw,22px) 70px;align-items:start}
@media(max-width:880px){.bi-pt .pt-main{grid-template-columns:minmax(0,1fr)}
}
.bi-pt .eyebrow{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);margin:0 0 10px}
.bi-pt h2{font-family:var(--display);font-size:25px;font-weight:800;letter-spacing:-.03em;margin:0 0 2px}
.bi-pt h3{font-family:var(--display);font-size:15px;font-weight:700;letter-spacing:-.015em;margin:0 0 10px}
.bi-pt .card{background:var(--surface);border:1px solid var(--line);border-radius:0;padding:18px 20px;margin-bottom:16px}
.bi-pt .proj{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:0;padding:10px 14px;margin-bottom:8px;cursor:pointer}
.bi-pt .proj:hover{border-color:var(--gray)}
.bi-pt .proj[aria-current="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.bi-pt .proj b{display:block;font-weight:600}
.bi-pt .proj span{font-size:12px;color:var(--gray)}
.bi-pt .proj[aria-current="true"] span{color:rgba(239,235,228,.66)}
.bi-pt .btn{background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:9px 17px;border-radius:0;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.bi-pt .btn:hover{background:#000;border-color:#000;filter:none}
.bi-pt .btn.ghost{background:transparent;color:var(--ink-70);border-color:var(--rule)}
.bi-pt .btn.ghost:hover{background:var(--field);color:var(--key);border-color:var(--gray);filter:none}
.bi-pt .btn.danger:hover{background:transparent;border-color:var(--magenta);color:var(--magenta)}
.bi-pt .btn.sm{padding:5px 12px;font-size:12px}
.bi-pt .bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0 0}
.bi-pt label.f{display:block;margin-bottom:12px}
.bi-pt label.f>span{display:block;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-45);margin-bottom:5px}
.bi-pt label.f>em{display:block;font-style:normal;font-size:11px;color:var(--gray);margin-top:3px}
.bi-pt input, .bi-pt select, .bi-pt textarea{width:100%;background:var(--field);border:1px solid var(--line);border-radius:0;padding:8px 11px}
.bi-pt input.num{text-align:right}
.bi-pt input:focus, .bi-pt select:focus, .bi-pt textarea:focus{outline:2px solid var(--cyan);outline-offset:1px;border-color:var(--cyan)}
.bi-pt input::placeholder{color:#AFB6BA}
.bi-pt .grid{display:grid;gap:0 14px}
.bi-pt .g2{grid-template-columns:repeat(2,1fr)}
.bi-pt .g3{grid-template-columns:repeat(3,1fr)}
.bi-pt .g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:700px){.bi-pt .g3, .bi-pt .g4{grid-template-columns:repeat(2,1fr)}
}
.bi-pt .chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.bi-pt .chip{display:inline-flex;align-items:center;gap:8px;background:var(--field);border:1px solid var(--line);border-radius:var(--pill);padding:7px 16px 7px 12px;cursor:pointer;font-size:13px;font-weight:600;color:var(--gray);user-select:none}
.bi-pt .chip:hover{border-color:var(--gray)}
.bi-pt .chip input{position:absolute;opacity:0;width:1px;height:1px}
.bi-pt .chip .dot{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);flex:none;position:relative}
.bi-pt .chip.on{background:var(--cyan);border-color:var(--cyan);color:#fff}
.bi-pt .chip.on .dot{background:#fff;border-color:#fff}
.bi-pt .chip.on .dot:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid var(--cyan);border-width:0 2px 2px 0;transform:rotate(45deg)}
.bi-pt .chip.crop.on{background:var(--magenta);border-color:var(--magenta)}
.bi-pt .chip.crop.on .dot:after{border-color:var(--magenta)}
.bi-pt .chip:focus-within{outline:2px solid var(--cyan);outline-offset:2px}
.bi-pt .step{border-top:1px solid var(--line);padding:16px 0 4px}
.bi-pt .step:first-of-type{border-top:0;padding-top:4px}
.bi-pt .step>.hd{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.bi-pt .step>.hd .n{width:22px;height:22px;border-radius:50%;background:var(--cyan-soft);color:var(--cyan);font-family:var(--display);font-size:12px;font-weight:600;display:grid;place-items:center;flex:none}
.bi-pt .step>.hd h4{font-family:var(--display);font-size:14px;font-weight:600;margin:0}
.bi-pt .step>.hd .hint{font-size:12px;color:var(--gray);margin-left:auto}
.bi-pt .sub{background:var(--field);border:1px solid var(--line);border-radius:0;padding:12px 14px 2px;margin-bottom:10px}
.bi-pt .sub>.lb{font-family:var(--display);font-size:12px;font-weight:600;color:var(--gray);margin-bottom:8px}
.bi-pt .sub.crop{border-color:rgba(192,37,107,.35)}
.bi-pt .waiting{font-size:13px;color:var(--gray);background:var(--field);border:1px dashed var(--line);border-radius:0;padding:14px 16px}
.bi-pt .drop{border:1.5px dashed var(--line);border-radius:0;background:var(--field);padding:16px;text-align:center;cursor:pointer;color:var(--gray);font-size:13px;margin-bottom:12px}
.bi-pt .drop:hover, .bi-pt .drop.over{border-color:var(--cyan);background:var(--cyan-soft);color:var(--cyan)}
.bi-pt .drop b{display:block;font-family:var(--display);font-size:13px;font-weight:600;color:var(--key);margin-bottom:2px}
.bi-pt .drop.over b{color:var(--cyan)}
.bi-pt .srcinfo{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--cyan-soft);border-radius:0;padding:8px 12px;margin-bottom:12px;font-size:12.5px;font-variant-numeric:tabular-nums}
.bi-pt .cropsel{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin:0 0 12px}
.bi-pt .cropstage{position:relative;width:320px;max-width:100%;border-radius:0;overflow:hidden;border:1px solid var(--line);
  background:var(--field);touch-action:none;user-select:none;cursor:crosshair;flex:none}
.bi-pt .cropstage img{display:block;width:100%;height:100%;object-fit:fill;-webkit-user-drag:none}
.bi-pt .cropstage.dragging{cursor:grabbing}
.bi-pt .crect{position:absolute;border:1.5px solid var(--magenta);border-radius:0;box-shadow:0 0 0 9999px rgba(21,24,26,.5);cursor:grab}
.bi-pt .crect:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.5);pointer-events:none}
.bi-pt .cropstage.moving .crect{cursor:grabbing}
.bi-pt .ch{position:absolute;width:11px;height:11px;margin:-6px 0 0 -6px;box-sizing:border-box;
  background:#fff;border:1.5px solid var(--magenta);border-radius:0}
.bi-pt .ch:after{content:"";position:absolute;inset:-7px}
.bi-pt .ch[data-h="nw"]{left:0;top:0;cursor:nwse-resize}
.bi-pt .ch[data-h="n"]{left:50%;top:0;cursor:ns-resize}
.bi-pt .ch[data-h="ne"]{left:100%;top:0;cursor:nesw-resize}
.bi-pt .ch[data-h="e"]{left:100%;top:50%;cursor:ew-resize}
.bi-pt .ch[data-h="se"]{left:100%;top:100%;cursor:nwse-resize}
.bi-pt .ch[data-h="s"]{left:50%;top:100%;cursor:ns-resize}
.bi-pt .ch[data-h="sw"]{left:0;top:100%;cursor:nesw-resize}
.bi-pt .ch[data-h="w"]{left:0;top:50%;cursor:ew-resize}
.bi-pt .cread{font-size:12.5px;color:var(--gray);font-variant-numeric:tabular-nums;display:flex;flex-direction:column;gap:4px;min-width:190px;flex:1}
.bi-pt .cread b{color:var(--key);font-weight:700}
.bi-pt .filerow{background:var(--surface);border:1px solid var(--line);border-radius:0;margin-bottom:10px;overflow:hidden}
.bi-pt .filerow summary{list-style:none;cursor:pointer;padding:10px 16px;display:grid;grid-template-columns:14px 30px 1.3fr 1fr 1.2fr auto;gap:12px;align-items:center}
.bi-pt .filerow summary::-webkit-details-marker{display:none}
.bi-pt .filerow summary:hover{background:var(--field)}
.bi-pt .filerow .tw{color:var(--gray);font-size:11px;transition:transform .15s}
.bi-pt .filerow[open] .tw{transform:rotate(90deg)}
.bi-pt .filerow[open] summary{border-bottom:1px solid var(--line)}
.bi-pt .filerow .nm{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bi-pt .filerow .mo{font-size:12px;color:var(--gray);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.bi-pt .detail{padding:6px 18px 16px}
@media(max-width:700px){.bi-pt .filerow summary{grid-template-columns:14px 30px 1fr auto}
.bi-pt .filerow summary .hide-s{display:none}
}
.bi-pt table.res, .bi-pt table.sched{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums;background:var(--field);border:1px solid var(--line);border-radius:0;overflow:hidden}
.bi-pt table.res th, .bi-pt table.res td, .bi-pt table.sched th, .bi-pt table.sched td{padding:7px 12px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:top}
.bi-pt table.sched td.wrap{white-space:normal}
.bi-pt table.sched .sm2{display:block;font-size:11.5px;color:var(--gray)}
.bi-pt table.res tr:last-child td, .bi-pt table.sched tbody tr:last-child td{border-bottom:0}
.bi-pt table.res th:first-child, .bi-pt table.res td:first-child, .bi-pt table.sched th:first-child, .bi-pt table.sched td:first-child{text-align:left}
.bi-pt table.res td:first-child{color:var(--gray)}
.bi-pt table.res thead th, .bi-pt table.sched thead th{font-family:var(--display);font-size:12px;font-weight:600;background:var(--surface);color:var(--gray)}
.bi-pt table.res thead th.red{color:var(--cyan)}
.bi-pt table.res thead th.crop{color:var(--magenta)}
.bi-pt table.sched tfoot td{border-top:1px solid var(--key);border-bottom:0;font-weight:700;background:var(--surface)}
.bi-pt .dotc{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:0}
.bi-pt .tag{display:inline-block;font-size:11px;font-weight:700;padding:2px 10px;border-radius:var(--pill)}
.bi-pt .t-ok{background:var(--bg);color:var(--gray)}
.bi-pt .t-good{background:var(--cyan-soft);color:var(--cyan)}
.bi-pt .t-info{background:var(--bg);color:var(--gray)}
.bi-pt .t-warn{background:var(--yellow-soft);color:#8A6800}
.bi-pt .t-bad{background:var(--magenta-soft);color:var(--magenta)}
.bi-pt .flags{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.bi-pt .flags li{font-size:13px;display:flex;gap:9px;align-items:flex-start}
.bi-pt .rolls{display:flex;gap:24px;overflow-x:auto;padding:2px 2px 10px;align-items:flex-start}
.bi-pt .roll{flex:0 0 auto}
.bi-pt .roll h4{font-family:var(--display);font-size:14px;font-weight:600;margin:0 0 1px}
.bi-pt .roll .meta{font-size:12px;color:var(--gray);margin-bottom:10px;font-variant-numeric:tabular-nums}
.bi-pt .roll svg{display:block;background:var(--field);border:1px solid var(--line);border-radius:0}
.bi-pt .legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--gray);margin-top:8px}
.bi-pt .legend i{display:inline-block;width:10px;height:10px;border-radius:0;margin-right:6px;vertical-align:-1px;border:1px solid var(--line)}
.bi-pt .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px}
.bi-pt .stat{background:var(--surface);border:1px solid var(--line);border-radius:0;padding:12px 14px}
.bi-pt .stat b{display:block;font-family:var(--display);font-size:21px;font-weight:600;font-variant-numeric:tabular-nums}
.bi-pt .stat span{font-size:11.5px;color:var(--gray)}
.bi-pt .stat.hi b{color:var(--cyan)}
.bi-pt .stat.save b{color:var(--magenta)}
.bi-pt table.lib{width:100%;border-collapse:collapse;font-size:13px}
.bi-pt table.lib th{font-size:11.5px;font-weight:600;color:var(--gray);text-align:left;padding:0 6px 8px;vertical-align:bottom}
.bi-pt table.lib td{padding:3px}
.bi-pt table.lib input, .bi-pt table.lib select{border-color:transparent;background:transparent;border-radius:0;padding:6px 8px}
.bi-pt table.lib input:hover, .bi-pt table.lib select:hover{border-color:var(--line);background:var(--field)}
.bi-pt table.lib input.warn{background:var(--yellow-soft)}
.bi-pt .empty{border:1px dashed var(--line);background:var(--surface);border-radius:0;padding:38px 20px;text-align:center;color:var(--gray)}
.bi-pt .empty b{display:block;color:var(--key);font-family:var(--display);font-size:16px;margin-bottom:4px}
.bi-pt .note{font-size:12.5px;color:var(--gray);max-width:76ch}
.bi-pt .q{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--line);
  background:var(--surface);color:var(--gray);font-size:10px;font-weight:700;line-height:1;cursor:pointer;padding:0;
  vertical-align:1px;margin-left:5px;flex:none}
.bi-pt .q:hover{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-soft)}
.bi-pt .pop{position:fixed;z-index:30;width:290px;max-width:calc(100vw - 16px);background:var(--key);color:#fff;
  border-radius:0;padding:12px 14px;box-shadow:0 10px 30px rgba(0,0,0,.24)}
.bi-pt .pop b{font-family:var(--display);font-size:13px;display:block;margin-bottom:4px}
.bi-pt .pop p{margin:0;font-size:12.5px;color:#C5CBCF;line-height:1.5}
.bi-pt .cw{display:inline-flex;align-items:center}
.bi-pt .th{width:30px;height:30px;border-radius:0;object-fit:cover;border:1px solid var(--line);background:var(--field);display:block}
.bi-pt .thbig{width:78px;height:78px;border-radius:0;object-fit:contain;border:1px solid var(--line);background:#fff;flex:none}
.bi-pt .thno{display:grid;place-items:center;font-size:9px;font-weight:700;color:var(--gray);text-align:center;line-height:1.2;padding:2px}
.bi-pt .toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--key);color:#fff;font-size:13px;padding:9px 20px;border-radius:var(--pill);opacity:0;pointer-events:none;transition:opacity .2s;z-index:9}
.bi-pt .toast.on{opacity:1}
@media(prefers-reduced-motion:reduce){.bi-pt, .bi-pt *{transition:none!important}
}
.bi-pt #sheet{display:none}
@media print{@page{size:letter portrait;margin:.5in}
.bi-pt, .bi-pt{background:#fff;color:#000;font-size:9.5pt}
.bi-pt>*{display:none!important}
.bi-pt #sheet{display:block!important}
.bi-pt #sheet *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
.bi-pt #sheet h1{font-family:var(--display);font-size:17pt;font-weight:600;margin:0;letter-spacing:-.01em}
.bi-pt #sheet .rule{border-bottom:1.5pt solid #000;margin:6pt 0 10pt}
.bi-pt #sheet .head{display:flex;align-items:flex-end;gap:12pt}
.bi-pt #sheet .sheetbrand{display:flex;align-items:center;gap:6pt;margin-bottom:4pt}
.bi-pt #sheet .sheetbrand .ptl-wordmark{font-size:11pt}
.bi-pt #sheet .sheetbrand .ptl-mark{display:block}
.bi-pt #sheet .head .meta{margin-left:auto;text-align:right;font-size:8.5pt;color:#444;line-height:1.45}
.bi-pt #sheet .cmyk{display:flex;gap:2pt;margin-bottom:3pt}
.bi-pt #sheet .cmyk i{width:14pt;height:5pt;border-radius:1pt}
.bi-pt #sheet h2{font-family:var(--display);font-size:8pt;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    color:#000;margin:14pt 0 5pt;padding-bottom:2pt;border-bottom:.5pt solid #999}
.bi-pt #sheet .kv{display:flex;flex-wrap:wrap;gap:0;font-size:9pt;margin-bottom:6pt}
.bi-pt #sheet .kv div{padding:2pt 0;white-space:nowrap}
.bi-pt #sheet .kv div+div{margin-left:9pt;padding-left:9pt;border-left:.5pt solid #BBB}
.bi-pt #sheet .kv b{font-family:var(--display)}
.bi-pt #sheet .big{font-family:var(--display);font-size:13pt;font-weight:700}
.bi-pt #sheet table{width:100%;border-collapse:collapse;font-size:8.5pt;font-variant-numeric:tabular-nums;margin-bottom:4pt}
.bi-pt #sheet thead{display:table-header-group}
.bi-pt #sheet th{text-align:right;font-family:var(--display);font-size:7.5pt;font-weight:700;text-transform:uppercase;
    letter-spacing:.06em;color:#000;border-bottom:.75pt solid #000;padding:3pt 5pt}
.bi-pt #sheet td{text-align:right;padding:3.5pt 5pt;border-bottom:.4pt solid #CCC;white-space:nowrap;vertical-align:top}
.bi-pt #sheet td.wrap{white-space:normal}
.bi-pt #sheet .sm2{display:block;font-size:7.5pt;color:#555;margin-top:1pt}
.bi-pt #sheet th:first-child, .bi-pt #sheet td:first-child, .bi-pt #sheet .l{text-align:left}
.bi-pt #sheet tfoot td{border-top:.75pt solid #000;border-bottom:0;font-weight:700}
.bi-pt #sheet .blk{break-inside:avoid;page-break-inside:avoid;margin-bottom:10pt}
.bi-pt #sheet .two{display:flex;gap:14pt;align-items:flex-start}
.bi-pt #sheet .dotc{width:6pt;height:6pt}
.bi-pt #sheet svg{max-height:3.6in;width:auto;border:.5pt solid #999;border-radius:3pt}
.bi-pt #sheet .cap{font-size:7.5pt;color:#555;margin-top:3pt}
.bi-pt #sheet .sign{display:flex;gap:20pt;margin-top:14pt;break-inside:avoid}
.bi-pt #sheet .sign div{flex:1;border-top:.75pt solid #000;padding-top:3pt;font-size:7.5pt;color:#555}
.bi-pt #sheet .foot{margin-top:12pt;padding-top:5pt;border-top:.5pt solid #999;font-size:7.5pt;color:#666;display:flex}
.bi-pt #sheet .foot span:last-child{margin-left:auto}
.bi-pt #sheet .croppage{break-before:page;page-break-before:always}
.bi-pt #sheet .croppage .map{text-align:center;margin:8pt 0 0}
.bi-pt #sheet .croppage svg{max-height:none;border:.5pt solid #999;border-radius:0}
.bi-pt #sheet ul{margin:2pt 0 0;padding-left:12pt;font-size:8.5pt}
}
@media(max-width:880px){.bi-pt table.res, .bi-pt table.sched{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
.bi-pt table.res thead, .bi-pt table.sched thead, .bi-pt table.res tbody, .bi-pt table.sched tbody{display:table;width:100%;min-width:520px}
}
.bi-pt{--font-display:var(--font-sans);--font-body:var(--font-sans);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.bi-pt > header h1,.bi-pt > header .strip,.bi-pt > header .sub{display:none}
.bi-pt > header nav{margin-left:0}
/* shipping calculator (scoped) */
.bi-sp{--ink:#16171a;
  --ink-70:rgba(22,23,26,.70);
  --ink-45:rgba(22,23,26,.62);
  --ink-25:rgba(22,23,26,.47);
  --rule:rgba(22,23,26,.14);
  --rule-solid:#d1cdc8;
  --paper:#efebe4;
  --card:#faf8f4;
  --cyan:#0a8fa8;
  --cyan-text:#077e94;
  --magenta:#c0256b;
  --yellow:#d9a520;
  --orange:#c9631f;
  --font-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --font-body:"Instrument Sans",system-ui,-apple-system,Segoe UI,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;}
.bi-sp [hidden]{display:none!important}
.bi-sp .ptl-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:0 clamp(14px,3vw,22px);height:54px;
  background:var(--paper);border-bottom:1px solid var(--ink);}
.bi-sp .ptl-home{display:flex;align-items:center;gap:9px;text-decoration:none;flex:0 0 auto}
.bi-sp .ptl-home .ptl-mark{display:block;flex:0 0 auto}
.bi-sp .ptl-wordmark{font-family:var(--font-display);font-weight:800;font-size:17px;
  line-height:1;letter-spacing:-.02em;text-transform:lowercase;color:var(--ink);}
.bi-sp .ptl-wordmark span{color:var(--cyan)}
.bi-sp .ptl-divider{width:1px;height:20px;background:var(--rule);flex:0 0 auto}
.bi-sp .ptl-appname{font-family:var(--font-display);font-weight:700;font-size:14px;
  letter-spacing:-.01em;color:var(--ink);white-space:nowrap;}
.bi-sp .ptl-appsub{font-family:var(--font-mono);font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-45);white-space:nowrap;}
.bi-sp .ptl-topnav{margin-left:auto;display:flex;gap:18px;align-items:center}
.bi-sp .ptl-top .ptl-navbtn{font-family:var(--font-body);font-size:13px;font-weight:500;
  color:var(--ink-70);background:none;border:0;border-bottom:1px solid transparent;
  padding:4px 0;cursor:pointer;text-decoration:none;
  
  text-transform:none;letter-spacing:normal;border-radius:0;
  transition:color .15s,border-color .15s;}
.bi-sp .ptl-top .ptl-navbtn:hover{color:var(--ink);border-bottom-color:var(--cyan)}
@media(max-width:700px){.bi-sp .ptl-top{height:auto;padding-top:10px;padding-bottom:10px}
.bi-sp .ptl-appsub, .bi-sp .ptl-divider{display:none}
.bi-sp .ptl-topnav{gap:14px}
}
.bi-sp .ptl-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:14px clamp(14px,3vw,22px) 28px;margin-top:28px;
  border-top:1px solid var(--rule);
  font-family:var(--font-mono);font-size:11px;color:var(--ink-45);}
.bi-sp .ptl-foot a, .bi-sp .ptl-foot .ptl-linkbtn{color:var(--ink-45);background:none;border:0;padding:0;cursor:pointer;
  font:inherit;text-decoration:underline;text-underline-offset:3px;}
.bi-sp .ptl-foot a:hover, .bi-sp .ptl-foot .ptl-linkbtn:hover{color:var(--ink)}
.bi-sp .ptl-foot .ptl-right{margin-left:auto;display:flex;gap:16px;align-items:center}
.bi-sp .ptl-swatches{display:flex;gap:3px}
.bi-sp .ptl-swatches i{width:14px;height:7px;display:block}
.bi-sp .ptl-overlay{position:fixed;inset:0;z-index:200;background:rgba(22,23,26,.55);
  display:flex;align-items:flex-start;justify-content:center;
  padding:clamp(12px,4vh,52px) 16px;overflow-y:auto;}
.bi-sp .ptl-modal{width:100%;max-width:720px;background:var(--card);
  border:1px solid var(--ink);box-shadow:0 24px 60px rgba(22,23,26,.28);}
.bi-sp .ptl-modal.ptl-narrow{max-width:540px}
.bi-sp .ptl-modal-head{display:flex;align-items:flex-start;gap:16px;
  padding:20px 24px 16px;border-bottom:1px solid var(--rule);}
.bi-sp .ptl-modal-head h2{font-family:var(--font-display);font-weight:700;font-size:21px;
  letter-spacing:-.02em;margin:4px 0 0;color:var(--ink);}
.bi-sp .ptl-eyebrow{font-family:var(--font-mono);font-size:11px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);}
.bi-sp .ptl-x{margin-left:auto;border:0;background:none;font-size:25px;line-height:1;
  cursor:pointer;color:var(--ink-45);padding:0 4px;}
.bi-sp .ptl-x:hover{color:var(--ink)}
.bi-sp .ptl-modal-body{padding:20px 24px}
.bi-sp .ptl-modal-body h3{font-family:var(--font-display);font-size:15px;margin:20px 0 6px;letter-spacing:-.01em;}
.bi-sp .ptl-modal-body>p{margin:0 0 13px;font-family:var(--font-body);font-size:14px;color:var(--ink-70)}
.bi-sp .ptl-hint{font-family:var(--font-body);font-size:13px;color:var(--ink-45);margin:0 0 16px}
.bi-sp .ptl-modal-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:15px 24px;border-top:1px solid var(--rule);background:rgba(22,23,26,.03);}
.bi-sp .ptl-actions{margin-left:auto;display:flex;gap:9px;flex-wrap:wrap}
.bi-sp .ptl-field{margin-bottom:15px;display:flex;flex-direction:column}
.bi-sp .ptl-field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
@media(max-width:600px){.bi-sp .ptl-field-row{grid-template-columns:1fr}
}
.bi-sp .ptl-field label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-70);margin-bottom:6px;
  display:flex;align-items:center;gap:8px;}
.bi-sp .ptl-req{font-size:9.5px;letter-spacing:.08em;color:var(--magenta);
  border:1px solid var(--magenta);padding:1px 5px;}
.bi-sp .ptl-modal .ptl-field input, .bi-sp .ptl-modal .ptl-field select, .bi-sp .ptl-modal .ptl-field textarea{font-family:var(--font-body);font-size:14px;color:var(--ink);background:#fff;
  border:1px solid var(--rule);padding:9px 11px;width:100%;border-radius:0;
  text-align:left;text-transform:none;letter-spacing:normal;min-width:0;}
.bi-sp .ptl-modal .ptl-field textarea{resize:vertical;min-height:42px}
.bi-sp .ptl-modal .ptl-field input:focus, .bi-sp .ptl-modal .ptl-field select:focus, .bi-sp .ptl-modal .ptl-field textarea:focus{outline:2px solid var(--cyan);outline-offset:1px;border-color:var(--cyan);}
.bi-sp .ptl-field .ptl-invalid{border-color:var(--magenta);border-left-width:3px}
.bi-sp .ptl-err{margin:6px 0 0;font-family:var(--font-body);font-size:13px;color:var(--magenta)}
.bi-sp .ptl-err::before{content:"! ";font-family:var(--font-mono);font-weight:600}
.bi-sp .ptl-btn, .bi-sp .ptl-modal .ptl-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;
  font-family:var(--font-mono);font-size:12px;font-weight:500;
  letter-spacing:.1em;text-transform:uppercase;text-decoration:none;cursor:pointer;
  border:1px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:0;
  transition:background .15s,color .15s,border-color .15s;}
.bi-sp .ptl-btn:hover{background:#000}
.bi-sp .ptl-btn.ptl-ghost{background:transparent;color:var(--ink);border-color:var(--rule)}
.bi-sp .ptl-btn.ptl-ghost:hover{border-color:var(--ink);background:transparent}
.bi-sp .ptl-confirm{text-align:center;padding:46px 24px}
.bi-sp .ptl-confirm h3{font-family:var(--font-display);font-size:21px;margin:14px 0 8px}
.bi-sp .ptl-confirm p{max-width:44ch;margin:0 auto 20px;font-family:var(--font-body);
  font-size:14px;color:var(--ink-70);}
.bi-sp .ptl-confirm .ptl-actions{justify-content:center;margin:0}
.bi-sp .ptl-reqid{display:inline-block;font-family:var(--font-mono);font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;
  border:1px solid var(--rule);padding:6px 14px;margin:0 0 14px;color:var(--ink);}
.bi-sp .ptl-dark{--ptl-d-bg:#16171a;
  --ptl-d-panel:#1e1f23;
  --ptl-d-panel-2:#26272c;
  --ptl-d-line:rgba(239,235,228,.13);
  --ptl-d-line-2:rgba(239,235,228,.22);
  --ptl-d-text:#efebe4;                    
  --ptl-d-text-2:rgba(239,235,228,.72);    
  --ptl-d-text-3:rgba(239,235,228,.55);    
  --ptl-d-cyan:#4cc3dd;                    
  --ptl-d-magenta:#ec7aa8;                 
  --ptl-d-yellow:#e8bb4a;                  
  --ptl-d-orange:#ef9a5c;}
.bi-sp .ptl-dark .ptl-top{background:var(--ptl-d-bg);color:var(--ptl-d-text);
  border-bottom:1px solid var(--ptl-d-line-2);}
.bi-sp .ptl-dark .ptl-wordmark{color:var(--ptl-d-text)}
.bi-sp .ptl-dark .ptl-wordmark span{color:var(--ptl-d-cyan)}
.bi-sp .ptl-dark .ptl-appname{color:var(--ptl-d-text)}
.bi-sp .ptl-dark .ptl-appsub{color:var(--ptl-d-text-3)}
.bi-sp .ptl-dark .ptl-divider{background:var(--ptl-d-line-2)}
.bi-sp .ptl-dark .ptl-top .ptl-navbtn{color:var(--ptl-d-text-2)}
.bi-sp .ptl-dark .ptl-top .ptl-navbtn:hover{color:var(--ptl-d-text);border-bottom-color:var(--ptl-d-cyan)}
.bi-sp .ptl-dark .ptl-mark path{stroke:var(--ptl-d-text)}
.bi-sp .ptl-dark .ptl-foot{background:var(--ptl-d-bg);color:var(--ptl-d-text-3);
  border-top:1px solid var(--ptl-d-line);margin-top:0;}
.bi-sp .ptl-dark .ptl-foot a, .bi-sp .ptl-dark .ptl-foot .ptl-linkbtn{color:var(--ptl-d-text-3)}
.bi-sp .ptl-dark .ptl-foot a:hover, .bi-sp .ptl-dark .ptl-foot .ptl-linkbtn:hover{color:var(--ptl-d-text)}
.bi-sp .ptl-dark .ptl-overlay{background:rgba(10,11,12,.72)}
.bi-sp .ptl-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:220;
  background:var(--ink);color:var(--paper);padding:11px 18px;
  font-family:var(--font-body);font-size:13.5px;
  box-shadow:0 12px 34px rgba(22,23,26,.3);max-width:90vw;}
.bi-sp .ptl-skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:10px 16px;z-index:300}
.bi-sp .ptl-skip:focus{left:8px;top:8px}
.bi-sp.ptl-locked{overflow:hidden}
@media(prefers-reduced-motion:reduce){.bi-sp .ptl-top *, .bi-sp .ptl-foot *, .bi-sp .ptl-modal *{transition:none!important;animation:none!important}
}
@media print{.bi-sp .ptl-top, .bi-sp .ptl-foot, .bi-sp .ptl-overlay, .bi-sp .ptl-toast, .bi-sp .ptl-skip{display:none!important}
}
.bi-sp .ptl-doc-head, .bi-sp .ptl-doc-foot{font-family: var(--font-body, "Instrument Sans", system-ui, sans-serif);}
.bi-sp .ptl-doc-head{display: flex;
  align-items: flex-start;
  gap: 24px;
  padding-bottom: 10px;
  border-bottom: 1.5px solid #16171a;
  margin-bottom: 16px;}
.bi-sp .ptl-doc-brand{display: flex; align-items: center; gap: 8px; flex: 0 0 auto;}
.bi-sp .ptl-doc-brand .ptl-mark{display: block; flex: 0 0 auto;}
.bi-sp .ptl-wordmark{display: block;
  font-family: var(--font-display, "Archivo", "Helvetica Neue", Arial, sans-serif);
  font-weight: 800;
  font-size: 15px;
  line-height: 1;
  letter-spacing: -.02em;
  text-transform: lowercase;
  color: #16171a;}
.bi-sp .ptl-wordmark span{color: #0a8fa8;}
.bi-sp .ptl-doc-lab{display: block;
  font-family: var(--font-mono, "IBM Plex Mono", ui-monospace, Menlo, monospace);
  font-size: 8px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #5b5d63;
  margin-top: 3px;}
.bi-sp .ptl-doc-title{margin-left: auto; text-align: right;}
.bi-sp .ptl-doc-title h1{font-family: var(--font-display, "Archivo", "Helvetica Neue", Arial, sans-serif);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -.02em;
  margin: 0;
  color: #16171a;}
.bi-sp .ptl-doc-title p{margin: 3px 0 0; font-size: 11px; color: #5b5d63;}
.bi-sp .ptl-doc-foot{display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
  padding-top: 8px;
  margin-top: 20px;
  border-top: 1px solid rgba(22, 23, 26, .2);
  font-size: 8.5px;
  color: #5b5d63;}
.bi-sp .ptl-doc-org{font-weight: 600; color: #16171a;}
.bi-sp .ptl-doc-contact{font-weight: 400; color: #5b5d63; margin-left: 10px;}
.bi-sp .ptl-doc-origin{margin-left: auto;
  font-family: var(--font-mono, "IBM Plex Mono", ui-monospace, Menlo, monospace);
  letter-spacing: .06em;}
.bi-sp .ptl-doc-note{flex: 1 0 100%; margin-top: 4px; color: #5b5d63;}
@media print{.bi-sp .ptl-doc-head{break-after: avoid;}
.bi-sp .ptl-doc-foot{break-before: avoid;}
.bi-sp .ptl-doc-head{border-bottom-color: #000;}
.bi-sp .ptl-doc-foot{border-top-color: #000;}
}
.bi-sp{--ground:var(--paper);
  --hair:rgba(22,23,26,.09);
  --steel:var(--ink-45);
  --teal:var(--cyan);
  --brass:var(--yellow);
  --dim:var(--ink-45);
  --flag:var(--magenta);
  --warn:var(--orange);
  --ok:var(--cyan-text);
  --mono:var(--font-mono);
  --cond:var(--font-display);
  --sans:var(--font-body);}
.bi-sp, .bi-sp *{box-sizing:border-box}
.bi-sp, .bi-sp{margin:0;padding:0}
.bi-sp{background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
.bi-sp .wrap{max-width:1180px;margin:0 auto;padding:18px 18px 70px}
.bi-sp .mast{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-bottom:2px solid var(--ink);padding-bottom:7px}
.bi-sp .mast h1{font-family:var(--cond);font-weight:800;font-size:27px;letter-spacing:-.03em;text-transform:none;margin:0;line-height:1}
.bi-sp .mast .sub{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--dim);margin-top:6px}
.bi-sp .mast .org{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--dim);text-align:right;white-space:nowrap;line-height:1.7}
.bi-sp nav{display:flex;gap:0;border-bottom:1px solid var(--rule);margin-bottom:16px;flex-wrap:wrap}
.bi-sp nav button{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  background:transparent;border:none;border-bottom:2px solid transparent;color:var(--dim);
  padding:10px 16px 8px;cursor:pointer;border-radius:0;}
.bi-sp nav button:hover{color:var(--ink)}
.bi-sp nav button.on{color:var(--ink);border-bottom-color:var(--teal)}
.bi-sp .panel{display:none}
.bi-sp .panel.on{display:block}
.bi-sp .field{display:flex;flex-direction:column;gap:4px}
.bi-sp .field label, .bi-sp .lbl{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.bi-sp input[type=number], .bi-sp input[type=text], .bi-sp input[type=date], .bi-sp select{font-family:var(--mono);font-size:13px;background:var(--card);color:var(--ink);
  border:1px solid var(--rule);border-radius:0;padding:6px 8px;}
.bi-sp input[type=number]{width:82px;text-align:right}
.bi-sp input[type=text]{width:150px}
.bi-sp select{padding:6px 5px}
.bi-sp input:focus, .bi-sp select:focus, .bi-sp button:focus-visible{outline:2px solid var(--teal);outline-offset:1px}
.bi-sp input[type=checkbox]{accent-color:var(--cyan);width:14px;height:14px;cursor:pointer}
.bi-sp input::placeholder{color:#B4B0A8}
.bi-sp .btn{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  background:transparent;border:1px solid var(--rule);color:var(--dim);padding:7px 13px;cursor:pointer;border-radius:0}
.bi-sp .btn:hover{border-color:var(--ink);color:var(--ink);background:var(--card)}
.bi-sp .btn.solid{background:var(--ink);border-color:var(--ink);color:var(--card)}
.bi-sp .btn.solid:hover{background:#000;border-color:#000;color:var(--paper)}
.bi-sp .btn.mini{font-family:var(--mono);font-size:10px;letter-spacing:.06em;padding:3px 7px;text-transform:uppercase;font-weight:400}
.bi-sp .btn.danger:hover{border-color:var(--flag);color:var(--flag)}
.bi-sp .row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.bi-sp h2.sec{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  margin:0 0 9px;padding-bottom:5px;border-bottom:1px solid var(--ink)}
.bi-sp h2.sec span{float:right;font-family:var(--mono);font-size:9px;letter-spacing:.09em;color:var(--dim);font-weight:400;text-transform:none}
.bi-sp h3.sub{font-family:var(--mono);font-weight:500;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:18px 0 7px}
.bi-sp .tag{display:inline-block;font-family:var(--mono);font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;
  padding:1px 4px;margin-left:6px;vertical-align:1px;color:#fff}
.bi-sp .tag.measured{background:var(--teal)}
.bi-sp .tag.spec{background:var(--steel)}
.bi-sp .tag.est{background:var(--flag)}
.bi-sp .tag.plain{background:transparent;color:var(--dim);border:1px solid var(--rule)}
.bi-sp .legend{font-family:var(--mono);font-size:9.5px;color:var(--dim);letter-spacing:.03em;margin-top:8px;line-height:1.8}
.bi-sp .inputbar{background:var(--card);border-left:4px solid var(--ink);padding:13px 15px;margin-bottom:16px}
.bi-sp .inputbar .row{gap:14px}
.bi-sp .inputbar input[type=number]{font-size:19px;width:96px;padding:7px 9px}
.bi-sp .inputbar select{font-size:15px;padding:8px 6px}
.bi-sp .inputbar .field label{font-size:9.5px}
.bi-sp .presets{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;align-items:center}
.bi-sp .presets .lbl{margin-right:4px}
.bi-sp .presets button{font-family:var(--mono);font-size:10px;background:transparent;border:1px solid var(--rule);
  color:var(--dim);padding:2px 6px;cursor:pointer;border-radius:0}
.bi-sp .presets button:hover{border-color:var(--ink);color:var(--ink)}
.bi-sp .result{border:2px solid var(--ink);background:var(--card);margin-bottom:14px}
.bi-sp .result .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.bi-sp .result .cell{padding:12px 14px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.bi-sp .result .cell:nth-child(4n){border-right:none}
.bi-sp .result .k{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.bi-sp .result .v{font-family:var(--cond);font-weight:700;font-size:21px;letter-spacing:-.025em;margin-top:3px;line-height:1.15}
.bi-sp .result .v small{font-family:var(--mono);font-weight:400;font-size:11px;color:var(--dim);letter-spacing:.05em;display:block;margin-top:2px}
.bi-sp .result .cell.hero{background:var(--ink);color:var(--card);border-right-color:#2A2E31}
.bi-sp .result .cell.hero .k{color:#9AA0A4}
.bi-sp .result .cell.hero .v{font-family:var(--cond);font-weight:800;font-size:30px;letter-spacing:-.035em}
.bi-sp .result .cell.hero .v small{color:#9AA0A4}
.bi-sp .result .cell.wide{grid-column:span 2}
.bi-sp .alerts{margin-bottom:14px}
.bi-sp .alert{display:flex;gap:9px;align-items:baseline;font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;
  padding:7px 11px;border-left:4px solid var(--dim);background:var(--card);margin-bottom:4px}
.bi-sp .alert .code{font-family:var(--mono);font-weight:600;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.bi-sp .alert.err{border-left-color:var(--flag);color:var(--flag)}
.bi-sp .alert.warn{border-left-color:var(--warn);color:var(--warn)}
.bi-sp .alert.ok{border-left-color:var(--ok);color:var(--ok)}
.bi-sp .plan{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:9px;margin-top:4px}
.bi-sp .pkg{border:1px solid var(--rule);background:var(--card);padding:10px 12px}
.bi-sp .pkg .n{font-family:var(--cond);font-weight:700;font-size:14px;letter-spacing:-.015em;text-transform:none;
  padding-bottom:5px;border-bottom:1px solid var(--hair);margin-bottom:7px}
.bi-sp .pkg .line{font-family:var(--mono);font-size:11px;line-height:1.75}
.bi-sp .pkg .line b{font-weight:400;color:var(--dim)}
.bi-sp .pkg .wt{font-family:var(--mono);font-size:16px;margin-top:6px;padding-top:6px;border-top:1px solid var(--hair)}
.bi-sp .pkg.custom{border-style:dashed}
.bi-sp details.dis{border-top:1px solid var(--rule);margin-top:0}
.bi-sp details.dis>summary{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--dim);cursor:pointer;padding:10px 0;list-style:none}
.bi-sp details.dis>summary::-webkit-details-marker{display:none}
.bi-sp details.dis>summary::before{content:"+ ";color:var(--teal);font-family:var(--mono)}
.bi-sp details.dis[open]>summary::before{content:"\2212 "}
.bi-sp details.dis>summary:hover{color:var(--ink)}
.bi-sp details.dis .body{padding:2px 0 18px}
.bi-sp table{width:100%;border-collapse:collapse}
.bi-sp thead th{font-family:var(--mono);font-size:8.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--dim);
  font-weight:400;text-align:left;padding:0 6px 5px 0;border-bottom:1px solid var(--rule);white-space:nowrap}
.bi-sp thead th.num{text-align:right;padding-right:0}
.bi-sp tbody td{padding:5px 6px 5px 0;border-bottom:1px solid var(--hair);vertical-align:middle;font-size:12.5px}
.bi-sp tbody td.num{text-align:right;font-family:var(--mono);padding-right:0;white-space:nowrap}
.bi-sp tbody tr.off{opacity:.35}
.bi-sp tbody tr.pick td{background:rgba(10,143,168,.10)}
.bi-sp tbody tr.bad td{color:var(--flag)}
.bi-sp tfoot td{padding:8px 6px 0 0;border-top:2px solid var(--ink);font-family:var(--mono);font-size:12.5px}
.bi-sp tfoot td.lbl2{font-family:var(--mono);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:11px}
.bi-sp tfoot td.num{text-align:right;padding-right:0}
.bi-sp table.cfg input[type=number]{width:62px;font-size:11.5px;padding:3px 5px}
.bi-sp table.cfg input[type=text]{width:100%;min-width:80px;font-size:11.5px;padding:3px 5px}
.bi-sp table.cfg select{font-size:11.5px;padding:3px 4px}
.bi-sp table.cfg td{padding:3px 5px 3px 0}
.bi-sp .swatch{width:9px;height:20px;display:inline-block;vertical-align:middle;margin-right:8px;border:1px solid rgba(16,19,21,.35)}
.bi-sp .lname{font-family:var(--cond);font-weight:700;font-size:13.5px;letter-spacing:-.015em}
.bi-sp .lspec{font-family:var(--mono);font-size:9.5px;color:var(--dim);margin-top:1px}
.bi-sp .cols2{display:grid;grid-template-columns:1fr 320px;gap:26px;align-items:start}
.bi-sp .cols2b{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
.bi-sp .xshead{display:flex;justify-content:space-between;font-family:var(--mono);font-size:8.5px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--dim);margin-bottom:5px}
.bi-sp .xscap{font-family:var(--mono);font-size:9px;color:var(--dim);margin-top:6px;line-height:1.5}
.bi-sp .item{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;background:var(--card);padding:9px 11px;
  border-left:3px solid var(--rule);margin-bottom:6px}
.bi-sp .item .idx{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--dim);align-self:center;min-width:52px}
.bi-sp .item select{max-width:190px}
.bi-sp .calib{display:flex;flex-wrap:wrap;align-items:flex-end;gap:9px;padding:9px 11px;background:var(--card);
  border-left:3px solid var(--teal);margin-top:10px}
.bi-sp .calib .lab{font-family:var(--mono);font-weight:500;font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--dim);flex:1 1 100%;margin-bottom:-3px}
.bi-sp .calib input[type=number]{width:58px;font-size:12px;padding:4px 6px}
.bi-sp .calib .out{font-family:var(--mono);font-size:12px}
.bi-sp .note{font-family:var(--mono);font-size:10px;color:var(--dim);line-height:1.7;margin-top:8px;max-width:82ch}
.bi-sp .note.alert{color:var(--flag)}
.bi-sp .bar{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;padding-top:13px;border-top:1px solid var(--rule)}
.bi-sp .status{font-family:var(--mono);font-size:10px;color:var(--dim);padding:7px 0}
.bi-sp .badstore{border-left:4px solid var(--warn);background:var(--card);padding:8px 11px;font-family:var(--mono);
  font-size:10.5px;color:var(--warn);margin-bottom:12px;line-height:1.6}
.bi-sp pre.log{font-family:var(--mono);font-size:10.5px;background:var(--card);border:1px solid var(--rule);
  padding:10px 12px;max-height:240px;overflow:auto;white-space:pre-wrap;margin:10px 0 0;line-height:1.65}
@media (max-width:980px){.bi-sp .cols2, .bi-sp .cols2b{grid-template-columns:1fr}
.bi-sp .result .grid{grid-template-columns:repeat(2,1fr)}
.bi-sp .result .cell:nth-child(4n){border-right:1px solid var(--hair)}
.bi-sp .result .cell:nth-child(2n){border-right:none}
}
@media (max-width:620px){.bi-sp .result .grid{grid-template-columns:1fr}
.bi-sp .result .cell{border-right:none !important}
.bi-sp .result .cell.wide{grid-column:span 1}
}
.bi-sp #quoteSheet, .bi-sp #worksheet{display:none}
@page{ size:letter portrait; margin:0.5in; }
@media print{.bi-sp, .bi-sp *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
.bi-sp, .bi-sp{background:#fff}
.bi-sp{font-size:9.5px}
.bi-sp .wrap{max-width:none;padding:0}
.bi-sp nav, .bi-sp .presets, .bi-sp .bar, .bi-sp .btn, .bi-sp button{display:none !important}
.bi-sp input, .bi-sp select{background:transparent;border:none;border-bottom:1px solid var(--rule);padding:1px 0;
    font-size:10px;-webkit-appearance:none;-moz-appearance:textfield;appearance:none}
.bi-sp input[type=number]::-webkit-outer-spin-button, .bi-sp input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.bi-sp input::placeholder{color:transparent}
.bi-sp details.dis{break-inside:avoid}
.bi-sp details.dis>summary{display:none}
.bi-sp details.dis .body{padding-top:8px}
.bi-sp .result .cell.hero{background:#fff;color:var(--ink);border:1px solid var(--ink)}
.bi-sp .result .cell.hero .k, .bi-sp .result .cell.hero .v small{color:var(--dim)}
.bi-sp.pm-quote .app, .bi-sp.pm-quote #worksheet{display:none !important}
.bi-sp.pm-quote #quoteSheet{display:block !important}
.bi-sp.pm-sheet .app, .bi-sp.pm-sheet #quoteSheet{display:none !important}
.bi-sp.pm-sheet #worksheet{display:block !important}
.bi-sp.pm-calc  #quoteSheet, .bi-sp.pm-calc #worksheet{display:none !important}
.bi-sp.pm-calc  .panel{display:none !important}
.bi-sp.pm-calc  .panel.on{display:block !important}
}
.bi-sp .rep{font-family:var(--sans);color:var(--ink)}
.bi-sp .rep h1{font-family:var(--cond);font-weight:800;font-size:22px;letter-spacing:-.03em;text-transform:none;margin:0;line-height:1}
.bi-sp .rep .rsub{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-top:5px}
.bi-sp .rep .rhead{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid var(--ink);padding-bottom:7px;margin-bottom:12px}
.bi-sp .rep .meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.bi-sp .rep .meta .k, .bi-sp .rep .blk .k{font-family:var(--mono);font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.bi-sp .rep .meta .v{font-family:var(--mono);font-size:12px;margin-top:2px;border-bottom:1px solid var(--hair);padding-bottom:3px}
.bi-sp .rep .blk{margin-bottom:12px}
.bi-sp .rep .blk .v{font-family:var(--cond);font-weight:700;font-size:16px;letter-spacing:-.02em;margin-top:2px}
.bi-sp .rep .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.bi-sp .rep table{margin-bottom:12px}
.bi-sp .rep table th{font-size:8px}
.bi-sp .rep table td{font-size:10.5px;padding:4px 6px 4px 0}
.bi-sp .rep .totrow td{border-top:2px solid var(--ink);font-family:var(--mono);font-size:12.5px;padding-top:7px}
.bi-sp .rep .fine{font-family:var(--mono);font-size:8px;line-height:1.6;color:var(--dim);margin-top:14px;
  border-top:1px solid var(--rule);padding-top:8px}
.bi-sp .rep .sign{display:flex;gap:30px;margin-top:22px}
.bi-sp .rep .sign div{flex:1;font-family:var(--mono);font-size:8px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--dim);border-top:1px solid var(--ink);padding-top:4px;margin-top:26px}
.bi-sp .rep .wsrow td{height:20px}
.bi-sp .rep .fill{border-bottom:1px solid var(--rule);min-width:44px;display:inline-block;height:12px}
.bi-sp{--font-display:var(--font-sans);--font-body:var(--font-sans);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.bi-sp .mast h1{font-size:18px}
.bi-sp .mast .org{display:none}
/* markup desk page bits */
.bi-md-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.bi-md-bar .bi-label { margin: 0; }
.bi-md-bar .bi-selectwrap { min-width: 200px; }
.bi-md-open { padding: 26px 18px; }
/* hosted tools: print only the tool's own sheet */
@media print { body.bi-hosted-print > *:not(.bi-print-host) { display: none !important; } .bi-print-host { border: 0 !important; border-radius: 0 !important; overflow: visible !important; } }
