/* Community Safety Initiative — "split rail" design system.
   Cool institutional palette, Spline Sans, card surfaces. No JS required for any of it. */
:root{
  --bg:#eef1f4; --card:#fff; --panel:#f7f9fb; --rail:#f5f7f9;
  --ink:#1a2230; --ink-2:#28313d; --body:#37424f; --muted:#5d6b7d; --dim:#8794a3; --faint:#9aa6b3;
  --line:#e4e9ee; --line-2:#e9edf1; --line-3:#dfe4ea; --field:#dbe1e8; --chip-line:#d3dbe3;
  --brand:#2f7f78; --brand-ink:#256b64; --brand-tint:#eef5f4; --brand-line:#dcebe9;
  --draft:#b06a00; --draft-bg:#fdf1dc; --final:#2f6f3a; --final-bg:#e5f2e7;
  --flag:#8a2f5e; --flag-bg:#fbe8f1; --flag-line:#f0d3e2;
  --danger:#b3261e; --danger-bg:#fbe9e7; --danger-line:#f0c3bd;
  --r-sm:6px; --r-md:9px; --r-lg:11px; --r-xl:15px;
  --shadow:0 1px 3px rgba(20,30,45,.05),0 16px 40px -24px rgba(20,30,45,.2);
}
*{box-sizing:border-box}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.6 'Spline Sans',system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  display:flex;flex-direction:column;min-height:100vh;
}
a{color:var(--brand-ink);text-decoration:none}
a:hover{color:var(--brand)}
h1{font-size:30px;line-height:1.15;font-weight:700;letter-spacing:-.01em;margin:0 0 8px}
h2{font-size:18px;font-weight:600;margin:26px 0 8px}
p{margin:0 0 12px}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;width:100%}
.muted{color:var(--muted)}
.small{font-size:13px}
code{font-size:.9em;background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:1px 5px}
.skip{position:absolute;left:-999px}
.skip:focus{left:8px;top:8px;background:#fff;padding:8px 12px;border-radius:var(--r-md);z-index:40}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}

/* ---------- header ---------- */
header.site{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 24px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;color:var(--ink);letter-spacing:-.01em}
.brand:hover{color:var(--ink)}
.brandmark{width:26px;height:26px;flex:none;border-radius:8px;background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}
nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
nav a{font-size:14.5px;color:#3a4656}
nav a:hover{color:var(--brand-ink)}
.who{color:var(--dim);font-size:14px}
.danger-link{color:var(--danger);font-weight:600}
.danger-link:hover{color:var(--danger)}

/* ---------- review banner ---------- */
.review-banner{background:var(--brand-tint);border-bottom:1px solid var(--brand-line)}
.review-banner .wrap{padding:9px 24px;font-size:12.5px;line-height:1.5;color:#2f6f6a}
.review-banner strong{color:#245c57}

main{flex:1;padding:34px 0 40px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--brand);color:#fff;border:1px solid var(--brand);
  border-radius:var(--r-lg);padding:12px 20px;font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.btn:hover{background:#2a736d;border-color:#2a736d;color:#fff}
.btn.ghost{background:var(--card);color:#2f6f6a;border-color:#cfe0de;font-weight:500}
.btn.ghost:hover{background:var(--brand-tint);color:#2f6f6a}
.btn.small{padding:7px 15px;font-size:14px;font-weight:500;border-radius:var(--r-md)}
.btn.danger-btn{background:var(--danger);border-color:var(--danger)}
.btn.danger-btn:hover{background:#9c211a;border-color:#9c211a}
button.link{background:none;border:0;padding:0;color:var(--brand-ink);cursor:pointer;text-decoration:underline;font:inherit;font-size:14px}
button.link.tiny{font-size:12px}
form.inline{display:inline}
.backlink{margin:0 0 14px;font-size:14px}

/* ---------- home ---------- */
.hero{padding:14px 0 6px}
.eyebrow{display:block;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--brand)}
.hero h1{margin:12px 0 14px;font-size:44px;line-height:1.08;max-width:15ch;text-wrap:pretty}
.lead{margin:0;max-width:60ch;font-size:18px;line-height:1.6;color:#42505f;text-wrap:pretty}
.lead strong{color:var(--ink)}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin:40px 0 0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);padding:22px 22px 20px;
  display:flex;flex-direction:column}
.card h2{margin:0 0 8px;font-size:18px;font-weight:600}
.card p{margin:0 0 16px;font-size:14.5px;line-height:1.55;color:var(--muted);flex:1}
.card p strong{color:#3a4656}
.card .small{margin:0;font-size:13px;color:var(--dim);flex:none}
.card a{font-size:14.5px;font-weight:600}
.cardnum{width:34px;height:34px;border-radius:10px;background:var(--brand-tint);color:var(--brand);
  display:flex;align-items:center;justify-content:center;font-weight:700;margin-bottom:13px}
.cardnum.alert{background:var(--danger-bg);color:var(--danger)}

/* ---------- tags ---------- */
.badges{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.tag{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  padding:3px 9px;border-radius:var(--r-sm);white-space:nowrap}
.tag.kind{background:#eef1f4;color:var(--muted)}
.tag.draft{background:var(--draft-bg);color:var(--draft);font-weight:700}
.tag.final{background:var(--final-bg);color:var(--final);font-weight:700}
.tag.flag{background:var(--flag-bg);color:var(--flag);text-transform:none;letter-spacing:.02em}
.tag.lg{font-size:11px;padding:3px 10px}

/* ---------- list of drafts ---------- */
.list-head{margin-bottom:22px}
.list-head h1{margin:0 0 6px}
.list-head p{margin:0;font-size:14.5px;color:var(--muted)}
.group{margin:0 0 22px}
.group-title{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--brand);letter-spacing:.01em}
.rowlist{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.row{display:flex;align-items:center;gap:14px;padding:13px 18px;border-top:1px solid #eef1f4;color:var(--ink-2)}
.row:first-child{border-top:0}
.row:hover{background:#f7f9fb;color:var(--ink-2)}
.row-num{flex:none;width:26px;height:26px;border-radius:8px;background:var(--brand-tint);color:var(--brand);
  font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
.row-id,.gid{flex:none;width:64px;font-size:12px;font-weight:600;color:var(--dim);
  font-variant-numeric:tabular-nums;letter-spacing:.02em}
.row-title,.gtitle{flex:1;min-width:0;font-size:15px;line-height:1.35}
.row-tags{flex:none;display:flex;gap:6px;align-items:center}
.chev{color:#c4cdd6;font-size:17px;line-height:1}
.empty{padding:16px 18px;color:var(--dim);font-style:italic}

/* ---------- guideline detail: split rail ---------- */
.detail-shell{display:flex;align-items:stretch;background:var(--card);border:1px solid var(--line-3);
  border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}
.rail{width:288px;flex:none;border-right:1px solid var(--line);background:var(--rail);
  display:flex;flex-direction:column;max-height:78vh}
.rail-head{padding:15px 16px 12px;border-bottom:1px solid var(--line-2);flex:none}
.rail-title{font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim);margin-bottom:9px}
.progress{display:flex;align-items:center;gap:9px}
.progress-track{flex:1;height:5px;border-radius:3px;background:#e2e8ee;overflow:hidden}
.progress-bar{height:100%;background:var(--brand);border-radius:3px}
.progress-pos{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.rail-scroll{overflow:auto;padding:8px}
.rail-group{margin:4px 0 8px}
.rail-section{padding:6px 8px 3px;font-size:10.5px;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;color:var(--faint)}
.rail-item{display:flex;align-items:flex-start;gap:9px;padding:7px 9px;margin-bottom:1px;
  border:1px solid transparent;border-radius:8px;color:#3a4656}
.rail-item:hover{background:#eef1f4;color:#3a4656}
.rail-num{flex:none;min-width:22px;height:20px;padding:0 5px;border-radius:var(--r-sm);border:1px solid var(--chip-line);
  background:#fff;color:var(--muted);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center}
.rail-text{font-size:12.5px;line-height:1.3;padding-top:1px}
.rail-item.is-active{background:rgba(47,127,120,.1);border-color:var(--brand)}
.rail-item.is-active .rail-num{background:var(--brand);color:#fff;border-color:var(--brand)}

.pane{flex:1;min-width:0;display:flex;flex-direction:column}
.pane-body{padding:26px 32px;flex:1}
.pane-body .badges{margin-bottom:14px}
.syn-id{font-size:13px;font-weight:600;color:var(--brand);letter-spacing:.02em;margin:0 0 4px}
.pane-body h1{margin:0 0 16px;font-size:26px;line-height:1.22;font-weight:600;text-wrap:pretty}
.draft-text{margin:0;font-size:17px;line-height:1.62;color:var(--body);text-wrap:pretty}
.section-block{margin:26px 0 0;padding-top:22px;border-top:1px solid var(--line-2)}
.section-block h2{margin:0 0 2px;font-size:16px;font-weight:600}
.section-block .hint{margin:0 0 13px;font-size:13px;color:var(--dim)}

/* pager */
.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 22px;
  border-top:1px solid var(--line-2);background:var(--panel)}
.pager-pos{font-size:12.5px;color:var(--dim);white-space:nowrap}
.pager-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:var(--r-md);
  border:1px solid var(--chip-line);background:#fff;font-size:13.5px;font-weight:500;color:#334154}
.pager-btn:hover{background:#f0f3f6;color:#334154}
.pager-btn .arr{font-size:16px;line-height:1}
.pager-btn.next{background:var(--brand);border-color:var(--brand);color:#fff}
.pager-btn.next:hover{background:#2a736d;border-color:#2a736d;color:#fff}
.pager-btn.is-off{opacity:.3;pointer-events:none}

/* ---------- notes & collapsibles ---------- */
.note{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:13px 16px;
  margin:20px 0 0;max-width:760px;font-size:13.5px;line-height:1.55;color:var(--muted)}
.note p{margin:0 0 8px}.note p:last-child{margin:0}
.note.danger{background:var(--danger-bg);border-color:var(--danger-line);color:#7c1d16}
.note.openpoints{background:var(--flag-bg);border-color:var(--flag-line);color:#7a3358}
.note.openpoints strong{color:var(--flag)}
details.provenance,details.comments{margin:20px 0 0;border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;background:var(--card)}
details.provenance>summary,details.comments>summary{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:13px 16px;background:var(--panel);cursor:pointer;font-size:14px;font-weight:600;color:#334154;list-style:none}
details>summary::-webkit-details-marker{display:none}
details>summary::after{content:'+';color:var(--dim);font-weight:400}
details[open]>summary::after{content:'–'}
.details-body{padding:3px 16px 15px;font-size:13.5px;line-height:1.55;color:var(--muted)}
.details-body>p:first-child{margin-top:9px}
.ids{display:flex;flex-wrap:wrap;gap:6px}
.idchip{font-size:11px;font-weight:600;background:#eef1f4;border-radius:5px;padding:2px 7px;color:var(--muted);
  font-variant-numeric:tabular-nums}
.source-list{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:0}
.source-item{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-top:1px solid var(--line-2)}
.source-item:first-child{border-top:0}
.source-item .idchip{align-self:flex-start}
.source-text{color:var(--body);font-size:13.5px;line-height:1.5}

/* ---------- votes ---------- */
.votes{margin:0}
.vote-row{display:flex;gap:9px;flex-wrap:wrap}
button.vote{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:var(--r-md);
  border:1px solid var(--chip-line);background:#fff;color:#4a5666;font:inherit;font-size:14px;font-weight:500;
  cursor:pointer;text-transform:lowercase}
button.vote::first-letter{text-transform:uppercase}
button.vote:hover{background:#f4f7f9}
button.vote .n{opacity:.65;font-variant-numeric:tabular-nums}
button.vote.active{background:var(--brand);color:#fff;border-color:var(--brand)}
button.vote.active:hover{background:#2a736d}
button.vote.tiny{font-size:12px;padding:4px 10px;border-radius:7px}

/* ---------- comments ---------- */
.comment-form{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin:0 0 4px}
.comment-form label{font-size:12.5px;color:var(--dim)}
.comment-list{list-style:none;padding:0;margin:0}
.comment{border-top:1px solid var(--line-2);padding:12px 0 0;margin-top:12px}
.cbody{margin:0 0 5px;font-size:14px;line-height:1.5;color:var(--body)}
.cfoot{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center}
.cmeta{font-size:12px;color:var(--faint)}
.cvotes{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}

/* ---------- forms ---------- */
.stack{display:flex;flex-direction:column;gap:14px;max-width:560px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r-xl);padding:22px}
.stack label{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:600;color:#334154}
.stack label .small,.stack label .muted{font-weight:400;color:var(--dim)}
.stack .check{flex-direction:row;align-items:flex-start;gap:9px;font-weight:400;color:var(--body);font-size:14px}
.stack .check input{width:auto;flex:0 0 auto;margin-top:3px}
.stack textarea,.stack select,.stack input:not([type=checkbox]):not([type=radio]),
.comment-form textarea,.search-form input{
  width:100%;padding:10px 12px;border:1px solid var(--field);border-radius:var(--r-md);
  font:inherit;font-size:14px;font-weight:400;background:#fbfcfd;color:var(--ink)}
.stack textarea,.comment-form textarea{resize:vertical}
.comment-form textarea{width:100%}
.stack .btn{align-self:flex-start}
fieldset{border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;margin:0;background:var(--panel)}
legend{font-size:13px;font-weight:600;color:#334154;padding:0 6px}
.check{display:flex;margin:.3em 0}
.errors{background:var(--danger-bg);border:1px solid var(--danger-line);color:#7c1d16;
  border-radius:var(--r-lg);padding:12px 16px;font-size:14px;margin:0 0 16px}
.errors ul{margin:0;padding-left:18px}
.search-form{display:flex;gap:9px;max-width:560px;margin:0 0 18px}
.search-form input{flex:1}

/* ---------- admin ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:16px 0}
.tiles.secondary{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.tile{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;text-align:center}
.tile .n{display:block;font-size:26px;font-weight:700;color:var(--brand);line-height:1.2;font-variant-numeric:tabular-nums}
.tile .l{display:block;font-size:12.5px;color:var(--muted);margin-top:4px}
.tile.alert{border-color:var(--danger-line);background:var(--danger-bg)}
.tile.alert .n{color:var(--danger)}
.tablecard{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;overflow-x:auto}
table.grid{width:100%;border-collapse:collapse;font-size:13.5px}
table.grid th{text-align:left;padding:11px 14px;background:var(--panel);border-bottom:1px solid var(--line);
  font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--dim);white-space:nowrap}
table.grid td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line-2);vertical-align:top;color:var(--body)}
table.grid tr:last-child td{border-bottom:0}
table.grid select{padding:5px 8px;border:1px solid var(--field);border-radius:7px;font:inherit;font-size:13px;background:#fff}
.wrapcell{max-width:340px}

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--line);background:var(--card);color:var(--dim);font-size:13px;line-height:1.55}
footer.site .wrap{padding:22px 24px 30px}
footer.site p{margin:0 0 8px}
footer.site p:last-child{margin:0}

/* ---------- responsive ---------- */
@media(max-width:860px){
  .detail-shell{flex-direction:column}
  .rail{width:auto;border-right:0;border-bottom:1px solid var(--line);max-height:220px}
  .pane-body{padding:22px 20px}
  .hero h1{font-size:34px}
}
@media(max-width:560px){
  .row{flex-wrap:wrap;gap:8px}
  .row-id{width:auto}
  .row-title{flex:1 0 100%;order:3}
  .pager{flex-wrap:wrap;justify-content:center}
  .pager-pos{order:3;flex:1 0 100%;text-align:center}
}
