/* Member portal on the homepage's tokens (the pt-* classes are used by portal.js). */
.pt-head { margin-bottom: 24px; }
.pt-card { background: var(--h-panel, #111114); border: 1px solid var(--h-line, #26262C); border-radius: var(--h-radius, 18px); padding: 20px; margin: 0 0 16px; }
.pt-card h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font-size: 17px; font-weight: 700; letter-spacing: -.01em; }
.pt-card h2 img { width: 32px; height: 32px; border-radius: 9px; }
.pt-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid var(--h-line-soft, #1C1C21); }
.pt-item:first-of-type { border-top: 0; }
.pt-sub { color: var(--h-muted, #A1A1AA); font-size: 14px; line-height: 1.5; }
.pt-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 38px; padding: 0 16px; border-radius: 11px; border: 1px solid var(--h-line, #26262C); background: var(--h-panel-2, #18181C); color: var(--h-text, #FAFAFA); font: 600 14px/1 var(--h-font, "Geist", sans-serif); text-decoration: none; cursor: pointer; white-space: nowrap; }
.pt-btn:hover { border-color: var(--h-muted, #A1A1AA); }
.pt-btn.primary { background: var(--h-accent, #F50332); border-color: var(--h-accent, #F50332); color: var(--h-on-accent, #fff); }
.pt-btn.primary:hover { background: var(--h-accent-hot, #FF2D55); border-color: var(--h-accent-hot, #FF2D55); }
.pt-btn[disabled] { opacity: .55; cursor: not-allowed; }
.pt-tag { display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--h-panel-2, #18181C); color: var(--h-muted, #A1A1AA); }
.pt-tag.green { background: color-mix(in srgb, var(--h-good, #22C55E) 14%, transparent); color: var(--h-good, #22C55E); }
.pt-tag.red { background: color-mix(in srgb, var(--h-accent, #F50332) 14%, transparent); color: var(--h-accent-hot, #FF6B87); }
.pt-tag.amber { background: rgba(245, 158, 11, .14); color: #F59E0B; }
.pt-q { display: grid; gap: 8px; margin: 0 0 18px; }
.pt-q label { font-weight: 600; font-size: 14px; }
.pt-q input, .pt-q textarea, .pt-q select { width: 100%; box-sizing: border-box; min-height: 42px; padding: 9px 12px; border-radius: 11px; border: 1px solid var(--h-line, #26262C); background: var(--h-sunken, #0C0C0F); color: var(--h-text, #FAFAFA); font: 400 15px/1.45 var(--h-font, "Geist", sans-serif); }
.pt-q input:focus, .pt-q textarea:focus { outline: none; border-color: var(--h-accent, #F50332); box-shadow: 0 0 0 3px var(--h-accent-soft, rgba(245, 3, 50, .15)); }
.pt-q textarea { min-height: 130px; resize: vertical; }
.pt-err { color: var(--h-accent-hot, #FF6B87); font-size: 13.5px; }
.pt-doc { line-height: 1.7; font-size: 15.5px; }
.pt-doc h2, .pt-doc h3, .pt-doc h4 { margin: 22px 0 8px; letter-spacing: -.01em; }
.pt-doc blockquote { margin: 10px 0; padding: 4px 14px; border-left: 3px solid var(--h-line, #26262C); color: var(--h-muted, #A1A1AA); }
.pt-doc code { font-family: var(--h-mono, "Geist Mono", monospace); font-size: .92em; padding: 2px 6px; border-radius: 6px; background: var(--h-panel-2, #18181C); }
.pt-doc a { color: var(--h-text, #FAFAFA); }
/* loading placeholder */
.pt-loading { display: grid; gap: 10px; }
.pt-loading span { height: 14px; border-radius: 7px; background: linear-gradient(90deg, var(--h-sunken, #0C0C0F), var(--h-panel-2, #18181C), var(--h-sunken, #0C0C0F)); background-size: 200% 100%; animation: pt-shimmer 1.4s ease-in-out infinite; }
.pt-loading span:nth-child(2) { width: 70%; } .pt-loading span:nth-child(3) { width: 45%; }
@keyframes pt-shimmer { from { background-position: 100% 0; } to { background-position: -100% 0; } }
@media (prefers-reduced-motion: reduce) { .pt-loading span { animation: none; } }
