/* =================================================================
   PORT-SCAN.CSS — styly generované JS (renderResults, startScan)
   Závisí na: common.css (proměnné), components.css (table-ref)
   ================================================================= */

/* Výsledky skenu — barevné řádky */
.table-ref tbody tr.row-open-high   { background: color-mix(in srgb, var(--color-red)    6%, transparent); }
.table-ref tbody tr.row-open-medium { background: color-mix(in srgb, var(--color-orange) 6%, transparent); }

/* Port číslo a popis služby */
.port-num  { font-weight: 700; color: var(--text-main); }
.port-name { font-weight: 600; color: var(--text-main); }
.port-desc { font-size: var(--size-12); color: var(--text-muted); margin-top: 2px; }

/* Risk badge (low / medium / high) */
.risk-badge          { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: var(--size-11); font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; }
.risk-badge.risk-low    { background: color-mix(in srgb, var(--color-green)  12%, transparent); color: var(--color-green); }
.risk-badge.risk-medium { background: color-mix(in srgb, var(--color-orange) 12%, transparent); color: var(--color-orange); }
.risk-badge.risk-high   { background: color-mix(in srgb, var(--color-red)    12%, transparent); color: var(--color-red); }

/* Hlavička výsledků (IP + souhrn) */
.result-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-block-end: 12px;
}
.result-ip      { font-size: var(--size-13); color: var(--text-muted); }
.result-summary { font-size: var(--size-13); font-weight: 600; }
.result-summary.all-clear { color: var(--color-green); }
.result-summary.has-risk  { color: var(--color-red); }

/* Progress bar během skenu */
.scan-progress       { margin-block: 20px; }
.progress-bar-track  { height: 8px; border-radius: 4px; background: var(--border-color); overflow: hidden; }
.progress-bar-fill   { height: 100%; border-radius: 4px; background: var(--accent-color); transition: width 0.3s ease; }
.scan-progress-label { font-size: var(--size-13); color: var(--text-muted); margin-block-start: 6px; }

/* Souhrn po skenu (počty open / closed / filtered) */
.port-stats     { display: flex; gap: 16px; flex-wrap: wrap; margin-block: 16px; }
.port-stat      { background: var(--bg-data-box); border: 1px solid var(--border-color); border-radius: 8px; padding: 12px 16px; text-align: center; flex: 1; min-width: 80px; }
.port-stat-num  { font-size: var(--size-24); font-weight: 700; }
.port-stat-label { font-size: var(--size-11); color: var(--text-muted); margin-block-start: 2px; }
.stat-open     { color: var(--color-green); }
.stat-closed   { color: var(--text-muted); }
.stat-filtered { color: var(--color-orange); }
