/* The Last Plugin front-end styles. Colors come from CSS variables set inline by the plugin. */
:root { --tlp-primary: #002657; --tlp-accent: #FA4616; --tlp-ink: #343741; }
.tlp-notice { padding: 12px 16px; border-radius: 6px; background: #f4f5f7; margin: 12px 0; }
.tlp-notice.tlp-error { background: #fdecea; color: #7a1f14; }
.tlp-notice.tlp-success { background: #e7f6ec; color: #14532d; }
.tlp-form { display: grid; gap: 12px; max-width: 720px; }
.tlp-form label { display: block; font-weight: 600; margin-bottom: 4px; }
.tlp-form input[type=text], .tlp-form input[type=email], .tlp-form input[type=url], .tlp-form textarea, .tlp-form select { width: 100%; padding: 10px 12px; border: 1px solid #cfd4dc; border-radius: 6px; font: inherit; }
.tlp-btn { display: inline-block; background: var(--tlp-primary); color: #fff !important; padding: 10px 18px; border-radius: 6px; border: 0; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
.tlp-btn:hover { background: var(--tlp-accent); }
.tlp-btn.tlp-btn-outline { background: transparent; color: var(--tlp-primary) !important; border: 2px solid var(--tlp-primary); }
.tlp-paywall { position: relative; margin: 24px 0; padding: 28px; border: 1px solid #e5e7eb; border-top: 4px solid var(--tlp-accent); border-radius: 8px; background: #fff; text-align: center; }
.tlp-paywall::before { content: ""; position: absolute; left: 0; right: 0; top: -120px; height: 120px; background: linear-gradient(to bottom, rgba(255,255,255,0), #fff); pointer-events: none; }
.tlp-paywall h3 { margin: 0 0 8px; color: var(--tlp-primary); }
.tlp-tiers { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin: 20px 0; }
.tlp-tier { border: 1px solid #e5e7eb; border-radius: 8px; padding: 20px; background: #fff; text-align: center; }
.tlp-tier.tlp-tier-featured { border-color: var(--tlp-accent); box-shadow: 0 6px 20px rgba(0,0,0,.08); }
.tlp-tier .tlp-price { font-size: 28px; font-weight: 700; color: var(--tlp-primary); margin: 8px 0; }
.tlp-tier .tlp-price small { font-size: 13px; font-weight: 400; color: #6b7280; }
.tlp-tier ul { list-style: none; padding: 0; margin: 12px 0; color: #4b5563; font-size: 14px; }
.tlp-account { display: grid; gap: 20px; max-width: 720px; }
.tlp-account .tlp-card { border: 1px solid #e5e7eb; border-radius: 8px; padding: 18px; background: #fff; }
.tlp-account h3 { margin-top: 0; color: var(--tlp-primary); }
.tlp-referral-link { font-family: monospace; padding: 8px 10px; background: #f4f5f7; border-radius: 4px; word-break: break-all; }
.tlp-video { position: relative; padding-top: 56.25%; background: #000; border-radius: 8px; overflow: hidden; }
.tlp-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.tlp-video-locked { padding: 40px; text-align: center; background: var(--tlp-primary); color: #fff; border-radius: 8px; }
.tlp-episode audio { width: 100%; margin: 8px 0; }
.tlp-episode-list { list-style: none; padding: 0; }
.tlp-episode-list li { padding: 12px 0; border-bottom: 1px solid #e5e7eb; }
.tlp-nl-signup { display: flex; gap: 8px; flex-wrap: wrap; align-items: end; padding: 16px; border: 1px solid #e5e7eb; border-radius: 8px; background: #f9fafb; }
.tlp-nl-signup input[type=email] { flex: 1 1 220px; padding: 10px 12px; border: 1px solid #cfd4dc; border-radius: 6px; font: inherit; }
.tlp-sponsor { border-left: 4px solid var(--tlp-accent); padding: 10px 14px; background: #fff7f3; margin: 16px 0; font-size: 14px; }
.tlp-sponsor-label { text-transform: uppercase; letter-spacing: .08em; font-size: 11px; color: var(--tlp-accent); font-weight: 700; }

/* ---------- Publish module: contributor submission form ---------- */
.tlp-submit .tlp-submit-row-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.tlp-submit .tlp-help { display: block; margin-top: 4px; color: #6b7280; font-size: 13px; }
.tlp-submit .tlp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tlp-submit-locked a { font-weight: 600; margin-left: 6px; }

/* ---------- Video module (modules/video) ---------- */
.tlp-video-wrap { margin: 0 0 24px; }
.tlp-video { border-top: 4px solid var(--tlp-video-color, var(--tlp-primary)); }
.tlp-video-note { font-size: 13px; color: #6b7280; margin: 8px 0 0; }
.tlp-video-locked-wrap { margin: 0 0 24px; }
.tlp-video-locked { position: relative; overflow: hidden; padding: 0; background: var(--tlp-video-color, var(--tlp-primary)); }
.tlp-video-locked-thumb { position: absolute; inset: 0; background-size: cover; background-position: center; filter: blur(14px) brightness(.5); transform: scale(1.1); }
.tlp-video-locked-inner { position: relative; padding: 48px 24px; color: #fff; }
.tlp-video-locked-inner h3 { margin: 8px 0; color: #fff; }
.tlp-video-locked .tlp-lock { font-size: 32px; display: block; }
.tlp-video-locked .tlp-btn { background: var(--tlp-accent); }
.tlp-video-pricing { margin-top: 16px; }
.tlp-video-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; margin: 16px 0; }
.tlp-video-card { display: block; text-decoration: none; color: var(--tlp-ink); }
.tlp-video-card-thumb { position: relative; display: block; padding-top: 56.25%; background: #111 center / cover no-repeat; border-radius: 8px; overflow: hidden; border-bottom: 3px solid var(--tlp-video-color, var(--tlp-primary)); }
.tlp-video-card-thumb .tlp-lock { position: absolute; top: 8px; left: 8px; background: rgba(0,0,0,.6); color: #fff; border-radius: 4px; padding: 2px 6px; font-size: 14px; }
.tlp-video-card-duration { position: absolute; right: 8px; bottom: 8px; background: rgba(0,0,0,.75); color: #fff; font-size: 12px; padding: 2px 6px; border-radius: 4px; }
.tlp-video-card-title { display: block; margin-top: 8px; font-weight: 600; line-height: 1.3; }
.tlp-video-card:hover .tlp-video-card-title { color: var(--tlp-accent); }
.tlp-video-card-locked .tlp-video-card-thumb { opacity: .85; }

/* ---------- Feeds module (modules/feeds) ---------- */
.tlp-episode { margin: 0 0 20px; }
.tlp-episode-meta { font-size: 13px; color: #6b7280; margin: 4px 0 0; }
.tlp-episode-locked-wrap { margin-bottom: 20px; }
.tlp-episode-list li h3 { margin: 0 0 4px; font-size: 18px; }
.tlp-episode-list li h3 a { text-decoration: none; color: var(--tlp-primary); }
.tlp-episode-list li h3 a:hover { color: var(--tlp-accent); }
.tlp-episode-excerpt { margin: 6px 0; color: #4b5563; font-size: 15px; }
.tlp-episode-list audio { width: 100%; margin-top: 6px; }
.tlp-subscribe { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 12px 0 24px; }
.tlp-subscribe-label { font-weight: 600; margin-right: 4px; }
.tlp-subscribe .tlp-btn { padding: 6px 12px; font-size: 14px; }
.tlp-private-feed { border: 1px solid #e5e7eb; border-radius: 8px; padding: 18px; background: #fff; }
.tlp-private-feed h3 { margin-top: 0; color: var(--tlp-primary); }
.tlp-private-feed-list { list-style: none; padding: 0; margin: 0 0 12px; display: grid; gap: 10px; }

/* ---------- Newsletter module ---------- */
.tlp-nl-hp { position: absolute; left: -9999px; top: -9999px; height: 0; overflow: hidden; }
.tlp-nl-signup .tlp-nl-field { flex: 1 1 200px; }
.tlp-nl-signup .tlp-nl-field input { width: 100%; padding: 10px 12px; border: 1px solid #cfd4dc; border-radius: 6px; font: inherit; }
.tlp-nl-signup .tlp-notice { flex-basis: 100%; }
.tlp-nl-list { display: grid; gap: 24px; }
.tlp-nl-item { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 20px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; }
@media (min-width: 640px) { .tlp-nl-item:has(.tlp-nl-thumb) { grid-template-columns: 200px minmax(0, 1fr); } }
.tlp-nl-thumb img { width: 100%; height: auto; border-radius: 6px; }
.tlp-nl-title { margin: 0 0 4px; color: var(--tlp-primary); }
.tlp-nl-badge { display: inline-block; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; padding: 2px 8px; border-radius: 10px; background: #f4f5f7; color: #4b5563; vertical-align: middle; }
.tlp-nl-cadence { margin: 0 0 8px; font-size: 13px; color: #6b7280; }
.tlp-nl-prefs .tlp-nl-pref { display: block; padding: 10px 0; border-bottom: 1px solid #e5e7eb; font-weight: 400; }
.tlp-nl-prefs .tlp-nl-pref-desc { display: block; margin-left: 24px; font-size: 14px; color: #6b7280; }
.tlp-nl-message { max-width: 640px; margin: 40px auto; padding: 0 16px; }
.tlp-nl-message .tlp-card { border: 1px solid #e5e7eb; border-top: 4px solid var(--tlp-accent); border-radius: 8px; padding: 28px; background: #fff; text-align: center; }

/* ---------- Subs module: paywall, tier cards, account, registration ---------- */
.tlp-teaser { position: relative; }
.tlp-paywall p { margin: 0 0 12px; }
.tlp-meter-note { font-size: 14px; color: #6b7280; }
.tlp-paywall-login { margin-top: 16px; font-size: 14px; color: #6b7280; }
.tlp-paywall .tlp-tiers { text-align: left; }
.tlp-tiers-compact .tlp-tier { padding: 14px; }
.tlp-tiers-compact .tlp-tier .tlp-price { font-size: 22px; }
.tlp-tier { position: relative; display: flex; flex-direction: column; }
.tlp-tier .tlp-tier-name { margin: 0; color: var(--tlp-ink); font-size: 18px; }
.tlp-tier .tlp-tier-desc { color: #4b5563; font-size: 14px; }
.tlp-tier .tlp-btn { margin-top: auto; }
.tlp-tier-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--tlp-accent); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 10px; border-radius: 10px; white-space: nowrap; }
.tlp-btn-current { cursor: default; opacity: .8; }
.tlp-status { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 13px; background: #e5e7eb; color: var(--tlp-ink); }
.tlp-status-active, .tlp-status-trialing { background: #e7f6ec; color: #14532d; }
.tlp-status-past_due { background: #fdecea; color: #7a1f14; }
.tlp-status-canceled { background: #f4f5f7; color: #6b7280; }
.tlp-register { text-align: left; margin: 12px auto; }
.tlp-register .tlp-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tlp-form-note { font-size: 13px; color: #6b7280; margin: 0; }
.tlp-account .tlp-btn + .tlp-btn { margin-left: 8px; }
/* Ops module: correction notice above post content */
.tlp-correction { margin: 0 0 24px; padding: 14px 18px; border-left: 4px solid var(--tlp-accent); background: #fff7f3; border-radius: 6px; font-size: 15px; }
.tlp-correction-label { display: block; text-transform: uppercase; letter-spacing: .08em; font-size: 11px; color: var(--tlp-accent); font-weight: 700; margin-bottom: 4px; }
.tlp-correction-label time { color: #6b7280; font-weight: 400; text-transform: none; letter-spacing: 0; margin-left: 6px; }
.tlp-correction-text p:last-child { margin-bottom: 0; }
