/* Local ABS-derived selector diagram; the transit map remains the main canvas. */
.network-overview[hidden], .network-legacy[hidden] { display:none; }
.network-overview { padding:8px 18px 18px; }
.network-state-map { position:relative;aspect-ratio:344/320;width:100%;max-width:344px;margin:0 auto; }
.network-state-map svg { display:block;width:100%;height:100%; }
.network-state-map svg path { fill:var(--colour-surface-subtle);stroke:var(--colour-surface);stroke-width:2;stroke-linejoin:round;cursor:pointer; }
.network-state-map svg path[data-active="true"] { fill:var(--signal);opacity:0;transition:opacity 180ms var(--ease-out); }
.network-state-map svg path[data-active="true"][data-enabled="true"] { opacity:1; }
.network-state-map svg path[data-available="false"] { fill:var(--colour-surface-subtle);cursor:default; }
.network-state-map svg path.is-hovered, .network-state-map svg path[data-active="true"][data-available="true"]:hover { fill:color-mix(in srgb,var(--signal) 65%,var(--colour-surface)); }
.network-state-map svg path[data-active="true"][data-enabled="false"].is-hovered,
.network-state-map svg path[data-active="true"][data-enabled="false"][data-available="true"]:hover { opacity:.18; }
.network-state-map:has(:focus-visible) svg path { transition:none; }
.network-state-button { position:absolute;transform:translate(-50%,-50%);min-width:44px;min-height:44px;border:0;border-radius:12px;background:transparent;color:var(--colour-ink-strong);font:700 12px/1 var(--font-ui);padding:0;cursor:pointer; }
.network-state-button:is([aria-pressed="true"],[aria-pressed="mixed"]) { color:#263137; }
.network-state-button:disabled { color:var(--colour-ink-muted);cursor:default; }
.network-state-button:focus-visible { outline:2px solid var(--colour-ink-strong);outline-offset:1px;background:var(--colour-surface); }
.network-overview-state-actions { display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 18px; }
.network-overview-state-status { font-size:12px;line-height:18px;color:var(--colour-ink-muted);margin:0;flex-basis:100%; }
.network-overview-national { border:0;background:var(--colour-surface-subtle);border-radius:12px;min-height:44px;padding:8px 12px;font:600 12px/16px var(--font-ui);color:var(--colour-ink-strong);cursor:pointer; }
.network-overview-modes { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px; }
.network-overview-tile { min-width:0;border-radius:16px;background:var(--colour-surface-subtle);overflow:clip; }
.network-overview-tile:has(.network-overview-mode:is([aria-pressed="true"],[aria-pressed="mixed"])) { background:color-mix(in srgb,var(--mode-colour) 16%,var(--colour-surface)); }
.network-overview-mode { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-width:0;min-height:96px;padding:12px 4px;border:0;background:transparent;color:var(--colour-ink-strong);cursor:pointer;transition:transform 120ms var(--ease-out); }
.network-overview-mode strong { font-size:13px;line-height:18px; }
.network-overview-mode-icon { width:32px;height:32px;color:var(--mode-colour); }
.network-overview-mode-icon svg { width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.network-overview-mode-status { color:var(--colour-ink-muted);font-size:11px;line-height:14px; }
.network-overview-mode:disabled,.network-overview-arrow:disabled { cursor:default;opacity:.6; }
.network-overview-arrow { display:grid;place-items:center;min-height:44px;width:100%;padding:0;border:0;border-top:1px solid color-mix(in srgb,var(--mode-colour) 25%,var(--colour-border));background:transparent;color:var(--colour-ink-strong);cursor:pointer; }
.network-overview-arrow svg { width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round; }
.network-overview[data-motion="pointer"] .network-overview-arrow svg { transition:transform 180ms var(--ease-out); }
.network-overview-arrow[aria-expanded="true"] svg { transform:rotate(180deg); }
.network-overview-tile:has(.network-overview-arrow[aria-expanded="true"]) { border-radius:16px 16px 0 0; }
.network-overview-arrow[aria-expanded="true"] { background:color-mix(in srgb,var(--mode-colour) 20%,var(--colour-surface)); }
.network-overview-tray { display:grid;grid-template-rows:0fr;opacity:0;pointer-events:none;transition:none;background:color-mix(in srgb,var(--mode-colour) 20%,var(--colour-surface));border-radius:0 0 16px 16px; }
.network-overview[data-motion="pointer"] .network-overview-tray { transition:grid-template-rows 120ms var(--ease-out),opacity 120ms var(--ease-out); }
.network-overview[data-open-mode]:not([data-open-mode=""]) .network-overview-tray { grid-template-rows:1fr;opacity:1;pointer-events:auto; }
.network-overview[data-motion="pointer"][data-open-mode]:not([data-open-mode=""]) .network-overview-tray { transition-duration:180ms; }
.network-overview-tray-body { overflow:hidden;min-height:0; }
.network-overview-subtypes { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:20px 12px; }
.network-overview-subtype { border:0;background:transparent;color:var(--colour-ink-strong);min-height:44px;padding:8px 4px;border-radius:12px;font:600 12px/16px var(--font-ui);cursor:pointer; }
.network-overview-subtype:is([aria-pressed="true"],[aria-pressed="mixed"]) { background:var(--colour-ink-strong);color:var(--colour-surface); }
.network-overview-subtype[aria-pressed="true"]::before { content:"";display:inline-block;width:6px;height:3px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);margin-right:5px;vertical-align:3px; }
.network-overview-mode:focus-visible,.network-overview-arrow:focus-visible { outline:2px solid var(--colour-ink-strong);outline-offset:-4px;border-radius:12px; }
.network-overview-national:focus-visible,.network-overview-subtype:focus-visible { outline:2px solid var(--colour-ink-strong);outline-offset:3px; }
.network-overview-map-credit { display:block;width:fit-content;margin-top:14px;color:var(--colour-ink-muted);font:500 11px/16px var(--font-ui);text-underline-offset:3px; }
.network-overview-note { font-size:12px;line-height:18px;color:var(--colour-ink-muted);margin:8px 0 0; }
@media (hover:hover) and (pointer:fine) {
 .network-overview-mode:not(:disabled):hover,.network-overview-arrow:not(:disabled):hover { background:color-mix(in srgb,var(--mode-colour) 8%,transparent); }
 .network-overview-all-on:hover,.network-overview-national:hover,.network-overview-subtype[aria-pressed="false"]:hover { background:var(--colour-border); }
}
.network-overview-mode:not(:disabled):active { transform:scale(.97); }
.network-overview:has(:focus-visible) .network-overview-mode { transition:none; }
.network-overview:has(:focus-visible) .network-overview-mode:not(:disabled):active { transform:none; }
:root[data-effects="performance"] .network-overview *, :root[data-effects="performance"] .network-state-map svg path { transition:none; }
:root[data-effects="performance"] .network-overview[data-motion="pointer"] .network-overview-tray { transition:none; }
:root[data-effects="performance"] .network-overview-mode:not(:disabled):active { transform:none; }
@media (prefers-reduced-motion:reduce) {
 .network-overview *, .network-state-map svg path { transition:none!important; }
 .network-overview-mode:not(:disabled):active { transform:none; }
}
@media (max-width:700px) {
 .network-overview { padding:6px 14px 14px; }
 .network-state-map { max-width:280px; }
 .network-overview-mode { min-height:86px;padding:10px 2px;gap:4px; }
 .network-overview-mode-icon { width:26px;height:26px; }
 .network-overview-modes { gap:5px; }
 .network-overview-subtypes { gap:6px;padding:16px 8px; }
}
@media (max-width:360px) { .network-state-button { font-size:10px; } }
.network-region-choice .network-state-map { margin:12px auto; }
.network-state-button,.network-overview button { touch-action:manipulation; }
/* TAS is a small island at diagram scale: keep its short label within the land. */
.network-state-button[data-state="TAS"] { font-size:10px; }
@media (max-width:700px) { .network-state-button[data-state="TAS"] { font-size:9px; } }

.network-state-button[data-state="NSW"] { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px; }
.network-state-act-label { font-size:8px;font-weight:600;line-height:1; }
.network-overview-tray-actions { display:flex;justify-content:flex-end;padding:12px 12px 0; }
.network-overview-all-on { min-height:44px;border:1px solid color-mix(in srgb,var(--mode-colour) 30%,var(--colour-border));border-radius:12px;background:var(--colour-surface);color:var(--colour-ink-strong);padding:8px 14px;font:650 12px/16px var(--font-ui);cursor:pointer; }
.network-overview-all-on:focus-visible { outline:2px solid var(--colour-focus);outline-offset:2px; }

.network-overview-tray-actions + .network-overview-subtypes { padding-top:8px; }
