/* Edge Scanner tab — Trade Advisor
   Spec: docs/specs/EDGE_LIFECYCLE_SPECIFICATION_v1 (1).md (Task 7)
   Scope: .edge-scanner-tab and descendants only; no global selectors. */

/* No top padding — aligns Edge's grid vertically with Campaigns + Income
   (neither of those adds padding to their tab-content panel). Gap between
   header and results kept tight so the Tabulator grid starts at roughly
   the same Y as other tabs. */
.edge-scanner-tab {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0;
}

.edge-scanner-tab .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.edge-scanner-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.edge-filters {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

/* Inline label + input: compact horizontal layout so Edge's filter row
   takes one row (like Campaigns) instead of two. */
.edge-filters .filter-group {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.edge-filters .filter-label {
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-tertiary, #98a0a8);
    white-space: nowrap;
}

.edge-toggle {
    display: inline-flex;
    border: 1px solid var(--border-color, #2a323b);
    border-radius: 6px;
    overflow: hidden;
}

.edge-toggle-btn {
    background: transparent;
    border: none;
    padding: 6px 14px;
    font-size: 13px;
    color: var(--text-secondary, #c0c6cc);
    cursor: pointer;
}

.edge-toggle-btn.active {
    background: var(--accent-blue, #3b82f6);
    color: #ffffff;
}

.edge-select,
.edge-input,
.edge-input-sm {
    background: var(--bg-secondary, #1a1f26);
    border: 1px solid var(--border-color, #2a323b);
    border-radius: 6px;
    padding: 6px 10px;
    font-size: 13px;
    color: var(--text-primary, #e6ebf0);
    min-height: 32px;
}

.edge-input-sm {
    width: 68px;
}

.edge-dte-range {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-tertiary, #98a0a8);
}

.edge-refresh-btn {
    background: var(--bg-secondary, #1a1f26);
    border: 1px solid var(--border-color, #2a323b);
    border-radius: 6px;
    padding: 6px 12px;
    font-size: 13px;
    color: var(--text-primary, #e6ebf0);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
}

.edge-refresh-btn:hover {
    background: var(--bg-hover, #222831);
}

.edge-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-tertiary, #98a0a8);
}

.edge-meta-label {
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.edge-meta-sep {
    color: var(--border-color, #2a323b);
}

.edge-results {
    min-height: 240px;
}

.edge-empty-state {
    padding: 48px 16px;
    text-align: center;
    color: var(--text-tertiary, #98a0a8);
    font-size: 14px;
}

.edge-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
}

.edge-cell-edge {
    background: rgba(34, 197, 94, 0.18);
    color: #22c55e;
}

.edge-cell-fair {
    background: rgba(148, 163, 184, 0.18);
    color: #94a3b8;
}

.edge-cell-underpaid {
    background: rgba(239, 68, 68, 0.18);
    color: #ef4444;
}

.edge-cell-validated {
    background: rgba(59, 130, 246, 0.18);
    color: #3b82f6;
}

.edge-cell-estimated {
    background: rgba(148, 163, 184, 0.12);
    color: #94a3b8;
}
