.public-profile-page { gap: 24px; }
.public-profile-hero { padding: 32px; }
.public-profile-hero .public-profile-layout { display: grid; grid-template-columns: 144px minmax(0,1fr); gap: 28px; }
.public-profile-hero .public-profile-identity { display: flex; flex-direction: column; gap: 0; }
.public-profile-hero h1 { margin: 0; font-size: 28px; line-height: 1.25; }
.public-profile-hero h2 { margin: 0 0 8px; font-size: 14px; line-height: 1.45; font-weight: 600; color: color-mix(in srgb,var(--color-base-content) 80%,transparent); }
.public-profile-skills { margin-top: 18px; }
.public-profile-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.public-profile-tags .badge { background: color-mix(in srgb,var(--color-base-content) 5%,var(--color-base-100)); border: 1px solid color-mix(in srgb,var(--color-base-content) 12%,transparent); color: var(--color-base-content); font-size: 13px; min-height: 26px; }
.public-profile-genres { margin-top: 20px; }
.public-profile-presence { margin-top: 12px; font-size: 13px; }
.public-profile-member { margin-top: 24px; font-size: 13px; color: color-mix(in srgb,var(--color-base-content) 70%,transparent); }
.public-profile-contacts { margin-top: 24px; padding-top: 20px; border-top: 1px solid color-mix(in srgb,var(--color-base-content) 12%,transparent); }
.public-profile-empty-contacts { font-size: 14px; color: color-mix(in srgb,var(--color-base-content) 75%,transparent); }
.public-profile-empty-contacts a { display: inline-block; margin-left: 8px; text-decoration: underline; text-underline-offset: 3px; padding-block: 8px; }
.public-profile-message { margin-top: 16px; }
.public-profile-hero .btn { min-height: 44px; height: auto; }
.public-profile-completion { --completion-color: var(--color-warning); margin-top: 24px; border-top: 1px solid color-mix(in srgb,var(--color-base-content) 12%,transparent); }
.public-profile-completion summary { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; list-style: none; cursor: pointer; padding: 16px 0 0; font-size: 14px; }
.public-profile-completion summary::-webkit-details-marker { display: none; }
.public-profile-completion:has(.progress-error) { --completion-color: var(--color-error); }
.public-profile-completion:has(.progress-success) { --completion-color: var(--color-success); }
.public-profile-completion summary > span:first-child { font-weight: 600; }
.public-profile-completion [data-profile-completion-label] { padding: 5px 10px; border-radius: 999px; border: 1px solid color-mix(in srgb,var(--completion-color) 45%,transparent); background: color-mix(in srgb,var(--completion-color) 18%,var(--color-base-100)); color: color-mix(in srgb,var(--color-base-content) 80%,var(--completion-color)); font-size: 13px; font-weight: 600; }
.public-profile-completion summary svg { width: 16px; height: 16px; margin-left: auto; }
.public-profile-completion[open] summary svg { transform: rotate(180deg); }
.public-profile-completion-body { padding-top: 12px; max-width: 660px; }
.public-profile-completion-body p { font-size: 13px; color: color-mix(in srgb,var(--color-base-content) 75%,transparent); }
.public-profile-completion .progress { margin-block: 10px; height: 6px; color: var(--completion-color); }
.public-profile-missing { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.public-profile-missing a { font-size: 13px; padding-block: 8px; text-decoration: underline; text-underline-offset: 3px; }
.public-profile-page :is(a,button,summary):focus-visible { outline: 2px solid var(--color-secondary); outline-offset: 4px; }
.public-profile-page [data-posts-list] .post-card-favorite-button { min-width: 44px; min-height: 44px; }
@media(max-width: 767px) {
  .public-profile-hero { padding: 20px 16px; }
  .public-profile-hero .public-profile-layout { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .public-profile-hero h1 { font-size: 24px; }
  .public-profile-skills { margin-top: 14px; }
  .public-profile-completion summary { gap: 6px 12px; }
  .public-profile-completion summary > span:first-child { width: 100%; }
  .public-profile-page { gap: 20px; }
}

.public-profile-catalog-links a { max-width: 100%; min-height: 44px; white-space: normal; }
.public-profile-catalog-links a > span:first-child { min-width: 0; overflow-wrap: anywhere; white-space: normal; }
.public-profile-catalog-links a > span:nth-child(2) { flex-shrink: 0; }


.public-profile-message > .btn { font-size: 14px; }
#profile_message_modal #profile-message-title { font-size: 18px; font-weight: 600; line-height: 25px; margin: 0; }
#profile-message-recipient { margin-top: 4px; font-size: 14px; line-height: 21px; overflow-wrap: anywhere; color: color-mix(in srgb,var(--color-base-content) 75%,transparent); }
.public-profile-template-label { font-size: 14px; font-weight: 500; line-height: 21px; }
#profile_message_modal [data-profile-message-template][aria-pressed="true"] { border-color: var(--color-secondary); background: color-mix(in srgb,var(--color-secondary) 12%,var(--color-base-100)); color: var(--color-base-content); box-shadow: inset 0 0 0 1px var(--color-secondary); }
#profile_message_modal .modal-action { flex-wrap: wrap; }
@media(max-width: 767px) {
  .public-profile-message > .btn { width: 100%; }
}

/* Glass sections create stacking contexts; lift the section while its menu is open. */
.public-profile-page > .section-content:has([data-posts-list] .dropdown:is(:focus-within, .dropdown-open)) {
  position: relative;
  z-index: 2;
}
