/* The animated IT map (assets/map.js), in the site's minimal look. Scoped to #mapapp.
   The colour variables sit on :root because the map script reads them from the document. */
:root{
  --panel:#ffffff; --muted:#707070; --accent:#0a0a0a; --accent-ink:#ffffff; --warn:#a86a00;
  --d-terr:#3B6D11; --d-cross:#534AB7; --d-justice:#993C1D; --d-health:#0F6E56; --d-fin:#854F0B; --d-social:#185FA5; --d-eu:#993556; --d-local:#5F5E5A;
  --e-identity:#2257c9; --e-interop:#0e8f8a; --e-data:#5b6f86; --e-reporting:#b07400; --e-payments:#24935a; --e-hosting:#8a4fc8; --e-network:#7a7f87; --e-eu:#c08a00; --e-operates:#b8bec6;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --panel:#0a0a0a; --muted:#8f8f8f; --accent:#ededed; --accent-ink:#0a0a0a; --warn:#e3b04f;
  --d-terr:#97C459; --d-cross:#AFA9EC; --d-justice:#F0997B; --d-health:#5DCAA5; --d-fin:#EF9F27; --d-social:#85B7EB; --d-eu:#ED93B1; --d-local:#B4B2A9;
  --e-identity:#7ea6ff; --e-interop:#46d1c9; --e-data:#9fb3c8; --e-reporting:#f0b443; --e-payments:#5fd393; --e-hosting:#c39bff; --e-network:#a7adb5; --e-eu:#ffd166; --e-operates:#4a4f55}}
:root[data-theme="dark"]{
  --panel:#0a0a0a; --muted:#8f8f8f; --accent:#ededed; --accent-ink:#0a0a0a; --warn:#e3b04f;
  --d-terr:#97C459; --d-cross:#AFA9EC; --d-justice:#F0997B; --d-health:#5DCAA5; --d-fin:#EF9F27; --d-social:#85B7EB; --d-eu:#ED93B1; --d-local:#B4B2A9;
  --e-identity:#7ea6ff; --e-interop:#46d1c9; --e-data:#9fb3c8; --e-reporting:#f0b443; --e-payments:#5fd393; --e-hosting:#c39bff; --e-network:#a7adb5; --e-eu:#ffd166; --e-operates:#4a4f55}

main.wide{max-width:none}
#mapapp{margin:8px 0 0;font-size:14px;line-height:1.45}
#mapapp [hidden]{display:none!important}
#mapapp button{font:inherit;color:inherit}
#mapapp .mhead{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 28px;padding:0 0 14px}
#mapapp .stats{display:flex;gap:28px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-3)}
#mapapp .stats b{display:block;font-size:22px;color:var(--ink);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
#mapapp .search{margin-left:auto;min-width:0;flex:1 1 240px;max-width:360px;position:relative}
#mapapp .search input{width:100%;height:36px;padding:0 12px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit;font-size:14px}
#mapapp .search input:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px var(--ring)}
#results{position:absolute;z-index:8;top:100%;left:0;right:0;background:var(--bg);border:1px solid var(--line-2);border-radius:8px;margin-top:4px;max-height:300px;overflow:auto}
#results button{display:flex;gap:8px;width:100%;text-align:left;padding:7px 10px;border:0;background:none;cursor:pointer}
#results button:hover{background:var(--hover)}
#results .mut{color:var(--ink-3)}
#results .nomatch{padding:8px 10px;color:var(--ink-3)}
#mapapp .main{display:grid;grid-template-columns:230px minmax(0,1fr) 330px;gap:0;height:calc(100vh - var(--top) - 64px);min-height:560px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
#mapapp aside{padding:14px 16px 14px 0;overflow:auto;min-height:0}
#mapapp aside#detail{padding:14px 0 14px 18px;border-left:1px solid var(--line)}
#mapapp aside#filters{border-right:1px solid var(--line)}
#mapapp aside h2{font-size:11.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:16px 0 6px}
#mapapp aside h2:first-child{margin-top:0}
#mapapp aside h2::before{content:none}
#mapapp .chk{display:flex;align-items:center;gap:8px;padding:3px 0;cursor:pointer;font-size:13px}
#mapapp .chk input{accent-color:var(--ink)}
#mapapp .sw{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}
#mapapp .sw.il{margin-right:8px}#mapapp .sw.mt5{margin-top:5px}
#mapapp .count{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
#mapapp .count.ml{margin-left:6px}
#mapapp .note{font-size:12px;color:var(--ink-3);margin:6px 0 0;border:0;padding:0}
#mapapp label.lbl{font-size:12px;color:var(--ink-3)}
#mapapp select{width:100%;margin-top:4px;padding:6px;border:1px solid var(--line-2);border-radius:6px;background:var(--bg);color:var(--ink);font:inherit;font-size:13px}
#mapapp .hub{display:flex;width:100%;gap:8px;align-items:center;border:0;background:none;font-size:13px;padding:3px 0;cursor:pointer;text-align:left}
#mapapp .hub:hover{color:var(--ink-2)}
.d-territory-environment-infra{background:var(--d-terr)}.d-cross-gov{background:var(--d-cross)}.d-justice-security{background:var(--d-justice)}
.d-health{background:var(--d-health)}.d-finance{background:var(--d-fin)}.d-social-labour-education{background:var(--d-social)}
.d-eu-links{background:var(--d-eu)}.d-local-regional{background:var(--d-local)}
#cy-wrap{position:relative;min-height:420px;overflow:hidden;background:var(--bg)}
#cy{position:absolute;inset:0}
#mapapp .legend{position:absolute;left:10px;bottom:10px;display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--ink-3);background:var(--glass);padding:6px 8px;border-radius:6px;max-width:calc(100% - 20px)}
#mapapp .legend span{display:flex;align-items:center;gap:5px}
#mapapp .legend .o6{opacity:.6}#mapapp .legend .brk{flex-basis:100%;height:0}
#mapapp .ln{display:inline-block;width:20px;height:0;border-top-width:2.5px;border-top-style:solid;border-top-color:currentColor;flex:none;vertical-align:middle}
.ln.e-operates{color:var(--e-operates);border-top-style:dotted}.ln.e-interoperability{color:var(--e-interop)}.ln.e-data{color:var(--e-data)}
.ln.e-reporting{color:var(--e-reporting);border-top-style:dashed}.ln.e-payments{color:var(--e-payments);border-top-style:dashed}
.ln.e-hosting{color:var(--e-hosting);border-top-style:dotted}.ln.e-network{color:var(--e-network);border-top-style:dotted}.ln.e-eu-exchange{color:var(--e-eu);border-top-style:dashed}
#mapapp .tools{position:absolute;right:10px;bottom:10px;display:flex;gap:6px}
#mapapp .tools button{border:1px solid var(--line-2);background:var(--bg);border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer}
#mapapp .tools button:hover{border-color:var(--ink)}
#loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink-3);font-family:var(--mono);font-size:13px}
#mapapp .mbar{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;z-index:3;pointer-events:none}
#mapapp .mbar>*{pointer-events:auto}
#mapapp .seg{display:inline-flex;border:1px solid var(--line-2);border-radius:6px;overflow:hidden;background:var(--bg)}
#mapapp .seg button{border:0;background:none;font-size:12.5px;font-weight:500;padding:5px 14px;cursor:pointer}
#mapapp .seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
#mapapp .hint{font-size:11.5px;color:var(--ink-3);background:var(--glass);padding:4px 8px;border-radius:6px;min-width:0}
#tip{position:absolute;z-index:6;pointer-events:none;max-width:300px;background:var(--bg);border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;font-size:12.5px;line-height:1.4;box-shadow:0 6px 24px rgb(0 0 0 / .12)}
#tip b{display:block;font-size:13.5px;margin-bottom:2px}
#tip .o{color:var(--ink-3);font-size:11.5px;display:block;margin-bottom:4px}
#tip .o.mt{margin-top:4px}#tip .va{vertical-align:middle}
#tip .p{display:block}
#list{position:absolute;inset:0;overflow:auto;background:var(--bg);padding:52px 10px 10px;z-index:2}
#list table{width:100%;border-collapse:collapse;font-size:12.5px}
#list th{position:sticky;top:-52px;background:var(--bg);text-align:left;font-size:11px;font-weight:500;color:var(--ink-3);padding:6px 8px;border-bottom:1px solid var(--line-2)}
#list td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
#list td:first-child{min-width:170px}#list td.lv{white-space:nowrap;color:var(--ink-3)}
#list tbody tr{cursor:pointer}#list tbody tr:hover td{background:var(--hover)}
#list tr.grp td{font-weight:600;font-size:13px;cursor:default;padding-top:14px}
#list .acr{font-family:var(--mono);font-size:11px;color:var(--ink-3);display:block}
#list .unv{font-size:10.5px;color:var(--warn);border:1px solid var(--warn);border-radius:999px;padding:0 5px;margin-left:4px}
#list .empty.pad{padding:12px}
@media (max-width:640px){#list td:nth-child(n+4),#list th:nth-child(n+4){display:none}}
#detail .empty{color:var(--ink-3)}
#detail h3{font-size:19px;font-weight:600;letter-spacing:-.02em;margin:0 0 2px}
#detail .full{margin:4px 0 8px;font-size:13px}
#detail .full a{font-weight:500}
#detail .full a::after{content:" →"}
#detail .acr{font-family:var(--mono);color:var(--ink-3);font-size:12.5px}
#detail h4{font-size:11.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:16px 0 6px}
#detail .sm{font-size:12.5px;margin:0}
#mapapp .pills{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
#mapapp .pill{font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid var(--line-2);color:var(--ink-3)}
#mapapp .pill.ok{color:var(--ok);border-color:var(--ok)}#mapapp .pill.warn{color:var(--warn);border-color:var(--warn)}
.pill.dc-territory-environment-infra{color:var(--d-terr);border-color:var(--d-terr)}.pill.dc-cross-gov{color:var(--d-cross);border-color:var(--d-cross)}
.pill.dc-justice-security{color:var(--d-justice);border-color:var(--d-justice)}.pill.dc-health{color:var(--d-health);border-color:var(--d-health)}
.pill.dc-finance{color:var(--d-fin);border-color:var(--d-fin)}.pill.dc-social-labour-education{color:var(--d-social);border-color:var(--d-social)}
.pill.dc-eu-links{color:var(--d-eu);border-color:var(--d-eu)}.pill.dc-local-regional{color:var(--d-local);border-color:var(--d-local)}
#detail dl{display:grid;grid-template-columns:80px minmax(0,1fr);gap:4px 10px;margin:8px 0;font-size:13px}
#detail dt{color:var(--ink-3);font-size:12px}#detail dd{margin:0;min-width:0;overflow-wrap:anywhere}
#detail .links a{display:block;font-size:12px;overflow-wrap:anywhere;margin:2px 0;color:var(--ink-2)}
#detail .conn{display:flex;gap:8px;align-items:baseline;width:100%;text-align:left;border:0;background:none;font-size:12.5px;padding:3px 0;cursor:pointer}
#detail .conn:hover{color:var(--ink-2)}
#detail .conn small{color:var(--ink-3);font-family:var(--mono);font-size:10.5px;flex:none;width:92px}
#detail .cd{color:var(--ink-3);font-size:11.5px}#detail .cm{font-family:var(--mono);font-size:10.5px;color:var(--ink-3)}
#mapapp .chips{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}
#mapapp .chip{font-size:11.5px;padding:1px 7px;border-radius:4px;background:var(--hover);font-family:var(--mono)}
#mapapp .mnote{font-size:12px;color:var(--ink-3);max-width:110ch;margin:12px 0 0}
@media (max-width:1000px){
  #mapapp .main{grid-template-columns:minmax(0,1fr);height:auto;min-height:0;border-bottom:0}
  #cy-wrap{min-height:62vh;order:-1;border-bottom:1px solid var(--line)}
  #mapapp .tools{top:46px;bottom:auto}
  #mapapp .hint{display:none}
  #mapapp aside#filters,#mapapp aside#detail{border:0;padding:14px 0;border-bottom:1px solid var(--line)}
}
