/* nearswaps points (points.html, /points). Brand tokens from brand.css: one ground, mint only for money and the
   primary action, hairlines not gradients, every figure in JetBrains Mono (.num), 44 px touch targets.
   Phone first (390 px), widening at 760 px and 1100 px. assets/points-page.js writes the rows. */
*{box-sizing:border-box;}
body{margin:0;min-height:100vh;background:var(--ns-ground);color:var(--ns-ink);font:500 15px/1.55 var(--ns-font);}
a{color:inherit;text-decoration:none;}
button,input{font-family:inherit;font-size:inherit;color:inherit;}
button{cursor:pointer;}
[hidden]{display:none !important;}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

.page{max-width:1120px;margin:0 auto;padding:0 var(--ns-gutter) 32px;display:flex;flex-direction:column;}
.page > .topbar{border-bottom:1px solid var(--ns-line);margin:0 calc(-1 * var(--ns-gutter));padding:6px var(--ns-gutter);width:auto;}
.pt-main{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding-top:18px;}
.pt-card{background:var(--ns-card);border:1px solid var(--ns-line);border-radius:var(--ns-r-lg);padding:18px 16px;min-width:0;}
.pt-card h2{margin:0;font:700 17px/1.3 var(--ns-font);letter-spacing:-0.01em;}
.pt-upd{display:block;margin-top:2px;font-size:12px;color:var(--ns-muted);}

/* buttons: 44 px everywhere */
.pt-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--ns-touch);padding:0 18px;border-radius:var(--ns-r-pill);
  border:1px solid var(--ns-line-strong);background:transparent;color:var(--ns-ink);font:700 14px var(--ns-font);white-space:nowrap;}
.pt-primary{background:var(--ns-mint);border-color:var(--ns-mint);color:var(--ns-mint-ink);font-weight:800;}
@media (hover:hover){.pt-primary:hover{filter:brightness(1.06);}}
.pt-link{min-height:var(--ns-touch);padding:0 4px;border:0;background:none;color:var(--ns-mint);font-weight:700;text-decoration:underline;text-underline-offset:3px;}

/* hero */
.pt-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;padding:8px 2px 4px;}
.pt-eyebrow{margin:0 0 12px;}
.pt-status{display:inline-flex;align-items:center;gap:8px;min-height:28px;padding:0 12px;border-radius:var(--ns-r-pill);border:1px solid var(--ns-line-strong);
  font:700 12px var(--ns-font);letter-spacing:0.06em;text-transform:uppercase;color:var(--ns-ink);}
.pt-status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ns-body);}
.pt-status[data-state="live"]{border-color:rgb(var(--ns-mint-rgb) / 0.35);color:var(--ns-mint);}
.pt-status[data-state="live"]::before{background:var(--ns-mint);box-shadow:0 0 0 3px rgb(var(--ns-mint-rgb) / 0.18);}
.pt-hero h1{margin:0;font:800 var(--ns-fs-3xl)/1.04 var(--ns-font);letter-spacing:var(--ns-track-tight);}
.pt-lead{margin:12px 0 0;max-width:560px;color:var(--ns-body);font-size:var(--ns-fs-lg);line-height:1.5;}
.pt-lead b{color:var(--ns-ink);font-weight:600;}
.pt-stats{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0;border:1px solid var(--ns-line);border-radius:var(--ns-r-md);background:var(--ns-card);overflow:hidden;}
.pt-stat{padding:16px;min-width:0;}
.pt-stat + .pt-stat{border-left:1px solid var(--ns-line);}
.pt-stat dt{font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--ns-muted);}
.pt-stat dd{margin:8px 0 0;font-size:clamp(24px,6.4vw,36px);font-weight:500;line-height:1.05;letter-spacing:-0.03em;color:var(--ns-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* your points */
.pt-you{display:flex;flex-direction:column;gap:14px;}
.pt-you-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.pt-you-head .pt-upd{margin:0;}
.pt-you-who{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;}
.pt-wal{font:600 15px var(--ns-mono);color:var(--ns-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;}
a.pt-wal:hover{color:var(--ns-mint);text-decoration:underline;text-underline-offset:3px;}
.pt-badge{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:var(--ns-r-pill);font-size:12px;font-weight:700;color:var(--ns-mint);border:1px solid rgb(var(--ns-mint-rgb) / 0.3);}
.pt-badge.sm{height:20px;padding:0 7px;font-size:11px;margin-left:8px;vertical-align:1px;}
.pt-clear{min-height:var(--ns-touch);padding:0 14px;border-radius:var(--ns-r-pill);border:1px solid var(--ns-line);background:none;color:var(--ns-body);font-size:13px;font-weight:700;}
.pt-you-msg{margin:6px 0 0;color:var(--ns-body);font-size:15px;max-width:620px;}
.pt-ystats{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0;border:1px solid var(--ns-line);border-radius:var(--ns-r-md);overflow:hidden;}
.pt-ys{padding:14px;min-width:0;border-right:1px solid var(--ns-line);border-bottom:1px solid var(--ns-line);margin:0 -1px -1px 0;}
.pt-ys.big{grid-column:1/-1;}
.pt-ys dt{font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--ns-muted);}
.pt-ys dd{margin:6px 0 0;font-size:20px;font-weight:500;letter-spacing:-0.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pt-ys.big dd{font-size:34px;color:var(--ns-mint);}
.pt-find{display:flex;gap:8px;}
.pt-find input,.pt-board-head input{flex:1 1 auto;min-width:0;height:var(--ns-touch);padding:0 14px;border-radius:var(--ns-r-sm);border:1px solid var(--ns-line-strong);background:var(--ns-raise);color:var(--ns-ink);outline:none;font-size:15px;}
.pt-find input:focus,.pt-board-head input:focus{border-color:rgb(var(--ns-ink-rgb) / 0.4);}
.pt-find input::placeholder,.pt-board-head input::placeholder{color:var(--ns-muted);}
.pt-cta{display:flex;flex-direction:column;gap:8px;}
.pt-cta .pt-btn{width:100%;}

/* how it works */
.pt-steps{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:14px;}
.pt-steps li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;align-items:start;}
.pt-n{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--ns-line-strong);font-size:15px;font-weight:600;color:var(--ns-ink);}
.pt-steps b{display:block;font-size:16px;font-weight:700;color:var(--ns-ink);}
.pt-steps p{margin:2px 0 0;color:var(--ns-body);font-size:14.5px;}

/* leaderboard */
.pt-board{padding:0;overflow:hidden;}
.pt-board-head{display:flex;flex-direction:column;gap:10px;padding:18px 16px 14px;border-bottom:1px solid var(--ns-line);}
.pt-board-head input{flex:none;width:100%;}
.pt-tbl{width:100%;border-collapse:collapse;table-layout:fixed;}
.pt-tbl th{padding:10px 8px;text-align:left;font-size:11px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--ns-muted);border-bottom:1px solid var(--ns-line);white-space:nowrap;}
.pt-tbl td{padding:11px 8px;border-bottom:1px solid var(--ns-line);vertical-align:middle;}
.pt-tbl th:first-child,.pt-tbl td:first-child{padding-left:16px;}
.pt-tbl th:last-child,.pt-tbl td:last-child{padding-right:16px;}
.pt-tbl tr:last-child td{border-bottom:0;}
.pt-tbl .r{text-align:right;}
.pt-tbl th.rk,.pt-tbl td.rk{width:58px;}
.pt-tbl td.rk{font-size:14px;color:var(--ns-body);}
.pt-tbl th:last-child{width:34%;}
.pt-tbl td.wc{min-width:0;overflow:hidden;}
.pt-tbl td.wc .pt-wal{display:inline-block;vertical-align:middle;max-width:calc(100% - 48px);font-size:14px;}
.pt-tbl td.wc .pt-wal:only-of-type{max-width:100%;}
.pt-tbl td.pts{font-size:15px;font-weight:600;color:var(--ns-ink);white-space:nowrap;}
.pt-tbl td.num{white-space:nowrap;}
.pt-tbl tr.me td{background:rgb(var(--ns-mint-rgb) / 0.05);}
.pt-sub{display:block;margin-top:3px;font-size:12px;color:var(--ns-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hide-sm{display:none;}
.pt-empty{padding:28px 16px;color:var(--ns-body);font-size:15px;text-align:center;}
.pt-more{display:flex;justify-content:center;padding:0 16px;}
.pt-more:has(.pt-btn:not([hidden])){padding:14px 16px 16px;border-top:1px solid var(--ns-line);}

/* rules */
.pt-rules ul{margin:12px 0 0;padding:0 0 0 18px;display:grid;gap:8px;color:var(--ns-body);font-size:15px;}
.pt-rules li::marker{color:var(--ns-muted);}
.pt-rules .num{color:var(--ns-ink);}
.pt-fine{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--ns-line);color:var(--ns-muted);font-size:13px;line-height:1.6;}

@media (min-width:600px){
  .pt-cta{flex-direction:row;}
  .pt-cta .pt-btn{width:auto;}
  .pt-ystats{grid-template-columns:repeat(3,minmax(0,1fr));}
  .pt-ys.big{grid-column:auto;}
  .pt-board-head{flex-direction:row;align-items:center;justify-content:space-between;}
  .pt-board-head input{flex:0 1 280px;width:auto;}
  .hide-sm{display:table-cell;}
  .show-sm{display:none;}
  .pt-tbl th:last-child{width:22%;}
  .pt-tbl th.hide-sm{width:16%;}
}
@media (min-width:761px){
  .page{padding:0 32px 48px;}
  .page > .topbar{margin:0 -32px;padding:10px 32px;}
  .pt-main{gap:16px;padding-top:28px;}
  .pt-card{padding:22px 24px;}
  .pt-board{padding:0;}
  .pt-board-head{padding:20px 24px 16px;}
  .pt-tbl th:first-child,.pt-tbl td:first-child{padding-left:24px;}
  .pt-tbl th:last-child,.pt-tbl td:last-child{padding-right:24px;}
  .pt-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:32px;padding:20px 0 12px;}
  .pt-stat{padding:20px 22px;}
  .pt-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
  .pt-steps li{grid-template-columns:minmax(0,1fr);gap:10px;}
}
@media (min-width:1100px){
  .pt-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .pt-hero,.pt-board,.pt-rules{grid-column:1/-1;}
  .pt-steps{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:18px;}
  .pt-steps li{grid-template-columns:36px minmax(0,1fr);gap:14px;}
}
