.social-birth-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.social-field{display:grid;gap:7px;font-size:.9rem;font-weight:650;min-width:0}.social-field input,.social-field select{width:100%;min-width:0;font-size:16px}.social-profile-form{display:grid;gap:15px}.social-profile-form .primary{justify-self:start}.social-note{font-size:.85rem!important;line-height:1.6!important;color:var(--color-muted-ink)}.social-status{grid-column:1/-1;min-width:0;overflow-wrap:anywhere}.social-status:empty{display:none}.social-birth-dialog .app-dialog-body{min-height:0;overflow:auto}.social-birth-dialog .app-dialog-actions{flex-shrink:0;padding-top:12px}.social-birth-dialog .dialog-heading h2{font-size:1.25rem}.social-birth-dialog form{margin-block:16px}.social-birth-dialog select,.social-birth-dialog input{font-size:16px}.social-birth-dialog .app-dialog-actions button{min-height:44px}#register-birth[hidden]{display:none!important}#register-birth{margin-top:16px}.social-friends{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,350px),1fr));gap:18px}.social-friends>.app-profile-card{margin:0}.social-friends>section:first-child{grid-column:1/-1}.social-person{display:grid;gap:12px;padding:16px;border:1px solid var(--color-border);background:var(--color-background);border-radius:16px;overflow-wrap:anywhere}.social-list{align-content:start}.social-actions{display:flex;gap:8px;flex-wrap:wrap}.social-actions button{font-size:.85rem;min-height:44px}.social-invite-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.social-invite-form label{flex:1;min-width:0}.social-friends-icon{display:inline-grid;place-items:center;width:23px;height:23px;font-size:25px}.ranking-scope{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.ranking-scope button{min-height:44px;padding:8px 16px;border:1px solid var(--color-border);border-radius:12px;background:#fff;color:var(--color-primary-ink);font-weight:700}.ranking-scope [aria-pressed=true]{background:var(--color-primary);color:white}.ranking-celebration[data-scope=friends]{background:radial-gradient(ellipse at 50% 0,#19C2D822,transparent 75%)}.social-birth-dialog .app-dialog-actions .social-status{margin:0}
@media(max-width:900px),(pointer:coarse){.social-friends{grid-template-columns:minmax(0,1fr);gap:14px}.social-birth-fields{gap:10px}.social-invite-form{display:grid;grid-template-columns:minmax(0,1fr)}.social-person{padding:12px}.social-actions button{flex:1}.social-birth-dialog{max-height:calc(var(--app-height,100dvh) - 24px)}}
@media(prefers-reduced-motion:reduce){.ranking-celebration[data-scope=friends]{animation:none}}
.desktop-layout .social-profile-card{grid-column:1/-1}.social-profile-card>label{max-width:720px}.social-birth-dialog .app-dialog-actions>*{min-width:0}.desktop-layout [data-app-page=ranking] .ranking-scope{flex-shrink:0}

.social-birth-dialog .app-dialog-actions button{grid-column:1/-1;width:100%}

.ranking-friend-action{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;padding:8px;border:1px solid var(--color-border);border-radius:12px;color:var(--color-primary);background:var(--color-surface);text-decoration:none;cursor:pointer}
.ranking-friend-action svg{width:23px;height:23px;flex-shrink:0}.ranking-friend-action:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.ranking-friend-action:disabled{opacity:.5;cursor:wait}.ranking-friend-action[data-relationship=friend]{color:#16746d;background:#e6f8f5;cursor:default}.social-notification-badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:12px;background:#b42d65;color:#fff;font:700 12px var(--font-body);margin-inline-start:6px;flex-shrink:0}

.ranking-friend-action[data-relationship=unavailable]{color:var(--color-muted);background:var(--color-background);cursor:default;border-style:dashed}.podium-card .ranking-friend-action{margin-top:auto;min-height:44px;box-sizing:border-box}
.invite-share-card{gap:12px!important}.invite-share-actions{display:flex;gap:10px;flex-wrap:wrap}.invite-share-actions button{min-height:46px}.invite-share-actions .primary{gap:9px}.invite-management{margin-top:2px;min-width:0}.invite-management summary{min-height:44px;padding-block:10px;cursor:pointer;color:var(--color-primary-ink);font-size:.9rem}.invite-management input{display:block;width:100%;min-width:0;font-size:16px;margin-block:10px;overflow-wrap:anywhere}.invite-management .quiet-button{font-size:.85rem}.invite-landing{width:100%;max-width:620px;margin:20px auto;display:grid;gap:18px;padding:clamp(20px,4vw,36px);border:1px solid var(--color-border);border-radius:24px;background:#fff;box-shadow:var(--shadow-soft)}.invite-landing h1{font-size:clamp(1.6rem,5vw,2.2rem)}.invite-landing p{margin:0;line-height:1.65}.invite-person{padding:14px;border-radius:14px;background:var(--color-primary-soft);overflow-wrap:anywhere;font-family:var(--font-heading)}
@media(max-width:520px){.invite-share-actions{display:grid;grid-template-columns:minmax(0,1fr) auto}.invite-share-actions button{padding-inline:12px;font-size:.85rem}.invite-landing{margin-block:10px}}
.invite-share-actions svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.desktop-layout .invite-landing{max-width:620px}.desktop-layout .invite-share-card{grid-template-columns:minmax(0,1fr) auto;align-items:center}.desktop-layout .invite-share-card h2,.desktop-layout .invite-share-card>p.social-note{grid-column:1}.desktop-layout .invite-share-actions{grid-column:2;grid-row:1/3}.desktop-layout .invite-management,.desktop-layout .invite-share-card>.social-status{grid-column:1/-1}

/* Compact friendship lists; names always come from the authorized identity DTO. */
.social-friend-count{grid-column:1/-1;margin:-8px 0 0;color:var(--color-muted-ink);font-size:.9rem}
.social-friends>.invite-share-card,.social-list-friends,.social-list-blocked,.social-friends-pager{grid-column:1/-1}
.social-friends .social-list{gap:10px;min-width:0;overflow:visible}
.social-friends .social-list h2{margin:0 0 4px;grid-column:1/-1}
.social-person{grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;min-width:0;border-radius:15px;position:relative;overflow:visible}
.social-avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#5B5FF818,#19C2D822);color:#4549c7;font-family:var(--font-heading);font-weight:700;font-size:1rem;flex-shrink:0}
.social-person-name{min-width:0;font-size:.95rem;line-height:1.4;overflow-wrap:anywhere}
.social-friend-menu{position:relative;justify-self:end;min-width:44px;align-self:center}
.social-friend-menu[open]{z-index:10}
.social-menu-trigger{display:grid;place-items:center;list-style:none;width:44px;min-height:44px;padding:0;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);color:var(--color-primary-ink);font-size:1.6rem;line-height:1;cursor:pointer}
.social-menu-trigger::-webkit-details-marker{display:none}
.social-menu-options{position:absolute;inset-inline-end:0;top:calc(100% + 6px);width:max-content;min-width:190px;max-width:min(280px,calc(100vw - 48px));max-height:var(--friend-menu-height,240px);overflow:auto;overscroll-behavior:contain;padding:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;box-shadow:0 12px 32px #1f294022}
.social-friend-menu.is-upward .social-menu-options{top:auto;bottom:calc(100% + 6px)}
.social-menu-options a,.social-menu-options button{display:flex;align-items:center;justify-content:flex-start;min-height:44px;width:100%;padding:10px 12px;border:0;background:transparent;border-radius:9px;text-align:start;font:600 .9rem var(--font-body);text-decoration:none;white-space:nowrap;overflow-wrap:normal;word-break:normal;color:var(--color-primary-ink);cursor:pointer}
.social-menu-options button{color:#a32d55}
.social-menu-trigger:focus-visible,.social-menu-options a:focus-visible,.social-menu-options button:focus-visible,.social-list-blocked>summary:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}
.social-list-incoming .social-actions,.social-list-outgoing .social-actions,.social-list-blocked .social-actions{grid-column:2/-1;align-items:center;gap:8px;min-width:0}
.social-person .social-actions button{flex:0 1 auto;min-height:44px;white-space:nowrap;word-break:normal;overflow-wrap:normal;padding-inline:12px}
.social-person .social-actions .social-friend-menu{margin-inline-start:auto}
.social-list-blocked>summary{min-height:44px;cursor:pointer;font-weight:700;color:var(--color-muted-ink)}
.social-list-blocked:not([open])>*:not(summary){display:none}
.social-list-blocked .social-person{margin-top:10px}
.social-confirm-dialog{width:min(440px,calc(100% - 24px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--color-border);border-radius:22px;padding:24px;color:var(--color-text);background:var(--color-surface);box-shadow:0 20px 70px #1f294030}
.social-confirm-dialog::backdrop{background:#1f294060}
.social-confirm-dialog h2{font-size:1.25rem;margin:0 0 12px}
.social-confirm-dialog p{font-size:1rem;line-height:1.6;margin:0 0 20px}
.social-confirm-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}
.social-confirm-actions button{min-height:44px;white-space:nowrap;word-break:normal;overflow-wrap:normal}
.ranking-row.is-target{outline:2px solid var(--color-primary);outline-offset:-2px;background:#5b5ff814}
@media(min-width:1200px){.social-list-friends{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(hover:hover){.social-menu-trigger:hover,.social-menu-options a:hover,.social-menu-options button:hover{background:#5b5ff80d}}
/* One compact, localized rhythm capsule shared by participant surfaces. */
.participant-streak{display:inline-flex;align-items:center;justify-content:center;gap:4px;align-self:flex-start;flex-shrink:0;width:max-content;max-width:100%;min-height:23px;padding:2px 7px;border:1px solid #f3d5a7;border-radius:999px;background:linear-gradient(135deg,#fff5dc,#ffead6);color:#804209;font:750 .72rem/1.4 var(--font-body);white-space:nowrap;font-variant-numeric:tabular-nums;vertical-align:middle}
.participant-streak>span:first-child{font-size:.9rem;line-height:1}.social-person-identity{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.social-person-identity .social-person-name{max-width:100%}
.friend-xp-total{color:#4549ce;font-weight:800;font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}.social-person-identity .social-friend-toggle{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:44px;width:100%;min-width:0;padding:0 20px 0 0;border:0;background:transparent;color:inherit;text-align:start;font:inherit;border-radius:8px;box-shadow:none}.social-friend-toggle:hover{background:#5b5ff808}.friend-xp-chevron{position:absolute;right:0;top:4px;color:#637087;transition:transform .2s}.social-friend-toggle[aria-expanded=true] .friend-xp-chevron{transform:rotate(180deg)}.friend-xp-panel{grid-column:1/-1;min-width:0;width:100%;padding:16px 0 4px;border-top:1px solid #dfe6f1;animation:friend-xp-enter .2s ease-out}.friend-xp-panel[hidden]{display:none!important}.friend-xp-title{margin:0;font:650 .9rem var(--font-heading)}.friend-xp-gain{margin:6px 0 4px;color:#4549ce;font-weight:750;font-size:.8rem}.friend-xp-chart{display:block;width:100%;height:auto;max-height:270px;overflow:visible}.friend-xp-grid{stroke:#e2e8f1;stroke-width:1}.friend-xp-axis{fill:#526079;font:11px var(--font-body)}.friend-xp-line{stroke:#5b5ff8;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.friend-xp-point{fill:#19c2d8;stroke:#fff;stroke-width:2}.friend-xp-panel .social-note{margin-block:6px}.social-friend-toggle:focus-visible{outline:3px solid #5b5ff8;outline-offset:4px}@keyframes friend-xp-enter{from{opacity:.4;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.friend-xp-panel{animation:none}.friend-xp-chevron{transition:none}}
.friend-xp-axis{font-size:12px}
.friend-xp-point.is-empty{fill:#fff;stroke:#8998b0;stroke-width:1.5}.friend-xp-day-note{margin:0 0 8px;color:#536078;font-size:.75rem;line-height:1.5}
.ranking-xp-toggle{position:relative;display:inline-flex;align-items:center;max-width:100%;width:100%;min-height:36px;padding:2px 17px 2px 0;border:0;border-radius:6px;background:transparent;text-align:inherit;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;box-shadow:none}.ranking-xp-toggle .xp-participant-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ranking-xp-toggle .friend-xp-chevron{top:8px;font-size:.8rem}.ranking-xp-toggle:focus-visible{outline:3px solid #5b5ff8;outline-offset:2px}.ranking-xp-toggle:hover{color:#4549ce;background:#5b5ff808}.ranking-row.has-xp-expansion{flex-wrap:wrap}.ranking-row>.friend-xp-panel,.ranking-summary>.friend-xp-panel{flex:0 0 100%;width:100%;text-align:start}.podium-card>.friend-xp-panel{align-self:stretch;text-align:start}.podium-card .ranking-xp-toggle{justify-content:center;text-align:center}.has-xp-expansion .friend-xp-panel .friend-xp-title{white-space:normal;overflow:visible;max-width:none}.ranking-summary>.friend-xp-panel{max-width:600px}
.ranking-section>.friend-xp-panel{max-width:640px;margin:14px auto 0}.ranking-section>.friend-xp-panel[hidden]{display:none!important}
