html, body { height: auto; min-height: 100vh; overflow-x: hidden; overflow-y: auto; }
body.space-page { background: var(--bg); color: var(--tx); }
.space-page .aurora { position: fixed; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.sp-top { position: sticky; top: 0; z-index: 60; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px clamp(16px, 4vw, 40px); pointer-events: auto; height: auto; }
.sp-brand { display: inline-flex; padding: 6px; border-radius: 14px; }
.sp-brand .brand-symbol { height: 30px; width: auto; display: block; }
.sp-nav { display: flex; align-items: center; gap: 10px; }
.sp-nav .ib svg, .sp-hero .m-btn svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sp-nav .ib .pill-logo svg { height: 15px; }

.sp-main { position: relative; z-index: 2; width: min(1040px, 100%); margin: 0 auto; padding: 8px clamp(16px, 4vw, 40px) 48px; display: flex; flex-direction: column; gap: 22px; }

/* Cabeçalho do perfil flutuando direto no fundo: foto → nome → @username → contadores */
.sp-hero { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; text-align: center; gap: 8px; padding: 28px 0 8px; background: none; border: 0; box-shadow: none; animation: spRise 0.8s var(--ease) both; }
.sp-hero > * { max-width: 100%; }
.sp-avatar-wrap { position: relative; flex: none; width: 122px; height: 122px; border-radius: 50%; padding: 3px; margin-bottom: 8px; background: conic-gradient(from 210deg, var(--a), color-mix(in srgb, var(--a) 20%, transparent), var(--a)); box-shadow: 0 16px 40px color-mix(in srgb, var(--a) 30%, transparent); }
/* Botão de trocar foto: um ícone de câmera no canto, visível ao passar o mouse (sempre visível no toque) */
.sp-avatar-edit { position: absolute; right: 2px; bottom: 2px; z-index: 2; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; border: 3px solid var(--bg); background: var(--a); color: var(--on-a); cursor: pointer; opacity: 0; scale: 0.85; transition: opacity 0.2s var(--ease), scale 0.2s var(--ease); }
.sp-avatar-edit svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sp-avatar-wrap:hover .sp-avatar-edit, .sp-avatar-edit:focus-visible { opacity: 1; scale: 1; }
@media (hover: none) { .sp-avatar-edit { opacity: 1; scale: 1; } }
.sp-avatar-edit[hidden] { display: none; }
.sp-avatar, .sp-avatar-fallback { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: grid; place-items: center; background: color-mix(in srgb, var(--bg) 70%, #222); border: 3px solid var(--bg); font-size: 2.4rem; font-weight: 800; color: var(--a); }
.sp-avatar[hidden], .sp-avatar-fallback[hidden] { display: none; }
.sp-hero h1 { font-size: clamp(1.5rem, 3.4vw, 2.1rem); line-height: 1.12; overflow-wrap: anywhere; max-width: 100%; }
.sp-handle-row { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; min-height: 28px; }
.sp-handle { color: var(--tx); opacity: 0.45; font-weight: 500; font-size: 0.95rem; letter-spacing: 0.01em; }
.sp-handle:empty { display: none; }
.sp-lock { display: inline-grid; place-items: center; color: var(--mu); }
.sp-lock[hidden] { display: none; }
.sp-lock svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.sp-handle-btn { height: 30px; padding: 0 12px; border-radius: 999px; border: 1px dashed color-mix(in srgb, var(--a) 55%, transparent); background: color-mix(in srgb, var(--a) 10%, transparent); color: var(--a); font: inherit; font-weight: 600; font-size: 0.78rem; cursor: pointer; }
.sp-handle-btn[hidden] { display: none; }
/* Bio: até 150 caracteres, quebras de linha preservadas, largura de leitura confortável */
.sp-bio { width: min(420px, 100%); min-width: 0; margin: 2px 0 0; color: color-mix(in srgb, var(--tx) 82%, transparent); font-size: 0.92rem; font-weight: 400; line-height: 1.5; white-space: pre-line; overflow-wrap: anywhere; }
.sp-bio[hidden] { display: none; }
.hp-count { align-self: flex-end; font-variant-numeric: tabular-nums; }
.hp-count.near { color: var(--tx); }
#hBio { min-height: 76px; resize: none; }
.sp-counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(360px, 100%); margin-top: 10px; padding: 0; background: none; border: 0; }
.sp-counts button { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 4px; border: 0; border-radius: 14px; background: none; color: var(--tx); font: inherit; cursor: pointer; transition: background 0.25s var(--ease); }
.sp-counts button:hover:not(:disabled) { background: rgba(255, 255, 255, 0.07); }
.sp-counts button:disabled { cursor: default; }
.sp-counts b { font-weight: 700; font-size: 1.12rem; font-variant-numeric: tabular-nums; }
.sp-counts span { font-size: 0.72rem; font-weight: 500; color: var(--mu); }
.sp-counts button + button { position: relative; }
.sp-counts button + button::before { content: ""; position: absolute; left: 0; top: 22%; bottom: 22%; width: 1px; background: var(--glass-line); }
.sp-meta { color: var(--mu); font-size: 0.8rem; }
.sp-meta:empty { display: none; }
.sp-actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.sp-actions .m-btn[hidden] { display: none; }
.sp-link { color: var(--a); font-weight: 600; font-size: 0.84rem; text-decoration: none; width: fit-content; border-radius: 6px; }
.sp-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.sp-private { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 40px 24px; border-radius: var(--r-lg); border: 1px dashed var(--glass-line); text-align: center; }
.sp-private[hidden] { display: none; }
.sp-private svg { width: 34px; height: 34px; fill: none; stroke: var(--a); stroke-width: 1.8; stroke-linecap: round; }
.sp-private p { color: var(--mu); max-width: 360px; line-height: 1.5; font-size: 0.9rem; }
.sp-at { display: flex; align-items: center; border-radius: var(--r-sm); border: 1px solid var(--glass-line); background: rgba(255, 255, 255, 0.05); transition: border-color 0.25s var(--ease), box-shadow 0.25s var(--ease); }
.sp-at:focus-within { border-color: var(--a); box-shadow: 0 0 0 4px color-mix(in srgb, var(--a) 18%, transparent); }
.sp-at b { padding-left: 14px; color: var(--mu); font-weight: 600; }
.m-field .sp-at input { border: 0; background: none; box-shadow: none; padding-left: 4px; }
#hMsg.ok { color: #4ade80; }
#hMsg.bad { color: #ff8a8a; }
.sp-inbox { position: relative; }
.sp-inbox[hidden] { display: none; }
.sp-badge { position: absolute; top: -2px; right: -2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--a); color: var(--on-a); font-style: normal; font-size: 0.66rem; font-weight: 700; display: grid; place-items: center; box-shadow: 0 0 0 2px var(--bg); }
.sp-badge[hidden] { display: none; }
.sp-person { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 14px; border: 1px solid transparent; transition: background 0.25s var(--ease), border-color 0.25s; }
.sp-person:hover { background: rgba(255, 255, 255, 0.05); border-color: var(--glass-line); }
.sp-person > a { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; color: var(--tx); text-decoration: none; border-radius: 10px; }
.sp-person img, .sp-person .sp-ph { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: none; background: var(--t); display: grid; place-items: center; color: var(--a); font-weight: 800; }
.sp-person span { display: flex; flex-direction: column; min-width: 0; }
.sp-person b { font-weight: 600; font-size: 0.9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp-person small { font-size: 0.76rem; color: var(--mu); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp-person .m-btn { height: 36px; padding: 0 14px; font-size: 0.78rem; flex: none; }
.sp-person-actions { display: flex; gap: 6px; flex: none; }

.sp-note { padding: 12px 16px; border-radius: 16px; background: color-mix(in srgb, var(--a) 12%, transparent); border: 1px solid color-mix(in srgb, var(--a) 35%, transparent); font-size: 0.84rem; line-height: 1.5; }
.sp-tabs { width: min(320px, 100%); align-self: center; }

.sp-panel { display: flex; flex-direction: column; gap: 18px; animation: spRise 0.6s var(--ease) both; }
.sp-panel[hidden] { display: none; }
.sp-subtabs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; justify-content: center; }
.sp-subtabs button { flex: none; height: 38px; padding: 0 16px; border-radius: 999px; border: 1px solid transparent; background: none; color: var(--mu); font: inherit; font-weight: 600; font-size: 0.84rem; cursor: pointer; transition: color 0.3s var(--ease), background 0.3s var(--ease), border-color 0.3s var(--ease); }
.sp-subtabs button[aria-selected="true"] { color: var(--tx); background: rgba(255, 255, 255, 0.07); border-color: var(--glass-line); }
.sp-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 8px; }
.sp-section-head h2 { font-size: 1.15rem; }

.sp-shelf-box { padding: 16px; border-radius: var(--r-lg); background: rgba(255, 255, 255, 0.035); border: 1px solid var(--glass-line); }
.sp-shelf { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 172px); gap: 14px; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 4px; scrollbar-width: thin; scrollbar-color: var(--a) transparent; }
.sp-shelf.expanded { grid-auto-flow: row; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); overflow: visible; }
.sp-card { position: relative; display: flex; flex-direction: column; border-radius: 20px; overflow: hidden; scroll-snap-align: start; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--glass-line); color: var(--tx); text-align: left; font: inherit; text-decoration: none; cursor: default; transition: translate 0.45s var(--ease), box-shadow 0.45s var(--ease), border-color 0.3s; animation: spRise 0.55s var(--ease) both; }
.sp-card:hover { translate: 0 -4px; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35); border-color: color-mix(in srgb, var(--a) 40%, var(--glass-line)); }
.sp-card-art { aspect-ratio: 1; display: grid; place-items: center; background: linear-gradient(135deg, var(--t), rgba(255, 255, 255, 0.03)); color: var(--a); overflow: hidden; }
.sp-card-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sp-card-art.round { margin: 14px 14px 0; border-radius: 50%; }
.sp-card-art svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.sp-card-info { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px 12px; min-width: 0; }
.sp-card-info b { font-weight: 600; font-size: 0.86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp-card-info small { font-size: 0.74rem; color: var(--mu); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp-card-link { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.sp-card-add, .sp-card-more { cursor: pointer; border-style: dashed; background: transparent; }
.sp-card-add .sp-card-art, .sp-card-more .sp-card-art { background: color-mix(in srgb, var(--a) 8%, transparent); }
.sp-card.is-loading .sp-card-art, .sp-card.is-loading b, .sp-card.is-loading small { background: linear-gradient(90deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.10), rgba(255, 255, 255, 0.04)); background-size: 200% 100%; animation: spShimmer 1.4s linear infinite; border-radius: 6px; color: transparent; }
.sp-remove { position: absolute; top: 8px; right: 8px; z-index: 2; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--glass-line); background: rgba(6, 8, 12, 0.7); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); color: #fff; display: grid; place-items: center; cursor: pointer; opacity: 0; transition: opacity 0.25s var(--ease); }
.sp-remove svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }
.sp-card:hover .sp-remove, .sp-remove:focus-visible { opacity: 1; }
.sp-stars { display: flex; gap: 2px; margin-top: 4px; }
.sp-stars svg { width: 15px; height: 15px; }
.sp-stars .o { fill: none; stroke: var(--mu); stroke-width: 1.5; stroke-linejoin: round; }
.sp-stars .f { fill: var(--a); stroke: var(--a); stroke-width: 1.5; stroke-linejoin: round; }
.sp-empty { color: var(--mu); font-size: 0.88rem; padding: 18px 6px; }

.sp-bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 150px; grid-auto-flow: dense; gap: 14px; }
.sp-block { position: relative; border-radius: 24px; overflow: hidden; background: linear-gradient(180deg, var(--glass-top), var(--glass-bottom)), var(--gl); border: 1px solid var(--glass-line); box-shadow: inset 0 1px 0 var(--glass-spec), 0 16px 40px rgba(0, 0, 0, 0.3); animation: spRise 0.6s var(--ease) both; animation-delay: var(--d, 0ms); }
.sz-s { grid-column: span 1; grid-row: span 1; }
.sz-w { grid-column: span 2; grid-row: span 1; }
.sz-t { grid-column: span 1; grid-row: span 2; }
.sz-l { grid-column: span 2; grid-row: span 2; }
.sz-xl { grid-column: 1 / -1; grid-row: span 1; }
.sp-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
.sp-caption { position: absolute; inset: auto 0 0 0; padding: 40px 16px 14px; background: linear-gradient(transparent, rgba(0, 0, 0, 0.78)); color: #fff; }
.sp-text { font-size: 0.9rem; line-height: 1.5; overflow-wrap: anywhere; }
.sp-quote { height: 100%; padding: 20px; display: flex; align-items: center; font-size: clamp(0.95rem, 1.6vw, 1.15rem); font-weight: 600; line-height: 1.45; overflow-wrap: anywhere; overflow: hidden; }
.sp-music { height: 100%; display: flex; align-items: center; gap: 16px; padding: 16px; min-width: 0; }
.sp-mbody { height: 100%; min-width: 0; }
.t-musictext .sp-mbody { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.sp-music-note { padding: 16px 20px 16px 0; display: flex; align-items: center; min-width: 0; }
.sp-rec { position: relative; height: 100%; aspect-ratio: 1; max-height: 118px; flex: none; }
.sp-sleeve { position: relative; z-index: 2; width: 100%; height: 100%; border-radius: 10px; object-fit: cover; background: var(--t); box-shadow: 0 12px 26px rgba(0, 0, 0, 0.5); display: block; }
.sp-vinyl { position: absolute; z-index: 1; top: 5%; left: 28%; width: 90%; height: 90%; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--a) 70%, #000) 0 16%, #0b0d12 17% 19%, transparent 20%), repeating-radial-gradient(circle, #12151e 0 2px, #1c212c 3px 4px); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.6); transition: left 0.6s var(--ease), rotate 1.2s var(--ease); }
.sp-block:hover .sp-vinyl { left: 42%; rotate: 40deg; }
.sp-music-meta { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding-left: 26px; }
.sp-music-meta b { font-weight: 700; font-size: 0.95rem; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.sp-music-meta small { color: var(--mu); font-size: 0.78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Blocos de música se adaptam ao próprio tamanho (container queries): nada se sobrepõe */
.t-music, .t-musictext { container-type: size; }
.sp-music-meta .sp-link { margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
@container (max-width: 300px) {
  .t-music .sp-music { flex-direction: column; justify-content: center; gap: 10px; text-align: center; }
  .t-music .sp-rec { height: min(76px, 48cqh); }
  .t-music .sp-vinyl, .t-musictext .sp-vinyl { display: none; }
  .t-music .sp-music-meta { padding-left: 0; align-items: center; width: 100%; }
  .t-music .sp-music-meta b { -webkit-line-clamp: 1; }
}
@container (max-width: 640px) {
  .t-musictext .sp-mbody { display: flex; flex-direction: column; }
  .t-musictext .sp-music { height: auto; flex: none; align-items: center; gap: 12px; padding: 14px 14px 10px; }
  .t-musictext .sp-rec { height: 60px; max-height: 60px; }
  .t-musictext .sp-music-meta { padding-left: 22px; flex: 1; }
  .t-musictext .sp-music-meta b { font-size: 0.88rem; -webkit-line-clamp: 1; }
  .t-musictext .sp-music-note { flex: 1; min-height: 0; padding: 0 16px 14px; align-items: flex-start; overflow: hidden; }
  .t-musictext .sp-text { font-size: 0.84rem; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
}
@container (max-width: 300px) {
  .t-musictext .sp-music-meta { padding-left: 0; }
  .t-musictext .sp-rec { height: 48px; max-height: 48px; }
}
@container (max-width: 640px) and (max-height: 190px) {
  .t-musictext .sp-music-meta small { display: none; }
  .t-musictext .sp-text { -webkit-line-clamp: 2; }
}
@container (max-height: 150px) {
  .t-music .sp-music-meta small { display: none; }
}

.sp-tools { position: absolute; top: 10px; right: 10px; z-index: 3; display: flex; gap: 4px; padding: 4px; border-radius: 999px; background: rgba(6, 8, 12, 0.72); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, 0.12); opacity: 0; translate: 0 -6px; transition: opacity 0.3s var(--ease), translate 0.4s var(--ease); }
.sp-block:hover .sp-tools, .sp-block:focus-within .sp-tools { opacity: 1; translate: 0 0; }
.sp-tools button { width: 32px; height: 32px; border-radius: 50%; border: 0; background: none; color: #fff; display: grid; place-items: center; cursor: pointer; transition: background 0.2s; }
.sp-tools button:hover { background: rgba(255, 255, 255, 0.14); }
.sp-tools button:disabled { opacity: 0.3; cursor: default; }
.sp-tools svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
body.visitor .owner-only { display: none !important; }

.sp-empty-space { grid-column: 1 / -1; padding: 48px 24px; border-radius: var(--r-lg); border: 1px dashed var(--glass-line); text-align: center; display: flex; flex-direction: column; gap: 8px; align-items: center; }
.sp-empty-space h2 { font-size: 1.25rem; }
.sp-empty-space p { color: var(--mu); max-width: 420px; line-height: 1.5; }

.sp-add { position: relative; display: flex; justify-content: center; }
.sp-add .m-btn svg { width: 18px; height: 18px; }
.sp-add-menu { position: absolute; bottom: calc(100% + 10px); left: 50%; translate: -50% 0; z-index: 20; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: min(380px, calc(100vw - 32px)); padding: 12px; border-radius: 22px; background: linear-gradient(180deg, var(--glass-top), var(--glass-bottom)), color-mix(in srgb, var(--bg) 85%, transparent); -webkit-backdrop-filter: blur(30px) saturate(1.7); backdrop-filter: blur(30px) saturate(1.7); border: 1px solid var(--glass-line); box-shadow: inset 0 1px 0 var(--glass-spec), 0 30px 70px rgba(0, 0, 0, 0.5); animation: spPop 0.4s var(--ease) both; }
.sp-add-menu[hidden] { display: none; }
.sp-add-menu button { display: flex; align-items: center; gap: 10px; height: 48px; padding: 0 14px; border-radius: 14px; border: 1px solid var(--glass-line); background: rgba(255, 255, 255, 0.05); color: var(--tx); font: inherit; font-weight: 600; font-size: 0.85rem; text-align: left; cursor: pointer; transition: background 0.25s var(--ease), border-color 0.25s var(--ease); }
.sp-add-menu button:hover { background: color-mix(in srgb, var(--a) 14%, transparent); border-color: color-mix(in srgb, var(--a) 45%, transparent); }
.sp-add-menu svg { width: 20px; height: 20px; flex: none; fill: none; stroke: var(--a); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

#searchSheet { z-index: 820; }
.sp-msg { min-height: 1.2em; font-size: 0.84rem; color: var(--mu); }
.sp-results { display: flex; flex-direction: column; gap: 6px; }
.sp-result { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 14px; border: 1px solid transparent; background: none; color: var(--tx); font: inherit; text-align: left; cursor: pointer; transition: background 0.25s var(--ease), border-color 0.25s; }
.sp-result:hover, .sp-result:focus-visible { background: rgba(255, 255, 255, 0.06); border-color: var(--glass-line); }
.sp-result img { width: 52px; height: 52px; border-radius: 10px; object-fit: cover; background: var(--t); flex: none; }
.sp-result img.round { border-radius: 50%; }
.sp-result span { display: flex; flex-direction: column; min-width: 0; }
.sp-result b { font-weight: 600; font-size: 0.9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp-result small { font-size: 0.76rem; color: var(--mu); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp-picked:empty { display: none; }
.sp-picked { display: flex; align-items: center; gap: 12px; }
.sp-picked img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; }
.sp-picked span { display: flex; flex-direction: column; min-width: 0; }
.sp-picked small { color: var(--mu); font-size: 0.78rem; }
#blockForm [data-field][hidden] { display: none; }
#blockForm .m-btn { align-self: flex-start; }
.m-err[hidden] { display: none; }
.m-err { color: #ff8a8a; font-size: 0.82rem; }


.space-page .nologin { position: relative; z-index: 2; max-width: 420px; margin: 10vh auto; padding: 32px; border-radius: var(--r-lg); text-align: center; display: flex; flex-direction: column; gap: 14px; align-items: center; }
.space-page .nologin[hidden] { display: none; }
.space-page .nologin p { color: var(--mu); }
.space-page .nologin .pbtn { display: inline-grid; place-items: center; height: 46px; padding: 0 26px; border-radius: 999px; text-decoration: none; }

.sp-foot { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 8px 20px 32px; text-align: center; font-size: 0.74rem; color: var(--mu); }
.sp-foot nav { display: flex; gap: 16px; }
.sp-foot a { color: var(--mu); }

@keyframes spRise { from { opacity: 0; translate: 0 14px; } }
@keyframes spPop { from { opacity: 0; scale: 0.94; } }
@keyframes spShimmer { to { background-position: -200% 0; } }

@media (hover: none) {
  .sp-remove { opacity: 1; }
  .sp-block:hover .sp-tools { opacity: 0; translate: 0 -6px; }
  .sp-block.picked .sp-tools { opacity: 1; translate: 0 0; }
  .sp-block.picked { outline: 2px solid var(--a); outline-offset: 2px; }
  .sp-block:not(.picked) .sp-tools { pointer-events: none; }
}

@media (max-width: 760px) {
  .sp-top { padding: calc(12px + env(safe-area-inset-top, 0px)) 14px 12px; }
  .sp-nav { gap: 6px; }
  .sp-nav > a.ib { display: none; }
  .sp-nav .ib { width: 38px; height: 38px; }
  .sp-tools { left: 6px; right: 6px; top: 6px; justify-content: space-between; }
  .sp-tools button { width: 30px; height: 30px; }
  .sp-hero { padding: 18px 0 4px; }
  .sp-actions { width: 100%; }
  .sp-actions .m-btn { flex: 1 1 140px; }
  .sp-person { flex-wrap: wrap; }
  .sp-person-actions { width: 100%; padding-left: 60px; }
  .sp-bento { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 136px; gap: 10px; }
  .sz-xl, .sz-l { grid-column: span 2; }
  .t-musictext.sz-s, .t-musictext.sz-w { grid-row: span 2; }
  .sp-shelf { grid-auto-columns: 46%; }
  .sp-subtabs { flex-wrap: wrap; justify-content: center; }
  .sp-subtabs button { height: 34px; padding: 0 12px; font-size: 0.78rem; }
  .sp-section-head { flex-direction: column; gap: 4px; }
}

/* ---------- Editar perfil: foto (upload, link ou capa de favorito) ---------- */
.hp-avatar-field { gap: 10px; }
.hp-avatar-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.hp-avatar-prev { position: relative; flex: none; width: 72px; height: 72px; border-radius: 50%; overflow: hidden; background: var(--t); display: grid; place-items: center; color: var(--a); font-weight: 800; font-size: 1.4rem; }
.hp-avatar-prev img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hp-avatar-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.hp-avatar-picks { display: flex; flex-wrap: wrap; gap: 8px; }
.hp-avatar-picks:empty { display: none; }
.hp-avatar-pick { width: 44px; height: 44px; border-radius: 50%; padding: 0; border: 2px solid transparent; background: var(--t); cursor: pointer; overflow: hidden; transition: border-color 0.2s var(--ease); }
.hp-avatar-pick img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hp-avatar-pick:hover, .hp-avatar-pick:focus-visible { border-color: var(--a); }
