/* arc-grassroots-projects.css · Arena step 3 (GRASSROOTS-01, 14 Oct 2026) — the Grassroots project cards (arc-grassroots-projects.js).
   Scoped to .gp-*; no layout outside the panel. Nothing overflows at 390px: every grid track is minmax(0, …) and long words wrap. */
.gp-root { min-width: 0; overflow-wrap: anywhere; }
.gp-head .gp-h { font-size: 1.05rem; margin: 0 0 4px; color: var(--navy, #0B1F3B); }
.gp-muted { font-size: .84rem; color: rgba(11,31,59,.66); margin: 4px 0 10px; }
.gp-hint { margin: -2px 0 4px; font-size: .78rem; }
.gp-tools { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin: 6px 0 12px; }
.gp-link { font-size: .86rem; font-weight: 600; color: var(--navy, #0B1F3B); }
.gp-btn { min-height: 44px; padding: 8px 14px; border-radius: 8px; border: 1px solid rgba(11,31,59,.22); background: #fff; color: var(--navy, #0B1F3B);
  font: inherit; font-size: .86rem; font-weight: 600; cursor: pointer; max-width: 100%; }
.gp-btn:focus-visible, .gp-input:focus-visible, .gp-check input:focus-visible { outline: 2px solid var(--gold, #C9A227); outline-offset: 2px; }
.gp-btn--main { background: var(--navy, #0B1F3B); color: #fff; border-color: var(--navy, #0B1F3B); }
.gp-btn--ghost { background: transparent; }
.gp-btn[disabled] { opacity: .6; cursor: default; }
.gp-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.gp-card { background: #fff; border: 1px solid rgba(11,31,59,.12); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.gp-title { font-size: 1rem; margin: 0; color: var(--navy, #0B1F3B); }
.gp-badge { align-self: flex-start; display: inline-block; font-size: .74rem; font-weight: 700; letter-spacing: .02em; border-radius: 6px; padding: 3px 8px; margin: 0;
  background: #eef1f5; color: #414d5e; max-width: 100%; }
.gp-badge--prop { background: #fff3e8; color: #8a4b00; }
.gp-badge--ok { background: #e6f4f1; color: #0f5e52; }
.gp-desc { margin: 0; font-size: .88rem; line-height: 1.45; color: rgba(11,31,59,.85);
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.gp-safety { margin: 0; font-size: .78rem; line-height: 1.4; color: #5b3a00; background: #fff8e6; border-left: 3px solid #d79b00; padding: 6px 9px; border-radius: 4px; }
.gp-foot { margin-top: auto; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; }
.gp-tag { display: inline-block; font-size: .72rem; font-weight: 700; border-radius: 999px; padding: 3px 9px; background: #eaf0fb; color: #23407a; }
.gp-tag--member { background: #e6f4f1; color: #0f5e52; }
.gp-tag--mine { background: #f3ecfb; color: #5a2d82; }
.gp-tag--st { background: #f1f1f1; color: #4a4a4a; font-weight: 600; }
.gp-detail { background: #fff; border: 1px solid rgba(11,31,59,.14); border-radius: 12px; padding: 14px 16px; margin: 0 0 14px; min-width: 0; }
.gp-dtitle { margin: 10px 0 6px; font-size: 1.1rem; color: var(--navy, #0B1F3B); }
.gp-sub { font-size: .9rem; margin: 14px 0 6px; color: var(--navy, #0B1F3B); }
.gp-text { margin: 0; font-size: .9rem; line-height: 1.5; }
.gp-list { margin: 0; padding-left: 20px; font-size: .9rem; line-height: 1.5; }
.gp-detail > .gp-safety { margin-top: 14px; }
.gp-interest { border-top: 1px solid rgba(11,31,59,.1); margin-top: 14px; padding-top: 6px; }
.gp-label { display: block; font-size: .84rem; font-weight: 600; margin: 10px 0 4px; color: var(--navy, #0B1F3B); }
.gp-input { display: block; width: 100%; box-sizing: border-box; min-height: 44px; padding: 9px 11px; border: 1px solid rgba(11,31,59,.22); border-radius: 8px;
  font: inherit; font-size: .9rem; background: #fff; color: var(--navy, #0B1F3B); }
.gp-interest .gp-safety { margin: 0 0 6px; }
.gp-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.gp-msg { font-size: .86rem; margin: 8px 0 0; }
.gp-msg--ok, .gp-ok { color: #0f5e52; font-weight: 600; }
.gp-msg--err { color: #a12a2a; }
.gp-mine { background: #f7f9fc; border: 1px solid rgba(11,31,59,.1); border-radius: 12px; padding: 10px 14px; margin: 0 0 14px; }
.gp-mine-list { list-style: none; margin: 0; padding: 0; }
.gp-mine-list li { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; padding: 6px 0; border-top: 1px solid rgba(11,31,59,.07); }
.gp-mine-list li:first-child { border-top: 0; }
.gp-mine-t { font-weight: 600; font-size: .9rem; min-width: 0; }
.gp-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.gp-mine-note { flex-basis: 100%; margin: 0; }
.gp-propose { background: #fff; border: 1px solid rgba(11,31,59,.14); border-radius: 12px; padding: 14px 16px; margin: 0 0 14px; }
.gp-check { display: flex; gap: 10px; align-items: flex-start; margin-top: 12px; font-size: .84rem; line-height: 1.4; }
.gp-check input { width: 20px; height: 20px; flex: 0 0 auto; margin-top: 1px; }
.gp-dtitle:focus { outline: none; } .gp-dtitle:focus-visible { outline: 2px solid var(--gold, #C9A227); outline-offset: 2px; }
