/* Pair-Wise pilot surface — clean, credible product look. */
:root{
  --blue:#2563eb; --blue-dark:#1d4ed8; --blue-soft:#eff4ff;
  --ink:#0f172a; --muted:#64748b; --faint:#94a3b8;
  --line:#e2e8f0; --bg:#f4f6fb; --card:#ffffff;
  --ok-strong:#16a34a; --ok-solid:#2563eb; --ok-ok:#64748b; --ok-review:#d97706;
  --st-untouched:#94a3b8; --st-called:#d97706; --st-proposed:#2563eb; --st-closed:#16a34a; --st-lost:#dc2626;
  --shadow:0 1px 2px rgba(15,23,42,.06),0 4px 16px rgba(15,23,42,.06);
  --radius:14px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}   /* must beat .modal{display:flex} etc. */
html,body{margin:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink); background:var(--bg); line-height:1.5; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em}
button{font-family:inherit;cursor:pointer}
.muted{color:var(--muted)} .hint{color:var(--faint);font-weight:400;font-size:.82em}

/* ---- topbar ---- */
.topbar{position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;
  gap:16px;padding:12px 22px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px}
.logo{font-size:26px;color:var(--blue)}
.topbar h1{font-size:20px}
.topbar .sub{font-size:12.5px;color:var(--muted)}
.topbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 13px;border-radius:9px;font-size:13.5px;font-weight:600;transition:.12s}
.btn:hover{border-color:var(--blue);color:var(--blue)}
.btn.ghost{background:#fff}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{background:var(--blue-dark);color:#fff}
.btn.sm{padding:5px 10px;font-size:12.5px}

/* ---- kill-gate dashboard ---- */
.gate{margin:18px auto;max-width:1100px;padding:0 22px}
.gate-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:14px}
.gate-stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.gate-stat.big{border-color:#dbe4ff;background:linear-gradient(180deg,#fff,#fbfcff)}
.gate-stat .num{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1}
.gate-stat .num .den{font-size:18px;color:var(--faint);font-weight:700}
.gate-stat .num.money{color:var(--ok-strong)}
.gate-stat .lab{margin-top:6px;font-size:12.5px;color:var(--muted)}
.bar{margin-top:12px;height:9px;border-radius:6px;background:#eef2f9;overflow:hidden}
.bar-fill{height:100%;width:0;background:linear-gradient(90deg,var(--blue),var(--ok-strong));transition:width .5s}
.gate-foot{margin-top:12px;font-size:13px;color:var(--muted);text-align:center}
.gate-banner{margin-bottom:12px;padding:14px 18px;border-radius:var(--radius);background:linear-gradient(90deg,#16a34a,#15803d);
  color:#fff;font-weight:700;text-align:center;box-shadow:var(--shadow);animation:pop .4s}
@keyframes pop{from{transform:scale(.97);opacity:.4}to{transform:scale(1);opacity:1}}

/* ---- panels (help / setup) ---- */
.panel{max-width:1100px;margin:0 auto 18px;padding:20px 22px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow)}
.panel h2{font-size:17px;margin-bottom:10px}
.panel h3{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:10px}
.how{margin:10px 0;padding-left:20px} .how li{margin:6px 0}
.setup-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:26px;margin-top:8px}
.setup-col label{display:block;font-size:13px;font-weight:600;margin:12px 0 0}
.setup-col label.check{font-weight:500;display:flex;gap:8px;align-items:flex-start;margin-top:14px}
.setup-col input[type=text],.setup-col input[type=number],.setup-col select,.setup-col textarea{
  width:100%;margin-top:5px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:13.5px;font-weight:400}
.setup-col textarea{resize:vertical}
.setup-col.p0{border-left:3px solid var(--blue-soft);padding-left:22px}
.setup-actions{margin-top:18px;display:flex;align-items:center;gap:12px}
.saved-flag{color:var(--ok-strong);font-weight:700;font-size:13px}

/* ---- controls ---- */
.controls{max-width:1100px;margin:0 auto 14px;padding:0 22px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.controls input[type=search],.controls select{padding:9px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:13.5px;background:#fff}
.controls input[type=search]{flex:1;min-width:200px}
.count{margin-left:auto;color:var(--muted);font-size:13px;font-weight:600}

/* ---- pair grid ---- */
.grid{max-width:1100px;margin:0 auto 40px;padding:0 22px;display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:15px 16px;box-shadow:var(--shadow);
  cursor:pointer;transition:.13s;position:relative;display:flex;flex-direction:column;gap:10px}
.card:hover{transform:translateY(-2px);border-color:var(--blue);box-shadow:0 6px 22px rgba(37,99,235,.13)}
.card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pair-id{font-size:12px;color:var(--faint);font-weight:700}
.tier{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:20px}
.tier.strong{background:#dcfce7;color:#15803d} .tier.solid{background:#dbeafe;color:#1d4ed8}
.tier.ok{background:#f1f5f9;color:#475569} .tier.review{background:#fef3c7;color:#b45309}
.vs{display:flex;flex-direction:column;gap:8px}
.party{display:flex;gap:10px;align-items:flex-start}
.party .nm{font-weight:700;font-size:14.5px}
.party .meta{font-size:12px;color:var(--muted)}
.plus{color:var(--faint);font-weight:800;text-align:center;font-size:13px;margin:-2px 0}
.crowd{font-size:12.5px;color:var(--blue-dark);background:var(--blue-soft);padding:5px 9px;border-radius:7px;align-self:flex-start}
.card-foot{display:flex;gap:6px;margin-top:2px}
.dot{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;color:#fff;display:flex;gap:5px;align-items:center}
.statuspill{font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;border:1px solid var(--line);color:var(--muted)}
.statuspill[data-s=called]{border-color:var(--st-called);color:var(--st-called)}
.statuspill[data-s=proposed]{border-color:var(--st-proposed);color:var(--st-proposed)}
.statuspill[data-s=closed]{background:var(--st-closed);border-color:var(--st-closed);color:#fff}
.statuspill[data-s=lost]{border-color:var(--st-lost);color:var(--st-lost)}
.radio{background:#fffbeb;border:1px solid #fde68a;border-radius:9px;padding:9px 11px;font-size:12.5px;font-style:italic;color:#92400e;line-height:1.45}
.radio.big{font-size:14px;padding:13px 16px;margin:12px 0 6px;font-style:italic}
.radio.big em{display:block;margin-top:7px;font-style:normal;font-size:11.5px;color:#a16207;opacity:.85}
.party .domain{font-size:11.5px;color:var(--blue);margin-top:3px;font-weight:600;word-break:break-all}
.party .blurb{font-size:11.5px;color:var(--muted);margin-top:4px;line-height:1.4}
.badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.vbadge{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:20px;border:1px solid;white-space:nowrap}
.vbadge.ok{background:#dcfce7;border-color:#bbf7d0;color:#15803d}
.vbadge.soc{background:#dbeafe;border-color:#bfdbfe;color:#1d4ed8}
.vbadge.warn{background:#fef3c7;border-color:#fde68a;color:#b45309}
.vbadge.np{background:#ede9fe;border-color:#ddd6fe;color:#6d28d9}
.guide .context{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:9px;padding:10px 13px;margin:12px 0}
.guide .context h4{margin-top:0;color:#15803d}
.guide .context p{margin:4px 0;font-size:13px;color:#14532d}
.sidecard .blurb{font-size:12.5px;color:#475569;margin:8px 0;line-height:1.45}
.sidecard .blurb.muted{font-style:italic}
.sidecard .badges{margin:8px 0 0}

/* ---- modal ---- */
.modal{position:fixed;inset:0;z-index:60;background:rgba(15,23,42,.5);display:flex;align-items:flex-start;justify-content:center;
  padding:30px 16px;overflow:auto}
.modal-card{background:var(--bg);border-radius:18px;max-width:980px;width:100%;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal-close{position:absolute;top:14px;right:16px;border:none;background:#fff;border-radius:50%;width:34px;height:34px;font-size:15px;box-shadow:var(--shadow);z-index:2}
#modal-body{padding:24px 26px}
.mh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:4px}
.mh h2{font-size:21px}
.why{background:var(--blue-soft);color:var(--blue-dark);padding:11px 14px;border-radius:10px;font-size:13.5px;margin:12px 0 18px}
.sides{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sidecard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}
.sidecard h3{font-size:15px;text-transform:none;letter-spacing:0;color:var(--ink)}
.sidecard .role{color:var(--muted);font-size:12.5px;margin-top:2px}
.contact{font-size:13px;margin:10px 0;display:flex;flex-direction:column;gap:3px}
.contact a{color:var(--blue);text-decoration:none;font-weight:600}
.contact .needlk{color:var(--ok-review);font-weight:600;font-size:12px}
.statusrow{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}
.statusrow button{border:1px solid var(--line);background:#fff;color:var(--muted);padding:5px 9px;border-radius:7px;font-size:12px;font-weight:600}
.statusrow button.active[data-s=called]{background:var(--st-called);border-color:var(--st-called);color:#fff}
.statusrow button.active[data-s=proposed]{background:var(--st-proposed);border-color:var(--st-proposed);color:#fff}
.statusrow button.active[data-s=closed]{background:var(--st-closed);border-color:var(--st-closed);color:#fff}
.statusrow button.active[data-s=lost]{background:var(--st-lost);border-color:var(--st-lost);color:#fff}
.statusrow button.active[data-s=untouched]{background:var(--st-untouched);border-color:var(--st-untouched);color:#fff}
.sidecard textarea{width:100%;margin-top:6px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px;resize:vertical}
.sidecard .lbl{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--faint);margin-top:12px}
.sidebtns{display:flex;gap:8px;margin-top:14px}

/* ---- guide (framework) ---- */
.guide{margin-top:14px;border-top:1px dashed var(--line);padding-top:14px;display:none}
.guide.open{display:block}
.guide h4{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--blue);margin:14px 0 5px}
.guide h4:first-child{margin-top:0}
.guide p{margin:0 0 4px;font-size:13.5px}
.guide .angle{font-weight:600}
.guide ul{margin:4px 0;padding-left:18px;font-size:13.5px} .guide ul li{margin:3px 0}
.obj{margin:8px 0;font-size:13.5px}
.obj .q{font-weight:700;color:var(--ink)} .obj .a{color:#334155}
.cue{background:#fff7ed;border:1px solid #fed7aa;border-radius:9px;padding:10px 12px;margin:8px 0;font-size:13px}
.cue b{color:var(--ok-review)}
.cue.anchor{background:var(--blue-soft);border-color:#bfdbfe} .cue.anchor b{color:var(--blue-dark)}
.dont{background:#fef2f2;border:1px solid #fecaca;border-radius:9px;padding:10px 12px;margin-top:10px;font-size:12.5px}
.dont ul{padding-left:16px;margin:4px 0} .dont li{margin:2px 0;color:#991b1b}
.notes{font-size:12.5px;color:var(--muted);margin-top:10px}
.notes li{margin:3px 0}
.copybar{display:flex;gap:8px;margin-top:6px}

/* ---- one-pager overlay ---- */
.onepager{position:fixed;inset:0;z-index:80;background:var(--bg);overflow:auto;padding:24px}
.op-actions{max-width:720px;margin:0 auto 16px;display:flex;gap:10px;justify-content:flex-end}
.op-sheet{max-width:720px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:8px;padding:48px 54px;box-shadow:var(--shadow)}
.op-sheet .op-kicker{color:var(--blue);font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.op-sheet h1{font-size:27px;margin:8px 0 4px;line-height:1.15}
.op-sheet .op-sub{color:var(--muted);font-size:15px;margin-bottom:22px}
.op-sheet p{font-size:15px;line-height:1.6;margin:0 0 12px}
.op-who{display:flex;gap:14px;margin:18px 0}
.op-who .w{flex:1;border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.op-who .w .wn{font-weight:700} .op-who .w .wr{color:var(--muted);font-size:13px}
.op-terms{background:var(--blue-soft);border-radius:10px;padding:16px 20px;margin:18px 0}
.op-terms li{margin:5px 0;font-size:14px}
.op-foot{margin-top:24px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}

.footer{max-width:1100px;margin:0 auto;padding:24px 22px 40px;color:var(--faint);font-size:12.5px;text-align:center}

/* ---- responsive ---- */
@media(max-width:760px){
  .gate-grid{grid-template-columns:1fr 1fr} .setup-grid{grid-template-columns:1fr}
  .sides{grid-template-columns:1fr} .op-sheet{padding:30px 22px}
}

/* ---- print: only the one-pager ---- */
@media print{
  body>*{display:none!important}
  .onepager{display:block!important;position:static;padding:0;background:#fff}
  .onepager .no-print{display:none!important}
  .op-sheet{box-shadow:none;border:none;max-width:none;padding:0}
}
