/* Port checker results. */
.port-table { width: 100%; border-collapse: collapse; margin-top: 1rem; }
.port-table th,
.port-table td { padding: 0.55rem 0.7rem; text-align: left; border-bottom: 1px solid var(--border); }
.port-table th { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-dim); }
.port-table td.port { font-family: var(--mono); font-weight: 600; color: var(--brand-bright); }
.port-table td.detail { color: var(--text-dim); font-size: 0.88rem; }
.port-table tr:last-child td { border-bottom: 0; }
.port-table tr.risky td.port { color: var(--pending); }

.pill { display: inline-block; padding: 0.12rem 0.55rem; border-radius: 999px;
        font-size: 0.8rem; font-weight: 600; white-space: nowrap; }
.pill-open { background: #2fd08a22; color: var(--ok); }
.pill-closed { background: #8e9bb022; color: var(--text-dim); }
.pill-filtered { background: #f0a83c22; color: var(--pending); }

.port-picker { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; margin: 0.9rem 0; }
.port-picker label { display: inline-flex; align-items: center; gap: 0.35rem;
                     font-size: 0.9rem; color: var(--text-dim); cursor: pointer; }
.port-picker input { accent-color: var(--brand); }
.port-summary { margin-top: 1rem; padding: 0.9rem 1rem; border-radius: var(--radius);
                background: var(--brand-soft); border: 1px solid var(--border-solid);
                line-height: 1.55; }
