/* SonoraPort production repair: navigation, rates, and BlackRock page */
:root{--sp-gold:#d4af37;--sp-ink:#0a0f18;--sp-panel:#111827;--sp-line:rgba(212,175,55,.28);--sp-soft:#94a3b8}
.menu-btn{cursor:pointer}
.links.open,.mobile-menu.open{display:flex!important}
a.btn,button.btn,.arrow{cursor:pointer;position:relative;z-index:1}
a.btn:focus-visible,button.btn:focus-visible,a:focus-visible{outline:3px solid var(--sp-gold);outline-offset:3px}
.rate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-top:26px}
.rate-card{border:1px solid var(--sp-line);border-radius:14px;padding:22px;background:linear-gradient(145deg,rgba(212,175,55,.08),rgba(15,23,42,.58));min-height:165px}
.rate-card .rate-label{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sp-gold);font-weight:700}
.rate-card .rate-value{font-size:2rem;font-weight:800;line-height:1.1;margin:12px 0 8px}
.rate-card p{margin:0;color:var(--sp-soft);font-size:.92rem}
.rate-note{margin-top:18px;padding:14px 16px;border-left:3px solid var(--sp-gold);background:rgba(212,175,55,.06);font-size:.9rem;color:var(--sp-soft)}
.br-shell{background:#080d15;color:#f8fafc}
.br-shell .page-hero{background:radial-gradient(circle at 80% 20%,rgba(212,175,55,.12),transparent 35%),linear-gradient(180deg,#0c1320,#080d15)}
.br-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:26px}
.br-metric{padding:22px;border:1px solid var(--sp-line);border-radius:14px;background:#0e1624}
.br-metric small{display:block;text-transform:uppercase;letter-spacing:.12em;color:var(--sp-gold);font-weight:700}
.br-metric strong{display:block;font-size:1.65rem;margin-top:10px}
.br-record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:24px}
.br-record{padding:22px;border-radius:14px;border:1px solid rgba(148,163,184,.22);background:#0e1624}
.br-record h3{margin-top:0}
.br-kv{display:grid;grid-template-columns:minmax(130px,.8fr) 1.2fr;gap:10px 18px;margin:0}
.br-kv dt{color:#94a3b8}.br-kv dd{margin:0;font-weight:650;overflow-wrap:anywhere}
.br-table{width:100%;border-collapse:collapse;margin-top:18px}.br-table th,.br-table td{padding:13px 10px;border-bottom:1px solid rgba(148,163,184,.18);text-align:left}.br-table th{color:var(--sp-gold);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:760px){.br-kv{grid-template-columns:1fr}.rate-card .rate-value{font-size:1.65rem}}
/* Final interaction repair */
button, .btn, a[class*="btn"], [role="button"] { cursor:pointer; touch-action:manipulation; }
button:disabled { cursor:not-allowed; opacity:.62; }
@media (max-width:1050px){
  .links.open,.mobile-menu.open,.v2-nav.open{display:flex!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}
}

/* Universal interaction safeguards */
button, [role="button"], a.btn, a.v2-btn, a.portal-btn { cursor: pointer; touch-action: manipulation; }
.links.open, .mobile-menu.open, .v2-nav.open { display: flex !important; visibility: visible !important; opacity: 1 !important; pointer-events: auto !important; }
.modal.open, .chat.open { display: flex !important; visibility: visible !important; opacity: 1 !important; pointer-events: auto !important; }
.josh-panel.open { display: grid !important; visibility: visible !important; opacity: 1 !important; pointer-events: auto !important; }


/* Final navigation and research-center pass */
@media(max-width:1050px){
  .v2-header{position:sticky!important;overflow:visible!important}
  .v2-menu{display:block!important;position:relative;z-index:1002;cursor:pointer;touch-action:manipulation}
  .v2-nav{display:none!important;position:fixed!important;top:72px!important;left:0!important;right:0!important;bottom:0!important;z-index:1001!important;background:#05070a!important;padding:24px 22px 40px!important;overflow-y:auto!important;flex-direction:column!important;align-items:stretch!important;gap:0!important}
  .v2-nav.open{display:flex!important}
  .v2-nav a{display:block!important;padding:17px 8px!important;border-bottom:1px solid rgba(201,168,93,.22)!important;font-size:14px!important}
  body.menu-open{overflow:hidden!important}
}
.research-hero{padding:90px clamp(22px,6vw,90px) 70px;background:radial-gradient(circle at 80% 20%,rgba(201,168,93,.14),transparent 38%),linear-gradient(135deg,#080b12,#111a26);border-bottom:1px solid rgba(201,168,93,.25)}
.research-hero .eyebrow,.research-section .eyebrow{color:#d8b663;letter-spacing:.22em;font:700 12px/1.4 ui-monospace,monospace;text-transform:uppercase}
.research-hero h1{max-width:900px;margin:18px 0 22px;font:500 clamp(48px,8vw,92px)/.96 Georgia,serif;color:#f4efe4}
.research-hero p{max-width:820px;font-size:19px;line-height:1.75;color:#abb3c1}
.research-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.research-section{padding:70px clamp(22px,6vw,90px)}
.research-section h2{font:500 clamp(34px,5vw,58px)/1.05 Georgia,serif;color:#f4efe4;margin:14px 0 18px}
.research-section>p{max-width:900px;color:#aeb6c4;line-height:1.75;font-size:17px}
.explainer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.explainer-card{border:1px solid rgba(201,168,93,.25);background:rgba(255,255,255,.025);padding:28px;min-height:220px}
.explainer-card span{color:#d8b663;font:700 12px ui-monospace,monospace;letter-spacing:.16em}
.explainer-card h3{font:500 28px Georgia,serif;color:#f2eadc;margin:15px 0 12px}
.explainer-card p,.explainer-card li{color:#aeb6c4;line-height:1.65}
.market-table{margin-top:30px;border:1px solid rgba(201,168,93,.25);overflow:hidden}
.market-row{display:grid;grid-template-columns:1.3fr .8fr 1.6fr;gap:18px;padding:19px 22px;border-bottom:1px solid rgba(201,168,93,.14);align-items:center}
.market-row:last-child{border-bottom:0}.market-row strong{color:#f3ead8}.market-row span,.market-row small{color:#aeb6c4}.market-row.header{background:rgba(201,168,93,.08);font:700 11px ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase}
.learning-path{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:30px}.learning-step{padding:28px;border-left:3px solid #d8b663;background:#0c1119}.learning-step h3{color:#f1e7d4;margin:0 0 10px}.learning-step p{color:#aeb6c4;line-height:1.7;margin:0}
@media(max-width:800px){.explainer-grid,.learning-path{grid-template-columns:1fr}.market-row{grid-template-columns:1fr}.market-row.header{display:none}.research-hero{padding-top:62px}}

/* Final mobile navigation reliability */
@media (max-width: 1050px) {
  .v2-header { position: sticky; top: 0; z-index: 10000; }
  .v2-menu { position: relative; z-index: 10002; cursor: pointer; touch-action: manipulation; }
  .v2-nav {
    z-index: 10001;
    max-height: calc(100vh - 86px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-shadow: 0 18px 40px rgba(0,0,0,.55);
  }
  .v2-nav.open { display: flex !important; visibility: visible !important; opacity: 1 !important; pointer-events: auto !important; }
}

/* Universal menu controller — final */
@media (max-width:1050px) {
  .nav, .site-header, .v2-header { overflow: visible !important; }
  .menu-btn, .v2-menu { display: block !important; position: relative !important; z-index: 2147483647 !important; pointer-events: auto !important; }
  .links, .mobile-menu, .v2-nav { pointer-events: none; }
  .links.open, .mobile-menu.open, .v2-nav.open {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  .v2-nav.open {
    position: fixed !important;
    top: 72px !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    z-index: 2147483646 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  body.menu-open { overflow: hidden !important; }
}

/* VERIFIED MENU OVERLAY REPAIR — prevents the opened menu from collapsing to one row */
@media (max-width:1050px) {
  .v2-nav.open,
  .mobile-menu.open,
  .links.open {
    position: fixed !important;
    top: var(--sp-menu-top, 86px) !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    height: calc(100dvh - var(--sp-menu-top, 86px)) !important;
    min-height: calc(100vh - var(--sp-menu-top, 86px)) !important;
    max-height: none !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    align-content: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    padding: 18px 20px 42px !important;
    background: #05070a !important;
    z-index: 2147483646 !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .v2-nav.open a,
  .mobile-menu.open a,
  .links.open a {
    display: block !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 16px 8px !important;
    margin: 0 !important;
  }
}


/* Secure client access bar — injected by site-runtime-final.js */
.sp-auth-access-bar{position:relative;z-index:9999;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:9px 12px;background:#030508;border-bottom:1px solid rgba(213,177,92,.55);box-shadow:0 5px 18px rgba(0,0,0,.28);font-family:Arial,sans-serif}
.sp-auth-access-bar span{color:#b9a16e;font-size:10px;font-weight:800;letter-spacing:.16em;margin-right:4px}
.sp-auth-access-bar a{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid #756033;border-radius:4px;color:#f2dda2;background:#0a0d12;text-decoration:none;font-size:11px;font-weight:800;letter-spacing:.06em;white-space:nowrap}
.sp-auth-access-bar a:hover,.sp-auth-access-bar a:focus-visible{background:#d0aa57;color:#090b0e;outline:2px solid #fff;outline-offset:2px}
@media(max-width:640px){.sp-auth-access-bar{gap:6px;padding:8px}.sp-auth-access-bar span{flex-basis:100%;text-align:center;margin:0}.sp-auth-access-bar a{flex:1;justify-content:center;padding:7px 6px;font-size:10px}}


/* AUTH LINK REPAIR 20260730: never let mobile navigation rules disable authentication links */
.auth-layout .auth-links,.auth-layout .auth-links a{pointer-events:auto!important;visibility:visible!important;opacity:1!important}
.auth-layout .auth-links{display:grid!important;position:relative!important;z-index:20!important}

/* Anchor destination feedback */
.sp-anchor-flash{animation:spAnchorFlash 1.1s ease}
@keyframes spAnchorFlash{0%,100%{box-shadow:none}35%{box-shadow:inset 0 0 0 2px rgba(223,186,91,.55),0 0 30px rgba(223,186,91,.12)}}


/* 2026-07-31 JoshGPT mobile viewport repair */
html.josh-open, body.josh-open { overflow: hidden !important; overscroll-behavior: none; }
@media (max-width: 700px) {
  .josh-panel {
    position: fixed !important;
    inset: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)) 8px !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    grid-template-rows: 58px minmax(0, 1fr) auto 58px !important;
    overflow: hidden !important;
    z-index: 9999 !important;
  }
  .josh-panel header { min-height: 58px; padding: 0 14px !important; }
  .josh-panel header strong { font-size: 20px !important; }
  .josh-messages { min-height: 0 !important; overflow-y: auto !important; padding: 14px !important; }
  .josh-prompts { grid-template-columns: 1fr 1fr !important; max-height: 126px; overflow-y: auto; padding: 8px !important; }
  .josh-panel form { min-height: 58px; grid-template-columns: minmax(0,1fr) 82px !important; }
  .josh-panel input { min-width: 0 !important; width: 100% !important; font-size: 16px !important; padding: 12px !important; }
  .josh-panel form button { min-width: 82px; }
  .josh-launch { z-index: 9998 !important; }
}


/* 2026-08-01 JoshGPT compact mobile + active response repair */
.josh-panel form button:disabled{opacity:.65;cursor:wait}
@media (max-width:700px){
  .josh-panel{
    top:auto!important;
    left:10px!important;right:10px!important;bottom:max(10px,env(safe-area-inset-bottom))!important;
    inset:auto 10px max(10px,env(safe-area-inset-bottom)) 10px!important;
    height:min(620px,calc(100dvh - 86px))!important;
    max-height:calc(100dvh - 86px)!important;
    grid-template-rows:58px minmax(150px,1fr) auto 58px!important;
  }
  .josh-messages{max-height:none!important}
  .josh-prompts{max-height:116px!important}
}


/* 2026-08-01 JoshGPT visual viewport + message history hardening */
@media (max-width:700px){
  .josh-panel.open{height:min(620px,var(--josh-vh,calc(100dvh - 86px)))!important;max-height:var(--josh-vh,calc(100dvh - 86px))!important}
  .josh-messages{scroll-behavior:smooth;overscroll-behavior:contain}
  .josh-user,.josh-bot{overflow-wrap:anywhere;word-break:break-word}
}

/* 2026-08-02 FINAL JoshGPT mobile one-deploy repair */
.josh-panel{z-index:2147483000!important}
.josh-panel header{position:relative;z-index:3;background:#080b0f}
.josh-panel header button{min-width:44px;min-height:44px;display:grid;place-items:center;cursor:pointer}
.josh-messages{background:#080b0f}
.josh-panel.open{isolation:isolate}
@media (max-width:700px){
  html.josh-open,body.josh-open{overflow:hidden!important}
  body.josh-open::after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:2147482990;backdrop-filter:blur(2px)}
  .josh-panel,.josh-panel.open{
    position:fixed!important;
    left:8px!important;
    right:8px!important;
    top:auto!important;
    bottom:max(8px,env(safe-area-inset-bottom))!important;
    width:auto!important;
    height:auto!important;
    max-height:calc(100dvh - 16px)!important;
    min-height:0!important;
    display:none;
    grid-template-rows:58px minmax(120px,34dvh) auto 58px!important;
    overflow:hidden!important;
    border-radius:4px;
    box-shadow:0 24px 80px rgba(0,0,0,.88)!important;
  }
  .josh-panel.open{display:grid!important}
  .josh-messages{
    min-height:120px!important;
    max-height:34dvh!important;
    overflow-y:auto!important;
    padding:12px!important;
  }
  .josh-messages p{max-width:94%!important;margin-bottom:9px!important;padding:10px 12px!important;font-size:14px!important}
  .josh-prompts{
    grid-template-columns:1fr 1fr!important;
    max-height:none!important;
    overflow:visible!important;
    padding:8px!important;
    gap:7px!important;
  }
  .josh-prompts button{min-height:48px!important;font-size:12px!important;padding:8px!important}
  .josh-panel form{grid-template-columns:minmax(0,1fr) 88px!important;min-height:58px!important}
  .josh-panel input{font-size:16px!important;min-width:0!important;width:100%!important}
  .josh-panel form button{min-width:88px!important;font-size:16px!important}
}
@media (max-height:560px) and (max-width:700px){
  .josh-panel,.josh-panel.open{grid-template-rows:52px minmax(88px,25dvh) auto 54px!important}
  .josh-messages{min-height:88px!important;max-height:25dvh!important}
  .josh-prompts button{min-height:40px!important}
}
