/* ============================================================
   WELCOME MAT + BLOCK ID (lib/welcome-mat.js) -- shared by every theme; colors come from each theme's --bm-* tokens.
   ============================================================ */
.bm-wm { font-size: 15px; line-height: 1.5; color: inherit; }
.bm-wm-empty { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; margin: 8px auto; padding: 10px 16px; border-radius: 14px;
  border: 1.5px dashed var(--bm-accent, #D4A63C); background: transparent; color: var(--bm-accent-text, #D4A63C); font: 700 13px Inter, system-ui, sans-serif; cursor: pointer; }
.bm-wm-empty small { font-weight: 500; opacity: .75; font-size: 11px; }
.bm-wm-empty:hover { background: color-mix(in srgb, var(--bm-accent, #D4A63C) 10%, transparent); }
.bm-wm-more { display: inline-block; margin-top: 8px; padding: 0; border: 0; background: none; color: var(--bm-accent-text, #D4A63C); font: 700 12.5px Inter, system-ui, sans-serif; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.bm-profile-wm { max-width: 560px; margin: 10px auto 0; padding: 0 16px; text-align: center; opacity: .92; }
.bm-wm-slot { display: flex; justify-content: center; padding: 6px 16px 0; }

.bm-bid { max-width: 760px; margin: 14px auto 4px; padding: 0 16px; }
.bm-bid-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.bm-bid-chip, .bm-bid-open { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; font: 600 12.5px Inter, system-ui, sans-serif;
  background: var(--bm-card, rgba(127,127,127,.08)); color: var(--bm-text, inherit); border: 1px solid var(--bm-divider, rgba(127,127,127,.25)); }
.bm-bid-open { cursor: pointer; color: var(--bm-accent-text, #D4A63C); border-color: color-mix(in srgb, var(--bm-accent, #D4A63C) 55%, transparent); }
.bm-bid-open:focus-visible, .bm-wm-empty:focus-visible, .bm-wm-more:focus-visible { outline: 2px solid var(--bm-accent, #D4A63C); outline-offset: 2px; }
.bm-bid-card { margin: 12px auto 0; max-width: 520px; padding: 14px 16px; border-radius: 16px; background: var(--bm-card, #fff); color: var(--bm-text, #111);
  border: 1px solid var(--bm-divider, rgba(127,127,127,.25)); box-shadow: 0 10px 30px rgba(0,0,0,.12); animation: bm-bid-in .25s ease both; }
.bm-bid-title { font: 800 11px Inter, system-ui, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--bm-accent-text, #D4A63C); margin-bottom: 8px; }
.bm-bid-row { display: flex; justify-content: space-between; gap: 14px; padding: 7px 0; border-top: 1px solid var(--bm-divider, rgba(127,127,127,.18)); font-size: 13.5px; }
.bm-bid-row:first-of-type { border-top: 0; }
.bm-bid-row span { opacity: .7; white-space: nowrap; }
.bm-bid-row b { font-weight: 600; text-align: right; }
@keyframes bm-bid-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* themed touches */
html[data-theme="homeroom"] .bm-bid-chip, html[data-theme="homeroom"] .bm-bid-open { border-radius: 6px; border-style: dashed; font-family: var(--bm-font-display, inherit); letter-spacing: .5px; }
html[data-theme="homeroom"] .bm-bid-card { background: var(--hr-paper, #fff); color: var(--hr-ink, #141414); border: 2px solid var(--hr-ink, #141414); border-radius: 10px; box-shadow: 4px 4px 0 var(--hr-gold, #D4A63C); }
html[data-theme="homeroom"] .bm-bid-chip { background: var(--hr-paper, #fff); color: var(--hr-ink, #141414); border-color: var(--hr-line, rgba(0,0,0,.2)); }
.bm-bid-row span { opacity: .78; } .bm-bid-row b { color: inherit; }
html[data-theme="homeroom"] .bm-bid-title::before { content: "HALL PASS · "; }
html[data-theme="den"] .bm-bid-chip, html[data-theme="den"] .bm-bid-open { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.12); }
html[data-theme="den"] .bm-bid-open { border-color: var(--den-purple, #7B3FE4); box-shadow: 0 0 14px rgba(123,63,228,.35); color: #fff; }
html[data-theme="den"] .bm-bid-card { background: #121018; color: #fff; border-color: var(--den-purple, #7B3FE4); box-shadow: 0 0 0 1px var(--den-purple, #7B3FE4), 0 0 30px rgba(123,63,228,.35); }
html[data-theme="den"] .bm-bid-title::before { content: "VIP PASS · "; }

/* editor + full-bio sheet */
.bm-wm-sheet { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 16px; background: rgba(0,0,0,.55); backdrop-filter: blur(4px); }
.bm-wm-card { width: min(560px, 100%); max-height: 88vh; overflow-y: auto; background: var(--bm-card, #fff); color: var(--bm-text, #111); border-radius: 20px; padding: 20px; box-shadow: 0 30px 80px rgba(0,0,0,.4); }
.bm-wm-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; font-size: 17px; }
.bm-wm-x { width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(127,127,127,.15); color: inherit; font-size: 18px; cursor: pointer; }
.bm-wm-help { font-size: 13px; opacity: .75; margin: 0 0 10px; }
.bm-wm-input { width: 100%; box-sizing: border-box; padding: 12px; border-radius: 12px; border: 1px solid var(--bm-divider, #D9D9E0); background: transparent; color: inherit; font: 500 15px/1.45 Inter, system-ui, sans-serif; resize: vertical; }
.bm-wm-foot { display: flex; align-items: center; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.bm-wm-count { font-size: 12px; opacity: .65; }
.bm-wm-err { flex: 1; font-size: 12px; color: #D93A3A; }
.bm-wm-btn { padding: 9px 16px; border-radius: 999px; font: 700 13px Inter, system-ui, sans-serif; cursor: pointer; border: 1px solid var(--bm-divider, #D9D9E0); background: transparent; color: inherit; }
.bm-wm-btn.solid { background: var(--bm-accent, #D4A63C); border-color: transparent; color: #141414; }
.bm-wm-bio { font-size: 15px; line-height: 1.6; }

/* Block ID icons (monoline, tinted gold by default; each theme can recolor) */
.bm-bid-ic { flex: none; color: var(--bm-accent-text, #D4A63C); vertical-align: -2px; }
.bm-bid-row span { display: inline-flex; align-items: center; gap: 8px; }
html[data-theme="homeroom"] .bm-bid-ic { color: var(--hr-gold-text, #B8862B); }
html[data-theme="den"] .bm-bid-ic { color: #C9A2FF; }
