:root{--bg:#0b0e13;--ink:#e7ecf3;--dim:#8b94a6;--line:#1b2230;--card:#11161f;--accent:#5BC8FF;--blue:#2563EB;--gold:#f4b740;--green:#22c55e}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif;margin:0}
a{color:var(--accent);text-decoration:none}
.bb-header{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:12px 28px;position:sticky;top:0;z-index:700;background:rgba(11,14,19,.94);backdrop-filter:blur(8px)}
.bb-header__l{display:flex;align-items:center;gap:10px}
.bb-mark{color:var(--accent);font-size:20px}
.bb-title{font-weight:600;font-size:15px;letter-spacing:.01em}.bb-title b{color:var(--accent);font-weight:700}
.bb-header__r{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--dim)}
.cobrand{display:inline-flex;gap:8px;align-items:center}
.cobrand img{height:26px;background:#fff;padding:4px 7px;border-radius:6px;object-fit:contain}
.prepared{font-size:12px;color:var(--dim)}
.tier-badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;text-transform:capitalize;border:1px solid var(--line)}
.tier-free{background:rgba(139,148,166,.12);color:var(--dim)}
.tier-paid{background:rgba(37,99,235,.16);color:#9dc0ff;border-color:rgba(37,99,235,.4)}
.tier-bespoke{background:rgba(244,183,64,.14);color:var(--gold);border-color:rgba(244,183,64,.4)}
.wrap{max-width:1180px;margin:0 auto;padding:32px 28px}
.eyebrow{color:var(--accent);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
h1{font-size:30px;margin:.25em 0 .1em}.sub{color:var(--dim);max-width:74ch}
.bbnav{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 6px}
.bbnav a{font-size:12px;color:var(--dim);border:1px solid var(--line);border-radius:999px;padding:6px 13px}
.bbnav a:hover{color:var(--ink);border-color:var(--accent)}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;margin-top:22px;scroll-margin-top:calc(var(--topbar-h) + 16px)}
.card h2{font-size:17px;margin:0 0 4px}.card .src{color:var(--dim);font-size:12px;margin-bottom:14px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}
th{color:var(--dim);font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase}
td.num{font-variant-numeric:tabular-nums}
.n{display:inline-block;min-width:24px;color:var(--dim);font-size:12px}
.thin{color:#f59e0b;font-size:11px}.dim{color:var(--dim)}
.label{display:inline-block;margin-top:10px;color:var(--dim);font-size:11px;border-top:1px dashed var(--line);padding-top:10px}
.pill{display:inline-block;margin-top:18px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--dim);font-size:12px}
#rentmap{height:440px;border-radius:10px;border:1px solid var(--line);background:#0a0d12;overflow:hidden}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--dim)}
.legend span{display:inline-flex;align-items:center;gap:6px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#11161f;color:#e7ecf3}
.paywall{text-align:center}.paywall__lock{font-size:30px}.paywall__body{color:var(--dim);max-width:60ch;margin:6px auto 14px}
.paywall__feat{list-style:none;padding:0;margin:0 auto 16px;max-width:520px;text-align:left;color:var(--ink);font-size:14px}
.paywall__feat li{padding:6px 0;border-bottom:1px solid var(--line)}.paywall__feat li:before{content:'\2713';color:var(--green);margin-right:8px}
.btn-primary{display:inline-block;background:var(--blue);color:#fff;font-weight:600;padding:9px 18px;border-radius:8px}
.login-cobrand{display:flex;gap:10px;justify-content:center;margin-top:18px}
.login-cobrand img{height:26px;background:#fff;padding:4px 7px;border-radius:6px}
.login-prepared{text-align:center;color:var(--dim);font-size:11px;margin-top:8px}
.cite-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:6px}
.cite{border:1px solid var(--line);border-radius:10px;padding:13px 14px;background:#0e131c}
.cite__top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.cite__topic{color:var(--accent);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.cite__val{font-size:20px;font-weight:700;margin:6px 0 2px}
.cite__claim{font-size:12.5px;color:var(--ink)}
.cite__src{font-size:11px;color:var(--dim);margin-top:8px}
@media(max-width:760px){.cite-grid{grid-template-columns:1fr 1fr}}
.reco-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:6px 0 18px}
.reco{border:1px solid var(--line);border-radius:10px;padding:14px;background:#0e131c}
.reco__top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.reco h3{font-size:14.5px;margin:0 0 6px}
.reco__rec{font-size:13px;color:var(--ink);margin:0 0 10px}
.reco__data{font-size:11.5px;color:#9dc0ff;margin-bottom:6px}
.reco__lim{font-size:11.5px;color:var(--dim)}
.syn-evid{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--line);padding-top:14px}
.syn-evid h4{font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px}
.syn-evid ul{margin:0;padding-left:16px;font-size:12.5px;color:var(--dim)}.syn-evid li{margin-bottom:5px}
@media(max-width:760px){.reco-grid,.syn-evid{grid-template-columns:1fr}}
/* ---- P4 War Room hero ---- */
.hero{background:linear-gradient(180deg,#0e141d 0%,var(--card) 60%);border-color:#243044}
.hero__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.hero__jump{font-size:12px;border:1px solid var(--line);border-radius:999px;padding:7px 14px;white-space:nowrap;color:var(--accent)}
.hero__jump:hover{border-color:var(--accent)}
.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 18px}
.kpi{display:block;border:1px solid var(--line);border-radius:12px;padding:14px 15px;background:#0e131c}
.kpi:hover{border-color:var(--accent)}
.kpi__v{font-size:24px;font-weight:700;color:var(--ink);line-height:1.05}
.kpi__u{font-size:12px;font-weight:500;color:var(--dim)}
.kpi__sub{font-size:11.5px;color:var(--dim);margin-top:7px;line-height:1.35}
.kpi__src{font-size:10.5px;color:var(--text-muted,#666);margin-top:8px;display:flex;justify-content:space-between;gap:6px;align-items:center}
.kpi__flag{color:var(--gold);border:1px solid rgba(244,183,64,.3);border-radius:999px;padding:1px 7px;font-size:9.5px;white-space:nowrap}
.hero__grid{display:grid;grid-template-columns:1.55fr 1fr;gap:16px;align-items:stretch}
.hero__mapcol{display:flex;flex-direction:column}
.hero__map-wrap{position:relative;flex:1;min-height:440px}
#hero-map{height:100%;min-height:440px;border-radius:12px;border:1px solid var(--line);background:#0a0d12;overflow:hidden}
.hero__focus{display:none;position:absolute;top:12px;left:12px;z-index:500;background:rgba(11,14,19,.86);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:12px;font-weight:600;cursor:pointer}
.hero__focus:hover{border-color:var(--accent);color:var(--accent)}
.hero__mapnote{position:absolute;bottom:10px;left:12px;z-index:500;background:rgba(11,14,19,.82);color:var(--dim);font-size:11px;padding:4px 9px;border-radius:6px;border:1px solid var(--line)}
.gpin{border-radius:50%;background:rgba(91,200,255,.32);border:1.5px solid #5BC8FF;box-sizing:border-box}
.gpin--bb{background:rgba(34,197,94,.55);border-color:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.25)}
.hero__legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:11.5px;color:var(--dim)}
.hero__legend span{display:inline-flex;align-items:center;gap:6px}
.hero__legend .dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.hero__legend .ring{width:12px;height:12px;border:1px dashed #5BC8FF;border-radius:50%;display:inline-block}
.hero__side{display:flex;flex-direction:column;gap:14px}
.bench{border:1px solid var(--line);border-radius:12px;padding:14px;background:#0e131c}
.bench__h{font-size:13px;font-weight:600;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.bench__t{width:100%;font-size:12.5px}
.bench__t th{font-size:10.5px;padding:4px 6px}
.bench__t td{padding:6px 6px;border-bottom:1px solid var(--line)}
.bench__t td:first-child{color:var(--dim)}
.bench__t td.up{color:var(--green);font-weight:600}
.bench__note{font-size:11px;color:var(--dim);margin-top:9px;line-height:1.4}
.gaps{display:flex;flex-direction:column;gap:12px}
.gap{border:1px solid var(--line);border-radius:12px;padding:12px 13px;background:#0e131c}
.gap__l{font-size:12px;font-weight:600;margin-bottom:8px}
.gap__row{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.gap__t{font-size:11px;color:var(--dim);width:64px;flex:none}
.gap__bar{flex:1;height:8px;background:#161c27;border-radius:999px;overflow:hidden}
.gap__bar i{display:block;height:100%;border-radius:999px}
.gap__v{font-size:11.5px;font-variant-numeric:tabular-nums;width:60px;text-align:right;flex:none}
.gap__note{font-size:10.5px;color:var(--text-muted,#666);margin-top:6px;line-height:1.4}
.hero__recos{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}
.hero__recos-h{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}
.hero__reco{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:999px;padding:7px 13px;background:#0e131c;font-size:12px}
.hero__reco:hover{border-color:var(--accent)}
.hero__reco-t{color:var(--ink)}
.hero__reco-c{font-size:10px;color:var(--gold);border-left:1px solid var(--line);padding-left:9px}
.leaflet-container{background:#0a0d12}
@media(max-width:900px){.kpi-strip{grid-template-columns:1fr 1fr}.hero__grid{grid-template-columns:1fr}}
/* ---- P5 Ask the War Room ---- */
.bbchat{border:1px solid var(--line);border-radius:12px;background:#0e131c;overflow:hidden}
.bbchat__msgs{max-height:440px;min-height:150px;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.bbmsg{display:flex}
.bbmsg.user{justify-content:flex-end}
.bbmsg__b{max-width:80%;font-size:13.5px;line-height:1.5;padding:11px 14px;border-radius:12px;border:1px solid var(--line)}
.bbmsg.bot .bbmsg__b{background:#121927;color:var(--ink);border-top-left-radius:3px}
.bbmsg.user .bbmsg__b{background:var(--blue);color:#fff;border:none;border-top-right-radius:3px}
.bbmsg__b strong{color:#fff}
.bbmsg.bot .bbmsg__b strong{color:var(--accent)}
.bberr{color:var(--color-error,#ff6666)}
.bbchat__suggest{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.bbchip{background:#0b1019;border:1px solid var(--line);color:var(--accent);font-size:12px;border-radius:999px;padding:6px 12px;cursor:pointer;font-family:inherit}
.bbchip:hover{border-color:var(--accent)}
.bbchat__input{display:flex;gap:10px;border-top:1px solid var(--line);padding:12px 14px;background:#0b1019}
.bbchat__input input{flex:1;background:#0e131c;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:13.5px;padding:10px 12px;font-family:inherit;outline:none}
.bbchat__input input:focus{border-color:var(--accent)}
.bbchat__input .btn-primary{border:none;cursor:pointer;font-family:inherit}
.bbsql{margin-top:10px;font-size:11.5px}
.bbsql summary{color:var(--dim);cursor:pointer}
.bbsql pre{margin-top:8px;background:#0a0d14;border:1px solid var(--line);border-radius:8px;padding:10px;overflow-x:auto;font-family:var(--font-mono,monospace);font-size:11px;color:#9dc0ff;white-space:pre-wrap}
.bbtype{display:inline-flex;gap:4px;align-items:center}
.bbtype span{width:6px;height:6px;border-radius:50%;background:var(--dim);animation:bbblink 1.2s infinite both}
.bbtype span:nth-child(2){animation-delay:.2s}.bbtype span:nth-child(3){animation-delay:.4s}
@keyframes bbblink{0%,80%,100%{opacity:.2}40%{opacity:1}}
/* ===== P2 App shell: left sidebar + full-width content (single scrolling page) ===== */
:root{--sidebar-w:248px;--topbar-h:64px}
.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;background:#0c1118;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:600}
.sidebar__brand{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;border-bottom:1px solid var(--line)}
.sidebar__brand .bb-mark{color:var(--accent);font-size:20px}
.sidebar__brand .bb-title{font-weight:600;font-size:15px}.sidebar__brand .bb-title b{color:var(--accent);font-weight:700}
.sidebar__nav{flex:1;padding:10px 10px 16px;display:flex;flex-direction:column;gap:2px}
.nav-group{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:14px 12px 6px}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;color:var(--dim);font-size:13.5px;font-weight:500;position:relative;transition:background .12s,color .12s}
.nav-item:hover{background:#121a26;color:var(--ink)}
.nav-item svg{width:17px;height:17px;flex:none;stroke-width:2}
.nav-item > span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-item.active{background:#13202e;color:var(--ink)}
.nav-item.active::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.nav-item.active svg{color:var(--accent)}
.nav-item--demo{border:1px dashed rgba(91,200,255,.45);margin-bottom:6px;color:var(--accent)}
.nav-item--demo:hover{background:rgba(91,200,255,.08);color:var(--accent)}
.nav-badge{font-size:9.5px;font-weight:700;letter-spacing:.06em;color:var(--accent);border:1px solid rgba(91,200,255,.4);border-radius:999px;padding:1px 6px}
.nav-ext{width:13px;height:13px;opacity:.55}
.sidebar__foot{border-top:1px solid var(--line);padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.sidebar__foot .cobrand img{height:22px}
.sidebar__user{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--dim);gap:8px}
.sidebar__user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.main{display:flex;flex-direction:column;min-width:0}
.topbar{position:sticky;top:0;z-index:500;min-height:var(--topbar-h);display:flex;align-items:center;gap:16px;padding:8px 24px;border-bottom:1px solid var(--line);background:rgba(11,14,19,.92);backdrop-filter:blur(8px)}
.topbar__title{display:flex;flex-direction:column;gap:5px;line-height:1.25;min-width:0}
.topbar__title .eyebrow{font-size:10px}
.topbar__title strong{font-size:15px;font-weight:700;color:var(--ink)}
.topbar__r{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:13px;color:var(--dim);white-space:nowrap}
.topbar__r .who a{color:var(--accent)}
.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:7px;cursor:pointer}
.menu-toggle svg{width:18px;height:18px;display:block}
.content{width:100%;max-width:1640px;margin:0 auto;padding:24px clamp(18px,2.6vw,44px) 56px;overflow-x:clip}
.content > .sub{margin:0 0 10px;max-width:none}
.content .card,.content .hero__grid > *{min-width:0}
.content #hero-map,.content #rentmap{max-width:100%}
.sidebar-scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:550}
.sidebar-scrim.show{display:block}
@media(max-width:1280px){:root{--sidebar-w:216px}}
@media(max-width:1080px){.content{max-width:none}}
@media(max-width:860px){
  .app{grid-template-columns:1fr}
  .sidebar{position:fixed;left:0;top:0;width:270px;transform:translateX(-100%);transition:transform .22s ease;box-shadow:none}
  .sidebar.open{transform:none;box-shadow:0 0 44px rgba(0,0,0,.55)}
  .menu-toggle{display:inline-flex}
  .topbar__r .prepared{display:none}
}
@media(max-width:640px){
  .content{padding:16px 14px 40px}
  .topbar{padding:8px 14px}
  .topbar__r .who{font-size:12px}
}
/* ===== P3 charts ===== */
.chart-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:stretch;margin:8px 0 14px}
@media(max-width:900px){.chart-grid{grid-template-columns:1fr}}
.chart-box{position:relative;height:240px;margin:6px 0 2px}
.chart-box--tall{height:440px}
.chart-cap{font-size:11px;color:var(--dim);text-align:center;margin:2px 0 14px}
.card canvas{max-width:100%}
.bbchart-box{position:relative;height:200px;margin-top:10px}
@media(max-width:560px){.chart-box{height:220px}.chart-box--tall{height:520px}}
/* ===== P4 map toolbar + expand ===== */
.map-toolbar{position:absolute;top:12px;right:12px;z-index:500;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.segmented{display:inline-flex;background:rgba(11,14,19,.86);border:1px solid var(--line);border-radius:8px;overflow:hidden;backdrop-filter:blur(4px)}
.segmented__item{background:none;border:none;color:var(--dim);font:inherit;font-size:11.5px;font-weight:600;padding:6px 10px;cursor:pointer;line-height:1}
.segmented__item:hover{color:var(--ink)}
.segmented__item.is-active{background:rgba(91,200,255,.16);color:var(--accent)}
.segmented__item:disabled{opacity:.4;cursor:not-allowed}
.map-action-button{display:inline-flex;align-items:center;gap:6px;background:rgba(11,14,19,.86);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;backdrop-filter:blur(4px)}
.map-action-button:hover{border-color:var(--accent);color:var(--accent)}
.map-action-button svg{width:14px;height:14px}
.hero__map-wrap.is-map-expanded{position:fixed;inset:clamp(8px,1.6vw,22px);z-index:2000;margin:0;background:#0a0d12;border-radius:12px;box-shadow:0 0 0 100vmax rgba(0,0,0,.62)}
.hero__map-wrap.is-map-expanded #hero-map{height:100% !important;border-radius:12px}
body.map-expanded{overflow:hidden}
@media(max-width:560px){.map-toolbar{top:8px;right:8px;gap:6px}.segmented__item{padding:5px 8px;font-size:11px}}
/* ===== P5 guided tour ===== */
.tour-spot{position:fixed;z-index:3000;border:2px solid var(--accent);border-radius:14px;box-shadow:0 0 0 9999px rgba(5,8,12,.72),0 0 22px rgba(91,200,255,.5);pointer-events:none;transition:left .25s ease,top .25s ease,width .25s ease,height .25s ease}
.tour-card{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:3001;width:min(560px,calc(100vw - 32px));background:var(--card);border:1px solid var(--accent);border-radius:14px;padding:18px 20px;box-shadow:0 24px 60px rgba(0,0,0,.6)}
.tour-card__step{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.tour-card__title{font-size:17px;font-weight:700;margin:7px 0 6px;color:var(--ink)}
.tour-card__body{font-size:13.5px;color:var(--dim);line-height:1.55}
.tour-card__actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.tour-btn{background:var(--blue);color:#fff;border:none;border-radius:8px;padding:9px 18px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.tour-btn:hover{background:#1d4ed8}
.tour-btn--ghost{background:transparent;border:1px solid var(--line);color:var(--dim)}
.tour-btn--ghost:hover{border-color:var(--accent);color:var(--ink)}
@media(max-width:560px){.tour-card{bottom:14px;padding:14px 16px}}
