/* Shared components. Load tokens.css first. Classes deliberately avoid legacy selectors. */
.bb-root{color:var(--bb-ink);background:var(--bb-canvas);font:400 var(--bb-text-base)/1.55 var(--bb-font-body);color-scheme:light}
.bb-root[data-bb-theme=dark]{color-scheme:dark}
.bb-root *{box-sizing:border-box}.bb-root button,.bb-root input,.bb-root select,.bb-root textarea{font:inherit}
.bb-root a{color:inherit;text-underline-offset:4px}.bb-root :focus-visible{outline:3px solid var(--bb-focus);outline-offset:4px}
.bb-root :is(h1,h2,h3,p){margin-top:0}.bb-root img{max-width:100%}.bb-root [hidden]{display:none!important}
.bb-display{font:700 var(--bb-text-display)/.9 var(--bb-font-display);text-transform:uppercase;letter-spacing:-.025em}
.bb-title{font:700 clamp(2rem,4vw,3.5rem)/1 var(--bb-font-display);text-transform:uppercase;letter-spacing:-.015em}
.bb-editorial{font:500 clamp(1.5rem,3vw,2.4rem)/1.25 var(--bb-font-editorial);letter-spacing:-.035em}
.bb-label{font:600 var(--bb-text-xs)/1.4 var(--bb-font-mono);letter-spacing:.1em;text-transform:uppercase}
.bb-muted{color:var(--bb-muted)}.bb-number{font-variant-numeric:tabular-nums}.bb-small{font-size:var(--bb-text-sm)}
.bb-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--bb-control-height);padding:10px 22px;border:1px solid var(--bb-action);border-radius:var(--bb-radius-control);background:var(--bb-action);color:var(--bb-action-ink)!important;font:600 var(--bb-text-sm)/1.35 var(--bb-font-body);text-decoration:none;cursor:pointer;transition:border-color var(--bb-duration-fast)}
.bb-button:hover{background:var(--bb-action-hover);border-color:var(--bb-action-hover)}.bb-button:active{transform:translateY(1px)}
.bb-button--secondary{background:transparent;border-color:var(--bb-border-control);color:var(--bb-ink)!important}.bb-button--secondary:hover{background:var(--bb-selected);border-color:var(--bb-action)}
.bb-button--danger{background:var(--bb-danger);border-color:var(--bb-danger);color:var(--bb-surface)!important}.bb-button--danger:hover{background:var(--bb-danger);filter:brightness(.9)}
.bb-button:disabled{background:var(--bb-disabled-bg);border-color:var(--bb-border-control);color:var(--bb-disabled)!important;cursor:not-allowed;transform:none;filter:none}
.bb-button[aria-busy=true]{cursor:progress}.bb-button[aria-busy=true]::before{content:"";width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:bb-spin 1s linear infinite}
.bb-panel{background:var(--bb-surface);border:1px solid var(--bb-line);border-radius:var(--bb-radius-panel);padding:var(--bb-space-6)}
.bb-rule{border:0;border-top:1px solid var(--bb-line);margin:var(--bb-space-6) 0}
.bb-badge{display:inline-flex;align-items:center;gap:6px;border-radius:var(--bb-radius-sm);padding:4px 8px;font-size:var(--bb-text-xs);font-weight:600;background:var(--bb-surface-subtle);color:var(--bb-ink)}
.bb-badge--success{color:var(--bb-success);background:var(--bb-success-bg)}.bb-badge--warning{color:var(--bb-warning);background:var(--bb-warning-bg)}.bb-badge--danger{color:var(--bb-danger);background:var(--bb-danger-bg)}.bb-badge--info{color:var(--bb-info);background:var(--bb-info-bg)}
.bb-notice{border:1px solid var(--bb-line);background:var(--bb-info-bg);color:var(--bb-info);padding:16px 20px;border-radius:var(--bb-radius-control)}.bb-notice--warning{color:var(--bb-warning);background:var(--bb-warning-bg)}.bb-notice--danger{color:var(--bb-danger);background:var(--bb-danger-bg)}.bb-notice p:last-child{margin-bottom:0}
.bb-field{display:grid;gap:8px}.bb-field>label,.bb-field>legend{font-weight:600;font-size:var(--bb-text-sm)}
.bb-input{width:100%;min-height:var(--bb-control-height);border:1px solid var(--bb-border-control);border-radius:var(--bb-radius-control);padding:10px 12px;background:var(--bb-surface);color:var(--bb-ink)}
.bb-input::placeholder{color:var(--bb-muted);opacity:1}.bb-input[aria-invalid=true]{border:2px solid var(--bb-danger)}.bb-field-error{color:var(--bb-danger);font-size:var(--bb-text-sm)}.bb-help{font-size:var(--bb-text-sm);color:var(--bb-muted)}
.bb-check{display:flex;gap:12px;align-items:center;min-height:44px;cursor:pointer}.bb-check input{width:20px;height:20px;accent-color:var(--bb-action);flex:none}
.bb-segment{border:1px solid var(--bb-border-control);border-radius:var(--bb-radius-control);padding:4px;display:flex;gap:4px;flex-wrap:wrap;margin:0}
.bb-segment legend{padding:0 4px;font-size:var(--bb-text-sm);font-weight:600}.bb-segment label{position:relative;flex:1;min-width:80px;cursor:pointer}.bb-segment input{position:absolute;opacity:0;width:1px;height:1px}
.bb-segment span{display:flex;justify-content:center;align-items:center;min-height:44px;border-radius:2px;padding:8px 12px;font-size:var(--bb-text-sm);font-weight:600}.bb-segment input:checked+span{background:var(--bb-action);color:var(--bb-action-ink)}.bb-segment input:focus-visible+span{outline:3px solid var(--bb-focus);outline-offset:1px}.bb-segment input:disabled+span{color:var(--bb-disabled);background:var(--bb-disabled-bg);cursor:not-allowed}
.bb-disclosure{border-top:1px solid var(--bb-line);border-bottom:1px solid var(--bb-line)}.bb-disclosure summary{min-height:48px;padding:14px 0;font-weight:600;cursor:pointer}.bb-disclosure>div{padding:0 0 20px}
.bb-table-wrap{overflow:auto;border:1px solid var(--bb-line);border-radius:var(--bb-radius-control)}.bb-table{width:100%;border-collapse:collapse;font-size:var(--bb-text-sm)}.bb-table th{text-align:left;background:var(--bb-surface-subtle);font-weight:600}.bb-table :is(td,th){padding:14px 16px;border-bottom:1px solid var(--bb-line);vertical-align:top}.bb-table tbody tr:last-child td{border-bottom:0}.bb-table tbody tr:hover{background:var(--bb-selected)}.bb-table .bb-number{text-align:right}.bb-table button{min-height:44px}.bb-table caption{text-align:left;padding:16px;font-weight:600;background:var(--bb-surface)}
.bb-stepper{list-style:none;display:flex;gap:16px;padding:0;margin:0;counter-reset:step}.bb-stepper li{display:flex;gap:8px;align-items:center;font-size:var(--bb-text-sm);color:var(--bb-muted)}.bb-stepper li::before{counter-increment:step;content:counter(step);display:grid;place-items:center;width:28px;height:28px;flex:none;border:1px solid var(--bb-border-control);border-radius:50%;font-weight:600}.bb-stepper [aria-current=step]{color:var(--bb-ink);font-weight:700}.bb-stepper [aria-current=step]::before{background:var(--bb-action);color:var(--bb-action-ink)}
.bb-dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--bb-line);border-radius:var(--bb-radius-panel);padding:32px;background:var(--bb-surface);color:var(--bb-ink);box-shadow:var(--bb-shadow)}.bb-dialog::backdrop{background:rgb(8 18 12 / .65)}.bb-dialog h2{font:700 2rem/1.1 var(--bb-font-display);text-transform:uppercase}.bb-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.bb-stack{display:grid;gap:20px}.bb-icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.bb-range{height:12px;border-bottom:1px solid var(--bb-border-control);position:relative;min-width:120px}.bb-range[data-available=false]::after{content:"Range unavailable";color:var(--bb-muted);font-size:var(--bb-text-xs);position:absolute;top:16px;left:0;white-space:nowrap}.bb-range-interval{position:absolute;left:var(--range-start);width:var(--range-span);height:10px;background:var(--bb-selected);border:1px solid var(--bb-action);border-radius:999px}.bb-range-median{position:absolute;left:var(--range-median);height:14px;width:2px;top:-2px;background:var(--bb-ink)}
@keyframes bb-spin{to{transform:rotate(360deg)}}
.bb-stack>*{min-width:0}.bb-stepper{flex-wrap:wrap}
@media(max-width:639px){.bb-stepper{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bb-panel{padding:20px}.bb-dialog{padding:24px}.bb-actions>.bb-button{flex-grow:1}}
@media(prefers-reduced-motion:reduce){.bb-root *,.bb-root *::before,.bb-root *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Heritage materials: decorative regions only; reading surfaces stay solid. */
.bb-paper{background-color:var(--bb-canvas);background-image:var(--bb-texture-paper);background-size:256px 256px}
.bb-print{background-image:var(--bb-texture-print);background-size:256px 256px}
.bb-ticket{border-block:1px solid var(--bb-border-control);border-inline:1px dashed var(--bb-border-control);border-radius:0;background-color:var(--bb-surface);padding:var(--bb-space-6)}
.bb-stamp{display:inline-flex;align-items:center;justify-content:center;min-width:88px;min-height:88px;border:3px double currentColor;border-radius:50%;padding:12px;font:700 1rem/1.1 var(--bb-font-editorial);text-align:center;color:var(--bb-danger)}
.bb-pennant{display:block;width:min(100%,360px);height:auto}

/* v1.2: macOS-inspired interaction geometry, adapted for the web. */
.bb-button{border-radius:var(--bb-radius-action);box-shadow:var(--bb-shadow-control);transition:transform var(--bb-duration-fast) var(--bb-ease),box-shadow var(--bb-duration-fast) var(--bb-ease),border-color var(--bb-duration-fast)}
.bb-button:active:not(:disabled){transform:scale(var(--bb-press-scale))}
.bb-button--secondary{box-shadow:none}.bb-button:disabled{box-shadow:none}
.bb-segment{border-radius:calc(var(--bb-radius-control) + 4px);background:var(--bb-surface-subtle)}
.bb-segment span{border-radius:var(--bb-radius-control)}
.bb-segment input:checked+span{box-shadow:var(--bb-shadow-control)}
.bb-dialog{border-radius:var(--bb-radius-frame)}
.bb-glass{background:var(--bb-surface);border:1px solid var(--bb-line);box-shadow:var(--bb-shadow-navigation);color:var(--bb-ink)}
.bb-frame{border:1px solid var(--bb-line);border-radius:var(--bb-radius-frame);background:var(--bb-surface);box-shadow:var(--bb-shadow-navigation);padding:8px}
.bb-frame>.bb-panel{border-radius:var(--bb-radius-panel)}
@supports (backdrop-filter:blur(1px)){.bb-glass{background:var(--bb-glass);backdrop-filter:blur(var(--bb-material-blur));-webkit-backdrop-filter:blur(var(--bb-material-blur));border-top-color:var(--bb-glass-edge)}}
.bb-root[data-bb-effects=reduced] .bb-glass{background:var(--bb-surface);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:var(--bb-border-control);box-shadow:none}
.bb-root[data-bb-effects=reduced] :is(.bb-button,.bb-segment span){transition:none;transform:none;box-shadow:none}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.bb-root .bb-glass{background:var(--bb-surface);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:var(--bb-border-control);box-shadow:none}}
@media(prefers-reduced-motion:reduce){.bb-root .bb-button:active{transform:none}.bb-root .bb-button{transition:none}}
@media(forced-colors:active){.bb-root .bb-glass{background:Canvas;color:CanvasText;backdrop-filter:none;box-shadow:none;border-color:CanvasText}.bb-root .bb-button{box-shadow:none}.bb-root .bb-segment input:checked+span{outline:2px solid Highlight}}

/* v1.3: photographic sports atmosphere. Use only in decorative brand regions. */
.bb-atmosphere{position:relative;isolation:isolate;overflow:hidden;background:var(--bb-color-night);color:var(--bb-color-chalk);--bb-focus:var(--bb-color-gold)}
.bb-atmosphere-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;transform:scale(1.035);animation:bb-atmosphere-drift var(--bb-duration-atmosphere) ease-in-out infinite alternate;animation-play-state:paused;pointer-events:none}
.bb-atmosphere::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgb(10 23 18 / .92),rgb(10 23 18 / .8) 42%,rgb(10 23 18 / .08));pointer-events:none}
.bb-atmosphere-haze{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 75% 50%,rgb(214 222 197 / .1),transparent 60%);animation:bb-haze-drift 22s ease-in-out infinite alternate;animation-play-state:paused;pointer-events:none}
[data-bb-motion=running] .bb-atmosphere-photo,[data-bb-motion=running] .bb-atmosphere-haze{animation-play-state:running}
.bb-atmosphere[data-bb-in-view=false] :is(.bb-atmosphere-photo,.bb-atmosphere-haze),[data-bb-effects=reduced] :is(.bb-atmosphere-photo,.bb-atmosphere-haze),[data-bb-page-hidden=true] :is(.bb-atmosphere-photo,.bb-atmosphere-haze){animation-play-state:paused}
.bb-atmosphere .bb-button{background:var(--bb-color-chalk);border-color:var(--bb-color-chalk);color:var(--bb-color-night)!important}.bb-atmosphere .bb-button:hover{background:var(--bb-color-paper);border-color:var(--bb-color-paper)}
.bb-motion-toggle{position:relative;z-index:2;min-height:44px;padding:8px 14px;border:1px solid var(--bb-color-fog);border-radius:var(--bb-radius-action);background:var(--bb-color-night);color:var(--bb-color-chalk);font:600 .8125rem/1.4 var(--bb-font-body);cursor:pointer}
.bb-motion-toggle:disabled{cursor:default}.bb-outline-type{-webkit-text-stroke:1px currentColor;color:transparent;font-family:var(--bb-font-display);font-weight:700;text-transform:uppercase;pointer-events:none;user-select:none}
@keyframes bb-atmosphere-drift{from{transform:scale(1.035) translateX(-.5%)}to{transform:scale(1.07) translateX(.5%)}}
@keyframes bb-haze-drift{from{transform:translateX(-5%);opacity:.5}to{transform:translateX(5%);opacity:1}}
@media(prefers-reduced-motion:reduce),(prefers-contrast:more),(forced-colors:active){.bb-atmosphere-photo,.bb-atmosphere-haze{animation:none!important;transform:none}.bb-atmosphere::before{background:rgb(10 23 18 / .9)}}
@media(max-width:639px){.bb-atmosphere::before{background:linear-gradient(180deg,rgb(10 23 18 / .88) 0 52%,rgb(10 23 18 / .48) 100%)}}

.bb-stepper li{min-width:0;overflow-wrap:anywhere}
