/* Social gaps (migration 0031): reactions, Save, reputation badges, comments on posts, mentions, the notifications list,
   the digest and blocked-people settings, unsubscribe, member profiles. Loaded by _SocialStyles on the pages that use
   them, so the public pages that don't carry none of this. Brand tokens from site.css only (navy, marigold, tints);
   no pink. Phones first: 44px targets on touch screens, 16px text in fields (iOS never zooms), nothing wider than
   the screen. The header bell lives in site.css ("social gaps: header bell") because it's on every page. */

/* Reactions, Save, the comment link and the reputation badge are in site.css ("Shared parts", #129): their partials render
   on routes that don't load this sheet. Names in comment heads and people in "Who reacted" get a bigger invisible tap area
   on touch screens, without moving anything. */
@media (pointer:coarse){
  .comment-foot>details>summary,.post-foot>details>summary,.comment-foot .link-btn,.post-foot .link-quiet{display:inline-flex;align-items:center;min-height:44px}
  .comment-head a,.who-list a{position:relative}
  .comment-head a::after,.who-list a::after{content:"";position:absolute;inset:-11px -6px}
}

/* ---------- reputation card (member profiles) ---------- */
.rep-card{margin-top:16px;border:1px solid var(--line);border-radius:18px;padding:12px 16px;display:grid;gap:4px;max-width:560px}
.rep-card-head .rep{margin-left:0;font-size:var(--fs-small)}
.rep-sources{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--fs-small);color:var(--soft)}
.more-actions{margin-top:14px}
.more-actions>summary{list-style:none;display:inline-flex;align-items:center;min-height:44px;cursor:pointer;color:var(--soft);font-weight:500}
.more-actions>summary::-webkit-details-marker{display:none}
.more-actions[open]>summary{color:var(--navy)}
.more-actions-body{display:grid;gap:8px;justify-items:start;border:1px solid var(--line);border-radius:16px;padding:12px 14px;max-width:420px}

/* ---------- @mentions ---------- */
.mention{color:var(--navy);font-weight:600;text-decoration:none;background:var(--ice);border-radius:6px;padding:0 3px}
.mention:hover{text-decoration:underline}
.mention-wrap{position:relative}
.mention-box{position:absolute;z-index:20;left:0;right:0;max-width:360px;margin:4px 0 0;padding:6px;list-style:none;background:var(--white);border:2px solid var(--navy);
  border-radius:14px;box-shadow:var(--shadow);max-height:264px;overflow-y:auto;overscroll-behavior:contain}
.mention-box[hidden]{display:none}
.mention-none{margin:4px 0 0;font-size:var(--fs-small);color:var(--soft)}
.mention-none[hidden]{display:none}
.mention-opt{display:flex;flex-direction:column;justify-content:center;min-height:44px;padding:6px 10px;border-radius:10px;cursor:pointer;line-height:1.3}
.mention-opt b{color:var(--navy);font-weight:600}
.mention-opt span{font-size:var(--fs-small);color:var(--soft)}
.mention-opt[aria-selected="true"],.mention-opt:hover{background:var(--cream)}

/* ---------- comments on posts ---------- */
.comments h2{margin-bottom:4px}
.comment-composer{display:grid;gap:8px}
.comment-label{font-weight:500;color:var(--navy)}
.comment-composer .input,.comment-form .input{font-size:var(--fs-body)}
.comment-list{list-style:none;margin-left:0;margin-right:0;margin-bottom:0;padding:0;display:grid;gap:14px}
.comment-thread{display:grid;gap:10px}
.comment-replies{list-style:none;margin:0;padding:0 0 0 clamp(12px,4vw,28px);border-left:1px solid var(--line);display:grid;gap:10px}
.comment{border:1px solid var(--line);border-radius:18px;padding:12px 14px;display:grid;gap:8px;scroll-margin-top:96px;min-width:0}
.comment:target{border-color:var(--marigold);box-shadow:0 0 0 3px var(--cream)}
.comment-quiet{background:var(--mist)}
.comment-head{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-small)}
.comment-head .badge{margin-left:4px;vertical-align:middle}
.comment-body{font-size:var(--fs-body)}
.comment-gone{font-size:var(--fs-small);color:var(--soft);font-style:italic}
.comment-foot{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.comment-foot .reply-to>summary{font-size:var(--fs-small)}   /* Reply, Edit and Delete match Report beside them */
.comment-form{display:grid;gap:8px;margin-top:8px;max-width:640px}

/* ---------- notifications centre ---------- */
.notes{list-style:none;margin-left:0;margin-right:0;margin-bottom:0;padding:0;display:grid;gap:10px}
/* .notif, not .note: site.css's .note is a note under a form or an action (#129, Y-02: the same name meant two things). */
.notif{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:18px;padding:12px 16px;position:relative;margin:0}
.note-new{border-color:var(--marigold);background:var(--cream-soft)}
.note-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--mist);flex:none}
.note-new .note-ic{background:var(--white)}
.note-ic svg{width:24px;height:24px}
.note-main{flex:1 1 auto;min-width:0;display:grid;gap:2px}
.note-title{color:var(--navy);font-size:var(--fs-body);font-weight:600;line-height:1.4;text-decoration:none;overflow-wrap:anywhere}
a.note-title{display:inline-flex;align-items:center;min-height:24px}
a.note-title:hover{text-decoration:underline}
a.note-title::after{content:"";position:absolute;inset:0;border-radius:18px}
a.note-title:focus-visible::after{outline:3px solid var(--navy);outline-offset:2px;box-shadow:0 0 0 6px var(--marigold)}
a.note-title:focus-visible{outline:none;box-shadow:none}
.note-body{font-size:var(--fs-small);color:var(--soft);overflow-wrap:anywhere}
.note-dot{width:10px;height:10px;border-radius:50%;background:var(--gold);flex:none;margin-top:8px}

/* ---------- saved, who reacted, digest, blocked ---------- */
.saved-tabs .count{margin-left:6px}
.saved-tabs a{gap:4px}
.who-group{margin-top:24px}
.who-group h2{display:flex;align-items:center;gap:8px}
.who-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.who-list li{display:flex;align-items:center;gap:10px;min-height:44px}
.who-list a{color:var(--navy);font-weight:500}
.digest-switch{border:1px solid var(--line);border-radius:18px;padding:14px 16px;align-items:center}
.digest-switch b{color:var(--navy)}
.digest-form .input{font-size:var(--fs-body)}
/* The choices page (E10): what always arrives, as a short list. */
.choices-always{margin:0;padding-left:22px;display:grid;gap:8px}
.block-explainer{margin:0}
.block-explainer dt{color:var(--navy);font-weight:600}   /* the words are the labels; the sentences read as plain text */
.block-explainer dd{font-weight:400}
