/* BITNFO 3.0 shared presentation. Loaded last over retained module styles.
   No data, access control, provider or financial behaviour lives here. */
body.b3-shell {
    --b3-bg: #080f12; --b3-surface: #101c21; --b3-raised: #15242a;
    --b3-line: #2a3d43; --b3-text: #edf6f4; --b3-muted: #a7bcbf;
    --b3-green: #49e6ac; --b3-cyan: #64d9ed; --b3-amber: #f0c37a; --b3-red: #ff97a6;
    --bg-main: var(--b3-bg); --bg-panel: var(--b3-surface); --bg-panel-2: var(--b3-raised);
    --text-main: var(--b3-text); --text-muted: var(--b3-muted); --text-dim: #9eb3b6;
    --accent: var(--b3-green); --accent-2: var(--b3-cyan); --border: var(--b3-line); --border-soft: var(--b3-line);
    --radius-sm: 6px; --radius-md: 10px; --radius-lg: 18px;
    --topbar-height: 76px; --sidebar-width: 248px; --content-max: 1560px;
    --b3-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--b3-text); background: var(--b3-bg); font: 15px/1.6 var(--b3-sans);
    overflow-x: clip;
}
.b3-shell *, .b3-shell *::before, .b3-shell *::after { box-sizing: border-box; }
.b3-shell h1, .b3-shell h2, .b3-shell h3, .b3-shell h4 { font-family: var(--b3-sans); letter-spacing: -.025em; line-height: 1.22; color: var(--b3-text); text-shadow: none; }
.b3-shell h1, .b3-shell .page-title { font-size: clamp(28px, 3vw, 38px); font-weight: 650; }
.b3-shell h2 { font-size: clamp(21px, 2.3vw, 28px); }
.b3-shell h3 { font-size: 18px; }
.b3-shell p { overflow-wrap: anywhere; }
.b3-shell input, .b3-shell select, .b3-shell textarea, .b3-shell button { font-family: var(--b3-sans); }
.b3-shell :focus-visible { outline: 2px solid var(--b3-cyan); outline-offset: 4px; }
.b3-shell ::selection { color: #fff; background: #195f51; }
.b3-shell .nfo-bg-grid, .b3-shell .nfo-noise, .b3-shell .nfo-scanlines { display: none; }
.b3-shell .glitch-text, .b3-shell .hover-glow, .b3-shell .hover-lift { animation: none; text-shadow: none; }
.b3-shell .glitch-text::before, .b3-shell .glitch-text::after { content: none; }
.b3-shell.reveal-enabled .reveal-on-scroll { opacity: 1; transform: none; transition: none; }
.b3-shell .nfo-panel, .b3-shell .nfo-card, .b3-shell .admin-card, .b3-shell .card,
.b3-shell .panel, .b3-shell .auth-card, .b3-shell .admin-page-header, .b3-shell .admin-kpi-card {
    background: var(--b3-surface); border: 1px solid var(--b3-line); border-radius: var(--radius-md); box-shadow: none;
}
.b3-shell .nfo-panel:hover, .b3-shell .nfo-card:hover, .b3-shell .hover-lift:hover, .b3-shell .hover-glow:hover { transform: none; box-shadow: none; }
.b3-shell .nfo-panel, .b3-shell .admin-card { padding: clamp(18px, 2vw, 28px); }
.b3-shell .nfo-kicker, .b3-shell .nfo-card-title, .b3-shell .admin-eyebrow {
    color: var(--b3-muted); font: 600 12px/1.5 var(--b3-sans); letter-spacing: .09em; text-transform: uppercase;
}
.b3-shell .nfo-subtitle { font-size: 15px; max-width: 76ch; }
.b3-shell .nfo-terminal-line { white-space: normal; overflow: visible; text-overflow: clip; letter-spacing: 0; line-height: 1.6; }
.b3-shell .nfo-card-value, .b3-shell .metric { font-family: var(--font-mono); font-size: clamp(25px, 2.2vw, 34px); color: var(--b3-text); text-shadow: none; }
.b3-shell .nfo-card-meta, .b3-shell .nfo-help, .b3-shell .label { font-size: 13px; }
.b3-shell .nfo-empty, .b3-shell .nfo-table-empty, .b3-shell .empty-state { color: var(--b3-muted); font-style: normal; }
.b3-shell .btn { min-height: 44px; border-radius: 8px; padding: 10px 18px; font: 600 14px/1.35 var(--b3-sans); letter-spacing: 0; text-transform: none; box-shadow: none; text-shadow: none; gap: 9px; }
.b3-shell .btn:hover { transform: none; box-shadow: none; }
.b3-shell .btn-primary, .b3-shell .btn-terminal { color: #06251c; background: var(--b3-green); border-color: var(--b3-green); }
.b3-shell .btn-primary:hover, .b3-shell .btn-terminal:hover { background: #8ff3cd; border-color: #8ff3cd; }
.b3-shell .btn-secondary, .b3-shell .btn-ghost { color: var(--b3-text); border-color: #3e555d; background: #122127; }
.b3-shell .btn-secondary:hover, .b3-shell .btn-ghost:hover { border-color: var(--b3-cyan); background: #1b3038; }
.b3-shell .btn-danger { color: #ffd6dd; background: #45212b; border-color: #9b5262; }
.b3-shell button:disabled, .b3-shell .btn[aria-disabled="true"] { opacity: .65; cursor: not-allowed; }
.b3-shell .btn-small { padding: 9px 13px; font-size: 13px; }
.b3-shell input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), .b3-shell select, .b3-shell textarea {
    min-height: 44px; border: 1px solid #455d64; background: #09161c; color: var(--b3-text); border-radius: 7px; padding: 10px 12px; font-size: 16px; max-width: 100%; box-shadow: none;
}
.b3-shell input::placeholder, .b3-shell textarea::placeholder { color: #9aacb1; opacity: 1; }
.b3-shell input[type="checkbox"], .b3-shell input[type="radio"] { accent-color: var(--b3-green); width: 18px; height: 18px; }
.b3-shell label { color: var(--b3-text); font-size: 14px; letter-spacing: 0; }
.b3-shell .badge, .b3-shell .nfo-status-chip { border-radius: 5px; font: 500 12px/1.4 var(--b3-sans); letter-spacing: 0; text-transform: none; box-shadow: none; white-space: normal; }
.b3-shell .badge:hover { transform: none; box-shadow: none; }
.b3-shell .badge-approved, .b3-shell .badge-success, .b3-shell .badge-paper { background: #103a2f; color: #80ecc4; border-color: #286753; }
.b3-shell .badge-warning, .b3-shell .badge-pending, .b3-shell .badge-pending_review { background: #3c301b; color: #f4d39e; border-color: #715a32; }
.b3-shell .badge-danger, .b3-shell .badge-suspended, .b3-shell .badge-banned { background: #3d222b; color: #ffafbd; border-color: #794251; }
.b3-shell .badge-muted, .b3-shell .badge-disabled { color: #b9c7cb; background: #26353b; border-color: #435860; }
.b3-shell .nfo-banner, .b3-shell .flash { border-radius: 8px; font-size: 14px; box-shadow: none; }
.b3-shell .nfo-banner.info { color: #bdedf3; background: #102c35; border-color: #315b66; }
.b3-shell .nfo-banner.warning { color: #f3d5a3; background: #332b1c; border-color: #665536; }
.b3-shell .nfo-banner.danger { color: #ffd2da; background: #38212a; border-color: #70404e; }
.b3-shell table { font-size: 14px; }
.b3-shell table th { color: #afc7cc; font-family: var(--b3-sans); font-size: 12px; text-transform: none; letter-spacing: .02em; background: #12262d; }
.b3-shell table td { font-family: var(--b3-sans); font-size: 14px; }
.b3-shell .admin-table th, .b3-shell .admin-table td, .b3-shell .nfo-table th, .b3-shell .nfo-table td { border-color: var(--b3-line); padding: 13px 15px; }
.b3-shell .nfo-table tbody tr:hover, .b3-shell .admin-table tbody tr:hover { background: #142b30; box-shadow: none; }
.b3-shell .table-wrap, .b3-shell .nfo-table-wrap, .b3-shell .admin-table-wrap, .b3-shell .market-table-wrap { scrollbar-color: #3d646a #101c21; scrollbar-width: thin; }
.b3-shell .nfo-address, .b3-shell code, .b3-shell pre, .b3-shell .market-price { font-family: var(--font-mono); }
.b3-shell .nfo-grid-2, .b3-shell .nfo-grid-3, .b3-shell .nfo-grid-4, .b3-shell .card-grid { gap: 18px; }
.b3-shell .nfo-topbar { background: #0b1519; border-bottom: 1px solid var(--b3-line); box-shadow: none; backdrop-filter: none; }
.b3-shell .nfo-topbar::after { display: none; }
.b3-shell .nfo-topbar-inner { width: calc(100% - 48px); max-width: 1660px; min-height: var(--topbar-height); display: flex; justify-content: space-between; gap: 24px; padding: 12px 0; }
.b3-shell .nfo-brand-cluster { gap: 14px; flex-wrap: nowrap; }
.b3-shell .b3-brand { display: inline-flex; align-items: center; gap: 9px; color: var(--b3-text); white-space: nowrap; }
.b3-shell .b3-brand strong { font: 750 22px/1 var(--b3-sans); letter-spacing: .1em; }
.b3-shell .b3-brand-symbol { display: grid; place-items: center; height: 33px; width: 33px; border-radius: 9px; color: var(--b3-green); border: 1px solid #316453; background: #15342a; font: 750 26px/1 var(--b3-sans); }
.b3-shell .b3-brand-caption { color: var(--b3-muted); font-size: 12px; padding-left: 14px; border-left: 1px solid var(--b3-line); }
.b3-shell .nfo-top-links, .b3-shell .nfo-topbar-actions { gap: 22px; flex-wrap: nowrap; }
.b3-shell .nfo-topbar-actions, .b3-shell .nfo-topbar-actions form, .b3-shell .nfo-topbar-actions .btn { width: auto; flex: 0 0 auto; }
.b3-shell .nfo-brand-cluster { flex: 0 1 auto; }
.b3-shell .nfo-top-links a:not(.btn), .b3-shell .b3-top-link { color: #d0dfe1; font: 500 14px var(--b3-sans); letter-spacing: 0; text-transform: none; white-space: nowrap; }
.b3-shell .nfo-top-links a:hover, .b3-shell .b3-top-link:hover { color: var(--b3-green); text-shadow: none; }
.b3-shell .b3-account { display: inline-flex; gap: 9px; align-items: center; min-height: 44px; font-size: 13px; max-width: 180px; }
.b3-shell .b3-account span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.b3-shell .b3-account-mark { color: var(--b3-cyan); background: #18313a; border: 1px solid #2f535e; border-radius: 50%; padding: 4px 10px; }
.b3-shell .b3-menu-toggle, .b3-shell .b3-nav-close { display: none; }
.b3-shell .nfo-layout-grid { grid-template-columns: var(--sidebar-width) minmax(0, 1fr); width: 100%; max-width: 1660px; margin: auto; gap: 0; align-items: start; }
.b3-shell .app-main { padding: 0; }
.b3-shell .main-content { padding: 32px; min-width: 0; }
.b3-shell .app-content { gap: 22px; }
.b3-shell .public-main > .container { width: calc(100% - 64px); max-width: 1400px; margin: 0 auto; padding: 36px 0 64px; }
.b3-shell .nfo-sidebar-shell { position: sticky; top: var(--topbar-height); max-height: calc(100dvh - var(--topbar-height)); overflow-y: auto; overflow-x: hidden; padding: 24px 12px; border-right: 1px solid var(--b3-line); background: #0c171b; min-height: calc(100dvh - var(--topbar-height)); scrollbar-color: #305356 transparent; scrollbar-width: thin; }
.b3-shell .nfo-sidebar { position: static; display: flex; flex-direction: column; padding: 0; gap: 10px; border: 0; background: none; box-shadow: none; min-height: 0; overflow: visible; }
.b3-shell .b3-sidebar-heading { color: var(--b3-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; padding: 0 10px 12px; display: flex; align-items: center; justify-content: space-between; }
.b3-shell .b3-nav-group { border-bottom: 1px solid #203238; padding: 0 0 8px; }
.b3-shell .b3-nav-group summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; min-height: 44px; padding: 9px 10px; font-size: 13px; font-weight: 600; list-style: none; border-radius: 6px; }
.b3-shell .b3-nav-group summary::-webkit-details-marker { display: none; }
.b3-shell .b3-nav-group summary:hover { background: #14272c; }
.b3-shell .b3-nav-group summary span { color: var(--b3-muted); }
.b3-shell .b3-nav-group[open] summary span { transform: rotate(180deg); }
.b3-shell .nfo-nav { gap: 3px; padding-top: 4px; }
.b3-shell .nfo-nav-link { min-height: 44px; font-size: 13px; color: var(--b3-muted); border: 0; padding: 10px 13px; border-radius: 6px; margin-left: 10px; box-shadow: none; text-transform: none; letter-spacing: 0; }
.b3-shell .b3-nav-prepared { font-size: 10px; display: inline-block; border: 1px solid #42545a; border-radius: 4px; padding: 1px 4px; margin-left: 5px; color: #adc1c3; }
.b3-shell .nfo-nav-link:hover { color: #e5fbf6; background: #142c2c; }
.b3-shell .nfo-nav-link.is-active { color: #b9f6df; background: #153c33; box-shadow: inset 2px 0 #49e6ac; }
.b3-shell .b3-sidebar-note { margin-top: 18px; padding: 12px 10px; font-size: 12px; color: var(--b3-muted); }
.b3-shell .b3-sidebar-note strong { color: #bfded6; font-size: 12px; }
.b3-shell .b3-sidebar-note a { color: var(--b3-cyan); }
.b3-shell .nfo-footer { margin-top: auto; background: #0a1418; border-color: var(--b3-line); }
.b3-shell .nfo-footer-inner { width: calc(100% - 48px); max-width: 1560px; gap: 20px; padding: 24px 0; color: var(--b3-muted); font: 12px/1.6 var(--b3-sans); flex-wrap: wrap; }
.b3-shell .nfo-footer-links a { text-transform: none; letter-spacing: 0; color: var(--b3-muted); }
.b3-skip-link { position: fixed; top: -100px; left: 16px; z-index: 250; padding: 14px 18px; background: #1a4244; color: white; border-radius: 6px; }
.b3-skip-link:focus { top: 10px; }
/* Existing admin structure and navigation behaviour remain in their own file. */
body.b3-shell.acc-shell { --acc-bg: var(--b3-bg); --acc-card: var(--b3-surface); --acc-text: var(--b3-text); --acc-muted: var(--b3-muted); --acc-green: var(--b3-green); --acc-cyan: var(--b3-cyan); --acc-line: var(--b3-line); }
.b3-shell.acc-shell .acc-header { background: #0b1519; }
.b3-shell.acc-shell .acc-brand-copy > span:last-child { font: 12px var(--b3-sans); letter-spacing: 0; }
.b3-shell.acc-shell .acc-panel { border-radius: 10px; }
.b3-shell.acc-shell .acc-footer { font-family: var(--b3-sans); }
.b3-shell.acc-shell .admin-page-header { align-items: center; }
.b3-shell.acc-shell .admin-page-header .page-title { font-size: clamp(28px, 3vw, 36px); }
.b3-shell.acc-shell .acc-table td { font-size: 13px; }
.b3-shell .b3-fixture-notice { color: #ebcf9c; background: #292518; border: 1px solid #5a5033; border-radius: 7px; padding: 10px 16px; margin-bottom: 18px; font-size: 12px; }
@media (min-width: 901px) {
    .b3-shell .nfo-top-links { position: static; display: flex; height: auto; width: auto; padding: 0; border: 0; box-shadow: none; background: none; }
    .b3-shell .nfo-sidebar-shell { display: block; }
}
@media (max-width: 1200px) {
    .b3-shell .b3-brand-caption { display: none; }
    .b3-shell .main-content { padding: 24px; }
}
@media (max-width: 900px) {
    body.b3-shell { --topbar-height: 68px; }
    .b3-shell .nfo-topbar-inner { width: calc(100% - 32px); min-height: 68px; gap: 12px; }
    .b3-shell.b3-js .b3-menu-toggle { display: inline-flex; padding: 10px; }
    .b3-shell .b3-brand strong { font-size: 18px; }
    .b3-shell .b3-brand-symbol { width: 28px; height: 28px; font-size: 22px; }
    .b3-shell .nfo-topbar-actions { gap: 12px; }
    .b3-shell .b3-top-link { display: none; }
    .b3-shell .nfo-layout-grid { display: block; }
    .b3-shell .main-content { padding: 24px 20px; }
    .b3-shell .public-main > .container { width: calc(100% - 40px); padding-top: 28px; }
    .b3-shell .nfo-sidebar-shell { position: static; display: block; width: 100%; max-height: none; min-height: 0; padding: 12px; border-bottom: 1px solid var(--b3-line); }
    .b3-shell.b3-js .nfo-sidebar-shell { position: fixed; inset: var(--topbar-height) auto 0 0; z-index: 55; width: min(320px, calc(100vw - 28px)); display: none; height: calc(100dvh - var(--topbar-height)); overflow: auto; }
    .b3-shell.b3-js.nav-open .nfo-sidebar-shell { display: block; }
    .b3-shell.nav-open .b3-nav-close { display: inline-flex; }
    .b3-shell .nfo-top-links { position: static; display: flex; flex-wrap: wrap; height: auto; width: auto; background: none; border: 0; padding: 8px 0; box-shadow: none; }
    .b3-shell:not(.b3-js) .nfo-topbar-inner { flex-wrap: wrap; }
    .b3-shell.b3-js .nfo-top-links { display: none; position: fixed; top: var(--topbar-height); left: 0; right: 0; z-index: 55; padding: 20px; background: #0d1c22; border-bottom: 1px solid var(--b3-line); }
    .b3-shell.b3-js.nav-open .nfo-top-links { display: grid; }
    .b3-shell .nfo-top-links a:not(.btn) { padding: 13px; font-size: 15px; }
    .b3-shell .nfo-mobile-nav-backdrop { z-index: 35; }
    .b3-shell .nfo-grid-3, .b3-shell .nfo-grid-4, .b3-shell .card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 540px) {
    .b3-shell .b3-account { display: none; }
    .b3-shell .nfo-brand-cluster { gap: 8px; }
    .b3-shell .nfo-topbar-inner { width: calc(100% - 24px); }
    .b3-shell .b3-brand { gap: 6px; }
    .b3-shell .b3-brand strong { font-size: 17px; }
    .b3-shell .main-content { padding: 20px 14px; }
    .b3-shell .public-main > .container { width: calc(100% - 28px); }
    .b3-shell .nfo-grid-2, .b3-shell .nfo-grid-3, .b3-shell .nfo-grid-4, .b3-shell .card-grid { grid-template-columns: minmax(0,1fr); }
    .b3-shell .nfo-footer-inner { width: calc(100% - 28px); flex-direction: column; align-items: flex-start; }
    .b3-shell .nfo-panel, .b3-shell .admin-card { padding: 18px; }
    .b3-shell .nfo-stat-list li { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .b3-shell *, .b3-shell *::before, .b3-shell *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
