:root{
  --navy:#1D3A66;--navy-2:#2B4F86;--ink:#1A1F2B;--ink-2:#4A5163;--ink-3:#6B7385;--paper:#F5F6F8;--card:#FFFFFF;
  --line:#DDE1E8;--line-2:#E9ECF1;--hl:#FFF3C4;--accent:#9A3B1F;--accent-bg:#FBEDE7;--dt:#2E6B4F;--ok:#2E6B4F;--ok-bg:#E5F2EA;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;--sans:"IBM Plex Sans",system-ui,-apple-system,Segoe UI,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --r:10px;--shadow:0 1px 2px rgba(16,24,40,.05),0 6px 20px rgba(16,24,40,.06)
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --navy:#8FB0E8;--navy-2:#A9C3EE;--ink:#E7EAF0;--ink-2:#B7BECC;--ink-3:#8C94A6;--paper:#11151C;--card:#171C25;
  --line:#2A3140;--line-2:#222835;--hl:#3B3414;--accent:#F0A285;--accent-bg:#3A2219;--dt:#7FC7A2;--ok:#7FC7A2;--ok-bg:#16301F;--shadow:none;color-scheme:dark}}
:root[data-theme="dark"]{--navy:#8FB0E8;--navy-2:#A9C3EE;--ink:#E7EAF0;--ink-2:#B7BECC;--ink-3:#8C94A6;--paper:#11151C;--card:#171C25;
  --line:#2A3140;--line-2:#222835;--hl:#3B3414;--accent:#F0A285;--accent-bg:#3A2219;--dt:#7FC7A2;--ok:#7FC7A2;--ok-bg:#16301F;--shadow:none;color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans)}
a{color:var(--navy)}
button{font:inherit}
.top{position:sticky;top:0;z-index:30;background:var(--card);border-bottom:1px solid var(--line)}
.top-in{max-width:1440px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex:none}
.brand .seal{width:34px;height:34px;border-radius:8px;background:var(--navy);color:var(--card);display:grid;place-items:center;font:700 20px/1 var(--serif)}
.brand b{display:block;font:700 17px/1.1 var(--serif);letter-spacing:.1px}
.brand small{display:block;font-size:11.5px;color:var(--ink-3);letter-spacing:.2px}
.search{position:relative;flex:1;max-width:560px}
.search input,.hsearch input{width:100%;padding:9px 40px 9px 14px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font:15px var(--sans);outline:none}
.search input:focus,.hsearch input:focus{border-color:var(--navy);box-shadow:0 0 0 3px color-mix(in srgb,var(--navy) 18%,transparent)}
.search kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font:12px var(--mono);color:var(--ink-3);border:1px solid var(--line);border-radius:4px;padding:0 5px}
.nav{display:flex;gap:4px;margin-left:auto}
.nav a{padding:7px 11px;border-radius:7px;text-decoration:none;color:var(--ink-2);font-weight:500;font-size:14.5px}
.nav a:hover{background:var(--paper);color:var(--navy)}
.sres{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:70vh;overflow:auto;display:none;z-index:40}
.sres.on{display:block}
.sres a{display:flex;gap:10px;padding:9px 14px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-2);align-items:baseline}
.sres a:last-child{border-bottom:0}
.sres a.act,.sres a:hover{background:var(--paper)}
.sres b{font:500 13.5px var(--mono);color:var(--navy);flex:none;min-width:84px}
.sres span{font-size:14.5px}
.sres em{display:block;font-style:normal;font-size:13px;color:var(--ink-3);margin-top:2px}
.sres .sh{padding:8px 14px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);background:var(--paper)}
.sres mark{background:var(--hl);color:inherit;border-radius:2px}
.layout{max-width:1440px;margin:0 auto;padding:24px 20px 60px;display:grid;gap:32px}
.layout.sec{grid-template-columns:260px minmax(0,1fr) 300px}
.layout.wide{grid-template-columns:minmax(0,880px);justify-content:center}
.sb{position:sticky;top:76px;align-self:start;max-height:calc(100vh - 96px);overflow:auto;font-size:13.5px;padding-right:6px}
.sb-h a{font:600 12px var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);text-decoration:none}
.sb-h span{display:block;font:600 15px/1.3 var(--serif);margin:4px 0 12px;color:var(--ink)}
.sb ul{list-style:none;margin:0;padding:0}
.sb li a{display:block;padding:5px 8px;border-radius:6px;text-decoration:none;color:var(--ink-2);line-height:1.35}
.sb li a b{font:500 12px var(--mono);color:var(--ink-3);margin-right:4px}
.sb li a:hover{background:var(--card)}
.sb li.on a{background:var(--card);color:var(--navy);box-shadow:inset 3px 0 0 var(--navy)}
.sb li.on a b{color:var(--navy)}
.sb .sbsub{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:14px 8px 4px}
.main{min-width:0}
.crumbs{font-size:13px;color:var(--ink-3);margin-bottom:10px}
.crumbs a{color:var(--ink-3);text-decoration:none}.crumbs a:hover{color:var(--navy);text-decoration:underline}
.crumbs span{margin:0 5px;opacity:.6}
.sec-h,.ch-h{margin:0 0 12px;font:700 32px/1.18 var(--serif);letter-spacing:-.2px;color:var(--ink)}
.sec-num{display:block;font:500 15px var(--mono);color:var(--navy);letter-spacing:0;margin-bottom:6px}
.sec-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 20px}
.sec-tools .sp{flex:1}
.btn{border:1px solid var(--navy);background:var(--navy);color:var(--card);padding:6px 12px;border-radius:7px;font-size:13.5px;font-weight:500;cursor:pointer;text-decoration:none}
.btn.ghost{background:transparent;color:var(--navy);border-color:var(--line)}
.btn:hover{filter:brightness(1.08)}
.badge{display:inline-block;font:600 12px var(--sans);padding:4px 9px;border-radius:999px;background:var(--accent-bg);color:var(--accent);letter-spacing:.02em;text-decoration:none}
.badge.cases,.chip{background:var(--ok-bg);color:var(--ok)}
.statute{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 26px;box-shadow:var(--shadow)}
.node{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) 24px;gap:0 6px;padding:5px 0;border-radius:6px;font:17.5px/1.62 var(--serif);color:var(--ink)}
.node.l0{grid-template-columns:0 minmax(0,1fr) 24px;gap:0}
.node.l2{margin-left:28px}.node.l3{margin-left:56px}.node.l4{margin-left:84px}.node.l5{margin-left:112px}
.node .lbl{font:500 14px/1.9 var(--mono);color:var(--navy);text-align:right;padding-right:6px;white-space:nowrap;letter-spacing:-.3px}
.node .tx{min-width:0;overflow-wrap:anywhere}
.node.rep{color:var(--ink-3);font-style:italic}
.node .cp{opacity:0;border:0;background:none;color:var(--ink-3);cursor:pointer;padding:2px;font-size:15px;line-height:1.6;height:fit-content}
.node:hover .cp,.cp:focus{opacity:1}
.node.hit{background:var(--hl);box-shadow:-8px 0 0 var(--hl),8px 0 0 var(--hl);transition:background 2s ease}
.node .chip{margin-left:8px;font:600 11.5px var(--sans);padding:2px 8px;border-radius:999px;text-decoration:none;vertical-align:2px}
.tx a{text-decoration:none;border-radius:2px}
a.xr{color:var(--navy);border-bottom:1.5px solid color-mix(in srgb,var(--navy) 45%,transparent)}
a.xr:hover{background:color-mix(in srgb,var(--navy) 9%,transparent);border-bottom-color:var(--navy)}
a.xo{color:var(--navy);border-bottom:1.5px dashed color-mix(in srgb,var(--navy) 45%,transparent)}
a.xo::after{content:"\2197";font:11px var(--sans);margin-left:1px;opacity:.6}
a.xp{color:var(--accent);border-bottom:1.5px solid color-mix(in srgb,var(--accent) 45%,transparent)}
a.dt{color:inherit;border-bottom:1.5px dotted var(--dt)}
a.dt:hover{color:var(--dt)}
.ednote{font:italic 14px/1.5 var(--sans);color:var(--ink-3);background:var(--paper);border-left:3px solid var(--line);padding:6px 12px;margin:10px 0}
.version{margin-bottom:22px}
.vtag{font:600 12px var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin:0 0 6px}
.vhead{font:600 16px var(--serif);margin-bottom:6px}
.hist{margin:16px 0 0;font-size:13.5px;color:var(--ink-2)}
.hist summary{cursor:pointer;font-weight:500;color:var(--ink-2)}
.hist p{margin:6px 0 0 14px;font-size:13px;line-height:1.5}
.legend{display:flex;flex-wrap:wrap;gap:16px;margin:18px 0 0;font-size:12.5px;color:var(--ink-3)}
.legend i{display:inline-block;width:18px;height:0;margin-right:6px;vertical-align:4px}
.k-xr{border-bottom:2px solid var(--navy)}.k-xo{border-bottom:2px dashed var(--navy)}.k-dt{border-bottom:2px dotted var(--dt)}.k-xp{border-bottom:2px solid var(--accent)}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}
.pn a{display:block;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);background:var(--card);font:500 14.5px/1.35 var(--sans)}
.pn a small{display:block;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:3px}
.pn .next{text-align:right}
.pn a:hover{border-color:var(--navy)}
.rail{position:sticky;top:76px;align-self:start;max-height:calc(100vh - 96px);overflow:auto;font-size:13.5px}
.rbox{border-top:1px solid var(--line);padding:14px 0 16px}
.rbox:first-child{border-top:0;padding-top:0}
.rbox h3{margin:0 0 10px;font:600 11.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.rlist,.olist{list-style:none;margin:0;padding:0}
.rlist li{padding:3px 0;color:var(--ink-2);line-height:1.35}
.rlist a{font:500 12.5px var(--mono);text-decoration:none;margin-right:4px}
.rlist a.ext{font:500 13px var(--sans)}
.olist li{padding:6px 0;border-bottom:1px solid var(--line-2)}
.olist li:last-child{border:0}
.olist a{font:500 13px var(--mono);text-decoration:none;margin-right:6px}
.olist .g{font-weight:600;color:var(--accent)}
.olist small{display:block;color:var(--ink-3);font-size:12.5px}
.citeas{font:500 13.5px var(--mono);margin:0}
.more{color:var(--ink-3);font-size:12.5px;margin:6px 0 0}
.lede{font-size:17px;color:var(--ink-2);margin:0 0 22px;max-width:62ch}
.subch{font:600 13px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:30px 0 10px}
.subch span{display:block;text-transform:none;letter-spacing:0;font:600 19px var(--serif);color:var(--ink);margin-top:3px}
.subch a{color:inherit;text-decoration:none}
.toc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.trow{display:grid;grid-template-columns:110px 1fr auto;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line-2);text-decoration:none;color:var(--ink);align-items:baseline}
.trow:last-child{border-bottom:0}
.trow:hover{background:var(--paper)}
.trow b{font:500 13.5px var(--mono);color:var(--navy)}
.trow span{font:16px/1.4 var(--serif)}
.trow em{font-style:normal;font-size:12.5px;color:var(--ink-3)}
.hero{padding:28px 0 8px}
.hero h1{font:700 48px/1.05 var(--serif);margin:0 0 14px;letter-spacing:-.6px}
.kicker{font:600 12px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.hsearch{position:relative;margin:6px 0 10px}
.hsearch input{padding:14px 18px;font-size:17px;border-radius:10px;background:var(--card)}
.pop h2,.titles h2{font:600 13px var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);margin:34px 0 12px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;text-decoration:none;color:var(--ink)}
.card b{display:block;font:500 13px var(--mono);color:var(--navy);margin-bottom:4px}
.card span{font:15px/1.35 var(--serif)}
.card:hover{border-color:var(--navy)}
.ptab{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:15px}
.ptab th,.ptab td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line-2)}
.ptab th{font:600 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.prose{font:17px/1.65 var(--serif);max-width:68ch}
.prose h2{font:600 20px var(--serif);margin:28px 0 8px}
.unres{font-size:14px;font-family:var(--sans)}
.caselaw{margin-top:26px}
.caselaw h2{font:600 20px var(--serif)}
.cfilters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cfilters .chip{border:0;padding:4px 10px;border-radius:999px;cursor:pointer;opacity:.7}
.cfilters .chip.on{opacity:1;outline:1.5px solid var(--ok)}
.case{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;margin-bottom:8px}
.case h3{margin:0;font:600 16px var(--serif)}
.cmeta{font-size:13px;color:var(--ink-3)}
.flag{margin-left:8px;color:var(--accent);font-weight:600}
.pop-def,.pop-prev{position:absolute;z-index:50;max-width:440px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(16,24,40,.18);padding:12px 14px;font:15px/1.5 var(--serif);color:var(--ink)}
.pop-def h4,.pop-prev h4{margin:0 0 6px;font:600 12.5px var(--sans);color:var(--ink-3)}
.pop-def a,.pop-prev a{font:500 13px var(--sans)}
.pop-prev .pl{font:500 13px var(--mono);color:var(--navy);margin-right:4px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:9px 16px;border-radius:8px;font-size:14px;z-index:60;opacity:0;transition:opacity .2s}
.toast.on{opacity:1}
.foot{border-top:1px solid var(--line);background:var(--card)}
.foot-in{max-width:1440px;margin:0 auto;padding:22px 20px 30px;font-size:14px;color:var(--ink-2)}
.credit{margin:0 0 6px;font-size:15px}
.credit a{font-weight:600}
.fine{margin:0;color:var(--ink-3);font-size:13px}
.loading{color:var(--ink-3);padding:40px 0}
@media (max-width:1180px){.layout.sec{grid-template-columns:230px minmax(0,1fr)}.rail{grid-column:2;position:static;max-height:none}}
@media (max-width:860px){
  .top-in{flex-wrap:wrap;gap:10px;padding:10px 16px}.search{order:3;flex-basis:100%;max-width:none}.search kbd{display:none}.nav{margin-left:auto}.nav a{padding:6px 8px}
  .layout{padding:16px 16px 40px;gap:20px}.layout.sec{grid-template-columns:minmax(0,1fr)}.sb{display:none}.rail{grid-column:1}
  .statute{padding:14px 12px}.node{grid-template-columns:42px minmax(0,1fr) 20px;font-size:16.5px}.node .lbl{font-size:12.5px;padding-right:4px}
  .node.l2{margin-left:12px}.node.l3{margin-left:24px}.node.l4{margin-left:36px}.node.l5{margin-left:48px}
  .sec-h,.ch-h{font-size:26px}.hero h1{font-size:36px}.trow{grid-template-columns:84px 1fr}.trow em{display:none}
  .pn{grid-template-columns:1fr}.pn .next{text-align:left}.node .cp{opacity:.5}
  html{scroll-padding-top:120px}.brand small{display:none}
}
