/* Pro portal — layered on site.css. Mobile-first: a DJ works this on a phone. */
body.portal{background:#f4f7f9}
.pf-wrap{max-width:1080px;margin-inline:auto;padding-inline:16px}
.pf-main{padding:22px 16px 60px}

.pf-head{background:var(--ink);color:#fff;position:sticky;top:0;z-index:20}
.pf-head .pf-wrap{display:flex;align-items:center;gap:18px;height:58px}
.pf-logo{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font:800 1.1rem/1 var(--sans);letter-spacing:-.03em}
.pf-logo .logo-place{color:#dce8f0;font-weight:500}
.pf-logo .logo-word{color:#fff}
.pf-tag{background:var(--sun);color:#fff;font:700 .62rem/1 var(--sans);text-transform:uppercase;letter-spacing:.08em;padding:4px 7px;border-radius:6px;margin-left:2px}
.pf-nav{margin-left:auto;display:flex;gap:16px}
.pf-nav a{color:#b9cfdc;text-decoration:none;font-size:.9rem}
.pf-nav a:hover,.pf-nav a.on{color:#fff}
@media (max-width:560px){.pf-nav{gap:12px;font-size:.85rem}.pf-nav a{font-size:.85rem}}

.pf-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.pf-bar h1{font-size:1.5rem;margin:0}
.pf-bar .muted{margin:2px 0 0;font-size:.9rem}

.pf-empty{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px 24px;text-align:center}
.pf-empty p{margin:0 0 8px}

/* pool grid */
.pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.pf-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;text-decoration:none;color:inherit;transition:.14s ease;box-shadow:var(--shadow-sm)}
.pf-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--line-2);color:inherit}
.pf-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.pf-event{font:700 1.05rem/1.2 var(--sans);color:var(--ink)}
.pf-age{font-size:.75rem;color:var(--good);font-weight:600;white-space:nowrap}
.pf-when{color:var(--bay-dk);font-weight:600;font-size:.9rem;margin:4px 0 12px}
.pf-facts{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:.85rem;color:var(--ink-2)}
.pf-facts li{display:grid;grid-template-columns:64px 1fr;gap:8px}
.pf-facts span{color:var(--muted)}
.pf-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:.78rem}
.pf-locked{color:var(--muted)}
.pf-claims{color:var(--muted);font-weight:600}

/* single lead */
.pf-back{margin:0 0 14px}
.pf-back a{text-decoration:none;font-size:.9rem}
.pf-lead-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px}
.pf-lead-head h1{font-size:1.5rem;margin:0 0 2px}
.pf-lead-head p{margin:0;font-size:.85rem}
.pf-h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:24px 0 10px}
.pf-detail{background:#fff}
.pf-detail th{width:130px;color:var(--muted);font:600 .8125rem/1.4 var(--sans);text-transform:none;letter-spacing:0}
.pf-contact th{color:var(--ink)}

/* unlock */
.pf-unlock{margin-top:22px;display:grid;grid-template-columns:1fr 1.2fr;gap:20px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px}
@media (max-width:640px){.pf-unlock{grid-template-columns:1fr}}
.pf-unlock-mask{background:var(--bg-soft);border:1px dashed var(--line-2);border-radius:12px;padding:16px;display:grid;gap:10px}
.pf-mask-row{display:flex;justify-content:space-between;font-size:.9rem;filter:blur(.3px)}
.pf-mask-row span{color:var(--muted)}
.pf-mask-row b{color:var(--ink-2);letter-spacing:1px}
.pf-unlock-cta p{margin:0 0 10px}

.pf-credits .tag{font-size:.7rem}

/* auth + join */
.pf-auth{max-width:400px;margin:8vh auto 0;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:28px;box-shadow:var(--shadow-sm)}
.pf-auth-wide{max-width:640px}
.pf-auth h1{font-size:1.5rem;margin-top:0}
.pf-auth-foot{margin:18px 0 0;text-align:center;font-size:.9rem;color:var(--muted)}
.pf-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:2px 14px}
.pf-checks .check{margin-bottom:4px;font-size:.9rem}

.pf-foot{border-top:1px solid var(--line);padding:22px 0;margin-top:20px}
.pf-foot p{margin:0;font-size:.85rem;color:var(--muted)}
.pf-foot a{color:var(--bay-dk)}
