/* ============================================================================
   contribute.css -- the ONE stylesheet for the contribution lane:
   Contribute.aspx (the open-question evidence pilot) and RequestEntry.aspx
   (missing-item requests).

   THIS FILE COLLAPSES TWO v1 INLINE <style> BLOCKS INTO ONE COPY, per the
   no-inline-CSS rule, plus the handful of style="..." attributes those two
   pages carried in their code-behinds. Every rule below is the first edition's
   rule unchanged; what moved is where it lives, never what it draws.

   Linked from each page's head literal with PageAssets.StyleLink, between
   site.css and chrome.css, so everything here may assume site.css's .authwrap,
   .card, .btn, .msg, .muted, .eyebrow, .lede, .fld and .sr-only rules are
   present and only overrides what the v1 blocks overrode locally.

   THREE THINGS FROM THE v1 BLOCKS ARE DELIBERATELY NOT HERE.

     * .sr-only. site.css line 127 already carries the identical rule. A second
       copy is the divergence the centralization rule exists to prevent.
     * .msg, .msg.ok and .msg.bad, from RequestEntry's block. site.css owns
       .msg and Markup.MsgBox is the ONE notice renderer on this site; an
       unscoped .msg rule in a theme file would restyle every form on the
       atlas. The "bad" spelling went with them: MsgBox's closed set is ok and
       err, and it throws on anything else.
     * .authwrap. site.css declares it at 520px, which is what these two pages
       used in the first edition, so there is nothing to override.

   EVERY SELECTOR IS SCOPED under the page's own wrapper class, .cbpage or
   .reqpage, which is the only markup addition either page takes: site.css
   defines .btn, .card and .msg globally and an unscoped theme rule reaches the
   whole atlas.

   Everything is rem/em-scaled, as v1 had it, and no fixed-height box sits
   around anything holding text: these are long forms and they have to survive
   200 percent text and a 390 pixel phone without a single field escaping its
   label.
   ========================================================================== */

/* ---- Contribute: the cards ------------------------------------------------ */
.cbpage .cbcard{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--edge);border-radius:16px;padding:20px 22px;box-shadow:var(--shadow);margin:0 0 18px}

/* The question itself, set apart by the gold rule. */
.cbpage .cbq{border-left:2px solid var(--gold);padding:2px 0 2px 14px;margin:0 0 16px}
.cbpage .cbq h3{font-family:var(--serif);font-size:1.08rem;margin:0 0 6px;line-height:1.35;overflow-wrap:anywhere}
.cbpage .cbq p{color:var(--muted);font-size:.9rem;line-height:1.55;margin:0 0 6px}
.cbpage .cbq .bar{color:var(--ink)}

/* ---- Contribute: the form -------------------------------------------------
   The label is a real <label for>, the help sits between the label and the
   control so a screen reader reaches it in reading order, and a required field
   says so IN ITS LABEL rather than only by an asterisk or by colour. */
.cbpage .cbfield{margin:0 0 16px;min-width:0}
.cbpage .cbfield label{display:block;font-weight:600;font-size:.92rem;margin:0 0 4px}
.cbpage .cbfield .help{display:block;color:var(--faint);font-size:.84rem;line-height:1.5;margin:0 0 6px}
.cbpage .cbfield input[type=text],.cbpage .cbfield input[type=url],.cbpage .cbfield textarea{
  width:100%;box-sizing:border-box;background:var(--ground);border:1px solid var(--edge2);color:var(--ink);
  border-radius:9px;padding:10px 12px;font-size:.94rem;font-family:var(--sans);line-height:1.5}
.cbpage .cbfield textarea{min-height:7em;resize:vertical}
.cbpage .cbfield input:focus,.cbpage .cbfield textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.cbpage .cbcheck{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px}
.cbpage .cbcheck input{margin-top:.25em;flex:none}
.cbpage .cbcheck label{font-size:.92rem;line-height:1.55;color:var(--muted);font-weight:400}
.cbpage .cbrequired{color:var(--gold)}

/* ---- Contribute: a contributor's own submissions (?mine=1) -----------------
   The state comes first because it is the only thing somebody opening this page
   wants; the editor's note is set apart because it is somebody else's words
   about their work. All wrapping, no fixed heights, and the note breaks long
   words rather than escaping the card. */
.cbpage .cbstate{color:var(--gold);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600;margin:0 0 8px}
.cbpage .cbans{color:var(--muted);font-size:.92rem;line-height:1.55;margin:0 0 12px;overflow-wrap:break-word}
.cbpage .cbnote{border-left:2px solid var(--edge2);padding:2px 0 2px 12px;margin:0 0 14px;color:var(--muted);
  font-size:.9rem;line-height:1.55;overflow-wrap:break-word}
.cbpage .cbacts{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0}
.cbpage .cbacts .hint{color:var(--faint);font-size:.82rem;line-height:1.5;margin:0}

/* ---- Contribute: the index list ------------------------------------------- */
.cbpage .cblist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.cbpage .cblist li{padding:14px 0;border-bottom:1px solid var(--edge);min-width:0}
.cbpage .cblist .qt{font-weight:600;overflow-wrap:anywhere}
.cbpage .cblist .qt a{color:var(--ink);text-decoration:none}
.cbpage .cblist .qt a:hover{color:var(--gold)}
.cbpage .cblist .qd{color:var(--faint);font-size:.84rem;margin-top:3px}

/* ---- Contribute: what the v1 code-behind wrote as style="..." --------------
   Same numbers, named instead of inlined. .cbh / .cbh.tight are the two card
   headings, .cbsub is the serif divider heading inside the form, .cbtop is the
   line carrying the Your Contributions link, .cbsubmit is the button row, and
   .cbpilot is the paragraph naming the pilot field. */
.cbpage .cbcard .cbh{margin:0 0 8px}
.cbpage .cbcard .cbh.tight{margin:0 0 4px}
.cbpage .cbcard .cbsub{margin:22px 0 10px;font-family:var(--serif);font-size:1.05rem}
.cbpage .cbtop{margin:0 0 14px}
.cbpage .cbsubmit{margin-top:16px}
.cbpage .cbcard .cbwide{line-height:1.6}
.cbpage .cbcard .cbpilot{line-height:1.6;margin-top:10px}
.cbpage a.btn{text-decoration:none}

/* ---- Request an Entry ------------------------------------------------------
   Everything in rem/em and no fixed-height box around text: the form has to
   stay usable at 200% text, which is where a request form is most likely to be
   filled in by somebody who could not find what they were looking for. */
.reqpage .reqfrm{display:flex;flex-direction:column;gap:14px;margin-top:18px;max-width:44rem}
.reqpage .reqfrm .fld{display:flex;flex-direction:column;gap:5px;min-width:0}
.reqpage .reqfrm label{font-size:.8rem;color:var(--faint);text-transform:uppercase;letter-spacing:.1em}
.reqpage .reqfrm input,.reqpage .reqfrm textarea,.reqpage .reqfrm select{width:100%;max-width:100%;background:var(--ground);
  border:1px solid var(--edge2);color:var(--ink);border-radius:9px;padding:9px 11px;
  font-family:var(--sans);font-size:.95rem}
.reqpage .reqfrm textarea{min-height:6em;line-height:1.5}
.reqpage .reqfrm input:focus,.reqpage .reqfrm textarea:focus,.reqpage .reqfrm select:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.reqpage .fldhint{color:var(--faint);font-size:.78rem;line-height:1.45}
.reqpage .reqbtns{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.reqpage .reqbtns .fldhint{margin:0}
.reqpage .tally{color:var(--gold-soft);font-size:.88rem;margin:10px 0 0}
.reqpage .reqafter{margin-top:16px}

/* THE AccountComments RULE IS NOT HERE ANY MORE (2026-08-02).
   This file carried one .adminwrap .cmtsnip rule so a member's comment snippet
   would not render as unstyled body text, and it said in its own comment that it
   belonged in site.css and was here only because site.css was held by another
   session on the night this ported. site.css now declares .cmtsnip beside the
   .pklist / .pkitem / .pkmeta family it sits inside, with the same four values,
   so this copy is gone and AccountComments.aspx.vb no longer links this sheet at
   all. It was the only selector in this file that could match that page:
   everything else here is scoped to .reqpage, .contribpage or .cbpage. */
