/* Challenges + Resources lanes inside the Good Deeds window (js/community-programs.js).
   Default density matches the existing gd-* controls; only coarse pointers get the
   44px targets. Everything wraps at 320px and scrolls inside .gd-panel-wrap. */
.cp-root{display:flex;flex-direction:column;gap:8px;min-width:0;max-width:100%;container-type:inline-size}
.cp-panel{display:flex;flex-direction:column;gap:8px;min-width:0;max-width:100%}
.cp-root .gd-panel{min-width:0}
.cp-card{min-width:0;display:flex;flex-direction:column;gap:8px}
.cp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap;min-width:0}
.cp-title{margin:0;font-size:.95rem;font-weight:700;color:var(--text-strong);overflow-wrap:anywhere;min-width:0}
.cp-chips{display:flex;gap:4px;flex-wrap:wrap;min-width:0}
.cp-chip{display:inline-flex;align-items:center;border:1px solid var(--card-border);border-radius:999px;padding:2px 8px;font-size:.65rem;font-weight:600;color:var(--text-muted);white-space:nowrap}
.cp-chip.cp-good{border-color:#00c896;color:#00c896}
.cp-chip.cp-warn{border-color:var(--accent-gold,#ffb703);color:var(--accent-gold,#ffb703)}
.cp-chip.cp-bad{border-color:#ff5050;color:#ff5050}
.cp-chip.cp-muted{opacity:.7}
.cp-meta{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:.72rem;color:var(--text-muted);min-width:0}
.cp-meta>span{min-width:0;overflow-wrap:anywhere}
.cp-section{font-size:.78rem;display:flex;flex-direction:column;gap:2px}
.cp-section b{color:var(--text-strong);font-size:.7rem;letter-spacing:.04em;text-transform:uppercase}
.cp-wrap{overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;min-width:0}
.cp-muted{color:var(--text-muted);font-size:.72rem}
.cp-row{font-size:.75rem;min-width:0;overflow-wrap:anywhere}
.cp-row code{font-size:.7rem;background:rgba(255,255,255,.06);padding:1px 4px;border-radius:4px;overflow-wrap:anywhere}
.cp-link{color:var(--accent-cyan);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-all}
.cp-card p{margin:0;font-size:.8rem}
.cp-entry{border-top:1px dashed var(--card-border);padding-top:8px;display:flex;flex-direction:column;gap:4px}
.cp-entry-head{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cp-locked{font-size:.75rem;color:#00c896}
.cp-rejected{font-size:.75rem;color:#ff5050;overflow-wrap:anywhere}
.cp-guest{font-size:.8rem;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.cp-empty{padding:12px;font-size:.8rem;color:var(--text-muted);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.cp-msg{overflow-wrap:anywhere}
.cp-pending{padding:4px 8px}

/* forms */
.cp-root .gd-form{background:var(--surface-raise);color:var(--text-main)}
.cp-form{display:flex;flex-direction:column;gap:8px;min-width:0}
.cp-editor{padding:12px}
.cp-editor-head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center}
.cp-field{display:flex;flex-direction:column;gap:3px;min-width:0}
.cp-field label{font-size:.7rem;font-weight:600;color:var(--text-muted)}
.cp-req{color:var(--accent-gold,#ffb703)}
.cp-field input:not([type="checkbox"]):not([type="radio"]),.cp-field select,.cp-field textarea{width:100%;min-width:0;box-sizing:border-box;background:var(--surface-2);border:1px solid var(--card-border);color:var(--text-strong);padding:7px 10px;border-radius:6px;font:inherit;font-size:.8rem}
.cp-field textarea{resize:vertical;min-height:2.4em}
.cp-field :disabled{opacity:.55;cursor:not-allowed}
.cp-help{font-size:.68rem;color:var(--text-muted);overflow-wrap:anywhere}
.cp-fieldset{border:1px solid var(--card-border);border-radius:8px;padding:6px 10px 8px;margin:0;display:flex;gap:6px 16px;flex-wrap:wrap;min-width:0}
.cp-fieldset legend{font-size:.7rem;font-weight:600;color:var(--text-muted);padding:0 4px}
.cp-radio,.cp-check{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-main);cursor:pointer;min-width:0}
.cp-radio input,.cp-check input{margin:0;width:14px;height:14px;flex:0 0 auto}
.cp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;min-width:0}
.cp-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cp-btn{background:var(--accent-cyan);color:#000;border:1px solid transparent;padding:7px 12px;border-radius:6px;font:700 .74rem 'Inter',sans-serif;cursor:pointer;max-width:100%;white-space:normal;transition:border-color .15s ease,background .15s ease,color .15s ease,filter .15s ease}
.cp-btn:hover:not(:disabled){filter:brightness(1.1)}
.cp-btn.cp-secondary{background:var(--surface-2);color:var(--text-main);border-color:var(--card-border)}
.cp-btn.cp-secondary:hover:not(:disabled){border-color:var(--accent-cyan);filter:none}
.cp-btn.cp-secondary.active{background:var(--accent-cyan);color:#000;border-color:var(--accent-cyan)}
.cp-btn.cp-danger{background:transparent;color:#ff5050;border-color:#ff5050}
.cp-btn.cp-danger:hover:not(:disabled){background:rgba(255,80,80,.12);filter:none}
.cp-btn:disabled{opacity:.5;cursor:progress;filter:none}
.cp-btn:focus-visible,.cp-sub button:focus-visible,.cp-field input:focus-visible,.cp-field select:focus-visible,.cp-field textarea:focus-visible,.cp-radio input:focus-visible,.cp-check input:focus-visible,.cp-link:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:1px}
.cp-templates{display:flex;gap:6px;flex-wrap:wrap}
.cp-newbar{gap:8px}
.cp-filters{display:flex;gap:6px;flex-wrap:wrap}
.cp-admin-row .cp-meta{gap:4px 12px}

/* resources */
.cp-resources{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;min-width:0}
.cp-resource{border:1px solid var(--card-border);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;font-size:.78rem;min-width:0}
.cp-resource-head{display:flex;gap:6px;flex-wrap:wrap;align-items:center;min-width:0}

/* challenges v2: reward kinds, member deadlines, guest note, welcome packs */
.cp-chip.cp-reward{border-color:var(--accent-cyan);color:var(--accent-cyan)}
.cp-kinds{flex-direction:column;align-items:flex-start}
.cp-kinds .cp-check{white-space:normal;overflow-wrap:anywhere}
.cp-closed{color:var(--accent-gold,#ffb703);overflow-wrap:anywhere}
.cp-guest-note{font-size:.78rem;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;border-style:dashed}
.cp-pack{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;font-size:.75rem}
.cp-packs .cp-title{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cp-pack-row{border-top:1px dashed var(--card-border);padding-top:8px}

/* Creator, 2026-09-18: the buttons "were fine" and the enlarged ones "look huge".
   Touch enlargements apply only when a member picks the Large or XL scale tier. */
@media (pointer:coarse){
  :root:is([data-scale-tier="large"],[data-scale-tier="xl"]) :is(.cp-root .cp-btn,.cp-root .cp-sub button,.cp-root .gd-btn,.cp-field select,.cp-field input:not([type="checkbox"]):not([type="radio"])){min-height:44px}
  :root:is([data-scale-tier="large"],[data-scale-tier="xl"]) :is(.cp-root .cp-btn,.cp-root .gd-btn){padding:10px 14px}
  :root:is([data-scale-tier="large"],[data-scale-tier="xl"]) :is(.cp-radio,.cp-check){min-height:44px;padding:4px 0}
  :root:is([data-scale-tier="large"],[data-scale-tier="xl"]) :is(.cp-radio input,.cp-check input){width:22px;height:22px}
  :root:is([data-scale-tier="large"],[data-scale-tier="xl"]) .cp-link{display:inline-block;min-height:44px;line-height:44px}
}
/* narrow windows / portrait phones: single-column grids, full-width actions */
@container (max-width: 420px){
  .cp-grid{grid-template-columns:1fr}
  .cp-actions .cp-btn,.cp-actions .gd-btn{flex:1 1 100%}
}
@media (max-width:480px){
  .cp-grid{grid-template-columns:1fr}
  .cp-actions .cp-btn,.cp-actions .gd-btn{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){.cp-btn{transition:none}}
