/* ============================================================================
   Sessionboard design system — the canonical style for project HTML.
   Extracted from the Sales Field Brief (the approved brand look). LIGHT theme:
   Plus Jakarta Sans, navy/blue with pastel accents, rounded cards, soft shadows.
   USE THIS for every HTML file in this project. See STYLE_GUIDE.md.
   Load Plus Jakarta Sans in <head>:
     <link rel="preconnect" href="https://fonts.googleapis.com">
     <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
     <link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;450;500;600&display=swap" rel="stylesheet">
   ============================================================================ */

:root{
  /* brand + ink */
  --p:#1e62d8; --p2:#2E70E2; --sky:#e9f1fe; --ink:#1b2742;
  --n700:#5b667d; --n500:#949db0; --n400:#b6bdca;
  --bd:#eef1f6; --cardbd:#eef0f5; --pagebg:#eef1f6;
  --navy:#1c2a51; --navy2:#223271;
  /* pastel accents (tags, badges, accent card icons) */
  --peach:#f7ecd6; --peachink:#a06a18; --lav:#ece8fb; --lavink:#5a4ad1;
  --yel:#f3f0cd; --yelink:#8f8a22; --greenbg:#e7f3dd; --greenink:#4d7c1a;
  --yelbg:#f7f0cf; --yelink2:#9a7b1e; --bluebg:#e3edfb;
  /* product/threat accents */
  --teal:#0e9a8d; --violet:#7b5cff; --green:#1d9e75;
  --font:'Plus Jakarta Sans',-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --shadow:0 18px 40px -20px rgba(22,35,63,.35);
  --radius:17px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--pagebg);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;font-weight:400}
.wrap{max-width:1060px;margin:0 auto;padding:0 22px}
h1,h2,h3{letter-spacing:-.02em;font-weight:600}
a{color:var(--p)}
.eyebrow{font-size:12.5px;font-weight:600;letter-spacing:.10em;text-transform:uppercase;color:var(--p)}
.muted{color:var(--n500)} .note{color:var(--n700);font-weight:450}

/* ===== sticky top nav + brand lock ===== */
.topnav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--bd)}
.topnav .wrap{display:flex;align-items:center;gap:18px;height:58px;overflow-x:auto}
.brandlock{display:flex;align-items:center;gap:9px;font-weight:600;font-size:15px;color:var(--ink);flex:none}
.brandlock .mk{width:26px;height:26px;border-radius:8px;background:var(--p);display:flex;align-items:center;justify-content:center;flex:none}
.brandlock .mk-img{height:30px;width:auto;display:block;flex:none}
.brandlock .brandtext{font-weight:600;font-size:16px;color:var(--ink);letter-spacing:-.01em}
.topnav nav{display:flex;gap:4px;flex:none}
.topnav a{font-size:13.5px;font-weight:500;color:var(--n700);text-decoration:none;padding:7px 11px;border-radius:9px;white-space:nowrap}
.topnav a:hover{background:var(--sky);color:var(--p)}
.topnav a.on{background:var(--sky);color:var(--p);font-weight:600}

/* ===== hero (navy gradient, rounded, soft blobs) ===== */
.hero{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:26px;margin:26px auto;padding:46px 44px;position:relative;overflow:hidden}
.hero .blob{position:absolute;border-radius:50%;filter:blur(2px);opacity:.5}
.hero .b1{width:240px;height:240px;right:-60px;top:-70px;background:radial-gradient(circle,rgba(30,98,216,.55),transparent 70%)}
.hero .b2{width:200px;height:200px;right:120px;bottom:-90px;background:radial-gradient(circle,rgba(123,92,255,.4),transparent 70%)}
.hero .pill-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;position:relative}
.hpill{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);color:#dfe7fb;font-size:12.5px;font-weight:500;padding:6px 13px;border-radius:999px}
.hero h1{font-size:38px;line-height:1.12;max-width:760px;position:relative}
.hero h1 .hl{color:#9fc0ff}
.hero .lead{color:#c4cfe8;font-size:16.5px;max-width:680px;margin-top:16px;position:relative;font-weight:450}
.hero .meta{margin-top:24px;display:flex;gap:22px;flex-wrap:wrap;position:relative;font-size:13px;color:#9fb0d4}
.hero .meta b{color:#fff;font-weight:500}

/* ===== sections ===== */
section{padding:30px 0 8px;scroll-margin-top:70px}
.sechead{display:flex;align-items:baseline;gap:14px;margin-bottom:6px}
.sechead h2{font-size:23px}
.secsub{color:var(--n700);font-size:15px;max-width:760px;margin:2px 0 20px;font-weight:450}

/* ===== grid + cards ===== */
.grid{display:grid;gap:16px}
.g4{grid-template-columns:repeat(4,1fr)} .g3{grid-template-columns:repeat(3,1fr)} .g2{grid-template-columns:repeat(2,1fr)}
@media(max-width:820px){.g4,.g3,.g2{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--cardbd);border-radius:var(--radius);padding:22px}
.card .ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;background:var(--sky)}
.card h3{font-size:16.5px;margin-bottom:7px}
.card p{color:var(--n700);font-size:14px;font-weight:450}
.quote{margin-top:12px;font-size:13.5px;color:var(--ink);background:#f6f8fb;border-left:3px solid var(--p);border-radius:0 10px 10px 0;padding:10px 13px;font-weight:500}

/* ===== KPI tiles (dashboards) ===== */
.kpis{display:flex;gap:12px;flex-wrap:wrap}
.kpi{background:#fff;border:1px solid var(--cardbd);border-radius:13px;padding:14px 16px;min-width:120px}
.kpi .v{font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.kpi .l{font-size:12px;color:var(--n700);font-weight:450;margin-top:2px}

/* ===== pills / badges / tags ===== */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid transparent}
.tag{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.04em;background:var(--sky);color:var(--p);border-radius:999px;padding:4px 10px}
.th-high{background:#fbe3e0;color:#b4453a} .th-med{background:var(--yelbg);color:var(--yelink2)}
.th-low{background:var(--greenbg);color:var(--greenink)} .th-emg{background:var(--lav);color:var(--lavink)}
.tA{color:#1d9e75;font-weight:700} .tB{color:#9a7b1e;font-weight:700} .tC{color:#949db0;font-weight:700}

/* ===== tabs + panels ===== */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.tab{display:flex;align-items:center;gap:9px;border:1px solid var(--cardbd);background:#fff;border-radius:12px;padding:11px 16px;cursor:pointer;font-weight:550;font-size:14.5px;color:var(--n700);transition:all .15s}
.tab .tdot{width:10px;height:10px;border-radius:50%;flex:none}
.tab.on{color:#fff;border-color:transparent;background:var(--p)}
.panel{display:none} .panel.on{display:block;animation:fade .2s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* ===== accordion rows (ladder / battlecards / expanders) ===== */
.exrow{background:#fff;border:1px solid var(--cardbd);border-radius:15px;overflow:hidden;margin-bottom:10px}
.exrow .exhead{display:flex;align-items:center;gap:14px;padding:16px 20px;cursor:pointer}
.exrow .chev{margin-left:auto;color:var(--n500);transition:transform .2s}
.exrow.open{border-color:var(--p);box-shadow:var(--shadow)}
.exrow.open .chev{transform:rotate(180deg)}
.exbody{max-height:0;overflow:hidden;transition:max-height .25s ease}
.exrow.open .exbody{max-height:320px}
.exbody .inner{padding:0 20px 18px}

/* ===== data table ===== */
table.dt{width:100%;border-collapse:collapse;font-size:13.5px}
table.dt th{color:var(--n700);font-weight:600;text-align:left;padding:8px 10px;border-bottom:1px solid var(--bd);font-size:12px;letter-spacing:.03em;text-transform:uppercase}
table.dt td{padding:9px 10px;border-bottom:1px solid var(--bd);color:var(--ink)}
table.dt tr:hover td{background:#f6f8fb}

/* ===== navy band (pricing / callout) ===== */
.band{background:var(--navy);border-radius:20px;color:#fff;padding:30px 32px;position:relative;overflow:hidden}
.band .blob{position:absolute;width:220px;height:220px;right:-50px;bottom:-90px;border-radius:50%;background:radial-gradient(circle,rgba(30,98,216,.45),transparent 70%)}
.band h3{font-size:21px;color:#fff;position:relative}
.band .pl{color:#c4cfe8;font-size:14.5px;font-weight:450;margin-top:6px;position:relative}
.cellgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px;position:relative}
@media(max-width:820px){.cellgrid{grid-template-columns:repeat(2,1fr)}}
.cell{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:16px}
.cell .pn{font-size:13px;font-weight:600;color:#9fc0ff;margin-bottom:6px}
.cell .pt{font-size:13px;color:#cfd8ec;font-weight:450}

footer{margin:40px auto 26px;color:var(--n500);font-size:12.5px;text-align:center}
footer b{color:var(--n700);font-weight:550}
