.wsp-ip{display:inline;white-space:nowrap}.wsp-ip button{display:inline-flex;align-items:center;gap:5px;padding:0!important;border:0!important;background:transparent!important;color:inherit!important;font:inherit;line-height:inherit;cursor:pointer;vertical-align:baseline}.wsp-ip button:hover{text-decoration:underline}.wsp-ip svg{width:21px;height:16px;vertical-align:middle;flex-shrink:0;filter:drop-shadow(0 0 1px #87929c)}.wsp-ip .wsp-ip-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 21px;width:21px;min-width:21px;height:16px;line-height:1;font-size:12px;opacity:1}.wsp-ip-dialog{color:var(--text,#e8edf2);background:var(--panel,#111923);border:1px solid #344252;border-radius:14px;width:min(640px,calc(100vw - 32px));max-height:85vh;padding:22px;overflow:auto;box-shadow:0 12px 60px #0008}.wsp-ip-dialog::backdrop{background:#0009}.wsp-ip-dialog header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.wsp-ip-dialog h2{font-size:22px;margin:0}.wsp-ip-dialog dl{display:grid;grid-template-columns:minmax(110px,1fr) 3fr;gap:12px}.wsp-ip-dialog dt{color:#9aafc0}.wsp-ip-dialog dd{margin:0;overflow-wrap:anywhere}.wsp-ip-dialog p{color:#aebcca;line-height:1.5}.wsp-ip-dialog a{color:#4edac4}.wsp-ip-dialog button{cursor:pointer}.wsp-ip-dialog [data-ip-status]{min-height:24px}

.wsp-ip button{gap:6px;white-space:nowrap}.wsp-ip svg{display:block}.table-wrap td:has(> .wsp-ip){min-width:calc(15ch + 47px)}


/* Shared IP layout: address + fixed flag slot are present before first paint. */
.wsp-ip { display: inline-block; max-width: none; vertical-align: baseline; white-space: nowrap; }
.wsp-ip button { width: max-content; min-width: max-content; max-width: none; flex-wrap: nowrap; overflow: visible; text-overflow: clip; }
[data-wsp-ip-scroll] { max-width: 100%; overflow-x: auto !important; }
[data-wsp-ip-cell] { overflow: visible !important; }
[data-wsp-ip-column] { min-width: 180px !important; width: 180px; white-space: nowrap !important; }
table[data-wsp-ip-table]:not(.stream-management-table):not(.line-management-table):not(.live-connections-table) { table-layout: auto !important; }
.entity-relation:has(.wsp-ip) { overflow: visible; text-overflow: clip; max-width: none; }
.server-status-name > span:has(.wsp-ip) { overflow: visible; text-overflow: clip; white-space: normal; }
.server-status-name .wsp-ip { min-width: max-content; }
.stream-management-table .stream-col-server { min-width: 200px !important; }
.stream-output-server .wsp-ip { white-space: nowrap; }
.live-connections-table { width: 100%; min-width: 2125px !important; table-layout: auto !important; }
.live-connections-table col[data-table-column="status"] { width: 95px; }
.live-connections-table col[data-table-column="line"] { width: 150px; }
.live-connections-table col[data-table-column="stream"] { width: 160px; }
.live-connections-table col[data-table-column="ip"] { width: 190px; }
.live-connections-table col[data-table-column="isp"] { width: 170px; }
.live-connections-table col[data-table-column="device"] { width: 220px; }
.live-connections-table col[data-table-column="app"] { width: 300px; }
.live-connections-table col[data-table-column="server"] { width: 180px; }
.live-connections-table col[data-table-column="duration"] { width: 115px; }
.live-connections-table col[data-table-column="output"] { width: 90px; }
.live-connections-table col[data-table-column="quality"] { width: 170px; }
.live-connections-table col[data-table-column="restreamer"] { width: 95px; }
.live-connections-table col[data-table-column="seen"] { width: 160px; }
.live-connections-table col[data-table-column="actions"] { width: 200px; }
.live-connections-table th, .live-connections-table td { white-space: normal; overflow-wrap: anywhere; }
.live-connections-table td[data-live-ip] { min-width: 190px !important; white-space: nowrap !important; }

.ip-geodata-credit{padding:6px 22px 10px;color:var(--muted,#aebcca);font-size:11px;line-height:1.5}.ip-geodata-credit a{color:inherit;text-decoration:none}.ip-geodata-credit a:hover,.ip-geodata-credit a:focus-visible{text-decoration:underline}
