/* OSINT Atlas site theme v2 (SITE_V2=1 builds only): carries the landing-page look (navy glow bands, cyan/blue/violet
   gradients, gradient pill buttons, 16px lifting cards, 800-weight headings) across every page. Loaded after
   /styles.css and /auth/*.css; only overrides presentation, never layout logic. Light + dark via the existing variables. */
:root,[data-theme="light"]{
  --v2-a:#4f8cff;--v2-b:#22d3ee;--v2-c:#a78bfa;--v2-navy:#070b16;--v2-navy2:#0b1224;
  --v2-grad:linear-gradient(90deg,#22d3ee,#4f8cff 50%,#a78bfa);--v2-btn:linear-gradient(90deg,#4f8cff,#22d3ee);
  --bg:#f5f7fb;--bg-accent:#ffffff;--card:#ffffff;--border:#e2e7f0;--border-strong:#cfd6e3;
  --accent:#2f5bea;--accent-soft:#eaf1ff;--chip-active-bg:#eaf1ff;--chip-active-border:#4f8cff;--chip-active-text:#1d47c9;
  --shadow:0 1px 2px rgba(10,20,50,.04),0 6px 20px rgba(10,20,50,.06);--shadow-hover:0 14px 34px rgba(79,140,255,.18);
  --radius:16px;--radius-sm:12px;--ring:0 0 0 3px rgba(79,140,255,.3);
}
[data-theme="dark"]{
  --bg:#070b16;--bg-accent:#0a1020;--card:#0e1528;--text:#e8eefc;--muted:#9aa7c2;--border:#1b2541;--border-strong:#2a3658;
  --accent:#7cb4ff;--accent-soft:#13224a;--federal:#7cb4ff;--federal-bg:#13224a;--federal-border:#28407a;
  --chip-active-bg:#13224a;--chip-active-border:#4f8cff;--chip-active-text:#a9c8ff;
  --shadow:0 1px 2px rgba(0,0,0,.45),0 8px 24px rgba(0,0,0,.35);--shadow-hover:0 14px 38px rgba(34,211,238,.12),0 8px 24px rgba(0,0,0,.45);
  --ring:0 0 0 3px rgba(79,140,255,.35);
}
[data-theme="dark"] body{background:radial-gradient(1000px 420px at 60% -120px,rgba(30,58,138,.35),transparent 70%),var(--bg)}

/* ---- type ---- */
h1,h2{font-weight:800;letter-spacing:-.025em}
h3{font-weight:700;letter-spacing:-.015em}
.section h2,.prose h2,.landing-sec h2,.legal h2,.cl-entry h2{font-weight:800;letter-spacing:-.02em}
.landing-sec h2{font-size:1.15rem}

/* ---- topbar ---- */
.topbar{position:sticky}
.topbar::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--v2-grad);opacity:.35;pointer-events:none}
.brand{font-weight:800}

/* ---- buttons ---- */
.btn{border-radius:10px;transition:transform .15s,box-shadow .15s,border-color .15s,background-color .15s,color .15s}
.btn:hover{border-color:var(--v2-a);background:var(--card);transform:translateY(-1px)}
.btn-primary,.btn-primary:hover,[data-theme="dark"] .btn-primary,.btn-suggest,[data-theme="dark"] .btn-suggest{
  background:var(--v2-btn);border:0;color:#04101f;font-weight:700;border-radius:999px;box-shadow:0 6px 22px rgba(34,211,238,.28)}
.btn-primary{padding-left:16px;padding-right:16px}
.btn-primary:hover,.btn-suggest:hover{filter:none;transform:translateY(-2px);box-shadow:0 10px 32px rgba(34,211,238,.45)}
.btn-primary.btn-sm,.card-actions .btn-primary{box-shadow:0 3px 12px rgba(34,211,238,.25);padding-left:14px;padding-right:14px}
.btn-big{border-radius:999px;padding:14px;font-size:1.02rem}
.btn-block.btn-primary{padding-top:12px;padding-bottom:12px}
.btn:focus-visible{box-shadow:var(--ring)}
.theme-icon-btn{border-radius:10px}

/* ---- hero bands (app home, static pages, guides, 404, contact) ---- */
.hero,.static-hero{position:relative;overflow:hidden;isolation:isolate;margin:22px 0 26px;padding:52px 32px 44px;border-radius:24px;color:#e8eefc;
  background:radial-gradient(900px 380px at 50% -20%,#1e3a8a 0%,transparent 62%),linear-gradient(180deg,var(--v2-navy) 0%,var(--v2-navy2) 100%);
  border:1px solid rgba(120,160,255,.18);box-shadow:0 24px 60px rgba(10,25,70,.22)}
.static-hero{padding:44px 32px 38px}
.hero::before,.static-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(120,160,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,255,.08) 1px,transparent 1px);background-size:44px 44px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 20%,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 20%,#000 25%,transparent 75%)}
.hero::after,.static-hero::after{content:"";position:absolute;z-index:-1;pointer-events:none;width:520px;height:520px;left:50%;top:-300px;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(34,211,238,.24),rgba(79,140,255,.1) 40%,transparent 70%);animation:v2Pulse 7s ease-in-out infinite}
.static-hero::after{left:18%}
@keyframes v2Pulse{50%{opacity:.6;transform:translateX(-50%) scale(1.08)}}
.hero h1,.hero h2.pg-title,.static-hero h1{color:#fff;font-weight:800;letter-spacing:-.03em;line-height:1.08;text-shadow:0 2px 30px rgba(79,140,255,.35)}
.hero h1::after,.hero h2.pg-title::after,.static-hero h1::after{content:"";display:block;width:72px;height:4px;border-radius:4px;margin:16px auto 0;background:var(--v2-grad);box-shadow:0 0 18px rgba(34,211,238,.55)}
.static-hero h1::after{margin-left:0}
.hero h1,.hero h2.pg-title{font-size:clamp(1.9rem,4.4vw,2.9rem)}
.static-hero h1{font-size:clamp(1.8rem,4vw,2.6rem)}
.hero p,.static-hero p{color:#b6c2dc}
.hero a:not(.btn),.static-hero a:not(.btn){color:#a5f3fc}
.static-notes{color:#8e9ac0!important}
.hero .btn:not(.btn-primary),.static-hero .btn:not(.btn-primary){border:1px solid rgba(255,255,255,.22);color:#fff;background:rgba(255,255,255,.06)}
.hero .btn:not(.btn-primary):hover{border-color:rgba(165,243,252,.6);background:rgba(255,255,255,.1)}
/* app landing hero: search bar sits on the band like the landing page's demo bar */
.landing-hero{padding:56px 28px 40px}
.gs-form{color:var(--text);border-radius:16px;border-color:transparent;box-shadow:0 18px 50px rgba(0,0,0,.35),0 0 0 1px rgba(120,160,255,.25)}
.gs-form .gs-q,.gs-form .gs-state{color:var(--text)}
.gs-form:focus-within{box-shadow:0 18px 50px rgba(0,0,0,.35),0 0 0 3px rgba(34,211,238,.45)}
.gs-form .btn-primary{border-radius:12px}
.guide-row .guide-lbl{color:#8e9ac0}
.guide-row a{color:#a5f3fc!important}
.ta-list{color:var(--text);border-radius:14px}

/* ---- cards & panels ---- */
.search-card,.results-tools,.nsopw,.start-here,.help-toc,.preview-box,.osint-intro{border-radius:18px;border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow)}
.search-card{position:relative;overflow:hidden}
.search-card::before,.preview-box::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--v2-grad)}
.preview-box{position:relative;overflow:hidden;border-left:1px solid var(--border)}
.search-card h2{font-weight:800}
.results-tools{border-radius:14px}
.card{border-radius:16px;transition:transform .2s,border-color .2s,box-shadow .2s}
.card:hover{transform:translateY(-2px);border-color:var(--v2-a);box-shadow:var(--shadow-hover)}
.card h3{font-weight:700}
.nsopw{transition:transform .2s,border-color .2s,box-shadow .2s}.nsopw:hover{transform:translateY(-2px);border-color:var(--v2-a)}
.start-here{border-left:1px solid var(--border);position:relative;overflow:hidden}
.start-here::before,.osint-intro::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--v2-b),var(--v2-a))}
.osint-intro{position:relative;overflow:hidden;border-left:1px solid var(--border);padding-left:1.25rem}
.empty{border-radius:14px}
.dym{border-radius:12px}

/* tiles, topics, guide list: landing "popular searches" card style */
.tile,.osint-topic,.guide-list a{position:relative;overflow:hidden;border-radius:16px;background:var(--card);border:1px solid var(--border);transition:transform .2s,border-color .2s,box-shadow .2s}
.tile:hover,.osint-topic:hover,.osint-topic:focus-visible,.guide-list a:hover{transform:translateY(-3px);border-color:var(--v2-a);box-shadow:var(--shadow-hover)}
.tile::before,.guide-list a::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--v2-b),var(--v2-a));opacity:.9}
.tile .ico{background:linear-gradient(135deg,rgba(34,211,238,.16),rgba(79,140,255,.16));color:var(--v2-a)}
[data-theme="dark"] .tile .ico{color:#7dd3fc}
.tile-t{font-weight:700}
.guide-list{gap:14px}
.guide-list a{padding:18px 40px 18px 20px;font-weight:700}
.guide-list a::after{content:"\2192";position:absolute;right:16px;top:16px;color:var(--v2-a);transition:transform .2s}
.guide-list a:hover::after{transform:translateX(4px)}
.guide-list span{font-weight:400}
.osint-topic{font-weight:600}
.osint-topic .mono,.osint-topic .ico{color:var(--v2-a)}

/* numbered steps: gradient discs */
.guide-steps li::before,[data-theme="dark"] .guide-steps li::before{background:linear-gradient(135deg,var(--v2-b),var(--v2-a));color:#04101f;font-weight:800;box-shadow:0 4px 14px rgba(34,211,238,.3)}
.guide-steps h3 a{font-weight:700}

/* pills / chips / badges */
.pills span{border-radius:999px}
.pills input:checked+span{background:linear-gradient(90deg,rgba(34,211,238,.14),rgba(79,140,255,.16));border-color:var(--v2-a);color:var(--chip-active-text);font-weight:700}
.recent li a,.help-toc a{border-radius:999px}
.recent li a:hover,.help-toc a:hover{border-color:var(--v2-a)}
.badge.b-info{font-weight:600}

/* inputs */
select,input[type=text],input[type=search],input[type=email],input[type=password],textarea{border-radius:10px}
select:focus,input:focus,textarea:focus{border-color:var(--v2-a);box-shadow:var(--ring)}

/* sidebar */
.tabs [role=tab][aria-selected=true]{background:linear-gradient(90deg,rgba(34,211,238,.12),rgba(79,140,255,.08) 60%,transparent);color:var(--accent);border-left-color:var(--v2-b)}
.tabs [role=tab]{border-radius:10px}

/* ---- sex offender lookup ---- */
.sor-tool{position:relative;overflow:hidden;padding:22px;border:1px solid var(--border);border-radius:18px;background:var(--card);box-shadow:var(--shadow)}
.sor-tool::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--v2-grad)}
.sor-tool h2{font-weight:800}
.sor-tool input,.sor-tool select{border-radius:10px!important}
.sor-msg{font-weight:600}

/* ---- auth / account / legal: card floats on a navy glow band ---- */
body.auth-page:not(.lp){background:
  radial-gradient(900px 300px at 50% 0,rgba(30,58,138,.9),transparent 70%),
  linear-gradient(180deg,var(--v2-navy) 0,var(--v2-navy2) 320px,var(--bg) 320px) no-repeat,var(--bg)}
body.auth-page:not(.lp) .topbar{background:rgba(7,11,22,.6);border-bottom-color:rgba(120,160,255,.18)}
body.auth-page:not(.lp) .topbar .brand{color:#fff}
body.auth-page:not(.lp) .topbar .btn:not(.btn-primary){background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.2);color:#fff}
body.auth-page:not(.lp) .topbar .btn:not(.btn-primary):hover{border-color:rgba(165,243,252,.6)}
body.auth-page:not(.lp) .brand-mark{background-image:url(/mark-dark.svg)}
.auth-card{position:relative;overflow:hidden;border-radius:20px;border:1px solid var(--border);box-shadow:0 30px 70px rgba(10,25,70,.25);padding:32px}
[data-theme="dark"] .auth-card{box-shadow:0 30px 70px rgba(0,0,0,.5),0 0 0 1px rgba(120,160,255,.12)}
.auth-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--v2-grad)}
.auth-card h1{font-weight:800;letter-spacing:-.025em;font-size:1.65rem}
.auth-card input[type=email],.auth-card input[type=password],.auth-card input[type=text]{border-radius:10px;padding:11px 13px}
.auth-card .btn:not(.btn-primary){border-radius:999px}
.acct dd{font-weight:700}
.auth-foot a{color:inherit}

/* footer */
footer{border-top:1px solid var(--border)}
footer a:hover{color:var(--accent)}

/* dialogs */
dialog{border-radius:20px;border:1px solid var(--border);overflow:hidden}
dialog::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--v2-grad)}

/* ---- coverage maps (/coverage/ and the home page map) ---- */
.cov-legend{display:flex;flex-wrap:wrap;gap:8px 10px;margin:0 0 18px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--card);box-shadow:var(--shadow);color:var(--muted);font-size:.86rem}
.cov-legend span{display:inline-flex;align-items:center;padding:3px 10px 3px 6px;border:1px solid var(--border);border-radius:999px;background:var(--bg)}
.cov-legend i{width:14px!important;height:14px!important;border-radius:4px!important;margin-right:7px!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.cov-sec{position:relative;overflow:hidden;margin:0 0 16px;padding:18px 20px 16px;border:1px solid var(--border);border-radius:18px;background:var(--card);box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s}
.cov-sec::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--v2-grad)}
.cov-sec:hover{border-color:var(--v2-a);box-shadow:var(--shadow-hover)}
.cov-sec summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800;font-size:1.08rem;letter-spacing:-.015em;color:var(--text)}
.cov-sec summary::-webkit-details-marker{display:none}
.cov-sec summary::after{content:"";flex:0 0 auto;width:10px;height:10px;border-right:2px solid var(--v2-a);border-bottom:2px solid var(--v2-a);transform:rotate(45deg);transition:transform .2s;margin-right:4px}
.cov-sec[open] summary::after{transform:rotate(-135deg)}
.cov-sec .cov-map{max-width:640px;margin:14px auto 4px}
.cov-sec .cov-note{margin:8px 0 0}
/* clickable tiles + popup card (coverage.js) */
.cov-map g[data-st]{cursor:pointer;outline:none}
.cov-map g[data-st] rect{transition:filter .15s,stroke-width .15s;stroke:transparent;stroke-width:0}
.cov-map g[data-st]:hover rect{filter:brightness(1.12) saturate(1.1)}
[data-theme="dark"] .cov-map g[data-st]:hover rect{filter:brightness(1.3)}
.cov-map g[data-st]:focus-visible rect,.cov-map g.cov-sel rect{stroke:#22d3ee;stroke-width:3px;filter:drop-shadow(0 0 6px rgba(34,211,238,.7))}
.cov-pop{position:absolute;z-index:60;width:248px;max-width:calc(100vw - 20px);padding:14px 16px 14px;border:1px solid var(--border);border-radius:16px;background:var(--card);color:var(--text);
  box-shadow:0 18px 50px rgba(10,25,70,.25),0 0 0 1px rgba(79,140,255,.12);overflow:hidden;animation:v2In .18s ease}
[data-theme="dark"] .cov-pop{box-shadow:0 18px 50px rgba(0,0,0,.55),0 0 0 1px rgba(120,160,255,.18)}
.cov-pop::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--v2-grad)}
.cov-pop-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cov-pop-h strong{font-size:1.05rem;font-weight:800;letter-spacing:-.015em}
.cov-pop-x{flex:0 0 auto;width:28px;height:28px;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--muted);font:inherit;font-size:1.1rem;line-height:1;cursor:pointer}
.cov-pop-x:hover{color:var(--text);border-color:var(--v2-a)}
.cov-pop p{margin:0}
.cov-pop-map{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:2px 0 8px!important}
.cov-pop-cov{font-weight:700;font-size:1rem;color:#1d4ed8}
[data-theme="dark"] .cov-pop-cov{color:#7dd3fc}
.cov-pop-n{margin-top:4px!important;color:var(--muted);font-size:.92rem}
.cov-pop-sheet{position:fixed;left:10px!important;right:10px;bottom:10px;top:auto!important;width:auto;max-width:none;border-radius:18px;padding:16px 18px 18px}
[data-theme="dark"] .cov-map rect[fill="#e5e7eb"]{fill:#1e2a47}
[data-theme="dark"] .cov-map text[fill="#374151"]{fill:#aebbd8}
[data-theme="dark"] .cov-legend i[style*="#e5e7eb"]{background:#1e2a47!important;box-shadow:inset 0 0 0 1px rgba(174,187,216,.35)}
@media (max-width:620px){.cov-sec{padding:14px 12px 12px;border-radius:16px}.cov-legend{font-size:.8rem}}

/* ---- subtle fade-in (CSS only; replays when an app view is shown) ---- */
@keyframes v2In{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
main>*,.auth-card{animation:v2In .55s ease backwards}
main>*:nth-child(2){animation-delay:.06s}main>*:nth-child(3){animation-delay:.12s}main>*:nth-child(n+4){animation-delay:.16s}
#main>section>*{animation:v2In .5s ease backwards}

/* ---- mobile ---- */
@media (max-width:620px){
  .hero,.static-hero{margin:14px 0 18px;padding:32px 20px 28px;border-radius:20px}
  .landing-hero{padding:30px 14px 24px}
  .hero h1,.hero h2.pg-title,.static-hero h1,.landing-hero h1{font-size:1.75rem}
  #homeView .hero{padding:26px 18px 22px}
  .gs-form{border-radius:14px}
  .sor-tool{padding:18px}
  .auth-card{padding:24px 20px;margin-top:28px}
  .guide-list a{padding:16px 38px 16px 18px}
}
@media (prefers-reduced-motion:reduce){
  main>*,.auth-card,#main>section>*{animation:none}
  .hero::after,.static-hero::after{animation:none}
  .btn:hover,.card:hover,.tile:hover,.guide-list a:hover,.osint-topic:hover,.nsopw:hover{transform:none}
}
@media print{.hero,.static-hero{background:none;color:#000;box-shadow:none;border:0}.hero h1,.static-hero h1,.hero h2.pg-title{color:#000;text-shadow:none}.hero h1::after,.static-hero h1::after,.hero h2.pg-title::after{display:none}.hero::before,.hero::after,.static-hero::before,.static-hero::after{display:none}}
/* Oct 23: collapsible search-result sections (app.js sectionHtml -> <details class="rs-sec">), same header/chevron as .cov-sec on /coverage/ */
.rs-sec{margin:18px 0}
.rs-sec>summary{list-style:none;cursor:pointer;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border:1px solid var(--border);border-radius:16px;background:var(--card);box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent}
.rs-sec>summary::-webkit-details-marker{display:none}
.rs-sec>summary::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--v2-grad)}
.rs-sec>summary::after{content:"";flex:0 0 auto;width:10px;height:10px;border-right:2px solid var(--v2-a);border-bottom:2px solid var(--v2-a);transform:rotate(45deg);transition:transform .2s;margin:0 4px 4px 0}
.rs-sec[open]>summary::after{transform:rotate(-135deg);margin:4px 4px 0 0}
.rs-sec>summary:hover{border-color:var(--v2-a);box-shadow:var(--shadow-hover)}
.rs-sec>summary:focus-visible{outline:2px solid var(--v2-a);outline-offset:3px}
.rs-sec>summary h2{margin:0;font-size:1.08rem;font-weight:800;letter-spacing:-.015em;color:var(--text)}
.rs-sec .rs-n{color:var(--muted);font-weight:700}
.rs-sec[open]>summary{margin-bottom:12px}
.rs-sec>.sub{margin:0 4px 12px}
@media (max-width:620px){.rs-sec>summary{padding:12px 14px;border-radius:14px}.rs-sec>summary h2{font-size:1rem}}
@media print{.rs-sec>summary{box-shadow:none;border:0;padding:0;background:none}.rs-sec>summary::before,.rs-sec>summary::after{display:none}}
/* Oct 23: federal tools view header (app.js fedHead): same .hero + .search-card as the other section pages */
.fed-card{margin-bottom:22px}
.fed-card>.sub{margin:0 0 14px}
.fed-card .results-head{margin:0 0 6px;padding-top:14px;border-top:1px solid var(--border)}
.fed-card #summary{font-size:1.05rem;font-weight:700;letter-spacing:-.01em}
.fed-card .active-filters{margin:2px 0 8px}
.fed-card .results-tools{border:0;box-shadow:none;background:none;padding:0;margin:10px 0 0;border-radius:0}
@media (max-width:620px){#resultsHero{padding:26px 18px 22px}#resultsHero p{display:none}.fed-card{padding:18px}}
@media print{#resultsHero{display:none}.fed-card{border:0;box-shadow:none;padding:0}.fed-card::before{display:none}}

