/* The reading pages' shared components (/data-acts, the country pages, /annex-i,
   /connect): headings, notes, badges, timelines, checklists, stage cards and the
   authority map. Comes after /static/site.css (type, tokens, the frame); a page's own
   <style> follows and overrides. */
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.62;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;}
.wrap{max-width:880px;margin:0 auto;padding:0 22px;}
h1{font-family:var(--serif);font-variation-settings:"opsz" 144,"wght" 520;font-weight:520;font-size:clamp(30px,5.4vw,50px);letter-spacing:-.02em;line-height:1.03;margin:46px 0 8px;text-wrap:balance;}
.sub{font-family:var(--mono);font-size:12.5px;letter-spacing:.03em;color:var(--ink-faint);text-transform:uppercase;}
.lede{font-size:17px;color:var(--ink-soft);max-width:66ch;margin:20px 0 26px;}
.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:52px 0 14px;display:flex;align-items:center;gap:12px;}
.kicker::before{content:"";width:26px;height:1px;background:var(--accent);}
.codebox{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:12px 0;font-family:var(--mono);font-size:13px;overflow-x:auto;}
.codebox code{white-space:pre;color:var(--ink);}
.copy{position:absolute;top:8px;right:8px;font-family:var(--mono);font-size:11px;padding:4px 9px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);color:var(--ink-soft);cursor:pointer;}
.copy:hover{color:var(--ink);}
.urlrow{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:4px;}
.urlrow .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);}
.tabbar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.tab{font-family:var(--sans);font-size:13.5px;padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-soft);cursor:pointer;}
.tab[aria-selected="true"]{background:var(--accent);color:#fff;border-color:var(--accent);}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px;}
.panel ol{margin:0 0 4px;padding-left:20px;}
.panel li{margin:0 0 8px;color:var(--ink-soft);}
.panel li b{color:var(--ink);font-weight:600;}
.eglist{display:grid;gap:10px;}
.eg{background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:8px;padding:12px 15px;color:var(--ink);font-size:15.5px;}
.tgroup{margin-bottom:24px;}
.tglabel{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:10px;}
.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;}
.tool{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;}
.tname{font-family:var(--mono);font-size:12.5px;color:var(--accent);font-weight:600;}
.tool p{margin:6px 0 0;color:var(--ink-soft);font-size:14px;line-height:1.5;}
.note{color:var(--ink-faint);font-size:13.5px;margin:14px 0 0;}
.disc{background:var(--panel-2);border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:8px;padding:14px 16px;margin:22px 0 6px;color:var(--ink-soft);font-size:14.5px;}
.disc b{color:var(--ink);}
.seclead{color:var(--ink-soft);max-width:72ch;margin:0 0 18px;font-size:15px;}
.stamp{font-family:var(--mono);font-size:11.5px;color:var(--ink-faint);margin-top:24px;}
.mono{font-family:var(--mono);font-size:12px;}
.faint{color:var(--ink-faint);}
code{font-family:var(--mono);font-size:.92em;background:var(--panel-2);padding:1px 5px;border-radius:4px;}
/* badges */
:root{--k-pro:#b23b2a;--k-right:#2f7a3c;--k-proc:#8a6a12;}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--k-pro:#ef8a7c;--k-right:#86cf8c;--k-proc:#e2bb55;}}
:root[data-theme="dark"]{--k-pro:#ef8a7c;--k-right:#86cf8c;--k-proc:#e2bb55;}
.kind,.rel,.chip{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border-radius:5px;background:var(--accent-soft);color:var(--accent);white-space:nowrap;}
.kind-prohibition,.rel-penalty{background:color-mix(in srgb,var(--k-pro) 16%,transparent);color:var(--k-pro);}
.kind-right,.rel-sandbox{background:color-mix(in srgb,var(--k-right) 16%,transparent);color:var(--k-right);}
.kind-procedure,.rel-procedure{background:color-mix(in srgb,var(--k-proc) 18%,transparent);color:var(--k-proc);}
.kind-scope,.rel-amends_act,.rel-obligation{background:var(--panel-2);color:var(--ink-soft);}
.chip{background:var(--panel-2);color:var(--ink-soft);border:1px solid var(--line);}
.chip-aiact{color:var(--accent);border-color:var(--accent-soft);}
/* timeline */
.tl{margin:0 0 8px;}
.tl-row{display:grid;grid-template-columns:120px 1fr;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14.5px;}
.tl-date{font-family:var(--mono);font-size:12.5px;color:var(--ink-faint);padding-top:2px;}
.tl-row.on .tl-date{color:var(--accent);font-weight:600;}
.tl-row.prop{color:var(--ink-soft);}
.tl-note{font-size:13px;color:var(--ink-faint);margin-top:2px;}
/* Data Act checklists */
.topic{margin:22px 0 30px;}
.topic h2,.topic h3{font-family:var(--serif);font-variation-settings:"opsz" 72,"wght" 520;font-weight:520;font-size:22px;letter-spacing:-.01em;margin:0 0 8px;}
details.role{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin:8px 0;}
details.role summary{cursor:pointer;padding:12px 16px;font-weight:600;list-style:none;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;}
details.role summary::-webkit-details-marker{display:none;}
details.role summary::before{content:"▸";font-family:var(--mono);color:var(--ink-faint);}
details.role[open] summary::before{content:"▾";}
summary .n{font-family:var(--mono);font-size:11px;color:var(--ink-faint);margin-left:auto;font-weight:400;}
.items{margin:0;padding:0 16px 10px;list-style:none;}
.item{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:14px;color:var(--ink-soft);}
.item>div:first-child{display:flex;flex-direction:column;gap:5px;align-items:flex-start;}
.item a.ref{font-family:var(--mono);font-size:12px;text-decoration:none;border-bottom:1px solid var(--accent-soft);}
.item a.ref:hover{border-bottom-color:var(--accent);}
.applies{font-family:var(--mono);font-size:11px;color:var(--accent);margin-top:4px;}
@media(max-width:640px){.item{grid-template-columns:1fr;gap:6px;}.tl-row{grid-template-columns:90px 1fr;}}
/* DGA structure */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;align-items:start;}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:15px 17px;}
.card h3{margin:0;font-family:var(--sans);font-size:15.5px;font-weight:600;letter-spacing:-.01em;}
.card .meta{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;}
.pt{display:inline-block;background:var(--accent-soft);color:var(--accent);border-radius:5px;padding:1px 6px;font-weight:600;}
.arts{margin:10px 0 0;padding-left:0;list-style:none;font-size:13.5px;color:var(--ink-soft);}
.arts li{padding:3px 0;}
.arts a{font-family:var(--mono);font-size:12px;text-decoration:none;margin-right:6px;}
/* Slovakia */
dl.stage{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin:22px 0 8px;display:grid;grid-template-columns:170px 1fr;gap:6px 14px;font-size:14.5px;}
dl.stage dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);padding-top:3px;}
dl.stage dd{margin:0;color:var(--ink);}
@media(max-width:640px){dl.stage{grid-template-columns:1fr;gap:2px;}dl.stage dd{margin-bottom:8px;}}
.auths{display:grid;gap:14px;}
.auth{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px;}
.auth h2,.auth h3{margin:0 0 8px;font-family:var(--serif);font-variation-settings:"opsz" 72,"wght" 520;font-weight:520;font-size:21px;letter-spacing:-.01em;}
.badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px;}
.rows{margin:0;padding:0;list-style:none;}
.row{padding:10px 0;border-top:1px solid var(--line);font-size:14px;color:var(--ink-soft);}
.row-h{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;}
.row-h a.ref{font-family:var(--sans);font-size:14.5px;font-weight:600;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--accent-soft);}
.row-h a.ref:hover{border-bottom-color:var(--accent);}
.sref{font-family:var(--mono);font-size:12px;color:var(--accent);}
.sum{margin-top:4px;}
details.quote{margin-top:4px;}
details.quote summary{cursor:pointer;font-family:var(--mono);font-size:11px;color:var(--ink-faint);list-style:none;}
details.quote blockquote{margin:6px 0 0;padding:8px 12px;border-left:2px solid var(--line);font-size:13px;color:var(--ink-soft);white-space:pre-wrap;}
/* /national: country × act, article × country */
.tablewrap{overflow-x:auto;margin:0 0 8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;}
table.matrix{width:100%;min-width:640px;border-collapse:collapse;font-size:14px;}
.matrix th,.matrix td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.matrix thead th{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);}
.matrix thead th a{color:inherit;text-decoration:none;}
.matrix tbody th{min-width:150px;font-weight:600;}
.matrix tbody th > a:not(.ref){color:var(--ink);text-decoration:none;}
.matrix tbody tr:last-child > *{border-bottom:0;}
.matrix a.ref{font-size:14px;font-weight:600;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--accent-soft);}
.who{padding:4px 0;color:var(--ink-soft);}
.who + .who{border-top:1px dashed var(--line);}
.who > a{color:var(--ink);font-weight:600;text-decoration:none;border-bottom:1px solid var(--accent-soft);}
a.eurlex{font-size:12px;color:var(--ink-faint);text-decoration:none;}
a.eurlex:hover{color:var(--accent);}
