:root {
    --bg-primary: #0a0e1a;
    --bg-secondary: #111827;
    --bg-card: #1a1f35;
    --bg-card-hover: #1f2647;
    --border: #2a3155;
    --text-primary: #e8ecf4;
    --text-secondary: #8892b0;
    --text-muted: #5a637a;
    --accent: #6366f1;
    --accent-glow: rgba(99, 102, 241, 0.3);
    --success: #10b981;
    --danger: #ef4444;
    --warning: #f59e0b;
    --info: #3b82f6;
    --purple: #a855f7;
    --radius: 12px;
    --radius-sm: 8px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--bg-primary);
    color: var(--text-primary);
    min-height: 100vh;
    line-height: 1.6;
}

.app {
    max-width: 1180px;
    margin: 0 auto;
    padding: 20px;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Header */
.header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 0;
    margin-bottom: 24px;
    border-bottom: 1px solid var(--border);
}

.logo {
    font-size: 1.6rem;
    font-weight: 800;
    letter-spacing: -0.5px;
}

.logo span {
    background: linear-gradient(135deg, var(--accent), var(--purple));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.header-stats { display: flex; gap: 8px; }

.header-right { display: flex; align-items: center; gap: 12px; }

.version-tag {
    background: linear-gradient(135deg, var(--accent), var(--purple));
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    color: white;
    letter-spacing: 0.5px;
}

.stat-pill {
    background: var(--bg-card);
    border: 1px solid var(--border);
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--text-secondary);
}

/* Cards */
.card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    margin-bottom: 20px;
    transition: border-color 0.2s;
}

.card:hover { border-color: rgba(99, 102, 241, 0.3); }

.card h2 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 16px;
    color: var(--text-primary);
}

/* Engine Status Bar */
.engine-bar {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 10px 18px;
    background: linear-gradient(90deg, rgba(99,102,241,0.08), rgba(168,85,247,0.08), rgba(16,185,129,0.08));
    border: 1px solid rgba(99,102,241,0.15);
    border-radius: var(--radius);
    margin-bottom: 20px;
    font-size: 0.78rem;
    color: var(--text-secondary);
    flex-wrap: wrap;
}

.engine-method {
    display: flex;
    align-items: center;
    gap: 6px;
}

.engine-method b {
    color: var(--text-primary);
    font-weight: 600;
}

.method-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
    animation: pulse 2s ease-in-out infinite;
}

.method-dot.smtp { background: var(--success); box-shadow: 0 0 6px rgba(16,185,129,0.5); }
.method-dot.api { background: var(--info); box-shadow: 0 0 6px rgba(59,130,246,0.5); }
.method-dot.browser { background: var(--purple); box-shadow: 0 0 6px rgba(168,85,247,0.5); }

.engine-domains {
    margin-left: auto;
    font-weight: 700;
    color: var(--accent);
    font-size: 0.82rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 4px;
    transition: color 0.2s;
}
.engine-domains:hover {
    color: #818cf8;
}
.domain-arrow {
    font-size: 0.65rem;
    transition: transform 0.2s;
}
.domain-arrow.open {
    transform: rotate(90deg);
}

/* Domain Panel */
.domain-panel {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 12px;
    margin-bottom: 12px;
    overflow: hidden;
    animation: slideDown 0.2s ease-out;
}
@keyframes slideDown {
    from { opacity: 0; max-height: 0; }
    to { opacity: 1; max-height: 600px; }
}
.domain-panel.hidden {
    display: none;
}
.domain-panel-header {
    display: flex;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
    gap: 12px;
}
.domain-panel-title {
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--text-primary);
}
.domain-panel-count {
    font-size: 0.75rem;
    color: var(--text-secondary);
    margin-left: auto;
}
.domain-panel-close {
    background: none;
    border: none;
    color: var(--text-secondary);
    cursor: pointer;
    font-size: 1rem;
    padding: 0 4px;
}
.domain-panel-close:hover { color: var(--danger); }
.domain-panel-body {
    padding: 12px 16px;
    max-height: 400px;
    overflow-y: auto;
}
.domain-provider-group {
    margin-bottom: 10px;
}
.domain-provider-name {
    font-weight: 600;
    font-size: 0.78rem;
    color: var(--accent);
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.domain-provider-name .dp-count {
    font-weight: 400;
    font-size: 0.7rem;
    color: var(--text-secondary);
}
.domain-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}
.domain-tag {
    display: inline-block;
    background: rgba(99, 102, 241, 0.08);
    border: 1px solid rgba(99, 102, 241, 0.15);
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 0.7rem;
    color: var(--text-secondary);
    font-family: 'Inter', monospace;
}
.domain-loading {
    text-align: center;
    color: var(--text-secondary);
    padding: 20px;
    font-size: 0.8rem;
}

/* Method Badge */
.method-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.method-badge.SMTP { background: rgba(16,185,129,0.12); color: var(--success); }
.method-badge.MS-API { background: rgba(59,130,246,0.12); color: var(--info); }
.method-badge.Yahoo-Browser { background: rgba(168,85,247,0.12); color: var(--purple); }

/* Verify */
.verify-input-row {
    display: flex;
    gap: 10px;
    align-items: stretch;
}

.multi-hint {
    font-size: 0.72rem;
    font-weight: 400;
    color: var(--text-muted);
    margin-left: 8px;
}

/* Tag Input Container */
.tag-input-container {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 8px 12px;
    min-height: 48px;
    cursor: text;
    transition: border-color 0.2s;
}

.tag-input-container:focus-within {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--accent-glow);
}

.tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.tag-input-container input {
    flex: 1;
    min-width: 180px;
    background: transparent;
    border: none;
    color: var(--text-primary);
    font-size: 0.9rem;
    font-family: 'Inter', sans-serif;
    outline: none;
    padding: 4px 0;
}

.tag-input-container input::placeholder {
    color: var(--text-muted);
}

/* Email Tag Chip */
.email-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(135deg, rgba(99,102,241,0.15), rgba(168,85,247,0.15));
    border: 1px solid rgba(99,102,241,0.3);
    border-radius: 20px;
    padding: 4px 8px 4px 12px;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--text-primary);
    animation: chipIn 0.2s ease;
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.email-tag .tag-remove {
    background: none;
    border: none;
    color: var(--text-muted);
    font-size: 0.9rem;
    cursor: pointer;
    padding: 0 2px;
    border-radius: 50%;
    line-height: 1;
    transition: color 0.15s;
}

.email-tag .tag-remove:hover {
    color: var(--danger);
}

.email-tag.verifying {
    border-color: rgba(245,158,11,0.5);
    animation: tagPulse 1s ease infinite;
}

.email-tag.done-valid {
    border-color: rgba(16,185,129,0.5);
    background: rgba(16,185,129,0.1);
}

.email-tag.done-invalid {
    border-color: rgba(239,68,68,0.4);
    background: rgba(239,68,68,0.08);
}

@keyframes chipIn {
    from { opacity: 0; transform: scale(0.8); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes tagPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

/* Verify Toolbar */
.verify-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
    padding: 0 2px;
}

.verify-toolbar.hidden { display: none; }

.email-count {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--accent);
}

.btn-clear-tags {
    background: none;
    border: 1px solid rgba(239,68,68,0.3);
    color: var(--danger);
    padding: 4px 12px;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 500;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-clear-tags:hover {
    background: rgba(239,68,68,0.1);
    border-color: var(--danger);
}

/* Multi Results */
.multi-results {
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.multi-results.hidden { display: none; }

.multi-result-card {
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 14px 16px;
    animation: fadeIn 0.3s ease;
    animation-fill-mode: backwards;
    transition: border-color 0.3s;
}

.multi-result-card.VALID { border-left: 3px solid var(--success); }
.multi-result-card.INVALID { border-left: 3px solid var(--danger); }
.multi-result-card.CATCH_ALL { border-left: 3px solid var(--warning); }
.multi-result-card.UNKNOWN { border-left: 3px solid var(--text-muted); }
.multi-result-card.DISPOSABLE { border-left: 3px solid var(--danger); }

.multi-result-card .mr-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.multi-result-card .mr-email {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--text-primary);
}

.multi-result-card .mr-badges {
    display: flex;
    align-items: center;
    gap: 8px;
}

.multi-result-card .mr-details {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.multi-result-card .mr-detail .label {
    color: var(--text-muted);
    margin-right: 4px;
}

.multi-result-card.loading {
    border-left: 3px solid var(--accent);
    animation: tagPulse 1s ease infinite;
}

.multi-result-card.loading .mr-email::after {
    content: ' ⏳';
}

.verify-input-row button {
    background: linear-gradient(135deg, var(--accent), #4f46e5);
    color: white;
    border: none;
    border-radius: var(--radius-sm);
    padding: 12px 24px;
    font-size: 0.95rem;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: transform 0.1s, box-shadow 0.2s;
    white-space: nowrap;
    align-self: flex-start;
    min-height: 48px;
}

.verify-input-row button:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 15px var(--accent-glow);
}

.verify-input-row button:active { transform: translateY(0); }

.verify-input-row button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}

/* Result Box */
.result-box {
    margin-top: 16px;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 16px;
    animation: fadeIn 0.3s ease;
}

.result-box.hidden { display: none; }

.result-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.result-status {
    font-weight: 700;
    font-size: 1rem;
    padding: 4px 12px;
    border-radius: 6px;
}

.result-status.VALID { background: rgba(16, 185, 129, 0.15); color: var(--success); }
.result-status.INVALID { background: rgba(239, 68, 68, 0.15); color: var(--danger); }
.result-status.DISPOSABLE { background: rgba(239, 68, 68, 0.15); color: var(--danger); }
.result-status.ROLE_BASED { background: rgba(245, 158, 11, 0.15); color: var(--warning); }
.result-status.CATCH_ALL { background: rgba(245, 158, 11, 0.15); color: var(--warning); }
.result-status.UNKNOWN { background: rgba(138, 146, 176, 0.15); color: var(--text-secondary); }

.result-score {
    font-size: 1.8rem;
    font-weight: 800;
}

.result-score.low { color: var(--success); }
.result-score.medium { color: var(--warning); }
.result-score.high { color: var(--danger); }

.result-details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 8px;
    font-size: 0.85rem;
    color: var(--text-secondary);
}

.result-details span { display: flex; gap: 6px; }
.result-details .label { color: var(--text-muted); }

/* ═════════════════════════════════════════ */
/* Upload Zone                              */
/* ═════════════════════════════════════════ */
.upload-zone {
    border: 2px dashed var(--border);
    border-radius: var(--radius);
    padding: 40px 24px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    background: rgba(17, 24, 39, 0.5);
}

.upload-zone:hover,
.upload-zone.dragover {
    border-color: var(--accent);
    background: rgba(99, 102, 241, 0.05);
    box-shadow: 0 0 20px rgba(99, 102, 241, 0.1);
}

.upload-zone.dragover {
    transform: scale(1.01);
    border-style: solid;
}

.upload-icon {
    font-size: 2.5rem;
    margin-bottom: 12px;
    animation: floatIcon 3s ease-in-out infinite;
}

@keyframes floatIcon {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

.upload-text {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 6px;
}

.upload-subtext {
    font-size: 0.82rem;
    color: var(--text-muted);
    margin-bottom: 16px;
}

.upload-browse-btn {
    background: var(--bg-card);
    border: 1px solid var(--border);
    color: var(--text-secondary);
    padding: 8px 20px;
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
    font-weight: 500;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: all 0.2s;
}

.upload-browse-btn:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: rgba(99, 102, 241, 0.05);
}

/* File List */
.file-list {
    margin-top: 16px;
}

.file-list.hidden { display: none; }

.file-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    margin-bottom: 8px;
    animation: fadeIn 0.2s ease;
}

.file-item .file-info {
    display: flex;
    align-items: center;
    gap: 10px;
}

.file-item .file-name {
    font-weight: 500;
    color: var(--text-primary);
    font-size: 0.9rem;
}

.file-item .file-size {
    font-size: 0.78rem;
    color: var(--text-muted);
}

.file-item .file-remove {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 1.1rem;
    padding: 4px 8px;
    border-radius: 4px;
    transition: all 0.2s;
}

.file-item .file-remove:hover {
    color: var(--danger);
    background: rgba(239, 68, 68, 0.1);
}

/* Upload Actions */
.upload-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 12px;
    gap: 12px;
}

.upload-actions.hidden { display: none; }

.files-summary {
    font-size: 0.85rem;
    color: var(--text-secondary);
}

.upload-actions div { display: flex; gap: 8px; }

.btn-primary {
    background: linear-gradient(135deg, var(--accent), #4f46e5);
    color: white;
    border: none;
    border-radius: var(--radius-sm);
    padding: 10px 20px;
    font-size: 0.9rem;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 15px var(--accent-glow);
}

.btn-primary:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

.btn-secondary {
    background: var(--bg-secondary);
    color: var(--text-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 10px 16px;
    font-size: 0.9rem;
    font-weight: 500;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-secondary:hover {
    border-color: var(--text-muted);
    color: var(--text-primary);
}

/* ═══════════════════════════════════════════
   File Queue Panel (Multi-File)
   ═══════════════════════════════════════════ */
.fq-panel {
    padding: 12px 16px;
    margin-bottom: 8px;
    border: 1px solid rgba(99,102,241,0.15);
    background: rgba(99,102,241,0.03);
}
.fq-panel.hidden { display: none; }
.fq-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}
.fq-header-left {
    display: flex;
    align-items: center;
    gap: 8px;
}
.fq-header-icon { font-size: 1rem; }
.fq-header-text {
    font-family: 'Orbitron', monospace;
    font-size: 0.7rem;
    letter-spacing: 1.5px;
    color: var(--accent);
    font-weight: 600;
}
.fq-progress {
    height: 4px;
    background: rgba(99,102,241,0.1);
    border-radius: 2px;
    margin-bottom: 10px;
    overflow: hidden;
}
.fq-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--accent), #818cf8);
    border-radius: 2px;
    width: 0%;
    transition: width 0.4s ease;
}
.fq-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.fq-item {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 0.75rem;
    font-family: 'Inter', sans-serif;
    border: 1px solid var(--border);
    background: var(--bg-secondary);
    transition: all 0.3s;
}
.fq-item.fq-processing {
    border-color: rgba(34,211,238,0.4);
    background: rgba(34,211,238,0.06);
    animation: fq-pulse 1.5s ease-in-out infinite;
}
.fq-item.fq-done {
    border-color: rgba(52,211,153,0.3);
    background: rgba(52,211,153,0.05);
}
.fq-item.fq-error {
    border-color: rgba(248,113,113,0.3);
    background: rgba(248,113,113,0.05);
}
.fq-item.fq-waiting {
    opacity: 0.5;
}
.fq-icon { font-size: 0.8rem; }
.fq-name {
    color: var(--text-primary);
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.fq-count {
    color: var(--success);
    font-size: 0.65rem;
    font-weight: 600;
}
@keyframes fq-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(34,211,238,0.2); }
    50% { box-shadow: 0 0 8px 2px rgba(34,211,238,0.15); }
}

/* ═══════════════════════════════════════════
   Completed File Cards
   ═══════════════════════════════════════════ */
.completed-files { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.completed-files.hidden { display: none; }
.cf-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 12px 16px;
    transition: border-color 0.3s;
    animation: cf-slideIn 0.3s ease;
}
.cf-card:hover { border-color: rgba(52,211,153,0.3); }
.cf-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}
.cf-file-info {
    display: flex;
    align-items: center;
    gap: 8px;
}
.cf-icon { font-size: 1rem; }
.cf-filename {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--text-primary);
    max-width: 250px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cf-time {
    font-size: 0.7rem;
    color: var(--text-muted);
    font-family: 'Orbitron', monospace;
}
.cf-counts {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.cf-count {
    font-size: 0.75rem;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
}
.cf-count.cf-valid { color: #34d399; }
.cf-count.cf-risky { color: #fbbf24; }
.cf-count.cf-invalid { color: #f87171; }
.cf-count.cf-failed { color: #fb923c; }
.cf-total {
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-left: 4px;
}
.cf-export {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.cf-export-btn {
    padding: 4px 12px;
    border-radius: 5px;
    font-size: 0.7rem;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    border: 1px solid var(--border);
    background: var(--bg-secondary);
    color: var(--text-secondary);
    transition: all 0.2s;
}
.cf-export-btn:hover {
    border-color: rgba(99,102,241,0.3);
    background: rgba(99,102,241,0.06);
    color: var(--text-primary);
}
.cf-btn-valid:hover { border-color: rgba(52,211,153,0.4); color: #34d399; }
.cf-btn-invalid:hover { border-color: rgba(248,113,113,0.4); color: #f87171; }
.cf-btn-fail:hover { border-color: rgba(251,146,60,0.4); color: #fb923c; }
.cf-btn-all:hover { border-color: rgba(99,102,241,0.4); color: #818cf8; }
@keyframes cf-slideIn {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

.btn-download {
    background: rgba(16, 185, 129, 0.1);
    color: var(--success);
    border: 1px solid rgba(16, 185, 129, 0.3);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-download:hover {
    background: rgba(16, 185, 129, 0.2);
    border-color: var(--success);
}

/* ═════════════════════════════════════════ */
/* Compact Upload Zone                      */
/* ═════════════════════════════════════════ */
.upload-compact { padding: 0; }
.upload-compact h2 { display: none; }
.upload-zone-compact {
    border: 1px dashed var(--border);
    border-radius: var(--radius);
    padding: 10px 18px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    background: rgba(17, 24, 39, 0.3);
}
.upload-zone-compact:hover,
.upload-zone-compact.dragover {
    border-color: var(--accent);
    background: rgba(99, 102, 241, 0.05);
}
.upload-compact-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    pointer-events: none; /* Let parent uploadZone receive drag/drop events */
}
.upload-compact-inner .upload-browse-btn {
    pointer-events: auto; /* Re-enable clicks on Browse button */
}
}
.upload-compact-icon { font-size: 1.1rem; }
.upload-compact-text {
    font-size: 0.85rem;
    color: var(--text-muted);
}
.upload-browse-compact {
    padding: 4px 14px !important;
    font-size: 0.8rem !important;
    margin: 0 !important;
}

/* ═════════════════════════════════════════ */
/* Batch Progress                           */
/* ═════════════════════════════════════════ */
.live-monitor-card { }
.live-monitor-card.hidden { display: none; }

.batch-progress-bar {
    width: 100%;
    height: 14px;
    background: var(--bg-secondary);
    border-radius: 7px;
    overflow: hidden;
    border: 1px solid var(--border);
    margin-bottom: 10px;
}

.batch-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--accent), var(--purple), var(--success));
    background-size: 200% 100%;
    border-radius: 7px;
    transition: width 0.4s ease;
    animation: progressShimmer 2s ease infinite;
}

@keyframes progressShimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.batch-stats-row {
    display: flex;
    justify-content: space-between;
    font-size: 0.85rem;
    color: var(--text-secondary);
    margin-bottom: 14px;
}

.batch-stats-row span:first-child {
    font-weight: 700;
    font-size: 1.1rem;
    background: linear-gradient(135deg, var(--accent), var(--purple));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.batch-counts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.count-pill {
    padding: 4px 12px;
    border-radius: 16px;
    font-size: 0.8rem;
    font-weight: 600;
    border: 1px solid;
}

.count-pill.valid { background: rgba(16,185,129,0.1); border-color: rgba(16,185,129,0.25); color: var(--success); }
.count-pill.invalid { background: rgba(239,68,68,0.1); border-color: rgba(239,68,68,0.25); color: var(--danger); }
.count-pill.catchall { background: rgba(245,158,11,0.1); border-color: rgba(245,158,11,0.25); color: var(--warning); }
.count-pill.disposable { background: rgba(239,68,68,0.08); border-color: rgba(239,68,68,0.2); color: #f87171; }
.count-pill.role { background: rgba(168,85,247,0.1); border-color: rgba(168,85,247,0.25); color: var(--purple); }
.count-pill.unknown { background: rgba(138,146,176,0.1); border-color: rgba(138,146,176,0.2); color: var(--text-secondary); }

/* Per-File Jobs */
.jobs-list {
    margin-bottom: 16px;
}

.job-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    margin-bottom: 6px;
}

.job-item .job-info {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
}

.job-item .job-name {
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--text-primary);
    min-width: 120px;
}

.job-progress-bar {
    flex: 1;
    height: 8px;
    background: rgba(42, 49, 85, 0.5);
    border-radius: 4px;
    overflow: hidden;
    max-width: 200px;
}

.job-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--accent), var(--success));
    border-radius: 4px;
    transition: width 0.3s ease;
}

.job-percent {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--accent);
    min-width: 44px;
    text-align: right;
}

/* Live Feed */
.live-feed h3 {
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--text-secondary);
}

.live-entries {
    max-height: 160px;
    overflow-y: auto;
    font-size: 0.78rem;
    font-family: 'SF Mono', 'Fira Code', monospace;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 10px;
}

.live-entry {
    padding: 2px 0;
    color: var(--text-muted);
    animation: fadeIn 0.2s ease;
}

.live-entry .le-email { color: var(--text-secondary); }
.live-entry .le-status { font-weight: 600; margin-left: 8px; }
.le-status.VALID { color: var(--success); }
.le-status.INVALID { color: var(--danger); }
.le-status.DISPOSABLE { color: #f87171; }
.le-status.CATCH_ALL { color: var(--warning); }
.le-status.ROLE_BASED { color: var(--purple); }
.le-status.UNKNOWN { color: var(--text-muted); }

/* Table */
.table-wrap { overflow-x: auto; }

table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

thead th {
    text-align: left;
    padding: 10px 12px;
    color: var(--text-muted);
    font-weight: 500;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--border);
}

tbody td {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(42, 49, 85, 0.5);
    color: var(--text-secondary);
}

tbody tr:hover { background: var(--bg-card-hover); }

.empty-row td {
    text-align: center;
    color: var(--text-muted);
    padding: 30px;
}

.status-badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 4px;
    font-weight: 600;
    font-size: 0.78rem;
}

.status-badge.VALID { background: rgba(16, 185, 129, 0.15); color: var(--success); }
.status-badge.INVALID { background: rgba(239, 68, 68, 0.15); color: var(--danger); }
.status-badge.DISPOSABLE { background: rgba(239, 68, 68, 0.15); color: var(--danger); }
.status-badge.ROLE_BASED { background: rgba(245, 158, 11, 0.15); color: var(--warning); }
.status-badge.CATCH_ALL { background: rgba(245, 158, 11, 0.15); color: var(--warning); }
.status-badge.UNKNOWN { background: rgba(138, 146, 176, 0.15); color: var(--text-secondary); }

/* Stats */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.stat-item {
    text-align: center;
    padding: 16px;
    background: var(--bg-secondary);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
}

.stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    background: linear-gradient(135deg, var(--accent), var(--purple));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.stat-label {
    font-size: 0.78rem;
    color: var(--text-muted);
    margin-top: 4px;
}

/* Footer */
.footer {
    margin-top: auto;
    padding: 20px 0;
    display: flex;
    justify-content: space-between;
    font-size: 0.8rem;
    color: var(--text-muted);
    border-top: 1px solid var(--border);
}

.footer a {
    color: var(--accent);
    text-decoration: none;
}

.footer a:hover { text-decoration: underline; }

/* Animations */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(-5px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.loading { animation: pulse 1.5s infinite; }

/* ════════════════════════════════════════
   Live Monitor — Recessed Panel Gauges
   ════════════════════════════════════════ */

.live-monitor-card.card { padding:16px 12px 14px; }

/* Header */
.lm-hdr { display:flex; align-items:center; justify-content:space-between; padding:0 14px 10px; }
.lm-hdr-left { display:flex; align-items:center; gap:10px; }
.lm-hdr-dot { width:8px; height:8px; border-radius:50%; background:#22d3ee; box-shadow:0 0 12px #22d3ee; animation: lmPulse 2s infinite; }
.lm-hdr-title { font-family:'Orbitron',monospace; font-size:0.75rem; font-weight:700; letter-spacing:3.5px; color:#94a3b8; margin:0; }
@keyframes lmPulse { 0%,100%{opacity:1} 50%{opacity:0.35} }

/* Info strip */
.lm-info-strip { display:flex; gap:18px; padding:0 14px 14px; font-size:0.8rem; color:#475569; flex-wrap:wrap; align-items:center; }
.lm-info-item { display:flex; align-items:center; gap:6px; }
.lm-info-label { color:#64748b; font-size:0.75rem; }
.lm-info-val { font-family:'Orbitron',monospace; font-weight:600; color:#c8d0e0; font-size:0.82rem; letter-spacing:0.5px; }
.lm-info-val.lm-accent { color:#22d3ee; }
.lm-info-val.lm-warn { color:#fbbf24; }
.lm-info-divider { width:1px; height:16px; background:rgba(255,255,255,0.06); }

/* Recessed gauge tray */
.lm-gauge-tray {
    margin:0 8px 8px; padding:16px 14px; border-radius:14px;
    background:linear-gradient(180deg,rgba(0,0,0,0.25),rgba(0,0,0,0.12));
    border:1px solid rgba(255,255,255,0.04);
    box-shadow:inset 0 4px 16px rgba(0,0,0,0.4),inset 0 -1px 4px rgba(255,255,255,0.02);
    display:flex; justify-content:center; align-items:stretch; gap:10px;
}

/* Individual gauge well */
.lm-g-well {
    display:flex; flex-direction:column; align-items:center; padding:10px 4px 8px; border-radius:10px;
    background:linear-gradient(180deg,rgba(255,255,255,0.012),rgba(0,0,0,0.08));
    border:1px solid rgba(255,255,255,0.03);
    border-top:1px solid rgba(255,255,255,0.05);
    box-shadow:inset 0 1px 4px rgba(0,0,0,0.2),0 1px 2px rgba(255,255,255,0.01);
    position:relative;
}
.lm-g-well::after {
    content:''; position:absolute; top:0; left:20%; right:20%; height:1px; border-radius:1px;
    background:var(--well-accent,rgba(255,255,255,0.04));
}

.lm-w-sm { width:160px; }
.lm-w-lg { width:260px; }
.lm-w-xs { width:130px; }

.lm-g-label { font-family:'Orbitron',monospace; font-size:0.65rem; letter-spacing:2.5px; text-transform:uppercase; color:#94a3b8; margin-bottom:6px; font-weight:600; }
.lm-ico { margin-right:2px; }
.lm-t-valid .lm-ico { color:#34d399; }
.lm-t-risky .lm-ico { color:#fbbf24; }
.lm-t-speed .lm-ico { color:#22d3ee; }
.lm-t-invalid .lm-ico { color:#f87171; }
.lm-t-unknown .lm-ico { color:#fb923c; }
.lm-t-gmail .lm-ico { color:#60a5fa; }
.lm-g-well svg { width:100%; height:auto; display:block; }
.lm-g-fill { fill:none; stroke-linecap:round; transition:stroke-dasharray 0.6s cubic-bezier(0.4,0,0.2,1); }
.lm-g-needle { transition:transform 0.6s cubic-bezier(0.4,0,0.2,1); }
.lm-g-num { font-family:'Orbitron',monospace; font-weight:700; line-height:1; letter-spacing:0.5px; margin-top:4px; }
.lm-g-num-sm { font-size:1.7rem; }
.lm-g-num-lg { font-size:2.8rem; }
.lm-g-num-xs { font-size:1.35rem; }
.lm-g-unit { font-family:'Orbitron',monospace; font-size:0.55rem; letter-spacing:2px; color:#64748b; margin-top:4px; }

.lm-t-valid .lm-g-num { color:#34d399; text-shadow:0 0 16px rgba(52,211,153,0.35); }
.lm-t-risky .lm-g-num { color:#fbbf24; text-shadow:0 0 16px rgba(251,191,36,0.35); }
.lm-t-speed .lm-g-num { color:#22d3ee; text-shadow:0 0 20px rgba(34,211,238,0.4); }
.lm-t-invalid .lm-g-num { color:#f87171; text-shadow:0 0 16px rgba(248,113,113,0.35); }
.lm-t-unknown .lm-g-num { color:#fb923c; text-shadow:0 0 16px rgba(251,146,60,0.35); }
.lm-t-gmail .lm-g-num { color:#60a5fa; text-shadow:0 0 12px rgba(96,165,250,0.35); }

/* Separator */
.lm-sep { height:1px; margin:8px 14px; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.04),transparent); }

/* Progress */
.lm-prog { padding:12px 14px 8px; }
.lm-prog-row { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.lm-prog-lbl { font-family:'Orbitron',monospace; font-size:0.58rem; letter-spacing:2px; color:#475569; }
.lm-prog-scan { font-family:'Orbitron',monospace; font-size:0.82rem; color:#a78bfa; letter-spacing:0.5px; }
.lm-prog-pct { font-family:'Orbitron',monospace; font-size:0.82rem; color:#22d3ee; letter-spacing:0.5px; }
.lm-prog-track { height:5px; background:rgba(255,255,255,0.025); border-radius:3px; overflow:hidden; }
.lm-prog-fill { height:100%; border-radius:3px; background:linear-gradient(90deg,#06b6d4,#8b5cf6); box-shadow:0 0 14px rgba(99,102,241,0.3); transition:width 0.4s ease; }

/* Speed / ETA */
.lm-speed-eta { display:flex; justify-content:space-between; align-items:center; padding:8px 14px 8px; }
.lm-speed-chip {
    display:flex; align-items:center; gap:6px; padding:5px 14px; border-radius:7px;
    background:rgba(34,211,238,0.05); border:1px solid rgba(34,211,238,0.12);
    font-family:'Orbitron',monospace; font-size:0.7rem; color:#22d3ee; letter-spacing:0.5px; font-weight:600;
}
.lm-eta-text { font-family:'Orbitron',monospace; font-size:0.68rem; color:#64748b; letter-spacing:0.5px; }
.lm-eta-text b { color:#a78bfa; font-weight:600; }

/* Export actions */
.lm-actions { padding:0 14px 8px; }
.lm-actions.hidden { display:none; }
.lm-export-row {
    display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:8px 12px;
    background:rgba(255,255,255,0.015); border:1px solid rgba(255,255,255,0.035); border-radius:8px;
}
.lm-export-label { font-family:'Orbitron',monospace; font-size:0.45rem; letter-spacing:2px; color:#374151; }
.lm-export-opt {
    display:flex; align-items:center; gap:3px; padding:3px 10px; border-radius:5px;
    font-size:0.65rem; cursor:pointer; border:1px solid rgba(255,255,255,0.05);
    background:rgba(255,255,255,0.015); color:#6b7280; transition:all 0.15s;
}
.lm-export-opt:hover { border-color:rgba(99,102,241,0.25); color:#d1d5db; }
.lm-export-opt.selected { border-color:rgba(99,102,241,0.35); background:rgba(99,102,241,0.06); color:#c4b5fd; }
.lm-export-opt input { display:none; }
.lm-export-btn {
    margin-left:auto; padding:5px 14px; border-radius:6px;
    border:1px solid rgba(99,102,241,0.25); background:rgba(99,102,241,0.08);
    color:#a78bfa; font-family:'Orbitron',monospace; font-size:0.55rem;
    letter-spacing:0.5px; cursor:pointer; font-weight:600; transition:all 0.2s;
}
.lm-export-btn:hover { background:rgba(99,102,241,0.15); }

/* Live Feed */
.lm-live-feed { padding:8px 14px 14px; }
.lm-live-head { display:flex; align-items:center; gap:6px; margin-bottom:6px; }
.lm-live-dot { width:5px; height:5px; border-radius:50%; background:#f87171; box-shadow:0 0 6px #f87171; animation:lmPulse 1.2s infinite; }
.lm-live-title { font-family:'Orbitron',monospace; font-size:0.45rem; letter-spacing:2.5px; color:#4b5563; }
.lm-live-box {
    max-height:120px; overflow-y:auto;
    background:rgba(0,0,0,0.12); border:1px solid rgba(255,255,255,0.025);
    border-radius:6px; padding:6px 10px;
    font-family:'SF Mono','Fira Code',monospace; font-size:0.65rem; color:#4b5563;
}
.lm-live-box .live-entry { padding:1.5px 0; display:flex; gap:8px; }
.lm-live-box .le-email { color:#6b7280; min-width:170px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lm-live-box .le-status { font-weight:600; }
.lm-live-box .le-status.valid { color:#34d399; }
.lm-live-box .le-status.risky { color:#fbbf24; }
.lm-live-box .le-status.invalid { color:#f87171; }
.lm-live-box .le-status.failed { color:#fb923c; }
.lm-live-box::-webkit-scrollbar { width:4px; }
.lm-live-box::-webkit-scrollbar-track { background:transparent; }
.lm-live-box::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.06); border-radius:2px; }

/* Responsive */
@media (max-width: 640px) {
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
    .verify-input-row { flex-direction: column; }
    .header { flex-direction: column; gap: 12px; }
    .lm-gauge-tray { flex-wrap: wrap; gap: 8px; padding: 10px 6px; }
    .lm-w-sm { width: 140px; }
    .lm-w-lg { width: 210px; }
    .lm-w-xs { width: 115px; }
    .lm-g-num-sm { font-size: 1.15rem; }
    .lm-g-num-lg { font-size: 1.8rem; }
    .lm-export-row { flex-wrap: wrap; }
    .engine-bar { gap: 10px; padding: 8px 12px; font-size: 0.7rem; }
    .proxy-dashboard { flex-direction: column; overflow: hidden; }
    .pd-pool-section, .pd-speed-section, .pd-harvest-section, .pd-intel-section {
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,0.05);
        min-width: 0;
    }
    .gp-panel { margin: 8px 8px 4px; padding: 8px 10px; max-width: 100%; overflow-x: auto; box-sizing: border-box; }
    .gp-accounts { flex-direction: column; }
    .gp-card { font-size: 0.7rem; }
    .gp-add-form { padding: 10px; }
    .gp-add-form input, .gp-add-form textarea { font-size: 0.75rem; }
    .memory-bank-modal { width: 96%; padding: 12px; }
    .ic-cluster { overflow-x: auto; max-width: 100%; box-sizing: border-box; }
    .app { padding: 0 4px; overflow-x: hidden; }
}

/* ═════════════════════════════════════════ */
/* Memory Bank Button                       */
/* ═════════════════════════════════════════ */

.memory-bank-btn {
    background: linear-gradient(135deg, rgba(168,85,247,0.15), rgba(99,102,241,0.15));
    border: 1px solid rgba(168,85,247,0.4);
    color: var(--purple);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 0.78rem;
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: all 0.2s;
}

.memory-bank-btn:hover {
    background: linear-gradient(135deg, rgba(168,85,247,0.25), rgba(99,102,241,0.25));
    border-color: var(--purple);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(168,85,247,0.2);
}

/* ═════════════════════════════════════════ */
/* Export Filter Options                    */
/* ═════════════════════════════════════════ */

.export-filter-group {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
    width: 100%;
}

.export-filter-label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-muted);
    white-space: nowrap;
}

.export-filter-options {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.export-radio {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.78rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    color: var(--text-secondary);
}

.export-radio input[type="radio"] { display: none; }

.export-radio:hover {
    border-color: var(--accent);
    color: var(--text-primary);
}

.export-radio.selected {
    background: rgba(99,102,241,0.15);
    border-color: var(--accent);
    color: var(--accent);
    font-weight: 600;
}

/* ═════════════════════════════════════════ */
/* Modal Overlay                            */
/* ═════════════════════════════════════════ */

.modal-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.7);
    backdrop-filter: blur(4px);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
    animation: fadeIn 0.2s ease;
}

.modal-overlay.hidden { display: none; }

.modal-content {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    max-height: 85vh;
    overflow-y: auto;
}

.memory-bank-modal {
    width: 90%;
    max-width: 800px;
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    position: sticky;
    top: -24px;
    z-index: 2;
    background: var(--bg-card);
    padding: 16px 0 12px;
}

.modal-header h2 {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0;
}

.modal-close {
    background: none;
    border: 1px solid var(--border);
    color: var(--text-muted);
    font-size: 1.2rem;
    cursor: pointer;
    padding: 4px 10px;
    border-radius: 6px;
    transition: all 0.2s;
}

/* ════════════════════════════════════════
   Live Proxy Dashboard
   ════════════════════════════════════════ */

.proxy-dashboard {
    display: flex;
    align-items: stretch;
    gap: 0;
    padding: 0;
    background: linear-gradient(135deg, rgba(16,185,129,0.06), rgba(99,102,241,0.06), rgba(168,85,247,0.06));
    border: 1px solid rgba(16,185,129,0.18);
    border-radius: var(--radius);
    margin-bottom: 20px;
    overflow: hidden;
}

/* Section titles */
.pd-section-title {
    font-size: 0.6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--text-muted);
    margin-bottom: 8px;
}

/* ── Left: Proxy Pool ── */
.pd-pool-section {
    padding: 14px 18px;
    min-width: 155px;
    border-right: 1px solid rgba(255,255,255,0.05);
}

.pd-proxy-grid {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.pd-proxy-row {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
}

.pd-proxy-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.pd-proxy-dot.socks5 { background: var(--success); box-shadow: 0 0 4px rgba(16,185,129,0.4); }
.pd-proxy-dot.socks4 { background: var(--info); box-shadow: 0 0 4px rgba(59,130,246,0.4); }
.pd-proxy-dot.http { background: var(--warning); box-shadow: 0 0 4px rgba(245,158,11,0.4); }

.pd-proxy-type {
    color: var(--text-secondary);
    font-weight: 500;
    min-width: 50px;
}

.pd-proxy-count {
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.pd-proxy-count b {
    color: var(--text-primary);
    font-weight: 700;
}

.pd-pool-summary {
    margin-top: 8px;
    font-size: 0.68rem;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 4px;
}

.pd-pool-total {
    font-weight: 700;
    color: var(--success);
    font-size: 0.8rem;
}

.pd-pool-sep { opacity: 0.3; }

.pd-pool-p25 {
    margin-top: 4px;
    font-size: 0.6rem;
}

.pd-pool-p25-ok {
    color: var(--success);
    font-weight: 600;
}

.pd-pool-p25-none {
    color: var(--text-muted);
    opacity: 0.6;
}

.pd-pool-p25-scan {
    color: var(--accent);
    font-weight: 500;
    animation: pulse-soft 2s ease-in-out infinite;
}

@keyframes pulse-soft {
    0%, 100% { opacity: 0.6; }
    50% { opacity: 1; }
}

/* ── Center: Per-Provider Speed ── */
.pd-speed-section {
    flex: 1;
    padding: 14px 18px;
    border-right: 1px solid rgba(255,255,255,0.05);
    min-width: 200px;
}

.pd-speed-rows {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.pd-speed-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.7rem;
}

.pd-speed-label {
    min-width: 82px;
    color: var(--text-secondary);
    font-weight: 500;
    white-space: nowrap;
}

.pd-speed-src {
    font-size: 0.55rem;
    font-weight: 400;
    color: var(--text-muted);
    opacity: 0.7;
}

.pd-section-hint {
    font-weight: 400;
    opacity: 0.5;
    font-size: 0.55rem;
}

.pd-speed-bar-wrap {
    flex: 1;
    height: 6px;
    background: rgba(255,255,255,0.06);
    border-radius: 3px;
    overflow: hidden;
    min-width: 50px;
}

.pd-speed-bar {
    height: 100%;
    border-radius: 3px;
    width: 0%;
    transition: width 0.8s ease;
    min-width: 0;
}

.pd-speed-bar.gmail { background: var(--success); box-shadow: 0 0 4px rgba(16,185,129,0.3); }
.pd-speed-bar.ms { background: var(--info); box-shadow: 0 0 4px rgba(59,130,246,0.3); }
.pd-speed-bar.yahoo { background: var(--purple); box-shadow: 0 0 4px rgba(168,85,247,0.3); }
.pd-speed-bar.other { background: var(--text-muted); }

.pd-speed-val {
    font-weight: 700;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    min-width: 32px;
    text-align: right;
}

.pd-speed-unit {
    font-size: 0.6rem;
    color: var(--text-muted);
}

.pd-speed-total {
    margin-top: 8px;
    font-size: 0.72rem;
    color: var(--text-muted);
    text-align: right;
}

.pd-speed-total b {
    color: var(--text-primary);
    font-weight: 700;
    font-size: 0.85rem;
}

/* ── Right: Harvest Status (Continuous Mode) ── */
.pd-harvest-section {
    padding: 14px 18px;
    min-width: 150px;
    display: flex;
    flex-direction: column;
    align-items: center;
    border-right: 1px solid rgba(255,255,255,0.05);
}

.pd-harvest-status {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
    color: var(--text-secondary);
    margin-bottom: 8px;
}

.pd-harvest-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 14px;
    margin-bottom: 6px;
}

.pd-harvest-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
}

.pd-harvest-stat-val {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.pd-harvest-stat-label {
    font-size: 0.52rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    white-space: nowrap;
}

.pd-harvest-phase {
    font-size: 0.6rem;
    color: var(--text-muted);
    white-space: nowrap;
    min-height: 14px;
    transition: color 0.3s;
}

.pd-harvest-phase.active {
    color: var(--warning);
    animation: pulse 1.5s ease-in-out infinite;
}

/* Provider pool tags in harvester section */
.pd-harvest-providers {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    margin: 4px 0 2px;
}

.pd-prov-tag {
    font-size: 0.55rem;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: 3px;
    white-space: nowrap;
    letter-spacing: 0.02em;
}

.pd-prov-tag.gmail {
    background: rgba(16,185,129,0.15);
    color: #10b981;
    border: 1px solid rgba(16,185,129,0.3);
}

.pd-prov-tag.yahoo {
    background: rgba(139,92,246,0.15);
    color: #8b5cf6;
    border: 1px solid rgba(139,92,246,0.3);
}

.pd-prov-tag.ms {
    background: rgba(59,130,246,0.15);
    color: #3b82f6;
    border: 1px solid rgba(59,130,246,0.3);
}

.pd-prov-tag.german {
    background: rgba(245,158,11,0.15);
    color: #f59e0b;
    border: 1px solid rgba(245,158,11,0.3);
}

.pd-harvest-reval {
    font-size: 0.58rem;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    margin-top: 2px;
    opacity: 0.7;
}

/* Status dot */
.pd-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--text-muted);
    transition: background 0.3s, box-shadow 0.3s;
    flex-shrink: 0;
}

.pd-dot.live {
    background: var(--success);
    box-shadow: 0 0 8px rgba(16,185,129,0.6);
    animation: pulse 2s ease-in-out infinite;
}

.pd-dot.harvesting {
    background: var(--warning);
    box-shadow: 0 0 8px rgba(245,158,11,0.6);
    animation: pulse 1s ease-in-out infinite;
}

.pd-dot.offline {
    background: var(--danger);
    box-shadow: 0 0 6px rgba(239,68,68,0.4);
}

.pd-dot.connecting {
    background: var(--text-muted);
    animation: pulse 1.5s ease-in-out infinite;
}

/* Responsive: stack on small screens */
@media (max-width: 700px) {
    .proxy-dashboard {
        flex-direction: column;
    }
    .pd-pool-section, .pd-speed-section, .pd-harvest-section, .pd-intel-section {
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,0.05);
    }
    .pd-intel-section { border-bottom: none; }
}

/* ── Far Right: Smart Intelligence ── */
.pd-intel-section {
    padding: 14px 18px;
    min-width: 130px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.pd-intel-grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
    margin-bottom: 8px;
}

.pd-intel-row {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
}

.pd-intel-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.pd-intel-dot.gmail {
    background: var(--success);
    box-shadow: 0 0 4px rgba(16,185,129,0.5);
}

.pd-intel-dot.yahoo {
    background: #8b5cf6;
    box-shadow: 0 0 4px rgba(139,92,246,0.5);
}

.pd-intel-dot.ms {
    background: #3b82f6;
    box-shadow: 0 0 4px rgba(59,130,246,0.5);
}

.pd-intel-dot.general {
    background: var(--info);
    box-shadow: 0 0 4px rgba(59,130,246,0.4);
}

.pd-intel-dot.blacklist {
    background: var(--danger);
    box-shadow: 0 0 4px rgba(239,68,68,0.4);
}

.pd-intel-label {
    color: var(--text-secondary);
    font-weight: 500;
    flex: 1;
}

.pd-intel-val {
    font-weight: 700;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    min-width: 20px;
    text-align: right;
}

.pd-intel-total {
    font-size: 0.68rem;
    color: var(--text-muted);
    text-align: center;
    margin-top: auto;
}

.pd-intel-total b {
    color: var(--text-primary);
    font-weight: 700;
}

/* ===== INSTRUMENT CLUSTER (v8 Dashboard) ===== */
.ic-cluster{margin-bottom:20px;display:flex;flex-direction:column;align-items:center}
.ic-shell{padding:4px;border-radius:20px;background:conic-gradient(from 30deg,#282828,#4a4a4a,#777,#aaa,#ccc,#bbb,#999,#666,#444,#282828,#4a4a4a,#777,#aaa,#ccc,#bbb,#999,#666,#444,#282828);box-shadow:0 4px 20px rgba(0,0,0,0.5)}
.ic-shell-inner{padding:3px;border-radius:17px;background:linear-gradient(145deg,#1a1a1a,#2a2a2a,#1a1a1a);box-shadow:inset 0 1px 3px rgba(0,0,0,0.8)}
.ic-face{border-radius:14px;background:radial-gradient(ellipse at 50% 35%,#151b30,#0e1326 50%,#090d1a);box-shadow:inset 0 3px 15px rgba(0,0,0,0.6);position:relative;overflow:hidden;padding:10px 14px 12px;display:flex;flex-direction:column;gap:10px}
.ic-face::before{content:'';position:absolute;top:2%;left:15%;width:70%;height:12%;background:linear-gradient(180deg,rgba(255,255,255,0.03),transparent);border-radius:50%;pointer-events:none;z-index:10}
.ic-rv{position:absolute;width:5px;height:5px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#999,#555,#2a2a2a);box-shadow:inset 0 1px 0 rgba(255,255,255,0.4),0 1px 2px rgba(0,0,0,0.6);z-index:20}
.ic-rv-tl{top:6px;left:6px}.ic-rv-tr{top:6px;right:6px}.ic-rv-bl{bottom:6px;left:6px}.ic-rv-br{bottom:6px;right:6px}

/* Control bar: toggle + countdown */
.ic-control-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 4px;min-height:26px}
.ic-control-left{display:flex;align-items:center;gap:10px}
.ic-ctrl-label{font-size:8px;color:rgba(255,255,255,0.25);text-transform:uppercase;letter-spacing:2px;font-family:Consolas,monospace}
.ic-toggle{width:46px;height:22px;border-radius:11px;background:#0c1120;border:2px solid rgba(255,255,255,0.08);box-shadow:inset 0 2px 6px rgba(0,0,0,0.5);position:relative;cursor:pointer;transition:border-color 0.3s}
.ic-toggle.on{border-color:rgba(0,255,136,0.3)}
.ic-toggle-knob{position:absolute;top:2px;width:14px;height:14px;border-radius:50%;transition:left 0.25s,right 0.25s,background 0.3s}
.ic-toggle.on .ic-toggle-knob{right:2px;left:auto;background:conic-gradient(from 0deg,#0a4a2a,#00ff88,#6ee7b7,#00ff88,#0a4a2a);box-shadow:0 0 6px rgba(0,255,136,0.5)}
.ic-toggle:not(.on) .ic-toggle-knob{left:2px;right:auto;background:#333;box-shadow:none}
.ic-toggle-on,.ic-toggle-off{position:absolute;top:50%;transform:translateY(-50%);font-size:6.5px;font-family:Consolas,monospace;letter-spacing:1px;transition:opacity 0.2s}
.ic-toggle-on{left:5px;color:#00ff88;opacity:0}
.ic-toggle-off{right:4px;color:rgba(255,255,255,0.2);opacity:1}
.ic-toggle.on .ic-toggle-on{opacity:1}
.ic-toggle.on .ic-toggle-off{opacity:0}
.ic-toggle:not(.on) .ic-toggle-on{opacity:0}
.ic-toggle:not(.on) .ic-toggle-off{opacity:1}
.ic-led{width:6px;height:6px;border-radius:50%;background:#333;transition:all 0.3s}
.ic-led.on{background:#00ff88;box-shadow:0 0 6px #00ff88;animation:ic-blink 1.5s infinite}
.ic-led.starting{background:#f59e0b;box-shadow:0 0 6px #f59e0b;animation:ic-blink 0.5s infinite}
@keyframes ic-blink{0%,100%{opacity:1}50%{opacity:.35}}
.ic-status-text{font-size:10px;font-family:Consolas,monospace;letter-spacing:1px;transition:color 0.3s}
.ic-status-text.online{color:#00ff88;text-shadow:0 0 6px rgba(0,255,136,0.3)}
.ic-status-text.starting{color:#f59e0b;text-shadow:0 0 6px rgba(245,158,11,0.3)}
.ic-status-text.offline{color:rgba(255,255,255,0.2)}

/* Countdown */
.ic-countdown{font-family:Consolas,monospace;font-size:11px;color:#6ee7b7;text-shadow:0 0 8px rgba(0,255,136,0.3);letter-spacing:1px;text-align:center;flex:1;min-height:16px}
.ic-countdown.ready{color:#00ff88;font-weight:700;text-shadow:0 0 12px rgba(0,255,136,0.5);animation:ic-ready-glow 2s ease-in-out infinite}
@keyframes ic-ready-glow{0%,100%{text-shadow:0 0 12px rgba(0,255,136,0.5)}50%{text-shadow:0 0 20px rgba(0,255,136,0.8)}}

.ic-control-right{display:flex;align-items:center;gap:10px}
.ic-phase-text{font-size:8px;color:#f59e0b;font-family:Consolas,monospace;letter-spacing:0.5px;white-space:nowrap}
.ic-reval-text{font-size:8px;color:rgba(255,255,255,0.15);font-family:Consolas,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}

/* Gauges row */
.ic-gauges{display:flex;gap:0;justify-content:center}
.ic-g-div{width:1px;flex-shrink:0;background:linear-gradient(180deg,transparent 5%,rgba(255,255,255,0.03) 30%,rgba(255,255,255,0.06) 50%,rgba(255,255,255,0.03) 70%,transparent 95%)}
.ic-g{width:175px;display:flex;flex-direction:column;align-items:center;padding:0 6px}
.ic-g-name{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:2px;margin-bottom:2px;text-align:center;line-height:1}
.ic-g-api{font-size:5.5px;color:rgba(255,255,255,0.1);text-transform:uppercase;letter-spacing:1.2px;font-family:Consolas,monospace;margin-bottom:4px}
.ic-g-dial{width:130px;height:72px;position:relative;overflow:visible}
.ic-g-dial svg{width:130px;height:72px;display:block}
.ic-g-trk{fill:none;stroke:rgba(255,255,255,0.03);stroke-width:6;animation:ic-trk-pulse 4s ease-in-out infinite}
@keyframes ic-trk-pulse{0%,100%{stroke:rgba(255,255,255,0.03)}50%{stroke:rgba(255,255,255,0.06)}}
.ic-g-bar{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dasharray 0.8s ease,filter 1.5s ease;animation:ic-arc-breathe 3s ease-in-out infinite}
@keyframes ic-arc-breathe{0%,100%{opacity:1;filter:brightness(1)}50%{opacity:.85;filter:brightness(1.25)}}
.ic-g-dot{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;box-shadow:0 0 5px currentColor;animation:ic-dot-pulse 2.5s ease-in-out infinite}
@keyframes ic-dot-pulse{0%,100%{box-shadow:0 0 5px currentColor;transform:translateX(-50%) scale(1)}50%{box-shadow:0 0 12px currentColor;transform:translateX(-50%) scale(1.3)}}
.ic-g-val{font-size:30px;font-weight:900;font-family:Consolas,monospace;line-height:1;text-align:center;margin-top:2px;transition:transform 0.4s ease,text-shadow 0.8s ease}
.ic-g-lbl{font-size:6.5px;color:rgba(255,255,255,0.12);text-transform:uppercase;letter-spacing:1.5px;font-family:Consolas,monospace;text-align:center;margin-top:1px}
.ic-g-stats{display:flex;gap:6px;justify-content:center;margin-top:4px}
.ic-gs{text-align:center}
.ic-gs-v{font-size:9px;font-weight:800;font-family:Consolas,monospace;line-height:1.2}
.ic-gs-l{font-size:4.5px;color:rgba(255,255,255,0.1);text-transform:uppercase;letter-spacing:0.4px;font-family:Consolas,monospace}

/* Speed row */
.ic-speed-row{display:flex;align-items:center;justify-content:center;gap:18px;padding-top:8px;border-top:1px solid rgba(255,255,255,0.03)}
.ic-sp-dial{width:70px;height:40px;position:relative}
.ic-sp-dial svg{width:70px;height:40px;display:block}
.ic-sp-trk{fill:none;stroke:rgba(255,255,255,0.03);stroke-width:4}
.ic-sp-bar{fill:none;stroke-width:4;stroke-linecap:round;stroke:#00ff88;filter:drop-shadow(0 0 5px rgba(0,255,136,0.4));transition:stroke-dasharray 0.8s ease;animation:ic-sp-breathe 3.5s ease-in-out infinite}
@keyframes ic-sp-breathe{0%,100%{filter:drop-shadow(0 0 5px rgba(0,255,136,0.4))}50%{filter:drop-shadow(0 0 14px rgba(0,255,136,0.7))}}
.ic-sp-center{display:flex;flex-direction:column;align-items:center;gap:1px}
.ic-sp-label{font-size:6px;color:rgba(0,255,136,0.2);text-transform:uppercase;letter-spacing:2px;font-family:Consolas,monospace}
.ic-sp-val{font-size:32px;font-weight:900;font-family:Consolas,monospace;color:#6ee7b7;text-shadow:0 0 14px rgba(0,255,136,0.4);line-height:1;animation:ic-sp-val-breathe 3s ease-in-out infinite}
@keyframes ic-sp-val-breathe{0%,100%{text-shadow:0 0 14px rgba(0,255,136,0.4)}50%{text-shadow:0 0 24px rgba(0,255,136,0.65)}}
.ic-sp-unit{font-size:7px;color:rgba(0,255,136,0.2);text-transform:uppercase;letter-spacing:1.5px;font-family:Consolas,monospace;margin-top:1px}
.ic-sp-chips{display:flex;flex-direction:column;gap:2px}
.ic-sp-chip{display:flex;align-items:center;gap:5px}
.ic-sp-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0}
.ic-sp-name{font-size:7px;font-family:Consolas,monospace;color:rgba(255,255,255,0.18);text-transform:uppercase;letter-spacing:0.3px;width:50px}
.ic-sp-rate{font-size:9px;font-weight:700;font-family:Consolas,monospace}

/* Provider colors */
.ic-c-total .ic-g-name{color:#00ff88;text-shadow:0 0 8px rgba(0,255,136,0.4)}
.ic-c-total .ic-g-bar{stroke:#00ff88;filter:drop-shadow(0 0 4px rgba(0,255,136,0.5));animation-duration:3s}
.ic-c-total .ic-g-dot{color:#00ff88;background:#00ff88}
.ic-c-total .ic-g-val{color:#6ee7b7;text-shadow:0 0 10px rgba(0,255,136,0.25);animation:ic-val-glow-green 3.2s ease-in-out infinite}
@keyframes ic-val-glow-green{0%,100%{text-shadow:0 0 10px rgba(0,255,136,0.25)}50%{text-shadow:0 0 20px rgba(0,255,136,0.5)}}
.ic-c-total .ic-gs-v{color:#6ee7b7}

.ic-c-health .ic-g-name{color:#a5b4fc;text-shadow:0 0 8px rgba(129,140,248,0.4)}
.ic-c-health .ic-g-bar{stroke:#818cf8;filter:drop-shadow(0 0 4px rgba(129,140,248,0.5));animation-delay:0.5s;animation-duration:3.4s}
.ic-c-health .ic-g-dot{color:#818cf8;background:#818cf8;animation-delay:0.3s}
.ic-c-health .ic-g-val{color:#c4b5fd;text-shadow:0 0 10px rgba(129,140,248,0.25);animation:ic-val-glow-purple 3.6s ease-in-out infinite 0.5s}
@keyframes ic-val-glow-purple{0%,100%{text-shadow:0 0 10px rgba(129,140,248,0.25)}50%{text-shadow:0 0 20px rgba(129,140,248,0.5)}}
.ic-c-health .ic-gs-v{color:#c4b5fd}

.ic-c-gmail .ic-g-name{color:#f87171;text-shadow:0 0 8px rgba(239,68,68,0.4)}
.ic-c-gmail .ic-g-bar{stroke:#ef4444;filter:drop-shadow(0 0 4px rgba(239,68,68,0.5));animation-delay:1s;animation-duration:2.8s}
.ic-c-gmail .ic-g-dot{color:#ef4444;background:#ef4444;animation-delay:0.7s}
.ic-c-gmail .ic-g-val{color:#fca5a5;text-shadow:0 0 10px rgba(239,68,68,0.25);animation:ic-val-glow-red 3s ease-in-out infinite 1s}
@keyframes ic-val-glow-red{0%,100%{text-shadow:0 0 10px rgba(239,68,68,0.25)}50%{text-shadow:0 0 20px rgba(239,68,68,0.5)}}
.ic-c-gmail .ic-gs-v{color:#fca5a5}

.ic-c-ms .ic-g-name{color:#60a5fa;text-shadow:0 0 8px rgba(59,130,246,0.4)}
.ic-c-ms .ic-g-bar{stroke:#3b82f6;filter:drop-shadow(0 0 4px rgba(59,130,246,0.5));animation-delay:1.5s;animation-duration:3.2s}
.ic-c-ms .ic-g-dot{color:#3b82f6;background:#3b82f6;animation-delay:1.1s}
.ic-c-ms .ic-g-val{color:#93c5fd;text-shadow:0 0 10px rgba(59,130,246,0.25);animation:ic-val-glow-blue 3.4s ease-in-out infinite 1.5s}
@keyframes ic-val-glow-blue{0%,100%{text-shadow:0 0 10px rgba(59,130,246,0.25)}50%{text-shadow:0 0 20px rgba(59,130,246,0.5)}}
.ic-c-ms .ic-gs-v{color:#93c5fd}

.ic-c-yahoo .ic-g-name{color:#fbbf24;text-shadow:0 0 8px rgba(245,158,11,0.4)}
.ic-c-yahoo .ic-g-bar{stroke:#f59e0b;filter:drop-shadow(0 0 4px rgba(245,158,11,0.5));animation-delay:2s;animation-duration:2.6s}
.ic-c-yahoo .ic-g-dot{color:#f59e0b;background:#f59e0b;animation-delay:1.5s}
.ic-c-yahoo .ic-g-val{color:#fde68a;text-shadow:0 0 10px rgba(245,158,11,0.25);animation:ic-val-glow-amber 2.8s ease-in-out infinite 2s}
@keyframes ic-val-glow-amber{0%,100%{text-shadow:0 0 10px rgba(245,158,11,0.25)}50%{text-shadow:0 0 20px rgba(245,158,11,0.5)}}
.ic-c-yahoo .ic-gs-v{color:#fde68a}

/* Gmail PeopleStack Account Pool Panel */
.gp-panel{margin:8px 16px 4px;padding:10px 14px;background:rgba(0,0,0,0.35);border:1px solid rgba(239,68,68,0.15);border-radius:8px}
.gp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.gp-title{font-size:11px;font-weight:700;color:#f87171;text-transform:uppercase;letter-spacing:0.5px}
.gp-summary{font-size:10px;color:#a1a1aa;font-family:Consolas,monospace}
.gp-accounts{display:flex;gap:8px;flex-wrap:wrap;min-height:28px}
.gp-empty{font-size:10px;color:#52525b;font-style:italic;padding:4px 0}
.gp-card{display:flex;align-items:center;gap:6px;padding:5px 10px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:6px;transition:border-color 0.2s}
.gp-card:hover{border-color:rgba(239,68,68,0.3)}
.gp-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.gp-dot.active{background:#22c55e;box-shadow:0 0 6px rgba(34,197,94,0.6)}
.gp-dot.dead{background:#ef4444;box-shadow:0 0 6px rgba(239,68,68,0.6)}
.gp-dot.limited{background:#f59e0b;box-shadow:0 0 6px rgba(245,158,11,0.6)}
.gp-name{font-size:10px;font-weight:600;color:#e4e4e7;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gp-stats{font-size:9px;color:#71717a;font-family:Consolas,monospace}
.gp-btn-enable{font-size:9px;padding:2px 6px;background:rgba(239,68,68,0.2);border:1px solid rgba(239,68,68,0.4);color:#fca5a5;border-radius:4px;cursor:pointer;font-weight:600;transition:all 0.2s}
.gp-btn-enable:hover{background:rgba(239,68,68,0.4);border-color:#ef4444}
/* Add Account Section */
.gp-add-section{margin-top:8px;border-top:1px solid rgba(255,255,255,0.06);padding-top:8px}
.gp-add-toggle{font-size:10px;color:#71717a;background:none;border:1px dashed rgba(255,255,255,0.1);padding:4px 10px;border-radius:4px;cursor:pointer;transition:all 0.2s}
.gp-add-toggle:hover{color:#fca5a5;border-color:rgba(239,68,68,0.3)}
.gp-steps{margin-bottom:8px}
.gp-step{font-size:10px;color:#a1a1aa;padding:3px 0;display:flex;align-items:baseline;gap:6px}
.gp-step-num{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:rgba(239,68,68,0.2);color:#fca5a5;font-size:9px;font-weight:700;flex-shrink:0}
.gp-step code{background:rgba(255,255,255,0.08);padding:1px 4px;border-radius:3px;font-size:9px;color:#fca5a5}
.gp-input,.gp-textarea{width:100%;box-sizing:border-box;background:rgba(0,0,0,0.3);border:1px solid rgba(255,255,255,0.1);color:#e4e4e7;border-radius:4px;padding:6px 8px;font-size:10px;font-family:Consolas,monospace;margin-bottom:6px;resize:vertical}
.gp-input:focus,.gp-textarea:focus{outline:none;border-color:rgba(239,68,68,0.4)}
.gp-form-actions{display:flex;gap:6px}
.gp-btn{font-size:10px;padding:4px 12px;border-radius:4px;cursor:pointer;font-weight:600;border:1px solid;transition:all 0.2s}
.gp-btn-add{background:rgba(34,197,94,0.2);border-color:rgba(34,197,94,0.4);color:#86efac}
.gp-btn-add:hover{background:rgba(34,197,94,0.35)}
.gp-btn-cancel{background:transparent;border-color:rgba(255,255,255,0.1);color:#71717a}
.gp-btn-cancel:hover{color:#a1a1aa;border-color:rgba(255,255,255,0.2)}
.gp-form-msg{font-size:10px;margin-top:6px;padding:4px 8px;border-radius:4px}
.gp-form-msg.success{background:rgba(34,197,94,0.15);color:#86efac;border:1px solid rgba(34,197,94,0.3)}
.gp-form-msg.error{background:rgba(239,68,68,0.15);color:#fca5a5;border:1px solid rgba(239,68,68,0.3)}
.gp-add-form.hidden{display:none}
.gp-form-msg.hidden{display:none}

.modal-close:hover { color: var(--danger); border-color: var(--danger); }

/* Memory Bank Stats */
.mb-stats {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.mb-stat {
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 0.82rem;
    font-weight: 500;
    border: 1px solid var(--border);
}

.mb-stat.valid { background: rgba(16,185,129,0.08); border-color: rgba(16,185,129,0.3); color: var(--success); }
.mb-stat.invalid { background: rgba(239,68,68,0.08); border-color: rgba(239,68,68,0.3); color: var(--danger); }
.mb-stat.suppression { background: rgba(245,158,11,0.08); border-color: rgba(245,158,11,0.3); color: var(--warning); }

.mb-stat b { font-size: 1rem; }

/* Memory Bank Tabs */
.mb-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--border);
    padding-bottom: 8px;
}

.mb-tab {
    background: none;
    border: 1px solid transparent;
    color: var(--text-muted);
    padding: 8px 16px;
    border-radius: 8px 8px 0 0;
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
    transition: all 0.2s;
}

.mb-tab:hover { color: var(--text-primary); background: var(--bg-secondary); }

.mb-tab.active {
    background: var(--bg-secondary);
    border-color: var(--border);
    border-bottom-color: var(--bg-secondary);
    color: var(--accent);
    font-weight: 600;
}

/* Toolbar */
.mb-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    gap: 8px;
}

.mb-toolbar-left, .mb-toolbar-right { display: flex; gap: 8px; align-items: center; }

.mb-toolbar select {
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    color: var(--text-primary);
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.8rem;
    font-family: 'Inter', sans-serif;
}

.btn-sm {
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
    border: 1px solid;
    transition: all 0.2s;
}

.btn-export-sm {
    background: rgba(16,185,129,0.1);
    border-color: rgba(16,185,129,0.3);
    color: var(--success);
}
.btn-export-sm:hover { background: rgba(16,185,129,0.2); }

.btn-upload-sm {
    background: rgba(59,130,246,0.1);
    border-color: rgba(59,130,246,0.3);
    color: var(--info);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.btn-upload-sm:hover { background: rgba(59,130,246,0.2); }
.btn-upload-sm.hidden { display: none; }

/* Memory Bank Table */
.mb-table-wrap {
    overflow-x: auto;
    max-height: 400px;
    overflow-y: auto;
}

.mb-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.mb-table thead th {
    text-align: left;
    padding: 8px 10px;
    color: var(--text-muted);
    font-weight: 500;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    background: var(--bg-card);
    z-index: 1;
}

.mb-table tbody td {
    padding: 6px 10px;
    border-bottom: 1px solid rgba(42,49,85,0.3);
    color: var(--text-secondary);
}

.mb-table tbody tr:hover { background: var(--bg-card-hover); }

.mb-empty {
    text-align: center;
    color: var(--text-muted);
    padding: 30px !important;
}

.mb-source {
    background: rgba(99,102,241,0.1);
    border: 1px solid rgba(99,102,241,0.2);
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--accent);
}

.mb-date {
    font-size: 0.72rem;
    color: var(--text-muted);
}

.btn-delete-sm {
    background: none;
    border: 1px solid rgba(239,68,68,0.3);
    color: var(--danger);
    padding: 2px 8px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.75rem;
    transition: all 0.2s;
}

.btn-delete-sm:hover { background: rgba(239,68,68,0.15); }

/* Pagination */
.mb-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
}

.mb-pagination button {
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    color: var(--text-secondary);
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 0.78rem;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
    transition: all 0.2s;
}

.mb-pagination button:hover {
    border-color: var(--accent);
    color: var(--accent);
}

.mb-page-info {
    font-size: 0.78rem;
    color: var(--text-muted);
}

/* Scrollbar for modal */
.modal-content::-webkit-scrollbar { width: 6px; }
.modal-content::-webkit-scrollbar-track { background: transparent; }
.modal-content::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }

.mb-table-wrap::-webkit-scrollbar { width: 4px; }
.mb-table-wrap::-webkit-scrollbar-track { background: transparent; }
.mb-table-wrap::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }
