.scan-page { padding-block: clamp(34px, 7vw, 80px); }
.scan-panel, .results { margin-top: 28px; border: 1px solid var(--line); padding: clamp(17px, 4vw, 30px); background: #09160f; }
.scan-panel { display: grid; gap: 12px; max-width: 740px; }
.scan-panel label { display: grid; gap: 6px; font-weight: 700; }
.scan-panel input { width: 100%; color: inherit; font: inherit; padding: 10px 12px; background: #050a07; border: 1px solid var(--line); }
.scan-panel input:focus-visible, button:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.hint { color: var(--muted); margin: 0; }
button.action { width: fit-content; font-size: .95rem; border: 0; cursor: pointer; }
button.action:disabled { opacity: .55; cursor: wait; }
button[hidden] { display: none; }
#status { color: var(--muted); }
table { width: 100%; border-collapse: collapse; overflow-wrap: anywhere; }
th, td { padding: 8px; text-align: left; border-bottom: 1px solid var(--line); }
td[data-status="open"] { color: var(--green); font-weight: 750; }
.archive-results { overflow-x: auto; }
.archive-table { min-width: 640px; }
.scan-panel .all-ports { display: flex; align-items: center; gap: 8px; }
.scan-panel .all-ports input { width: auto; }
.result-controls { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.result-controls select { margin-left: 8px; padding: 5px; }
