/* Public network overview; white and warm orange follow the APP brand. */
.network-section { max-width:1120px; margin:0 auto; padding:20px 24px 112px; }
.network-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:32px; }
.network-copy h2 { font-size:38px; line-height:1.25; letter-spacing:-1.3px; text-wrap:balance; }
.network-copy p { margin-top:12px; color:var(--muted,#70665f); font-size:15px; line-height:1.7; }
.network-totals { display:flex; gap:40px; flex-shrink:0; padding-bottom:4px; }
.network-totals > div { display:flex; flex-direction:column; gap:7px; }
.network-totals strong { font-size:40px; font-weight:800; line-height:1; color:var(--green-deep,#e07b24); font-variant-numeric:tabular-nums; letter-spacing:-1.5px; }
.network-totals span { color:var(--muted,#70665f); font-size:13px; }
.network-card { border:1px solid #efe7df; border-radius:24px; overflow:hidden; background:linear-gradient(150deg,#fffefd,#fff9f2); }
.network-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:22px 26px 0; }
.network-toolbar-copy { display:flex; flex-direction:column; gap:8px; min-width:0; }
.network-status { display:inline-flex; align-items:center; gap:8px; color:#796c60; font-size:12px; line-height:1.5; }
.network-status i { width:7px; height:7px; flex-shrink:0; border-radius:50%; background:#baaea2; }
[data-state="live"] .network-status i { background:#399779; box-shadow:0 0 0 4px #39977912; }
[data-state="error"] .network-status i { background:#b38b64; }
.network-hint { color:#796c60; font-size:12px; }
.network-map-scroll { direction:ltr; padding:10px 14px; }
.network-map-stage { position:relative; width:100%; min-width:0; aspect-ratio:964/624.64; overflow:hidden; border-radius:12px; background-image:radial-gradient(#bd9b7b26 .7px,transparent .7px); background-size:14px 14px; }
.network-map-canvas { position:absolute; inset:0; touch-action:none; user-select:none; -webkit-user-select:none; cursor:grab; }
.network-map-stage[data-dragging="true"] .network-map-canvas,.network-map-stage[data-dragging="true"] .network-pin { cursor:grabbing; }
[data-state="loading"] .network-map-canvas,[data-state="error"] .network-map-canvas,[data-state="empty"] .network-map-canvas { touch-action:pan-y; cursor:default; }
.network-map-land { width:100%; height:100%; display:block; transform-origin:0 0; user-select:none; pointer-events:none; }
.network-map-pins { position:absolute; inset:0; }
.network-pin { position:absolute; width:44px; height:44px; transform:translate(-50%,-50%); border:0; background:transparent; display:grid; place-items:center; border-radius:50%; cursor:pointer; padding:0; touch-action:none; }
.network-pin-badge { display:grid; place-items:center; width:10px; height:10px; border:2px solid #fff; border-radius:50%; background:#dc7c29; box-shadow:0 0 0 4px #ed974c20; transition:box-shadow 160ms ease,background-color 160ms ease; pointer-events:none; }
.network-pin.is-cluster .network-pin-badge { width:32px; height:32px; color:#fff; font-size:12px; font-family:inherit; font-weight:700; line-height:1; font-variant-numeric:tabular-nums; }
.network-pin:hover,.network-pin:focus-visible,.network-pin[aria-pressed="true"] { z-index:2; }
.network-pin:hover .network-pin-badge,.network-pin:focus-visible .network-pin-badge,.network-pin[aria-pressed="true"] .network-pin-badge { background:#bd6019; box-shadow:0 0 0 6px #ed974c28; }
.network-pin:active { transform:translate(-50%,-50%); }
.network-popup { position:absolute; z-index:3; box-sizing:border-box; width:208px; max-width:calc(100% - 16px); max-height:calc(100% - 16px); overflow:auto; overscroll-behavior:contain; touch-action:pan-y; padding:8px; border:1px solid #ead8c6; border-radius:16px; background:#fffefc; box-shadow:0 6px 24px #65421c26; text-align:start; }
.network-popup-heading { display:flex; align-items:flex-start; gap:4px; }
.network-popup-copy { display:flex; flex:1; min-width:0; flex-direction:column; gap:6px; padding:9px 0 9px 7px; }
[dir="rtl"] .network-popup { direction:rtl; }
[dir="rtl"] .network-popup-copy { padding-inline:7px 0; }
#networkDetailName { font-size:14px; font-weight:650; line-height:1.5; color:var(--ink,#171412); overflow-wrap:anywhere; }
#networkDetailCount { color:#7b6c60; font-size:12px; line-height:1.5; font-variant-numeric:tabular-nums; }
.network-popup-close { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; border:0; border-radius:10px; background:transparent; color:#827265; cursor:pointer; }
.network-popup-close:hover { background:#fff2e3; }
.network-popup-regions { display:flex; flex-direction:column; gap:10px; margin:0 7px 8px; padding:12px 0 0; border-top:1px solid #f0e5d9; list-style:none; font-size:12px; line-height:1.5; }
.network-popup-regions li { display:flex; justify-content:space-between; gap:10px; }
.network-popup-regions li span:last-child { flex-shrink:0; color:#7b6c60; font-variant-numeric:tabular-nums; }
.network-footnote { display:flex; justify-content:space-between; flex-wrap:wrap; gap:4px 20px; padding:0 26px 19px; background:#ffffffb3; color:#7b6c60; font-size:11px; line-height:1.65; }
.network-noscript { padding:0 24px 22px; color:#827467; font-size:13px; }
.network-section [hidden] { display:none !important; }
.network-section button:focus-visible,.network-map-stage:focus-visible { outline:2px solid #a95415; outline-offset:2px; }
.network-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; }
@media(max-width:768px) {
  .network-section { padding:6px 18px 78px; }
  .network-heading { align-items:flex-start; flex-direction:column; gap:24px; margin-bottom:22px; }
  .network-copy h2 { font-size:30px; letter-spacing:-1px; }
  .network-copy p { font-size:14px; margin-top:9px; }
  .network-totals { gap:42px; }
  .network-totals strong { font-size:34px; }
  .network-card { border-radius:18px; }
  .network-toolbar { padding:16px 14px 4px; align-items:flex-start; flex-direction:column; gap:10px; }
  .network-toolbar-copy { gap:6px; }
  .network-hint { font-size:11px; }
  .network-map-scroll { padding:14px 6px 12px; }
  .network-footnote { padding:0 16px 17px; }
}
@media(prefers-reduced-motion:reduce) {
  .network-pin-badge { transition:none; }
}
