/* ============================================================================
   BLOOM — Comments component (staged draft)
   Reusable, mountable comment thread for resource + tool pages.
   Self-hosted fonts come from /fonts/fonts.css (loaded by the host page).
   All colors are brand tokens from the host page's :root; this file restates
   safe fallbacks so it also renders correctly on a page that has not declared
   them. Scoped under .bloom-comments so it never leaks into host styles.
   ============================================================================ */
.bloom-comments{
  /* fallbacks mirror commons/components/comments.html :root tokens */
  --bc-ink:var(--ink,#16271C);
  --bc-ink-soft:var(--ink-soft,#3C5446);
  --bc-green:var(--green,#1F7A4D);
  --bc-green-deep:var(--green-deep,#12513A);
  --bc-green-lite:var(--green-lite,#4FAE73);
  --bc-teal-deep:var(--teal-deep,#0A5E52);
  --bc-bar-green:var(--bar-green,#CDE8D6);
  --bc-bar-teal:var(--bar-teal,#CCE7E1);
  --bc-zone-green:var(--zone-green,#E3F4E8);
  --bc-zone-teal:var(--zone-teal,#E0F2EE);
  --bc-soft-edge:#C7E3D1;
  --bc-card-shadow:#DCF0E2;
  --bc-danger:#B42318;

  font-family:"Nunito Sans",system-ui,sans-serif;
  color:var(--bc-ink);
  max-width:760px;
}
.bloom-comments *{box-sizing:border-box;}
.bloom-comments h2,.bloom-comments h3{font-family:"Baloo 2",system-ui,sans-serif;margin:0;line-height:1.1;}

/* ---- header ---- */
.bc-head{display:flex;align-items:center;gap:12px;margin:0 0 6px;flex-wrap:wrap;}
.bc-title{font-weight:800;font-size:26px;color:var(--bc-green-deep);}
.bc-count{font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;font-size:14px;color:var(--bc-teal-deep);background:var(--bc-bar-teal);border-radius:999px;padding:4px 13px;}
.bc-lead{font-size:14.5px;color:var(--bc-ink-soft);font-weight:600;margin:0 0 20px;line-height:1.5;}

/* ---- generic surfaces ---- */
.bc-card{background:#fff;border:1.5px solid var(--bc-soft-edge);border-radius:18px;box-shadow:4px 5px 0 var(--bc-card-shadow);padding:18px 22px;}
.bc-avatar{border-radius:999px;color:#fff;font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex:none;}

/* ---- sign-in prompt (signed-out) ---- */
.bc-signin{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:var(--bc-zone-green);border:1.5px solid var(--bc-bar-green);border-radius:14px;padding:14px 18px;margin-bottom:24px;font-size:14.5px;color:var(--bc-ink-soft);font-weight:600;}
.bc-signin a{color:var(--bc-green-deep);font-weight:800;}

/* ---- composer ---- */
.bc-composer{margin-bottom:24px;padding:18px 20px;}
.bc-composer-row{display:flex;gap:12px;}
.bc-editor-wrap{flex:1;min-width:0;position:relative;}
.bc-toolbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;border:2px solid var(--bc-bar-green);border-bottom:none;border-radius:13px 13px 0 0;padding:7px 8px;background:var(--bc-zone-green);}
.bc-tb-btn{min-width:32px;height:30px;border:none;background:none;border-radius:8px;cursor:pointer;color:var(--bc-green-deep);font-size:15px;display:inline-flex;align-items:center;justify-content:center;padding:0 7px;font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;}
.bc-tb-btn:hover{background:var(--bc-bar-green);}
.bc-tb-btn[aria-pressed="true"]{background:var(--bc-green);color:#fff;}
.bc-tb-btn--i{font-style:italic;}
.bc-tb-sep{width:1.5px;height:20px;background:var(--bc-bar-green);margin:0 3px;}
.bc-tb-emoji{font-size:16px;}

.bc-editor{border:2px solid var(--bc-bar-green);border-radius:0 0 13px 13px;min-height:74px;padding:12px 14px;font-size:15px;line-height:1.5;color:var(--bc-ink);background:#fff;}
.bc-editor:focus{outline:none;border-color:var(--bc-green-lite);}
.bc-editor:focus-visible{outline:3px solid var(--bc-teal-deep);outline-offset:2px;}
.bc-editor[data-ph]:empty:before{content:attr(data-ph);color:#6E8377;pointer-events:none;}
.bc-editor--reply{min-height:44px;border-radius:12px;border:2px solid var(--bc-bar-green);padding:10px 12px;font-size:14px;}
.bc-editor--edit{min-height:54px;border-radius:12px;border:2px solid var(--bc-green-lite);padding:11px 13px;}
.bc-editor ul{margin:6px 0;padding-left:22px;}
.bc-editor li{margin:2px 0;}

/* emoji picker */
.bc-emoji-pop{position:absolute;z-index:20;top:42px;left:12px;background:#fff;border:1.5px solid var(--bc-soft-edge);border-radius:14px;box-shadow:0 10px 28px rgba(18,81,58,.2);padding:10px;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;width:266px;}
.bc-emoji{font-size:20px;line-height:1;background:none;border:none;border-radius:8px;padding:6px;cursor:pointer;}
.bc-emoji:hover{background:var(--bc-zone-green);}

/* composer foot */
.bc-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;flex-wrap:wrap;}
.bc-anon{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--bc-ink-soft);font-weight:700;cursor:pointer;}
.bc-anon input{width:18px;height:18px;accent-color:var(--bc-green);cursor:pointer;}
.bc-posting-as{font-size:12.5px;color:var(--bc-ink-soft);font-weight:700;}
.bc-posting-as b{color:var(--bc-ink);}

/* buttons */
.bc-btn{font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;border:none;cursor:pointer;border-radius:999px;}
.bc-btn--primary{font-size:15px;color:#fff;background:var(--bc-green);padding:11px 24px;}
.bc-btn--primary:hover{background:var(--bc-green-deep);}
.bc-btn--sm{font-size:13.5px;padding:8px 18px;color:#fff;background:var(--bc-green);}
.bc-btn--sm:hover{background:var(--bc-green-deep);}
.bc-btn--ghost{font-size:13.5px;color:var(--bc-ink-soft);background:none;padding:8px 12px;}
.bc-btn--ghost:hover{text-decoration:underline;}
.bc-btn:focus-visible,.bc-tb-btn:focus-visible,.bc-emoji:focus-visible,.bc-action:focus-visible{outline:3px solid var(--bc-teal-deep);outline-offset:2px;}

/* ---- thread ---- */
.bc-thread{display:flex;flex-direction:column;gap:16px;}
.bc-comment-main{display:flex;gap:13px;}
.bc-comment-avatar{width:40px;height:40px;font-size:15px;}
.bc-comment-body{flex:1;min-width:0;}
.bc-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:3px;}
.bc-name{font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;font-size:15.5px;color:var(--bc-ink);}
.bc-you-pill{font-family:"Baloo 2",system-ui,sans-serif;font-weight:700;font-size:11px;color:var(--bc-teal-deep);background:var(--bc-bar-teal);border-radius:999px;padding:3px 9px;}
.bc-inst{font-size:12.5px;color:var(--bc-ink-soft);font-weight:700;}
.bc-when{font-size:12.5px;color:#9DAFA4;font-weight:700;}
.bc-anon-tag{font-size:11.5px;color:var(--bc-ink-soft);font-weight:700;font-style:italic;}
.bc-rich{font-size:15px;line-height:1.55;color:var(--bc-ink);overflow-wrap:anywhere;}
.bc-rich ul{margin:6px 0;padding-left:22px;}

/* pending / status */
.bc-pending{display:inline-flex;align-items:center;gap:7px;margin-top:8px;font-size:13px;color:#6b5210;background:#FBF3DF;border:1.5px solid #EBD9A8;border-radius:999px;padding:4px 12px;font-weight:700;}

/* action row */
.bc-actions{display:flex;align-items:center;gap:6px;margin-top:11px;flex-wrap:wrap;}
.bc-action{display:inline-flex;align-items:center;gap:6px;font-family:"Baloo 2",system-ui,sans-serif;font-weight:800;border:none;border-radius:999px;cursor:pointer;font-size:13px;padding:7px 13px;background:#F3FAF5;color:var(--bc-ink-soft);}
.bc-action:hover{background:var(--bc-bar-green);color:var(--bc-green-deep);}
.bc-action--liked{background:#FBE6E2;color:#C0392B;}
.bc-action--plain{background:none;}
.bc-action--danger{color:var(--bc-danger);background:none;}
.bc-action--danger:hover{background:#FBE6E2;color:var(--bc-danger);}
.bc-action svg{width:15px;height:15px;}
.bc-act-sep{width:1.5px;height:16px;background:var(--bc-bar-green);margin:0 2px;}

/* replies */
.bc-replies{margin-top:14px;padding-left:16px;border-left:2px solid var(--bc-bar-green);display:flex;flex-direction:column;gap:14px;}
.bc-reply{display:flex;gap:11px;}
.bc-reply-avatar{width:32px;height:32px;font-size:12px;}
.bc-edit-foot{display:flex;align-items:center;gap:10px;margin-top:9px;}

/* reply composer */
.bc-reply-composer{margin-top:13px;display:flex;gap:10px;align-items:flex-start;}
.bc-reply-composer .bc-avatar{width:30px;height:30px;font-size:11px;background:var(--bc-green);}

/* empty + soft-fail */
.bc-empty{text-align:center;border:2px dashed var(--bc-green-lite);border-radius:18px;padding:32px 24px;color:var(--bc-ink-soft);font-weight:600;font-size:15px;}
.bc-empty h3{font-size:20px;color:var(--bc-green-deep);margin-bottom:6px;}

/* sr-only + live region */
.bc-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

@media (max-width:620px){
  .bc-comment-main{gap:10px;}
}
@media (prefers-reduced-motion:reduce){
  .bloom-comments *{transition:none !important;animation:none !important;}
}
