:root{--bg: #eef1f4;--bg-elevated: #ffffff;--ink: #1a2332;--ink-muted: #5c6b7a;--line: #d3dae3;--accent: #0b6e4f;--accent-soft: #d8f3e7;--danger: #b42318;--danger-soft: #fdecea;--warn: #b54708;--warn-soft: #fff4e5;--map-idle: #cfd8e3;--map-stroke: #8a97a8;--shadow: 0 1px 2px rgb(26 35 50 / 6%), 0 8px 24px rgb(26 35 50 / 6%);font-family:IBM Plex Sans,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.45}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(1200px 500px at 10% -10%,#d9e8f5 0%,transparent 55%),radial-gradient(900px 400px at 90% 0%,#dcefe6 0%,transparent 50%),var(--bg)}button,select,input{font:inherit}a{color:var(--accent)}.app{max-width:1280px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.header h1{margin:0;font-size:1.6rem;font-weight:600;letter-spacing:-.02em}.header p{margin:.25rem 0 0;color:var(--ink-muted);font-size:.95rem}.stats{display:flex;gap:.75rem}.stat{background:var(--bg-elevated);border:1px solid var(--line);border-radius:10px;padding:.65rem .9rem;min-width:7rem;box-shadow:var(--shadow)}.stat .label{display:block;font-size:.75rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em}.stat .value{font-family:IBM Plex Mono,monospace;font-size:1.35rem;font-weight:500}.stat.open .value{color:var(--danger)}.layout{display:flex;flex-direction:column;gap:1rem}.map-panel.collapsed .panel-header{border-bottom:0}.map-toggle{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .7rem;cursor:pointer;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font-size:.85rem}.map-toggle:hover{background:#e8eef4}.panel{background:var(--bg-elevated);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.panel-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1rem;border-bottom:1px solid var(--line)}.panel-header h2{margin:0;font-size:1rem;font-weight:600}.filters{display:flex;flex-wrap:wrap;gap:.5rem}.filters select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.4rem .65rem;color:var(--ink)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg)}.seg button{border:0;background:transparent;padding:.4rem .7rem;cursor:pointer;color:var(--ink-muted)}.seg button.active{background:var(--ink);color:#fff}.map-wrap{padding:.35rem .75rem .15rem;overflow:hidden}.map-wrap svg{display:block;max-width:100%;overflow:hidden}.map-legend{display:flex;gap:1rem;padding:0 1rem .85rem;font-size:.8rem;color:var(--ink-muted)}.legend-swatch{display:inline-block;width:.7rem;height:.7rem;border-radius:2px;margin-right:.35rem;vertical-align:-1px}.legend-dot{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;margin-right:.35rem;vertical-align:0;box-shadow:0 0 0 1.5px #fff}.legend-dot-md{width:.7rem;height:.7rem}.legend-dot-lg{width:.85rem;height:.85rem}.outage-dot{transition:r .12s ease,fill .12s ease}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.7rem .85rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);font-weight:500;background:#f7f9fb;position:sticky;top:0}tr:last-child td{border-bottom:0}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#f3f7f5}tr.selected td{background:var(--accent-soft)}.badge{display:inline-block;font-family:IBM Plex Mono,monospace;font-size:.72rem;font-weight:500;padding:.15rem .45rem;border-radius:999px}.badge.open{background:var(--danger-soft);color:var(--danger)}.badge.closed{background:#eef2f6;color:var(--ink-muted)}.mono{font-family:IBM Plex Mono,monospace;font-size:.84rem}.muted{color:var(--ink-muted)}.network-name{font-weight:500}.error,.empty{padding:1.5rem 1rem;color:var(--ink-muted)}.error{color:var(--danger)}.hint{margin:.75rem 0 0;font-size:.85rem;color:var(--ink-muted)}
