/* Criminal Law guide navigation (2 Oct 2026): module switcher, desktop section list, attack-plan links */
.guidewrap h2[id]{scroll-margin-top:96px}

/* Module switcher: one compact control in place of the bar of ten buttons */
.modsw{margin:14px 0 10px}
.modsw>summary{list-style:none;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:6px 16px;border:1px solid var(--stone);border-radius:22px;background:var(--panel);color:var(--ink);cursor:pointer;font:500 .9rem var(--sans)}
.modsw>summary::-webkit-details-marker{display:none}
.modsw>summary::after{content:"";width:7px;height:7px;border-right:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(45deg);margin-top:-4px;transition:transform .15s}
.modsw[open]>summary::after{transform:rotate(225deg);margin-top:4px}
.modsw>summary:hover{border-color:var(--green)}
.modsw-k{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green)}
.modsw .modnav{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;margin:10px 0 4px}
.modsw .modnav a{font-size:.9rem;border-radius:10px;padding:8px 14px;justify-content:flex-start}

/* Attack plan steps link to their sections */
ol.aplan a.ap-go{color:inherit;text-decoration:none}
ol.aplan a.ap-go:hover,ol.aplan a.ap-go:focus-visible{text-decoration:underline;text-decoration-color:var(--green);text-underline-offset:3px}
ol.aplan a.ap-go::after{content:"\2193" / "";margin-left:6px;color:var(--green);font-weight:600}

/* Desktop: fixed section list in the left margin */
.gside{display:none}
.gside.on{display:block;position:fixed;top:112px;width:210px;max-height:calc(100vh - 140px);overflow-y:auto;z-index:40;transition:opacity .15s}
.gside.away{opacity:0;visibility:hidden}
.gside-h{font:500 .75rem var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 8px}
.gside ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--stone)}
.gside a{display:block;padding:6px 0 6px 14px;margin-left:-2px;border-left:2px solid transparent;color:var(--ink-soft);text-decoration:none;font-size:.85rem;line-height:1.35}
.gside a:hover{color:var(--green)}
.gside a.cur{border-left-color:var(--green);color:var(--green-deep);font-weight:500}

/* Mid widths (tablet, small laptop): keep the floating Contents button and sheet */
@media (min-width:761px){
  body.has-gtoc:not(.gside-on) .gtoc-btn{position:fixed;right:24px;bottom:24px;z-index:60;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border:0;border-radius:24px;background:var(--green);color:#fff;font:500 1rem var(--sans);box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer}
  body.has-gtoc:not(.gside-on) .gtoc-btn svg{width:18px;height:18px}
  body.has-gtoc:not(.gside-on) .gtoc-scrim:not([hidden]){display:block;position:fixed;inset:0;z-index:61;background:rgba(0,0,0,.25)}
  body.has-gtoc:not(.gside-on) .gtoc:not([hidden]){display:block;position:fixed;right:24px;bottom:84px;z-index:62;width:340px;max-height:70vh;overflow-y:auto;background:var(--panel);border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.2);padding:14px 20px}
  body.has-gtoc:not(.gside-on) .gtoc-h{font:500 1rem var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 4px}
  body.has-gtoc:not(.gside-on) .gtoc ol{list-style:none;margin:0;padding:0}
  body.has-gtoc:not(.gside-on) .gtoc a{display:flex;align-items:center;min-height:44px;border-bottom:1px solid #eee7d8;color:var(--ink);text-decoration:none}
  body.has-gtoc:not(.gside-on) .gtoc li:last-child a{border-bottom:0}
}
@media (prefers-reduced-motion:reduce){.modsw>summary::after,.gside.on{transition:none}}

/* 3 Oct 2026: statute blocks, shape tags at the box edge, section checks, grouped end set */
.stat{font-style:normal;margin:10px 0 18px;padding:12px 18px 12px 20px;border-left:3px solid var(--green);background:var(--panel);border-radius:0 8px 8px 0;font-size:.97rem;color:var(--ink)}
.stat p{margin:0 0 6px;max-width:none}
.stat p:last-child{margin-bottom:0}
.stat .stat-ref{font:600 .72rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--green-deep);margin-bottom:6px}
.stat .stat-p{padding-left:1.6em;text-indent:-1.6em}
.rule .stat,.box .stat{background:transparent;border-left-width:2px;padding:4px 0 4px 14px;margin:8px 0}
.rule>.shp{float:right;margin:2px 0 4px 12px}
.qc-inline{margin:22px 0 30px;padding:14px 18px 6px;background:var(--panel);border:1px solid var(--stone);border-radius:10px}
.qc-inline .qc-h{margin:0 0 4px;font:600 .72rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep)}
.qc-inline .dcard{margin-top:4px}
.qc-groups{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}
.qc-g{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 14px;border:1px solid var(--stone);border-radius:22px;background:var(--panel);color:var(--ink-soft);font:500 .85rem var(--sans);cursor:pointer}
.qc-g:hover{border-color:var(--green);color:var(--green)}
.qc-g.on{background:var(--green);border-color:var(--green);color:#fff}
.qc-gc{font-size:.75rem;opacity:.85}
@media (min-width:761px){
  html.js details.gcases>summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:2px 0 16px;padding:6px 16px;border:1px solid var(--stone);border-radius:22px;background:var(--panel);font-size:0;cursor:pointer}
  html.js details.gcases>summary::before{content:"Show the case table";font:500 .9rem var(--sans);color:var(--green-deep)}
  html.js details.gcases[open]>summary::before{content:"Hide the case table"}
  html.js details.gcases>summary:hover{border-color:var(--green)}
}
/* Notes (3 Oct 2026) */
sup.fn{font-size:.72em;line-height:0;vertical-align:super;margin-left:1px}
sup.fn a{color:var(--green);font-weight:600;text-decoration:none;padding:0 2px;scroll-margin-top:110px}
sup.fn a:hover,sup.fn a[aria-expanded="true"]{text-decoration:underline;text-underline-offset:2px}
.fn-pop{position:absolute;z-index:70;background:var(--panel);border:1px solid var(--stone);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.15);padding:12px 14px;font-size:.88rem;line-height:1.5;color:var(--ink)}
.fn-pop[hidden]{display:none}
.fn-pop .fn-n{font-weight:700;color:var(--green-deep);margin-right:6px}
.fn-pop .fn-all{display:block;margin-top:8px;font-size:.8rem;color:var(--green)}
.gnotes ol{font-size:.88rem;line-height:1.55;color:var(--body);padding-left:2.2em;margin:8px 0 0}
.gnotes li{margin:0 0 6px;scroll-margin-top:96px}
.gnotes li:target{background:var(--mint);border-radius:4px}
.gnotes .fn-back{margin-left:4px;color:var(--green);text-decoration:none}
