/* Shared presentation. Existing tokens supply web/iOS colours. */
.ma-social,.ma-social-body,.ma-social-form,.ma-social-list{display:grid;gap:16px;min-width:0;}
.ma-social-home{gap:12px;}
.ma-social-home .ma-social-list{gap:14px;}
.ma-social h3,.ma-social p{margin:0;}
.ma-social-self{display:flex;align-items:center;gap:14px;min-width:0;padding:12px 14px;border:1px solid var(--ma-border);border-radius:18px;background:var(--ma-surface-strong);}
.ma-social-code-name{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding-block:8px;}
.ma-social-code-name>strong{min-width:0;overflow-wrap:anywhere;}
.ma-social-code-name>.ma-button{flex:none;}
.ma-social-avatar{flex:0 0 42px;width:42px;height:42px;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",var(--ma-font-jp);}
.ma-social-identity{display:grid;gap:4px;min-width:0;flex:1;text-align:left;overflow-wrap:anywhere;}
.ma-social-name{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;}
.ma-social-identity strong{color:var(--ma-text);font-size:.96rem;line-height:1.4;}
.ma-social-identity small,.ma-social-note{color:var(--ma-muted);font-size:.83rem;line-height:1.6;}
.ma-social-back{justify-self:start;min-height:44px;padding-inline:0;border:0;background:transparent;box-shadow:none;}
.ma-social-tools,.ma-social-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.ma-social-tools>.ma-button{flex:1 1 auto;}
.ma-social-tools>.ma-social-filter{flex:1 1 150px;}
.ma-social-tools>.ma-social-icon-button{display:grid;place-items:center;flex:0 0 44px;width:44px;padding:10px;}
.ma-social-periods{display:flex;flex:1;gap:4px;min-width:0;}
.ma-social-periods .ma-button{flex:1;padding:8px;color:var(--ma-muted);border-color:transparent;}
.ma-social-periods [aria-pressed="true"]{color:var(--ma-text-strong);background:var(--ma-control-active);border-color:var(--ma-border);}
.ma-social-home-tools{display:grid;grid-template-columns:minmax(120px,1fr) auto auto 44px;align-items:center;}
.ma-social-home-tools[data-staff="true"]{grid-template-columns:minmax(120px,1fr) auto auto 44px 44px;}
.ma-social-home-tools>.ma-button:not(.ma-social-icon-button){padding-inline:12px;}

.ma-social-filter{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;color:var(--ma-muted);font-size:.8rem;}
.ma-social select,.ma-social textarea,.ma-social input:not([type="checkbox"]){box-sizing:border-box;min-height:44px;min-width:0;border:1px solid var(--ma-border);border-radius:12px;background:var(--ma-control-bg);color:var(--ma-text);padding:10px 12px;font:inherit;}
.ma-social select{width:100%;min-width:0;flex:1 1 120px;}
.ma-social-field{display:grid;gap:8px;color:var(--ma-text);font-weight:700;}
.ma-social-field input,.ma-social-field select,.ma-social-field textarea{width:100%;font-weight:400;}
.ma-social .ma-button{min-height:44px;white-space:normal;overflow-wrap:anywhere;}
.ma-social-home>.ma-atlas-tabs .ma-button{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 6px;padding:8px;overflow-wrap:normal;}
.ma-social-home>.ma-atlas-tabs .ma-social-badge{margin:0;}
.ma-social-status{padding:12px 14px;border-radius:12px;background:var(--ma-surface-strong);color:var(--ma-text);font-size:.85rem;line-height:1.5;}
.ma-social-status[data-tone="error"]{border:1px solid var(--ma-danger);}
.ma-social-empty{padding:24px 16px;border:1px dashed var(--ma-border);border-radius:18px;color:var(--ma-muted);text-align:center;line-height:1.6;}
.ma-social-empty h3{color:var(--ma-text);margin-bottom:8px;}
.ma-social-empty .ma-button{margin-top:12px;}
.ma-social-row{position:relative;isolation:isolate;display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 10px;border:1px solid var(--ma-border);border-radius:16px;background:var(--ma-card);}
.ma-social-row.ma-banner-scene .ma-social-score{background:var(--ma-card);border-radius:8px;padding:5px 8px;}
.ma-social-row[data-self="true"]{border-color:var(--ma-atlas);}
.ma-social-person{display:flex;flex:1;gap:12px;align-items:center;min-width:120px;border:0;background:none;padding:4px;color:inherit;font:inherit;text-align:left;}
button.ma-social-person{cursor:pointer;}
.ma-social-person:focus-visible,.ma-social :is(input,select,textarea):focus-visible{outline:3px solid var(--ma-focus-ring);outline-offset:3px;}
.ma-social-rank{width:24px;text-align:center;font-size:.94rem;color:var(--ma-muted);font-variant-numeric:tabular-nums;}
.ma-social-score{font-size:.8rem;line-height:1.4;max-width:110px;text-align:right;color:var(--ma-text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.ma-social-row-actions{flex-basis:100%;justify-content:flex-end;}
.ma-social-avatar-picker{border:0;padding:0;margin:0;min-width:0;}
.ma-social-avatar-picker legend{margin-bottom:10px;font-weight:700;}
.ma-social-avatar-options{display:grid;gap:12px;min-width:0;margin-top:12px;}
.ma-social-avatar-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
.ma-social-avatar-modes .ma-button{padding:8px;font-size:.8rem;}
.ma-social-avatar-modes [aria-pressed="true"]{border-color:var(--ma-atlas);background:var(--ma-control-active);}
.ma-social-photo-choice{display:flex;align-items:center;gap:14px;}
.ma-social-consent{display:flex;gap:10px;align-items:center;font-size:.86rem;line-height:1.6;}
.ma-social-consent input{width:22px;height:22px;flex-shrink:0;}
.ma-social-code{width:100%;text-align:center;font-family:ui-monospace,monospace!important;font-size:.91rem!important;}
.ma-social-preview{display:grid;gap:12px;}
.ma-social-insights{min-width:0;display:grid;gap:22px;}
.ma-social-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;}
.ma-social-stats>div{display:grid;gap:5px;min-width:0;}
.ma-social-stats span{font-size:.78rem;color:var(--ma-muted);}
.ma-social-stats strong{font:800 1.35rem/1.2 var(--ma-font-display);color:var(--ma-text);overflow-wrap:anywhere;}
.ma-social-achievement-total{display:flex;gap:12px;align-items:center;padding:12px 0;border-block:1px solid var(--ma-border);}
.ma-social-achievement-total svg{width:54px;height:60px;flex:none;}
.ma-social-achievement-total>strong{font:800 1.6rem var(--ma-font-display);}
.ma-social-achievement-total>span{display:grid;gap:4px;font-weight:700;}
.ma-social-achievement-total small{font-size:.72rem;font-weight:400;color:var(--ma-muted);}
.ma-social-branches{display:grid;gap:20px;}
.ma-social-branch__title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px;}
.ma-social-branch__title h4{margin:0;font-size:.95rem;}
.ma-social-branch__title strong{font-size:.78rem;color:var(--ma-text);}
.ma-social-branch__bar{display:flex;height:10px;overflow:hidden;border-radius:4px;background:var(--ma-border);}
.ma-social-branch [data-stage=mastered]{--stage-color:var(--ma-stage-mastered,#30b790);}
.ma-social-branch [data-stage=confident]{--stage-color:var(--ma-stage-confident,#8b75ec);}
.ma-social-branch [data-stage=learning]{--stage-color:var(--ma-stage-learning,#ed9d3c);}
.ma-social-branch__bar span{background:var(--stage-color);}
.ma-social-branch__legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:9px;color:var(--ma-muted);font-size:.7rem;}
.ma-social-branch__legend span::before{content:"";display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:5px;background:var(--stage-color);}
.ma-social-mastery-help{font-size:.76rem;color:var(--ma-muted);line-height:1.6;}
.ma-social-mastery-help summary{cursor:pointer;color:var(--ma-text);}

.ma-weekly-summary{display:grid;gap:10px;padding:12px 14px;border:1px solid var(--ma-border);border-radius:16px;background:var(--ma-card);min-width:0;}
.ma-weekly-summary :is(h3,p){margin:0;}
.ma-weekly-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;}
.ma-weekly-heading h3{font-size:1rem;}
.ma-weekly-heading .ma-social-note{font-variant-numeric:tabular-nums;}
.ma-weekly-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.ma-weekly-stats>div{display:grid;gap:2px;}
.ma-weekly-stats strong{font-size:1.4rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.ma-weekly-stats span{font-size:.8rem;color:var(--ma-muted);}
.ma-weekly-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;border-top:1px solid var(--ma-border);}
.ma-weekly-rules{min-width:0;font-size:.8rem;line-height:1.5;overflow-wrap:anywhere;}
.ma-weekly-rules summary{cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.ma-weekly-rules summary::-webkit-details-marker{display:none;}
.ma-weekly-rules summary::after{content:'';width:6px;height:6px;flex:none;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);}
.ma-weekly-rules[open]{grid-column:1/-1;}
.ma-weekly-rules[open] summary::after{transform:rotate(225deg);}
.ma-weekly-rules> :not(summary){margin:0 0 10px;}
.ma-weekly-rules summary:focus-visible{outline:3px solid var(--ma-focus-ring);outline-offset:2px;border-radius:6px;}
@media(max-width:380px){.ma-social-self{padding:12px;gap:10px;}.ma-social-row{gap:8px;}.ma-social-score{flex-basis:100%;max-width:none;text-align:left;padding-left:8px;}}

.ma-social-request-badge,.ma-social-badge{border:1px solid var(--ma-atlas);border-radius:12px;background:var(--ma-control-active);color:var(--ma-text-strong);font:750 .75rem/1.3 var(--ma-font-ui);}
.ma-social-request-badge{min-height:44px;padding:8px 10px;flex:none;cursor:pointer;}
.ma-social-badge{padding:2px 7px;margin-left:6px;}
.ma-social-filter[data-pending="true"] select{border-color:var(--ma-atlas);}
.ma-social-name-notice{display:grid;gap:10px;border:1px solid var(--ma-warning);border-radius:14px;padding:12px;color:var(--ma-text);font-size:.85rem;}

.ma-social-report{display:grid;gap:12px;padding:16px;border:1px solid var(--ma-border);border-radius:16px;overflow-wrap:anywhere;}
.ma-social-field textarea{resize:vertical;min-height:96px;}
.ma-social-moderation-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}
.ma-social-moderation-tabs .ma-button{padding:10px 6px;font-size:.83rem;}
.ma-social-staff-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 14px;border:1px solid var(--ma-border);border-radius:16px;background:var(--ma-card);}
.ma-social-staff-row>span{flex:1;min-width:0;overflow-wrap:anywhere;}
.ma-social-staff-row .ma-social-person{padding:0;min-height:44px;}
@media(max-width:560px){.ma-social-home-tools{grid-template-columns:minmax(90px,1fr) auto auto 44px;gap:6px;}.ma-social-home-tools>.ma-button:not(.ma-social-icon-button){padding-inline:8px;font-size:.72rem;}.ma-social-home-tools select{font-size:.75rem;padding-inline:8px;}.ma-social-home-tools[data-staff="true"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px 44px;}.ma-social-home-tools[data-staff="true"]>.ma-social-filter{grid-column:1/-1;}.ma-social-moderation-tabs{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:360px){.ma-social-home-tools{grid-template-columns:1fr 1fr 44px;}.ma-social-home-tools>.ma-social-filter{grid-column:1/-1;}}
html[data-ma-large-text] .ma-social-home-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;}
html[data-ma-large-text] .ma-social-home-tools[data-staff="true"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px 44px;}
html[data-ma-large-text] .ma-social-home-tools>.ma-social-filter{grid-column:1/-1;}
html[data-ma-large-text] .ma-social-moderation-tabs{grid-template-columns:repeat(2,minmax(0,1fr));}
.ma-social-profile[data-ma-profile-theme]{padding:18px;border-radius:24px;background:var(--ma-app-bg);color:var(--ma-text);}
/* Full profiles share the existing character artwork; private copy comes only
   from the accepted-friend projection. */
.ma-social-profile-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:start;}
.ma-social-profile-content--visitor{grid-template-columns:minmax(0,1fr);}
.ma-social-character{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-width:0;min-height:260px;padding:12px 4px;background:transparent;}
.ma-social-character__figure{display:grid;grid-template-columns:197fr 123fr;width:100%;max-width:210px;min-width:0;gap:6px 0;}
.ma-social-character__figure[data-companion]{max-width:280px;}
.ma-social-character__figure svg{display:block;grid-column:1/-1;width:100%;height:auto;}
.ma-social-character__speech{position:relative;max-width:280px;margin:0;padding:14px 18px;border:1px solid var(--ma-border);border-radius:18px;background:var(--ma-card-2);color:var(--ma-text-strong);font-size:.88rem;line-height:1.55;overflow-wrap:anywhere;}
.ma-social-character__speech::after{content:'';position:absolute;left:40%;bottom:-7px;width:12px;height:12px;background:var(--ma-card-2);border-right:1px solid var(--ma-border);border-bottom:1px solid var(--ma-border);transform:rotate(45deg);}
.ma-social-pet-name{grid-column:2;min-width:0;max-width:100%;overflow-wrap:anywhere;text-align:center;font-size:.8rem;font-weight:700;color:var(--ma-text-strong);}
.ma-social-privacy{margin-top:8px;color:var(--ma-muted);font-size:.8rem;}
.ma-social-privacy summary{cursor:pointer;min-height:44px;display:flex;align-items:center;}
.ma-social-character--visitor{min-height:330px;}
.ma-social-character--visitor .ma-social-character__figure{max-width:230px;}
.ma-social-character--visitor .ma-social-character__figure[data-companion]{max-width:320px;}
@media(max-width:680px){.ma-social-profile-content{grid-template-columns:minmax(0,1fr);gap:8px;}.ma-social-character__speech{padding:13px;font-size:.82rem;}}

/* Real leaderboard rows form the podium; the same profile action and rank data
   are retained. Ties and partial boards display the server's actual places. */
.ma-weekly-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:12px;padding:12px 0;}
.ma-weekly-podium[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr));}
.ma-weekly-podium .ma-social-row{display:flex;flex-direction:column;flex-wrap:nowrap;gap:10px;padding:18px 10px;min-width:0;text-align:center;}
.ma-weekly-podium .ma-social-row[data-rank="1"]{border-color:var(--ma-results);}
.ma-weekly-podium .ma-social-person{min-width:0;width:100%;flex-direction:column;gap:12px;}
.ma-weekly-podium .ma-social-avatar{width:62px;height:62px;flex-basis:62px;}
.ma-weekly-podium .ma-social-identity{text-align:center;width:100%;}
.ma-weekly-podium .ma-social-name{justify-content:center;}
.ma-weekly-podium .ma-social-identity strong{font-size:.85rem;}
.ma-weekly-podium .ma-social-identity small{font-size:.68rem;}
.ma-weekly-podium .ma-social-score{text-align:center;max-width:100%;}
.ma-weekly-podium .ma-social-rank{color:var(--ma-banner-accent,var(--ma-results));font-size:1.2rem;background:var(--ma-card);border-radius:10px;padding:4px;}
.ma-social-list[data-layout="friends"]{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;}
.ma-social-list[data-layout="friends"]>:not(.ma-social-row){grid-column:1/-1;}
.ma-social-friend{display:block;min-width:0;padding:0;overflow:hidden;border-radius:18px;}
.ma-social-friend .ma-social-person{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;min-width:0;padding:0;}
/* The scene owns portrait composition; banner artwork never sets content padding. */
.ma-social-friend__art{display:flex;align-items:flex-end;justify-content:center;padding:68px 8px 12px;width:100%;height:204px;border-radius:17px 17px 0 0;background:var(--ma-card);box-sizing:border-box;}
.ma-social-friend__art:has(.ma-social-friend__status)::before{padding-top:68px;}
.ma-social-friend__art[data-portrait="character"]{justify-content:flex-start;padding-bottom:0;}
.ma-social-friend__figure{height:136px;width:52%;max-width:180px;display:block;}.ma-social-friend__figure svg{display:block;height:100%;width:100%;}
.ma-social-friend__art .ma-social-avatar{width:68px;height:68px;flex:0 0 68px;margin-bottom:22px;}
.ma-social-friend__caption{display:grid;gap:10px;min-width:0;padding:16px;}
.ma-social-friend__status{position:absolute;top:10px;left:10px;right:10px;box-sizing:border-box;height:58px;padding:8px 10px;border-radius:13px;background:#fff;color:#243042;box-shadow:0 2px 8px #0002;font-size:.75rem;line-height:1.35;text-align:left;overflow-wrap:anywhere;display:flex;align-items:center;}
.ma-social-friend__phrase{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.ma-social-friend__status::after{content:"";position:absolute;top:100%;left:calc(50% - 6px);border:6px solid transparent;border-top-color:#fff;}
.ma-social-friend__art[data-portrait="character"] .ma-social-friend__status::after{left:24%;}
.ma-social-friend .ma-social-identity{grid-template-columns:minmax(0,1fr);}
.ma-social-friend .ma-social-name{min-width:0;flex-wrap:nowrap;}
.ma-social-friend .ma-social-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ma-social-friend .ma-social-score{text-align:left;max-width:none;padding:0;font-size:.72rem;color:var(--ma-muted);}
.ma-social-friend .ma-social-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;line-height:1.4;}
.ma-social-friend .ma-social-identity strong{font-size:.95rem;}
.ma-social-friend .ma-official-badge{flex:none;font-size:.6rem;padding:2px 5px;}
@media(min-width:1050px){.ma-social-list[data-layout="friends"]{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:480px){.ma-social-friend__art{height:164px;}.ma-social-friend__figure{height:96px;}.ma-social-friend__art .ma-social-avatar{margin-bottom:8px;}.ma-social-friend__caption{padding:12px;}.ma-social-friend .ma-social-identity strong{font-size:.85rem;}.ma-social-friend .ma-social-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.67rem;}}
html[data-ma-large-text] .ma-social-list[data-layout="friends"]{grid-template-columns:1fr;}
/* Narrow leaderboards use full-width rows instead of squeezing three identities. */
@media(max-width:600px){
 .ma-weekly-podium,.ma-weekly-podium[data-count="2"]{grid-template-columns:1fr;gap:10px;}
 .ma-weekly-podium .ma-social-row{flex-direction:row;align-items:center;padding:14px 12px;text-align:left;}
 .ma-weekly-podium .ma-social-person{flex-direction:row;width:auto;gap:12px;}
 .ma-weekly-podium .ma-social-avatar{width:48px;height:48px;flex-basis:48px;}
 .ma-weekly-podium .ma-social-identity{text-align:left;width:auto;}
 .ma-weekly-podium .ma-social-name{justify-content:flex-start;}
 .ma-weekly-podium .ma-social-score{flex:0 0 auto;padding:0;max-width:70px;text-align:right;font-size:.75rem;}
 .ma-weekly-podium .ma-social-rank{flex:0 0 20px;font-size:1rem;}
}
html[data-ma-large-text] .ma-weekly-podium{grid-template-columns:1fr;}
