/* map.css — map of the law (lane map-of-the-law, 20 Oct 2026); loaded on /<act>/map only, after the kit hl.css. Not kit yet
   (designer spec review B1: kit hl.css stays byte-identical). Level colours validated for colour-vision
   deficiency (docs/design/map-palette-validation.md); kit additions recorded in ui/WORDING-GAPS.md. Shape + line style carry the level too. */
:root{--hl-map-1:#2a78d6;--hl-map-2:#eb6834;--hl-map-3:#1baf7a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--hl-map-1:#3987e5;--hl-map-2:#d95926;--hl-map-3:#199e70}}
:root[data-theme="dark"]{--hl-map-1:#3987e5;--hl-map-2:#d95926;--hl-map-3:#199e70}
.hl-layout.is-map .hl-nav{display:none}
.hl-layout.is-map .hl-main{max-width:960px}
.hl-layout.is-map .hl-aside{flex:0 1 320px}
.hl-map__sub{margin:-6px 0 14px;font:400 14.5px var(--hl-sans);color:var(--hl-muted)}
.hl-map__f{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px}
.hl-map__f select.hl-btn,.hl-map__f input.hl-btn{font:500 14px var(--hl-sans);appearance:auto}
.hl-map__tog{position:relative}
.hl-map__tog input{position:absolute;opacity:0;width:1px;height:1px}
.hl-map__tog:has(input:checked){background:var(--hl-link-wash);color:var(--hl-link)}
.hl-map__tog:not(:has(input:checked)).is-on{background:var(--hl-tone);color:var(--hl-ink)}
.hl-map__tog:focus-within{outline:2px solid var(--hl-link);outline-offset:2px}
.hl-map__fm{display:none}
.hl-map{background:var(--hl-surface);border-radius:20px;box-shadow:var(--hl-sh-1);padding:18px 22px;margin:0 0 24px}
.hl-map__legend{display:flex;flex-wrap:wrap;gap:6px 20px;font:400 13px var(--hl-sans);color:var(--hl-ink-2);margin:0 0 4px}
.hl-map__legend span{display:inline-flex;align-items:center;gap:6px}
.hl-map__scroll{margin:0}
.hl-map__svg{display:block;width:100%;height:auto;overflow:visible}
.hl-map__svg .m-bar{fill:var(--hl-map-1)}
.hl-map__svg .m-bar.is-deleted{fill:none;stroke:var(--hl-map-1);stroke-width:.8}
.hl-map__svg .m-bar.is-act{fill:var(--hl-ink-2)}
.hl-map__svg .m-bar.m-dim{opacity:.55}
.hl-map__svg .m-n2{fill:var(--hl-map-2)}
.hl-map__svg .m-n3{fill:var(--hl-map-3)}
.hl-map__svg .m-fade{opacity:.45}
.hl-map__svg .m-edge{fill:none;stroke:var(--hl-uline);stroke-width:1;opacity:.28}
.hl-map__svg .m-edge.is-hi{opacity:1;stroke-width:2}
.hl-map__svg .m-edge.is-hi.m-l2{stroke:var(--hl-map-2)}
.hl-map__svg .m-edge.is-hi.m-l3{stroke:var(--hl-map-3);stroke-dasharray:5 3}
.hl-map__legend .m-bar{fill:var(--hl-map-1)} .hl-map__legend .m-n2{fill:var(--hl-map-2)} .hl-map__legend .m-n3{fill:var(--hl-map-3)}
.hl-map__legend .m-l2{stroke:var(--hl-map-2);stroke-width:2;fill:none} .hl-map__legend .m-l3{stroke:var(--hl-map-3);stroke-width:2;stroke-dasharray:5 3;fill:none}
.hl-map__svg .m-hit{fill:transparent;stroke:none}
.hl-map__svg a:focus{outline:none}
.hl-map__svg a:focus-visible .m-hit{stroke:var(--hl-link);stroke-width:3}
.hl-map__svg a:hover .m-bar{opacity:1}
.hl-map__svg .m-key{font:400 11px var(--hl-mono);fill:var(--hl-muted)}
.hl-map__svg .m-grp{font:600 11px var(--hl-sans);letter-spacing:.06em;text-transform:uppercase;fill:var(--hl-muted)}
.hl-map__svg .m-sel{font:500 11px var(--hl-mono);fill:var(--hl-ink)}
.hl-map__date{margin:10px 0 0;font:400 13.5px var(--hl-sans);color:var(--hl-ink-2)}
.hl-map__date p{margin:0 0 4px}
.hl-map__date p span{color:var(--hl-muted)}
.hl-map__track{position:relative;height:36px;margin:0 28px 0 8px}
.hl-map__track::before{content:"";position:absolute;left:0;right:0;top:9px;height:2px;border-radius:1px;background:var(--hl-tone-2)}
.hl-map__now{position:absolute;top:3px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--hl-ink);box-shadow:0 0 0 3px var(--hl-surface)}
.hl-map__tick{position:absolute;top:0;width:20px;height:20px;margin-left:-10px;text-decoration:none;color:var(--hl-muted)}
.hl-map__tick::before{content:"";position:absolute;left:9px;top:5px;width:2px;height:10px;border-radius:1px;background:var(--hl-uline)}
.hl-map__tick.is-on::before{background:var(--hl-ink)}
.hl-map__tick span{position:absolute;top:19px;left:50%;transform:translateX(-50%);white-space:nowrap;font:400 11px var(--hl-mono)}
.hl-map__tick.is-bare{width:8px;margin-left:-4px;z-index:0}
.hl-map__tick.is-bare::before{left:3px}
.hl-map__tick:not(.is-bare){z-index:1}
.hl-map__tick span.is-start{left:0;transform:none}
.hl-map__tick span.is-end{left:auto;right:0;transform:none}
.hl-map__tick:hover,.hl-map__tick:focus-visible{color:var(--hl-link)}
.hl-map__knob{position:absolute;top:1px;width:18px;height:18px;margin-left:-9px;border:0;border-radius:50%;background:var(--hl-ink);box-shadow:0 0 0 3px var(--hl-surface);cursor:grab;touch-action:none;padding:0}
.hl-map__knob:focus-visible{outline:2px solid var(--hl-link);outline-offset:2px}
.hl-map__panel{background:var(--hl-surface);border-radius:20px;box-shadow:var(--hl-sh-1);padding:18px 22px;display:flex;flex-direction:column;gap:18px}
.hl-map__panel>section{display:flex;flex-direction:column}
.hl-map__h{margin:0;font:600 20px/1.3 var(--hl-serif);color:var(--hl-ink)}
.hl-map__panel .hl-trust{margin:-8px 0 0}
.hl-map__counts{margin:0;font:500 14.5px var(--hl-sans);color:var(--hl-ink)}
.hl-map__panel .hl-empty{margin:0}
.hl-map__btns{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.hl-map__table{margin:0 0 24px}
.hl-map__table>summary{cursor:pointer;font:500 15px var(--hl-sans);min-height:44px;display:flex;align-items:center}
.hl-map__t{color:var(--hl-ink-2)}
@media (max-width:720px){
  .hl-map__fd{display:none}
  .hl-map__fm{display:block;margin:0 0 14px}
  .hl-map__fm>summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:12px;background:var(--hl-tone);font-size:15px;font-weight:500;list-style:none;cursor:pointer}
  .hl-map__fm>summary::-webkit-details-marker{display:none}
  .hl-map__fm .hl-map__f{padding:14px 0 0}
  .hl-map{padding:14px 12px}
  .hl-map__scroll{overflow-x:auto}
  .hl-map__scroll .hl-map__svg{width:900px;max-width:none}
  .hl-layout.is-map .hl-aside{flex:1 1 100%}
  .hl-map__tick span.is-minor{display:none}
}
@media print{.hl-map__f,.hl-map__fd,.hl-map__fm,.hl-map__knob{display:none!important}}
.hl-map__nd{color:var(--hl-muted);font-family:var(--hl-sans)}
.hl-map .hl-skip:focus{position:static;display:inline-block;margin:0 0 8px}
@media print{
  .hl-map__fd,.hl-map__fm,.hl-map__date,.hl-map .hl-skip,.hl-aside{display:none!important}
  .hl-map{box-shadow:none;padding:0}
  .hl-map__scroll .hl-map__svg{width:100%!important}
}
