/* RiskDiver brand: dark navy, indigo accent, Outfit wordmark, Manrope headings, IBM Plex Sans text.
   Fonts are self-hosted (the site's security policy only allows its own fonts). */
@font-face { font-family:"Outfit"; font-weight:800; font-style:normal; font-display:swap; src:url(/static/fonts/outfit-latin-800-normal.woff2) format("woff2"); }
@font-face { font-family:"Manrope"; font-weight:700; font-style:normal; font-display:swap; src:url(/static/fonts/manrope-latin-700-normal.woff2) format("woff2"); }
@font-face { font-family:"Manrope"; font-weight:800; font-style:normal; font-display:swap; src:url(/static/fonts/manrope-latin-800-normal.woff2) format("woff2"); }
@font-face { font-family:"IBM Plex Sans"; font-weight:400; font-style:normal; font-display:swap; src:url(/static/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family:"IBM Plex Sans"; font-weight:500; font-style:normal; font-display:swap; src:url(/static/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2"); }
@font-face { font-family:"IBM Plex Sans"; font-weight:600; font-style:normal; font-display:swap; src:url(/static/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2"); }

:root {
  --bg:#0A0E1A; --surface:#131A30; --surface-2:#182040; --sunk:#0F1425; --line:#2A3252; --line-soft:#1A2036;
  --text:#E9ECF5; --ink:#FFFFFF; --ink-soft:#AEB6D6; --dim:#7F88A8;
  --brand:#7C8CFF; --brand-deep:#5B6CF0; --on-brand:#0A0E1A; --link:#C7CDFF;
  --critical:#FF6B6B; --high:#FFAB7A; --watch:#FFC857; --low:#3DDC97; --very-low:#7CB4FF;
  --raise:0 1px 0 rgba(255,255,255,.06) inset, 0 16px 36px rgba(0,0,0,.42);
  --display:"Manrope", system-ui, sans-serif; --body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  color-scheme: dark;
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font-family:var(--body); color:var(--text); background:var(--bg); line-height:1.55; }
h1, h2, h3 { font-family:var(--display); font-weight:800; color:var(--ink); letter-spacing:-.02em; line-height:1.15; }
h3 { font-weight:700; }
a { color:var(--link); }
a:hover { color:#fff; }
::selection { background:var(--brand); color:var(--on-brand); }
:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }

/* ---- header, brand, footer ---- */
.top { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; padding:.9rem 1.4rem; border-bottom:1px solid var(--line-soft); background:rgba(10,14,26,.92); position:sticky; top:0; z-index:10; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.brand { display:flex; align-items:center; gap:.6rem; text-decoration:none; }
.brand svg { flex-shrink:0; }
.wordmark { font-family:"Outfit", var(--display); font-weight:800; font-size:1.35rem; letter-spacing:-.01em; color:#fff; }
.wordmark span { color:var(--brand); }
nav { display:flex; gap:1.1rem; align-items:center; flex-wrap:wrap; font-weight:500; font-size:.95rem; }
nav a { color:var(--ink-soft); text-decoration:none; }
nav a:hover { color:#fff; }
nav a.button { color:#fff; }
nav a.button.primary { color:var(--on-brand); }
.who { color:var(--dim); font-size:.85rem; }
.inline { display:inline; margin:0; }
.link { background:none; border:0; color:var(--link); cursor:pointer; font:inherit; padding:0; }
.page { max-width:72rem; margin:0 auto; padding:1.5rem 1.2rem 3rem; }
.foot { max-width:72rem; margin:2rem auto 0; padding:2rem 1.2rem; color:var(--dim); font-size:.82rem; border-top:1px solid var(--line-soft); }
.foot a { color:var(--ink-soft); }
.foot .brand { margin-bottom:.6rem; }
.foot .wordmark { font-size:1.05rem; }

/* ---- type helpers ---- */
.hero { padding:3rem 0; max-width:46rem; }
.hero h1 { font-size:clamp(2rem, 5vw, 3.2rem); margin:.2rem 0 1rem; line-height:1.06; letter-spacing:-.03em; }
.eyebrow { text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; font-weight:600; color:var(--brand); margin:0; }
.lead { font-size:1.15rem; color:var(--ink-soft); }
.muted { color:var(--ink-soft); }
.small { font-size:.875rem; }
.center { text-align:center; }
code { background:var(--sunk); border:1px solid var(--line); color:var(--text); padding:.15rem .35rem; border-radius:6px; word-break:break-all; }

/* ---- surfaces ---- */
.card { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:1.4rem; margin-bottom:1rem; box-shadow:var(--raise); }
.card h2, .card h3 { margin-top:0; }
.narrow { max-width:28rem; margin:2rem auto; }
.notice { padding:.75rem .95rem; border-radius:10px; background:rgba(124,140,255,.12); border:1px solid rgba(124,140,255,.35); color:var(--text); }
.notice.error { background:rgba(255,107,107,.1); border-color:rgba(255,107,107,.45); color:#FFC2C2; }
.cta { background:var(--surface-2); border:2px solid var(--brand); box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 28px 60px rgba(0,0,0,.55), 0 0 40px rgba(124,140,255,.18); }
.cta p { color:var(--ink-soft); }

/* ---- forms and buttons ---- */
label { display:block; font-weight:600; margin:.8rem 0; color:var(--ink); }
input, select, textarea { display:block; width:100%; margin-top:.3rem; padding:.7rem .8rem; background:var(--sunk); color:#fff; border:1px solid var(--line); border-radius:10px; font:inherit; }
input::placeholder, textarea::placeholder { color:var(--dim); }
input:focus, select:focus, textarea:focus { outline:2px solid var(--brand); outline-offset:1px; border-color:var(--brand); }
.button { display:inline-flex; align-items:center; justify-content:center; padding:.62rem 1.15rem; border-radius:10px; border:1px solid var(--line); background:transparent; color:#fff; text-decoration:none; font:inherit; font-weight:600; cursor:pointer; text-align:center; }
.button:hover { border-color:#3D4670; color:#fff; }
.button.primary { background:var(--brand); border-color:var(--brand); color:var(--on-brand); }
.button.primary:hover { filter:brightness(1.08); color:var(--on-brand); }
.wide { width:100%; }
.danger { color:var(--critical); margin-top:.8rem; }
.searchbar { display:flex; gap:.5rem; align-items:flex-end; flex-wrap:wrap; }
.searchbar input { flex:1; min-width:14rem; margin:0; height:3.3rem; padding:0 1rem; font-size:1rem; }
.searchbar .button { height:3.3rem; padding:0 1.4rem; }
.searchbar .grow { flex:1; margin:0; }

/* ---- risk bands ---- */
.badge { display:inline-block; padding:.12rem .55rem; border-radius:7px; font-weight:700; font-size:.8rem; letter-spacing:.04em; color:#fff; background:var(--line); }
.badge.big { font-size:1.35rem; padding:.2rem .8rem; border-radius:9px; }
.badge.band-critical, .band-critical .badge { background:#3A1620; color:#FF8A8A; }
.badge.band-high { background:#3A1E14; color:var(--high); }
.badge.band-watch { background:#3A2E12; color:#FFD27A; }
.badge.band-low { background:#12301F; color:#6EE7B0; }
.badge.band-very_low { background:#132A45; color:var(--very-low); }
.stat.band-critical strong { color:var(--critical); } .stat.band-high strong { color:var(--high); }
.stat.band-watch strong { color:var(--watch); } .stat.band-low strong { color:var(--low); } .stat.band-very_low strong { color:var(--very-low); }
.tag { display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.04em; padding:.12rem .45rem; border-radius:6px; background:var(--sunk); border:1px solid var(--line); color:var(--ink-soft); }
.tag.critical { background:#3A1620; color:#FF8A8A; border-color:#5A2838; }

/* ---- app: portfolio, company, signals ---- */
.page-head { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; flex-wrap:wrap; margin-bottom:1rem; }
.page-head h1 { margin:0; }
.stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(8rem, 1fr)); gap:.6rem; margin-bottom:1rem; }
.stat { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:.85rem; box-shadow:var(--raise); }
.stat strong { display:block; font-family:var(--display); font-weight:800; font-size:1.6rem; color:#fff; }
.stat span { color:var(--ink-soft); font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; }
.table { width:100%; border-collapse:collapse; }
.table th, .table td { text-align:left; padding:.65rem .45rem; border-bottom:1px solid var(--line-soft); vertical-align:top; }
.table th { font-size:.75rem; color:var(--dim); font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
.table tr:hover td { background:rgba(255,255,255,.02); }
.result { display:flex; gap:.6rem; align-items:center; justify-content:space-between; padding:.8rem 0; border-bottom:1px solid var(--line-soft); flex-wrap:wrap; }
.result select { width:auto; margin:0; }
.signal { display:flex; justify-content:space-between; gap:1rem; padding:.75rem .9rem; border-left:4px solid var(--line); background:var(--sunk); border-radius:8px; margin-bottom:.5rem; }
.sev-critical { border-left-color:var(--critical); } .sev-high { border-left-color:var(--high); } .sev-medium { border-left-color:var(--watch); } .sev-low { border-left-color:var(--very-low); }
.scoreline { display:flex; align-items:center; gap:.6rem; margin:.4rem 0 0; }
.share { margin:.6rem 0 1rem; display:flex; gap:.8rem; align-items:center; flex-wrap:wrap; }
.share .notice { flex-basis:100%; }

/* ---- plans ---- */
.plans { display:grid; grid-template-columns:repeat(auto-fit, minmax(15rem, 1fr)); gap:1.2rem; align-items:stretch; }
.plan { display:flex; flex-direction:column; border-radius:16px; }
.plan h2, .plan h3 { margin:0; }
.plan ul { padding-left:1.1rem; color:var(--ink-soft); flex:1; }
.plan li { margin:.35rem 0; }
.plan.current { border-color:var(--brand); box-shadow:0 0 0 2px var(--brand) inset, var(--raise); }
.plan.popular { background:var(--surface-2); border:2px solid var(--brand); box-shadow:0 1px 0 rgba(255,255,255,.08) inset, 0 28px 60px rgba(0,0,0,.55), 0 0 40px rgba(124,140,255,.18); position:relative; }
.plan .ribbon { position:absolute; top:-.8rem; left:1.4rem; padding:.2rem .6rem; border-radius:999px; background:var(--brand); color:var(--on-brand); font-size:.72rem; font-weight:700; letter-spacing:.05em; }
.price { font-family:var(--display); font-size:2.4rem; font-weight:800; margin:.5rem 0; color:#fff; }
.price span { font-family:var(--body); font-size:.95rem; font-weight:400; color:var(--dim); }
.count { padding:.7rem .85rem; background:var(--sunk); border:1px solid var(--line); border-radius:10px; font-weight:600; color:#fff; }
#pricing { margin:2.5rem 0; }

/* ---- homepage ---- */
.home-hero { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:3.5rem; align-items:center; padding:3.5rem 0 3rem; }
.home-hero h1 { font-size:clamp(2.1rem, 4.6vw, 3.6rem); line-height:1.05; letter-spacing:-.03em; margin:.8rem 0 1rem; }
.pill { display:inline-flex; align-items:center; gap:.5rem; padding:.3rem .75rem; border:1px solid var(--line); border-radius:999px; font-size:.82rem; font-weight:500; color:var(--low); }
.pill i { width:.5rem; height:.5rem; border-radius:50%; background:var(--low); }
.glass-stage { position:relative; padding:1.5rem 0; }
.glass-glow { position:absolute; inset:12% 10%; border-radius:50%; background:var(--brand); opacity:.16; filter:blur(70px); }
.glass { position:relative; background:rgba(19,26,48,.55); backdrop-filter:blur(20px) saturate(140%); -webkit-backdrop-filter:blur(20px) saturate(140%); border:1px solid rgba(255,255,255,.16); border-radius:18px; box-shadow:0 1px 0 rgba(255,255,255,.18) inset, 0 -1px 0 rgba(0,0,0,.3) inset, 0 40px 90px rgba(0,0,0,.55), 0 12px 30px rgba(0,0,0,.35); overflow:hidden; font-size:.82rem; }
.glass-top { display:flex; justify-content:space-between; padding:.75rem 1rem; border-bottom:1px solid rgba(255,255,255,.08); color:var(--ink-soft); }
.glass-top strong { color:#fff; font-weight:600; }
.glass-kpis { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:.6rem; padding:1rem; border-bottom:1px solid rgba(255,255,255,.08); }
.glass-kpis div { padding:.7rem .85rem; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:10px; }
.glass-kpis small { display:block; font-size:.68rem; color:var(--dim); text-transform:uppercase; letter-spacing:.08em; }
.glass-kpis b { font-family:var(--display); font-weight:800; font-size:1.55rem; color:#fff; }
.glass-row { display:grid; grid-template-columns:1.7fr .8fr .5fr .9fr; gap:.5rem; align-items:center; padding:.62rem 1rem; border-bottom:1px solid rgba(255,255,255,.07); }
.glass-row span:first-child { color:#fff; font-weight:500; } .glass-row span:nth-child(2) { color:var(--dim); } .glass-row b { font-weight:700; }
.glass-signal { margin:.8rem 1rem 1rem; padding:.85rem 1rem; background:rgba(58,22,32,.6); border:1px solid rgba(255,138,138,.3); border-radius:12px; }
.glass-signal p { margin:.2rem 0 0; } .glass-signal .when { color:#FF8A8A; font-weight:700; letter-spacing:.06em; font-size:.72rem; }
.c-critical { color:var(--critical); } .c-high { color:var(--high); } .c-watch { color:var(--watch); } .c-low { color:var(--low); }
.proof { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:var(--raise); margin:0 0 3rem; }
.proof div { padding:1.3rem 1.4rem; border-right:1px solid var(--line); }
.proof div:last-child { border-right:0; }
.proof b { display:block; font-family:var(--display); font-weight:800; font-size:1.45rem; color:#fff; }
.proof span { color:var(--ink-soft); font-size:.9rem; }
.section { padding:2.5rem 0; border-top:1px solid var(--line-soft); }
.section-head { max-width:40rem; margin-bottom:1.6rem; }
.section-head h2 { font-size:clamp(1.6rem, 3.4vw, 2.3rem); margin:.5rem 0 0; }
.how { display:grid; grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr)); gap:1.2rem; margin:1rem 0 2rem; }
.how h2, .how h3 { font-size:1.1rem; margin-top:0; }
.step-no { display:inline-flex; width:2.4rem; height:2.4rem; align-items:center; justify-content:center; border-radius:10px; background:var(--brand); color:var(--on-brand); font-family:var(--display); font-weight:800; margin-bottom:.8rem; }

/* ---- legal and help ---- */
.legal { max-width:48rem; margin:0 auto; }
.legal h2 { font-size:1.15rem; margin-top:1.6rem; }
.help-thread { display:grid; gap:.8rem; }
.help-msg { max-width:46rem; }
.help-user { justify-self:end; text-align:right; }
.help-who { font-size:.75rem; color:var(--dim); margin-bottom:.2rem; }
.help-body { white-space:pre-wrap; display:inline-block; text-align:left; padding:.7rem .9rem; border-radius:12px; background:var(--surface); border:1px solid var(--line); }
.help-user .help-body { background:rgba(124,140,255,.16); border-color:rgba(124,140,255,.35); }

/* ---- public search pages ---- */
.crumbs { margin:.2rem 0 .8rem; color:var(--dim); }
.crumbs a { color:var(--dim); }
.hero.tight { padding:1.2rem 0 1.4rem; }
.hero.tight h1 { font-size:clamp(1.7rem, 4vw, 2.4rem); }
.split { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:1rem; align-items:start; }
.facts { width:100%; border-collapse:collapse; }
.facts th, .facts td { text-align:left; padding:.55rem .4rem; border-bottom:1px solid var(--line-soft); vertical-align:top; }
.facts th { width:42%; color:var(--dim); font-weight:600; }
.events { list-style:none; padding:0; margin:0; }
.events li { padding:.6rem 0; border-bottom:1px solid var(--line-soft); }
.events .when { display:inline-block; min-width:9.5rem; color:var(--dim); font-weight:600; }
.linklist { padding-left:1.1rem; }
.linklist li { margin:.3rem 0; }
.linklist.cols { columns:2 22rem; }
.sectors { list-style:none; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(16rem,1fr)); gap:1rem; }
.cardlink { display:block; text-decoration:none; color:var(--text); }
.cardlink:hover { border-color:var(--brand); color:var(--text); }
.cardlink span { display:block; margin-top:.3rem; }
.pager { display:flex; gap:1rem; justify-content:center; margin:1.5rem 0; }
.prose { max-width:46rem; }
.prose h2 { margin-top:2rem; }
.prose li { margin:.35rem 0; }
.guides-strip { margin:2rem 0; }

/* ---- small screens ---- */
@media (max-width: 900px) {
  .home-hero { grid-template-columns:1fr; gap:2rem; padding-top:2rem; }
  .proof { grid-template-columns:1fr 1fr; }
  .proof div:nth-child(2) { border-right:0; }
  .proof div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
}
@media (max-width: 760px) {
  .split { grid-template-columns:1fr; }
  .top { padding:.8rem 1rem; }
  nav { gap:.8rem; font-size:.9rem; }
  nav .hide-sm { display:none; }
  .proof { grid-template-columns:1fr; }
  .proof div { border-right:0; border-bottom:1px solid var(--line); }
  .glass-row { grid-template-columns:1.5fr .5fr .9fr; } .glass-row span:nth-child(2) { display:none; }
  .plan.popular { transform:none; }
}
@media (prefers-reduced-motion: no-preference) { .button, .cardlink, nav a { transition:color .15s, border-color .15s, filter .15s; } }

/* ---- conversion: sample alert, ticks, welcome ---- */
.sample-alert { margin:1rem 0; padding:.85rem 1rem; background:rgba(255,200,87,.08); border:1px dashed rgba(255,200,87,.45); border-radius:12px; }
.sample-alert p { margin:.4rem 0 0; font-size:.92rem; }
.ticks { list-style:none; padding:0; margin:.6rem 0 1rem; }
.ticks li { padding:.4rem 0 .4rem 1.7rem; position:relative; color:var(--ink-soft); }
.ticks li::before { content:"✓"; position:absolute; left:0; color:var(--low); font-weight:700; }

.legal-lines p { margin:.25rem 0; }
.foot .legal-lines { margin:.7rem 0 .9rem; }

label.check { display:flex; gap:.7rem; align-items:flex-start; font-weight:500; }
label.check input { width:auto; margin:.25rem 0 0; }
.linkish { background:none; border:0; padding:0; margin:0; font:inherit; color:var(--link); text-decoration:underline; cursor:pointer; text-align:left; }
.checks { list-style:none; padding:0; margin:.4rem 0 .6rem; }
.checks li { display:flex; align-items:flex-start; gap:.7rem; padding:.55rem 0; border-bottom:1px solid var(--line-soft); }
.checks .what { flex:1; min-width:0; line-height:1.4rem; }
.checks li:last-child { border-bottom:0; }
.checks .mark { flex:0 0 1.4rem; height:1.4rem; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:.8rem; }
.checks .clear .mark { background:#12301F; color:#6EE7B0; }
.checks .found .mark { background:#3A1E14; color:var(--high); }
.checks .found { font-weight:600; }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
