:root{
  --ink:#0b1220; --ink-2:#3d4a5c; --ink-3:#6b7789; --ink-4:#96a1b0;
  --line:#dfe4ea; --line-2:#eef1f5; --bg:#fff; --bg-2:#f7f9fb; --bg-3:#eef2f7;
  --accent:#1a4fd6; --accent-soft:#e8eeff;
  --signal:#e8590c; --signal-soft:#fdede3;
  --pos:#0a7d4f; --pos-soft:#e4f5ec;
  --neg:#c0392b; --neg-soft:#fdeceb;
  --warn:#a86a00; --warn-soft:#fdf3e2;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--ink);
  background:var(--bg);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px}
@media(max-width:760px){.wrap{padding:0 18px}}

/* ---------------------------------------------------------------- chrome */
.topbar{border-bottom:2px solid var(--ink);background:#fff;position:sticky;top:0;z-index:20}
.topbar-in{display:flex;align-items:center;justify-content:space-between;
  gap:20px;padding:13px 0;flex-wrap:wrap}
.brand{font-size:21px;font-weight:700;letter-spacing:-.03em;text-decoration:none;
  color:var(--ink);display:inline-flex;align-items:center;gap:.42em}
.brand span{color:var(--signal)}
/* The mark. Height is tied to the wordmark so the lockup holds at any size,
   and the datum line inherits the link colour so it survives a dark bar. */
.mark{height:.62em;width:auto;overflow:visible;flex:none}
.mark polygon{fill:var(--signal)}
.mark rect{fill:currentColor}
nav.main{display:flex;gap:2px;flex-wrap:wrap}
nav.main a{font-family:var(--mono);font-size:11px;text-transform:uppercase;
  letter-spacing:.08em;font-weight:600;padding:7px 12px;color:var(--ink-3);
  text-decoration:none;border-bottom:2px solid transparent}
nav.main a:hover{color:var(--ink);background:var(--bg-2)}
nav.main a.on{color:var(--ink);border-bottom-color:var(--accent)}
nav.main a .badge{display:inline-block;background:var(--accent);color:#fff;
  border-radius:9px;padding:0 6px;margin-left:5px;font-size:10px}
.who{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);text-align:right;line-height:1.5}
.who a{color:var(--ink-3)}

/* ------------------------------------------------------------ structure */
main{padding:34px 0 70px}
.page-head{display:flex;align-items:baseline;justify-content:space-between;
  gap:16px;margin-bottom:8px;flex-wrap:wrap}
h1{font-size:29px;letter-spacing:-.028em;font-weight:700;line-height:1.15}
h2{font-size:19px;letter-spacing:-.02em;font-weight:700;margin-bottom:12px}
h3{font-size:14.5px;font-weight:600;margin-bottom:10px}
.sub{color:var(--ink-2);font-size:14.5px;max-width:78ch;margin-bottom:26px;line-height:1.6}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.split{display:grid;grid-template-columns:1.25fr 1fr;gap:30px;align-items:start}
@media(max-width:900px){.grid2,.grid3,.split{grid-template-columns:1fr}}
.mt{margin-top:26px}.mb{margin-bottom:20px}

/* --------------------------------------------------------------- panels */
.panel{border:1px solid var(--line);background:#fff}
.panel-h{background:var(--bg-2);border-bottom:1px solid var(--line);
  padding:10px 16px;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;
  letter-spacing:.11em;color:var(--ink-3);font-weight:600;
  display:flex;justify-content:space-between;align-items:center;gap:12px}
.panel-b{padding:18px}
.stat3{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  border:1px solid var(--line);border-bottom:none;background:#fff}
.stat{padding:14px 16px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.stat-l{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;
  letter-spacing:.09em;color:var(--ink-3);margin-bottom:4px}
.stat-v{font-family:var(--mono);font-size:22px;font-weight:600;letter-spacing:-.02em}
.stat-s{font-size:10.5px;color:var(--ink-4);margin-top:2px}

/* --------------------------------------------------------------- tables */
table{width:100%;border-collapse:collapse;font-size:13.5px;background:#fff}
th{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.09em;
  color:var(--ink-3);font-weight:600;text-align:left;padding:8px 10px;
  border-bottom:1.5px solid var(--ink);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid var(--line-2);vertical-align:top}
tr.clickable{cursor:pointer}
tr.clickable:hover{background:var(--bg-2)}
.num{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.src{font-family:var(--mono);font-size:10.5px;color:var(--ink-4);line-height:1.45}

/* ---------------------------------------------------------------- forms */
label{display:block;font-size:13px;font-weight:600;margin-bottom:4px}
.hint{font-size:11.5px;color:var(--ink-3);font-weight:400;line-height:1.5;margin-bottom:6px}
input[type=text],input[type=email],input[type=password],input[type=number],
input[type=url],select,textarea{
  width:100%;font-family:inherit;font-size:14px;padding:9px 11px;
  border:1px solid var(--line);background:#fff;color:var(--ink)}
textarea{font-family:var(--mono);font-size:12.5px;line-height:1.6;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-2px}
.field{margin-bottom:17px}
.fieldrow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:600px){.fieldrow{grid-template-columns:1fr}}
.suffix{position:relative}
.suffix span{position:absolute;right:11px;top:9px;font-family:var(--mono);
  font-size:12px;color:var(--ink-4)}
.suffix input{padding-right:44px}
.check{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;font-weight:400}
.check input{width:auto;margin-top:3px}

button,.btn{font-family:inherit;font-size:13.5px;font-weight:600;padding:9px 18px;
  border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;
  text-decoration:none;display:inline-block;letter-spacing:.01em}
button:hover,.btn:hover{opacity:.85}
.btn-ghost{background:#fff;color:var(--ink)}
.btn-accent{background:var(--accent);border-color:var(--accent)}
.btn-danger{background:#fff;color:var(--neg);border-color:var(--neg)}
.btn-sm{font-size:12px;padding:6px 12px}
.btnrow{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
button:disabled{opacity:.4;cursor:not-allowed}

/* ---------------------------------------------------------------- pills */
.pill{display:inline-block;font-family:var(--mono);font-size:9.5px;font-weight:600;
  padding:2px 7px;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}
.p-auto{background:var(--pos-soft);color:var(--pos)}
.p-appr,.p-pending{background:var(--warn-soft);color:var(--warn)}
.p-filt,.p-archived{background:var(--bg-3);color:var(--ink-3)}
.p-block,.p-rejected{background:var(--neg-soft);color:var(--neg)}
.p-sent,.p-approved,.p-auto_sent{background:var(--pos-soft);color:var(--pos)}
.p-hot{background:#fde8e4;color:#c0392b}
.p-warm{background:var(--warn-soft);color:var(--warn)}
.p-nurture{background:var(--accent-soft);color:var(--accent)}
.p-unqualified{background:var(--bg-3);color:var(--ink-4)}
.p-measured{background:var(--pos-soft);color:var(--pos)}
.p-modelled{background:var(--warn-soft);color:var(--warn)}
.p-low{background:var(--pos-soft);color:var(--pos)}
.p-medium{background:var(--accent-soft);color:var(--accent)}
.p-high{background:var(--warn-soft);color:var(--warn)}

/* --------------------------------------------------------------- notices */
.notice{padding:13px 16px;font-size:13.5px;line-height:1.6;margin-bottom:20px;
  border-left:3px solid var(--accent);background:var(--accent-soft)}
.notice.good{border-left-color:var(--pos);background:var(--pos-soft)}
.notice.bad{border-left-color:var(--neg);background:var(--neg-soft)}
.notice.warn{border-left-color:var(--warn);background:var(--warn-soft)}
.notice b{font-weight:600}
.empty{padding:44px 20px;text-align:center;color:var(--ink-3);font-size:14px;
  border:1px dashed var(--line);background:var(--bg-2)}

/* ------------------------------------------------------------- console */
.console{background:#0b1220;color:#d6dde8;font-family:var(--mono);font-size:11px;
  padding:15px;overflow-x:auto;line-height:1.75;white-space:pre-wrap}
.console .k{color:#7fa8ff}.console .g{color:#5fd39a}.console .y{color:#f0c674}
.console .r{color:#ff8074}.console .d{color:#6b7789}.console .w{color:#fff;font-weight:500}

/* --------------------------------------------------------------- ledger */
.led-line{padding:14px 16px;border-bottom:1px solid var(--line)}
.led-line-h{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:5px}
.led-line-l{font-size:14px;font-weight:600;display:flex;align-items:center;gap:9px}
.led-line-v{font-family:var(--mono);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}
.led-line-d{font-size:11.5px;color:var(--ink-3);line-height:1.55;font-family:var(--mono)}
.led-tot{background:var(--bg-3);padding:15px 16px;border-bottom:1px solid var(--line)}
.led-tot-row{display:flex;justify-content:space-between;font-family:var(--mono);
  font-size:12.5px;padding:4px 0}
.led-tot-row.main{font-size:21px;font-weight:600;padding:7px 0;
  border-bottom:1px solid var(--line);margin-bottom:6px}
.verdict{padding:14px 16px;font-size:13px;line-height:1.6;
  background:var(--warn-soft);border-left:3px solid var(--warn)}
.verdict.good{background:var(--pos-soft);border-left-color:var(--pos)}

.qline{display:grid;grid-template-columns:1fr 72px 60px 110px;gap:8px;padding:5px 0;
  font-size:12.5px;border-bottom:1px solid var(--line-2)}
.qline.tot{border-top:1.5px solid var(--ink);border-bottom:none;font-weight:600;
  margin-top:4px;padding-top:8px}
.qline .n{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums}

.tabs{display:flex;border-bottom:1.5px solid var(--ink);margin-bottom:20px;flex-wrap:wrap}
.tabs a{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;
  padding:8px 14px;font-weight:600;color:var(--ink-3);text-decoration:none}
.tabs a.on{background:var(--ink);color:#fff}

.mono{font-family:var(--mono)}
.small{font-size:12px}
.muted{color:var(--ink-3)}
.pos{color:var(--pos)}.neg{color:var(--neg)}
.center{max-width:430px;margin:56px auto}
.center.wide{max-width:760px}
footer{border-top:1px solid var(--line);padding:24px 0;font-family:var(--mono);
  font-size:10.5px;color:var(--ink-4)}

/* ------------------------------------------------- public pricing pages */
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:1000px){.grid4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.grid4{grid-template-columns:1fr}}

.plan{border:1px solid var(--line);background:#fff;padding:22px 20px;
  display:flex;flex-direction:column;position:relative}
.plan-hi{border:2px solid var(--ink)}
.plan-tag{position:absolute;top:-1px;left:-1px;right:-1px;background:var(--ink);
  color:#fff;font-family:var(--mono);font-size:9px;letter-spacing:.1em;
  text-transform:uppercase;padding:5px 10px;text-align:center}
.plan-hi h3{margin-top:20px}
.plan-price{font-family:var(--mono);font-size:38px;font-weight:600;
  letter-spacing:-.03em;line-height:1;margin:6px 0 10px}
.plan-price span{font-size:14px;color:var(--ink-3);font-weight:400;letter-spacing:0}
.plan-blurb{min-height:56px}
.plan-cta{width:100%;text-align:center;margin-bottom:14px}
.plan-meta{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);
  padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--line-2);
  text-transform:uppercase;letter-spacing:.07em}
ul.plan-feat{list-style:none;flex:1}
ul.plan-feat li{position:relative;padding-left:17px;margin-bottom:8px;
  font-size:12.5px;line-height:1.5;color:var(--ink-2)}
ul.plan-feat li::before{content:"";position:absolute;left:0;top:.5em;
  width:6px;height:6px;background:var(--pos)}
.plan-who{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-2);
  font-size:11.5px;color:var(--ink-3)}

.faq{border-top:1px solid var(--line);padding:16px 0}
.faq h3{margin-bottom:5px}

.cta-band{display:flex;justify-content:space-between;align-items:center;gap:26px;
  border:2px solid var(--ink);padding:26px 28px;flex-wrap:wrap;margin-top:40px}
.cta-band h2{margin-bottom:6px}
.cta-band p{max-width:66ch}

.step-card{border-top:2px solid var(--ink);padding-top:16px}
.step-n{font-family:var(--mono);font-size:11px;letter-spacing:.12em;
  color:var(--accent);font-weight:600;margin-bottom:10px}

/* ---------------------------------------------------------------- pager */
/* Only rendered when a list actually spans more than one page, so it never
   adds furniture to a short list. */
.pager{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.pager a{font-family:var(--mono);font-size:11px;text-transform:uppercase;
  letter-spacing:.08em;font-weight:600;text-decoration:none;
  padding:6px 12px;border:1px solid var(--line);color:var(--accent)}
.pager a:hover{background:var(--bg-2);border-color:var(--accent)}
.pager .off{font-family:var(--mono);font-size:11px;text-transform:uppercase;
  letter-spacing:.08em;font-weight:600;padding:6px 12px;
  border:1px solid var(--line-2);color:var(--ink-4)}
.pager-count{font-family:var(--mono);font-size:11px;color:var(--ink-3)}
