/* Build 46 · Society rooms (rooms-society.js). Prefix rs-. Flat color, 1.5px ink rules, square corners.
   Selectors are scoped under .hos-places .rs-room so they outrank the older generic button/heading rules without !important. */
.hos-places .rs-room { font-family: var(--nl-sans, sans-serif); color: var(--nl-ink, #0f2027); background: var(--nl-snow, #eef2f1); font-size: 15px; line-height: 1.4; padding: 0 32px 24px; min-width: 0; }
.hos-places .rs-room * { box-sizing: border-box; }
.hos-places .rs-room.rs-phone { padding-left: 16px; padding-right: 16px; padding-bottom: calc(var(--ph-bar-space, 90px) + 16px); }
.hos-places .rs-room h1, .hos-places .rs-room h2, .hos-places .rs-room h3, .hos-places .rs-room p { margin: 0; letter-spacing: 0; text-transform: none; }
.hos-places .rs-room p { color: inherit; }
.hos-places .rs-room small { display: inline; font-size: 13px; color: var(--nl-dim, #44575c); }
.hos-places .rs-room .rs-h1 { font-family: var(--nl-serif, serif); font-weight: 500; font-size: 36px; line-height: 1.05; color: var(--nl-ink, #0f2027); }
.hos-places .rs-room .rs-h2 { font-family: var(--nl-serif, serif); font-weight: 500; font-size: 26px; line-height: 1.15; color: var(--nl-ink, #0f2027); }
.hos-places .rs-room .rs-h3 { font-family: var(--nl-serif, serif); font-weight: 500; font-size: 20px; line-height: 1.2; color: var(--nl-ink, #0f2027); }
.rs-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin-bottom: 10px; }
.rs-title-2 { margin: 0 0 10px; }
.hos-places .rs-room .rs-sub, .hos-places .rs-room .rs-dim { color: var(--nl-dim, #44575c); }
.hos-places .rs-room .rs-sub { font-size: 14px; max-width: 60ch; }
.hos-places .rs-room .rs-cap { font-size: 12px; letter-spacing: .13em; text-transform: uppercase; font-weight: 600; color: var(--nl-dim, #44575c); margin: 0 0 4px; }
.hos-places .rs-room .rs-small { font-size: 14px; }
.hos-places .rs-room .rs-mono { font-family: var(--nl-mono, monospace); font-size: 12px; }
.hos-places .rs-room .rs-serif { font-family: var(--nl-serif, serif); font-size: 20px; font-weight: 500; }
.hos-places .rs-room .rs-up { color: #1c6b45; font-weight: 700; }
.hos-places .rs-room .rs-dn { color: var(--nl-red, #c2371d); font-weight: 700; }
.hos-places .rs-room .rs-p { margin: 4px 0 8px; font-size: 15px; }
.hos-places .rs-room .rs-foot { margin: 8px 0; font-size: 13px; color: var(--nl-dim, #44575c); }
.hos-places .rs-room .rs-notice { border: 1.5px solid var(--nl-red, #c2371d); background: var(--nl-card, #fbfcfb); padding: 8px 12px; margin: 0 0 10px; }
.rs-section { margin-top: 28px; }
.rs-card { background: var(--nl-card, #fbfcfb); border: 1px solid var(--nl-rule, #b3bfbe); padding: 12px 16px; }
.rs-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 6px; }
.hos-places .rs-room .rs-mint { background: var(--nl-mint, #bfe3df); border: 1.5px solid var(--nl-ink, #0f2027); padding: 12px 16px; margin-top: 10px; }
.hos-places .rs-room .rs-pill, .hos-places .rs-room .rs-tag { display: inline-block; font-family: var(--nl-mono, monospace); font-size: 12px; border: 1px solid var(--nl-ink, #0f2027); padding: 1px 7px; white-space: nowrap; background: transparent; color: var(--nl-ink, #0f2027); }
.hos-places .rs-room .rs-pill.with { background: var(--nl-fjord, #0e4f58); color: #fff; }
.hos-places .rs-room .rs-pill.against { background: var(--nl-red, #c2371d); color: #fff; border-color: var(--nl-red, #c2371d); }
.hos-places .rs-room .rs-pill.persuadable, .hos-places .rs-room .rs-tag.sun { background: var(--nl-sun, #f2c230); color: var(--nl-ink, #0f2027); }

/* buttons */
.hos-places .rs-room .rs-btn { font: 600 15px/1.2 var(--nl-sans, sans-serif); min-height: 44px; padding: 8px 16px; border: 1.5px solid var(--nl-ink, #0f2027); background: var(--nl-ink, #0f2027); color: var(--nl-snow, #eef2f1); border-radius: 0; text-align: left; cursor: pointer; box-shadow: none; }
.hos-places .rs-room .rs-btn.o { background: transparent; color: var(--nl-ink, #0f2027); }
.hos-places .rs-room .rs-btn:hover:not(:disabled) { background: var(--nl-fjord, #0e4f58); color: #fff; border-color: var(--nl-ink, #0f2027); }
.hos-places .rs-room .rs-btn:disabled { opacity: .5; cursor: not-allowed; }
.hos-places .rs-room button:focus-visible, .hos-places .rs-room summary:focus-visible, .hos-places .rs-room [tabindex]:focus-visible { outline: 3px solid var(--nl-fjord, #0e4f58); outline-offset: 2px; }
.hos-places .rs-room .rs-linkbtn { background: none; border: 0; padding: 0; min-height: 44px; display: inline-flex; align-items: center; font: 700 15px var(--nl-sans, sans-serif); color: var(--nl-fjord, #0e4f58); text-decoration: underline; cursor: pointer; border-radius: 0; text-align: left; }
.rs-actions, .rs-stack { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.rs-stack { flex-direction: column; align-items: stretch; }

/* 1 · weather */
.rs-weather-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: 28px; align-items: start; }
.rs-chart { margin: 0; min-width: 0; }
.rs-weather-svg { display: block; border: 1.5px solid var(--nl-ink, #0f2027); max-width: 100%; }
.hos-places .rs-room .rs-key { font-size: 13px; color: var(--nl-dim, #44575c); margin-top: 6px; }
.rs-stat2 { display: flex; gap: 14px; }
.rs-stat { flex: 1; padding: 12px 16px; }
.hos-places .rs-room .rs-num { font-weight: 700; font-size: 44px; line-height: 1; font-variant-numeric: tabular-nums; }
.hos-places .rs-room .rs-num2 { font-weight: 700; font-variant-numeric: tabular-nums; min-width: 40px; text-align: right; font-size: 16px; }
.rs-city { cursor: pointer; }
.rs-city .rs-focus { stroke: none; }
.rs-city:focus { outline: none; }
.rs-city:focus-visible .rs-focus { stroke: var(--nl-fjord, #0e4f58); stroke-width: 3; }
.rs-outlook { border-top: 1px solid var(--nl-rule, #b3bfbe); }
.rs-outrow { border-bottom: 1px solid var(--nl-rule, #b3bfbe); }
.rs-outrow.on { background: var(--nl-card, #fbfcfb); }
.hos-places .rs-room .rs-outbtn { display: flex; gap: 10px; align-items: center; width: 100%; min-height: 44px; padding: 2px 0; border: 0; background: transparent; color: var(--nl-ink, #0f2027); text-align: left; cursor: pointer; border-radius: 0; font: inherit; }
.rs-outtext { display: flex; flex-flow: row wrap; align-items: baseline; gap: 2px 10px; min-width: 0; }
.rs-outtext b { font-size: 15px; }
.hos-places .rs-room .rs-weather-word { font-weight: 400; color: var(--nl-dim, #44575c); }
.hos-places .rs-room .rs-outline { font-size: 14px; line-height: 1.3; }
.rs-wicon { flex: none; }
.rs-reasons-card { padding: 4px 0 12px 46px; }
.rs-parts { list-style: none; margin: 0 0 6px; padding: 0; }
.rs-parts li { display: flex; gap: 8px; padding: 2px 0; font-size: 14px; }
.rs-parts li b { min-width: 44px; }
.rs-causal { margin: 6px 0 0; padding-left: 18px; font-size: 14px; }
.rs-chief { margin-top: 12px; border-top: 4px solid var(--nl-fjord, #0e4f58); background: var(--nl-card, #fbfcfb); padding: 10px 14px; }
.hos-places .rs-room .rs-chief-line { font-size: 14px; margin: 6px 0; }

/* coalition */
.rs-cols3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.rs-col { display: flex; flex-direction: column; gap: 8px; }
.hos-places .rs-room .rs-cap.with { color: #1c6b45; } .hos-places .rs-room .rs-cap.against { color: var(--nl-red, #c2371d); }
.hos-places .rs-room .rs-group { display: flex; flex-direction: column; gap: 2px; min-height: 56px; padding: 8px 12px; background: var(--nl-card, #fbfcfb); border: 1px solid var(--nl-rule, #b3bfbe); color: var(--nl-ink, #0f2027); text-align: left; border-radius: 0; cursor: pointer; font: inherit; }
.hos-places .rs-room .rs-group.on { border: 1.5px solid var(--nl-ink, #0f2027); background: var(--nl-sun, #f2c230); }
.rs-group-top { display: flex; justify-content: space-between; gap: 8px; }
.rs-group-panel { margin-bottom: 14px; border-top: 4px solid var(--nl-ink, #0f2027); }
.rs-rows { margin: 6px 0; }
.rs-rows > div { display: flex; justify-content: space-between; gap: 12px; border-top: 1px solid var(--nl-rule, #b3bfbe); padding: 5px 0; }
.rs-rows dt, .rs-rows dd { margin: 0; font-size: 14px; }
.rs-rows dd { text-align: right; font-weight: 600; }
.rs-meters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.rs-meter-head { display: flex; justify-content: space-between; font-weight: 600; }
.rs-bar { height: 10px; border: 1.5px solid var(--nl-ink, #0f2027); margin: 4px 0; background: var(--nl-card, #fbfcfb); }
.rs-bar i { display: block; height: 100%; background: var(--nl-ink, #0f2027); }
.rs-signals { display: grid; gap: 6px; margin: 6px 0 14px; }
.rs-signal { display: grid; grid-template-columns: 180px minmax(0, 1fr) 60px; gap: 10px; align-items: center; font-size: 14px; }
.rs-axis { position: relative; height: 10px; border: 1px solid var(--nl-ink, #0f2027); background: var(--nl-card, #fbfcfb); }
.rs-axis i { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 2px; background: var(--nl-ink, #0f2027); }
.rs-axis b { position: absolute; top: 0; bottom: 0; background: var(--nl-fjord, #0e4f58); }
.rs-legacy { margin-top: 12px; }
.rs-details { margin-top: 18px; border-top: 1.5px solid var(--nl-ink, #0f2027); }
.rs-details > summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 700; font-size: 16px; }
.rs-details.rs-inner { margin-top: 8px; }
.rs-scroll { max-width: 100%; }
.rs-table { border-collapse: collapse; width: 100%; font-size: 14px; background: var(--nl-card, #fbfcfb); }
.rs-table th, .rs-table td { border-bottom: 1px solid var(--nl-rule, #b3bfbe); padding: 6px 8px; text-align: left; vertical-align: top; }
.rs-table th { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--nl-dim, #44575c); }
.rs-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.rs-table tr.selected td { background: var(--nl-sun, #f2c230); }
.rs-table td.weighs { text-decoration: underline; font-weight: 700; }
.rs-reasons { display: block; }
.rs-weights th, .rs-weights td { white-space: nowrap; }

/* 2 · mandate */
.rs-mgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, .8fr); gap: 24px; align-items: start; }
.rs-baro { display: block; max-width: 100%; }
.rs-mlist { margin: 2px 0 6px; }
.rs-mrow { display: flex; gap: 10px; align-items: baseline; border-top: 1px solid var(--nl-rule, #b3bfbe); padding: 5px 0; }
.rs-mlabel { flex: 1; font-size: 14px; line-height: 1.3; }
.hos-places .rs-room .rs-mnote { font-size: 13px; }
.hos-places .rs-room .rs-tag { padding: 0 5px; }
.rs-summary { font-size: 14px; line-height: 1.35; margin-top: 8px; }
.rs-trend-card { padding: 10px 12px; }
.rs-trendbox { min-width: 0; }
.rs-trend { display: block; max-width: 100%; }
.rs-mright { display: flex; flex-direction: column; gap: 4px; }
.rs-baro-row { display: flex; gap: 10px; margin-top: 4px; }
.rs-baro-notes { font-size: 13px; line-height: 1.3; display: flex; flex-direction: column; justify-content: space-between; padding: 2px 0; }
.rs-baro-notes div { margin: 2px 0; }

/* 3 · programs */
.rs-pgrid { display: grid; grid-template-columns: minmax(0, 600px) minmax(0, 1fr); gap: 24px; align-items: start; }
.rs-tiers { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
.hos-places .rs-room .rs-tier { display: flex; flex-direction: column; gap: 2px; width: 100%; padding: 8px 14px; border: 1.5px solid var(--nl-ink, #0f2027); background: var(--nl-card, #fbfcfb); color: var(--nl-ink, #0f2027); text-align: left; border-radius: 0; cursor: pointer; font: inherit; min-height: 44px; }
.hos-places .rs-room .rs-tier.on { background: var(--nl-ink, #0f2027); color: var(--nl-snow, #eef2f1); }
.hos-places .rs-room .rs-tier.on .rs-tag { color: var(--nl-ink, #0f2027); }
.rs-tier-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.rs-tier-desc { font-size: 14px; font-weight: 400; }
.rs-moves { margin-top: 10px; }
.rs-projects { list-style: none; margin: 8px 0; padding: 0; }
.rs-project { border-top: 1px solid var(--nl-rule, #b3bfbe); padding: 8px 0; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.rs-project.active { border-left: 4px solid var(--nl-sun, #f2c230); padding-left: 8px; }
.rs-project-head { display: flex; justify-content: space-between; gap: 8px; width: 100%; }
.rs-axis-svg { display: block; max-width: 100%; }
.rs-axiscard { margin-top: 10px; }
.rs-code-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; }
.rs-laws { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 8px; }
.rs-law { padding: 8px 10px; }
.rs-law-head { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; }
.rs-track { display: block; margin: 4px 0; max-width: 100%; }
.rs-stops { display: flex; flex-direction: column; gap: 4px; }
.hos-places .rs-room .rs-stopbtn, .hos-places .rs-room .rs-segbtn { display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 10px; border: 1.5px solid var(--nl-ink, #0f2027); background: transparent; color: var(--nl-ink, #0f2027); border-radius: 0; text-align: left; cursor: pointer; font: 500 14px/1.15 var(--nl-sans, sans-serif); }
.rs-stoptext { flex: 1; }
.hos-places .rs-room .rs-stopbtn.on, .hos-places .rs-room .rs-segbtn.on { background: var(--nl-ink, #0f2027); color: var(--nl-snow, #eef2f1); font-weight: 700; }
.hos-places .rs-room .rs-stopbtn.on .rs-tag { color: var(--nl-ink, #0f2027); }
.rs-seg { display: flex; }
.hos-places .rs-room .rs-segbtn { flex: 1; justify-content: center; padding: 0 2px; }
.rs-segbtn + .rs-segbtn { border-left: 0 !important; }
.rs-under { font-size: 13px; line-height: 1.3; margin-top: 6px; }
.hos-places .rs-room .rs-readout { font-size: 13px; }
.rs-enact { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.rs-record { margin-top: 12px; border-top: 1px solid var(--nl-ink, #0f2027); padding-top: 6px; }
.rs-paths { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.rs-path { border-top: 4px solid var(--nl-rule, #b3bfbe); }
.rs-path.viable { border-top-color: var(--nl-sun, #f2c230); } .rs-path.achieved { border-top-color: var(--nl-fjord, #0e4f58); }
.rs-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.hos-places .rs-room .rs-chip { font-size: 12px; border: 1px solid var(--nl-ink, #0f2027); padding: 2px 6px; }
.rs-chip.missing { color: var(--nl-dim, #44575c); border-style: dashed; }

/* medium and phone */
@media (max-width: 1239px) {
  .rs-mgrid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .rs-mright { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
  .rs-pgrid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) { .rs-weather-grid { grid-template-columns: minmax(0, 1fr); } .rs-cols3, .rs-meters { grid-template-columns: minmax(0, 1fr); } .rs-laws { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 700px) {
  .rs-mgrid, .rs-mright { display: block; }
  .hos-places .rs-room .rs-h1 { font-size: 28px; }
  .hos-places .rs-room .rs-h2 { font-size: 22px; }
  .rs-weather-grid { gap: 8px; }
  .rs-signal { grid-template-columns: 1fr 60px; } .rs-signal .rs-axis { grid-column: 1 / -1; order: 3; }
  .rs-reasons-card { padding-left: 0; }
  .hos-places .rs-room .rs-num { font-size: 34px; }
  .hos-places .rs-room .rs-mint { padding: 10px 12px; }
}
.hos-places .rs-room .rs-legacy, .hos-places .rs-room .rs-legacy * { font-size: max(12px, 1em); }
.rs-jumps { display: flex; flex-wrap: wrap; gap: 4px 18px; align-items: center; margin: 14px 0 4px; }
