/* BB Invoice Verification 19.0.0
 * Consolidated stylesheet: same UI/structure, fewer repeated declarations.
 * PDF.js canvas viewer with Elementor-resistant controls and light/dark theme support.
 */

.bbiv-shell,
.bbiv-shell *,
.bbiv-shell *::before,
.bbiv-shell *::after {
    box-sizing: border-box !important;
}

/* --------------------------------------------------------------------------
   Design tokens
   -------------------------------------------------------------------------- */
.bbiv-shell,
.theme-light .bbiv-shell,
.bbiv-shell.theme-light {
    --bbiv-bg: #eef1f5;
    --bbiv-panel: rgba(255,255,255,.96);
    --bbiv-panel-solid: #ffffff;
    --bbiv-panel-2: #f7f8fa;
    --bbiv-panel-hover: #eef1f5;
    --bbiv-stage: #e7ebf0;
    --bbiv-border: rgba(15,23,42,.11);
    --bbiv-border-strong: rgba(15,23,42,.18);
    --bbiv-text: #151922;
    --bbiv-muted: #6d7480;
    --bbiv-subtle: #8f96a2;
    --bbiv-accent: #2563eb;
    --bbiv-accent-hover: #1d4ed8;
    --bbiv-success: #00bb00;
    --bbiv-danger: #c43f4a;
    --bbiv-danger-bg: rgba(196,63,74,.08);
    --bbiv-loader-bg: rgba(255,255,255,.86);
    --bbiv-grid-minor: rgba(15,23,42,.035);
    --bbiv-grid-major: rgba(15,23,42,.060);
    --bbiv-paper-shadow: 0 1px 2px rgba(15,23,42,.10), 0 7px 20px rgba(15,23,42,.11);
}

.theme-dark .bbiv-shell,
.bbiv-shell.theme-dark {
    --bbiv-bg: #12151a;
    --bbiv-panel: rgba(25,29,35,.96);
    --bbiv-panel-solid: #191d23;
    --bbiv-panel-2: #22272f;
    --bbiv-panel-hover: #2a3039;
    --bbiv-stage: #101318;
    --bbiv-border: rgba(255,255,255,.10);
    --bbiv-border-strong: rgba(255,255,255,.18);
    --bbiv-text: #f3f5f7;
    --bbiv-muted: #a5adb9;
    --bbiv-subtle: #7f8895;
    --bbiv-accent: #4b82f4;
    --bbiv-accent-hover: #6394f5;
    --bbiv-success: #00bb00;
    --bbiv-danger: #ef6a74;
    --bbiv-danger-bg: rgba(239,106,116,.10);
    --bbiv-loader-bg: rgba(25,29,35,.88);
    --bbiv-grid-minor: rgba(255,255,255,.030);
    --bbiv-grid-major: rgba(255,255,255,.055);
    --bbiv-paper-shadow: 0 1px 2px rgba(0,0,0,.32), 0 8px 22px rgba(0,0,0,.26);
}

.bbiv-shell {
    /* Typography lives here once and is inherited by child contexts. */
    --bbiv-font-text: "BB Text";
    --bbiv-font-display: "BB Display";

    --bbiv-size-12: 12px;
    --bbiv-line-12: 1.333334;
    --bbiv-track-12: -0.01em;

    --bbiv-size-14: 14px;
    --bbiv-line-14: 1.428572;
    --bbiv-track-14: -0.016em;

    --bbiv-size-17: 17px;
    --bbiv-line-17: 1.1764706;
    --bbiv-track-17: -0.022em;

    --bbiv-size-24: 24px;
    --bbiv-line-24: 1.166667;
    --bbiv-track-display: 0.01em;

    --bbiv-control-h: 30px;
    --bbiv-mobile-control-h: 24px;
    --bbiv-lookup-control-h: 36px;

    position: relative !important;
    left: auto !important;
    z-index: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    width: min(980px, calc(100vw - 48px)) !important;
    max-width: 980px !important;
    min-width: 0 !important;
    height: calc(90vh - 48px) !important;
    min-height: 560px !important;
    margin: 24px auto !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 1px solid var(--bbiv-border) !important;
    border-radius: 14px !important;
    background: var(--bbiv-bg) !important;
    color: var(--bbiv-text) !important;
    box-shadow: none !important;
    font-family: var(--bbiv-font-text) !important;
    font-size: var(--bbiv-size-14) !important;
    font-weight: 400 !important;
    line-height: var(--bbiv-line-14) !important;
    letter-spacing: var(--bbiv-track-14) !important;
    text-align: left !important;
    isolation: isolate !important;
    contain: layout paint style !important;
    -webkit-font-smoothing: antialiased !important;
    text-rendering: optimizeLegibility !important;
}

@supports not (width: min(980px, 100%)) {
    .bbiv-shell {
        width: calc(100vw - 48px) !important;
        max-width: 980px !important;
    }
}

.bbiv-shell:fullscreen {
    left: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

/* --------------------------------------------------------------------------
   Elementor/theme reset and shared controls
   -------------------------------------------------------------------------- */
.bbiv-shell button.bbiv-btn,
.bbiv-shell a.bbiv-btn,
.bbiv-shell input.bbiv-search-input {
    all: unset !important;
    box-sizing: border-box !important;
    font: inherit !important;
    -webkit-font-smoothing: antialiased !important;
}

.bbiv-shell button.bbiv-btn,
.bbiv-shell a.bbiv-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    min-width: var(--bbiv-control-h) !important;
    height: var(--bbiv-control-h) !important;
    margin: 0 !important;
    padding: 0 9px !important;
    border: 1px solid var(--bbiv-border) !important;
    border-radius: 7px !important;
    background: var(--bbiv-panel-2) !important;
    color: var(--bbiv-text) !important;
    box-shadow: none !important;
    text-decoration: none !important;
    text-transform: none !important;
    text-shadow: none !important;
    letter-spacing: inherit !important;
    font-weight: 400 !important;
    cursor: pointer !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    transition: background-color .14s ease, border-color .14s ease, color .14s ease, transform .08s ease !important;
}

.bbiv-shell button.bbiv-btn:hover,
.bbiv-shell a.bbiv-btn:hover {
    border-color: var(--bbiv-border-strong) !important;
    background: var(--bbiv-panel-hover) !important;
    color: var(--bbiv-text) !important;
}

.bbiv-shell button.bbiv-btn:active,
.bbiv-shell a.bbiv-btn:active {
    transform: translateY(1px) !important;
}

.bbiv-shell button.bbiv-btn:focus-visible,
.bbiv-shell a.bbiv-btn:focus-visible,
.bbiv-shell input.bbiv-search-input:focus-visible {
    outline: 2px solid var(--bbiv-accent) !important;
    outline-offset: 2px !important;
    border-color: var(--bbiv-accent) !important;
    box-shadow: none !important;
}

.bbiv-shell button.bbiv-btn:disabled {
    opacity: .34 !important;
    cursor: default !important;
}

.bbiv-shell .bbiv-btn.bbiv-btn-icon {
    width: var(--bbiv-control-h) !important;
    min-width: var(--bbiv-control-h) !important;
    padding: 0 !important;
}

.bbiv-icon {
    display: block !important;
    width: 16px !important;
    height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.85 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    vector-effect: non-scaling-stroke !important;
    pointer-events: none !important;
}

.bbiv-shell .bbiv-btn.bbiv-btn-primary {
    gap: 6px !important;
    min-width: 70px !important;
    border-color: var(--bbiv-accent) !important;
    background: var(--bbiv-accent) !important;
    color: #fff !important;
}

.bbiv-shell .bbiv-btn.bbiv-btn-primary:hover {
    border-color: var(--bbiv-accent-hover) !important;
    background: var(--bbiv-accent-hover) !important;
    color: #fff !important;
}

.bbiv-shell .bbiv-btn.bbiv-zoom-label {
    min-width: 54px !important;
    padding: 0 7px !important;
    font-weight: 600 !important;
    font-variant-numeric: tabular-nums !important;
}

.bbiv-shell .bbiv-btn.bbiv-btn-toggle {
    gap: 4px !important;
    min-width: 57px !important;
    padding: 0 7px !important;
}

.bbiv-shell .bbiv-btn.bbiv-btn-toggle.bbiv-is-active {
    border-color: color-mix(in srgb, var(--bbiv-accent) 42%, var(--bbiv-border)) !important;
    background: color-mix(in srgb, var(--bbiv-accent) 10%, var(--bbiv-panel-solid)) !important;
    color: var(--bbiv-accent) !important;
}

.bbiv-btn-label {
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
}

/* --------------------------------------------------------------------------
   Verified viewer toolbar
   -------------------------------------------------------------------------- */
.bbiv-toolbar {
    position: relative !important;
    z-index: 20 !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--bbiv-border) !important;
    background: var(--bbiv-panel) !important;
    box-shadow: none !important;
    font-family: var(--bbiv-font-text) !important;
    font-size: var(--bbiv-size-12) !important;
    font-weight: 400 !important;
    line-height: var(--bbiv-line-12) !important;
    letter-spacing: var(--bbiv-track-12) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.15) !important;
    backdrop-filter: blur(16px) saturate(1.15) !important;
    transform: translateZ(0) !important;
}

.bbiv-toolbar::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: -1px !important;
    height: 1px !important;
    background: linear-gradient(90deg, transparent 0%, var(--bbiv-accent) 46%, transparent 100%) !important;
    opacity: 0 !important;
    transform: translateX(-58%) scaleX(.32) !important;
    pointer-events: none !important;
}

.bbiv-shell.bbiv-is-rendering .bbiv-toolbar::after {
    opacity: .72 !important;
    animation: bbiv-progress 1.2s cubic-bezier(.4,0,.2,1) infinite !important;
}

.bbiv-toolbar-row {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.bbiv-toolbar-main {
    min-height: 46px !important;
    gap: 8px !important;
    padding: 7px 9px !important;
}

.bbiv-tools-row {
    display: contents !important;
}

.bbiv-actions-separator {
    display: block !important;
}

.bbiv-status-block {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    flex: 0 1 190px !important;
    min-width: 150px !important;
    margin: 0 !important;
}

.bbiv-verified-dot {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 24px !important;
    width: 24px !important;
    height: 24px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 50% !important;
    background: #00bb00 !important;
    color: #fff !important;
    box-shadow: none !important;
}

.bbiv-verified-dot .bbiv-icon {
    width: 14px !important;
    height: 14px !important;
    stroke-width: 2.3 !important;
}

.bbiv-status-text {
    min-width: 0 !important;
}

.bbiv-status-text strong,
.bbiv-status-text span {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
}

.bbiv-status-text strong {
    font-weight: 600 !important;
    letter-spacing: inherit !important;
}

.bbiv-status-text span {
    margin-top: 3px !important;
    overflow: hidden !important;
    color: var(--bbiv-muted) !important;
    font-weight: 500 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.bbiv-toolbar-center {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    gap: 5px !important;
}

.bbiv-toolbar-actions {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex: 0 0 auto !important;
    gap: 3px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.bbiv-separator {
    display: block !important;
    flex: 0 0 1px !important;
    width: 1px !important;
    height: 18px !important;
    margin: 0 2px !important;
    background: var(--bbiv-border) !important;
}

/* --------------------------------------------------------------------------
   Search forms
   -------------------------------------------------------------------------- */
.bbiv-search-form {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.bbiv-search-form-toolbar {
    flex: 0 1 280px !important;
    width: min(280px, 24vw) !important;
    min-width: 180px !important;
    max-width: 300px !important;
}

.bbiv-search-form-lookup {
    width: 100% !important;
    max-width: 510px !important;
}

.bbiv-shell input.bbiv-search-input {
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    height: var(--bbiv-control-h) !important;
    margin: 0 !important;
    padding: 0 9px !important;
    border: 1px solid var(--bbiv-border) !important;
    border-radius: 7px !important;
    background: var(--bbiv-panel-solid) !important;
    color: var(--bbiv-text) !important;
    box-shadow: none !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    letter-spacing: inherit !important;
}

.bbiv-shell input.bbiv-search-input::placeholder {
    color: var(--bbiv-subtle) !important;
    opacity: 1 !important;
}

/* --------------------------------------------------------------------------
   PDF stage and canvas
   -------------------------------------------------------------------------- */
.bbiv-stage {
    position: relative !important;
    z-index: 1 !important;
    display: block !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    outline: 0 !important;
    background: var(--bbiv-stage) !important;
    cursor: grab !important;
    touch-action: none !important;
    overscroll-behavior: none !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    transform: translateZ(0) !important;
    contain: layout paint style !important;
}

.bbiv-stage::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    background-image:
        linear-gradient(to right, var(--bbiv-grid-minor) 1px, transparent 1px),
        linear-gradient(to bottom, var(--bbiv-grid-minor) 1px, transparent 1px),
        linear-gradient(to right, var(--bbiv-grid-major) 1px, transparent 1px),
        linear-gradient(to bottom, var(--bbiv-grid-major) 1px, transparent 1px),
        radial-gradient(circle at 50% 34%, color-mix(in srgb, var(--bbiv-text) 4%, transparent), transparent 38%) !important;
    background-size: 24px 24px, 24px 24px, 120px 120px, 120px 120px, 100% 100% !important;
    background-position: center center !important;
    pointer-events: none !important;
}

.bbiv-stage.bbiv-is-panning {
    cursor: grabbing !important;
}

.bbiv-canvas {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 1 !important;
    display: block !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform-origin: 0 0 !important;
    will-change: transform !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
    image-rendering: auto !important;
    pointer-events: none !important;
    transition: none !important;
}

.bbiv-canvas.bbiv-canvas-visible {
    z-index: 2 !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: var(--bbiv-paper-shadow) !important;
}

.bbiv-canvas.bbiv-canvas-front {
    z-index: 3 !important;
}

.bbiv-shell.bbiv-is-zooming .bbiv-canvas-visible {
    transition: none !important;
    filter: none !important;
}

/* --------------------------------------------------------------------------
   Loading and errors
   -------------------------------------------------------------------------- */
.bbiv-loading,
.bbiv-viewer-error {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    z-index: 8 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: min(300px, calc(100% - 40px)) !important;
    margin: 0 !important;
    padding: 15px 17px !important;
    border: 1px solid var(--bbiv-border) !important;
    border-radius: 11px !important;
    background: var(--bbiv-loader-bg) !important;
    color: var(--bbiv-text) !important;
    box-shadow: none !important;
    font-family: var(--bbiv-font-text) !important;
    font-size: var(--bbiv-size-12) !important;
    font-weight: 400 !important;
    line-height: var(--bbiv-line-12) !important;
    letter-spacing: var(--bbiv-track-12) !important;
    -webkit-backdrop-filter: blur(14px) saturate(1.1) !important;
    backdrop-filter: blur(14px) saturate(1.1) !important;
    text-align: center !important;
    transform: translate3d(-50%, -50%, 0) scale(.99) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s !important;
}

.bbiv-shell.bbiv-is-initializing .bbiv-loading,
.bbiv-shell.bbiv-is-rendering .bbiv-loading {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate3d(-50%, -50%, 0) scale(1) !important;
    transition-delay: 0s !important;
}

.bbiv-shell.bbiv-is-zooming .bbiv-loading {
    opacity: 0 !important;
    visibility: hidden !important;
}

.bbiv-shell.bbiv-has-rendered-page.bbiv-is-rendering .bbiv-loading {
    top: auto !important;
    left: auto !important;
    right: 12px !important;
    bottom: 12px !important;
    width: auto !important;
    min-width: 112px !important;
    flex-direction: row !important;
    gap: 7px !important;
    padding: 7px 9px !important;
    border-radius: 999px !important;
    transform: translate3d(0,0,0) !important;
}

.bbiv-shell.bbiv-has-rendered-page.bbiv-is-rendering .bbiv-loading .bbiv-spinner {
    width: 13px !important;
    height: 13px !important;
    border-width: 1.5px !important;
}

.bbiv-viewer-error {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate3d(-50%, -50%, 0) scale(1) !important;
}

.bbiv-viewer-error[hidden] {
    display: none !important;
}

.bbiv-viewer-error span {
    color: var(--bbiv-muted) !important;
}

.bbiv-spinner {
    display: inline-block !important;
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px !important;
    border: 2px solid color-mix(in srgb, var(--bbiv-text) 14%, transparent) !important;
    border-top-color: var(--bbiv-text) !important;
    border-radius: 50% !important;
    animation-name: bbiv-spin !important;
    animation-duration: .78s !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
    animation-play-state: running !important;
    transform: translateZ(0) rotate(0deg) !important;
    transform-origin: 50% 50% !important;
    will-change: transform !important;
}

.bbiv-loading strong {
    margin: 0 !important;
    color: var(--bbiv-text) !important;
    font-weight: 600 !important;
}

/* --------------------------------------------------------------------------
   Lookup / not-found view
   -------------------------------------------------------------------------- */
.bbiv-lookup-screen {
    display: grid !important;
    place-items: center !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 24px !important;
    overflow: auto !important;
    background: var(--bbiv-stage) !important;
}

.bbiv-lookup-card {
    width: min(560px, 100%) !important;
    margin: 0 !important;
    padding: 28px !important;
    border: 1px solid var(--bbiv-border) !important;
    border-radius: 15px !important;
    background: var(--bbiv-panel-solid) !important;
    box-shadow: none !important;
    font-family: var(--bbiv-font-text) !important;
    font-size: var(--bbiv-size-14) !important;
    font-weight: 400 !important;
    line-height: var(--bbiv-line-14) !important;
    letter-spacing: var(--bbiv-track-14) !important;
}

.bbiv-lookup-title {
    all: unset !important;
    display: block !important;
    margin: 0 0 8px !important;
    color: var(--bbiv-text) !important;
    font-family: var(--bbiv-font-display) !important;
    font-size: var(--bbiv-size-24) !important;
    font-weight: 600 !important;
    line-height: var(--bbiv-line-24) !important;
    letter-spacing: var(--bbiv-track-display) !important;
}

.bbiv-lookup-copy {
    margin: 0 0 18px !important;
    padding: 0 !important;
    color: var(--bbiv-muted) !important;
    letter-spacing: inherit !important;
}

.bbiv-alert {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    margin: 0 0 16px !important;
    padding: 10px 12px !important;
    border-radius: 8px !important;
    letter-spacing: inherit !important;
}

.bbiv-alert-error {
    border: 1px solid color-mix(in srgb, var(--bbiv-danger) 38%, transparent) !important;
    background: var(--bbiv-danger-bg) !important;
    color: var(--bbiv-danger) !important;
}

.bbiv-alert strong {
    color: inherit !important;
    font-weight: 600 !important;
}

.bbiv-alert span {
    font-weight: 400 !important;
}

.bbiv-lookup-card label {
    letter-spacing: inherit !important;
}

.bbiv-folder-note {
    margin: 12px 0 0 !important;
    padding: 0 !important;
    color: var(--bbiv-muted) !important;
    font-family: var(--bbiv-font-text) !important;
    font-size: var(--bbiv-size-12) !important;
    font-weight: 400 !important;
    line-height: var(--bbiv-line-12) !important;
    letter-spacing: var(--bbiv-track-12) !important;
}

.bbiv-folder-note code {
    display: inline-block !important;
    margin-left: 4px !important;
    padding: 3px 5px !important;
    border: 1px solid var(--bbiv-border) !important;
    border-radius: 5px !important;
    background: var(--bbiv-panel-2) !important;
    color: var(--bbiv-text) !important;
    font: inherit !important;
    font-weight: 400 !important;
}

.bbiv-shell .bbiv-lookup-card input.bbiv-search-input,
.bbiv-shell .bbiv-lookup-card button.bbiv-btn,
.bbiv-shell .bbiv-lookup-card a.bbiv-btn {
    height: var(--bbiv-lookup-control-h) !important;
    min-height: var(--bbiv-lookup-control-h) !important;
    border-radius: 8px !important;
    letter-spacing: inherit !important;
}

.bbiv-shell .bbiv-lookup-card input.bbiv-search-input {
    padding: 0 10px !important;
    border: 1px solid var(--bbiv-border) !important;
    background: var(--bbiv-panel-solid) !important;
    color: var(--bbiv-text) !important;
    font-weight: 400 !important;
    caret-color: var(--bbiv-accent) !important;
    transition: border-color .14s ease, background-color .14s ease, color .14s ease, outline-color .14s ease !important;
}

.bbiv-shell .bbiv-lookup-card input.bbiv-search-input:hover:not(:disabled) {
    border-color: var(--bbiv-border-strong) !important;
    background: var(--bbiv-panel-solid) !important;
}

.bbiv-shell .bbiv-lookup-card input.bbiv-search-input:focus,
.bbiv-shell .bbiv-lookup-card input.bbiv-search-input:focus-visible {
    border-color: var(--bbiv-accent) !important;
    outline: 2px solid var(--bbiv-accent) !important;
    outline-offset: 2px !important;
    box-shadow: none !important;
}

.bbiv-shell .bbiv-lookup-card input.bbiv-search-input::selection {
    background: color-mix(in srgb, var(--bbiv-accent) 22%, transparent) !important;
    color: var(--bbiv-text) !important;
}

.bbiv-shell .bbiv-lookup-card button.bbiv-btn.bbiv-btn-primary {
    min-width: 88px !important;
    padding: 0 12px !important;
    border: 1px solid var(--bbiv-accent) !important;
    background: var(--bbiv-accent) !important;
    color: #fff !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    transform: none !important;
    transition: background-color .14s ease, border-color .14s ease, color .14s ease, transform .08s ease, outline-color .14s ease !important;
}

.bbiv-shell .bbiv-lookup-card button.bbiv-btn.bbiv-btn-primary:hover:not(:disabled) {
    border-color: var(--bbiv-accent-hover) !important;
    background: var(--bbiv-accent-hover) !important;
    color: #fff !important;
}

.bbiv-shell .bbiv-lookup-card button.bbiv-btn.bbiv-btn-primary:focus,
.bbiv-shell .bbiv-lookup-card button.bbiv-btn.bbiv-btn-primary:focus-visible {
    border-color: var(--bbiv-accent) !important;
    outline: 2px solid var(--bbiv-accent) !important;
    outline-offset: 2px !important;
    box-shadow: none !important;
}

.bbiv-shell .bbiv-lookup-card button.bbiv-btn.bbiv-btn-primary:active:not(:disabled) {
    background: var(--bbiv-accent-hover) !important;
    border-color: var(--bbiv-accent-hover) !important;
    transform: translateY(1px) !important;
}

.bbiv-shell .bbiv-lookup-card button.bbiv-btn:disabled,
.bbiv-shell .bbiv-lookup-card input.bbiv-search-input:disabled {
    opacity: .48 !important;
    cursor: not-allowed !important;
}

.bbiv-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* --------------------------------------------------------------------------
   Responsive toolbar
   -------------------------------------------------------------------------- */
@media (max-width: 940px) {
    .bbiv-toolbar-main {
        display: grid !important;
        grid-template-columns: minmax(108px,.72fr) minmax(0,1.72fr) !important;
        grid-template-areas:
            "status search"
            "tools tools" !important;
        align-items: center !important;
        gap: 4px 6px !important;
        min-height: 0 !important;
        padding: 5px 6px !important;
        overflow: hidden !important;
    }

    .bbiv-status-block {
        grid-area: status !important;
        flex: none !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        gap: 5px !important;
        white-space: nowrap !important;
    }

    .bbiv-verified-dot {
        flex-basis: 20px !important;
        width: 20px !important;
        height: 20px !important;
    }

    .bbiv-verified-dot .bbiv-icon {
        width: 12px !important;
        height: 12px !important;
    }

    .bbiv-status-text {
        display: flex !important;
        align-items: center !important;
        min-width: 0 !important;
        gap: 5px !important;
        overflow: hidden !important;
    }

    .bbiv-status-text strong,
    .bbiv-status-text span {
        display: inline-block !important;
        min-width: 0 !important;
        margin: 0 !important;
        white-space: nowrap !important;
    }

    .bbiv-status-text strong {
        flex: 0 0 auto !important;
    }

    .bbiv-status-text span {
        flex: 1 1 auto !important;
        max-width: none !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .bbiv-search-form-toolbar {
        grid-area: search !important;
        display: flex !important;
        flex: none !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        gap: 4px !important;
    }

    .bbiv-search-form-toolbar .bbiv-search-input {
        min-width: 0 !important;
    }

    .bbiv-search-form-toolbar .bbiv-btn-primary {
        flex: 0 0 auto !important;
        min-width: 54px !important;
        padding-inline: 7px !important;
    }

    .bbiv-tools-row {
        grid-area: tools !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        width: 100% !important;
        min-width: 0 !important;
        gap: 4px !important;
        margin: 0 !important;
        padding: 0 0 1px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        white-space: nowrap !important;
        scrollbar-width: none !important;
        -ms-overflow-style: none !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior-inline: contain !important;
        scroll-snap-type: x proximity !important;
    }

    .bbiv-tools-row::-webkit-scrollbar {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
    }

    .bbiv-toolbar-center,
    .bbiv-toolbar-actions {
        display: inline-flex !important;
        align-items: center !important;
        flex: 0 0 auto !important;
        width: auto !important;
        min-width: max-content !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        gap: 3px !important;
        justify-content: flex-start !important;
    }

    .bbiv-toolbar-center { scroll-snap-align: start !important; }
    .bbiv-toolbar-actions { scroll-snap-align: end !important; }

    .bbiv-actions-separator,
    .bbiv-fit-separator {
        display: block !important;
        flex: 0 0 1px !important;
    }
}

@media (max-width: 760px) {
    .bbiv-shell {
        min-height: 420px !important;
    }

    .bbiv-toolbar-main {
        grid-template-columns: minmax(126px,.95fr) minmax(0,1.05fr) !important;
        gap: 3px 4px !important;
        padding: 3px 4px !important;
    }

    .bbiv-status-block,
    .bbiv-search-form-toolbar,
    .bbiv-tools-row,
    .bbiv-toolbar-center,
    .bbiv-toolbar-actions {
        min-height: var(--bbiv-mobile-control-h) !important;
    }

    .bbiv-status-block {
        gap: 4px !important;
    }

    .bbiv-shell .bbiv-verified-dot {
        flex: 0 0 16px !important;
        width: 16px !important;
        min-width: 16px !important;
        max-width: 16px !important;
        height: 16px !important;
        min-height: 16px !important;
        max-height: 16px !important;
        border: 0 !important;
        outline: 0 !important;
        background: #00bb00 !important;
        box-shadow: none !important;
    }

    .bbiv-shell .bbiv-verified-dot .bbiv-icon {
        width: 12px !important;
        height: 12px !important;
    }

    .bbiv-status-text {
        gap: 3px !important;
    }

    .bbiv-shell button.bbiv-btn,
    .bbiv-shell a.bbiv-btn {
        min-width: var(--bbiv-mobile-control-h) !important;
        height: var(--bbiv-mobile-control-h) !important;
        padding: 0 6px !important;
        border-radius: 6px !important;
    }

    .bbiv-shell .bbiv-btn.bbiv-btn-icon {
        width: var(--bbiv-mobile-control-h) !important;
        min-width: var(--bbiv-mobile-control-h) !important;
        max-width: var(--bbiv-mobile-control-h) !important;
        padding: 0 !important;
    }

    .bbiv-shell .bbiv-btn.bbiv-btn-primary {
        gap: 6px !important;
        min-width: 30px !important;
        height: var(--bbiv-mobile-control-h) !important;
        padding: 0 6px !important;
    }

    .bbiv-search-form-toolbar .bbiv-search-button {
        flex: 0 0 30px !important;
        width: 30px !important;
        min-width: 30px !important;
        max-width: 30px !important;
        height: var(--bbiv-mobile-control-h) !important;
        padding: 0 !important;
        border-radius: 6px !important;
        aspect-ratio: auto !important;
    }

    .bbiv-search-form-toolbar .bbiv-search-button > span {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0,0,0,0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    .bbiv-shell input.bbiv-search-input {
        height: var(--bbiv-mobile-control-h) !important;
        min-height: var(--bbiv-mobile-control-h) !important;
        padding: 0 6px !important;
    }

    .bbiv-shell .bbiv-btn.bbiv-zoom-label {
        min-width: 44px !important;
        height: var(--bbiv-mobile-control-h) !important;
        padding: 0 5px !important;
    }

    .bbiv-shell .bbiv-btn.bbiv-btn-toggle {
        min-width: 46px !important;
        height: var(--bbiv-mobile-control-h) !important;
        padding: 0 5px !important;
        gap: 3px !important;
    }

    .bbiv-icon {
        width: 14px !important;
        height: 14px !important;
    }

    .bbiv-toolbar-center,
    .bbiv-toolbar-actions {
        height: var(--bbiv-mobile-control-h) !important;
        gap: 2px !important;
    }

    .bbiv-tools-row {
        gap: 2px !important;
        padding-bottom: 0 !important;
    }

    .bbiv-separator {
        height: 14px !important;
        margin: 0 1px !important;
    }
}

@media (max-width: 520px) {
    .bbiv-shell {
        width: calc(100vw - 32px) !important;
        max-width: calc(100vw - 32px) !important;
        margin: 16px auto !important;
        min-height: 380px !important;
    }

    .bbiv-toolbar-main {
        gap: 3px !important;
        padding: 3px !important;
    }

    .bbiv-status-text strong {
        display: inline-block !important;
        position: static !important;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        overflow: visible !important;
        clip: auto !important;
        white-space: nowrap !important;
    }

    .bbiv-status-text span {
        font-weight: 600 !important;
    }

    .bbiv-search-form-toolbar {
        gap: 3px !important;
    }

    .bbiv-search-form-toolbar .bbiv-search-input {
        padding-inline: 5px !important;
    }

    .bbiv-search-form-lookup {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .bbiv-search-form-lookup .bbiv-btn {
        width: 100% !important;
    }

    .bbiv-lookup-card {
        padding: 22px 16px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bbiv-shell *,
    .bbiv-shell *::before,
    .bbiv-shell *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }

    /* Keep the functional loading indicator visibly active. */
    .bbiv-shell .bbiv-spinner {
        animation-name: bbiv-spin !important;
        animation-duration: .78s !important;
        animation-timing-function: linear !important;
        animation-iteration-count: infinite !important;
        animation-play-state: running !important;
    }
}

@keyframes bbiv-spin {
    from { transform: translateZ(0) rotate(0deg); }
    to { transform: translateZ(0) rotate(360deg); }
}

@keyframes bbiv-progress {
    0% { transform: translateX(-65%) scaleX(.25); }
    50% { transform: translateX(8%) scaleX(.58); }
    100% { transform: translateX(72%) scaleX(.25); }
}