/* Reference tools and maps: shared components */
.tool-host{container-type:inline-size}
[dir=rtl] svg.flip,[dir=rtl] .flow svg,[dir=rtl] .step-head svg,[dir=rtl] .ptitle svg{transform:scaleX(-1)}

/* ---------- network map ---------- */
.graph{position:relative;border:1px solid var(--line-l);border-radius:10px;background:#FBFCFB;overflow:hidden;margin:6px 0;touch-action:none}
.graph-svg{display:block;width:100%;height:100%;cursor:grab;user-select:none}
.graph.panning .graph-svg{cursor:grabbing}
.graph-tools{position:absolute;top:8px;inset-inline-end:8px;display:flex;gap:4px;z-index:2}
.gbtn{min-width:30px;height:30px;border:1px solid #C9D2CD;border-radius:7px;background:#fff;color:var(--ink);font-size:16px;font-weight:700;line-height:1}
.gbtn.wide{font-size:12.5px;padding:0 9px}
.gbtn:hover{background:var(--green-t)}
.graph-hint{position:absolute;bottom:6px;inset-inline-start:8px;inset-inline-end:8px;font-size:11px;color:var(--muted);pointer-events:none;background:rgba(251,252,251,.8);border-radius:4px;padding:1px 4px;width:max-content;max-width:calc(100% - 16px)}
.graph-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:14px;padding:20px;text-align:center}
.gnode{cursor:pointer;outline:none;transition:opacity .15s}
.gnode .glabel{opacity:0;transition:opacity .12s}
.gnode.lv .glabel,.gnode.lab2 .glabel,.gnode:hover .glabel,.gnode:focus .glabel,.gnode.on .glabel{opacity:1}
.gl,.hlab{transform-box:view-box;transform-origin:0 0}
.gnode .glabel.in{opacity:1}
/* crowded maps: communities as shaded areas with a name that zooms to them, lighter links when the map is busy */
.ghull{opacity:.09;pointer-events:none;transition:opacity .15s}
.graph.focusing .ghull{opacity:.045}
.graph.nogroups .hs,.graph.nogroups .hl{display:none}
.hlab{cursor:zoom-in;outline:none}.hlab.off{display:none}
.glabel.gname{font-size:12px;font-weight:700;fill:#4A5A63;pointer-events:auto}
.hlab:hover .gname,.hlab:focus-visible .gname{fill:var(--ink);text-decoration:underline}
.graph.focusing .hlab{opacity:.35}
.gedge{transition:opacity .15s}
.gedge.xl{opacity:.55}
.graph.dense .gedge{opacity:.5}
.graph.dense .gedge.xl{opacity:.32}
.graph.dense .gedge:not(.on) .ln{marker-end:none}
.graph .gedge.on{opacity:1}
.graph .gedge.dim{opacity:.1}
.gbtn[data-z=groups][aria-pressed=false]{color:var(--muted);text-decoration:line-through}
.glabel{font:600 11px var(--font);fill:var(--ink);paint-order:stroke;stroke:#FBFCFB;stroke-width:3.2px;stroke-linejoin:round;pointer-events:none}
.glabel.in{stroke:none;font-size:11.5px}
.gbadge{font:700 9px var(--font);fill:#fff;pointer-events:none}
.gnode:focus-visible circle,.gnode:focus-visible rect,.gnode:focus-visible path,.gnode:focus-visible polygon{stroke:#B5739B;stroke-width:4}
.gnode.on circle,.gnode.on rect:not(.x),.gnode.on polygon,.gnode.on path{filter:drop-shadow(0 0 3px rgba(114,47,90,.55))}
.gnode.dim,.gedge.dim{opacity:.16}
.gedge .ln{fill:none;transition:opacity .15s}
.gedge .hit{fill:none;stroke:transparent;stroke-width:12;cursor:pointer}
.gedge.on .ln{stroke-width:3.2}
.glegend{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:4px 0 8px}
.glegend span{display:inline-flex;gap:5px;align-items:center}
html[lang=ar] .glabel{font-family:var(--font-ar)}

/* ---------- layout inside a tool ---------- */
.toolbar-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0 10px}
.split{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@container (min-width:880px){.split{grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr)}.split-side{position:sticky;top:8px;align-self:start;max-height:calc(100dvh - 140px);overflow:auto}}
.split-main{min-width:0}
.detail,.detail-empty{border:1px solid var(--line-l);border-radius:10px;padding:12px 14px;background:#fff}
.detail-empty{display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:14px;background:var(--soft)}
.detail-empty svg{width:22px;height:22px;flex:none}
.detail h3{margin:2px 0 6px;color:var(--plum);font-size:1.08rem}
.detail h4,.profile h4{margin:14px 0 5px;color:var(--green);font-size:.95rem}
.kicker{margin:0 0 4px;display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.flow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:4px 0 8px}
.flow svg{width:14px;height:14px;color:var(--muted)}
.filters{gap:8px 10px;align-items:flex-end;margin:4px 0}
.filters .field{margin:2px 0}
.fsel{min-width:150px;flex:1}
.tabpane{min-height:120px}
.about-data{margin-top:22px;border-top:1px solid var(--line-l);padding-top:8px;font-size:.88rem;color:#3C4A52}
.about-data summary{cursor:pointer;font-weight:700;color:var(--green)}
.refine{margin:4px 0 8px}
.refine>summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--green);display:inline-flex;align-items:center;gap:4px;list-style:none}
.refine>summary::-webkit-details-marker{display:none}
.refine>summary svg{width:14px;height:14px}
.refine[open]>summary svg{transform:rotate(45deg)}
.howto{display:flex;gap:6px 18px;flex-wrap:wrap;padding:0;margin:4px 0 8px;list-style:none;color:#3C4A52}
.route-note{display:flex;gap:6px;align-items:flex-start;background:var(--soft);border-radius:8px;padding:7px 10px;margin:6px 0}
.route-note svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--green)}

/* chips & filters */
.chips{display:flex;gap:5px;flex-wrap:wrap;margin:4px 0}
.chips.scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.chips .chip{cursor:pointer;border:1px solid transparent;font-weight:600}
.chip[aria-pressed=true]{background:var(--green);color:#fff}
.chip.mine{border-color:var(--plum-m)}
.chip.static{cursor:default}
.chip-pair{display:inline-flex;gap:1px}
.chip-pair .chip:first-child{border-start-end-radius:0;border-end-end-radius:0}
.chip.find{border-start-start-radius:0;border-end-start-radius:0;padding:1px 6px}
.chip.find svg{width:12px;height:12px}
.chip .swatch{width:9px;height:9px}
.type-filter{display:flex;flex-wrap:wrap;gap:4px 12px;margin:6px 0;font-size:12.5px;color:#3C4A52}
.tchk{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.tchk input{margin:0}
.tchk input:disabled+svg{opacity:.5}
.sector-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin:8px 0}
.sector-tile{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:start;border:1px solid var(--line-l);border-radius:9px;background:#fff;padding:10px 12px;font-size:14px}
.sector-tile:hover,.sector-tile[aria-pressed=true]{border-color:var(--green);background:#F4F8F5}
.sector-tile span{font-size:12px;font-weight:700;color:var(--muted);background:var(--line-l);border-radius:9px;padding:0 7px}

/* focus bar */
.focusbar{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap;padding:7px 10px;border:1px solid #E0D0DA;background:var(--plum-t);border-radius:9px;margin:0 0 10px}
.focusbar .switch{padding:0;font-size:13px;font-weight:700;color:var(--plum)}
.fchips{display:flex;gap:4px;flex-wrap:wrap;flex:1;min-width:0}
.fchip{display:inline-flex;align-items:center;gap:3px;background:#fff;border:1px solid #E0D0DA;border-radius:11px;padding:0 4px 0 8px;font-size:12px;font-weight:700;min-height:22px}
.fchip.route{background:var(--ink);color:#fff;border-color:var(--ink);padding:0 8px}
.fchip svg{width:11px;height:11px}
.fchip button{border:0;background:transparent;color:var(--muted);font-size:14px;line-height:1;padding:0 3px;border-radius:50%}
.fchip button:hover{color:var(--red)}
.focus-editor{margin:-4px 0 10px}

/* badges */
.badge{display:inline-flex;align-items:center;min-height:19px;padding:0 7px;border-radius:9px;font-size:11.5px;font-weight:700;background:var(--line-l);color:#3C4A52;white-space:nowrap;vertical-align:middle}
.badge.type{background:var(--plum-t);color:var(--plum)}
.badge.route{background:var(--ink);color:#fff}
.badge.warn{background:var(--amber-t);color:var(--amber)}
.badge.muted{background:#F1F3F2;color:var(--muted);font-weight:600}
.badge.cat{background:#EEF2F7;color:#2F4F6E}
.badge.cap{background:var(--green-t);color:var(--green);font-weight:600}
.badge.loc-local{background:#E3F1E7;color:#1F5B35}
.badge.loc-elsewhere{background:#EAF0F6;color:#2F5576}
.badge.loc-overseas,.badge.loc-broad{background:#F2ECF6;color:#5B3E73}
.badge.loc-unknown,.badge.loc-mapped{background:#F1F3F2;color:var(--muted)}
.badge.st-good{background:#E3F1E7;color:#1F5B35}.badge.st-part{background:#FFF1DC;color:#7A4B00}.badge.st-bad{background:var(--red-t);color:var(--red)}.badge.st-muted{background:#F1F3F2;color:var(--muted)}
:root{--st-good:#2E7D4F;--st-part:#B26B00;--st-bad:#9B2C2C;--st-muted:#9AA3A8}
.rchip{display:inline-block;min-width:34px;text-align:center;padding:0 5px;margin:1px 2px 1px 0;border-radius:5px;font-size:11px;font-weight:700;line-height:18px}
.rchip.used{background:var(--ink);color:#fff}
.rchip.rel{border:1px solid #AEB8BD;color:#55626B}

/* entity cards */
.cards{list-style:none;padding:0;margin:8px 0;display:grid;gap:8px}
.cards.grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
@container (min-width:760px){.cards.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ecard{position:relative;display:flex;gap:6px;align-items:flex-start;border:1px solid var(--line-l);border-inline-start:4px solid var(--accent,#9AA3A8);border-radius:9px;background:#fff;padding:9px 10px;min-width:0}
.ecard:hover{border-color:#CBD3CF;border-inline-start-color:var(--accent,#9AA3A8)}
.ecard-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;text-align:start;border:0;background:transparent;padding:0;color:inherit;font-size:14px}
button.ecard-main{cursor:pointer}
button.ecard-main:hover b{color:var(--plum);text-decoration:underline}
.ecard-main b{font-size:15px;line-height:1.25}
.ecard-kicker{font-size:11.5px;color:var(--muted);font-weight:600;display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.ecard-text{font-size:13.5px;color:#3C4A52;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ecard-acts{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.match-why{display:flex;gap:4px;align-items:center;color:var(--green);font-weight:700}
.match-why svg{width:13px;height:13px;flex:none}
.ar-inline{font-family:var(--font-ar);color:var(--muted);font-size:.92em;unicode-bidi:isolate}
.ar-name{font-family:var(--font-ar);color:var(--muted);margin:-2px 0 6px;font-size:1.02rem}

/* profiles */
.backbtn{margin:0 0 8px}
.profile{border-top:4px solid var(--accent,var(--plum));padding-top:10px}
.ptitle{margin:2px 0 4px;color:var(--plum);font-size:1.3rem;line-height:1.25;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.ptitle svg{width:18px;height:18px;color:var(--muted)}
.lead2{font-size:1rem;margin:4px 0 10px;color:var(--ink)}
.crumbs{color:var(--muted);margin:0 0 4px}
.reflink{border:0;background:transparent;padding:0;color:var(--plum);font:inherit;text-align:start;cursor:pointer;text-decoration:underline;text-decoration-color:rgba(114,47,90,.35);text-underline-offset:2px}
.reflink:hover{color:var(--plum-d);text-decoration-color:currentColor}
.reflink.strong{font-weight:700}
.reflink:disabled{color:var(--muted);text-decoration:none;cursor:default}
.plain{list-style:none;padding:0;margin:4px 0}
.plain>li{padding:5px 0;border-bottom:1px solid var(--line-l)}
.plain>li:last-child{border-bottom:0}
.plain.cols{columns:2 220px;column-gap:18px}
.plain.cols>li{break-inside:avoid}
.plain.small>li{padding:3px 0}
.checks{padding-inline-start:20px;margin:4px 0 6px}
.kv2{display:grid;grid-template-columns:minmax(110px,32%) 1fr;gap:5px 12px;font-size:.9rem;margin:8px 0}
.kv2 dt{font-weight:700;color:var(--green)}
.kv2 dd{margin:0;min-width:0}
.caveat{display:flex;gap:7px;align-items:flex-start;margin:6px 0;padding:6px 9px;border-radius:7px;background:#F4F6F5;color:#3C4A52;font-size:.86rem}
.caveat svg{width:15px;height:15px;flex:none;margin-top:2px;color:var(--muted)}
.caveat.amber{background:var(--amber-t);color:var(--amber)}
.caveat.amber svg{color:var(--amber)}
.callout{border-inline-start:3px solid var(--plum-m);background:var(--plum-t);padding:8px 11px;border-radius:0 8px 8px 0;margin:8px 0;font-size:.92rem}
.srcs{list-style:none;padding:0;margin:4px 0;font-size:.86rem}
.srcs li{padding:3px 0;border-bottom:1px dotted var(--line)}
.srcs li:last-child{border-bottom:0}
.srcs small{display:block;color:var(--muted);font-size:.8rem}
.srcs a{word-break:break-word}
.count{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--line-l);color:var(--muted);font-size:11.5px;font-weight:700;text-align:center;line-height:17px}
.btn .count{background:rgba(255,255,255,.3);color:inherit}
.btn.on{background:var(--green);border-color:var(--green);color:#fff}
.btn.on:hover{background:#1A3A2D;color:#fff}

/* steps of a route */
.h3{color:var(--green);font-size:1rem;margin:16px 0 4px}
.steps{list-style:none;counter-reset:st;padding:0;margin:6px 0}
.steps>li{counter-increment:st;position:relative;padding:7px 10px 7px 38px;border:1px solid var(--line-l);border-radius:9px;margin:5px 0;background:#fff}
[dir=rtl] .steps>li{padding:7px 38px 7px 10px}
.steps>li::before{content:counter(st);position:absolute;inset-inline-start:9px;top:8px;width:21px;height:21px;border-radius:50%;background:var(--green);color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center}
.steps>li.on{border-color:var(--plum);box-shadow:0 0 0 1px var(--plum) inset}
.steps p{margin:3px 0}
.step-head{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;border:0;background:transparent;padding:0;text-align:start;font-size:14px;color:inherit;cursor:pointer}
.step-head .who{color:var(--muted);font-size:13px}
.step-head svg{width:13px;height:13px;color:var(--muted)}
.step-head b{flex-basis:100%;color:var(--plum)}

/* data tables */
table.data{width:100%;border-collapse:collapse;font-size:.88rem}
table.data th{text-align:start;background:var(--plum);color:#fff;font-weight:700;padding:6px 8px;font-size:.82rem}
table.data td{padding:6px 8px;border-bottom:1px solid var(--line-l);vertical-align:top}
table.data tbody tr:nth-child(even) td{background:#F7F8F7}
table.data tr.mine td{background:var(--plum-t)!important}
table.data.small{font-size:.82rem}
table.compare th:first-child{background:#F4F8F5;color:var(--green)}
table.compare tbody th{background:#F4F8F5;color:var(--green);text-align:start;padding:6px 8px;min-width:110px;vertical-align:top}
table.compare td{min-width:180px}

/* interests */
.principles{border:1px solid #E9D9B9;background:#FFFAF0;border-radius:9px;padding:8px 11px;margin:0 0 10px;font-size:.9rem}
.principles p{margin:0 0 3px;display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap}
.principles p:last-child{margin:0}
.principles svg{width:15px;height:15px;color:var(--amber);flex:none;margin-top:2px}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px;margin:8px 0}
.metric{background:var(--soft);border:1px solid var(--line-l);border-radius:8px;padding:6px 9px;display:flex;flex-direction:column}
.metric b{font-size:1.2rem;color:var(--plum);line-height:1.2}
.metric span{font-size:11.5px;color:var(--muted)}
.metrics.small .metric b{font-size:1rem}
.ipath{list-style:none;margin:4px 0;padding:0;font-size:13px;display:flex;flex-direction:column;gap:2px}
.ipath li{position:relative;padding-inline-start:14px}
.ipath li::before{content:"";position:absolute;inset-inline-start:3px;top:0;bottom:0;border-inline-start:2px solid #D7DDDA}
.ipath li:first-child::before{top:50%}
.ipath li:last-child::before{bottom:50%}
.ipath li::after{content:"";position:absolute;inset-inline-start:0;top:calc(50% - 4px);width:8px;height:8px;border-radius:50%;background:#fff;border:2px solid #9AA3A8}
.rel{display:inline-block;font-size:11.5px;color:var(--c,#55626B);font-weight:700;border:1px solid currentColor;border-radius:5px;padding:0 5px;margin-inline-end:3px}
.casebrief{display:block;border-inline-start:3px solid var(--red);background:var(--red-t);padding:4px 8px;border-radius:0 6px 6px 0}
.casebox2{border:1px solid #E3B9B9;background:#FFF7F7;border-radius:9px;padding:9px 12px;margin:10px 0}
.casebox2 h4{margin:2px 0 4px;color:var(--red)}
.conflict-form{border:1px dashed #C9B3C1;border-radius:9px;padding:6px 12px 10px;background:#FCF9FB}
.muni-card{padding:10px 12px}
.muni-card h4{margin:2px 0;color:var(--plum)}
.muni-card p{margin:3px 0}

/* civil society */
.contact{display:flex;flex-direction:column;gap:4px;font-size:.9rem}
.contact a{display:inline-flex;gap:4px;align-items:center;word-break:break-all}
.contact a svg{width:13px;height:13px}
.copyable{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.copyable .sel{user-select:all;background:var(--soft);border:1px solid var(--line-l);border-radius:6px;padding:2px 7px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.84rem;word-break:break-all}
textarea.approach{width:100%;border:1px solid #C9D2CD;border-radius:8px;padding:8px 10px;font:inherit;font-size:.9rem;line-height:1.45;resize:vertical}
.route-mini h4{margin:2px 0 6px;color:var(--plum)}
.card.soft.good{background:#F2F8F4;border-color:#CFE3D6}
.card.soft.bad{background:#FBF4F4;border-color:#EBCFCF}
.card.soft.good h4{color:#1F5B35}.card.soft.bad h4{color:var(--red)}

/* library timeline */
.timeline{list-style:none;padding:0;margin:6px 0;border-inline-start:2px solid var(--line);font-size:.9rem}
.timeline li{position:relative;padding:3px 0 7px 14px}
[dir=rtl] .timeline li{padding:3px 14px 7px 0}
.timeline li::before{content:"";position:absolute;inset-inline-start:-6px;top:8px;width:10px;height:10px;border-radius:50%;background:var(--green)}
.timeline time{display:block;font-weight:700;color:var(--green);font-size:.82rem}

/* trace */
.trace{padding-inline-start:20px;font-size:.92rem}
.trace li{margin:6px 0}
.tstep{display:inline-flex;gap:4px;align-items:baseline;flex-wrap:wrap;color:var(--c);font-weight:700;font-size:.85rem;padding:0 6px}
.tstep small{color:var(--muted);font-weight:400}

/* empty state */
.empty-state{border:1px dashed var(--line);border-radius:10px;padding:16px;text-align:center;color:var(--muted);margin:10px 0}
.empty-state b{color:var(--ink)}
.empty-state p{margin:4px 0 0}

/* add-to-campaign menu */
.camp-wrap{position:relative;display:inline-flex;flex:none}
.camp-menu{position:absolute;top:calc(100% + 4px);inset-inline-start:0;z-index:40;width:290px;max-width:80vw;background:#fff;border-radius:10px;box-shadow:var(--shadow);padding:5px;display:flex;flex-direction:column;gap:2px}
.camp-menu.end{inset-inline-start:auto;inset-inline-end:0}
.camp-menu.up{top:auto;bottom:calc(100% + 4px)}
.camp-menu button{display:flex;gap:8px;align-items:flex-start;text-align:start;border:0;background:transparent;border-radius:7px;padding:7px 8px;color:var(--ink);font-size:13.5px}
.camp-menu button:hover,.camp-menu button:focus-visible{background:var(--green-t);outline:0}
.camp-menu button svg{width:15px;height:15px;flex:none;margin-top:2px;color:var(--green)}
.camp-menu button.on svg{color:#fff;background:var(--green);border-radius:50%;padding:2px}
.camp-menu small{display:block;color:var(--muted);font-size:12px;font-weight:400}

@container (max-width:520px){
  .kv2{grid-template-columns:1fr}
  .kv2 dt{margin-top:4px}
  .ecard{flex-direction:column}
  .ecard-acts{flex-direction:row;align-self:flex-start}
  .fsel{min-width:130px}
}
.seg2{display:inline-flex;flex-wrap:wrap;border:1px solid #CFD6D2;border-radius:7px;overflow:hidden;background:#fff}
.seg2 button{display:inline-flex;align-items:center;gap:5px;min-height:30px}
.seg2 button svg{width:15px;height:15px;flex:none}
.plain li>svg,.profile li>svg,.checks li>svg,.detail p>svg,.small>svg,.kicker svg{width:14px;height:14px;vertical-align:-2px;flex:none}
.tchk svg{flex:none}
/* Arabic interface: records keep their own language and direction (English records read left to right) */
[dir=rtl] .tool-pad :is(p, li, dd, td, th, h3, h4, summary, label, .ecard-main > *, .chip, .badge, .rel, .step-head, .flow),
[dir=rtl] .popup-body :is(p, li, dd),
[dir=rtl] .camp-menu small{unicode-bidi:plaintext}
[dir=rtl] .tool-pad :is(p, li, dd, td, h3, h4, .ecard-main > *){text-align:start}

/* ---------------------------------------------------------------- new features: status, laws, deadlines, requests, help, contact */
.badge.plum{background:var(--plum-t);color:var(--plum)}
button.badge{border:0;cursor:pointer;font:inherit;font-size:11.5px}
.stat-badge{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.stat-badge svg{width:12px;height:12px}
.stat-warn{margin:8px 0}
.stat-warn-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px}
.card.red{background:var(--red-t);border-color:#E9C1C1}
.table-plain{width:100%;border-collapse:collapse}
.table-plain td,.table-plain th{padding:6px 8px;border-bottom:1px solid var(--line-l);vertical-align:top;text-align:start}
.table-plain .srcs{margin:0;padding:0;list-style:none}
.help-q{width:28px;height:28px;border-color:var(--line);color:var(--muted);background:#fff}
.help-q svg{width:16px;height:16px}
.help-q:hover,.help-q:focus-visible{color:var(--plum);border-color:var(--plum)}
.tool-head{align-items:center;gap:6px}
/* deadlines */
.dl-result{margin-top:10px;border-color:#CFDCD3;background:#F8FBF9}
.dl-result .lbl{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.dl-big{font-size:1.35rem;font-weight:700;color:var(--plum)}
.dl-big.green{color:var(--green)}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin:4px 0 8px}
.cal-h{font-size:11.5px;font-weight:700;color:var(--muted);text-align:center;padding:2px 0}
.cal-cell{min-height:64px;border:1px solid var(--line-l);border-radius:6px;background:#fff;padding:3px 4px;display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden}
.cal-cell.pad{border:0;background:transparent}
.cal-cell.we{background:var(--soft)}
.cal-cell.hol{background:var(--green-t);border-color:#CFDCD3}
.cal-cell.clo{background:#FFF8EC;border-color:var(--amber-b)}
.cal-cell.today{box-shadow:inset 0 0 0 2px var(--plum)}
.cal-d{font-size:12px;font-weight:700;color:var(--ink)}
.cal-tag{font-size:10.5px;line-height:1.2;color:var(--green);overflow:hidden;text-overflow:ellipsis}
.cal-tag.clo{color:var(--amber)}
.cal-dl{font-size:10.5px;line-height:1.2;background:var(--plum);color:#fff;border-radius:4px;padding:1px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-dl.done{background:var(--sage);text-decoration:line-through}
.swatch.hol{background:var(--green-t);border:1px solid #CFDCD3}
.swatch.clo{background:#FFF8EC;border:1px solid var(--amber-b)}
@media (max-width:520px){.cal-cell{min-height:48px}.cal-tag{display:none}.cal-dl{font-size:9.5px}}
/* information requests */
.atisteps{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0 0 10px;padding:0}
.atisteps button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:4px 12px 4px 4px;font-weight:700;font-size:13px;color:var(--muted);cursor:pointer}
[dir=rtl] .atisteps button{padding:4px 4px 4px 12px}
.atisteps .n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--line-l);color:var(--ink);font-size:12px}
.atisteps button[aria-selected=true]{border-color:var(--plum);color:var(--plum);background:var(--plum-t)}
.atisteps button[aria-selected=true] .n{background:var(--plum);color:#fff}
textarea.letter{font-family:var(--font);font-size:14px;line-height:1.55;white-space:pre-wrap;width:100%}
textarea.letter[lang=ar]{font-family:var(--font-ar);font-size:15px}
fieldset.field{border:0;padding:0;margin:0 0 10px}
fieldset.field legend{font-weight:700;font-size:13.5px;margin-bottom:4px;padding:0}
/* help */
.help-body{display:grid;grid-template-columns:minmax(170px,230px) minmax(0,1fr);gap:16px;align-items:start}
.help-side{position:sticky;top:0;display:flex;flex-direction:column;gap:8px;max-height:70vh;overflow:auto}
.help-group{display:flex;flex-direction:column;gap:1px;margin-bottom:6px}
.help-group .lbl{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:4px 0 2px}
.help-nav{border:0;background:transparent;text-align:start;padding:5px 8px;border-radius:6px;font-size:13.5px;color:var(--ink);cursor:pointer}
.help-nav:hover{background:var(--soft)}
.help-nav.on{background:var(--plum-t);color:var(--plum);font-weight:700}
.help-main{min-width:0}
.help-topic h3{margin:0 0 6px;color:var(--plum)}
.help-topic h4{margin:14px 0 4px;color:var(--green)}
.help-steps li{margin-bottom:4px}
@media (max-width:700px){.help-body{grid-template-columns:1fr}.help-side{position:static;max-height:none}}
/* contact forms */
.contact-form .req{color:var(--red);font-weight:700}
.contact-form .err{color:var(--red);font-weight:700}
.contact-form [aria-invalid=true]{border-color:var(--red);box-shadow:0 0 0 2px var(--red-t)}
.contact-form .out textarea{width:100%;font-size:13px}
.support-btn{border-color:rgba(255,255,255,.55)}
.contact-form .checks{display:flex;flex-wrap:wrap;gap:6px 16px;padding:0}
@media (max-width:560px){.table-plain.stack,.table-plain.stack tbody,.table-plain.stack tr,.table-plain.stack td{display:block;width:auto}.table-plain.stack tr{border-bottom:1px solid var(--line-l);padding:6px 0}.table-plain.stack td{border:0;padding:2px 0}}

/* ---------------------------------------------------------------- button colour code
   blue  = My guide (add a section, map or record to your printable guide)
   teal  = My campaign (add to your plan, registers or focus)
   plum outline = read the guidance behind a tool
   dashed grey  = suggest a correction or addition                                      */
:root{--guide-c:#2F6286;--guide-t:#E6EFF6;--guide-b:#B9CFE2;--camp-c:#0E6B6B;--camp-t:#DFF1F0;--camp-b:#A9D5D2}
.btn.add-btn,.btn[data-save-map]{background:var(--guide-t);color:var(--guide-c);border-color:var(--guide-b)}
.btn.add-btn:hover,.btn[data-save-map]:hover{background:#D3E3F0;color:var(--guide-c)}
.btn.add-btn[aria-pressed=true]{background:var(--guide-c);color:#fff;border-color:var(--guide-c)}
.btn[data-camp]{background:var(--camp-t);color:var(--camp-c);border-color:var(--camp-b)}
.btn[data-camp]:hover{background:#CBE8E6;color:var(--camp-c)}
.btn.on[data-camp]{background:var(--camp-c);color:#fff;border-color:var(--camp-c)}
.btn.on[data-camp]:hover{background:#0A5454;color:#fff}
.btn[data-open-section],.btn[data-open-guide],.btn[data-guide]{background:#fff;color:var(--plum);border-color:var(--plum-m)}
.btn[data-open-section]:hover,.btn[data-open-guide]:hover,.btn[data-guide]:hover{background:var(--plum-t);color:var(--plum)}
.btn[data-correct],.btn[data-suggest]{background:#fff;color:var(--muted);border:1px dashed #AEB8BD;font-weight:600}
.btn[data-correct]:hover,.btn[data-suggest]:hover{color:var(--ink);border-color:var(--muted);background:var(--soft)}
#btn-myguide b{background:var(--guide-c)}
.camp-menu button[data-dest=guide] svg{color:var(--guide-c)}
.camp-menu button.on[data-dest=guide] svg{background:var(--guide-c)}
.btn-key{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:6px 0}
.btn-key .btn{pointer-events:none}
/* law references inside text */
.lawref{display:inline;border:0;background:transparent;padding:0;margin:0;font:inherit;color:#1F4E6E;font-weight:600;text-decoration:underline;text-decoration-style:solid;text-decoration-color:rgba(31,78,110,.4);text-underline-offset:2px;cursor:pointer;text-align:inherit;line-height:inherit}
.lawref::before{content:"§\00a0";font-weight:700;opacity:.65;text-decoration:none;display:inline-block}
.lawref:hover,.lawref:focus-visible{color:#123A55;text-decoration-color:currentColor;background:#EEF4F9;border-radius:3px}
.print-root .lawref,.pdfdoc .lawref{color:inherit;font-weight:inherit;text-decoration:none}
.print-root .lawref::before,.pdfdoc .lawref::before{content:none}
.chip[data-rel],.chip[data-rel][aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);font-weight:700}
.chip[data-rel][aria-pressed=false]{opacity:.5;text-decoration:line-through}
.btn-key .lawref{pointer-events:none}
/* tap-to-explain */
.tipchip{cursor:help}
.tipchip span{opacity:.7;font-weight:400}
.tipbubble{position:fixed;z-index:200;background:var(--ink);color:#fff;font-size:13px;line-height:1.45;padding:8px 11px;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.tipbubble::before{content:"";position:absolute;left:calc(var(--ax) - 6px);border:6px solid transparent}
.tipbubble[data-side=below]::before{top:-12px;border-bottom-color:var(--ink)}
.tipbubble[data-side=above]::before{bottom:-12px;border-top-color:var(--ink)}
/* route finder */
.rf-start{background:#F8FBF9;border-color:#CFDCD3;margin-bottom:10px}
.rf-group{color:var(--green);margin:14px 0 2px;font-size:1rem}
.inp.needs{border-color:var(--plum);box-shadow:0 0 0 3px var(--plum-t)}
.need-hint{color:var(--plum);font-weight:700}
.dl-wait{margin-top:10px;background:var(--soft);color:var(--muted)}
.brief-more{margin:6px 0 10px;border:1px dashed var(--line);border-radius:8px;padding:6px 10px}
.brief-more summary{cursor:pointer;font-weight:700;color:var(--green);font-size:13.5px}
.ready-next{margin-bottom:4px}
.muni-pick .cards{margin:6px 0}
.howto-box details summary{cursor:pointer;color:var(--plum);margin-top:4px}
/* ---------------------------------------------------------------- guided tour */
.tour{position:fixed;inset:0;z-index:300}
.tour-hole{position:fixed;border-radius:10px;box-shadow:0 0 0 9999px rgba(20,28,33,.66),0 0 0 3px #fff inset;transition:all .28s ease;pointer-events:none}
.tour-arrow{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.tour-arrow line{stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-dasharray:7 5;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4));animation:tourdash 1.2s linear infinite}
@keyframes tourdash{to{stroke-dashoffset:-24}}
@media (prefers-reduced-motion:reduce){.tour-hole{transition:none}.tour-arrow line{animation:none}}
.tour-card{position:fixed;width:min(380px,calc(100vw - 24px));background:#fff;color:var(--ink);border-radius:14px;padding:16px 18px 14px;box-shadow:0 18px 50px rgba(0,0,0,.35);border-top:5px solid var(--plum)}
.tour-card h2{margin:2px 0 6px;font-size:1.15rem;color:var(--plum);text-wrap:balance}
.tour-card p{margin:0 0 8px;font-size:14px;line-height:1.5}
.tour-count{font-size:11.5px!important;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:6px 0 0!important}
.tour-progress{display:flex;gap:4px}
.tour-progress span{flex:1;height:4px;border-radius:2px;background:var(--line-l)}
.tour-progress span.done{background:var(--plum-m)}
.tour-progress span.on{background:var(--plum)}
.tour-acts{display:flex;align-items:center;gap:8px;margin-top:10px}
.tour-skip{border:0;background:transparent;color:var(--muted);text-decoration:underline;font-size:13px;cursor:pointer;padding:4px}
/* first-visit invitation shown instead of the tour when someone arrives on a link to one tool */
.tour-invite{position:fixed;z-index:900;inset-inline-end:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));width:min(340px,calc(100vw - 32px));background:#fff;color:var(--ink);border-radius:12px;padding:14px 16px;box-shadow:0 14px 40px rgba(0,0,0,.25);border-top:4px solid var(--plum)}
.tour-invite p{margin:0 0 10px;font-size:14px;line-height:1.5}
.tour-invite .row{display:flex;gap:10px;align-items:center}

/* ---------------------------------------------------------------- Civic spaces */
.sp-filters{display:grid;gap:4px;margin:4px 0 6px}
.sp-label{margin:4px 0 0;font-size:12.5px;font-weight:700;color:var(--ink)}
.sp-filters .chips .chip{min-height:30px;padding:3px 11px;font-size:13px;background:#fff;border:1px solid #CFD6D2;color:var(--ink)}
.sp-filters .chips .chip[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}
.sp-filters .chip .n{font-weight:600;opacity:.7;font-size:11.5px}
.sp-more{gap:6px 10px;align-items:center}
.sp-more .chips{margin:0}
.sp-more .chips .chip{min-height:26px;font-size:12.5px}
.sp-gap{flex:0 0 6px}
.linkbtn{border:0;background:none;padding:0;color:var(--plum);text-decoration:underline;cursor:pointer;font:inherit}
.sp-viewbar{align-items:center;gap:6px 10px;margin:6px 0 4px;padding-top:6px;border-top:1px solid var(--line-l)}
.sp-viewbar .grow{flex:1}
.sp-counts{margin:0}
.sp-split{display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}
.sp-split.view-list{grid-template-columns:minmax(0,1fr)}
.sp-split.view-list .sp-mapcol{display:none}
.sp-split.view-map{grid-template-columns:minmax(0,1fr)}
.sp-split.view-map .sp-col{display:none}
.sp-col{min-width:0}
.sp-mapcol{position:sticky;top:6px;min-width:0}
.sp-split.view-map .sp-mapcol{position:static}
.sp-cards .sp-card{flex-direction:column;gap:6px}
.sp-card.sel{box-shadow:0 0 0 2px var(--accent)}
.sp-cardact{gap:6px}
.sp-legend{margin-top:6px;font-size:11.5px}
.sp-legend svg{flex:none}
.sp-legsep{font-weight:700;color:var(--ink)}
.sp-mapbox{position:relative}
.sp-mapcard{position:absolute;inset-inline:8px;bottom:26px;margin:0;border-inline-start:4px solid var(--accent);box-shadow:0 6px 18px rgba(0,0,0,.18);z-index:3}
.sp-mapcard .x{position:absolute;top:4px;inset-inline-end:4px}
.sp-mapcard b{display:block;font-size:15px;margin:2px 0 4px}
.warn-text{color:var(--amber)}
.sp-profile .ar-name{font-size:15px;margin:0 0 4px}
.selall{user-select:all}

/* the map */
.smap{position:relative;height:clamp(340px,64vh,640px);border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#DCE7EE;touch-action:none;user-select:none;cursor:grab}
.sp-split.view-map .smap{height:clamp(380px,72vh,760px)}
.smap.dragging{cursor:grabbing}
.smap:focus-within{outline:none}
.smap-tiles{position:absolute;inset:0;overflow:hidden}
.smap-tiles img{position:absolute;max-width:none;image-rendering:auto;pointer-events:none}
.smap-svg{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;direction:ltr}
.smap-sea{fill:#DCE7EE}
.smap.street .smap-sea{fill:transparent}
.smap-land .lb{fill:#FBFAF6;stroke:#9AA59E;vector-effect:non-scaling-stroke;stroke-width:1.2}
.smap-land .nb{fill:#ECEEE9;stroke:#D3D7D0;vector-effect:non-scaling-stroke;stroke-width:1}
.smap-pt,.smap-cl{cursor:pointer;outline:none}
.smap-pt:focus-visible circle:first-child,.smap-cl:focus-visible circle{stroke:#111;stroke-width:3}
.smap-pt:hover circle:first-child{filter:brightness(1.1)}
.smap-cl circle{fill:var(--plum);fill-opacity:.88;stroke:#fff;stroke-width:2.5}
.smap-cl text{fill:#fff;font:700 12px/1 system-ui,sans-serif;pointer-events:none}
.smap-lab{font:700 12px system-ui,sans-serif;fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.smap-pt.on .smap-lab{font-size:13px}
.smap-ctrl{position:absolute;top:8px;inset-inline-end:8px;display:flex;flex-direction:column;gap:4px}
.smap-ctrl button,.smap-mode button{min-width:34px;min-height:34px;border:1px solid #C5CDC9;background:#fff;border-radius:7px;font-weight:700;font-size:15px;color:var(--ink);cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.smap-ctrl button[data-z=fit]{font-size:12px;padding:0 6px}
.smap-mode{position:absolute;top:8px;inset-inline-start:8px;display:flex;border-radius:7px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.smap-mode button{border-radius:0;min-height:30px;font-size:12.5px;padding:0 10px;box-shadow:none}
.smap-mode button+button{border-inline-start:0}
.smap-mode button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.smap-ask{position:absolute;inset-inline:10px;top:48px;max-width:380px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;box-shadow:0 6px 20px rgba(0,0,0,.18);font-size:13px;cursor:default;z-index:2}
.smap-ask p{margin:0 0 8px}
.smap-nudge{position:absolute;bottom:30px;inset-inline-start:8px;border:1px solid #C5CDC9;background:#fff;border-radius:16px;padding:4px 10px;font-size:12.5px;cursor:pointer;display:inline-flex;gap:5px;align-items:center;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.smap-nudge svg{width:14px;height:14px}
.smap-attr{position:absolute;bottom:0;inset-inline-end:0;background:rgba(255,255,255,.85);font-size:11px;padding:1px 6px;border-start-start-radius:6px;color:var(--muted)}
.smap-attr a{color:var(--ink)}
.smap-help{margin:4px 0 0}
@media (max-width:860px){
  .sp-split{grid-template-columns:minmax(0,1fr)}
  .sp-mapcol{position:static}
  .smap{height:clamp(320px,62vh,560px)}
  .sp-more .sp-gap{display:none}
}
.tool-pad.sp{container-type:inline-size}
@container (max-width:760px){
  .sp-split.view-both{grid-template-columns:minmax(0,1fr)}
  .sp-split.view-both .sp-mapcol{order:-1;position:static}
  .sp-split.view-both .smap{height:clamp(300px,46vh,420px)}
}

/* Map views: tabs and buttons that open a map carry the map icon and the plum colour, so they stand out */
.subtabs button.maptab{display:inline-flex;align-items:center;gap:6px;color:var(--plum);background:var(--plum-t);font-weight:700;border-radius:7px 7px 0 0;padding-inline:12px}
.subtabs button.maptab svg{width:16px;height:16px;flex:none}
.subtabs button.maptab:hover{background:#EBDCE5}
.subtabs button.maptab[aria-selected=true]{color:var(--plum);border-bottom-color:var(--plum)}
.seg2 button.maptab{display:inline-flex;align-items:center;gap:5px;color:var(--plum)}
.seg2 button.maptab svg{width:14px;height:14px;flex:none}
.seg2 button.maptab[aria-pressed=true]{background:var(--plum);color:#fff}

/* Reform tracker and Pledge finder: delivery status (what happened) and verification (how sure) are always shown apart */
:root{--cm-bad:#9B2C2C;--cm-warn:#B26B00;--cm-part:#B26B00;--cm-prog:#2F6286;--cm-good:#2E7D4F;--cm-muted:#9AA3A8;--cm-hist:#B9A6B3;--cm-plum:#722F5A}
.badge svg{width:12px;height:12px;margin-inline-end:3px;flex:none}
.badge.cm-bad{background:var(--red-t);color:var(--red)}
.badge.cm-warn{background:var(--amber-t);color:var(--amber)}
.badge.cm-part{background:#FFF1DC;color:#7A4B00}
.badge.cm-prog{background:var(--blue-t);color:var(--blue)}
.badge.cm-good{background:#E3F1E7;color:#1F5B35}
.badge.cm-muted{background:#F1F3F2;color:var(--muted)}
.badge.cm-hist{background:#F4EFF2;color:#6B5562;font-style:italic}
.badge.cm-hard{background:var(--plum);color:#fff}
.badge.cm-soft{background:#fff;color:var(--plum);box-shadow:inset 0 0 0 1px var(--plum-m)}
.badge.vbadge{background:#fff;font-weight:600}
.badge.v-ok{box-shadow:inset 0 0 0 1px #8DBE9E;color:#1F5B35}
.badge.v-mid{box-shadow:inset 0 0 0 1px #9DB7CC;color:#2F5576}
.badge.v-low{box-shadow:inset 0 0 0 1px var(--amber-b);color:var(--amber);background:#FFFBF3}
.cm-badges{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.vnote{display:flex;gap:7px;align-items:flex-start;font-size:.9rem;border-radius:8px;padding:7px 10px;margin:8px 0}
.vnote svg{width:15px;height:15px;flex:none;margin-top:2px}
.vnote.v-ok{background:#F2F8F4;color:#1F4A30}.vnote.v-mid{background:#EFF4F9;color:#24435C}.vnote.v-low{background:#FFF8EC;color:#5E3A00}
.swatch.cm-bad{background:var(--cm-bad)}.swatch.cm-warn{background:var(--cm-warn)}.swatch.cm-part{background:#E2A646}.swatch.cm-prog{background:var(--cm-prog)}.swatch.cm-good{background:var(--cm-good)}.swatch.cm-muted{background:var(--cm-muted)}.swatch.cm-hist{background:var(--cm-hist)}
.cm-bar{display:flex;gap:2px;height:24px;border-radius:7px;overflow:hidden;margin:10px 0 4px}
.cm-seg{border:0;padding:0;min-width:22px;cursor:pointer;display:grid;place-items:center;color:#fff;font-size:11.5px;font-weight:700;opacity:.92}
.cm-seg:hover,.cm-seg.on{opacity:1;box-shadow:inset 0 -3px 0 rgba(0,0,0,.28)}
.cm-seg.cm-bad{background:var(--cm-bad)}.cm-seg.cm-warn{background:var(--cm-warn)}.cm-seg.cm-part{background:#C98A2B}.cm-seg.cm-prog{background:var(--cm-prog)}.cm-seg.cm-good{background:var(--cm-good)}.cm-seg.cm-muted{background:#7E8A90}.cm-seg.cm-hist{background:#9C8593}
.cm-legend{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.cm-legend .chip{font-size:12px;min-height:26px}
.cm-archived{opacity:.78}
.cm-archived .ecard-main b{font-style:italic}
.cm-speaker{color:var(--plum)}
.cm-people{list-style:none;margin:10px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.cm-person{border:1px solid var(--line-l);border-top:3px solid var(--plum-m);border-radius:9px;background:#fff;display:flex;flex-direction:column;min-width:0}
.cm-person-main{border:0;background:transparent;text-align:start;padding:10px 11px 6px;cursor:pointer;display:flex;flex-direction:column;gap:2px;color:inherit;font:inherit}
.cm-person-main>b{font-size:15px;color:var(--ink)}
.cm-person-main:hover>b{color:var(--plum);text-decoration:underline}
.cm-person-n{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12.5px;color:var(--muted);margin-top:4px}
.cm-person-n b{color:var(--ink);font-size:14px}
.cm-person-n .warn-t b,.cm-person-n .warn-t{color:var(--amber)}
.cm-person-acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:0 11px 9px}
.cm-who{margin:8px 0;border-color:#EAD7E3;background:#FCF8FA}
.cm-who-name{font-size:1.1rem;color:var(--plum)}
.cm-byline{margin:0 0 8px;font-size:.95rem}
.cm-score{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:4px 0 6px}
.cm-score>span{display:inline-flex;align-items:center;gap:5px;font-size:13px}
.cm-score small{color:var(--muted)}
.cm-dots{display:inline-flex;gap:3px}
.cm-dots i{width:10px;height:10px;border-radius:50%;background:#E3E7E5;display:inline-block}
.cm-dots i.on{background:var(--plum)}
.cm-total{font-size:13px;color:var(--muted)}.cm-total b{font-size:1.15rem;color:var(--plum)}
.cm-follow{background:#F4F8F5;border-color:#CFDCD3;margin:12px 0}
.cm-follow h4{color:var(--green)}
.cm-lever{background:#FCF8FA;border-color:#EAD7E3;margin:12px 0}
.cm-lever h4{color:var(--plum)}
.cm-lever ol{margin:6px 0;padding-inline-start:20px}
.cm-lever li{margin:0 0 10px}
.cm-lever li p{margin:3px 0}
.cm-quote{border-inline-start:3px solid var(--plum-m);background:#fff;padding:5px 9px;border-radius:0 6px 6px 0}
.warn-card{background:#FFF8EC;border-color:var(--amber-b);margin:10px 0}
.warn-card svg{width:14px;height:14px;vertical-align:-2px}
.cm-matrix td,.cm-matrix th{text-align:center;white-space:nowrap}
.cm-matrix th:first-child,.cm-matrix tbody th{text-align:start;white-space:normal;min-width:170px}
@media (max-width:640px){.cm-people{grid-template-columns:minmax(0,1fr)}}

/* Sub-tabs inside tools and maps: each tab has its own colour so people notice there is more than one view.
   Unselected tabs are tinted; the open tab is filled. Map tabs keep their plum colour (above). */
.subtabs{gap:6px;border-bottom:2px solid var(--line-l);padding-bottom:0}
.subtabs button{--tc:#1F5E3B;--tt:#E7F1EA;display:inline-flex;align-items:center;gap:6px;color:var(--tc);background:var(--tt);font-weight:700;border-radius:8px 8px 0 0;border-bottom:3px solid var(--tc);margin-bottom:-2px;padding:7px 12px;opacity:.9}
.subtabs button:nth-child(5n+2){--tc:#2F6286;--tt:#E6EFF6}
.subtabs button:nth-child(5n+3){--tc:#7A4B00;--tt:#FFF1DC}
.subtabs button:nth-child(5n+4){--tc:#0E6B6B;--tt:#E2F2F1}
.subtabs button:nth-child(5n+5){--tc:#5B3E73;--tt:#F0EAF5}
.subtabs button:hover{opacity:1;filter:brightness(.97)}
.subtabs button[aria-selected=true]{background:var(--tc);color:#fff;border-bottom-color:var(--tc);opacity:1;box-shadow:0 -2px 0 var(--tc) inset}
.subtabs button .count,.subtabs button .chip{background:rgba(255,255,255,.75);color:var(--tc)}
.subtabs button[aria-selected=true] .count,.subtabs button[aria-selected=true] .chip{background:rgba(255,255,255,.25);color:#fff}
.subtabs button.maptab{--tc:var(--plum);--tt:var(--plum-t)}
.subtabs button.maptab[aria-selected=true]{color:#fff;background:var(--plum)}
.subtabs button:focus-visible{outline:2px solid var(--tc);outline-offset:2px}

/* Places and jurisdictions map */
.gmap{position:relative;height:clamp(360px,62vh,640px);border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#DCE7EE;touch-action:none;user-select:none;cursor:grab}
.gmap.dragging{cursor:grabbing}
.gmap-cv{position:absolute;inset:0;display:block}
.gmap.street .gmap-cv{mix-blend-mode:multiply}
.gmap .smap-tiles{z-index:0}.gmap .gmap-cv{z-index:1}.gmap .smap-ctrl,.gmap .smap-mode,.gmap .smap-ask,.gmap .smap-attr,.gmap .gmap-tip{z-index:2}
.gmap-tip{position:absolute;pointer-events:none;max-width:280px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:7px 9px;box-shadow:0 6px 18px rgba(0,0,0,.16);font-size:13px;line-height:1.35}
.gmap-tip b{display:block;color:var(--plum)}
.gmap-tip .ar{display:block;font-family:var(--font-ar)}
.gmap-tip small{display:block;color:var(--muted)}
.gmap-tip .alt{margin-top:5px;border-top:1px solid var(--line-l);padding-top:4px}
.gmap-tip .alt i{display:block;font-style:normal;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.gmap-tip .alt span{display:block}.gmap-tip .alt em{color:var(--muted);font-size:11.5px}
.gp-bar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:8px 0}
.gp-layers button{display:inline-flex;align-items:center;gap:5px}
.gp-search{position:relative;flex:1;min-width:220px}
.gp-results{position:absolute;inset-inline:0;top:100%;z-index:20;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.14);max-height:320px;overflow:auto;margin-top:3px}
.gp-results button{display:flex;gap:6px;align-items:center;width:100%;text-align:start;border:0;background:transparent;padding:7px 9px;font-size:14px;cursor:pointer}
.gp-results button:hover,.gp-results button:focus{background:var(--soft)}
.gp-results small{color:var(--muted)}
.gp-split{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.tool-pad.gp{container-type:inline-size}
/* the profile of the selected place sits under the map, in tabs */
.gp-tabbody>.gp-sec{display:none}
.gp-tabbody[data-active=overview]>.gp-sec[data-tab=overview],.gp-tabbody[data-active=people]>.gp-sec[data-tab=people],.gp-tabbody[data-active=vote]>.gp-sec[data-tab=vote],.gp-tabbody[data-active=living]>.gp-sec[data-tab=living],.gp-tabbody[data-active=local]>.gp-sec[data-tab=local],.gp-tabbody[data-active=data]>.gp-sec[data-tab=data]{display:block}
.gp-side .subtabs{margin:10px 0 8px;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap}
.gp-sec h4:first-child{margin-top:4px}
.gp-legend{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin:6px 0 2px}
.gp-legend span{display:inline-flex;gap:5px;align-items:center}
.gp-legend .swatch{width:14px;height:12px;display:inline-block;border-radius:3px}
.gp-hatch{background:repeating-linear-gradient(135deg,#FFF4E2 0 3px,#C7A26A 3px 4px)!important;border:1px solid #E8C88F}
.gp-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:10px 0}
.gp-stat{border:1px solid var(--line-l);border-radius:8px;padding:7px 9px;background:#fff}
.gp-stat small{display:block;color:var(--muted);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.gp-stat b{display:block;font-size:1.15rem;color:var(--ink)}
.gp-stat span{display:block;font-size:12px;color:var(--muted)}
.gp-src{font-size:9.5px;font-weight:700;color:var(--blue);background:var(--blue-t);border-radius:4px;padding:0 3px;margin-inline-start:3px;cursor:help;vertical-align:super}
.gp-ch{font-size:12px;font-weight:700;white-space:nowrap}.gp-ch.down{color:var(--red)}.gp-ch.up{color:var(--blue)}
.gp-names summary{cursor:pointer;font-size:13px;color:var(--plum);font-weight:700;margin:2px 0 6px}
.gp-cols{columns:2 180px;column-gap:16px}
.gp-cols li{break-inside:avoid}
.gp-counts{display:flex;flex-wrap:wrap;gap:6px 14px}
.gp-profile .ar-name{margin:-2px 0 4px;font-family:var(--font-ar);color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- Representatives & officials ---------- */
.off-picker{align-items:flex-start;gap:8px;margin:4px 0 10px}
.off-place{margin:6px 0 4px}
.off-place .ptitle{margin:2px 0 4px}
.off-level{position:relative;padding:2px 0 14px 44px;margin:0}
.off-level::before{content:"";position:absolute;inset-inline-start:15px;top:30px;bottom:0;border-inline-start:2px solid var(--line)}
.off-level:last-child::before{display:none}
html[dir=rtl] .off-level{padding:2px 44px 14px 0}
.off-level>h4{margin:4px 0 2px;font-size:1rem;color:var(--green);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.off-step{position:absolute;inset-inline-start:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--green-t);color:var(--green);display:grid;place-items:center;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.off-step svg{width:16px;height:16px}
.off-level[data-level=parl] .off-step{background:var(--blue-t);color:var(--blue)}
.off-level[data-level=gov2] .off-step{background:var(--plum-t);color:var(--plum)}
.off-does{margin:0 0 6px;max-width:70ch}
.off-level .cards{margin:4px 0 6px}
.off-row{display:flex;align-items:flex-start;gap:8px}
.off-row>button:first-child{flex:1;text-align:start;display:flex;flex-direction:column;gap:2px;background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}
.off-row>button:first-child:hover b{text-decoration:underline}
.off-gap{border-style:dashed;background:var(--soft)}
.off-gap b{color:var(--muted);font-weight:600}
.off-council{margin:4px 0 8px}
.off-council>summary{cursor:pointer;font-weight:600;color:var(--sage-d);font-size:.92rem}
.off-cols{columns:2 220px;column-gap:18px;margin:6px 0 0;padding:0}
.off-cols li{break-inside:avoid;padding:1px 0}
.off-segs{flex-wrap:wrap;margin-bottom:10px}
.off-profile .kicker .badge{margin-inline-end:4px}
@media (max-width:560px){.off-level{padding-inline-start:38px}html[dir=rtl] .off-level{padding:2px 38px 14px 0}.off-step{width:28px;height:28px}.off-level::before{inset-inline-start:13px;top:26px}.off-cols{columns:1}}
@media print{.off-level::before{display:none}.off-council[open] .off-cols{columns:2}}

/* View switches inside tools (segmented buttons that change what the tool shows, e.g. "Follow a route / Start with a body",
   map layers, office types): same colour scheme as the sub-tabs above. Filters and settings (depth, simple/street map,
   language) stay neutral so they do not read as tabs. */
.seg2.vtabs{border:0;gap:4px;background:none;overflow:visible}
.seg2.vtabs button{--tc:#1F5E3B;--tt:#E7F1EA;color:var(--tc);background:var(--tt);border:1px solid color-mix(in srgb,var(--tc) 28%,transparent);border-radius:7px;font-weight:700;padding:4px 11px}
.seg2.vtabs button+button{border-inline-start:1px solid color-mix(in srgb,var(--tc) 28%,transparent)}
.seg2.vtabs button:nth-child(5n+2){--tc:#2F6286;--tt:#E6EFF6}
.seg2.vtabs button:nth-child(5n+3){--tc:#7A4B00;--tt:#FFF1DC}
.seg2.vtabs button:nth-child(5n+4){--tc:#0E6B6B;--tt:#E2F2F1}
.seg2.vtabs button:nth-child(5n+5){--tc:#5B3E73;--tt:#F0EAF5}
.seg2.vtabs button.maptab{--tc:var(--plum);--tt:var(--plum-t)}
.seg2.vtabs button:hover{filter:brightness(.96)}
.seg2.vtabs button[aria-pressed=true]{background:var(--tc);color:#fff;border-color:var(--tc)}
.seg2.vtabs button .count{background:rgba(255,255,255,.75);color:var(--tc)}
.seg2.vtabs button[aria-pressed=true] .count{background:rgba(255,255,255,.25);color:#fff}
.seg2.vtabs button:focus-visible{outline:2px solid var(--tc);outline-offset:2px}
/* information-request steps: each step its own colour, the current step filled */
.atisteps li:nth-child(1) button{--tc:#1F5E3B;--tt:#E7F1EA}
.atisteps li:nth-child(2) button{--tc:#2F6286;--tt:#E6EFF6}
.atisteps li:nth-child(3) button{--tc:#7A4B00;--tt:#FFF1DC}
.atisteps li:nth-child(4) button{--tc:#0E6B6B;--tt:#E2F2F1}
.atisteps li:nth-child(5) button{--tc:#5B3E73;--tt:#F0EAF5}
.atisteps button{color:var(--tc);background:var(--tt);border-color:color-mix(in srgb,var(--tc) 30%,transparent)}
.atisteps .n{background:#fff;color:var(--tc)}
.atisteps button[aria-selected=true]{background:var(--tc);color:#fff;border-color:var(--tc)}
.atisteps button[aria-selected=true] .n{background:#fff;color:var(--tc)}

/* ---------- chain planner: links, rounds, formal and public scrutiny ---------- */
.chain .ch-summary{display:flex;flex-direction:column;gap:6px;padding:9px 12px;border:1px solid var(--line-l);border-radius:10px;background:var(--soft);font-size:.9rem;margin:0 0 4px}
.chain .ch-summary svg{color:var(--muted)}
.ch-blocked{color:var(--red);font-weight:700}
.ch-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--muted);align-items:center}
.ch-legend>span{display:inline-flex;align-items:center;gap:4px}
.ch-legend svg{width:14px;height:14px}
.ch-sep{width:1px;height:14px;background:var(--line)}
.lk-sw{display:inline-block;width:12px;height:12px;border-radius:3px;background:#F1F3F2;box-sizing:border-box}
.lk-sw.done{background:var(--green)}.lk-sw.active{background:var(--plum-t);border:2px solid var(--plum)}.lk-sw.blocked{background:var(--red-t);border:1px solid var(--red)}.lk-sw.na{background:#fff;border:1px dashed #7D8A90}
.vis-confidential{color:#55626B}.vis-targeted{color:var(--blue)}.vis-constituency{color:var(--sage-d)}.vis-public{color:var(--plum)}
.ch-lane .lane-head{margin-bottom:2px}
.ch-role{font:inherit;font-size:12px;font-weight:700;padding:2px 6px;border-radius:11px;border:1px solid #C9D2CD;background:var(--green-t);color:var(--green);min-height:24px}
.ch-clock{margin:0 0 6px;display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.ch-next{display:flex;gap:8px;align-items:baseline;font-size:.9rem;background:var(--plum-t);color:var(--plum-d);border-radius:7px;padding:7px 10px;margin:0 0 8px}
.ch-next b{white-space:nowrap}
.ch-next.blocked{background:var(--red-t);color:var(--red)}
.ch-next.standby,.ch-next.done{background:var(--soft);color:#3C4A52}
.ch-warn{font-size:.85rem;color:var(--amber);background:var(--amber-t);border:1px solid var(--amber-b);border-radius:7px;padding:5px 9px;margin:0 0 8px}
.ch-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:4px}
.ch-band{grid-column:1/-1;font-size:11.5px;color:var(--muted);border-top:2px solid #CFD6D2;padding-top:3px;margin-top:4px}
.ch-band:first-child{margin-top:0}
.ch-band.later{color:var(--plum);border-top-color:var(--plum);font-weight:700}
.lk{min-width:0;min-height:66px;border-radius:7px;padding:6px 7px 4px;font-size:12px;line-height:1.2;text-align:start;border:1px solid transparent;background:#F1F3F2;color:#46535C;display:flex;flex-direction:column;gap:2px;position:relative;cursor:pointer}
.lk b{font-size:12.5px;padding-inline-end:9px;hyphens:manual;overflow-wrap:break-word}
.lk small{overflow-wrap:anywhere}
.lk.done{background:var(--green);color:#fff}
.lk.active{background:var(--plum-t);border:2px solid var(--plum);color:var(--plum);padding:5px 6px 3px}
.lk.blocked{background:var(--red-t);border:1px solid #E3B9B9;color:var(--red)}
.lk.na{background:#fff;border:1px dashed #9AA6A0;color:#5F6B72}
.lk[aria-pressed=true]{outline:3px solid #B5739B;outline-offset:1px}
.lk.dragging{opacity:.45}
.lk.drop{box-shadow:inset 4px 0 0 var(--plum)}
[dir=rtl] .lk.drop{box-shadow:inset -4px 0 0 var(--plum)}
.lk-grip{position:absolute;top:4px;inset-inline-end:3px;opacity:.4;line-height:0}
.lk-grip svg{width:12px;height:12px;stroke-width:3.4}
.lk:hover .lk-grip,.lk:focus-visible .lk-grip{opacity:.9}
.lk-vis{margin-top:auto;display:flex;align-items:center;gap:3px;min-height:17px;border-top:2px solid currentColor;padding-top:2px}
.lk-vis.unset{border-top-color:transparent}
.lk-vis svg{width:14px;height:14px}
.lk.done .lk-vis{color:#DCE8E0}
.lk-gap{color:var(--amber);display:inline-flex}
.lk.done .lk-gap{color:#FFD99A}
.ch-dots,.ch-now{display:none}
.ch-dots{align-items:center;margin:6px 4px 10px}
.ch-dot{width:26px;height:26px;border-radius:50%;flex:none;border:2px solid #AEB8B3;background:#F1F3F2;padding:0;position:relative;box-sizing:border-box}
.ch-dot::after{content:"";position:absolute;inset:-9px}
.ch-dot.done{background:var(--green);border-color:var(--green)}
.ch-dot.active{background:var(--plum-t);border:4px solid var(--plum)}
.ch-dot.blocked{background:var(--red-t);border:3px solid var(--red)}
.ch-dot.na{background:#fff;border-style:dashed}
.ch-dot[aria-pressed=true]{outline:3px solid #B5739B;outline-offset:2px}
.ch-dot-line{flex:1;height:2px;background:#CFD6D2;min-width:3px}
.ch-dot-round{width:2px;height:26px;background:var(--plum);margin:0 7px;flex:none}
.ch-now{align-items:center;justify-content:space-between;gap:8px;background:var(--plum-t);border-radius:8px;padding:8px 10px;color:var(--plum-d)}
.ch-now.blocked{background:var(--red-t);color:var(--red)}
.ch-now .lk-vis{border:0;margin:0;padding:0;font-size:12px;font-weight:700}
@container (max-width:560px){.ch-strip{display:none}.ch-dots,.ch-now{display:flex}}
.ch-editor{background:var(--plum-t);border:1px solid #EAD7E3;border-radius:10px;padding:12px 14px;margin-top:10px}
.ch-editor.blocked{background:#FDF4F4;border-color:#E3B9B9}
.ch-editor h3{margin:0;color:var(--plum);font-size:1.15rem}
.ch-editor.blocked h3{color:var(--red)}
.ch-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 10px}
.ch-sub{background:#fff;border-radius:8px;padding:8px 12px;margin:8px 0}
.ch-subhead{font-size:.92rem;color:var(--ink)}
.ch-info{background:#fff;border-radius:7px;padding:6px 9px;color:#3C4A52}
.ch-vis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #C9D2CD;border-radius:8px;overflow:hidden;margin-top:6px}
.ch-vis button{min-height:44px;border:0;border-inline-end:1px solid #C9D2CD;background:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:5px;padding:4px}
.ch-vis button:last-child{border-inline-end:0}
.ch-vis button[aria-checked=true]{box-shadow:inset 0 -3px 0 currentColor}
.ch-vis .vis-confidential[aria-checked=true]{background:#E9ECEE}.ch-vis .vis-targeted[aria-checked=true]{background:var(--blue-t)}.ch-vis .vis-constituency[aria-checked=true]{background:var(--green-t)}.ch-vis .vis-public[aria-checked=true]{background:var(--plum-t)}
@container (max-width:440px){.ch-vis{grid-template-columns:repeat(2,minmax(0,1fr))}.ch-vis button:nth-child(2){border-inline-end:0}.ch-vis button:nth-child(-n+2){border-bottom:1px solid #C9D2CD}}
.ch-gap{color:var(--amber);background:var(--amber-t);border-radius:7px;padding:5px 9px}
.ch-gap svg{vertical-align:-.2em}
.ch-actions{margin-top:8px;display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.ch-actions>.row{align-self:stretch}
.ch-actions ul{list-style:none;margin:0;padding:0;align-self:stretch}
.ch-actions li{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-bottom:1px solid var(--line-l);font-size:.88rem}
.ch-pos{gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid #EAD7E3;align-items:center}
.ch-blockedpanel{background:#fff;border-radius:8px;padding:10px 12px;margin:0 0 8px}
.ch-blockedpanel fieldset{border:0;margin:0;padding:0}
.ch-blockedpanel legend{font-weight:700;font-size:.92rem;margin-bottom:6px}
.ch-move{border:1px solid var(--line-l);border-radius:9px;padding:9px 11px;background:#fff}
.ch-move.primary{border:2px solid var(--plum);margin-top:6px}
.ch-setup{background:var(--amber-t);border-color:var(--amber-b);margin:0 0 8px}
.ch-public .ch-pubicon{width:36px;height:36px;border-radius:8px;background:var(--plum-t);color:var(--plum);display:flex;align-items:center;justify-content:center;flex:none}
.chain .btn[disabled]{opacity:.5;cursor:not-allowed}
.chain .icon-btn.sm{width:32px;height:32px;border-color:var(--line);color:var(--muted);background:#fff}
.chain .icon-btn.sm:hover,.chain .icon-btn.sm:focus-visible{color:var(--plum);border-color:var(--plum)}
.chain .icon-btn.sm svg{width:16px;height:16px}
.ch-blockedpanel [data-blocker][aria-pressed=true]{background:var(--red);border-color:var(--red);color:#fff}
/* ---- I need help now ---- */
.helpnow{border:2px solid var(--red);background:var(--red-t);border-radius:12px;padding:12px 14px;margin:10px 0}
.helpnow .hn-head{display:flex;gap:10px;align-items:flex-start}.helpnow .hn-head svg{color:var(--red);flex:none;margin-top:3px}
.helpnow h3{margin:0;color:var(--red);font-size:1.05rem}.helpnow h4{margin:10px 0 2px;font-size:.95rem}
.helpnow .hn-head p{margin:2px 0 0}
.hn-calls{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px;margin:10px 0 4px}
.hn-call{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 10px;border-radius:9px;background:#fff;border:1px solid var(--red);color:var(--ink);text-decoration:none;min-height:44px}
.hn-call b{font-size:1.25rem;color:var(--red);line-height:1.1}.hn-call span{font-size:12px;line-height:1.25}
.hn-cat{border-top:1px solid rgba(0,0,0,.08);margin-top:8px;padding-top:4px}
.hn-orgs{list-style:none;padding:0;margin:0}.hn-orgs li{padding:5px 0;border-bottom:1px dashed rgba(0,0,0,.08)}
.hn-tel{font-weight:700;white-space:nowrap}
.search-results .sr-help{color:var(--red)}.search-results button.sr-helpbtn{border-inline-start:3px solid var(--red);background:var(--red-t)}
.search-results button.sr-finder{font-weight:700;color:var(--plum)}
/* ---- plain words ---- */
button.pt{all:unset;cursor:help;text-decoration:underline dotted var(--plum-m);text-underline-offset:3px;text-decoration-thickness:1.5px;color:inherit}
button.pt:focus-visible{outline:2px solid var(--plum);outline-offset:1px;border-radius:2px}
/* ---- problem-first start ---- */
.ps-box{background:var(--plum-t);border-radius:12px;padding:12px 14px;margin-bottom:12px}
.ps-q{display:block;font-size:1.25rem;font-weight:800;color:var(--plum)}
.ps-box textarea{width:100%;font-size:16px;background:#fff}
.ps-eg{margin:8px 0 2px;display:flex;flex-wrap:wrap;gap:5px}.ps-eg .chip{cursor:pointer;background:#fff;border:1px solid var(--line)}
.ps-h{margin:12px 0 4px;color:var(--green)}.ps-stage{margin:14px 0 2px;color:var(--green)}
.ps-routes .item{background:#fff}
/* ---- route finder ---- */
.rf-weak{margin:12px 0;border:1px dashed var(--line);border-radius:10px;padding:6px 10px}.rf-weak summary{cursor:pointer;font-weight:700;padding:4px 0}
.rf-cases li{padding:3px 0}
/* ---- this week ---- */
.week{border-inline-start:4px solid var(--green);margin:12px 0}
.wk-row{padding:6px 0;border-bottom:1px solid var(--line-l);gap:6px;flex-wrap:wrap;align-items:center}
.wk-label{flex:1;min-width:160px;font-size:14px}
/* ---- several bodies ---- */
.b-res{margin:6px 0 0;max-height:220px;overflow:auto}.b-res li{padding:2px 0}
.chip-x{all:unset;cursor:pointer;font-weight:800;padding:0 3px;line-height:1}
.b-track td{vertical-align:middle}.b-track input[type=date]{min-width:130px}
/* ---- letters ---- */
.lt-to.on{outline:2px solid var(--green);border-radius:6px}
.lt-body{width:100%;font-family:inherit;font-size:14px;line-height:1.55;white-space:pre-wrap}
.lt-pre{white-space:pre-wrap;font-family:inherit;font-size:14px;line-height:1.55;margin:0}
/* ---- evidence files ---- */
.at-btn{white-space:nowrap}
.at-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-l);align-items:flex-start}
.at-thumb{flex:none;width:72px;height:72px;border-radius:8px;overflow:hidden;background:var(--line-l);display:flex;align-items:center;justify-content:center}
.at-thumb img{width:100%;height:100%;object-fit:cover}
.at-meta{flex:1;min-width:0}.at-meta .tiny{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-top:2px}
@container (max-width:520px){ .hn-calls{grid-template-columns:1fr 1fr} .wk-row .btn{margin-inline-start:auto} }
.b-track th:first-child,.b-track td:first-child{min-width:170px}.b-track td.small{white-space:nowrap}.b-track select{min-width:150px}
@container (max-width:560px){
  .b-track,.b-track tbody{display:block}.b-track thead{display:none}
  .b-track tr{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;padding:10px 0;border-bottom:1px solid var(--line-l);align-items:center}
  .b-track td{display:block;border:0!important;padding:0!important;min-width:0!important}
  .b-track td:first-child{grid-column:1/-1}.b-track select,.b-track input[type=date]{min-width:0;width:100%}
}
.pt-row{margin:2px 0 8px;display:flex;flex-wrap:wrap;gap:4px;align-items:baseline}
/* ---- links from planning boxes to tools ---- */
.pl-host{padding:0 14px 12px}.planner.collapsed .pl-host{display:none}
.pl-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;border-top:1px dashed var(--line);padding-top:8px;margin-top:4px}
.pl-lbl{font-size:12px;font-weight:700;color:var(--muted);margin-inline-end:2px}
.pl-field{display:flex;flex-wrap:wrap;gap:5px;margin:-4px 0 10px}
.pl-link{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:#fff;color:var(--green);border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:700;cursor:pointer;min-height:28px}
.pl-link:hover{background:var(--green-t);border-color:var(--green)}.pl-link svg{width:14px;height:14px}
.pl-link small{font-weight:600;color:var(--muted);font-size:11px;border-inline-start:1px solid var(--line);padding-inline-start:5px}
/* ---- gatekeeper finder, area tool ---- */
.gk-ctx{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin:8px 0}.gk-ctx svg{width:14px;height:14px;color:var(--muted)}
.gk-group{margin:14px 0 4px}.gk-group h4{margin:0 0 2px;color:var(--plum);font-size:1rem}
.gk-group.gk-hold h4{color:var(--ink)}
.gk-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.gk-item{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;justify-content:space-between;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff}
.gk-item.gk-missing{border-style:dashed;background:var(--soft)}
.gk-main{flex:1 1 240px;min-width:0}.gk-act{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.gk-why{margin-top:3px}.gk-why svg{width:11px;height:11px}
/* ---- suggested rows ---- */
.sg-strip{margin-top:10px}
.sg-box{border:1px solid var(--plum-m);background:var(--plum-t);border-radius:8px;padding:6px 10px}
.sg-box>summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:4px 0;list-style:none}.sg-box>summary::-webkit-details-marker{display:none}
.sg-box>summary svg{width:15px;height:15px;color:var(--plum)}
.sg-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:5px}
.sg-list li{display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:7px;padding:6px 8px}
.sg-main{flex:1 1 220px;min-width:0}.sg-act{display:flex;flex-wrap:wrap;gap:4px}
.sg-shared{margin:0 0 6px}.sg-shared svg{width:12px;height:12px}.sg-none svg{width:14px;height:14px}
/* ---- help inside planning boxes ---- */
.carry{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 8px;padding:5px 8px;border-radius:7px;background:var(--green-t);border:1px dashed var(--green)}
.carry svg{width:14px;height:14px;color:var(--green)}
.sees{display:flex;gap:6px;align-items:flex-start;margin:6px 0 2px;padding:5px 8px;border-radius:7px;font-size:.84rem;background:#F4F6F5}
.sees svg{width:14px;height:14px;flex:none;margin-top:2px}
.sees-ok{background:var(--green-t)}.sees-ok svg{color:var(--green)}.sees-warn{background:var(--amber-t)}.sees-warn svg{color:var(--amber)}.sees-info svg{color:var(--muted)}
.st-panel{margin-bottom:10px}.st-table{width:100%;border-collapse:collapse;font-size:.86rem;margin-top:6px}
.st-table th{text-align:start;vertical-align:top;padding:6px 8px 6px 0;width:22%;color:var(--muted);font-weight:700}.st-table td{vertical-align:top;padding:6px 6px;border-top:1px solid var(--line-l)}
.st-table th{border-top:1px solid var(--line-l)}
@media (max-width:640px){.st-table,.st-table tbody,.st-table tr,.st-table th,.st-table td{display:block;width:auto}.st-table th{border:0;padding-bottom:0}}
.jt{margin-inline-start:4px;vertical-align:middle}
.ex{margin:-4px 0 8px}.ex>summary{cursor:pointer;font-size:.84rem;color:var(--green);font-weight:700}.ex p{margin:4px 0;padding:6px 8px;background:var(--soft);border-radius:7px}
/* ---- media list, committee members, unopened boxes ---- */
.media-dir{border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin:8px 0;background:#fff}.media-dir>summary{cursor:pointer;display:flex;gap:6px;align-items:center}
.media-dir>summary svg{width:15px;height:15px;color:var(--plum)}.media-dir h5{margin:10px 0 4px;color:var(--plum)}
.media-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px}
.media-list li{border:1px solid var(--line-l);border-radius:7px;padding:6px 8px}.media-list a{word-break:break-all}
.members>summary{cursor:pointer}.cols2{columns:2 200px;column-gap:16px}.cols2 li{break-inside:avoid;margin:2px 0}
.ug-list li{margin:4px 0}

/* ---------------------------------------------------------------- Interests & ownership map (js/tools/netmap.js) */
.netmap .nm-controls{gap:6px 18px;align-items:flex-end;margin:4px 0}
.netmap .nm-controls .field,.netmap > .field{margin:4px 0}
.netmap .nm-help{margin:2px 0 8px}
.nm-types{border:0;padding:0;margin:6px 0;display:flex;flex-wrap:wrap;gap:4px 14px}
.nm-types legend{padding:0;margin-bottom:2px;width:100%}
.nm-checks{display:flex;flex-direction:column;gap:3px;margin:4px 0}
.nm-key{display:inline-block;width:12px;height:4px;border-radius:2px;flex:none}
.nm-key.round{width:11px;height:11px;border-radius:50%;vertical-align:-1px}
.nm-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:#F1F2F0;margin:4px 0 6px}
.nm-bar span{display:block;height:100%}
.nm-bar-linked{background:#3E4C53}
.nm-bar-solo{background:#7B8790}
.nm-bar-none{background:#C3C9CC}
.nm-bar-not{background:repeating-linear-gradient(135deg,#fff 0 3px,#C3C9CC 3px 4.5px);box-shadow:inset 0 0 0 1px #C3C9CC}
.nm-cov{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-wrap:wrap;gap:2px 14px}
.nm-cov li{display:inline-flex;gap:5px;align-items:center}
.nm-dot{display:inline-block;width:10px;height:10px;border-radius:3px}
.nm-legend{margin:6px 0 2px}
.nm-legend .glegend{margin:2px 0 4px}
.nm-legend .glegend b{color:var(--ink,#263c32);font-weight:600;margin-inline-end:2px}
.nm-focus{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.nm-panel{margin:10px 0}
.nm-detail h3{margin:2px 0 4px}
.nm-detail h4{margin:12px 0 4px}
.nm-tie{border-top:1px solid #EEF0EE;padding-top:6px;margin-top:6px}
.nm-tie p{margin:0 0 2px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.nm-path li{padding-bottom:3px}
.nm-step{display:inline}
.badge.deg1{background:#3E4C53;color:#fff}
.badge.deg2{background:#DCE1E3;color:#263c32}
.badge.deg3{background:#fff;color:#263c32;box-shadow:inset 0 0 0 1px #9AA3A8}

/* ---------------------------------------------------------------- Civic spaces: boundaries and bookmarks */
.smap-admin path{fill:none;stroke:#6C4379;stroke-opacity:.7;vector-effect:non-scaling-stroke;pointer-events:none}
.smap-admin path.gov{stroke-width:2}
.smap-admin path.qada{stroke-width:1.3}
.smap-admin path.muni{stroke-width:.7;stroke-opacity:.55}
.smap.street .smap-admin path{stroke-opacity:.9}
.smap-adlab text{font:600 11px Carlito,Calibri,Arial,sans-serif;fill:#4E1F3D;paint-order:stroke;stroke:#fff;stroke-width:3px;pointer-events:none}
.smap-adlab text.gov{font-size:13px;letter-spacing:.02em}
.smap-adlab text.muni{font-size:10px;font-weight:400}
.sp-admin{display:inline-flex;align-items:center;gap:5px}
.sp-admin svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.sp-admin select{width:auto}
.sp-bm[aria-pressed=true]{color:#8A5A00;border-color:#E8C88F;background:#FFF4E2}
.sp-bm[aria-pressed=true] svg{fill:currentColor}

/* select all / deselect all for a group of map filters */
.allnone{display:inline-flex;gap:5px;align-items:center;font-size:12px;font-weight:400;color:var(--muted)}
.allnone .linkbtn{font-size:12px}

/* full tour: a progress bar instead of one dot per step, and the tool's how-to list */
.tour-bar{height:4px;border-radius:2px;background:var(--line-l);overflow:hidden}
.tour-bar span{display:block;height:100%;background:var(--plum)}
.tour-list{margin:4px 0 0;padding-inline-start:18px;font-size:.9rem}
.tour-list li{margin:2px 0}
.tour-card #tour-body{max-height:min(46vh,340px);overflow:auto}

/* ---------- insight tools: radar, proof, media, gaps, due, precedent, parties, connect, trace, leverage, dossier ---------- */
.ins-tiles{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.ins-tile{flex:1 1 120px;min-width:110px;text-align:start;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);padding:8px 10px;display:flex;flex-direction:column;gap:0;line-height:1.2}
.ins-tile b{font-size:1.5rem;color:var(--plum)}
.ins-tile span{font-size:.82rem;color:var(--muted)}
.ins-tile.bad b{color:var(--red)}.ins-tile.good b{color:var(--st-good)}.ins-tile.muted b{color:var(--muted)}
.ins-tile:hover{border-color:var(--plum-m)}
.ins-tile.on{background:var(--plum-t);border-color:var(--plum)}
.ins-load{color:var(--amber)}
.ins-bad{color:var(--red)}
.ins-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--line-l);margin:6px 0}
.ins-seg{min-width:3px}
.ins-seg.good{background:var(--st-good)}.ins-seg.part{background:var(--st-part)}.ins-seg.bad{background:var(--st-bad)}.ins-seg.muted{background:var(--st-muted)}.ins-seg.prog{background:var(--cm-prog)}
.ins-chainrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ins-dots{display:inline-flex;gap:3px}
.ins-dots i{width:14px;height:14px;border-radius:3px;background:var(--st-muted);display:block}
.ins-dots i.good{background:var(--st-good)}.ins-dots i.part{background:var(--st-part)}.ins-dots i.bad{background:var(--st-bad)}.ins-dots i.muted{background:repeating-linear-gradient(45deg,#d4d9d6,#d4d9d6 3px,#eef1ef 3px,#eef1ef 6px)}
.ins-stops{display:flex;flex-wrap:wrap;gap:6px}
.ins-chain{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column;gap:0}
.ins-step{display:grid;grid-template-columns:130px 1fr;gap:10px;padding:8px 10px;border-inline-start:5px solid var(--st-muted);background:var(--soft);position:relative}
.ins-step+.ins-step{margin-top:2px}
.ins-step.good{border-color:var(--st-good)}.ins-step.part{border-color:var(--st-part)}.ins-step.bad{border-color:var(--st-bad);background:var(--red-t)}.ins-step.muted{border-style:dashed}
.ins-step-n{font-weight:600;display:flex;flex-direction:column;line-height:1.2}
.ins-step-n small{font-weight:400;color:var(--muted);font-size:.78rem}
.ins-step p{margin:0 0 3px}
@media (max-width:560px){.ins-step{grid-template-columns:1fr;gap:2px}}
.ins-picker{position:relative;max-width:420px}
.ins-hits{position:absolute;inset-inline:0;top:100%;z-index:20;list-style:none;margin:2px 0 0;padding:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);max-height:300px;overflow:auto}
.ins-hits button{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:start;border:0;background:none;padding:6px 10px;gap:0;line-height:1.25}
.ins-hits button:hover,.ins-hits button:focus{background:var(--plum-t)}
.ins-hits small{color:var(--muted);font-size:.78rem}
.ins-owners{list-style:none;padding:0;margin:6px 0}
.ins-owner{padding:6px 0;border-bottom:1px solid var(--line-l)}
.srcchip{display:inline-block;font-size:.78rem;border:1px solid var(--line);border-radius:10px;padding:0 7px;background:var(--soft);color:var(--ink);text-decoration:none;margin:1px 2px 1px 0}
a.srcchip{color:var(--plum)}
.badge.warn{background:var(--amber-t);color:var(--amber)}
.ins-bar.tall{height:18px;border-radius:6px}
.ins-legend{list-style:none;margin:8px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 14px}
.ins-legend li{display:flex;gap:6px;align-items:flex-start}
.ins-legend .swatch{margin-top:.45em;flex:none}
.ins-legend summary{cursor:pointer}
.swatch{display:inline-block;width:.8em;height:.8em;border-radius:2px}
.ins-tablewrap{overflow-x:auto;margin:6px 0}
.ins-table{border-collapse:collapse;width:100%;font-size:.92rem}
.ins-table th,.ins-table td{text-align:start;padding:5px 8px;border-bottom:1px solid var(--line-l);vertical-align:top}
.ins-table th{font-weight:600;color:var(--muted);font-size:.82rem;white-space:nowrap}
.ins-table tbody tr:hover{background:var(--soft)}
.ins-pickrow{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}
.ins-pickcol{flex:1 1 240px;min-width:200px}
.ins-swap{margin-top:1.5rem}
.ins-path{margin:8px 0}
.ins-node{display:inline-block;padding:3px 8px;background:var(--plum-t);border-radius:6px}
.ins-hop{display:flex;gap:8px;padding:2px 0 2px 10px;border-inline-start:2px solid var(--plum-m);margin:3px 0 3px 12px}
.ins-arrow{color:var(--plum);font-weight:700;line-height:1.4}
.ins-hopbody{flex:1;min-width:0}

.pop-rel{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;width:100%;margin-top:4px;padding-top:6px;border-top:1px dashed var(--line)}

/* ---------------------------------------------------------------- Unions and Syndicates (js/tools/unions.js) */
.un .un-status{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px;margin:10px 0}
.un-st{border:1px solid var(--line-l);border-radius:8px;padding:6px 9px;background:var(--soft);font-size:12.5px;line-height:1.35}
.un-st small{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.un-st.warn{background:var(--amber-t);border-color:var(--amber-b)}
.un-ar{font-family:var(--font-ar);line-height:1.75;margin:4px 0;white-space:pre-line}
.un-dl{margin:6px 0}.un-dl dt{font-weight:700;font-size:13px;margin-top:8px}.un-dl dd{margin:2px 0 0;margin-inline-start:0}
.un-cols{columns:2 260px;column-gap:18px}.un-cols li{break-inside:avoid;margin-bottom:4px}
.un-facts li{margin-bottom:6px}
.un-sec{border-top:1px solid var(--line-l);margin-top:14px;padding-top:4px}
.un-fedlist{display:grid;gap:8px}.un-fed{padding:10px 12px}.un-fed details summary{cursor:pointer;margin-top:4px}
.un-arts{padding:0}.un-arts>li{border-top:1px solid var(--line-l);padding:8px 0}
.un-plist{margin:8px 0;border-top:1px solid var(--line-l);padding-top:6px}.un-plist summary{cursor:pointer}
.un-pgroup{margin:10px 0}.un-pgroup h4{margin:6px 0}
.un-cov td{vertical-align:top}.un-cov .ins-bar{min-width:8em}
.un blockquote{border-inline-start:3px solid var(--line);margin:6px 0;padding:4px 10px;color:#3C4A52;background:var(--soft)}
.un-fams{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin:10px 0}
.un-fam{padding:10px 12px;margin:0}.un-fam ul{margin:6px 0 0}.un-fam li{margin-bottom:3px}
.un-famhead{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:transparent;padding:0;text-align:start;font-size:14px;color:var(--ink);cursor:pointer}
.un-famhead:hover b{text-decoration:underline}
.un-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.un-bars li{margin:2px 0}
.un-barrow{display:grid;grid-template-columns:minmax(0,11em) 1fr 2.6em;align-items:center;gap:8px;width:100%;border:0;background:transparent;padding:3px 0;font-size:13px;text-align:start;color:var(--ink);cursor:pointer}
.un-barrow i{display:block;height:9px;border-radius:4px;background:#6E89BF}.un-barrow b{text-align:end;font-size:12px}
.un-barrow:hover span{text-decoration:underline}
.un-netpanel{margin-top:8px}.un-netpanel h3{font-size:1rem;margin:4px 0}
/* Universities and Higher Education (js/tools/higher.js); shares the .un-* rules of Unions and Syndicates */
.he-mapslot{margin:8px 0}
.he-acts>li{border-top:1px solid var(--line-l);padding:6px 0}.he-acts>li:first-child{border-top:0}
.he-body{padding:10px 12px;margin:8px 0}.he-body b{display:block;margin-bottom:4px}
.he-progs .un-barrow{grid-template-columns:minmax(0,1fr) 30% 2.6em}
.he-stats th:first-child,.he-stats td:first-child{position:sticky;inset-inline-start:0;background:var(--panel);min-width:12em}
.he-stats tr.he-total th{border-top:2px solid var(--line)}
.he .badge{white-space:normal;max-width:100%;overflow-wrap:anywhere}
.sp-legcamp{display:inline-flex;align-items:center;gap:5px;font-weight:600;margin-inline-start:6px}.sp-legnote{flex-basis:100%}

/* political links under an officeholder name (js/leader-links.js) */
.pol-link { min-width: 15em; max-width: 34em; margin-top: 2px; }
.pol-link .badge { white-space: normal; display: inline-block; max-width: 100%; text-align: start; margin: 1px 0; }
.pol-link details p, .pol-link details ul { margin: 2px 0; }

/* officeholders and leaders (js/people.js, js/leader-links.js) */
.pchip { display: inline-block; max-width: 100%; white-space: normal; margin: 1px 2px 1px 0; padding: 1px 7px; border-radius: 10px; background: #F3E9EF; border: 1px solid #E2CCDA; color: #4A2440; }
.pchip b { font-weight: 700; }
.pchip.past { background: #F1F3F4; border-color: #D8DDE0; color: #55626B; }
.pchip.ind { background: #EAF3EC; border-color: #CFE3D4; color: #234B3B; }
.pol-link { min-width: 14em; max-width: 34em; margin-top: 2px; }
.ppl-parties { margin-top: 14px; }
.sec-index { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0 4px; }
.sec-index .chip { font-size: .78rem; }
details.about-data.mini { margin: 4px 0 8px; }
details.about-data.mini > summary { font-size: .8rem; color: var(--muted, #55626B); cursor: pointer; }
/* the "More" tab menu */
.subtabs .tabmore { position: relative; display: inline-block; }
.subtabs .tabmore > summary { list-style: none; cursor: pointer; padding: 6px 12px; border-radius: 8px 8px 0 0; font-weight: 600; font-size: .85rem; }
.subtabs .tabmore > summary::-webkit-details-marker { display: none; }
.subtabs .tabmore.on > summary { background: var(--plum, #722F5A); color: #fff; }
.subtabs .tabmore .tabmore-menu { position: absolute; z-index: 20; inset-inline-start: 0; top: 100%; min-width: 210px; display: flex; flex-direction: column; gap: 2px; padding: 6px; background: var(--card, #fff); border: 1px solid #D8DDE0; border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.subtabs .tabmore .tabmore-menu [role=tab] { text-align: start; }
/* officeholder tables become cards on a phone */
@media (max-width: 640px) {
  table.data.ppl, table.data.ppl tbody, table.data.ppl tr, table.data.ppl td { display: block; width: 100%; }
  table.data.ppl thead { display: none; }
  table.data.ppl tr { border: 1px solid #E3E6E8; border-radius: 8px; margin: 0 0 8px; padding: 6px 8px; }
  table.data.ppl td { border: 0; padding: 2px 0; }
  table.data.ppl td[data-label]:not(:first-child)::before { content: attr(data-label) ": "; font-weight: 600; color: var(--muted, #55626B); }
  .pol-link { min-width: 0; }
}

/* Political landscape (js/tools/parties.js) */
.pl .subtabs{margin:8px 0 12px}
.pl-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:0 0 12px}
.pl-tile{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:8px;background:var(--panel);border:1px solid var(--line-l);text-align:start;color:var(--ink)}
.pl-tile b{font-size:24px;line-height:1.1}.pl-tile span{font-size:12px;color:var(--muted)}
.pl-tiles.sm{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:6px;margin:8px 0 4px}
.pl-tiles.sm .pl-tile{padding:7px 9px;cursor:pointer;font:inherit}.pl-tiles.sm .pl-tile b{font-size:18px;min-height:20px}
.pl-tiles.sm .pl-tile:hover:not(:disabled){border-color:var(--plum-m)}.pl-tile.empty{background:var(--soft);cursor:default}
.pl-two{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:14px;align-items:start}
.pl-two>section>.card{margin-bottom:12px}
.pl-chamber h4,.pl-reach h4{margin-top:0}
.pl-chamber.wide{display:grid;grid-template-columns:minmax(240px,420px) minmax(0,1fr);gap:18px;align-items:center;margin-bottom:12px}
.pl-hemi{display:block;width:100%;max-width:460px;height:auto;margin:0 auto}
.pl-seat{cursor:pointer;stroke:#fff;stroke-width:1.5}.pl-seat:hover{stroke:var(--ink);stroke-width:2}
.pl-seat.vacant{stroke:#9AA3A8;stroke-width:1.5;stroke-dasharray:2 2}
.pl-hemi-n{font-size:26px;font-weight:700;fill:var(--ink)}.pl-hemi-s{font-size:11px;fill:var(--muted)}
.pl .swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-inline-end:5px;vertical-align:-1px;flex:none}
.pl-legend{list-style:none;margin:8px 0 2px;padding:0;display:flex;flex-wrap:wrap;gap:2px 12px;font-size:12px}
.pl-legend li{display:flex;align-items:center}.pl-legend b{margin-inline-start:4px;font-weight:700}
.pl-leg{display:flex;align-items:center;border:1px solid transparent;background:transparent;border-radius:6px;padding:1px 5px;font-size:12px;cursor:pointer;color:var(--ink)}
.pl-leg:hover{border-color:var(--line)}.pl-leg.on{border-color:var(--ink);background:var(--soft)}
.pl-matrix th,.pl-matrix td{text-align:center;padding:3px 4px}.pl-matrix thead th{font-size:11px;font-weight:700;vertical-align:bottom;line-height:1.2;min-width:58px}
.pl-matrix tbody th{text-align:start;font-weight:400;white-space:normal;min-width:9em;background:var(--panel);color:var(--ink);position:static}
.pl-cell{display:block;width:100%;min-width:38px;min-height:26px;border:0;border-radius:4px;font-weight:700;font-size:13px;cursor:pointer}
.pl-cell sup{font-size:9px;margin-inline-start:2px;font-weight:400}.pl-cell:hover,.pl-cell:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
.pl-blank{background:transparent}
.pl-stack{display:flex;gap:2px;height:14px;margin:4px 0}.pl-stack span{min-width:3px}
.pl-stack span:first-child{border-start-start-radius:4px;border-end-start-radius:4px}.pl-stack span:last-child{border-start-end-radius:4px;border-end-end-radius:4px}
.pl-comms li{padding:8px 0;border-bottom:1px solid var(--line-l)}.pl-comm-roles{margin-top:2px}
.pl-share{display:inline-block;width:70px;height:8px;border-radius:4px;background:var(--line-l);vertical-align:middle;overflow:hidden}.pl-share i{display:block;height:100%;background:#3987e5;border-radius:4px}
.pl-list li{margin:4px 0}
.pl-tip{position:fixed;z-index:90;max-width:280px;padding:5px 8px;border-radius:6px;background:var(--ink);color:#fff;font-size:12px;line-height:1.35;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.pl-tip[hidden]{display:none}
@media (max-width:900px){.pl-two,.pl-chamber.wide{grid-template-columns:1fr}}

/* Foreign and international actors (js/tools/foreign.js): reuses the .un-* rules; amounts need a wider last column */
.fr .fr-money .un-barrow{grid-template-columns:minmax(0,13em) 1fr 9.5em}
.fr .fr-money .un-barrow b{white-space:nowrap}
.fr .un-barrow[aria-pressed="true"] span{font-weight:700}
.fr .un-famhead .swatch{display:inline-block;width:10px;height:10px;border-radius:50%;margin-inline-end:4px;vertical-align:middle}
@media (max-width:520px){.fr .fr-money .un-barrow{grid-template-columns:minmax(0,8.5em) 1fr 8em;gap:6px}.fr .fr-money .un-barrow b{font-size:11px}}

/* Political relationships (js/tools/politrel.js, js/political.js; also the Alignments tab in Political landscape) */
.pr-grid th[scope=row]{text-align:start;min-width:11em;font-weight:400}
.pr-grid thead th{min-width:9em;vertical-align:bottom;font-size:12px}
.pr-grid td{vertical-align:top}
.pr-cell{display:block;margin:2px 0;padding:3px 6px;border-radius:6px;font-size:12px;line-height:1.3;border-inline-start:3px solid #9AA3A8;background:var(--soft)}
.pr-cell.pr-nom{border-color:#2a78d6}.pr-cell.pr-end,.pr-cell.pr-dec{border-color:#6da7ec}.pr-cell.pr-gov,.pr-cell.pr-yes{border-color:#1baf7a}.pr-cell.pr-no{border-color:#e34948}
.pr-cell .pr-mini{font-size:10px;padding:0 4px;margin-inline-start:2px}
.pr-cols{columns:2 16em;column-gap:18px}.pr-cols li{break-inside:avoid}
.pr-bloc{margin:6px 0;padding:6px 10px}.pr-bloc summary{cursor:pointer}
.pr-timeline{border-inline-start:2px solid var(--line);padding-inline-start:12px}.pr-timeline .pr-tl{margin-bottom:8px}
.pr-target{margin:4px 0 8px}.pr-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.pr-moments .reflink.on{font-weight:700}
.pr-grid thead th,.pr-grid th[scope=row]{background:var(--panel);color:var(--ink);border-bottom:1px solid var(--line)}
.pr-grid thead th{background:var(--soft)}
.pr-grid th[scope=row] .reflink{font-weight:600}
.pr-src{display:inline-flex;vertical-align:middle;margin-inline-start:3px;color:var(--muted)}.pr-src svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}

/* Lebanon Network Map (js/tools/lbmap.js) */
.lm-grid { display: grid; grid-template-columns: 250px minmax(0, 1fr) 280px; gap: 14px; align-items: start; margin-top: 10px; }
.lm-grid > aside { position: sticky; top: 8px; max-height: calc(100vh - 24px); overflow: auto; }
.lm-filters { padding: 10px 12px; }
.lm-filters summary { cursor: pointer; }
.lm-h { margin: 12px 0 4px; font-size: .82rem; font-weight: 700; color: var(--ink-2, #3D4A52); }
.lm-chk { display: flex; align-items: center; gap: 6px; font-size: .84rem; padding: 2px 0; cursor: pointer; }
.lm-chk > span:first-of-type { flex: 1; display: inline-flex; align-items: center; gap: 6px; }
.lm-chk.muted { opacity: .7; }
.lm-chk .swatch, .lm-panel .swatch, .lm .plain .swatch { display: inline-block; width: 10px; height: 10px; border-radius: 2px; flex: none; }
.lm-panel { padding: 12px; }
.lm-panel h3 { font-size: 1rem; margin: 4px 0 6px; }
.lm-ties li { padding: 3px 0; border-bottom: 1px solid var(--line, #E3E1DA); }
.lm-paths li { margin: 0 0 8px; line-height: 1.7; }
@media (max-width: 1100px) { .lm-grid { grid-template-columns: 220px minmax(0, 1fr); } .lm-grid > .lm-panel { grid-column: 1 / -1; position: static; } }
@media (max-width: 760px) { .lm-grid { grid-template-columns: minmax(0, 1fr); } .lm-grid > aside { position: static; max-height: none; } .lm-filters:not([open]) { padding-block: 8px; } }
/* Lebanon Network Map: filter groups, quick views, finding a record */
.lm-fcount { margin: 4px 0 6px; }
.lm-fg { border-top: 1px solid var(--line, #E3E1DA); padding: 6px 0 4px; }
.lm-fg > summary { cursor: pointer; display: flex; align-items: baseline; gap: 6px; list-style: none; }
.lm-fg > summary::-webkit-details-marker { display: none; }
.lm-fg > summary::before { content: '▸'; font-size: .7rem; color: var(--muted, #6B7479); transition: transform .15s; }
.lm-fg[open] > summary::before { transform: rotate(90deg); }
.lm-fg > summary .lm-h { margin: 0; }
.lm-allnone { display: flex; gap: 12px; margin: 2px 0 4px; }
.lm-allnone .reflink[disabled] { color: var(--muted, #6B7479); text-decoration: none; cursor: default; opacity: .6; }
.lm-quick { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0; }
.lm-quick .chip[aria-pressed="true"] { background: var(--plum, #722F5A); color: #fff; border-color: var(--plum, #722F5A); }
.lm-find { min-width: min(320px, 100%); flex: 1 1 260px; }
.lm-findmsg:empty { display: none; }
.gnode.match .glabel { opacity: 1; }
.gnode.match circle, .gnode.match rect:not(.x), .gnode.match polygon, .gnode.match path { stroke: #E24B4A; stroke-width: 3; }
.gnode.found circle, .gnode.found rect:not(.x), .gnode.found polygon, .gnode.found path { animation: lm-found .65s ease-in-out 4; }
@keyframes lm-found { 50% { stroke: #E24B4A; stroke-width: 7; } }
@media (prefers-reduced-motion: reduce) { .gnode.found circle, .gnode.found rect, .gnode.found polygon, .gnode.found path { animation: none; stroke: #E24B4A; stroke-width: 5; } }
/* "On the Lebanon Network Map" on every profile (js/entity.js networkBlock, js/tools/lbmap.js networkHtml) */
.net-block { border-top: 1px solid var(--line, #E3E1DA); margin-top: 12px; padding-top: 6px; }
.net-block h4 { margin: 4px 0 6px; }
.net-row { display: flex; gap: 12px; align-items: flex-start; }
.net-mini { flex: none; width: 120px; height: 120px; }
.net-body { min-width: 0; flex: 1; }
.net-body p { margin: 0 0 4px; }
.net-fams { display: flex; flex-wrap: wrap; gap: 4px 10px; color: var(--muted, #6B7479); }
.net-fams span { display: inline-flex; align-items: center; gap: 4px; }
.net-fams .swatch { width: 9px; height: 9px; }
.net-top li { padding: 2px 0; }
@media (max-width: 480px) { .net-row { flex-direction: column; } .net-mini { width: 96px; height: 96px; } }
/* Lebanon Network Map: kinds of link and of record as parents with sub-categories */
.lm-par { display: flex; align-items: center; gap: 2px; }
.lm-par > .lm-chk { flex: 1; min-width: 0; }
.lm-twist { flex: none; border: 0; background: transparent; padding: 2px 4px; border-radius: 6px; color: var(--muted, #6B7479); cursor: pointer; line-height: 0; }
.lm-twist:hover, .lm-twist:focus-visible { background: var(--soft, #F1EFE8); color: var(--ink, #24323A); }
.lm-twist svg { width: 14px; height: 14px; transition: transform .15s; fill: none; stroke: currentColor; stroke-width: 2; }
.lm-twist[aria-expanded="true"] svg { transform: rotate(90deg); }
[dir="rtl"] .lm-twist[aria-expanded="false"] svg { transform: rotate(180deg); }
.lm-subs { margin: 0 0 6px; padding-inline-start: 22px; border-inline-start: 2px solid var(--line, #E3E1DA); margin-inline-start: 7px; }
.lm-subs .lm-chk { font-size: .8rem; }
.lm-shared { display: inline-flex; color: var(--plum, #722F5A); }
.lm-shared svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2; }
/* "Foreign support received" on profiles (js/entity.js supportBlock, js/tools/lbmap.js supportHtml) */
.sup-block { border-top: 1px solid var(--line, #E3E1DA); margin-top: 12px; padding-top: 6px; }
.sup-block:empty { display: none; }
.sup-block h4 { margin: 4px 0 6px; }
.sup-group { margin: 4px 0; }
.sup-group > summary { cursor: pointer; display: flex; align-items: center; gap: 6px; padding: 2px 0; }
.sup-list li { display: flex; flex-direction: column; gap: 1px; padding: 5px 0; border-bottom: 1px solid var(--line, #E3E1DA); }
.sup-list li:last-child { border-bottom: 0; }
.sup-who { font-weight: 600; }
/* Stage 2: map views shown as pictures, with a button over each point (js/pictures.js) */
.pic{margin:0}.pic-view{position:relative}.pic-base{display:block;width:100%;height:auto;border-radius:8px;border:1px solid var(--line,#d9dee0)}
/* a zoomable picture: the layer is the zoom-1 picture, moved and scaled; sharper squares are laid over it */
.pic.zoomable .pic-view{overflow:hidden;border:1px solid var(--line-l);border-radius:10px;background:#FBFCFB;touch-action:none;cursor:grab;outline:none}
.pic.zoomable .pic-view:focus-visible{box-shadow:0 0 0 3px rgba(114,47,90,.35)}
.pic-view.panning{cursor:grabbing}
.pic.zoomable .pic-layer{position:absolute;left:0;top:0;transform-origin:0 0}
.pic.zoomable .pic-base{width:100%;height:100%;border:0;border-radius:0;user-select:none}
.pic-tiles{position:absolute;inset:0;pointer-events:none}.pic-tile{position:absolute;max-width:none;opacity:0;transition:opacity .15s;user-select:none}.pic-tile.in{opacity:1}.pic-tile.blank{background:#FBFCFB}
.pic-links{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.pic-imgs{position:relative}.pic.zoomable .pic-imgs{position:absolute;inset:0}
.pic.picking .pic-imgs{opacity:.45}
.pic.zoomable .pic-pt{min-width:0;width:max(calc(var(--r) * 2),calc(16px / var(--ps,1)))}
.pic.zoomable .pic-pt.on{outline:calc(3px / var(--ps,1)) solid var(--plum,#722F5A);outline-offset:calc(2px / var(--ps,1))}
.pic.zoomable .pic-pt.nb{outline:calc(2px / var(--ps,1)) solid #B5739B}
.pic-card{border:1px solid var(--line-l);border-radius:10px;padding:8px 12px;margin-top:6px;background:#fff}
.pic-card-h{margin:0 0 4px}.pic-nb{display:flex;flex-wrap:wrap;gap:2px 14px;list-style:none;padding:0;margin:4px 0 8px;max-height:150px;overflow:auto}
.pic-hot{position:absolute;inset:0}.pic-pt{position:absolute;transform:translate(-50%,-50%);aspect-ratio:1;min-width:14px;border:0;padding:0;border-radius:50%;background:transparent;cursor:pointer}
.pic-pt:hover,.pic-pt:focus-visible{outline:2px solid var(--plum,#722F5A);outline-offset:1px}

/* ---------- the report (js/report.js): add-to-report buttons, the report panel, and the views in its PDF ---------- */
.tool-tabs-end{margin-inline-start:auto;display:flex;gap:6px;align-self:center;padding:0 0 6px 10px;position:sticky;inset-inline-end:0;background:var(--soft)}
.tool-tabs-end .btn{white-space:nowrap}
.x-rp-n{display:inline-block;min-width:1.4em;padding:0 .35em;border-radius:99px;background:var(--plum,#722F5A);color:#fff;font-size:.78em;line-height:1.5;text-align:center}
@media (max-width:1100px){.tool-tabs-end [data-rp-open] span:not(.x-rp-n){display:none}}
@media (max-width:560px){#x-rp-add span,#x-rp span:not(.x-rp-n){display:none}}
.rp-list{list-style:none;margin:12px 0;padding:0;display:grid;gap:10px}
.rp-item{display:grid;grid-template-columns:112px 1fr;gap:12px;align-items:start;padding:10px;border:1px solid var(--line-l,#e3e5de);border-radius:8px;background:#fff}
.rp-thumb{width:112px;height:84px;object-fit:contain;border:1px solid var(--line-l,#e3e5de);border-radius:6px;background:#fcfcfa;display:flex;align-items:center;justify-content:center;color:var(--muted,#56675c)}
.rp-body{min-width:0}
.rp-body p{margin:2px 0 6px;overflow-wrap:anywhere}
.rp-body textarea{width:100%;box-sizing:border-box;font:inherit;font-size:.9rem;padding:6px 8px;border:1px solid var(--line,#cfd3c8);border-radius:6px;resize:vertical}
.rp-acts{gap:6px;margin-top:6px;flex-wrap:wrap}
.rp-acts a.btn{text-decoration:none}
.rp-empty{padding:18px;border:1px dashed var(--line,#cfd3c8);border-radius:8px;text-align:center;color:var(--muted,#56675c)}
.rp-foot{gap:8px;margin-top:10px;flex-wrap:wrap}
@media (max-width:560px){.rp-item{grid-template-columns:1fr}.rp-thumb{width:100%;height:140px}}
.pdfdoc .rp-meta{font-size:9.5pt;color:#55626B;margin:-2pt 0 6pt}
.pdfdoc .rp-filters{font-size:10pt;background:#F6F1F4;border-inline-start:3pt solid #722F5A;padding:4pt 8pt}
.pdfdoc .rp-fig{margin:6pt 0 4pt}
.pdfdoc .rp-fig img{max-height:430px;width:auto;max-width:100%;border:.5pt solid #D6D6D6}
.pdfdoc .rp-legend{font-size:8.5pt;color:#24323A;display:flex;flex-wrap:wrap;gap:3pt 10pt;margin:0 0 8pt}
.pdfdoc .rp-legend span{display:inline-flex;align-items:center;gap:4pt}
.pdfdoc .rp-legend i{display:inline-block;width:9pt;height:9pt}
.pdfdoc .rp-legend i.ci{border-radius:50%}
.pdfdoc .rp-legend i.ln{width:14pt;height:0}
.pdfdoc .rp-link{font-size:9.5pt;overflow-wrap:anywhere;margin-bottom:2pt}
.pdfdoc .rp-muted{color:#55626B}
.sheet.cover .rp-lic{margin-top:10pt;font-size:9pt}
/* Network Map: filters greyed out over a picture view (they do not change it) */
.lm-dim{opacity:.5;filter:grayscale(.6)}
.lm-picnote{display:flex;gap:6px;align-items:flex-start;background:var(--green-t,#eef5f1);border-radius:8px;padding:6px 8px;margin:0 0 6px}
.lm-picnote svg{width:14px;height:14px;flex:none;margin-top:2px}
/* 2022 Political Change (js/tools/change22.js) */
.c22-tiles{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.c22-tile{flex:1 1 150px;min-width:130px;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);padding:8px 10px;display:flex;flex-direction:column;line-height:1.25}
.c22-tile b{font-size:1.5rem;color:var(--green)}
.c22-tile span{font-size:.85rem}
.c22-tile small{font-size:.75rem;color:var(--muted)}
.c22-hubs{margin:0;padding-inline-start:1.4em}
.c22-hubs li{margin:2px 0}
.c22-caution{color:var(--amber);font-style:italic}
.c22-rels li{margin:0 0 8px}
.c22-matrix td,.c22-matrix th{white-space:nowrap}
.c22-yes{color:var(--green);font-weight:700}
.e22-block{border-top:1px solid var(--line,#E3E1DA);margin-top:12px;padding-top:6px}
.e22-block:empty{display:none}
.e22-block h4{margin:4px 0 6px}

/* Accountability system (2026-10-30): Start here cards, grouped routes, numbered steps, body search, grouped panel; on a
   phone the route opens on its steps, the map is one tap away and a picked step opens in a sheet at the bottom */
.sys-rcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:6px 0 14px}
.sys-rcard{display:flex;flex-direction:column;gap:3px;width:100%;height:100%;text-align:start;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;cursor:pointer;color:var(--ink);font:inherit}
.sys-rcard b{color:var(--plum);font-size:14.5px}
.sys-rcard.mine{border:2px solid var(--plum-m)}
.sys-rcard:hover,.sys-rcard:focus-visible{border-color:var(--plum)}
.sys-rmeta{margin-top:auto;padding-top:4px;color:var(--plum);display:flex;align-items:center;gap:3px}
.sys-rmeta svg{width:12px;height:12px}
[dir=rtl] .sys-rmeta svg{transform:scaleX(-1)}
.sys-unres{display:flex;gap:8px;align-items:flex-start;margin-top:14px}
.sys-unres svg{width:16px;height:16px;flex:none;margin-top:2px}
.sys-routes{margin:8px 0}
.sys-rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 12px}
.sys-rwhole{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:4px}
.sys-rwhole .sys-rbtn{width:auto;margin:0}
.sys-rgroup p{margin:0 0 4px}
.sys-rbtn{display:flex;justify-content:space-between;gap:6px;width:100%;margin:0 0 4px;padding:5px 9px;border:1px solid var(--line-l);border-radius:7px;background:#fff;font:inherit;font-size:12.5px;text-align:start;color:var(--ink);cursor:pointer}
.sys-rbtn b{font-weight:400;color:var(--muted)}
.sys-rbtn:hover{border-color:var(--plum-m)}
.sys-rbtn[aria-pressed=true]{background:var(--plum-t);border-color:var(--plum);color:var(--plum);font-weight:700}
.sys-rbtn[aria-pressed=true] b{color:var(--plum)}
.sys-rbtn.mine span::after{content:' •';color:var(--plum)}
.sys-rsel,.sys-pane{display:none}
.badge.mine{background:var(--plum);color:#fff}
.ebadge{cursor:pointer}
.ebadge circle{fill:var(--green);stroke:#fff;stroke-width:1.5}
.ebadge text{font:700 10px var(--font);fill:#fff}
.gedge.on .ebadge circle{fill:var(--plum)}
.sys-stepl>li .step-more{display:none}
.sys-stepl>li.on .step-more{display:block;margin-top:4px}
.sys-stepl>li{padding-top:6px;padding-bottom:6px}
.sys-bodyrow{gap:8px;align-items:flex-end}
.sys-find{flex:1;min-width:220px;margin:0}
.sys-combo{position:relative}
.sys-hits{position:absolute;z-index:20;inset-inline:0;top:calc(100% + 3px);max-height:340px;overflow:auto;list-style:none;margin:0;padding:4px 0;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.sys-hit-g{padding:7px 12px 2px;text-transform:none}
.sys-hit{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 12px;cursor:pointer;font-size:13.5px}
.sys-hit:hover,.sys-hit.kb{background:var(--plum-t)}
.sys-hit[aria-selected=true]>span{font-weight:700;color:var(--plum)}
.sys-hit>small{flex:none}
.sys-hit-none{padding:8px 12px}
.sys-current{margin:6px 0}
.sys-current svg,.sys-facts svg,.sys-laws svg{width:14px;height:14px;vertical-align:-2px}
.sys .detail{position:relative}
.sys .detail .kicker{padding-inline-end:34px}
.sys-close{position:absolute;top:0;inset-inline-end:0;width:28px;height:28px;border:1px solid var(--line);color:var(--muted);background:#fff}
.sys-close svg{width:14px;height:14px}
.sys-close:hover,.sys-close:focus-visible{color:var(--plum);border-color:var(--plum)}
.sys-tgroup{margin:2px 0 6px}
.sys-tname{display:flex;align-items:center;gap:6px;margin:6px 0 2px;color:var(--muted)}
.sys-tname i{width:9px;height:9px;border-radius:50%;flex:none}
.sys-tgroup ul,.sys-tgroup details{margin:0;margin-inline-start:15px}
.sys-tgroup details summary{color:var(--plum);cursor:pointer}
.sys [data-row]{text-align:start}
@container (max-width:640px){
  .sys-routes{display:none}
  .sys-rsel{display:block}
  .sys-pane{display:block;margin:6px 0}
  .sys-split.pane-steps .sys-map{display:none}
  .sys-split.pane-map .sys-steps{display:none}
  .sys-split.is-route:not(.has-sel) .split-side{display:none}
  .sys-split.is-route.has-sel .split-side{position:sticky;bottom:0;z-index:5;max-height:50vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px 16px 0 0;box-shadow:0 -6px 18px rgba(0,0,0,.14);padding:12px 14px}
}
