/* Switch: porty — klikateľné, detail portu, PoE skrat, pomalá linka (14. 10. 2026). Načítava index.php aj proj.php (ARTEMIS aj LAGOM). */
/* ── Switch: klikateľné porty, detail portu, PoE skrat, pomalá linka (14. 10. 2026) ── */
.swp[data-p]{cursor:pointer}
.swp.sel{outline:2px solid #4c9dff;outline-offset:1px;z-index:3}
.swp.slow{border-color:#e0a21a !important}
.swp.slow b{background:#e0a21a !important;box-shadow:0 0 5px #e0a21a !important}
.swp.fault{border-color:#e5484d !important;background:linear-gradient(180deg,#4a2226,#2a1416) !important}
.swp.fault u{color:#ffb4b8 !important}
.swp.fault::before{content:"⚡";position:absolute;top:-6px;right:-4px;font-size:9px;line-height:1;color:#ff5a62}
.swc.warn{background:rgba(224,162,26,.14);border-color:rgba(224,162,26,.45);color:#b97c00}
.swf-pinfo{margin-top:8px;padding:10px 12px;border:1px solid rgba(127,127,127,.35);border-radius:10px;background:rgba(127,127,127,.09);font-size:12.5px;animation:rcFade .18s ease both}
.swf-pinfo .pi-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.swf-pinfo .pi-h b{font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px}
.swf-pinfo .pi-l{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.swf-pinfo .pi-l i{font-weight:400;opacity:.6}
.swf-pinfo .pi-x{border:0;background:transparent;color:inherit;opacity:.6;font-size:14px;cursor:pointer;padding:2px 6px}
.swf-pinfo .pi-x:hover{opacity:1}
.swf-pinfo .pi-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px}
.swf-pinfo .pi-g small{display:block;opacity:.62;font-size:10.5px;margin-bottom:1px}
.swf-pinfo .pi-g b{font-size:12.5px}
.swf-pinfo .pi-b{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.swf-pinfo .pi-wait,.swf-pinfo .pi-note{font-size:11.5px;opacity:.75}
@keyframes rcFade{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}

/* switch: porty — svetlá verzia (14. 10. 2026) */
html:not([data-theme=dark]) .swp.fault{background:#fdeaec !important;border-color:#d0364a !important}
html:not([data-theme=dark]) .swp.fault u{color:#a3122d !important}
html:not([data-theme=dark]) .swp.slow{border-color:#d99a12 !important}
html:not([data-theme=dark]) .swp.slow b{background:#d99a12 !important;box-shadow:none !important}
html:not([data-theme=dark]) .swp.sel{outline-color:#262478}
html:not([data-theme=dark]) .swf-pinfo{background:#f4f6fc;border-color:#d9deee;color:#1b1d2e}
html:not([data-theme=dark]) .swc.warn{background:#fbf2dc;border-color:#ecd9a6;color:#7a560d}

/* bezpečná aktualizácia spojov */
.lc-safe,.safe-all{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:12.5px;margin:6px 2px 4px}
.safe-all{padding:10px 12px;border:1px solid rgba(127,127,127,.35);border-radius:10px;background:rgba(127,127,127,.08);margin:6px 0 12px}
.lc-safe small,.safe-all small{opacity:.65;font-size:11.5px}
.safe-run{font-weight:600;color:#4c9dff}
.lc-safe .pbtn[disabled]{opacity:.45;cursor:not-allowed}

/* sken siete podľa IP plánu */
.ipp{margin:18px 0 8px;border:1px solid rgba(127,127,127,.35);border-radius:12px;background:rgba(127,127,127,.06);padding:2px 14px}
.ipp>summary{cursor:pointer;padding:12px 0;font-weight:700;list-style:none}
.ipp>summary::-webkit-details-marker{display:none}
.ipp>summary::before{content:"▸ ";opacity:.6}.ipp[open]>summary::before{content:"▾ "}
.ipp-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;font-size:12px;opacity:.85;margin-bottom:8px}
.ipp-f{display:flex;gap:6px}
.ipp-w{overflow-x:auto;padding-bottom:12px}
.ipp-t{border-collapse:collapse;width:100%;font-size:12.5px;min-width:560px}
.ipp-t th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;opacity:.65;padding:6px 8px;border-bottom:1px solid rgba(127,127,127,.35)}
.ipp-t td{padding:5px 8px;border-bottom:1px solid rgba(127,127,127,.18)}
.ipp-t td.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11.5px}
.ipp[data-mode="bad"] .ipp-t tr.ok{display:none}
.ipp-st{display:inline-block;padding:1px 9px;border-radius:999px;font-size:11px;font-weight:700}
.ipp-st.ok{background:rgba(32,160,100,.16);color:#14804e}.ipp-st.bad{background:rgba(220,60,70,.15);color:#b3243f}
.ipp-t tr.bad td:nth-child(2){color:#b3243f}
