/* ============================================================================
   Bespoke Vision — Design System (standalone build)
   Vertaald uit het Claude Design-project "Bespoke Vision Design System".
   Tokens: navy (basis), brass (accent), ivory (licht) + status.
   Fonts: Cormorant Garamond (display), Hanken Grotesk (UI), IBM Plex Mono (data).
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Hanken+Grotesk:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/* ---- Color tokens -------------------------------------------------------- */
:root {
  --navy-950:#080d18; --navy-900:#0f1729; --navy-800:#16203a; --navy-700:#1f2c4d;
  --navy-600:#294066; --navy-500:#375280; --navy-400:#566e97; --navy-300:#8393b3;
  --navy-200:#b6c0d3; --navy-100:#dbe0ea; --navy-50:#eef1f6;

  --brass-900:#6a5326; --brass-800:#866633; --brass-700:#a8843f; --brass-600:#b8955a;
  --brass-500:#c2a36b; --brass-400:#cfb583; --brass-300:#ddc9a1; --brass-200:#e9dcc2;
  --brass-100:#f3ecdc; --brass-50:#faf6ee;

  --ivory-50:#ffffff; --ivory-100:#faf8f2; --ivory-200:#f4efe4; --ivory-300:#ece4d4; --ivory-400:#ddd2bb;

  --stone-900:#2b2a26; --stone-700:#56534c; --stone-500:#837e73; --stone-400:#a39d8f;
  --stone-300:#c7c1b3; --stone-200:#e3ddd0; --stone-100:#efeadd;

  --success-700:#2f5e44; --success-600:#3f7d5a; --success-500:#5a9576; --success-100:#dcebe2; --success-50:#eef5f0;
  --danger-700:#7f2f2f; --danger-600:#a23f3f; --danger-500:#bb5f5f; --danger-100:#f2dcdc; --danger-50:#f9eded;
  --warning-700:#8a6522; --warning-600:#b0832e; --warning-500:#c79f54; --warning-100:#f4e7c9; --warning-50:#fbf4e3;

  /* semantic — light */
  --bg-page:var(--ivory-100); --bg-surface:var(--ivory-50); --bg-sunken:var(--ivory-200);
  --bg-raised:var(--ivory-50); --bg-inverse:var(--navy-900); --bg-hover:var(--ivory-200);
  --bg-active:var(--ivory-300); --bg-accent-soft:var(--brass-100);

  --text-primary:var(--navy-900); --text-secondary:var(--navy-700); --text-muted:var(--stone-500);
  --text-inverse:var(--ivory-100); --text-accent:var(--brass-700); --text-on-accent:var(--navy-900);

  --border-subtle:var(--stone-200); --border-default:var(--stone-300); --border-strong:var(--stone-400);
  --border-accent:var(--brass-500); --border-inverse:var(--navy-700);

  --accent:var(--brass-500); --accent-hover:var(--brass-600); --accent-active:var(--brass-700);
  --accent-contrast:var(--navy-900); --focus-ring:var(--brass-600);

  --success:var(--success-600); --success-bg:var(--success-50); --success-border:var(--success-100);
  --danger:var(--danger-600); --danger-bg:var(--danger-50); --danger-border:var(--danger-100);
  --warning:var(--warning-600); --warning-bg:var(--warning-50); --warning-border:var(--warning-100);

  /* typography */
  --font-display:'Cormorant Garamond','Times New Roman',Georgia,serif;
  --font-sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-extrabold:800;
  --text-display-2xl:5rem; --text-display-xl:3.75rem; --text-display-lg:3rem;
  --text-display-md:2.25rem; --text-display-sm:1.75rem;
  --text-xl:1.375rem; --text-lg:1.125rem; --text-base:1rem; --text-sm:.875rem; --text-xs:.75rem; --text-2xs:.6875rem;
  --leading-tight:1.08; --leading-snug:1.28; --leading-normal:1.5; --leading-relaxed:1.65;
  --tracking-tighter:-.02em; --tracking-tight:-.01em; --tracking-normal:0; --tracking-wide:.02em; --tracking-overline:.16em;

  /* spacing / radius / shadow / layout */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.25rem;
  --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem; --space-12:3rem; --space-16:4rem; --space-20:5rem; --space-24:6rem;
  --radius-xs:3px; --radius-sm:5px; --radius-md:8px; --radius-lg:12px; --radius-xl:16px; --radius-pill:999px;
  --shadow-xs:0 1px 2px rgba(15,23,41,.06);
  --shadow-sm:0 1px 3px rgba(15,23,41,.08),0 1px 2px rgba(15,23,41,.04);
  --shadow-md:0 4px 12px rgba(15,23,41,.08),0 1px 3px rgba(15,23,41,.05);
  --shadow-lg:0 12px 28px rgba(15,23,41,.12),0 4px 8px rgba(15,23,41,.06);
  --shadow-xl:0 24px 56px rgba(15,23,41,.16),0 8px 16px rgba(15,23,41,.08);
  --ring-focus:0 0 0 3px rgba(168,132,63,.32);
  --sidebar-w:260px; --topbar-h:64px;
  --container-lg:1080px; --container-xl:1280px;
  --ease-standard:cubic-bezier(.4,0,.2,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --duration-fast:120ms; --duration-base:200ms;
}

/* semantic — dark (CRM sidebar / stages) */
[data-theme="dark"] {
  --bg-page:var(--navy-950); --bg-surface:var(--navy-900); --bg-sunken:var(--navy-800);
  --bg-raised:var(--navy-800); --bg-inverse:var(--ivory-100); --bg-hover:var(--navy-800);
  --bg-active:var(--navy-700); --bg-accent-soft:rgba(194,163,107,.14);
  --text-primary:var(--ivory-100); --text-secondary:var(--navy-200); --text-muted:var(--navy-300);
  --text-inverse:var(--navy-900); --text-accent:var(--brass-400); --text-on-accent:var(--navy-900);
  --border-subtle:var(--navy-800); --border-default:var(--navy-700); --border-strong:var(--navy-600);
  --border-accent:var(--brass-600); --border-inverse:var(--ivory-200);
  --accent:var(--brass-500); --accent-hover:var(--brass-400); --accent-active:var(--brass-300); --focus-ring:var(--brass-400);
}

/* ---- Base ---------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);
  color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-semibold);line-height:var(--leading-tight);
  letter-spacing:var(--tracking-tight);color:var(--text-primary);margin:0;}
h5,h6{font-family:var(--font-sans);font-weight:var(--fw-semibold);margin:0;}
p{margin:0;}
a{color:var(--text-accent);text-decoration:none;transition:color var(--duration-fast) var(--ease-standard);}
a:hover{color:var(--accent-active);}
img{max-width:100%;display:block;}
::selection{background:var(--brass-200);color:var(--navy-900);}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;}

.bv-overline{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:var(--fw-semibold);
  letter-spacing:var(--tracking-overline);text-transform:uppercase;color:var(--text-accent);}
.bv-tnum{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}
.bv-mono{font-family:var(--font-mono);}
.bv-serif{font-family:var(--font-display);}

/* ---- Buttons ------------------------------------------------------------- */
.bv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;
  font-family:var(--font-sans);font-weight:var(--fw-semibold);font-size:var(--text-sm);line-height:1;
  padding:10px 16px;border-radius:var(--radius-sm);border:1px solid transparent;
  transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast),border-color var(--duration-fast);
  white-space:nowrap;}
.bv-btn svg{width:16px;height:16px;}
.bv-btn--sm{padding:7px 12px;font-size:var(--text-xs);}
.bv-btn--lg{padding:14px 22px;font-size:var(--text-base);}
.bv-btn--block{width:100%;}
.bv-btn--primary{background:var(--navy-900);color:var(--ivory-100);}
.bv-btn--primary:hover{background:var(--navy-800);color:var(--ivory-100);}
.bv-btn--accent{background:var(--accent);color:var(--accent-contrast);}
.bv-btn--accent:hover{background:var(--accent-hover);color:var(--accent-contrast);}
.bv-btn--secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-default);}
.bv-btn--secondary:hover{background:var(--bg-hover);}
.bv-btn--ghost{background:transparent;color:var(--text-secondary);}
.bv-btn--ghost:hover{background:var(--bg-hover);color:var(--text-primary);}

.bv-row-actions{display:inline-flex;align-items:center;gap:4px;}
.bv-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-secondary);
  cursor:pointer;transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast);}
.bv-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary);}
.bv-icon-btn--danger:hover{background:var(--danger-bg);color:var(--danger-700);}

/* ---- Cards --------------------------------------------------------------- */
.bv-card{background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);overflow:hidden;}
.bv-card--elevated{box-shadow:var(--shadow-md);border-color:transparent;}
.bv-card--flat{background:var(--bg-sunken);border-color:transparent;}
.bv-card__header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle);}
.bv-card__body{padding:var(--space-6);}
.bv-card__body--flush{padding:0;}
.bv-card__footer{padding:var(--space-5) var(--space-6);border-top:1px solid var(--border-subtle);background:var(--bg-sunken);}

/* ---- Stat cards ---------------------------------------------------------- */
.bv-stat{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);}
.bv-stat__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);}
.bv-stat__label{font-size:var(--text-sm);color:var(--text-muted);}
.bv-stat__icon{width:34px;height:34px;border-radius:var(--radius-md);background:var(--bg-accent-soft);color:var(--text-accent);
  display:flex;align-items:center;justify-content:center;}
.bv-stat__icon svg{width:18px;height:18px;}
.bv-stat__value{font-family:var(--font-display);font-size:var(--text-display-sm);font-weight:var(--fw-semibold);line-height:1;}
.bv-stat__foot{display:flex;align-items:center;gap:8px;margin-top:var(--space-3);font-size:var(--text-xs);}
.bv-stat__delta{font-weight:var(--fw-semibold);}
.bv-stat__delta--up{color:var(--success);}
.bv-stat__delta--down{color:var(--danger);}
.bv-stat__hint{color:var(--text-muted);}

/* ---- Badges -------------------------------------------------------------- */
.bv-badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:var(--fw-semibold);
  padding:3px 10px;border-radius:var(--radius-pill);border:1px solid transparent;line-height:1.4;}
.bv-badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.bv-badge--neutral{background:var(--bg-sunken);color:var(--text-secondary);border-color:var(--border-default);}
.bv-badge--accent{background:var(--brass-100);color:var(--brass-700);border-color:var(--brass-200);}
.bv-badge--success{background:var(--success-bg);color:var(--success-700);border-color:var(--success-100);}
.bv-badge--warning{background:var(--warning-bg);color:var(--warning-700);border-color:var(--warning-100);}
.bv-badge--danger{background:var(--danger-bg);color:var(--danger-700);border-color:var(--danger-100);}

/* ---- Tables -------------------------------------------------------------- */
.bv-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);}
.bv-table thead th{text-align:left;font-size:var(--text-2xs);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-overline);
  text-transform:uppercase;color:var(--text-muted);padding:var(--space-3) var(--space-5);
  border-bottom:1px solid var(--border-default);background:var(--bg-sunken);white-space:nowrap;}
.bv-table tbody td{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle;}
.bv-table tbody tr:last-child td{border-bottom:none;}
.bv-table tbody tr.is-clickable{cursor:pointer;transition:background var(--duration-fast) var(--ease-standard);}
.bv-table tbody tr.is-clickable:hover{background:var(--bg-hover);}
.bv-table .is-right{text-align:right;}

/* ---- Avatar -------------------------------------------------------------- */
.bv-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;
  background:var(--brass-200);color:var(--brass-800);font-weight:var(--fw-semibold);font-family:var(--font-sans);}
.bv-avatar--sm{width:28px;height:28px;font-size:var(--text-2xs);}
.bv-avatar--md{width:36px;height:36px;font-size:var(--text-xs);}
.bv-avatar--ring{box-shadow:0 0 0 2px var(--bg-surface),0 0 0 3px var(--brass-400);}

/* ---- Inputs -------------------------------------------------------------- */
.bv-field{display:flex;flex-direction:column;gap:6px;}
.bv-label{font-size:var(--text-sm);font-weight:var(--fw-medium);color:var(--text-secondary);}
.bv-input{width:100%;font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-primary);
  background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);
  padding:10px 12px;transition:border-color var(--duration-fast),box-shadow var(--duration-fast);}
.bv-input::placeholder{color:var(--text-muted);}
.bv-input:focus{outline:none;border-color:var(--border-accent);box-shadow:var(--ring-focus);}
.bv-input-group{position:relative;}
.bv-input-group .bv-input{padding-left:38px;}
.bv-input-group__icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);display:flex;}
.bv-input-group__icon svg{width:16px;height:16px;}
.field-error{color:var(--danger);font-size:var(--text-xs);margin-top:2px;}

/* ---- Tabs ---------------------------------------------------------------- */
.bv-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-default);}
.bv-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;font-size:var(--text-sm);font-weight:var(--fw-semibold);
  color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px;
  transition:color var(--duration-fast),border-color var(--duration-fast);text-decoration:none;}
.bv-tab:hover{color:var(--text-secondary);}
.bv-tab.is-active{color:var(--text-primary);border-bottom-color:var(--accent);}
.bv-tab__count{font-family:var(--font-mono);font-size:var(--text-2xs);background:var(--bg-sunken);color:var(--text-muted);
  padding:1px 7px;border-radius:var(--radius-pill);}

/* ---- Breadcrumb ---------------------------------------------------------- */
.bv-breadcrumb{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--text-muted);}
.bv-breadcrumb a{color:var(--text-secondary);}
.bv-breadcrumb .sep{color:var(--border-strong);}

/* ---- Alert --------------------------------------------------------------- */
.bv-alert{display:flex;gap:12px;padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);
  border:1px solid var(--border-subtle);background:var(--bg-sunken);}
.bv-alert--info{background:var(--brass-50);border-color:var(--brass-200);}
.bv-alert__icon{color:var(--text-accent);flex-shrink:0;margin-top:2px;}
.bv-alert__icon svg{width:16px;height:16px;}
.bv-alert__title{font-weight:var(--fw-semibold);font-size:var(--text-sm);margin-bottom:2px;}
.bv-alert__body{font-size:var(--text-sm);color:var(--text-secondary);}

/* ---- CRM shell ----------------------------------------------------------- */
.bv-app{display:flex;height:100vh;overflow:hidden;background:var(--bg-page);}
.bv-sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--navy-900);display:flex;flex-direction:column;
  padding:var(--space-5) var(--space-4);}
.bv-brand{display:flex;align-items:center;gap:12px;padding:4px 10px 20px;}
.bv-monogram{width:38px;height:38px;border-radius:9px;background:var(--navy-800);color:var(--brass-400);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:21px;font-weight:600;flex-shrink:0;}
.bv-brand__name{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--ivory-100);line-height:1;}
.bv-brand__sub{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-500);margin-top:3px;}
.bv-nav{display:flex;flex-direction:column;gap:2px;}
.bv-nav__item{display:flex;align-items:center;gap:12px;padding:10px 10px;border-radius:var(--radius-md);
  font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--navy-300);text-decoration:none;
  transition:background var(--duration-fast),color var(--duration-fast);}
.bv-nav__item svg{width:18px;height:18px;}
.bv-nav__item:hover{background:rgba(255,255,255,.05);color:var(--ivory-100);}
.bv-nav__item.is-active{background:var(--brass-500);color:var(--navy-900);}
.bv-nav__badge{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-2xs);background:rgba(255,255,255,.1);
  color:var(--ivory-100);padding:1px 7px;border-radius:var(--radius-pill);}
.bv-nav__item.is-active .bv-nav__badge{background:rgba(15,23,41,.18);color:var(--navy-900);}
.bv-sidebar__user{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;background:var(--navy-800);}
.bv-sidebar__user .name{font-size:13px;font-weight:600;color:var(--ivory-100);}
.bv-sidebar__user .meta{font-size:11px;color:var(--navy-300);}
.bv-main{flex:1;display:flex;flex-direction:column;min-width:0;}
.bv-topbar{height:var(--topbar-h);flex-shrink:0;border-bottom:1px solid var(--border-default);background:var(--bg-surface);
  display:flex;align-items:center;gap:16px;padding:0 var(--space-8);}
.bv-topbar h1{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;}
.bv-iconbtn{width:36px;height:36px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--duration-fast);}
.bv-iconbtn:hover{background:var(--bg-hover);color:var(--text-primary);}
.bv-iconbtn svg{width:18px;height:18px;}
.bv-content{flex:1;overflow-y:auto;padding:var(--space-8);}
.bv-divider-v{width:1px;height:26px;background:var(--border-default);}

/* ---- View toggle (kanban/tabel) ------------------------------------------ */
.bv-view-toggle{display:flex;gap:2px;background:var(--bg-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:3px;}
.bv-view-toggle__btn{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:none;border-radius:4px;
  font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--fw-semibold);cursor:pointer;
  background:transparent;color:var(--text-muted);transition:background var(--duration-fast),color var(--duration-fast),box-shadow var(--duration-fast);}
.bv-view-toggle__btn svg{width:15px;height:15px;}
.bv-view-toggle__btn.is-active{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-xs);}

/* ---- Kanban board ---------------------------------------------------------- */
.bv-kanban{flex:1;min-height:0;display:flex;gap:var(--space-4);overflow-x:auto;overflow-y:hidden;padding-bottom:var(--space-6);align-items:stretch;}
.bv-kanban__col{width:288px;flex-shrink:0;display:flex;flex-direction:column;border-radius:var(--radius-lg);
  border:1px solid transparent;background:var(--bg-sunken);padding:12px 10px 10px;
  transition:background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard);}
.bv-kanban__col.is-over{background:var(--brass-100);border-color:var(--brass-500);}
.bv-kanban__col-head{display:flex;align-items:center;gap:8px;padding:0 4px 12px;}
.bv-kanban__dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.bv-kanban__label{font-size:var(--text-xs);font-weight:var(--fw-bold);letter-spacing:var(--tracking-wide);
  text-transform:uppercase;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bv-kanban__count{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-muted);
  background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:1px 8px;}
.bv-kanban__body{flex:1;min-height:60px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;}
.bv-kanban__empty{border:1px dashed var(--ivory-400);border-radius:var(--radius-md);padding:16px 12px;
  text-align:center;font-size:var(--text-xs);color:var(--text-muted);}
.bv-kanban-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);
  padding:12px;cursor:grab;box-shadow:var(--shadow-xs);display:flex;gap:10px;align-items:flex-start;
  text-decoration:none;color:inherit;transition:border-color var(--duration-fast),box-shadow var(--duration-fast),opacity var(--duration-fast);}
.bv-kanban-card:hover{border-color:var(--brass-400);box-shadow:var(--shadow-md);}
.bv-kanban-card.is-dragging{opacity:.35;}
.bv-kanban-card__handle{display:flex;flex-direction:column;justify-content:center;color:var(--stone-400);flex-shrink:0;margin-top:2px;}
.bv-kanban-card__handle svg{width:14px;height:14px;}
.bv-kanban-card__company{font-size:var(--text-sm);font-weight:var(--fw-semibold);line-height:1.25;color:var(--text-primary);}
.bv-kanban-card__meta{display:flex;align-items:center;gap:7px;font-size:var(--text-xs);color:var(--text-secondary);min-width:0;}
.bv-kanban-card__meta span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bv-kanban-card__foot{display:flex;align-items:center;gap:6px;padding-top:2px;}
.bv-kanban-card__source{font-size:10px;font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:uppercase;
  color:var(--text-accent);background:var(--brass-100);border:1px solid var(--brass-200);border-radius:var(--radius-pill);padding:2px 8px;}

/* ---- Layout helpers ------------------------------------------------------ */
.bv-stack{display:flex;flex-direction:column;}
.bv-row{display:flex;align-items:center;}
.bv-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);}
.bv-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);}
.bv-spacer{flex:1;}
.bv-spec-row{display:flex;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid var(--border-subtle);}
.bv-spec-row .k{font-size:var(--text-sm);color:var(--text-secondary);}
.bv-spec-row .v{font-size:var(--text-sm);font-weight:600;}
@media(max-width:900px){.bv-grid-4{grid-template-columns:repeat(2,1fr);}.bv-grid-2{grid-template-columns:1fr;}}
