:root {
  color-scheme: light;
  --bg:#fff; --paper:#fff; --sidebar:#f8f9f8; --subtle:#f5f6f5;
  --ink:#1f2421; --text:#303632; --muted:#616963; --line:#dfe3e0; --strong-line:#b6beb8;
  --accent:#285946; --accent-soft:#eaf1ed; --button:#263d31; --amber:#6d531c; --amber-soft:#faf8f0;
  --reading:18px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-synthesis:none; text-rendering:optimizeLegibility; -webkit-text-size-adjust:100%;
}
:root[data-theme=dark] {
  color-scheme:dark;
  --bg:#202321; --paper:#202321; --sidebar:#191c1a; --subtle:#292d2a;
  --ink:#f0f3f1; --text:#e1e6e2; --muted:#acb7af; --line:#414a44; --strong-line:#657269;
  --accent:#b3d4be; --accent-soft:#2c4033; --button:#c5ddcd; --amber:#ddc997; --amber-soft:#302e25;
}
* { box-sizing:border-box; }
html { scroll-padding-top:82px; }
body { margin:0; background:var(--bg); color:var(--text); font-size:17px; line-height:1.65; }
h1,h2,h3,p,dl,dd { margin:0; }
h1,h2,h3 { color:var(--ink); }
a { color:var(--accent); text-underline-offset:4px; }
button,input,select,textarea { font:inherit; color:inherit; }
button { cursor:pointer; background:none; }
button:disabled,select:disabled { cursor:default; opacity:.6; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
button,a { touch-action:manipulation; }
a,button { overflow-wrap:anywhere; }
img,svg { max-width:100%; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
a:hover { text-decoration-thickness:2px; }
[hidden] { display:none!important; }
.js-only { display:none!important; }
.js .js-only { display:inline-flex!important; }
.icon { width:20px; height:20px; flex-shrink:0; vertical-align:middle; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:8px; left:20px; transform:translateY(-150%); padding:12px 20px; background:var(--paper); border:1px solid var(--line); border-radius:6px; z-index:100; }
.skip-link:focus { transform:none; }
.button,.icon-button,.text-button,.save-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; border:1px solid var(--line); border-radius:7px; font-size:14px; font-weight:500; padding:9px 13px; line-height:1.4; color:var(--text); text-decoration:none; background:var(--paper); }
.button:hover,.icon-button:hover,.save-button:hover { background:var(--subtle); }
.icon-button { width:44px; padding:11px; flex-shrink:0; border-color:transparent; background:transparent; }
.text-button { border-color:transparent; background:transparent; padding-inline:7px; color:var(--muted); }
.text-button:hover { color:var(--ink); background:var(--subtle); }
.button.primary { color:var(--bg); background:var(--button); border-color:var(--button); }
.sidebar { position:fixed; inset:0 auto 0 0; width:220px; display:flex; flex-direction:column; padding:23px 11px 14px; background:var(--sidebar); border-right:1px solid var(--line); z-index:20; }
.brand { display:flex; align-items:center; gap:10px; color:var(--ink); font-size:16px; font-weight:650; line-height:1.35; text-decoration:none; }
.sidebar .brand { padding:0 6px; margin-bottom:26px; }
.brand img { flex-shrink:0; }
.brand small { display:block; font-size:11px; font-weight:400; color:var(--muted); margin-top:4px; }
.side-primary { display:flex; flex-direction:column; gap:3px; }
.side-primary>a { display:flex; align-items:center; gap:10px; min-height:44px; padding:10px 11px; border-radius:7px; color:var(--text); font-size:14px; line-height:1.5; text-decoration:none; }
.side-primary>a:hover,.sidebar-chapters>a:hover { background:var(--line); }
.side-primary>a.active { background:var(--accent-soft); color:var(--accent); font-weight:600; }
[data-saved-count] { margin-left:auto; color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
.side-heading { display:flex; align-items:center; justify-content:space-between; padding:0 11px; margin:18px 0 4px; min-height:44px; color:var(--muted); font-size:12px; font-weight:600; }
.side-heading .icon-button { width:36px; padding:9px; margin-right:-8px; }
.side-heading .icon { width:16px; height:16px; }
.sidebar-chapters { min-height:0; overflow-y:auto; scrollbar-width:thin; scrollbar-color:var(--strong-line) transparent; }
.sidebar>.sidebar-chapters { flex:1; }
.sidebar-chapters>a { display:flex; align-items:baseline; gap:8px; color:var(--text); text-decoration:none; padding:10px 11px; border-radius:6px; font-size:13px; line-height:1.5; min-height:44px; }
.sidebar-chapters>a.active { color:var(--accent); background:var(--accent-soft); font-weight:600; }
.chapter-number { font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; min-width:16px; }
.side-footer { display:flex; flex-direction:column; border-top:1px solid var(--line); padding:10px 2px 0; margin-top:12px; }
.side-footer .text-button { justify-content:flex-start; font-size:12px; padding-inline:5px; }
.side-footer>a { display:flex; align-items:center; gap:7px; padding:9px 5px; font-size:12px; color:var(--muted); text-decoration:none; min-height:44px; }
.side-footer .icon { width:15px; height:15px; }
.workspace { margin-left:220px; min-width:0; }
.topbar { position:sticky; top:0; z-index:15; display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:61px; padding:8px 28px; background:var(--bg); border-bottom:1px solid var(--line); }
.topbar-start,.topbar-actions { display:flex; align-items:center; gap:10px; min-width:0; }
.topbar-title { color:var(--ink); font-size:15px; font-weight:500; text-decoration:none; line-height:1.5; }
.topbar-title span { color:var(--muted); font-weight:400; font-size:12px; margin-left:5px; }
.reference-label { color:var(--muted); font-size:12px; }
.js .mobile-menu { display:none!important; }
.main { width:100%; max-width:1580px; padding:0 30px; margin:auto; min-width:0; }
.page-heading { padding:27px 0 22px; }
.act-name { color:var(--muted); font-size:13px; margin-bottom:6px; }
.page-heading h1 { font-size:29px; line-height:1.3; letter-spacing:-.7px; font-weight:650; }
.page-heading #page-description { color:var(--muted); font-size:15px; line-height:1.65; margin-top:8px; }
.search-workspace { display:none; }
.js .search-workspace { display:block!important; }
#search-form { display:flex; align-items:stretch; gap:8px; max-width:900px; }
.search-input-wrap { position:relative; display:flex; align-items:center; min-width:0; flex:1; border:1px solid var(--strong-line); border-radius:8px; background:var(--paper); }
.search-input-wrap:focus-within { border-color:var(--accent); box-shadow:0 0 0 2px var(--accent-soft); }
.search-input-wrap>.icon { margin-left:15px; color:var(--muted); width:19px; height:19px; }
#search { display:block; font-size:17px; line-height:1.6; width:100%; height:50px; padding:11px 45px 11px 11px; border:0; border-radius:8px; background:transparent; min-width:0; -webkit-appearance:none; }
#search:focus { outline:none; }
#search::placeholder { color:var(--muted); opacity:1; }
#search::-webkit-search-cancel-button { display:none; }
.clear-search { position:absolute; right:2px; top:3px; }
.search-submit { display:inline-flex; align-items:center; justify-content:center; gap:10px; border:1px solid var(--button); border-radius:8px; background:var(--button); color:var(--bg); font-weight:500; min-height:50px; padding:11px 19px; font-size:15px; line-height:1.4; }
.search-submit:hover { opacity:.88; }
.search-options { display:flex; align-items:center; gap:18px; margin-top:10px; }
.filter-toggle { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:6px; font-size:14px; line-height:1.4; }
.filter-toggle:hover,.filter-toggle[aria-expanded=true] { background:var(--subtle); }
.filter-toggle .icon { width:17px; height:17px; }
#filter-count { background:var(--accent-soft); color:var(--accent); min-width:20px; padding:1px 5px; border-radius:4px; font-size:12px; }
.search-suggestions { display:flex; flex-wrap:wrap; align-items:center; gap:3px; font-size:13px; color:var(--muted); }
.search-suggestions>span { margin-right:2px; }
.search-suggestions button { border:0; border-radius:5px; min-height:44px; padding:8px; font-size:13px; line-height:1.4; color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.search-suggestions button:hover { background:var(--subtle); }
.js .filter-toolbar { display:flex!important; flex-wrap:wrap; align-items:center; gap:10px; }
.filter-controls { display:none; flex-basis:100%; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:14px; padding:20px; background:var(--subtle); border:1px solid var(--line); border-radius:8px; }
.filter-controls.is-open { display:grid; }
.filter-field { min-width:0; }
.filter-field label { display:block; font-size:14px; color:var(--ink); font-weight:500; margin-bottom:7px; }
.filter-field select { width:100%; min-height:46px; max-width:100%; padding:10px 25px 10px 11px; background:var(--paper); border:1px solid var(--strong-line); border-radius:6px; font-size:15px; line-height:1.5; }
.filter-field.is-disabled { opacity:.65; }
.reset-button { margin-left:auto; font-size:13px; order:2; }
.active-filters { font-size:13px; color:var(--muted); line-height:1.7; flex:1; overflow-wrap:anywhere; }
#results-title { scroll-margin-top:82px; }
.results-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:22px 0 14px; }
.results-heading>div { min-width:0; display:flex; align-items:baseline; gap:13px; flex-wrap:wrap; }
.results-heading h2 { font-size:17px; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.results-heading p { font-size:13px; color:var(--muted); }
.terms-button { font-size:13px; white-space:nowrap; padding-right:0; flex-shrink:0; }
.terms-button .icon { width:17px; height:17px; }
/* One semantic table: full columns on desktop, labelled detail rows on phones. */
.offence-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:16px; line-height:1.65; }
.offence-table .section-col { width:10%; }
.offence-table .offence-col { width:28%; }
.offence-table .punishment-col { width:22%; }
.offence-table .bail-col { width:12%; }
.offence-table .arrest-col { width:13%; }
.offence-table .court-col { width:15%; }
.offence-table thead th { position:sticky; top:61px; z-index:5; text-align:left; font-size:13px; font-weight:600; line-height:1.5; color:var(--text); background:var(--subtle); padding:14px 12px; border:1px solid var(--line); }
.offence-table tbody th,.offence-table tbody td { text-align:left; vertical-align:top; padding:18px 12px; border:1px solid var(--line); overflow-wrap:anywhere; }
.offence-table tbody th { font-weight:400; }
.offence-table tbody tr:hover { background:var(--sidebar); }
.offence-table .section-cell { padding-inline:10px; }
.section-label { display:inline-flex; align-items:baseline; gap:5px; color:var(--accent); font-size:15px; font-weight:600; line-height:1.6; text-decoration:none; }
.section-label:hover { text-decoration:underline; }
.section-label>.icon { display:none; width:13px; height:13px; align-self:center; }
.section-prefix { display:none; }
.variant-label { display:block; font-size:11px; line-height:1.5; color:var(--muted); margin-top:4px; }
.save-button { color:var(--muted); font-size:12px; min-height:44px; padding:8px 7px; border-color:transparent; background:transparent; }
.save-button .icon { width:17px; height:17px; }
.save-button.is-saved { color:var(--accent); background:var(--accent-soft); }
.section-cell .save-button { margin-top:7px; padding-left:0; gap:4px; }
.section-cell .save-button span { font-size:11px; }
.mobile-field { display:none; }
.offence-title { font-size:inherit; line-height:inherit; font-weight:400; color:var(--ink); }
.cell-detail { min-width:0; }
.status { font-weight:500; color:var(--ink); }
.condition-text { margin-top:8px; font-size:inherit; line-height:inherit; }
.entry-context { color:var(--muted); border-left:2px solid var(--strong-line); padding-left:12px; margin-top:15px; font-size:14px; line-height:1.65; }
.entry-context>span { display:block; font-weight:500; color:var(--text); margin-bottom:5px; }
.commencement { display:flex; align-items:flex-start; gap:9px; margin-top:18px; padding:13px; border-left:3px solid var(--strong-line); background:var(--amber-soft); color:var(--amber); font-size:14px; line-height:1.7; }
.commencement>.icon { margin-top:3px; width:17px; height:17px; }
.commencement strong { font-weight:600; }
.commencement p { margin:5px 0; }
.commencement a { color:inherit; display:inline-flex; align-items:center; gap:6px; min-height:44px; }
.commencement a .icon { width:14px; height:14px; }
.index-end { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:20px 0; font-size:13px; color:var(--muted); }
.index-end a { color:var(--muted); padding:8px 0; }
.empty-results,.load-error { padding:30px 24px; border:1px solid var(--line); border-radius:8px; background:var(--subtle); }
.empty-results { text-align:center; }
.empty-results>.icon { width:30px; height:30px; color:var(--muted); margin-bottom:14px; }
.empty-results h3 { font-size:23px; font-weight:600; }
.empty-results p { font-size:17px; color:var(--muted); max-width:480px; margin:10px auto 22px; }
.reader { display:none; }
body[data-view=read] .reader { display:block; }
body[data-view=read] .index-view,body[data-view=read] .page-heading,body[data-view=read] .search-options { display:none; }
body[data-view=read] .main { max-width:900px; }
body[data-view=read] .search-workspace { margin:22px 0 18px; }
.reader-topline { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:0 0 18px; border-bottom:1px solid var(--line); }
.back-link { display:inline-flex; align-items:center; gap:7px; min-height:44px; text-decoration:none; color:var(--muted); font-size:14px; }
.reader-tools { display:flex; align-items:center; gap:13px; }
.reader-tools .button { font-size:13px; }
.text-size-label { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--muted); }
.text-size-label select { font-size:14px; padding:8px 6px; min-height:44px; border:1px solid var(--line); border-radius:6px; background:var(--paper); }
.section-heading { padding:28px 0; }
.section-heading .act-name { margin-bottom:8px; }
.section-heading h1 { font-size:34px; line-height:1.3; letter-spacing:-.8px; font-weight:650; }
.section-heading .chapter-link { display:inline-block; font-size:15px; margin-top:10px; line-height:1.6; text-decoration:none; color:var(--muted); }
.section-heading .chapter-link:hover { text-decoration:underline; }
.section-coverage { display:block; font-size:13px; color:var(--muted); margin-top:8px; }
/* Section pages follow a document rhythm: headings, prose and simple tables. */
.entry-article { scroll-margin-top:82px; padding:24px 0 29px; border-top:1px solid var(--strong-line); }
.entry-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:13px; }
.entry-heading h2 { font-size:23px; font-weight:600; line-height:1.45; letter-spacing:-.3px; }
.entry-heading h2 small { display:inline-block; font-size:13px; color:var(--muted); font-weight:400; margin-left:10px; letter-spacing:0; }
.entry-heading .save-button { font-size:13px; }
.markdown-body { font-size:var(--reading); line-height:1.8; overflow-wrap:break-word; }
.markdown-body .offence-title,.markdown-body .punishment-block p { font-size:var(--reading); line-height:1.8; }
.markdown-body .punishment-block { margin:23px 0; }
.markdown-body h3 { font-size:18px; line-height:1.5; font-weight:600; margin-bottom:8px; }
.markdown-body .entry-context { font-size:calc(var(--reading) - 1px); margin:20px 0; }
.classification-table { border-collapse:collapse; table-layout:fixed; width:100%; margin:24px 0 20px; font-size:calc(var(--reading) - 1px); line-height:1.7; }
.classification-table th,.classification-table td { text-align:left; vertical-align:top; border:1px solid var(--line); padding:13px 17px; overflow-wrap:anywhere; }
.classification-table thead th { background:var(--subtle); font-size:14px; font-weight:600; color:var(--text); }
.classification-table th:first-child { width:29%; }
.classification-table tbody th { font-size:15px; font-weight:500; }
.markdown-body .commencement { font-size:calc(var(--reading) - 2px); padding:16px; }
.general-rule { color:var(--muted); font-size:16px; margin-top:14px; }
.entry-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:18px; }
.entry-source { display:inline-flex; align-items:center; gap:7px; min-height:44px; font-size:13px; color:var(--muted); text-decoration:none; }
.entry-source .icon { width:15px; height:15px; }
.entry-actions { gap:10px; }
.entry-actions .text-button { font-size:13px; }
.entry-actions .icon { width:17px; height:17px; }
.transcription-note { margin-top:18px; font-size:15px; color:var(--muted); }
.reading-note { padding:0 0 23px; font-size:14px; line-height:1.75; color:var(--muted); }
.section-navigation { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:20px; border-top:1px solid var(--line); }
.section-navigation a { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:14px; text-decoration:none; }
.section-navigation a:last-child { margin-left:auto; }
body[data-reading-size=large] { --reading:21px; }
body[data-reading-size=larger] { --reading:24px; }
.site-footer { margin-top:25px; padding:27px 0 45px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
.site-footer strong { color:var(--text); font-size:14px; font-weight:500; }
.site-footer p { margin-top:8px; max-width:760px; font-size:13px; line-height:1.8; }
.site-footer nav { display:flex; align-items:center; flex-wrap:wrap; gap:4px 22px; margin-top:10px; }
.site-footer nav>a { display:inline-flex; align-items:center; gap:6px; min-height:44px; font-size:13px; color:var(--muted); }
.site-footer .text-button { font-size:13px; padding-left:0; }
.site-footer .icon { width:14px; height:14px; }
.noscript-note { padding:24px 0; }
.noscript-note h2 { font-size:23px; margin-bottom:18px; }
.noscript-note p { margin:20px 0; }
dialog { color:var(--text); background:var(--paper); padding:0; border:1px solid var(--line); border-radius:12px; width:800px; max-width:calc(100% - 32px); max-height:88dvh; margin:auto; box-shadow:0 18px 80px #0003; }
dialog::backdrop { background:#17201a70; }
.guide-dialog,.copy-dialog { width:650px; }
.dialog-top { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 24px; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--paper); z-index:2; }
.dialog-top h2 { font-size:22px; line-height:1.4; font-weight:600; }
.dialog-body { padding:24px; }
.dialog-body p { font-size:16px; line-height:1.8; }
.dialog-body h3 { font-size:18px; font-weight:600; margin:24px 0 8px; }
.term-guide section { padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--line); }
.term-guide h3 { font-size:17px; margin:0 0 8px; }
.term-guide p { font-size:16px; }
.guide-links { display:flex; flex-wrap:wrap; gap:18px; margin-top:24px; }
.guide-links a { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:15px; }
.chapter-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; }
.chapter-card { display:flex; align-items:center; gap:14px; border-bottom:1px solid var(--line); padding:16px 6px; text-decoration:none; min-height:96px; }
.chapter-card.active { background:var(--accent-soft); }
.chapter-card:hover { background:var(--subtle); }
.chapter-badge { font-size:15px; color:var(--muted); font-variant-numeric:tabular-nums; }
.chapter-card strong { font-size:15px; font-weight:500; line-height:1.5; display:block; }
.chapter-card small { font-size:13px; color:var(--muted); display:block; margin-top:6px; line-height:1.5; }
.chapter-card>.icon { margin-left:auto; width:16px; }
.copy-dialog textarea { display:block; resize:vertical; width:100%; font-size:16px; line-height:1.7; padding:15px; margin-top:16px; border:1px solid var(--strong-line); border-radius:6px; background:var(--subtle); }
.navigation-dialog { position:fixed; inset:0 auto 0 0; margin:0; width:320px; max-width:calc(100% - 36px); height:100dvh; max-height:100dvh; border:0; border-radius:0 12px 12px 0; background:var(--sidebar); }
.navigation-dialog .dialog-top { background:var(--sidebar); padding:14px 16px; }
.navigation-dialog .dialog-body { padding:16px 12px 30px; }
.navigation-dialog .side-heading { margin-top:18px; }
.navigation-dialog .sidebar-chapters { overflow:visible; margin-bottom:20px; }
.navigation-dialog .sidebar-chapters>a { font-size:15px; min-height:48px; }
.navigation-dialog .side-primary>a { font-size:16px; min-height:48px; }
.navigation-dialog .dialog-body>.text-button { justify-content:flex-start; font-size:14px; }
.toast { position:fixed; bottom:24px; left:calc(50% + 110px); transform:translateX(-50%); background:var(--button); color:var(--bg); border-radius:8px; padding:13px 20px; box-shadow:0 4px 20px #0002; max-width:calc(100% - 32px); z-index:100; font-size:14px; line-height:1.6; }
.back-top { position:fixed; right:20px; bottom:20px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:var(--paper); color:var(--ink); border:1px solid var(--line); border-radius:50%; box-shadow:0 3px 12px #0001; z-index:10; text-decoration:none; font-size:22px; }
@media (min-width:1600px) {
  .main { padding-inline:42px; }
  .offence-table tbody th,.offence-table tbody td { padding:20px 17px; font-size:17px; }
  .offence-table thead th { padding:15px 17px; font-size:14px; }
}
@media (max-width:1200px) {
  .topbar-title span { display:none; }
  .main { padding-inline:24px; }
}
@media (max-width:1100px) {
  .sidebar { display:none; }
  .workspace { margin-left:0; }
  .js .mobile-menu { display:inline-flex!important; }
  .topbar { padding:8px 18px; }
  .topbar-start { gap:6px; }
  .toast { left:50%; }
}
@media (max-width:900px) {
  .main { max-width:790px; }
  .filter-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .results-heading>div { display:block; }
  .results-heading p { margin-top:4px; }
  .offence-table,.offence-table tbody { display:block; }
  .offence-table colgroup { display:none; }
  .offence-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
  .offence-table tbody tr { display:block; margin-bottom:26px; }
  .offence-table tbody tr:hover { background:transparent; }
  .offence-table tbody .section-cell { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 0; border:0; border-top:2px solid var(--strong-line); }
  .section-label { font-size:20px; font-weight:600; line-height:1.5; }
  .section-prefix { display:inline; }
  .section-label>.icon { display:block; width:16px; height:16px; }
  .variant-label { display:inline-block; font-size:12px; margin:2px 0 0; }
  .section-cell .save-button { margin:0; padding:8px; }
  .section-cell .save-button span { font-size:13px; }
  .offence-table tbody td { display:grid; grid-template-columns:120px minmax(0,1fr); padding:0; border:1px solid var(--line); border-top:0; font-size:17px; line-height:1.7; }
  .mobile-field { display:block; font-size:14px; font-weight:500; color:var(--text); line-height:1.6; background:var(--subtle); padding:13px 14px; border-right:1px solid var(--line); }
  .cell-detail { padding:13px 15px; }
  .offence-table tbody td.offence-cell { display:block; border:0; padding:0 0 20px; font-size:18px; line-height:1.8; }
  .offence-cell>.mobile-field { display:none; }
  .offence-cell .cell-detail { padding:0; }
  .offence-table tbody td.punishment-cell { border-top:1px solid var(--line); }
  .entry-context { font-size:16px; }
  .commencement { font-size:16px; }
}
@media (max-width:600px) {
  .main { padding-inline:18px; }
  .topbar { padding:8px 10px; gap:8px; }
  .topbar-title { font-size:16px; }
  .reference-label { display:none; }
  .page-heading { padding:25px 0 19px; }
  .act-name { font-size:12px; margin-bottom:8px; }
  .page-heading h1 { font-size:28px; line-height:1.3; letter-spacing:-.6px; }
  .page-heading #page-description { font-size:15px; margin-top:9px; }
  #search-form { gap:7px; }
  .search-input-wrap>.icon { display:none; }
  #search { font-size:16px; height:50px; padding-left:12px; padding-right:40px; }
  .clear-search { width:38px; padding:9px; }
  .search-submit { font-size:14px; padding:11px 14px; }
  .search-submit .icon { display:none; }
  .search-options { gap:9px; justify-content:space-between; margin-top:10px; }
  .filter-toggle { font-size:13px; padding:8px 10px; gap:6px; }
  .filter-toggle .icon { width:16px; height:16px; }
  .search-suggestions { gap:0; font-size:12px; }
  .search-suggestions button { font-size:12px; padding-inline:6px; }
  .filter-controls { grid-template-columns:1fr; padding:17px; gap:16px; }
  .filter-field label { font-size:14px; }
  .filter-field select { font-size:16px; min-height:48px; }
  .active-filters { flex-basis:100%; font-size:13px; }
  .reset-button { font-size:13px; }
  .results-heading { align-items:flex-start; gap:12px; padding:20px 0 15px; }
  .results-heading h2 { font-size:17px; }
  .results-heading p { font-size:12px; line-height:1.6; }
  .terms-button { font-size:12px; gap:5px; min-height:44px; padding:3px 0; }
  .terms-button .icon { width:16px; height:16px; }
  .offence-table tbody .section-cell { padding:12px 0; }
  .section-label { font-size:19px; }
  .offence-table tbody td { grid-template-columns:95px minmax(0,1fr); font-size:17px; }
  .mobile-field { font-size:13px; line-height:1.6; padding:12px 10px; }
  .cell-detail { padding:12px; }
  .offence-table tbody td.offence-cell { font-size:18px; line-height:1.8; padding-bottom:18px; }
  .offence-table tbody tr { margin-bottom:26px; }
  .status { font-weight:500; }
  .condition-text { margin-top:7px; }
  .entry-context { font-size:16px; }
  .commencement { padding:12px; font-size:16px; gap:8px; }
  .index-end { font-size:12px; padding:10px 0 20px; }
  .empty-results,.load-error { padding:26px 20px; }
  .empty-results h3 { font-size:22px; }
  body[data-view=read] .search-workspace { margin-top:18px; margin-bottom:12px; }
  .reader-topline { align-items:flex-start; flex-direction:column; gap:10px; padding-bottom:17px; }
  .reader-tools { width:100%; justify-content:space-between; gap:10px; }
  .text-size-label { font-size:13px; gap:7px; }
  .text-size-label select { font-size:14px; max-width:118px; }
  .reader-tools .button { font-size:13px; padding:9px 10px; }
  .reader-tools .icon { width:17px; height:17px; }
  .section-heading { padding:23px 0; }
  .section-heading h1 { font-size:30px; }
  .section-heading .chapter-link { font-size:15px; }
  .section-coverage { font-size:13px; }
  .entry-article { padding:20px 0 26px; }
  .entry-heading { margin-bottom:14px; }
  .entry-heading h2 { font-size:21px; }
  .entry-heading h2 small { display:block; margin:4px 0 0; font-size:12px; }
  .markdown-body h3 { font-size:18px; }
  .classification-table th:first-child { width:32%; }
  .classification-table thead th { font-size:13px; }
  .classification-table th,.classification-table td { padding:12px 10px; }
  .classification-table tbody th { font-size:14px; }
  .classification-table { font-size:var(--reading); }
  .entry-footer { display:block; }
  .entry-source { font-size:13px; }
  .entry-actions { width:100%; margin-top:5px; gap:20px; }
  .entry-actions .text-button { font-size:13px; padding-left:0; }
  .transcription-note { font-size:16px; }
  .reading-note { font-size:15px; }
  .section-navigation { flex-wrap:wrap; gap:8px; }
  .site-footer { margin-top:20px; padding:25px 0 70px; }
  .site-footer p { font-size:13px; }
  .site-footer nav { gap:0 20px; }
  .dialog-top { padding:15px 18px; gap:10px; }
  .dialog-top h2 { font-size:20px; }
  .dialog-body { padding:18px; }
  .dialog-body p { font-size:17px; }
  .dialog-body h3 { font-size:19px; }
  .term-guide h3 { font-size:17px; }
  .term-guide p { font-size:16px; }
  .guide-links { flex-direction:column; gap:5px; }
  .guide-links a { font-size:16px; }
  .chapter-grid { grid-template-columns:1fr; }
  .chapter-card { padding:15px 6px; min-height:88px; }
  .chapter-card strong { font-size:16px; }
  .chapter-card small { font-size:14px; }
  .toast { font-size:14px; width:max-content; bottom:18px; }
  .back-top { right:15px; bottom:16px; }
}
@media (max-width:359px) {
  .main { padding-inline:14px; }
  .page-heading h1 { font-size:25px; }
  .search-suggestions>span { display:none; }
  .search-suggestions button { padding-inline:7px; }
  .offence-table tbody td { grid-template-columns:84px minmax(0,1fr); }
  .mobile-field { font-size:12px; padding-inline:9px; }
  .cell-detail { padding-inline:10px; }
  .reader-tools { flex-wrap:wrap; }
  .terms-button { gap:4px; font-size:11px; }
  .results-heading p { font-size:11px; }
  .classification-table th:first-child { width:31%; }
  .classification-table tbody th { font-size:13px; }
  .classification-table th,.classification-table td { padding-inline:8px; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
@media print {
  :root,:root[data-theme=dark] { color-scheme:light; --paper:#fff; --bg:#fff; --ink:#000; --text:#111; --muted:#444; --line:#aaa; --subtle:#f5f5f5; --accent:#222; --strong-line:#777; --amber:#222; --amber-soft:#fff; }
  body,body[data-reading-size] { --reading:11pt; font-size:11pt; background:#fff; }
  .sidebar,.topbar,.page-heading,.search-workspace,.index-view,.reader-topline,.site-footer,.section-navigation,.entry-actions,.save-button,.skip-link,dialog,.toast,.noscript-note,.back-top,.js .js-only { display:none!important; }
  .workspace { margin:0; }
  .main,body[data-view=read] .main { padding:0; max-width:none; }
  .reader { display:block!important; }
  .section-heading { padding:0 0 16pt; }
  .section-heading h1 { font-size:25pt; }
  .section-heading .act-name,.section-heading .chapter-link,.section-coverage { font-size:10pt; }
  .entry-article { padding:14pt 0; }
  .entry-heading { break-after:avoid; }
  .entry-heading h2 { font-size:16pt; }
  .entry-heading h2 small { font-size:9pt; }
  .markdown-body .offence-title,.markdown-body .punishment-block p { font-size:11pt; line-height:1.7; }
  .markdown-body h3 { font-size:12pt; }
  .markdown-body .punishment-block { margin:14pt 0; break-inside:avoid; }
  .classification-table { font-size:11pt; margin:14pt 0; }
  .classification-table th,.classification-table td { padding:8pt 10pt; }
  .classification-table tr { break-inside:avoid; }
  .classification-table thead th,.classification-table tbody th { font-size:10pt; }
  .classification-table th:first-child { width:29%; }
  .entry-footer { display:block; margin-top:12pt; }
  .entry-source { font-size:9pt; min-height:0; }
  .markdown-body .entry-context,.markdown-body .commencement,.reading-note,.transcription-note { font-size:10pt; line-height:1.6; }
  .commencement { break-inside:avoid; }
  .reading-note { padding:12pt 0; }
  @page { size:A4; margin:17mm; }
}
