/* ============================================================
   PassLord — Profile (.pp-*)
   Skin aligned on Redesign-2/profile.html, using --ph-* tokens.
   ============================================================ */

body.passlord-profile-page {
    background:
        radial-gradient(circle at top left, rgba(255, 212, 41, 0.10), transparent 24%),
        radial-gradient(circle at top right, rgba(26, 111, 214, 0.12), transparent 22%),
        linear-gradient(180deg, var(--ph-bg), color-mix(in srgb, var(--ph-bg) 86%, white));
    color: var(--ph-ink);
}

body.passlord-profile-page #container,
body.passlord-profile-page #page-content {
    width: 100% !important;
    max-width: none !important;
}

body.passlord-profile-page .pp {
    --pp-rail-w: 360px;
    color: var(--ph-ink);
    font-family: var(--ph-font-ui);
}

body.passlord-profile-page .pp h1,
body.passlord-profile-page .pp h2,
body.passlord-profile-page .pp h3,
body.passlord-profile-page .pp h4 {
    margin: 0;
    font-family: var(--ph-font-display);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.05;
}

body.passlord-profile-page .pp p { margin: 0; }

body.passlord-profile-page .pp .pp-wrap {
    width: min(100%, var(--ph-wrap, 1320px));
    margin: 0 auto;
    padding: 0 clamp(20px, 2.5vw, 32px);
}

body.passlord-profile-page .pp a { color: inherit; text-decoration: none; }

/* ===================== EMPTY (404 / disabled) ===================== */
body.passlord-profile-page .pp-empty-card {
    margin: clamp(40px, 6vw, 80px) auto;
    max-width: 540px;
    padding: clamp(28px, 3vw, 44px);
    border-radius: var(--ph-radius-l);
    border: 1.5px solid var(--ph-line);
    background: var(--ph-card);
    box-shadow: var(--ph-shadow-sm);
    text-align: center;
}

body.passlord-profile-page .pp-empty-card h1 {
    margin: 12px 0;
    font-size: 32px;
}

body.passlord-profile-page .pp-empty-card p {
    color: var(--ph-ink-2);
}

/* ===================== FLASH ===================== */
body.passlord-profile-page .pp-flash {
    margin: 18px auto 0;
    max-width: 720px;
    padding: 14px 18px;
    border-radius: var(--ph-radius-m);
    border: 1.5px solid var(--ph-line);
    background: var(--ph-card);
    color: var(--ph-ink);
    font-weight: 600;
    box-shadow: var(--ph-shadow-sm);
}

body.passlord-profile-page .pp-flash.is-success {
    background: color-mix(in srgb, var(--ph-mint) 18%, var(--ph-card));
    border-color: color-mix(in srgb, var(--ph-mint) 40%, var(--ph-line));
}

body.passlord-profile-page .pp-flash.is-error {
    background: color-mix(in srgb, var(--ph-coral) 14%, var(--ph-card));
    border-color: color-mix(in srgb, var(--ph-coral) 40%, var(--ph-line));
}

/* ===================== COVER ===================== */
body.passlord-profile-page .pp-cover {
    position: relative;
    margin-top: 24px;
    height: 220px;
    border-radius: var(--ph-radius-xl);
    overflow: hidden;
    background:
        radial-gradient(ellipse at 20% 30%, color-mix(in srgb, var(--ph-accent) 60%, transparent), transparent 50%),
        radial-gradient(ellipse at 80% 70%, color-mix(in srgb, var(--ph-mint) 70%, transparent), transparent 55%),
        linear-gradient(120deg, var(--ph-brand) 0%, var(--ph-brand-2) 50%, var(--ph-mint) 100%);
}

body.passlord-profile-page .pp-cover::before {
    content: "";
    position: absolute; inset: 0;
    background: repeating-linear-gradient(45deg, transparent 0 24px, rgba(255, 255, 255, 0.06) 24px 25px);
    pointer-events: none;
}

body.passlord-profile-page .pp-cover__pattern {
    position: absolute; top: 14px; left: 18px;
    font-family: var(--ph-font-mono);
    font-size: 11px;
    letter-spacing: 0.14em;
    color: rgba(255, 255, 255, 0.7);
}

body.passlord-profile-page .pp-cover__edit {
    position: absolute; top: 16px; right: 16px;
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 14px;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--ph-ink);
    font-family: var(--ph-font-ui);
    font-weight: 600;
    font-size: 13px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    cursor: pointer;
}

body.passlord-profile-page .pp-cover__edit svg { width: 14px; height: 14px; }

body.passlord-profile-page .pp-cover__blob {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

body.passlord-profile-page .pp-cover__blob.a { width: 140px; height: 140px; background: rgba(255,255,255,0.18); top: -40px; right: 18%; }
body.passlord-profile-page .pp-cover__blob.b { width: 60px;  height: 60px;  background: rgba(0,0,0,0.12);   top: 35%;  right: 8%; }
body.passlord-profile-page .pp-cover__blob.c { width: 90px;  height: 90px;  background: var(--ph-accent);   bottom: -30px; left: 18%; opacity: 0.85; }

/* ===================== HEAD ===================== */
body.passlord-profile-page .pp-head {
    margin-top: 16px;
    position: relative; z-index: 2;
    display: grid;
    grid-template-columns: auto 1fr auto;
    column-gap: 24px;
    row-gap: 12px;
    align-items: start;
    padding: 0 8px;
}

body.passlord-profile-page .pp-avatar-wrap {
    margin-top: -72px;
    position: relative;
}

body.passlord-profile-page .pp-avatar {
    width: 148px;
    height: 148px;
    border-radius: 36px;
    border: 6px solid var(--ph-bg);
    background: linear-gradient(135deg, var(--ph-brand-2), var(--ph-brand-deep));
    display: grid;
    place-items: center;
    color: var(--ph-accent);
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 64px;
    letter-spacing: -0.04em;
    box-shadow: 0 14px 40px -10px rgba(10, 37, 64, 0.4);
    overflow: hidden;
    position: relative;
}

body.passlord-profile-page .pp-avatar img {
    width: 100%; height: 100%;
    object-fit: cover;
    border-radius: inherit;
}

body.passlord-profile-page .pp-avatar__ring {
    position: absolute;
    inset: -10px;
    border-radius: 42px;
    border: 3px dashed var(--ph-accent);
    pointer-events: none;
    animation: pp-spin 40s linear infinite;
}

@keyframes pp-spin { to { transform: rotate(360deg); } }

body.passlord-profile-page .pp-online-dot {
    position: absolute;
    bottom: 8px; right: 8px;
    width: 24px; height: 24px;
    border-radius: 50%;
    background: var(--ph-mint);
    border: 4px solid var(--ph-bg);
    box-shadow: 0 0 0 2px var(--ph-mint);
}

body.passlord-profile-page .pp-online-dot.is-offline {
    background: var(--ph-ink-3);
    box-shadow: 0 0 0 2px var(--ph-ink-3);
}

/* identity */
body.passlord-profile-page .pp-identity {
    min-width: 0;
    padding-top: 4px;
    padding-bottom: 6px;
}

body.passlord-profile-page .pp-titles {
    display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
    margin-bottom: 8px;
}

body.passlord-profile-page .pp-title-tag {
    font-family: var(--ph-font-mono);
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    background: var(--ph-accent);
    color: var(--ph-ink);
    padding: 3px 9px;
    border-radius: 999px;
    font-weight: 700;
}

body.passlord-profile-page .pp-title-pill {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12.5px;
    color: var(--ph-ink-2);
    background: var(--ph-card);
    border: 1px solid var(--ph-line);
    padding: 3px 10px;
    border-radius: 999px;
}

body.passlord-profile-page .pp-identity h1 {
    font-size: clamp(28px, 3vw, 36px);
    letter-spacing: -0.04em;
    line-height: 1;
    word-break: break-word;
}

body.passlord-profile-page .pp-identity h1 .pp-at {
    color: var(--ph-brand);
    font-weight: 600;
    font-family: var(--ph-font-ui);
    font-size: 0.5em;
    letter-spacing: 0;
    margin-left: 8px;
    vertical-align: 0.4em;
}

body.passlord-profile-page .pp-tag {
    margin-top: 8px;
    color: var(--ph-ink-2);
    font-size: 15px;
    max-width: 560px;
    text-wrap: pretty;
}

body.passlord-profile-page .pp-meta {
    display: flex; gap: 16px; align-items: center;
    color: var(--ph-ink-3);
    font-size: 13.5px;
    margin-top: 14px;
    flex-wrap: wrap;
}

body.passlord-profile-page .pp-meta span {
    display: inline-flex; align-items: center; gap: 6px;
}

body.passlord-profile-page .pp-meta svg { width: 14px; height: 14px; }
body.passlord-profile-page .pp-meta a { color: var(--ph-brand); font-weight: 600; }

/* actions */
body.passlord-profile-page .pp-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-end;
    padding-top: 4px;
}

body.passlord-profile-page .pp-actions-row {
    display: flex; gap: 6px; flex-wrap: nowrap; align-items: center;
}

body.passlord-profile-page .pp-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 9px 14px;
    border-radius: 999px;
    font-family: var(--ph-font-ui);
    font-weight: 600;
    font-size: 13.5px;
    border: 1.5px solid transparent;
    transition: transform 0.1s ease, box-shadow 0.15s ease;
    cursor: pointer;
    text-decoration: none !important;
    white-space: nowrap;
}

body.passlord-profile-page .pp-btn--ghost {
    color: var(--ph-ink) !important;
    background: var(--ph-card);
    border-color: var(--ph-line);
}

body.passlord-profile-page .pp-btn--ghost:hover { background: var(--ph-bg); }

body.passlord-profile-page .pp-btn--primary {
    background: var(--ph-ink);
    color: var(--ph-bg) !important;
}

body.passlord-profile-page .pp-btn--accent {
    background: var(--ph-accent);
    color: var(--ph-ink) !important;
    box-shadow: 0 3px 0 var(--ph-ink);
}

body.passlord-profile-page .pp-btn--accent:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 0 var(--ph-ink);
}

body.passlord-profile-page .pp-btn-icon {
    width: 38px; height: 38px;
    border-radius: 50%;
    border: 1.5px solid var(--ph-line);
    background: var(--ph-card);
    color: var(--ph-ink);
    display: grid; place-items: center;
    cursor: pointer;
}

body.passlord-profile-page .pp-btn-icon:hover { background: var(--ph-bg); }
body.passlord-profile-page .pp-btn-icon svg { width: 16px; height: 16px; }

body.passlord-profile-page .pp-follow-state {
    font-family: var(--ph-font-mono);
    font-size: 11px;
    color: var(--ph-ink-3);
    letter-spacing: 0.05em;
}

/* ===================== STATS STRIP ===================== */
body.passlord-profile-page .pp-stats-strip {
    margin-top: 16px;
    padding: 8px;
    background: var(--ph-card);
    border: 1.5px solid var(--ph-line);
    border-radius: 999px;
    display: flex;
    align-items: stretch;
    box-shadow: var(--ph-shadow-sm);
}

body.passlord-profile-page .pp-stats-strip a {
    flex: 1;
    padding: 12px 18px;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    border-radius: 999px;
    transition: background 0.15s ease;
    position: relative;
    min-width: 0;
    color: var(--ph-ink);
}

body.passlord-profile-page .pp-stats-strip a:hover {
    background: color-mix(in srgb, var(--ph-brand) 7%, transparent);
}

body.passlord-profile-page .pp-stats-strip a + a::before {
    content: "";
    position: absolute; left: 0; top: 18%; bottom: 18%;
    width: 1px;
    background: var(--ph-line);
}

body.passlord-profile-page .pp-stats-strip__num {
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 24px;
    letter-spacing: -0.02em;
    line-height: 1;
}

body.passlord-profile-page .pp-stats-strip__num small {
    font-size: 14px;
    color: var(--ph-ink-3);
    font-weight: 600;
    margin-left: 2px;
}

body.passlord-profile-page .pp-stats-strip__label {
    font-family: var(--ph-font-mono);
    font-size: 10.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ph-ink-3);
    margin-top: 6px;
    text-align: center;
}

body.passlord-profile-page .pp-stats-strip__delta {
    position: absolute; top: 6px; right: 18px;
    font-family: var(--ph-font-mono);
    font-size: 10px;
    color: var(--ph-mint);
    font-weight: 700;
}

/* ===================== MAIN GRID ===================== */
body.passlord-profile-page .pp-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--pp-rail-w);
    gap: 24px;
    padding: 32px 0 80px;
    align-items: start;
}

/* ===================== TABS NAV ===================== */
body.passlord-profile-page .pp-tabs {
    position: sticky;
    top: var(--forums-topbar-offset, 96px);
    z-index: 10;
    background: color-mix(in srgb, var(--ph-bg) 92%, transparent);
    backdrop-filter: blur(12px);
    margin: 0 -8px 20px;
    padding: 8px;
    border-bottom: 1px solid var(--ph-line);
}

body.passlord-profile-page .pp-tabs__inner {
    display: flex;
    gap: 4px;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
}

body.passlord-profile-page .pp-tabs__inner::-webkit-scrollbar { display: none; }

body.passlord-profile-page .pp-tab {
    display: inline-flex; align-items: center; gap: 5px;
    flex-shrink: 0;
    white-space: nowrap;
    padding: 8px 11px;
    border-radius: 11px;
    border: 0;
    background: transparent;
    color: var(--ph-ink-2);
    font-family: var(--ph-font-ui);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

body.passlord-profile-page .pp-tab:hover {
    background: var(--ph-card);
    color: var(--ph-ink);
}

body.passlord-profile-page .pp-tab.is-on {
    background: var(--ph-ink);
    color: var(--ph-bg);
}

body.passlord-profile-page .pp-tab__badge {
    font-family: var(--ph-font-mono);
    font-size: 10.5px;
    background: color-mix(in srgb, var(--ph-ink) 8%, transparent);
    color: var(--ph-ink-2);
    padding: 1px 6px;
    border-radius: 999px;
}

body.passlord-profile-page .pp-tab.is-on .pp-tab__badge {
    background: var(--ph-accent);
    color: var(--ph-ink);
    font-weight: 700;
}

body.passlord-profile-page .pp-tab svg { width: 14px; height: 14px; }

/* ===================== CARDS ===================== */
body.passlord-profile-page .pp-card {
    background: var(--ph-card);
    border: 1.5px solid var(--ph-line);
    border-radius: var(--ph-radius-l);
    padding: 22px;
    margin-bottom: 20px;
    box-shadow: var(--ph-shadow-sm);
}

body.passlord-profile-page .pp-card-head {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 16px; gap: 16px;
    flex-wrap: wrap;
}

body.passlord-profile-page .pp-card-head h3 {
    font-size: 20px;
    display: flex; align-items: center; gap: 10px;
}

body.passlord-profile-page .pp-card-head h3 .pp-star {
    display: inline-block;
    width: 0.7em; height: 0.7em;
    background: var(--ph-accent);
    border-radius: 6px;
    transform: rotate(12deg);
}

body.passlord-profile-page .pp-card-head .pp-meta {
    font-family: var(--ph-font-mono);
    font-size: 11px;
    color: var(--ph-ink-3);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* ===================== TAB CONTENT ===================== */
body.passlord-profile-page .pp-tab-content { display: none; }
body.passlord-profile-page .pp-tab-content.is-on { display: block; }

body.passlord-profile-page .pp-tab-content > h2 {
    font-size: 24px;
    margin-bottom: 14px;
    display: flex; align-items: center; gap: 10px;
}

/* ===================== ACTIVITY ===================== */
body.passlord-profile-page .pp-activity { display: flex; flex-direction: column; gap: 0; }

body.passlord-profile-page .pp-act {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 14px;
    padding: 14px 0;
    position: relative;
}

body.passlord-profile-page .pp-act:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 19px; top: 48px; bottom: -14px;
    width: 2px;
    background: var(--ph-line);
}

body.passlord-profile-page .pp-act__ic {
    width: 40px; height: 40px;
    border-radius: 12px;
    display: grid; place-items: center;
    background: color-mix(in srgb, var(--ph-brand) 12%, transparent);
    color: var(--ph-brand);
    z-index: 1;
    flex-shrink: 0;
}

body.passlord-profile-page .pp-act.is-fanfic .pp-act__ic { background: color-mix(in srgb, var(--ph-coral) 18%, transparent); color: var(--ph-coral); }
body.passlord-profile-page .pp-act.is-trade  .pp-act__ic { background: color-mix(in srgb, var(--ph-mint) 22%, transparent); color: #0b6b46; }
body.passlord-profile-page .pp-act.is-medal  .pp-act__ic { background: var(--ph-accent); color: var(--ph-ink); }
body.passlord-profile-page .pp-act.is-friend .pp-act__ic { background: color-mix(in srgb, var(--ph-grape) 18%, transparent); color: var(--ph-grape); }
body.passlord-profile-page .pp-act.is-avatar .pp-act__ic { background: color-mix(in srgb, var(--ph-brand-2) 16%, transparent); color: var(--ph-brand-2); }

body.passlord-profile-page .pp-act__ic svg { width: 18px; height: 18px; }

body.passlord-profile-page .pp-act__row {
    display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
}

body.passlord-profile-page .pp-act__verb {
    color: var(--ph-ink-2);
    font-size: 14px;
    flex: 1;
    min-width: 0;
}

body.passlord-profile-page .pp-act__verb b { color: var(--ph-ink); font-weight: 700; }
body.passlord-profile-page .pp-act__verb a { color: var(--ph-brand); font-weight: 600; }

body.passlord-profile-page .pp-act__when {
    font-family: var(--ph-font-mono);
    font-size: 11px;
    color: var(--ph-ink-3);
    margin-left: auto;
    flex-shrink: 0;
}

body.passlord-profile-page .pp-act__preview {
    margin-top: 10px;
    background: color-mix(in srgb, var(--ph-brand) 5%, var(--ph-bg));
    border: 1px solid var(--ph-line);
    border-radius: var(--ph-radius-m);
    padding: 14px;
}

body.passlord-profile-page .pp-act__preview-ttl {
    font-weight: 700;
    font-size: 15px;
    line-height: 1.3;
    color: var(--ph-ink);
}

body.passlord-profile-page .pp-act__preview-ex {
    margin-top: 6px;
    color: var(--ph-ink-2);
    font-size: 13.5px;
    line-height: 1.5;
    text-wrap: pretty;
}

body.passlord-profile-page .pp-preview-tags {
    display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap;
}

body.passlord-profile-page .pp-tag-pill {
    font-family: var(--ph-font-mono);
    font-size: 10.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ph-brand) 12%, transparent);
    color: var(--ph-brand);
}

body.passlord-profile-page .pp-tag-pill.c { background: color-mix(in srgb, var(--ph-coral) 18%, transparent); color: var(--ph-coral); }
body.passlord-profile-page .pp-tag-pill.m { background: color-mix(in srgb, var(--ph-mint)  18%, transparent); color: #107a4a; }
body.passlord-profile-page .pp-tag-pill.y { background: var(--ph-accent); color: var(--ph-ink); font-weight: 700; }

/* React row */
body.passlord-profile-page .pp-react-row {
    display: flex; gap: 10px; margin-top: 12px; align-items: center;
    flex-wrap: wrap;
}

body.passlord-profile-page .pp-react-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 11px;
    border-radius: 999px;
    border: 1px solid var(--ph-line);
    background: transparent;
    font-family: var(--ph-font-ui);
    font-size: 12.5px;
    color: var(--ph-ink-2);
    font-weight: 600;
    cursor: pointer;
}

body.passlord-profile-page .pp-react-btn:hover { background: var(--ph-bg); }

body.passlord-profile-page .pp-react-btn.is-on {
    background: color-mix(in srgb, var(--ph-coral) 14%, transparent);
    color: var(--ph-coral);
    border-color: color-mix(in srgb, var(--ph-coral) 30%, transparent);
}

body.passlord-profile-page .pp-react-btn svg { width: 13px; height: 13px; }

/* ===================== FORUM threads ===================== */
body.passlord-profile-page .pp-thread {
    background: color-mix(in srgb, var(--ph-brand) 5%, var(--ph-bg));
    border: 1px solid var(--ph-line);
    border-radius: var(--ph-radius-m);
    padding: 14px;
    margin-bottom: 12px;
}

body.passlord-profile-page .pp-thread__top {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 8px;
    gap: 12px;
}

body.passlord-profile-page .pp-thread__where {
    display: inline-flex; align-items: center; gap: 6px;
    font-family: var(--ph-font-mono);
    font-size: 11.5px;
    color: var(--ph-brand);
    font-weight: 600;
}

body.passlord-profile-page .pp-thread__when {
    font-family: var(--ph-font-mono);
    font-size: 11.5px;
    color: var(--ph-ink-3);
}

body.passlord-profile-page .pp-thread__ttl {
    font-family: var(--ph-font-display);
    font-weight: 700;
    font-size: 15.5px;
    line-height: 1.3;
    color: var(--ph-ink);
}

body.passlord-profile-page .pp-thread__ex {
    color: var(--ph-ink-2);
    font-size: 13.5px;
    line-height: 1.5;
    margin-top: 6px;
    text-wrap: pretty;
}

body.passlord-profile-page .pp-thread__foot {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: 10px;
    font-size: 12.5px;
    color: var(--ph-ink-3);
    flex-wrap: wrap;
    gap: 10px;
}

body.passlord-profile-page .pp-thread__stats { display: flex; gap: 14px; flex-wrap: wrap; }
body.passlord-profile-page .pp-thread__stats span b { color: var(--ph-ink); font-weight: 700; }

/* ===================== FANFICS GRID ===================== */
body.passlord-profile-page .pp-fic-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

body.passlord-profile-page .pp-fic-row {
    display: grid;
    grid-template-columns: 80px 1fr auto;
    gap: 16px;
    align-items: center;
    padding: 14px;
    border-radius: var(--ph-radius-m);
    border: 1px solid var(--ph-line);
    background: var(--ph-card);
    transition: transform 0.12s ease, border-color 0.12s ease;
}

body.passlord-profile-page .pp-fic-row:hover {
    transform: translateY(-2px);
    border-color: var(--ph-brand);
}

body.passlord-profile-page .pp-fic-cover {
    width: 80px;
    height: 110px;
    border-radius: 10px;
    background: linear-gradient(160deg, var(--ph-brand), var(--ph-brand-deep));
    display: grid;
    place-items: center;
    padding: 10px;
    color: var(--ph-bg-2);
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 13px;
    line-height: 1;
    text-align: center;
    letter-spacing: -0.01em;
    position: relative;
    overflow: hidden;
}

body.passlord-profile-page .pp-fic-cover.y { background: linear-gradient(160deg, var(--ph-accent), var(--ph-accent-2)); color: var(--ph-ink); }
body.passlord-profile-page .pp-fic-cover.c { background: linear-gradient(160deg, var(--ph-coral), #C2410C); color: white; }
body.passlord-profile-page .pp-fic-cover.m { background: linear-gradient(160deg, var(--ph-mint), #0B6B46); color: white; }

body.passlord-profile-page .pp-fic-cover::before {
    content: "";
    position: absolute; inset: 0;
    background: repeating-linear-gradient(135deg, transparent 0 12px, rgba(255, 255, 255, 0.07) 12px 13px);
    pointer-events: none;
}

body.passlord-profile-page .pp-fic-row__ttl {
    font-family: var(--ph-font-display);
    font-weight: 700;
    font-size: 15.5px;
    line-height: 1.3;
    text-wrap: pretty;
    color: var(--ph-ink);
}

body.passlord-profile-page .pp-fic-row__meta {
    font-family: var(--ph-font-mono);
    font-size: 11.5px;
    color: var(--ph-ink-3);
    margin-top: 6px;
}

body.passlord-profile-page .pp-fic-row__stats {
    display: flex; gap: 14px;
    margin-top: 8px;
    color: var(--ph-ink-2);
    font-size: 12.5px;
    flex-wrap: wrap;
}

body.passlord-profile-page .pp-fic-row__status {
    font-family: var(--ph-font-mono);
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 4px 8px;
    border-radius: 999px;
    align-self: flex-start;
}

body.passlord-profile-page .pp-fic-row__status.live  { background: color-mix(in srgb, var(--ph-mint) 18%, transparent); color: #0b6b46; }
body.passlord-profile-page .pp-fic-row__status.done  { background: color-mix(in srgb, var(--ph-ink) 8%,  transparent); color: var(--ph-ink-2); }
body.passlord-profile-page .pp-fic-row__status.draft { background: color-mix(in srgb, var(--ph-accent) 30%, transparent); color: #846100; }

/* ===================== TRADES (placeholder) ===================== */
body.passlord-profile-page .pp-trade-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }

body.passlord-profile-page .pp-trade {
    border: 1px solid var(--ph-line);
    border-radius: var(--ph-radius-m);
    padding: 16px;
    background: var(--ph-card);
}

body.passlord-profile-page .pp-trade__head {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 10px;
}

body.passlord-profile-page .pp-trade__label {
    font-family: var(--ph-font-mono);
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ph-ink-3);
}

body.passlord-profile-page .pp-trade__label.give { color: var(--ph-coral); }
body.passlord-profile-page .pp-trade__label.want { color: var(--ph-mint); }

body.passlord-profile-page .pp-trade__body {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 10px;
    align-items: center;
}

body.passlord-profile-page .pp-trade__when {
    font-family: var(--ph-font-mono);
    font-size: 11px;
    color: var(--ph-ink-3);
}

body.passlord-profile-page .pp-trade-card {
    display: flex; align-items: center; gap: 10px;
    padding: 10px;
    border-radius: 12px;
    background: color-mix(in srgb, var(--ph-brand) 5%, var(--ph-bg));
}

body.passlord-profile-page .pp-trade-icon {
    width: 40px; height: 40px;
    border-radius: 10px;
    background: var(--ph-brand);
    color: var(--ph-accent);
    display: grid; place-items: center;
    font-family: var(--ph-font-display);
    font-weight: 800;
}

body.passlord-profile-page .pp-trade-icon.coral { background: var(--ph-coral); color: white; }
body.passlord-profile-page .pp-trade-icon.mint  { background: var(--ph-mint);  color: #063520; }
body.passlord-profile-page .pp-trade-icon.grape { background: var(--ph-grape); color: white; }

body.passlord-profile-page .pp-trade-name { font-weight: 700; font-size: 14.5px; color: var(--ph-ink); }
body.passlord-profile-page .pp-trade-sub  { font-size: 12px; color: var(--ph-ink-3); }

body.passlord-profile-page .pp-trade__foot {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: 12px; padding-top: 12px;
    border-top: 1px dashed var(--ph-line);
    font-size: 12.5px;
    color: var(--ph-ink-3);
}

body.passlord-profile-page .pp-trust {
    display: inline-flex; align-items: center; gap: 4px;
    color: var(--ph-accent-2);
    font-weight: 700;
}

/* ===================== MEDALS (placeholder) ===================== */
body.passlord-profile-page .pp-medals {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 14px;
}

body.passlord-profile-page .pp-medal {
    aspect-ratio: 1 / 1.05;
    border-radius: 18px;
    background: var(--ph-card);
    border: 1.5px solid var(--ph-line);
    padding: 14px 8px 10px;
    display: flex; flex-direction: column;
    align-items: center; text-align: center; justify-content: flex-start;
    gap: 8px;
    position: relative; overflow: hidden;
    cursor: pointer;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

body.passlord-profile-page .pp-medal:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px -8px rgba(10, 37, 64, 0.2);
}

body.passlord-profile-page .pp-medal__ic {
    width: 52px; height: 52px;
    border-radius: 50%;
    background: var(--ph-accent);
    color: var(--ph-ink);
    display: grid; place-items: center;
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 22px;
    border: 3px solid var(--ph-ink);
}

body.passlord-profile-page .pp-medal.coral .pp-medal__ic { background: var(--ph-coral); color: white; border-color: #7c1d10; }
body.passlord-profile-page .pp-medal.mint  .pp-medal__ic { background: var(--ph-mint);  color: #063520; border-color: #0b6b46; }
body.passlord-profile-page .pp-medal.grape .pp-medal__ic { background: var(--ph-grape); color: white; border-color: #3b1996; }
body.passlord-profile-page .pp-medal.brand .pp-medal__ic { background: var(--ph-brand); color: var(--ph-accent); border-color: var(--ph-brand-deep); }
body.passlord-profile-page .pp-medal.locked .pp-medal__ic { background: var(--ph-bg); color: var(--ph-ink-3); border-color: var(--ph-line); }
body.passlord-profile-page .pp-medal.locked { opacity: 0.55; }

body.passlord-profile-page .pp-medal__name { font-weight: 700; font-size: 12.5px; line-height: 1.2; text-wrap: pretty; color: var(--ph-ink); }
body.passlord-profile-page .pp-medal__when { font-family: var(--ph-font-mono); font-size: 10px; color: var(--ph-ink-3); }

body.passlord-profile-page .pp-medal__ribbon {
    position: absolute; top: 8px; right: 8px;
    font-family: var(--ph-font-mono);
    font-size: 9px;
    letter-spacing: 0.1em;
    background: var(--ph-ink);
    color: var(--ph-accent);
    padding: 2px 6px;
    border-radius: 6px;
}

/* ===================== COLLECTION (placeholder) ===================== */
body.passlord-profile-page .pp-coll-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

body.passlord-profile-page .pp-coll-card {
    aspect-ratio: 3 / 4;
    border-radius: 14px;
    position: relative; overflow: hidden;
    background: linear-gradient(135deg, var(--ph-brand), var(--ph-brand-deep));
    padding: 12px;
    color: var(--ph-bg-2);
    display: flex; flex-direction: column; justify-content: space-between;
    transition: transform 0.12s ease;
}

body.passlord-profile-page .pp-coll-card:hover { transform: translateY(-3px); }

body.passlord-profile-page .pp-coll-card.coral { background: linear-gradient(135deg, var(--ph-coral), #7c1d10); }
body.passlord-profile-page .pp-coll-card.mint  { background: linear-gradient(135deg, var(--ph-mint),  #0b6b46); }
body.passlord-profile-page .pp-coll-card.y     { background: linear-gradient(135deg, var(--ph-accent), var(--ph-accent-2)); color: var(--ph-ink); }
body.passlord-profile-page .pp-coll-card.grape { background: linear-gradient(135deg, var(--ph-grape), #4C1D95); }

body.passlord-profile-page .pp-coll-card__top { display: flex; justify-content: space-between; align-items: flex-start; }

body.passlord-profile-page .pp-coll-card__lab {
    font-family: var(--ph-font-mono);
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    background: rgba(0, 0, 0, 0.25);
    padding: 3px 7px;
    border-radius: 6px;
    color: white;
}

body.passlord-profile-page .pp-coll-card.y .pp-coll-card__lab { background: rgba(0, 0, 0, 0.15); color: var(--ph-ink); }

body.passlord-profile-page .pp-coll-card__num {
    font-family: var(--ph-font-mono);
    font-size: 10px;
    color: rgba(255, 255, 255, 0.7);
}

body.passlord-profile-page .pp-coll-card.y .pp-coll-card__num { color: rgba(0, 0, 0, 0.5); }

body.passlord-profile-page .pp-coll-card__body {
    position: absolute; inset: 0;
    display: grid; place-items: center;
    pointer-events: none;
}

body.passlord-profile-page .pp-coll-card__glyph {
    width: 60%;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    border: 3px solid rgba(255, 255, 255, 0.4);
    display: grid; place-items: center;
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 28px;
    color: white;
}

body.passlord-profile-page .pp-coll-card.y .pp-coll-card__glyph {
    background: rgba(0, 0, 0, 0.1);
    border-color: rgba(0, 0, 0, 0.3);
    color: var(--ph-ink);
}

body.passlord-profile-page .pp-coll-card__name {
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 18px;
    line-height: 1;
    letter-spacing: -0.02em;
    position: relative; z-index: 1;
}

body.passlord-profile-page .pp-coll-card__stats {
    display: flex; gap: 10px;
    font-family: var(--ph-font-mono);
    font-size: 10.5px;
    position: relative; z-index: 1;
    margin-top: 4px;
}

/* ===================== ABOUT ===================== */
body.passlord-profile-page .pp-about-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px 28px;
}

body.passlord-profile-page .pp-about-row {
    display: flex; flex-direction: column;
    gap: 4px;
    padding-bottom: 14px;
    border-bottom: 1px dashed var(--ph-line);
}

body.passlord-profile-page .pp-about-row .k {
    font-family: var(--ph-font-mono);
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ph-ink-3);
}

body.passlord-profile-page .pp-about-row .v {
    font-weight: 600;
    font-size: 15px;
    color: var(--ph-ink);
}

body.passlord-profile-page .pp-about-row .v .accent {
    background: var(--ph-accent);
    padding: 0 4px;
    border-radius: 4px;
}

body.passlord-profile-page .pp-about-bio {
    background: color-mix(in srgb, var(--ph-brand) 5%, var(--ph-bg));
    border-radius: var(--ph-radius-m);
    padding: 18px;
    margin-top: 20px;
    font-size: 15px;
    line-height: 1.55;
    color: var(--ph-ink-2);
    text-wrap: pretty;
}

body.passlord-profile-page .pp-fc-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
    margin-top: 16px;
}

body.passlord-profile-page .pp-fc {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid var(--ph-line);
    background: var(--ph-card);
}

body.passlord-profile-page .pp-fc-head {
    display: flex; align-items: center; gap: 8px;
    font-weight: 600;
}

body.passlord-profile-page .pp-fc-head img { width: 18px; height: 18px; }
body.passlord-profile-page .pp-fc code { font-family: var(--ph-font-mono); font-size: 13px; color: var(--ph-ink); }
body.passlord-profile-page .pp-fc-state { font-family: var(--ph-font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ph-ink-3); }
body.passlord-profile-page .pp-fc-state.is-visible { color: var(--ph-mint); }

/* ===================== EMPTY STATE (in tab) ===================== */
body.passlord-profile-page .pp-empty {
    padding: 32px 24px;
    border-radius: var(--ph-radius-m);
    border: 1px dashed var(--ph-line);
    background: color-mix(in srgb, var(--ph-brand) 4%, transparent);
    text-align: center;
    color: var(--ph-ink-2);
}

body.passlord-profile-page .pp-empty__ic {
    display: inline-grid; place-items: center;
    width: 48px; height: 48px;
    border-radius: 12px;
    background: var(--ph-accent);
    color: var(--ph-ink);
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 22px;
    margin-bottom: 12px;
    transform: rotate(-6deg);
}

body.passlord-profile-page .pp-empty strong {
    display: block;
    color: var(--ph-ink);
    font-family: var(--ph-font-display);
    font-size: 18px;
    margin-bottom: 4px;
}

body.passlord-profile-page .pp-empty p { color: var(--ph-ink-2); font-size: 14px; line-height: 1.5; }

/* ===================== RIGHT RAIL ===================== */
body.passlord-profile-page .pp-rail {
    display: flex; flex-direction: column;
    gap: 20px;
    position: sticky;
    top: calc(var(--forums-topbar-offset, 96px) + 24px);
}

body.passlord-profile-page .pp-rail-card {
    background: var(--ph-card);
    border: 1.5px solid var(--ph-line);
    border-radius: var(--ph-radius-l);
    padding: 20px;
    box-shadow: var(--ph-shadow-sm);
}

body.passlord-profile-page .pp-rail-card h4 {
    font-family: var(--ph-font-mono);
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ph-ink-3);
    margin-bottom: 14px;
    font-weight: 700;
}

body.passlord-profile-page .pp-rail-list {
    display: flex; flex-direction: column;
    gap: 10px;
    list-style: none;
    padding: 0; margin: 0;
}

body.passlord-profile-page .pp-rail-list .item {
    display: flex; align-items: center; gap: 10px;
    font-size: 14px;
    color: var(--ph-ink-2);
}

body.passlord-profile-page .pp-rail-list .item svg {
    width: 14px; height: 14px;
    color: var(--ph-ink-3);
    flex-shrink: 0;
}

body.passlord-profile-page .pp-rail-list .item b { color: var(--ph-ink); font-weight: 600; }
body.passlord-profile-page .pp-rail-list .item a { color: var(--ph-brand); font-weight: 600; }

body.passlord-profile-page .pp-rep-bar {
    margin-top: 10px;
    height: 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ph-ink) 8%, transparent);
    overflow: hidden;
    position: relative;
}

body.passlord-profile-page .pp-rep-bar > span {
    display: block; height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--ph-brand), var(--ph-mint), var(--ph-accent));
}

body.passlord-profile-page .pp-rep-foot {
    display: flex; justify-content: space-between;
    font-family: var(--ph-font-mono);
    font-size: 10.5px;
    color: var(--ph-ink-3);
    margin-top: 6px;
    letter-spacing: 0.05em;
}

body.passlord-profile-page .pp-streak {
    display: flex; align-items: center; gap: 14px;
    background: linear-gradient(160deg, var(--ph-accent) 0%, var(--ph-accent-2) 100%);
    color: var(--ph-ink);
    border-radius: var(--ph-radius-m);
    padding: 16px;
    margin-top: 14px;
}

body.passlord-profile-page .pp-streak__num {
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 36px;
    letter-spacing: -0.04em;
    line-height: 1;
}

body.passlord-profile-page .pp-streak__lab {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

body.passlord-profile-page .pp-streak__lab small {
    display: block;
    color: color-mix(in srgb, var(--ph-ink) 70%, transparent);
    font-weight: 500;
    font-size: 11.5px;
    margin-top: 2px;
}

body.passlord-profile-page .pp-streak__flame { font-size: 30px; }

/* Team grid (placeholder) */
body.passlord-profile-page .pp-team-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

body.passlord-profile-page .pp-team-slot {
    aspect-ratio: 1 / 1;
    border-radius: 14px;
    background: var(--ph-bg);
    border: 1px dashed var(--ph-line);
    display: grid; place-items: center;
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 18px;
    color: var(--ph-ink-3);
    position: relative;
}

body.passlord-profile-page .pp-team-slot.filled {
    background: linear-gradient(160deg, var(--ph-brand), var(--ph-brand-2));
    color: var(--ph-accent);
    border: none;
    font-size: 24px;
}

body.passlord-profile-page .pp-team-slot.filled.coral { background: linear-gradient(160deg, var(--ph-coral), #C2410C); color: white; }
body.passlord-profile-page .pp-team-slot.filled.mint  { background: linear-gradient(160deg, var(--ph-mint),  #0B6B46); color: white; }
body.passlord-profile-page .pp-team-slot.filled.grape { background: linear-gradient(160deg, var(--ph-grape), #4C1D95); color: white; }
body.passlord-profile-page .pp-team-slot.filled.y     { background: linear-gradient(160deg, var(--ph-accent), var(--ph-accent-2)); color: var(--ph-ink); }

body.passlord-profile-page .pp-team-slot__lvl {
    position: absolute; bottom: 4px; right: 6px;
    font-family: var(--ph-font-mono);
    font-size: 10px;
    letter-spacing: 0.05em;
    background: rgba(0, 0, 0, 0.35);
    color: white;
    padding: 1px 5px;
    border-radius: 5px;
}

/* Friends row */
body.passlord-profile-page .pp-friends-row {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
}

body.passlord-profile-page .pp-friend {
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    background: var(--ph-brand);
    color: var(--ph-accent);
    display: grid; place-items: center;
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 14px;
    position: relative;
    overflow: hidden;
}

body.passlord-profile-page .pp-friend img { width: 100%; height: 100%; object-fit: cover; }

body.passlord-profile-page .pp-friend:nth-child(2) { background: var(--ph-coral); color: white; }
body.passlord-profile-page .pp-friend:nth-child(3) { background: var(--ph-mint);  color: #063520; }
body.passlord-profile-page .pp-friend:nth-child(4) { background: var(--ph-grape); color: white; }
body.passlord-profile-page .pp-friend:nth-child(5) { background: var(--ph-accent); color: var(--ph-ink); }

body.passlord-profile-page .pp-friend__on {
    position: absolute;
    bottom: 0; right: 0;
    width: 11px; height: 11px;
    border-radius: 50%;
    background: var(--ph-mint);
    border: 2px solid var(--ph-card);
}

body.passlord-profile-page .pp-friend.is-off .pp-friend__on { background: var(--ph-ink-3); }

body.passlord-profile-page .pp-friend-cap {
    font-family: var(--ph-font-mono);
    font-size: 11px;
    color: var(--ph-ink-3);
    margin-top: 10px;
    text-align: center;
}

body.passlord-profile-page .pp-friend-cap b { color: var(--ph-ink); font-weight: 700; }

/* Dark "for X right now" card */
body.passlord-profile-page .pp-rail-card.is-dark {
    background: var(--ph-ink);
    color: var(--ph-bg);
    border-color: var(--ph-ink);
}

body.passlord-profile-page .pp-rail-card.is-dark h4 {
    color: color-mix(in srgb, var(--ph-bg) 70%, transparent);
}

body.passlord-profile-page .pp-quick-list {
    display: flex; flex-direction: column;
    gap: 10px;
}

body.passlord-profile-page .pp-quick-list__item {
    display: flex; gap: 10px; align-items: flex-start;
    font-size: 13.5px;
    line-height: 1.45;
}

body.passlord-profile-page .pp-quick-list__dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    margin-top: 7px;
    flex-shrink: 0;
}

body.passlord-profile-page .pp-rail-card.is-dark a { color: var(--ph-accent); font-weight: 600; }
body.passlord-profile-page .pp-rail-card.is-dark b { color: var(--ph-accent); font-weight: 700; }

/* ===================== FORMS (settings/admin) ===================== */
body.passlord-profile-page .pp-form { display: flex; flex-direction: column; gap: 14px; }

body.passlord-profile-page .pp-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

body.passlord-profile-page .pp-field {
    display: flex; flex-direction: column;
    gap: 6px;
    color: var(--ph-ink);
}

body.passlord-profile-page .pp-field > span {
    font-family: var(--ph-font-mono);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ph-ink-3);
    font-weight: 700;
}

body.passlord-profile-page .pp-field input[type="text"],
body.passlord-profile-page .pp-field input[type="email"],
body.passlord-profile-page .pp-field input[type="password"],
body.passlord-profile-page .pp-field input[type="number"],
body.passlord-profile-page .pp-field select,
body.passlord-profile-page .pp-field textarea {
    width: 100%;
    border: 1.5px solid var(--ph-line);
    border-radius: var(--ph-radius-s);
    padding: 10px 14px;
    font-family: var(--ph-font-ui);
    font-size: 14.5px;
    color: var(--ph-ink);
    background: var(--ph-bg-2);
}

body.passlord-profile-page .pp-field input:focus,
body.passlord-profile-page .pp-field select:focus,
body.passlord-profile-page .pp-field textarea:focus {
    outline: none;
    border-color: var(--ph-brand);
}

body.passlord-profile-page .pp-field textarea { min-height: 120px; resize: vertical; }

body.passlord-profile-page .pp-field--checkbox {
    flex-direction: row;
    align-items: center;
    gap: 8px;
}

body.passlord-profile-page .pp-field--checkbox > span {
    font-family: var(--ph-font-ui);
    font-size: 14px;
    text-transform: none;
    letter-spacing: 0;
    color: var(--ph-ink);
    font-weight: 500;
}

body.passlord-profile-page .pp-radio {
    display: flex; gap: 10px;
    flex-wrap: wrap;
}

body.passlord-profile-page .pp-radio label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid var(--ph-line);
    border-radius: 999px;
    background: var(--ph-bg-2);
    font-size: 13.5px;
    cursor: pointer;
}

body.passlord-profile-page .pp-form-actions {
    display: flex; gap: 10px;
    margin-top: 6px;
    flex-wrap: wrap;
}

body.passlord-profile-page .pp-checkbox-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 8px;
    margin-top: 6px;
}

body.passlord-profile-page .pp-checkbox-list label {
    display: inline-flex; align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 10px;
    background: var(--ph-bg-2);
    border: 1px solid var(--ph-line);
    font-size: 13.5px;
}

body.passlord-profile-page .pp-mini-id {
    display: flex; gap: 14px; align-items: center;
    padding: 14px;
    border-radius: var(--ph-radius-m);
    background: color-mix(in srgb, var(--ph-brand) 6%, var(--ph-bg));
    border: 1px dashed var(--ph-line);
    margin-bottom: 14px;
}

body.passlord-profile-page .pp-mini-id__avatar {
    width: 56px; height: 56px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--ph-brand-2), var(--ph-brand-deep));
    color: var(--ph-accent);
    display: grid; place-items: center;
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 24px;
    overflow: hidden;
}

body.passlord-profile-page .pp-mini-id__avatar img { width: 100%; height: 100%; object-fit: cover; }
body.passlord-profile-page .pp-mini-id strong { font-family: var(--ph-font-display); font-size: 16px; }
body.passlord-profile-page .pp-mini-id p { color: var(--ph-ink-3); font-size: 13px; margin-top: 2px; }

/* Social cards */
body.passlord-profile-page .pp-social-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
    margin-top: 14px;
}

body.passlord-profile-page .pp-social-card {
    border: 1px solid var(--ph-line);
    border-radius: var(--ph-radius-m);
    padding: 16px;
    background: var(--ph-card);
    display: flex; flex-direction: column; gap: 12px;
}

body.passlord-profile-page .pp-social-card__head {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 10px;
}

body.passlord-profile-page .pp-social-icon {
    display: inline-grid; place-items: center;
    width: 36px; height: 36px;
    border-radius: 10px;
    background: var(--ph-accent);
    color: var(--ph-ink);
    font-weight: 700;
}

body.passlord-profile-page .pp-chip {
    display: inline-flex; align-items: center;
    padding: 2px 9px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ph-brand) 12%, transparent);
    color: var(--ph-brand);
    font-family: var(--ph-font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
}

/* ===================== DANGER ZONE (account deletion) ===================== */
body.passlord-profile-page .pp-danger {
    border-color: color-mix(in srgb, var(--ph-coral) 50%, var(--ph-line));
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--ph-coral) 20%, transparent);
}

body.passlord-profile-page .pp-danger .pp-card-head h3 {
    color: var(--ph-coral);
}

body.passlord-profile-page .pp-danger-zone {
    border: 1.5px solid color-mix(in srgb, var(--ph-coral) 40%, var(--ph-line));
    background: color-mix(in srgb, var(--ph-coral) 4%, var(--ph-card));
    border-radius: var(--ph-radius-l);
    padding: 22px;
    margin-top: 20px;
}

body.passlord-profile-page .pp-danger-zone h3 {
    color: var(--ph-coral);
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 18px;
    margin-bottom: 8px;
}

body.passlord-profile-page .pp-danger-zone p {
    color: var(--ph-ink-2);
    font-size: 14px;
    line-height: 1.5;
}

body.passlord-profile-page .pp-danger-box {
    border: 1px dashed color-mix(in srgb, var(--ph-coral) 40%, var(--ph-line));
    border-radius: var(--ph-radius-m);
    padding: 18px;
    background: color-mix(in srgb, var(--ph-coral) 3%, var(--ph-bg-2));
}

body.passlord-profile-page .pp-danger-list {
    margin: 0 0 4px;
    padding-left: 22px;
    color: var(--ph-ink-2);
    font-size: 14.5px;
    line-height: 1.6;
}

body.passlord-profile-page .pp-danger-list li {
    margin-bottom: 4px;
}

body.passlord-profile-page .pp-danger-list strong {
    color: var(--ph-ink);
}

body.passlord-profile-page .pp-btn--danger {
    background: var(--ph-coral);
    color: #ffffff !important;
    border-color: var(--ph-coral);
}

body.passlord-profile-page .pp-btn--danger:hover,
body.passlord-profile-page .pp-btn--danger:focus {
    transform: translateY(-1px);
    box-shadow: 0 4px 0 color-mix(in srgb, var(--ph-coral) 60%, var(--ph-ink));
}

body.passlord-profile-page .pp-deletion-banner {
    margin: 18px auto 0;
    max-width: 900px;
    border-radius: var(--ph-radius-l);
    padding: 16px 20px;
    background: color-mix(in srgb, var(--ph-coral) 12%, var(--ph-card));
    border: 1.5px solid color-mix(in srgb, var(--ph-coral) 50%, var(--ph-line));
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    box-shadow: var(--ph-shadow-sm);
}

body.passlord-profile-page .pp-deletion-banner__icon {
    width: 36px; height: 36px;
    border-radius: 12px;
    background: var(--ph-coral);
    color: #ffffff;
    display: grid; place-items: center;
    flex-shrink: 0;
    font-family: var(--ph-font-display);
    font-weight: 800;
    font-size: 18px;
}

body.passlord-profile-page .pp-deletion-banner__copy {
    flex: 1;
    min-width: 220px;
    color: var(--ph-ink);
    font-size: 14px;
    line-height: 1.5;
}

body.passlord-profile-page .pp-deletion-banner__copy strong { color: var(--ph-ink); font-weight: 700; }

body.passlord-profile-page .pp-deletion-banner__actions {
    display: flex; gap: 8px; flex-wrap: wrap;
}

/* ===================== TOAST ===================== */
body.passlord-profile-page .pp-toast {
    position: fixed;
    bottom: 20px; left: 50%;
    transform: translate(-50%, 80px);
    background: var(--ph-ink);
    color: var(--ph-bg);
    padding: 12px 18px;
    border-radius: 999px;
    font-family: var(--ph-font-ui);
    font-weight: 600;
    font-size: 14px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
    z-index: 200;
    transition: transform 0.35s cubic-bezier(0.2, 0.9, 0.3, 1.2);
    display: flex; align-items: center; gap: 10px;
    pointer-events: none;
}

body.passlord-profile-page .pp-toast.is-show {
    transform: translate(-50%, 0);
    pointer-events: auto;
}

body.passlord-profile-page .pp-toast__ic {
    width: 18px; height: 18px;
    border-radius: 50%;
    background: var(--ph-accent);
    color: var(--ph-ink);
    display: grid; place-items: center;
    font-size: 11px;
    font-weight: 800;
}

/* ===================== OWNER / VISITOR / MODO VIEW =====================
   - own-only      : only owner of profile (visible if data-pp-viewer="owner")
   - visitor-only  : only when viewing someone else's profile
   - modo-only     : only when current user is moderator (regardless of view)
   ====================================================================== */
body.passlord-profile-page .pp[data-pp-viewer="owner"]   .visitor-only { display: none !important; }
body.passlord-profile-page .pp[data-pp-viewer="visitor"] .own-only      { display: none !important; }
body.passlord-profile-page .pp:not([data-pp-modo="1"]) .modo-only       { display: none !important; }

/* ===================== DARK MODE ===================== */
html[data-mode="dark"] body.passlord-profile-page,
body.dark.passlord-profile-page {
    background:
        radial-gradient(circle at top left, rgba(255, 212, 41, 0.10), transparent 24%),
        radial-gradient(circle at top right, rgba(26, 111, 214, 0.16), transparent 22%),
        var(--ph-bg);
}

html[data-mode="dark"] body.passlord-profile-page .pp-card,
body.dark.passlord-profile-page .pp-card,
html[data-mode="dark"] body.passlord-profile-page .pp-rail-card,
body.dark.passlord-profile-page .pp-rail-card,
html[data-mode="dark"] body.passlord-profile-page .pp-fic-row,
body.dark.passlord-profile-page .pp-fic-row,
html[data-mode="dark"] body.passlord-profile-page .pp-trade,
body.dark.passlord-profile-page .pp-trade,
html[data-mode="dark"] body.passlord-profile-page .pp-medal,
body.dark.passlord-profile-page .pp-medal,
html[data-mode="dark"] body.passlord-profile-page .pp-social-card,
body.dark.passlord-profile-page .pp-social-card {
    background: var(--ph-card);
}

html[data-mode="dark"] body.passlord-profile-page .pp-rail-card.is-dark,
body.dark.passlord-profile-page .pp-rail-card.is-dark { background: #04101a; }

html[data-mode="dark"] body.passlord-profile-page .pp-field input,
body.dark.passlord-profile-page .pp-field input,
html[data-mode="dark"] body.passlord-profile-page .pp-field select,
body.dark.passlord-profile-page .pp-field select,
html[data-mode="dark"] body.passlord-profile-page .pp-field textarea,
body.dark.passlord-profile-page .pp-field textarea,
html[data-mode="dark"] body.passlord-profile-page .pp-checkbox-list label,
body.dark.passlord-profile-page .pp-checkbox-list label,
html[data-mode="dark"] body.passlord-profile-page .pp-radio label,
body.dark.passlord-profile-page .pp-radio label {
    background: rgba(255, 255, 255, 0.04);
    color: var(--ph-ink);
}

html[data-mode="dark"] body.passlord-profile-page .pp-cover__edit,
body.dark.passlord-profile-page .pp-cover__edit {
    background: rgba(0, 0, 0, 0.5);
    color: var(--ph-bg);
    border: 1px solid rgba(255, 255, 255, 0.16);
}

html[data-mode="dark"] body.passlord-profile-page .pp-tabs,
body.dark.passlord-profile-page .pp-tabs {
    background: color-mix(in srgb, var(--ph-bg) 80%, transparent);
}

html[data-mode="dark"] body.passlord-profile-page .pp-tab.is-on,
body.dark.passlord-profile-page .pp-tab.is-on {
    background: var(--ph-accent);
    color: #04101a;
}

html[data-mode="dark"] body.passlord-profile-page .pp-tab.is-on .pp-tab__badge,
body.dark.passlord-profile-page .pp-tab.is-on .pp-tab__badge {
    background: var(--ph-ink);
    color: var(--ph-accent);
}

/* ===================== RESPONSIVE ===================== */
@media (max-width: 1199px) {
    body.passlord-profile-page .pp-main {
        grid-template-columns: 1fr;
    }

    body.passlord-profile-page .pp-rail {
        position: static;
    }

    body.passlord-profile-page .pp-fic-grid {
        grid-template-columns: 1fr;
    }

    body.passlord-profile-page .pp-medals {
        grid-template-columns: repeat(4, 1fr);
    }

    body.passlord-profile-page .pp-coll-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    body.passlord-profile-page .pp-stats-strip {
        flex-wrap: wrap;
        border-radius: var(--ph-radius-l);
    }

    body.passlord-profile-page .pp-stats-strip a {
        flex: 0 0 calc(50% - 4px);
        border-radius: var(--ph-radius-m);
    }

    body.passlord-profile-page .pp-stats-strip a + a::before { display: none; }

    body.passlord-profile-page .pp-head {
        grid-template-columns: auto 1fr;
    }

    body.passlord-profile-page .pp-actions {
        grid-column: 1 / -1;
        align-items: flex-start;
    }
}

@media (max-width: 767px) {
    body.passlord-profile-page .pp-cover { height: 160px; margin-top: 12px; border-radius: 24px; }
    body.passlord-profile-page .pp-cover__blob.a { width: 100px; height: 100px; }
    body.passlord-profile-page .pp-cover__blob.c { width: 64px; height: 64px; }

    body.passlord-profile-page .pp-head {
        grid-template-columns: 1fr;
    }

    body.passlord-profile-page .pp-avatar-wrap { margin-top: -56px; }

    body.passlord-profile-page .pp-avatar {
        width: 96px; height: 96px;
        border-radius: 26px;
        font-size: 40px;
        border-width: 4px;
    }

    body.passlord-profile-page .pp-avatar__ring { inset: -7px; border-radius: 30px; }

    body.passlord-profile-page .pp-online-dot { width: 18px; height: 18px; border-width: 3px; bottom: 4px; right: 4px; }

    body.passlord-profile-page .pp-identity h1 { font-size: 26px; }
    body.passlord-profile-page .pp-identity h1 .pp-at { display: block; margin-left: 0; vertical-align: 0; font-size: 14px; }

    body.passlord-profile-page .pp-actions { align-items: flex-start; }
    body.passlord-profile-page .pp-actions-row { flex-wrap: wrap; }

    body.passlord-profile-page .pp-stats-strip a {
        flex: 0 0 calc(33.333% - 4px);
    }

    body.passlord-profile-page .pp-fic-grid,
    body.passlord-profile-page .pp-trade-grid,
    body.passlord-profile-page .pp-about-grid,
    body.passlord-profile-page .pp-form-grid {
        grid-template-columns: 1fr;
    }

    body.passlord-profile-page .pp-medals { grid-template-columns: repeat(3, 1fr); }
    body.passlord-profile-page .pp-coll-grid { grid-template-columns: repeat(2, 1fr); }

    body.passlord-profile-page .pp-fic-row { grid-template-columns: 64px 1fr; }
    body.passlord-profile-page .pp-fic-row__status { grid-column: 1 / -1; align-self: flex-end; }
    body.passlord-profile-page .pp-fic-cover { width: 64px; height: 88px; font-size: 11px; padding: 6px; }

    body.passlord-profile-page .pp-trade__body { grid-template-columns: 1fr; }
    body.passlord-profile-page .pp-trade__body svg { transform: rotate(90deg); justify-self: center; }

    body.passlord-profile-page .pp-card { padding: 18px; }
    body.passlord-profile-page .pp-rail-card { padding: 16px; }

    body.passlord-profile-page .pp-tabs {
        margin: 0 -16px 16px;
        padding: 6px 16px;
    }
}
