/* ============================================================
   Credolis — design tokens
   Hi-fi handoff (design/README.md). These CSS custom properties
   are the single source of truth for colour, type, spacing,
   radii and shadow. Screens are built on top of these.
   ============================================================ */

:root {
    /* --- Colour: brand / primary --- */
    --bb-primary: #2b53d8;
    --bb-primary-hover: #2244bd;
    --bb-primary-tint: #eef1fe;

    /* --- Colour: neutrals / text --- */
    --bb-ink: #131722;          /* headings */
    --bb-body-strong: #242a35;
    --bb-body: #414855;
    --bb-body-2: #5b6472;
    --bb-muted: #8a92a0;
    --bb-faint: #9aa1ac;

    /* --- Colour: surfaces --- */
    --bb-surface: #ffffff;
    --bb-page-bg: #f7f8fa;
    --bb-input-bg: #fafbfc;
    --bb-toggle-track: #f1f3f7;

    /* --- Colour: borders --- */
    --bb-border: #e6e8ec;
    --bb-border-strong: #d7dae0;
    --bb-hairline: #eef0f3;
    --bb-border-dashed: #c3c9d4;

    /* --- Colour: semantic --- */
    --bb-success: #148a5b;
    --bb-success-tint: #e6f4ec;
    --bb-success-border: #c3e6d2;
    --bb-danger: #cf3d2e;
    --bb-danger-tint: #fbeceb;
    --bb-muted-tint: #eef1f5;   /* neutral pill / chip background */

    /* --- Colour: premium (gold) --- */
    --bb-gold: #b0942f;         /* accent / text */
    --bb-gold-heading: #5b5030; /* dark heading text on gold cards */
    --bb-gold-cta: #e8b73c;     /* CTA button */
    --bb-gold-card-bg: #fefcf6;
    --bb-gold-tint: #fbf4e2;    /* pill / tint bg */
    --bb-gold-border: #ecdcae;

    /* --- Colour: app sidebar (navy) --- */
    --bb-navy: #101728;
    --bb-navy-active: rgba(255, 255, 255, .09);
    --bb-navy-hover: rgba(255, 255, 255, .06);
    --bb-navy-account: rgba(255, 255, 255, .05);
    --bb-navy-muted: #8b93a5;
    --bb-navy-secondary: #a4adbf;

    /* --- Colour: logo brights (converging shards, in order) --- */
    --bb-shard-1: #2b6bff;
    --bb-shard-2: #14c8e8;
    --bb-shard-3: #12c98f;
    --bb-shard-4: #ffd23c;
    --bb-shard-5: #ffb020;
    --bb-shard-6: #ff5a3c;
    --bb-shard-7: #ff3d8b;
    --bb-shard-8: #8a5cff;

    /* --- Typography: families --- */
    --bb-font-display: "Space Grotesk", system-ui, sans-serif; /* headings, wordmark, prices */
    --bb-font-ui: "IBM Plex Sans", system-ui, sans-serif;      /* UI text and body copy */
    --bb-font-mono: "IBM Plex Mono", ui-monospace, monospace;  /* eyebrows, labels, keys, JSON */

    /* --- Typography: scale --- */
    --bb-fs-display: 50px;
    --bb-fs-h2: 30px;
    --bb-fs-h1: 22px;
    --bb-fs-card-title: 16px; /* card titles range 16–20 */
    --bb-fs-body: 16px;       /* body 15–16 */
    --bb-fs-small: 14px;      /* small 13–14 */
    --bb-fs-mono-label: 11px; /* mono label 11–12 */

    --bb-display-lh: 1.06;
    --bb-display-ls: -0.02em;

    /* --- Spacing scale (px) --- */
    --bb-space-1: 4px;
    --bb-space-2: 8px;
    --bb-space-3: 12px;
    --bb-space-4: 16px;
    --bb-space-5: 20px;
    --bb-space-6: 24px;
    --bb-space-7: 28px;
    --bb-space-8: 36px;
    --bb-space-9: 40px;
    --bb-space-10: 56px;
    --bb-space-11: 64px;

    /* --- Layout --- */
    --bb-pad-marketing: 40px; /* marketing screen side padding */
    --bb-pad-app: 36px;       /* app screen side padding */
    --bb-sidebar-w: 244px;
    --bb-results-rail-w: 312px;
    --bb-app-content-max: 760px;

    /* --- Radius --- */
    --bb-radius-control: 10px; /* buttons & inputs 9–10 */
    --bb-radius-card: 16px;    /* cards 14–16 */
    --bb-radius-card-sm: 14px;
    --bb-radius-nav-item: 9px;
    --bb-radius-pill: 24px;    /* pills 20–24 */
    --bb-radius-dropzone: 12px;

    /* --- Shadow --- */
    --bb-shadow-card: 0 4px 18px rgba(20, 24, 34, .05);
    --bb-shadow-elevated: 0 8px 30px rgba(20, 24, 34, .09); /* upload card */
    --bb-shadow-container: 0 12px 40px rgba(20, 24, 34, .12);
    --bb-shadow-primary-btn: 0 2px 8px rgba(43, 83, 216, .35);
}

/* ============================================================
   Bootstrap retheme
   Map Bootstrap 5.3's runtime --bs-* variables onto our tokens so
   standard Bootstrap classes (.btn, .card, .navbar, grid, modal…)
   render on-brand with no extra CSS. This file loads AFTER Bootstrap
   in _Layout.cshtml, so these overrides win — no Sass build needed.

   RULE FOR CONTRIBUTORS/AGENTS: prefer standard Bootstrap classes;
   they are already themed. Only add a .bb-* component (below) when
   Bootstrap has no equivalent. See DESIGN-SYSTEM.md.
   ============================================================ */

:root {
    /* Typography + body */
    --bs-body-font-family: var(--bb-font-ui);
    --bs-body-color: var(--bb-body);
    --bs-body-color-rgb: 65, 72, 85;      /* --bb-body #414855 */
    --bs-body-bg: var(--bb-page-bg);
    --bs-emphasis-color: var(--bb-ink);
    --bs-secondary-color: var(--bb-muted);

    /* Primary */
    --bs-primary: var(--bb-primary);
    --bs-primary-rgb: 43, 83, 216;        /* #2b53d8 */

    /* Links */
    --bs-link-color: var(--bb-primary);
    --bs-link-color-rgb: 43, 83, 216;
    --bs-link-hover-color: var(--bb-primary-hover);
    --bs-link-hover-color-rgb: 34, 68, 189; /* #2244bd */

    /* Borders + radii */
    --bs-border-color: var(--bb-border);
    --bs-border-radius: var(--bb-radius-control);
    --bs-border-radius-sm: 8px;
    --bs-border-radius-lg: var(--bb-radius-card-sm);
    --bs-border-radius-xl: var(--bb-radius-card);
    --bs-border-radius-pill: var(--bb-radius-pill);

    /* Semantic */
    --bs-success: var(--bb-success);
    --bs-success-rgb: 20, 138, 91;        /* #148a5b */
    --bs-danger: var(--bb-danger);
    --bs-danger-rgb: 207, 61, 46;         /* #cf3d2e */
}

/* Headings use the display face, ink colour and tight tracking. */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--bb-font-display);
    color: var(--bb-ink);
    letter-spacing: -0.01em;
}

/* Primary button — brand indigo + hover + the primary-button shadow. */
.btn-primary {
    --bs-btn-bg: var(--bb-primary);
    --bs-btn-border-color: var(--bb-primary);
    --bs-btn-hover-bg: var(--bb-primary-hover);
    --bs-btn-hover-border-color: var(--bb-primary-hover);
    --bs-btn-active-bg: var(--bb-primary-hover);
    --bs-btn-active-border-color: var(--bb-primary-hover);
    --bs-btn-box-shadow: var(--bb-shadow-primary-btn);
    box-shadow: var(--bb-shadow-primary-btn);
}

/* Cards — surface, hairline border, card radius and shadow. */
.card {
    --bs-card-bg: var(--bb-surface);
    --bs-card-border-color: var(--bb-border);
    --bs-card-border-radius: var(--bb-radius-card);
    --bs-card-inner-border-radius: calc(var(--bb-radius-card) - 1px);
    box-shadow: var(--bb-shadow-card);
}

/* Form controls — input surface + border, control radius. */
.form-control,
.form-select {
    --bs-border-radius: var(--bb-radius-control);
    background-color: var(--bb-input-bg);
    border-color: var(--bb-border);
}
.form-control:focus,
.form-select:focus {
    border-color: var(--bb-primary);
    box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), .15);
}

/* ============================================================
   Utilities Bootstrap has no equivalent for
   ============================================================ */

/* Monospace text (verification keys, JSON, hints). */
.font-mono { font-family: var(--bb-font-mono); }

/* Mono uppercase eyebrow, e.g. "SUPPORTS OPEN BADGES 2.0 & 3.0". */
.text-eyebrow {
    font-family: var(--bb-font-mono);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: var(--bb-fs-mono-label);
    font-weight: 500;
    color: var(--bb-primary);
}

/* ============================================================
   Bespoke .bb-* components
   Added here as screens introduce them (navy sidebar, segmented
   toggle, dropzone, verdict pill, premium-locked card, …).
   Document each new class in DESIGN-SYSTEM.md.
   ============================================================ */

/* --- Layout container: centred, marketing side padding, caps content width --- */
.bb-container {
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: var(--bb-pad-marketing);
}

/* --- Marketing chrome (top-nav + footer) --- */
.bb-topnav {
    height: 68px;
    background: var(--bb-surface);
    border-bottom: 1px solid var(--bb-border);
}
.bb-brand {
    font-family: var(--bb-font-display);
    font-weight: 700;
    font-size: 18px;
    letter-spacing: -0.01em;
    color: var(--bb-ink);
}
/* Stacks the wordmark over its strapline next to the logo mark. */
.bb-brand-lockup {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    line-height: 1.1;
}
/* Strapline on light chrome (marketing top-nav). */
.bb-brand-tag {
    font-weight: 500;
    font-size: 11px;
    line-height: 1.2;
    color: var(--bb-muted);
    margin-top: 2px;
    white-space: nowrap;
}
.bb-topnav__link {
    font-weight: 500;
    font-size: 15px;
    color: #4a515e;
    text-decoration: none;
}
.bb-topnav__link:hover { color: var(--bb-ink); }
.bb-topnav__signin {
    font-weight: 600;
    font-size: 15px;
    color: var(--bb-primary);
}
.bb-footer {
    padding: 28px 0;
    background: var(--bb-surface);
    border-top: 1px solid var(--bb-border);
}

/* --- Buttons beyond .btn-primary --- */
.bb-btn-outline {
    font-weight: 600;
    color: var(--bb-body-strong);
    background: var(--bb-surface);
    border: 1px solid var(--bb-border-strong);
}
.bb-btn-outline:hover { background: var(--bb-page-bg); color: var(--bb-ink); }
.bb-btn-gold {
    font-weight: 600;
    color: var(--bb-ink);
    background: var(--bb-gold-cta);
    border: none;
}
.bb-btn-gold:hover { color: var(--bb-ink); filter: brightness(0.96); }

/* --- Segmented toggle (Badge file / URL) --- */
.bb-segmented {
    display: flex;
    background: var(--bb-toggle-track);
    border-radius: var(--bb-radius-control);
    padding: 4px;
}
.bb-segmented__option {
    flex: 1;
    border: 0;
    background: transparent;
    text-align: center;
    font-weight: 600;
    font-size: 14px;
    color: #7c8493;
    padding: 9px 0;
    border-radius: 7px;
    cursor: pointer;
}
.bb-segmented__option.is-active {
    background: var(--bb-surface);
    color: var(--bb-ink);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .06);
}

/* --- Upload dropzone --- */
.bb-dropzone {
    border: 1.5px dashed var(--bb-border-dashed);
    border-radius: var(--bb-radius-dropzone);
    background: var(--bb-input-bg);
    padding: 32px 20px;
    text-align: center;
    cursor: pointer;
}
.bb-dropzone.is-dragover {
    border-color: var(--bb-primary);
    background: var(--bb-primary-tint);
}
.bb-dropzone--lg { padding: 40px 20px; }
.bb-dropzone__browse { color: var(--bb-primary); font-weight: 500; }
.bb-dropzone__hint {
    font-family: var(--bb-font-mono);
    font-size: 12px;
    color: var(--bb-faint);
}
/* Selected state: solid primary edge + tint so a picked file is unmistakable. */
.bb-dropzone.has-file {
    border-style: solid;
    border-color: var(--bb-primary);
    background: var(--bb-primary-tint);
}

/* Selected-file confirmation card (thumbnail / format glyph + name + size + remove). */
.bb-file-selected {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--bb-border);
    border-radius: var(--bb-radius-card-sm);
    background: var(--bb-surface);
}
.bb-file-selected.d-none { display: none; }
.bb-file-selected__thumb {
    width: 48px;
    height: 48px;
    flex: none;
    object-fit: contain;
    border-radius: 8px;
    background: var(--bb-input-bg);
}
.bb-file-selected__glyph {
    width: 48px;
    height: 48px;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--bb-primary-tint);
    color: var(--bb-primary);
    font-family: var(--bb-font-mono);
    font-weight: 600;
    font-size: 13px;
}
.bb-file-selected__name { font-weight: 600; color: var(--bb-body-strong); }
.bb-file-selected__meta { font-family: var(--bb-font-mono); font-size: 12px; color: var(--bb-muted); }
.bb-file-selected__clear {
    flex: none;
    border: none;
    background: transparent;
    color: var(--bb-muted);
    font-size: 15px;
    line-height: 1;
    padding: 6px;
    cursor: pointer;
    border-radius: var(--bb-radius-control);
}
.bb-file-selected__clear:hover { color: var(--bb-danger); background: var(--bb-danger-tint); }

/* --- Headings / hero --- */
.bb-display {
    font-family: var(--bb-font-display);
    font-weight: 700;
    font-size: var(--bb-fs-display);
    line-height: var(--bb-display-lh);
    letter-spacing: var(--bb-display-ls);
    color: var(--bb-ink);
}
.bb-h2 {
    font-family: var(--bb-font-display);
    font-size: var(--bb-fs-h2);
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--bb-ink);
}
.bb-card-title {
    font-family: var(--bb-font-display);
    font-weight: 600;
    font-size: 18px;
    color: var(--bb-ink);
}

/* --- "How it works" step card --- */
.bb-step-card {
    height: 100%;
    background: var(--bb-page-bg);
    border: 1px solid var(--bb-border);
    border-radius: var(--bb-radius-card-sm);
    padding: 26px;
}
.bb-step-num {
    width: 40px;
    height: 40px;
    border-radius: var(--bb-radius-control);
    background: var(--bb-primary-tint);
    color: var(--bb-primary);
    font-family: var(--bb-font-mono);
    font-weight: 600;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* --- Pricing cards --- */
.bb-price-card {
    height: 100%;
    background: var(--bb-surface);
    border: 1px solid var(--bb-border);
    border-radius: var(--bb-radius-card);
    padding: 28px;
}
.bb-price-card--pro {
    position: relative;
    background: var(--bb-ink);
    border: 0;
    box-shadow: 0 12px 34px rgba(20, 24, 34, .28);
}
.bb-price {
    font-family: var(--bb-font-display);
    font-weight: 700;
    font-size: 34px;
    color: var(--bb-ink);
}
.bb-price-card--pro .bb-price { color: #fff; }
.bb-plan-label {
    font-family: var(--bb-font-mono);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: .06em;
    color: var(--bb-muted);
}
.bb-feature {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 15px;
    color: var(--bb-body);
}
.bb-badge-recommended {
    position: absolute;
    top: 20px;
    right: 20px;
    font-family: var(--bb-font-mono);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: .05em;
    color: var(--bb-ink);
    background: var(--bb-gold-cta);
    padding: 4px 9px;
    border-radius: var(--bb-radius-pill);
}

/* --- Trust strip placeholder logo (replace with real partner logos) --- */
.bb-trust-logo {
    width: 110px;
    height: 26px;
    border-radius: 6px;
    background: repeating-linear-gradient(45deg, #dfe3ea, #dfe3ea 5px, #e9edf2 5px, #e9edf2 10px);
}

/* ============================================================
   Signed-in app shell (S2 / S3): navy sidebar + main column
   ============================================================ */
.bb-app { min-height: 100vh; }
.bb-app__main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

/* Sidebar */
.bb-sidebar {
    width: var(--bb-sidebar-w);
    flex: none;
    background: var(--bb-navy);
    display: flex;
    flex-direction: column;
    padding: 22px 16px;
    position: sticky;
    top: 0;
    align-self: flex-start;
    height: 100vh;
}
.bb-sidebar__brand {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 8px 24px;
}
.bb-sidebar__brand-text {
    font-family: var(--bb-font-display);
    font-weight: 700;
    font-size: 17px;
    color: #fff;
}
/* Strapline on the navy sidebar; wraps within the 244px rail. */
.bb-sidebar__brand-tag {
    font-weight: 500;
    font-size: 11px;
    line-height: 1.25;
    color: var(--bb-navy-muted);
    margin-top: 2px;
}
.bb-nav-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 12px;
    margin-top: 4px;
    border-radius: var(--bb-radius-nav-item);
    color: var(--bb-navy-muted);
    font-weight: 500;
    font-size: 15px;
    text-decoration: none;
}
.bb-nav-item:hover {
    background: var(--bb-navy-hover);
    color: #fff;
}
.bb-nav-item.is-active {
    background: var(--bb-navy-active);
    color: #fff;
    font-weight: 600;
}

/* Account block */
.bb-account {
    background: var(--bb-navy-account);
    border-radius: 12px;
    padding: 14px;
}
.bb-avatar {
    width: 36px;
    height: 36px;
    flex: none;
    border-radius: 50%;
    background: var(--bb-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px;
    color: #fff;
}

/* Top bar + body */
.bb-appbar {
    height: 68px;
    flex: none;
    background: var(--bb-surface);
    border-bottom: 1px solid var(--bb-border);
    padding: 0 var(--bb-pad-app);
}
.bb-appbar__title {
    margin: 0;
    font-family: var(--bb-font-display);
    font-weight: 600;
    font-size: var(--bb-fs-h1);
    color: var(--bb-ink);
}
.bb-app__body { padding: var(--bb-pad-app); }

/* --- Result / verdict pills (S2 table, S3 verdict) --- */
.bb-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 600;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: var(--bb-radius-pill);
    white-space: nowrap;
}
.bb-pill--valid { color: var(--bb-success); background: var(--bb-success-tint); }
.bb-pill--invalid { color: var(--bb-danger); background: var(--bb-danger-tint); }
.bb-pill--warn    { color: var(--bb-gold);   background: var(--bb-gold-tint); }

/* Recipient "check if issued to" tool on the results recipient card. */
.bb-recipient-check { border-top: 1px solid var(--bb-hairline); }
.bb-pill--established { color: var(--bb-success); background: var(--bb-success-tint); }
.bb-pill--emerging    { color: var(--bb-gold);    background: var(--bb-gold-tint); }
.bb-pill--neutral     { color: var(--bb-muted);   background: var(--bb-muted-tint); }

/* Enrichment card: trust-score headline + skill chips */
.bb-score { display: flex; align-items: baseline; gap: 8px; }
.bb-score__num { font-family: var(--bb-font-mono); font-weight: 700; font-size: 34px; line-height: 1; color: var(--bb-ink); }
.bb-score__lbl { color: var(--bb-muted); font-size: 13px; }
.bb-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.bb-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: var(--bb-radius-pill); font-size: 12px; font-weight: 500; color: var(--bb-body-strong); background: var(--bb-page-bg); border: 1px solid var(--bb-border); }
.bb-chip__lvl { color: var(--bb-muted); font-weight: 400; }

/* --- Recent-validations table --- */
.bb-table-wrap {
    border: 1px solid var(--bb-border);
    border-radius: var(--bb-radius-card-sm);
    overflow: hidden;
    background: var(--bb-surface);
}
.bb-table { width: 100%; border-collapse: collapse; }
.bb-table thead th {
    font-family: var(--bb-font-mono);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--bb-muted);
    background: var(--bb-page-bg);
    padding: 12px 20px;
    border-bottom: 1px solid var(--bb-border);
    text-align: left;
}
.bb-table tbody td {
    padding: 14px 20px;
    border-bottom: 1px solid var(--bb-hairline);
    font-size: 14px;
    color: var(--bb-body-2);
    vertical-align: middle;
}
.bb-table tbody tr:last-child td { border-bottom: 0; }
.bb-table tbody tr:hover { background: var(--bb-page-bg); }

/* Striped badge thumbnail placeholder (replace with real badge image) */
.bb-thumb {
    width: 34px;
    height: 34px;
    flex: none;
    border-radius: 8px;
    background: repeating-linear-gradient(45deg, #e7eaf0, #e7eaf0 4px, #eef1f5 4px, #eef1f5 8px);
}

/* Sidebar guest block (anonymous viewing a results page) */
.bb-guest {
    background: var(--bb-navy-account);
    border-radius: 12px;
    padding: 14px;
    text-align: center;
}

/* ============================================================
   Results dashboard (S3): two columns + premium gating
   ============================================================ */
.bb-results {
    display: flex;
    gap: 28px;
    align-items: flex-start;
}
.bb-results__rail { width: var(--bb-results-rail-w); flex: none; }
.bb-results__main { flex: 1; min-width: 0; }

.bb-breadcrumb { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.bb-breadcrumb__link { color: var(--bb-primary); font-weight: 500; text-decoration: none; }
.bb-breadcrumb__sep { color: var(--bb-border-dashed); }
.bb-breadcrumb__here { color: var(--bb-muted); }

/* Badge image placeholder in the left-rail card */
.bb-badge-img {
    width: 88px;
    height: 88px;
    border-radius: 14px;
    object-fit: contain;
    background: repeating-linear-gradient(45deg, #e7eaf0, #e7eaf0 6px, #eef1f5 6px, #eef1f5 12px);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--bb-font-mono);
    font-size: 10px;
    color: var(--bb-faint);
}

/* Verdict pill (larger, bordered — badge card) */
.bb-verdict {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    font-size: 14px;
    padding: 7px 14px;
    border-radius: var(--bb-radius-pill);
    border: 1px solid transparent;
}
.bb-verdict--valid { color: var(--bb-success); background: var(--bb-success-tint); border-color: var(--bb-success-border); }
.bb-verdict--invalid { color: var(--bb-danger); background: var(--bb-danger-tint); border-color: var(--bb-danger); }
.bb-verdict--warn { color: var(--bb-gold); background: var(--bb-gold-tint); border-color: var(--bb-gold-border); }

/* Key/value rows */
.bb-kv { display: flex; justify-content: space-between; font-size: 13.5px; }
.bb-field { display: flex; font-size: 14.5px; }
.bb-field__k { width: 150px; flex: none; color: var(--bb-muted); }
.bb-kv__k { color: var(--bb-muted); }
.bb-kv__v, .bb-field__v { color: var(--bb-body-strong); font-weight: 500; }

/* Left-rail action buttons */
.bb-action {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    text-align: center;
    font-weight: 600;
    font-size: 15px;
    padding: 13px;
    border-radius: var(--bb-radius-control);
    border: 1px solid transparent;
    text-decoration: none;
}
.bb-action--locked {
    background: #f4f5f8;
    border-color: var(--bb-border);
    color: var(--bb-faint);
    cursor: not-allowed;
}
.bb-premium-caption {
    text-align: center;
    font-family: var(--bb-font-mono);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: .05em;
    color: var(--bb-gold);
    background: var(--bb-gold-tint);
    border: 1px solid var(--bb-gold-border);
    padding: 6px;
    border-radius: 8px;
}

/* Right-column panels */
.bb-panel-title {
    font-family: var(--bb-font-display);
    font-weight: 600;
    font-size: 16px;
    color: var(--bb-ink);
}
.bb-check-row { display: flex; align-items: center; gap: 11px; }

/* Premium-locked cards */
.bb-premium {
    background: var(--bb-gold-card-bg);
    border: 1px solid var(--bb-gold-border);
    border-radius: var(--bb-radius-card-sm);
    padding: 22px;
    position: relative;
    overflow: hidden;
}
.bb-premium__title {
    font-family: var(--bb-font-display);
    font-weight: 600;
    font-size: 16px;
    color: var(--bb-gold-heading);
}
.bb-premium-pill {
    font-family: var(--bb-font-mono);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: .04em;
    color: var(--bb-gold);
    background: var(--bb-gold-tint);
    border: 1px solid var(--bb-gold-border);
    padding: 4px 9px;
    border-radius: var(--bb-radius-pill);
}
.bb-blur { filter: blur(3px); opacity: .55; user-select: none; }
.bb-upgrade-link { color: var(--bb-gold); font-weight: 600; font-size: 14px; text-decoration: none; }

/* Sign-up wall: blurred preview + centred call-to-action (anonymous results) */
.bb-gate { position: relative; }
.bb-gate__blur { pointer-events: none; }
.bb-gate__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.bb-gate__card {
    background: var(--bb-surface);
    border: 1px solid var(--bb-gold-border);
    border-radius: var(--bb-radius-card-sm);
    box-shadow: 0 12px 34px rgba(16, 24, 40, .16);
    padding: 28px 26px;
    max-width: 380px;
    text-align: center;
}
.bb-gate__title {
    font-family: var(--bb-font-display);
    font-weight: 600;
    font-size: 18px;
    color: var(--bb-ink);
}

.bb-action--soon {
    background: #f4f5f8;
    border-color: var(--bb-border);
    color: var(--bb-muted);
    cursor: default;
}

/* Upgrade banner */
.bb-upgrade-banner {
    background: linear-gradient(100deg, var(--bb-navy), #1d2740);
    border-radius: var(--bb-radius-card-sm);
    padding: 22px 24px;
}
.bb-upgrade-banner__title { font-family: var(--bb-font-display); font-weight: 600; font-size: 17px; color: #fff; }
.bb-upgrade-banner__sub { color: var(--bb-navy-secondary); font-size: 14px; }

@media (max-width: 991.98px) {
    .bb-results { flex-direction: column; }
    .bb-results__rail { width: 100%; }
}

/* ============================================================
   Hanko auth widget theming (design/README tokens)
   hanko-elements expose CSS custom properties that pierce their
   shadow DOM; map them to our tokens so the widget is on-brand.
   ============================================================ */
hanko-auth,
hanko-profile {
    --font-family: var(--bb-font-ui);
    --border-radius: var(--bb-radius-control);
    --brand-color: var(--bb-primary);
    --brand-color-shade-1: var(--bb-primary-hover);
    --color: var(--bb-body-strong);
    --color-shade-1: var(--bb-muted);
    --background-color: var(--bb-surface);
    --error-color: var(--bb-danger);
    --link-color: var(--bb-primary);
    --input-background-color: var(--bb-input-bg);
    --input-border-color: var(--bb-border);
    --container-padding: 0;
    --container-max-width: 100%;
}

/* legacy override — kept from the previous theme */
.table > :not(caption) > * > td:first-child { color: #6c757d; }
