/* =====================================================================
   GovLink – Public site (layout + every page that uses it)
   Dark navy glass with blue, gold, green and red accents (matches the landing page).
   Used by Pages/Shared/_PublicLayout.cshtml.
   Rules are prefixed with body.pl so they win over any page-level styles.
   ===================================================================== */
:root {
    --pl-ink: #050a16;
    --pl-navy: #0a1430;
    --pl-panel: rgba(16, 26, 54, .58);
    --pl-panel-strong: rgba(14, 23, 48, .86);
    --pl-border: rgba(255, 255, 255, .09);
    --pl-border-strong: rgba(255, 255, 255, .16);
    --pl-text: #eef2fb;
    --pl-muted: #9aa6c3;
    --pl-blue: #3b82f6;
    --pl-blue-2: #60a5fa;
    --pl-gold: #f2b33d;
    --pl-gold-2: #ffd77a;
    --pl-green: #22c55e;
    --pl-green-2: #4ade80;
    --pl-red: #ef4444;
    --pl-red-2: #fb7185;
    --pl-cyan: #22d3ee;
    --pl-radius: 20px;
    --pl-ease: cubic-bezier(.22, .8, .24, 1);
    --pl-shadow: 0 30px 70px -30px rgba(0, 0, 0, .85), inset 0 1px 0 rgba(255, 255, 255, .08);
}

/* ---------- base ---------- */
html { scroll-behavior: smooth; }
body.pl {
    margin: 0; min-height: 100vh; display: flex; flex-direction: column; overflow-x: hidden;
    font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    color: var(--pl-text); background: var(--pl-ink); -webkit-font-smoothing: antialiased;
    /* Bootstrap tokens */
    --bs-body-bg: transparent; --bs-body-color: var(--pl-text); --bs-secondary-color: var(--pl-muted);
    --bs-border-color: var(--pl-border-strong); --bs-link-color: var(--pl-blue-2); --bs-link-hover-color: #93c5fd;
    --bs-link-color-rgb: 96, 165, 250; --bs-link-hover-color-rgb: 147, 197, 253;
    --bs-emphasis-color: #fff; --bs-heading-color: #fff; --bs-tertiary-bg: rgba(255,255,255,.04);
    /* community page tokens */
    --gl-green: #22c55e; --gl-green-dark: #16a34a; --gl-gold: #f2b33d; --gl-danger: #ef4444; --gl-text: #eef2fb; --gl-muted: #9aa6c3;
}
body.pl h1, body.pl h2, body.pl h3, body.pl h4, body.pl h5, body.pl h6,
body.pl .h1, body.pl .h2, body.pl .h3, body.pl .h4, body.pl .h5, body.pl .h6 {
    font-family: "Sora", "Plus Jakarta Sans", system-ui, sans-serif; letter-spacing: -.015em; color: #fff;
}
body.pl ::selection { background: rgba(242, 179, 61, .35); }
body.pl .text-muted, body.pl .text-secondary, body.pl .text-gray-800 + .text-muted { color: var(--pl-muted) !important; }
body.pl .text-gray-800, body.pl .text-dark { color: #fff !important; }
body.pl .text-primary { color: var(--pl-blue-2) !important; }
body.pl .text-success { color: var(--pl-green-2) !important; }
body.pl .text-warning { color: var(--pl-gold) !important; }
body.pl .text-info { color: var(--pl-cyan) !important; }
body.pl .text-danger { color: var(--pl-red-2) !important; }
body.pl .text-white-50 { color: rgba(255,255,255,.7) !important; }
body.pl hr { border-color: var(--pl-border-strong); opacity: 1; }
body.pl code { color: var(--pl-gold-2); }

/* ambient background */
.pl-bg { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden;
    background: radial-gradient(1100px 650px at 85% -5%, #0d1d45 0%, transparent 60%), radial-gradient(900px 600px at -5% 105%, #0b2a20 0%, transparent 60%), var(--pl-ink); }
.pl-bg i { position: absolute; border-radius: 50%; opacity: .45; animation: pl-drift 26s ease-in-out infinite alternate; }
.pl-bg .o1 { width: 520px; height: 520px; right: -140px; top: -140px; background: radial-gradient(circle, rgba(59,130,246,.5), transparent 65%); }
.pl-bg .o2 { width: 420px; height: 420px; left: -160px; bottom: -140px; background: radial-gradient(circle, rgba(34,197,94,.4), transparent 65%); animation-duration: 32s; }
.pl-bg .o3 { width: 300px; height: 300px; right: 25%; bottom: -120px; background: radial-gradient(circle, rgba(239,68,68,.28), transparent 65%); animation-duration: 36s; }
.pl-bg .o4 { width: 260px; height: 260px; left: 35%; top: 8%; background: radial-gradient(circle, rgba(242,179,61,.26), transparent 65%); animation-duration: 30s; }
.pl-bg .grid { position: absolute; inset: 0; border-radius: 0; opacity: 1; animation: none;
    background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size: 56px 56px; mask-image: radial-gradient(ellipse 80% 60% at 50% 20%, #000 20%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 20%, #000 20%, transparent 75%); }
@keyframes pl-drift { 0% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(30px,24px,0) scale(1.08); } 100% { transform: translate3d(-24px,-18px,0) scale(.95); } }

/* ---------- buttons ---------- */
.pl-btn { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; border-radius: 13px; font-weight: 700; text-decoration: none;
    padding: .65rem 1.2rem; border: 1px solid transparent; white-space: nowrap; line-height: 1.2;
    transition: transform .2s var(--pl-ease), box-shadow .25s, background .25s, border-color .25s, color .25s; }
.pl-btn-sm { padding: .48rem .95rem; font-size: .88rem; border-radius: 11px; }
.pl-btn-gold, body.pl .btn-login, body.pl .btn-glass-primary {
    color: #241600 !important; border: 0;
    background: linear-gradient(135deg, var(--pl-gold-2), var(--pl-gold) 55%, #d98f14);
    box-shadow: 0 10px 28px -10px rgba(242,179,61,.7), inset 0 1px 0 rgba(255,255,255,.5); }
.pl-btn-gold:hover, body.pl .btn-login:hover, body.pl .btn-glass-primary:hover {
    color: #241600 !important; transform: translateY(-2px); box-shadow: 0 16px 34px -10px rgba(242,179,61,.85), inset 0 1px 0 rgba(255,255,255,.5); }
.pl-btn-ghost { color: #fff; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.pl-btn-ghost:hover { color: #fff; background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.32); transform: translateY(-2px); }

body.pl .btn { border-radius: 12px; font-weight: 600; }
body.pl .btn-primary, body.pl .btn-confirm-primary {
    color: #fff; border: 0; background: linear-gradient(135deg, #2563eb, var(--pl-blue) 60%, var(--pl-blue-2));
    box-shadow: 0 10px 26px -12px rgba(59,130,246,.8), inset 0 1px 0 rgba(255,255,255,.25); }
body.pl .btn-primary:hover, body.pl .btn-confirm-primary:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 32px -12px rgba(59,130,246,.9), inset 0 1px 0 rgba(255,255,255,.25); }
body.pl .btn-success { color: #04230f; border: 0; background: linear-gradient(135deg, var(--pl-green-2), var(--pl-green)); }
body.pl .btn-danger { border: 0; background: linear-gradient(135deg, var(--pl-red-2), var(--pl-red)); }
body.pl .btn-warning { color: #241600; border: 0; background: linear-gradient(135deg, var(--pl-gold-2), var(--pl-gold)); }
body.pl .btn-outline-secondary, body.pl .btn-outline-dark, body.pl .btn-secondary, body.pl .btn-light {
    color: #fff; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.2); }
body.pl .btn-outline-secondary:hover, body.pl .btn-outline-dark:hover, body.pl .btn-secondary:hover, body.pl .btn-light:hover { color: #fff; background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.35); }
body.pl .btn-outline-primary { color: var(--pl-blue-2); border-color: rgba(96,165,250,.5); }
body.pl .btn-outline-primary:hover { color: #fff; background: var(--pl-blue); border-color: var(--pl-blue); }
body.pl .btn-outline-danger { color: var(--pl-red-2); border-color: rgba(251,113,133,.5); }
body.pl .btn-outline-danger:hover { color: #fff; background: var(--pl-red); border-color: var(--pl-red); }
body.pl .btn-link { color: var(--pl-blue-2); }
body.pl .btn-link:hover { color: #93c5fd; }
body.pl .btn:focus-visible, body.pl .pl-btn:focus-visible, body.pl a:focus-visible { outline: 2px solid var(--pl-gold); outline-offset: 2px; box-shadow: none; }

/* ---------- nav ---------- */
.pl-nav { position: fixed; z-index: 1030; top: 0; left: 0; right: 0; padding: 12px 0; transition: padding .3s, background .3s, box-shadow .3s; }
.pl-nav.is-solid, .pl-nav.is-open { padding: 8px 0; background: rgba(5,10,22,.78); box-shadow: 0 10px 30px -18px rgba(0,0,0,.9);
    backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%); border-bottom: 1px solid var(--pl-border); }
.pl-wrap { width: min(1220px, 100% - 40px); margin-inline: auto; }
.pl-nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pl-brand { display: inline-flex; align-items: center; gap: 10px; font-family: "Sora", sans-serif; font-weight: 800; font-size: 1.28rem; color: #fff !important; text-decoration: none; }
.pl-brand b { background: linear-gradient(90deg, var(--pl-gold-2), var(--pl-gold)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pl-brand-mark { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center;
    background: linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.04)); border: 1px solid rgba(255,255,255,.16); }
.pl-brand-mark img { width: 26px; height: 26px; object-fit: contain; }
.pl-links { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.pl-links a { position: relative; display: inline-flex; align-items: center; gap: 6px; color: var(--pl-muted); text-decoration: none; font-weight: 600; font-size: .92rem;
    padding: .5rem .8rem; border-radius: 10px; transition: color .2s, background .2s; }
.pl-links a:hover { color: #fff; background: rgba(255,255,255,.06); }
.pl-links a.is-active { color: #fff; background: rgba(255,255,255,.08); }
.pl-links a.is-active::after { content: ""; position: absolute; left: 50%; bottom: 3px; width: 16px; height: 3px; margin-left: -8px; border-radius: 3px;
    background: linear-gradient(90deg, var(--pl-gold), var(--pl-green)); }
.pl-actions { display: flex; align-items: center; gap: 8px; }
.pl-user { display: inline-flex; align-items: center; gap: 8px; padding: 4px 10px 4px 4px; border-radius: 999px; color: #fff; text-decoration: none;
    background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); font-weight: 600; font-size: .88rem; }
.pl-user:hover { color: #fff; background: rgba(255,255,255,.12); }
.pl-user .av { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-size: .78rem; font-weight: 800; color: #241600;
    background: linear-gradient(135deg, var(--pl-gold-2), var(--pl-gold)); }
.pl-burger { display: none; width: 42px; height: 42px; border-radius: 12px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.06); color: #fff; }
.pl-mobile { display: none; }
@media (max-width: 991.98px) {
    .pl-links, .pl-actions .pl-hide-sm { display: none; }
    .pl-burger { display: inline-grid; place-items: center; }
    .pl-mobile { display: block; overflow: hidden; max-height: 0; transition: max-height .4s var(--pl-ease); }
    .pl-nav.is-open .pl-mobile { max-height: 80vh; }
    .pl-mobile-inner { display: grid; gap: 4px; padding: 14px 0 6px; }
    .pl-mobile a { display: flex; align-items: center; gap: 12px; color: #dbe4fb; text-decoration: none; font-weight: 600; padding: .75rem .9rem; border-radius: 12px; }
    .pl-mobile a i { width: 20px; text-align: center; color: var(--pl-gold); }
    .pl-mobile a:hover, .pl-mobile a.is-active { background: rgba(255,255,255,.07); color: #fff; }
    .pl-mobile .pl-mobile-cta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--pl-border); }
    .pl-mobile .pl-mobile-cta form { margin: 0; }
    .pl-mobile .pl-mobile-cta .pl-btn { width: 100%; }
}

/* ---------- main & footer ---------- */
.pl-main { flex: 1 0 auto; padding: 110px 0 70px; }
.pl-main > .container { animation: pl-rise .6s var(--pl-ease) both; }
@keyframes pl-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

.pl-footer { position: relative; margin-top: 40px; border-top: 1px solid var(--pl-border); background: linear-gradient(180deg, rgba(10,20,48,.4), rgba(5,10,22,.9)); }
.pl-footer::before { content: ""; position: absolute; top: -1px; left: 0; right: 0; height: 2px;
    background: linear-gradient(90deg, transparent, var(--pl-blue), var(--pl-gold), var(--pl-green), var(--pl-red), transparent); opacity: .7; }
.pl-footer-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 34px; padding: 54px 0 36px; }
.pl-footer h6 { font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--pl-gold) !important; margin-bottom: 14px; font-family: "Plus Jakarta Sans", sans-serif; }
.pl-footer p { color: var(--pl-muted); font-size: .9rem; line-height: 1.6; margin: 14px 0 0; max-width: 340px; }
.pl-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.pl-footer ul a, .pl-footer ul span { color: #c3cde6; text-decoration: none; font-size: .9rem; display: inline-flex; align-items: center; gap: 8px; }
.pl-footer ul a:hover { color: #fff; }
.pl-footer ul i { width: 16px; color: var(--pl-muted); }
.pl-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding: 18px 0 26px; border-top: 1px solid var(--pl-border); color: var(--pl-muted); font-size: .82rem; }
.pl-footer-bottom strong { color: #dbe4fb; }
@media (max-width: 991.98px) { .pl-footer-top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 575.98px) { .pl-footer-top { grid-template-columns: 1fr; gap: 26px; } .pl-main { padding-top: 96px; } }

.pl-top { position: fixed; z-index: 1020; right: 22px; bottom: 22px; width: 46px; height: 46px; border: 0; border-radius: 15px; display: grid; place-items: center;
    color: #241600; background: linear-gradient(135deg, var(--pl-gold-2), var(--pl-gold)); box-shadow: 0 12px 28px -10px rgba(242,179,61,.8);
    opacity: 0; transform: translateY(14px); pointer-events: none; transition: opacity .3s, transform .3s var(--pl-ease); }
.pl-top.is-on { opacity: 1; transform: none; pointer-events: auto; }
.pl-offline { position: fixed; z-index: 1080; left: 50%; top: 14px; transform: translate(-50%, -140%); display: flex; align-items: center; gap: 10px;
    padding: .6rem 1rem; border-radius: 14px; font-weight: 700; font-size: .88rem; color: #fff; background: rgba(127,29,29,.92); border: 1px solid rgba(251,113,133,.5);
    box-shadow: 0 14px 30px -12px rgba(0,0,0,.8); transition: transform .4s var(--pl-ease); }
.pl-offline.is-on { transform: translate(-50%, 0); }
.pl-offline.is-back { background: rgba(20,83,45,.92); border-color: rgba(74,222,128,.5); }
body.pl .chat-fab { bottom: 80px; }

/* =====================================================================
   Shared page building blocks
   ===================================================================== */
body.pl .glass-card, body.pl .card, .pl-glass {
    color: var(--pl-text); background: linear-gradient(165deg, rgba(255,255,255,.065), rgba(255,255,255,.02)), var(--pl-panel);
    border: 1px solid var(--pl-border); border-radius: var(--pl-radius); box-shadow: var(--pl-shadow);
    backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%); }
body.pl .card { --bs-card-bg: transparent; --bs-card-cap-bg: rgba(255,255,255,.03); --bs-card-border-color: var(--pl-border); overflow: hidden; }
body.pl .card-header, body.pl .card-footer { background: rgba(255,255,255,.03); border-color: var(--pl-border); color: var(--pl-text); }
body.pl .card-footer.bg-white, body.pl .card-footer.bg-transparent { background: transparent !important; }
body.pl .bg-white, body.pl .bg-light { background-color: rgba(255,255,255,.05) !important; color: var(--pl-text); }
body.pl .shadow, body.pl .shadow-sm, body.pl .shadow-lg { box-shadow: var(--pl-shadow) !important; }

/* page hero (About, News, FAQ, Stats, Manage) */
body.pl .hero-banner, body.pl .manage-shell, body.pl .community-hero, .pl-hero {
    position: relative; overflow: hidden; padding: 2.2rem 2rem !important; border-radius: 24px;
    background: radial-gradient(600px 240px at 100% 0%, rgba(242,179,61,.18), transparent 70%), radial-gradient(500px 260px at 0% 100%, rgba(59,130,246,.22), transparent 70%),
        linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.02)), var(--pl-panel) !important;
    border: 1px solid var(--pl-border-strong) !important; }
body.pl .hero-banner::after, body.pl .manage-shell::after, body.pl .community-hero::after, .pl-hero::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, var(--pl-blue), var(--pl-gold), var(--pl-green), var(--pl-red)); }
body.pl .hero-banner h1, body.pl .manage-shell h1, .pl-hero h1 { font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.5rem) !important; font-weight: 800; margin-bottom: .4rem !important; }
body.pl .hero-banner h1 i, body.pl .manage-shell h1 i, .pl-hero h1 i { width: 52px; height: 52px; display: inline-grid; place-items: center; border-radius: 16px; font-size: 1.25rem; vertical-align: middle;
    color: #241600 !important; background: linear-gradient(135deg, var(--pl-gold-2), var(--pl-gold)); box-shadow: 0 10px 24px -10px rgba(242,179,61,.8); margin-right: .9rem !important; }
body.pl .hero-banner p, body.pl .manage-shell p, .pl-hero p { font-size: 1.02rem; }
.pl-kicker { display: inline-block; font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; padding: .32rem .75rem; border-radius: 999px;
    color: var(--pl-gold-2); background: rgba(242,179,61,.12); border: 1px solid rgba(242,179,61,.25); margin-bottom: .8rem; }

/* animations used by pages */
body.pl .fade-up { animation: pl-rise .6s var(--pl-ease) both; }
body.pl .pop-card, body.pl .news-card { transition: transform .3s var(--pl-ease), border-color .3s, box-shadow .3s; }
body.pl .pop-card:hover, body.pl .news-card:hover { transform: translateY(-6px); border-color: rgba(96,165,250,.45); box-shadow: 0 30px 60px -28px rgba(59,130,246,.55) !important; }

/* badges */
body.pl .badge { font-weight: 700; letter-spacing: .02em; padding: .45em .8em; border-radius: 999px; }
body.pl .badge.bg-primary { background: rgba(59,130,246,.2) !important; color: var(--pl-blue-2) !important; border: 1px solid rgba(96,165,250,.35); }
body.pl .badge.bg-info { background: rgba(34,211,238,.16) !important; color: var(--pl-cyan) !important; border: 1px solid rgba(34,211,238,.35); }
body.pl .badge.bg-warning { background: rgba(242,179,61,.18) !important; color: var(--pl-gold-2) !important; border: 1px solid rgba(242,179,61,.35); }
body.pl .badge.bg-success { background: rgba(34,197,94,.18) !important; color: var(--pl-green-2) !important; border: 1px solid rgba(74,222,128,.35); }
body.pl .badge.bg-danger { background: rgba(239,68,68,.18) !important; color: var(--pl-red-2) !important; border: 1px solid rgba(251,113,133,.35); }
body.pl .badge.bg-secondary, body.pl .badge.bg-light { background: rgba(255,255,255,.08) !important; color: #dbe4fb !important; border: 1px solid rgba(255,255,255,.18) !important; }

/* forms */
body.pl .form-control, body.pl .form-select, body.pl .glass-input, body.pl .modern-input {
    color: #fff; background-color: rgba(5,10,22,.55) !important; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: .7rem .9rem;
    transition: border-color .2s, box-shadow .2s, background-color .2s; }
body.pl .form-control::placeholder { color: rgba(154,166,195,.75); }
body.pl .form-control:focus, body.pl .form-select:focus, body.pl .glass-input:focus, body.pl .modern-input:focus {
    color: #fff; border-color: rgba(242,179,61,.7); box-shadow: 0 0 0 .22rem rgba(242,179,61,.16); background-color: rgba(5,10,22,.7) !important; }
body.pl .form-select { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23c3cde6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }
body.pl .form-select option { background: #0a1430; color: #fff; }
body.pl .form-label, body.pl label { color: #c3cde6; }
body.pl .form-label.text-muted { color: #c3cde6 !important; }
body.pl .form-floating > label { color: var(--pl-muted); }
body.pl .form-floating > .form-control:focus ~ label, body.pl .form-floating > .form-control:not(:placeholder-shown) ~ label { color: var(--pl-gold-2); }
body.pl .form-floating > .form-control:focus ~ label::after, body.pl .form-floating > .form-control:not(:placeholder-shown) ~ label::after { background: transparent; }
body.pl .form-check-input { background-color: rgba(5,10,22,.6); border-color: rgba(255,255,255,.3); }
body.pl .form-check-input:checked { background-color: var(--pl-gold); border-color: var(--pl-gold); }
body.pl .input-group-text { color: var(--pl-muted); background: rgba(5,10,22,.55) !important; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; }
body.pl .input-group-icon > .input-group-text:first-child { border-right: 0; padding-right: .4rem; }
body.pl .input-group-icon > .form-control { border-left: 0; }
body.pl .input-group-icon > .form-control:not(:last-child) { border-right: 0; }
body.pl .input-group-icon > button.input-group-text { border-left: 0; cursor: pointer; }
body.pl .input-group-icon:focus-within > .input-group-text, body.pl .input-group-icon:focus-within > .form-control { border-color: rgba(242,179,61,.7); }
body.pl .input-group-icon:focus-within { box-shadow: 0 0 0 .22rem rgba(242,179,61,.14); border-radius: 12px; }
body.pl .input-group-icon .form-control:focus { box-shadow: none; }
body.pl .input-group-icon:focus-within .input-group-text i { color: var(--pl-gold) !important; }
body.pl .field-validation-error, body.pl .validation-summary-errors, body.pl span.text-danger { color: var(--pl-red-2) !important; font-size: .82rem; }
body.pl .validation-summary-errors ul { padding-left: 1.1rem; margin-bottom: .5rem; }
body.pl .validation-summary-valid { display: none; }

/* alerts */
body.pl .alert { border-radius: 14px; border: 1px solid; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
body.pl .alert-success { color: #bbf7d0; background: rgba(22,101,52,.3); border-color: rgba(74,222,128,.35); }
body.pl .alert-danger { color: #fecdd3; background: rgba(127,29,29,.32); border-color: rgba(251,113,133,.35); }
body.pl .alert-warning { color: #fde68a; background: rgba(120,83,10,.32); border-color: rgba(242,179,61,.4); }
body.pl .alert-info { color: #bae6fd; background: rgba(12,74,110,.32); border-color: rgba(34,211,238,.35); }
body.pl .alert-secondary { color: #dbe4fb; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.15); }

/* tables */
body.pl .table { --bs-table-bg: transparent; --bs-table-color: var(--pl-text); --bs-table-border-color: var(--pl-border); --bs-table-hover-bg: rgba(59,130,246,.08);
    --bs-table-hover-color: #fff; --bs-table-striped-bg: rgba(255,255,255,.03); color: var(--pl-text); margin-bottom: 0; }
body.pl .table > thead th { color: var(--pl-gold-2); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; border-bottom-color: rgba(242,179,61,.3); }
body.pl .table-bordered > :not(caption) > * > * { border-color: var(--pl-border); }

/* accordion, list-group, nav pills, dropdown, modal, pagination, carousel */
body.pl .accordion { --bs-accordion-bg: transparent; --bs-accordion-color: var(--pl-text); --bs-accordion-border-color: var(--pl-border); --bs-accordion-btn-color: #fff;
    --bs-accordion-active-color: var(--pl-gold-2); --bs-accordion-active-bg: rgba(242,179,61,.06); --bs-accordion-btn-focus-box-shadow: none;
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23c3cde6'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23f2b33d'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); }
body.pl .list-group { --bs-list-group-bg: transparent; --bs-list-group-color: var(--pl-text); --bs-list-group-border-color: var(--pl-border);
    --bs-list-group-action-hover-bg: rgba(255,255,255,.05); --bs-list-group-action-hover-color: #fff; --bs-list-group-active-bg: rgba(242,179,61,.16); --bs-list-group-active-border-color: rgba(242,179,61,.4); --bs-list-group-active-color: var(--pl-gold-2); }
body.pl .nav-pills .nav-link { color: #c3cde6; border-radius: 12px; font-weight: 600; padding: .6rem .9rem; }
body.pl .nav-pills .nav-link:hover { color: #fff; background: rgba(255,255,255,.06); }
body.pl .nav-pills .nav-link.active { color: #241600; background: linear-gradient(135deg, var(--pl-gold-2), var(--pl-gold)); }
body.pl .dropdown-menu { --bs-dropdown-bg: rgba(10,20,48,.96); --bs-dropdown-color: var(--pl-text); --bs-dropdown-border-color: var(--pl-border-strong); --bs-dropdown-link-color: #dbe4fb;
    --bs-dropdown-link-hover-bg: rgba(255,255,255,.07); --bs-dropdown-link-hover-color: #fff; --bs-dropdown-divider-bg: var(--pl-border);
    border-radius: 14px; padding: 6px; box-shadow: 0 24px 50px -20px rgba(0,0,0,.9); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
body.pl .dropdown-item { border-radius: 10px; padding: .55rem .8rem; font-weight: 600; font-size: .9rem; }
body.pl .modal-content, body.pl .glass-modal { color: var(--pl-text); background: rgba(10,20,48,.95) !important; border: 1px solid var(--pl-border-strong) !important; border-radius: 20px; }
body.pl .modal-header, body.pl .modal-footer { border-color: var(--pl-border); }
body.pl .btn-close { filter: invert(1) grayscale(1) brightness(2); }
body.pl .page-link { color: #c3cde6; background: rgba(255,255,255,.04); border-color: var(--pl-border); }
body.pl .page-item.active .page-link { color: #241600; background: var(--pl-gold); border-color: var(--pl-gold); }
body.pl .carousel { border-radius: var(--pl-radius); overflow: hidden; }
body.pl .glass-caption { background: rgba(5,10,22,.55) !important; border: 1px solid rgba(255,255,255,.12); border-radius: 16px !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
body.pl .glass-caption h2 { font-size: 1.5rem; font-weight: 800; }

/* empty states */
body.pl .glass-card.p-5.text-center > i:first-child, .pl-empty i { width: 72px; height: 72px; display: grid !important; place-items: center; margin: 0 auto 1rem !important; border-radius: 22px;
    font-size: 1.6rem; opacity: 1 !important; color: var(--pl-blue-2); background: rgba(59,130,246,.12); border: 1px solid rgba(96,165,250,.25); }

/* =====================================================================
   Authentication – Login & Register (split screen)
   ===================================================================== */
.pl-auth { display: grid; grid-template-columns: 1fr 1fr; gap: 0; max-width: 1080px; margin: 0 auto; border-radius: 28px; overflow: hidden;
    border: 1px solid var(--pl-border-strong); box-shadow: 0 50px 100px -40px rgba(0,0,0,.95); animation: pl-rise .7s var(--pl-ease) both; }
.pl-auth.wide { max-width: 1180px; grid-template-columns: .9fr 1.1fr; }
.pl-auth-side { position: relative; overflow: hidden; padding: 48px 44px; display: flex; flex-direction: column; isolation: isolate;
    background: radial-gradient(500px 340px at 0% 0%, rgba(59,130,246,.45), transparent 70%), radial-gradient(420px 320px at 100% 100%, rgba(34,197,94,.35), transparent 70%),
        radial-gradient(300px 240px at 90% 10%, rgba(242,179,61,.3), transparent 70%), #081230; }
.pl-auth-side::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
    background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px); background-size: 40px 40px;
    mask-image: linear-gradient(160deg, #000, transparent 80%); -webkit-mask-image: linear-gradient(160deg, #000, transparent 80%); }
.pl-auth-side .pl-brand { margin-bottom: 40px; }
.pl-auth-side h2 { font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.5rem); font-weight: 800; line-height: 1.12; margin-bottom: 14px; }
.pl-auth-side h2 span { background: linear-gradient(92deg, var(--pl-gold-2), var(--pl-green-2) 60%, var(--pl-blue-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pl-auth-side > p { color: #c3cde6; font-size: 1rem; line-height: 1.6; margin-bottom: 28px; }
.pl-perk-list { list-style: none; margin: 0 0 30px; padding: 0; display: grid; gap: 14px; }
.pl-perk-list li { display: flex; gap: 14px; align-items: flex-start; }
.pl-perk-list li > i { width: 40px; height: 40px; flex-shrink: 0; border-radius: 13px; display: grid; place-items: center; font-size: .95rem; }
.pl-perk-list li:nth-child(4n+1) > i { color: var(--pl-blue-2); background: rgba(59,130,246,.18); }
.pl-perk-list li:nth-child(4n+2) > i { color: var(--pl-gold-2); background: rgba(242,179,61,.18); }
.pl-perk-list li:nth-child(4n+3) > i { color: var(--pl-green-2); background: rgba(34,197,94,.18); }
.pl-perk-list li:nth-child(4n+4) > i { color: var(--pl-red-2); background: rgba(239,68,68,.18); }
.pl-perk-list b { display: block; color: #fff; font-size: .95rem; }
.pl-perk-list span { color: var(--pl-muted); font-size: .84rem; }
.pl-auth-quote { margin-top: auto; padding: 16px 18px; border-radius: 16px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); font-size: .86rem; color: #dbe4fb; }
.pl-auth-quote i { color: var(--pl-gold); margin-right: 6px; }
.pl-auth-form { padding: 48px 46px; background: linear-gradient(170deg, rgba(14,23,48,.92), rgba(8,14,32,.95)); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.pl-auth-form .pl-auth-head { margin-bottom: 26px; }
.pl-auth-form .pl-auth-head .ico { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; margin-bottom: 16px; font-size: 1.3rem;
    color: #241600; background: linear-gradient(135deg, var(--pl-gold-2), var(--pl-gold)); box-shadow: 0 14px 30px -12px rgba(242,179,61,.8); }
.pl-auth-form h1 { font-size: 1.75rem; font-weight: 800; margin-bottom: 6px; }
.pl-auth-form .pl-auth-head p { color: var(--pl-muted); margin: 0; }
.pl-auth-form .btn-login { width: 100%; padding: .85rem 1rem; border-radius: 14px; font-size: 1rem; }
.pl-auth-form .pl-forgot { font-size: .86rem; font-weight: 600; text-decoration: none; color: var(--pl-blue-2); }
.pl-auth-alt { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--pl-border); text-align: center; color: var(--pl-muted); font-size: .92rem; }
.pl-auth-alt a { font-weight: 700; color: var(--pl-gold-2); text-decoration: none; }
.pl-auth-alt a:hover { color: #fff; }
.pl-strength { height: 6px; border-radius: 99px; background: rgba(255,255,255,.08); overflow: hidden; margin-top: 8px; }
.pl-strength i { display: block; height: 100%; width: 0; border-radius: inherit; transition: width .3s, background .3s; }
.pl-strength-label { font-size: .76rem; color: var(--pl-muted); margin-top: 4px; }
.pl-steps { display: flex; gap: 8px; margin: 0 0 24px; padding: 0; list-style: none; }
.pl-steps li { flex: 1; font-size: .74rem; font-weight: 700; color: var(--pl-muted); }
.pl-steps li::before { content: ""; display: block; height: 4px; border-radius: 4px; margin-bottom: 6px; background: rgba(255,255,255,.1); }
.pl-steps li.on { color: #fff; }
.pl-steps li.on::before { background: linear-gradient(90deg, var(--pl-gold), var(--pl-green)); }
@media (max-width: 991.98px) {
    .pl-auth, .pl-auth.wide { grid-template-columns: 1fr; max-width: 560px; }
    .pl-auth-side { padding: 32px 28px; }
    .pl-auth-side .pl-perk-list, .pl-auth-side .pl-auth-quote { display: none; }
    .pl-auth-side .pl-brand { margin-bottom: 20px; }
    .pl-auth-side > p { margin-bottom: 0; }
    .pl-auth-form { padding: 32px 26px; }
}

/* =====================================================================
   Identity confirmation / small form cards
   (AccessDenied, ConfirmEmail, ForgotPassword, Lockout, Logout, Reset…, 2FA, Error)
   ===================================================================== */
body.pl .confirm-page-wrapper { width: 100%; min-height: 62vh; display: flex; align-items: center; justify-content: center; padding: 1rem; }
body.pl .glass-card.confirm-card, body.pl .glass-card.form-card { position: relative; width: 100%; max-width: 470px; text-align: center; padding: 2.6rem 2.2rem 2.2rem; border-radius: 26px;
    overflow: hidden; animation: pl-rise .6s var(--pl-ease) both; background: linear-gradient(170deg, rgba(255,255,255,.08), rgba(255,255,255,.02)), var(--pl-panel-strong); }
body.pl .glass-card.confirm-card::before, body.pl .glass-card.form-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px;
    background: linear-gradient(90deg, var(--pl-blue), var(--pl-gold), var(--pl-green), var(--pl-red)); }
body.pl .glass-card.error-card { max-width: 580px; }
body.pl .confirm-icon-wrapper { display: flex; justify-content: center; margin-bottom: .5rem; }
body.pl .confirm-icon { width: 64px; height: 64px; object-fit: contain; padding: 10px; border-radius: 20px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); }
body.pl .confirm-success-badge, body.pl .confirm-danger-badge, body.pl .confirm-info-badge {
    width: 50px; height: 50px; margin: -18px auto 1.1rem; position: relative; border-radius: 16px; display: grid; place-items: center; font-size: 1.15rem; color: #fff; border: 3px solid #0e1730; }
body.pl .confirm-success-badge { background: linear-gradient(135deg, var(--pl-green-2), var(--pl-green)); color: #04230f; box-shadow: 0 10px 26px -10px rgba(34,197,94,.9); }
body.pl .confirm-danger-badge { background: linear-gradient(135deg, var(--pl-red-2), var(--pl-red)); box-shadow: 0 10px 26px -10px rgba(239,68,68,.9); }
body.pl .confirm-info-badge { background: linear-gradient(135deg, var(--pl-blue-2), var(--pl-blue)); box-shadow: 0 10px 26px -10px rgba(59,130,246,.9); }
body.pl .confirm-title { font-weight: 800; font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem); margin-bottom: .6rem; color: #fff; }
body.pl .confirm-title.text-danger { color: #fff !important; }
body.pl .confirm-text { color: var(--pl-muted); margin: .4rem 0 1.4rem; line-height: 1.6; }
body.pl .confirm-text.small { font-size: .84rem; }
body.pl .confirm-link { font-weight: 700; color: var(--pl-gold-2); }
body.pl .btn-confirm-primary { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; width: 100%; max-width: 340px; padding: .8rem 1.4rem; border-radius: 14px; white-space: normal; }
body.pl .form-card-form { text-align: left; }
body.pl .form-card-form .btn-confirm-primary { max-width: none; }
body.pl .form-card-footer { text-align: center; margin-top: 1.5rem; padding-top: 1.1rem; border-top: 1px solid var(--pl-border); font-size: .92rem; }
body.pl .form-card-footer a { color: var(--pl-gold-2); font-weight: 700; text-decoration: none; }
body.pl .request-id-box { background: rgba(255,255,255,.05); border: 1px solid var(--pl-border); border-radius: 12px; padding: .65rem .9rem; font-size: .85rem; margin-bottom: 1.25rem; word-break: break-all; }
body.pl .dev-mode-note { text-align: left; margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--pl-border); font-size: .85rem; color: var(--pl-muted); }
body.pl .dev-mode-header { font-weight: 700; color: var(--pl-gold-2); margin-bottom: .6rem; display: flex; align-items: center; gap: .45rem; }
body.pl .dev-mode-note p { margin-bottom: .6rem; }

/* =====================================================================
   Account management
   ===================================================================== */
body.pl .manage-nav-card, body.pl .manage-content-card { padding: 1.25rem !important; }
body.pl .manage-content-card h3, body.pl .manage-content-card h4 { font-weight: 700; }

/* =====================================================================
   About
   ===================================================================== */
body.pl .section-image-col { min-height: 260px; display: flex; position: relative; }
body.pl .section-image { width: 100%; height: 100%; min-height: 260px; object-fit: cover; }
body.pl .section-image-col::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(10,20,48,.6), transparent 40%); z-index: 1; }
body.pl .section-image-placeholder { width: 100%; min-height: 260px; display: flex; align-items: center; justify-content: center; color: var(--pl-muted);
    background: radial-gradient(circle at 70% 30%, rgba(59,130,246,.2), transparent 60%), rgba(255,255,255,.03); }
body.pl .glass-card .col-lg-7.p-4 { padding: 2rem !important; }
body.pl .glass-card .col-lg-7 .badge { font-size: .78rem; margin-bottom: 1rem !important; }
body.pl .glass-card .col-lg-7 p { color: #c3cde6; font-size: 1.02rem; line-height: 1.75; }
body.pl .icon-badge { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; font-size: 1.05rem; color: #04230f; flex-shrink: 0; }
body.pl .icon-success { background: linear-gradient(135deg, var(--pl-green-2), var(--pl-green)); box-shadow: 0 10px 24px -10px rgba(34,197,94,.8); }
body.pl .contact-line { display: flex; align-items: center; padding: .55rem .75rem; border-radius: 12px; background: rgba(255,255,255,.03); border: 1px solid var(--pl-border); font-size: .95rem; }
body.pl .contact-line i { width: 22px; color: var(--pl-gold) !important; }
body.pl .contact-line a { color: #dbe4fb; text-decoration: none; }
body.pl .contact-line a:hover { color: #fff; }

/* =====================================================================
   FAQ
   ===================================================================== */
body.pl .faq-search-group { max-width: 560px; margin-top: 1rem; }
body.pl .faq-search-group .input-group-text { border-right: 0; }
body.pl .faq-search-group .form-control { border-left: 0; padding-left: 0; }
body.pl .faq-search-group:focus-within .input-group-text, body.pl .faq-search-group:focus-within .form-control { border-color: rgba(242,179,61,.7); }
body.pl .faq-search-group .form-control:focus { box-shadow: none; }
body.pl #faqAccordion { padding: .6rem !important; }
body.pl .faq-item { background: transparent; border: 0; border-bottom: 1px solid var(--pl-border); border-radius: 0 !important; }
body.pl .faq-item:last-child { border-bottom: 0; }
body.pl .faq-button { background: transparent !important; box-shadow: none !important; color: #fff; font-weight: 700; padding: 1.15rem .9rem; border-radius: 14px !important; }
body.pl .faq-button:hover { background: rgba(255,255,255,.03) !important; }
body.pl .faq-button:not(.collapsed) { color: var(--pl-gold-2); }
body.pl .faq-icon { width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: 11px; color: var(--pl-blue-2); background: rgba(59,130,246,.14); flex-shrink: 0; transition: all .25s; }
body.pl .faq-button:not(.collapsed) .faq-icon { color: #241600; background: linear-gradient(135deg, var(--pl-gold-2), var(--pl-gold)); }
body.pl .faq-item .accordion-body { padding: 0 1rem 1.3rem 4rem; color: #c3cde6; line-height: 1.7; }
body.pl .cta-card { background: radial-gradient(500px 200px at 50% 0%, rgba(34,197,94,.18), transparent 70%), var(--pl-panel) !important; padding: 2.2rem !important; }
body.pl .cta-card > i:first-child { width: 56px; height: 56px; display: grid !important; place-items: center; margin: 0 auto .9rem !important; border-radius: 18px;
    color: #04230f !important; background: linear-gradient(135deg, var(--pl-green-2), var(--pl-green)); }

/* =====================================================================
   News
   ===================================================================== */
body.pl .featured-post { position: relative; padding: 2.2rem !important; border-left: 0; overflow: hidden;
    background: radial-gradient(500px 260px at 100% 0%, rgba(59,130,246,.22), transparent 70%), linear-gradient(165deg, rgba(255,255,255,.07), rgba(255,255,255,.02)), var(--pl-panel) !important; }
body.pl .featured-post::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, var(--pl-gold), var(--pl-blue)); }
body.pl .featured-post h3 { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); font-weight: 800; }
body.pl .featured-post p, body.pl .news-card p { color: #c3cde6; line-height: 1.7; }
body.pl .news-card h5 { font-weight: 700; }
body.pl .news-body-clamp { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
body.pl .news-body-clamp.expanded { -webkit-line-clamp: unset; display: block; }
body.pl .read-more-btn { text-decoration: none; font-weight: 700; color: var(--pl-gold-2) !important; }
body.pl .read-more-btn .fa-chevron-down { transition: transform .2s; }
body.pl .read-more-btn.expanded .fa-chevron-down { transform: rotate(180deg); }

/* =====================================================================
   Home (/Home): feeds, slider, opportunities, stats
   ===================================================================== */
body.pl .card-header-glass { padding: .95rem 1.1rem; border-bottom: 1px solid var(--pl-border); }
body.pl .card-header-glass h6 { font-family: "Sora", sans-serif; }
body.pl .border-top-soft { border-top: 1px solid var(--pl-border); }
body.pl .feed-card { display: flex; flex-direction: column; overflow: hidden; }
body.pl .feed-scroll { flex: 1; max-height: 420px; overflow-y: auto; padding: .55rem; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.15) transparent; }
body.pl .feed-item { display: block; padding: .7rem .8rem; border-radius: 14px; margin-bottom: .35rem; color: inherit; border: 1px solid transparent; transition: background .2s, border-color .2s; }
body.pl .feed-item:hover { background: rgba(255,255,255,.05); border-color: var(--pl-border); }
body.pl .feed-item .fw-semibold { color: #fff; }
body.pl .feed-excerpt { font-size: .8rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.pl .stat-doughnut-card { padding: 1.4rem; }
body.pl .doughnut-wrapper { position: relative; width: 100%; max-width: 150px; margin: 0 auto; }
body.pl .doughnut-center-text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-family: "Sora", sans-serif; font-size: 1.5rem; font-weight: 800; color: #fff; }
body.pl .card-title { color: #fff; font-weight: 700; }
body.pl .card-img-top { border-bottom: 1px solid var(--pl-border); }

/* =====================================================================
   Community page – keep its own layout, recolour to the public palette
   ===================================================================== */
body.pl .community-hero { display: flex; align-items: center; gap: 1.25rem; }
body.pl .hero-icon, body.pl .section-icon, body.pl .post-category-icon, body.pl .login-modal-icon, body.pl .login-notice-icon {
    color: #241600 !important; background: linear-gradient(135deg, var(--pl-gold-2), var(--pl-gold)) !important; }
body.pl .trending-icon { color: #fff !important; background: linear-gradient(135deg, var(--pl-red-2), var(--pl-red)) !important; }
body.pl .create-post-header, body.pl .post-footer, body.pl .comments-header { border-color: var(--pl-border) !important; }
body.pl .post-card:hover, body.pl .trending-card:hover { box-shadow: 0 30px 60px -28px rgba(59,130,246,.55) !important; border-color: rgba(96,165,250,.4); }
body.pl .post-image-wrapper { background: rgba(255,255,255,.04); }
body.pl .post-text, body.pl .post-content, body.pl .comment-text { color: #c3cde6; }
body.pl .reaction-btn { color: #dbe4fb; background: rgba(255,255,255,.06); border: 1px solid var(--pl-border); }
body.pl .reaction-btn:hover { background: rgba(255,255,255,.12); }
body.pl .reaction-active { color: #fff !important; background: var(--pl-blue) !important; }
body.pl .reaction-active-danger { color: #fff !important; background: var(--pl-red) !important; }
body.pl .reaction-active-secondary { color: #fff !important; background: #475569 !important; }
body.pl .comment-bubble { background: rgba(255,255,255,.05); border: 1px solid var(--pl-border); }
body.pl .trending-badge { background: linear-gradient(135deg, var(--pl-gold), var(--pl-red)); }
body.pl .trending-no-image { color: var(--pl-gold-2); background: radial-gradient(circle at 70% 30%, rgba(242,179,61,.18), transparent 60%), rgba(255,255,255,.03); }
body.pl .empty-icon { color: var(--pl-blue-2); background: rgba(59,130,246,.12); }
body.pl .chat-fab { background: linear-gradient(135deg, var(--pl-gold-2), var(--pl-gold)); color: #241600; box-shadow: 0 14px 30px -10px rgba(242,179,61,.8); }

/* =====================================================================
   Opportunity details & stats
   ===================================================================== */
body.pl dl dt { color: var(--pl-muted); font-weight: 600; }
body.pl dl dd { color: #fff; }

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    body.pl *, body.pl *::before, body.pl *::after { animation: none !important; transition: none !important; }
}

/* floating labels (ForgotPassword, ResetPassword, 2FA, Manage pages) */
body.pl .form-floating > .form-control, body.pl .form-floating > .form-select { height: calc(3.5rem + 2px); min-height: calc(3.5rem + 2px); padding: 1rem .9rem; line-height: 1.25; }
body.pl .form-floating > .form-control::placeholder { color: transparent; }
body.pl .form-floating > .form-control:focus, body.pl .form-floating > .form-control:not(:placeholder-shown),
body.pl .form-floating > .form-select { padding-top: 1.625rem; padding-bottom: .625rem; }
body.pl .form-floating > label { padding: 1rem .9rem; }
body.pl .form-floating > textarea.form-control { height: auto; min-height: 6rem; }
