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

:root {
    --bg-primary: #0f172a;
    --bg-secondary: #1e293b;
    --bg-card: #1e293b;
    --border: #334155;
    --text-primary: #f1f5f9;
    --text-secondary: #94a3b8;
    --text-muted: #64748b;
    --accent: #818cf8;
    --accent-hover: #6366f1;
    --green: #4ade80;
    --red: #f87171;
    --yellow: #fbbf24;
    --orange: #fb923c;
    --radius: 8px;
    --transition: 150ms ease;
    /* Shared shell: logo ↔ last nav item ↔ page content ↔ footer */
    --ev-shell-max: 1280px;
    --ev-shell-pad: 28px;
}

@media (min-width: 1440px) {
    :root {
        --ev-shell-max: 1360px;
        --ev-shell-pad: 32px;
    }
}

html, body {
    overflow-x: hidden;
    max-width: 100vw;
}

img, svg, video, canvas, iframe, table {
    max-width: 100%;
}

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

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

/* Auth pages */
.ev-auth-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%);
    padding: 20px;
}

.ev-auth-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 40px;
    width: 100%;
    max-width: 420px;
}

.ev-auth-logo {
    text-align: center;
    margin-bottom: 32px;
}

.ev-auth-logo h1 {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--text-primary);
    margin-top: 8px;
}

.ev-auth-footer {
    text-align: center;
    margin-top: 24px;
    color: var(--text-secondary);
    font-size: 0.9rem;
}

/* Header */
.ev-header {
    background: rgba(15, 23, 42, 0.95);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 100;
}

.ev-header-inner {
    max-width: var(--ev-shell-max);
    margin: 0 auto;
    padding: 14px var(--ev-shell-pad);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.ev-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--text-primary);
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
}

.ev-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px 6px;
    flex-wrap: wrap;
    flex: 1;
    min-width: 0;
}

.ev-nav a,
.ev-nav-a {
    color: var(--text-secondary);
    padding: 8px 14px;
    border-radius: var(--radius);
    font-size: 0.9rem;
    font-weight: 500;
    transition: all var(--transition);
    white-space: nowrap;
    text-decoration: none;
}

.ev-nav a:hover,
.ev-nav-a:hover {
    color: var(--text-primary);
    background: rgba(255,255,255,0.05);
}

/* Dropdown */
.ev-dropdown {
    position: relative;
    display: inline-flex;
}
.ev-dropdown-toggle {
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    user-select: none;
}
.ev-dropdown-toggle::after {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    margin-top: 2px;
    transition: transform 0.15s;
}
.ev-dropdown.open .ev-dropdown-toggle::after {
    transform: rotate(180deg);
}
.ev-dropdown-menu {
    display: none !important;
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 4px;
    min-width: 210px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 6px;
    z-index: 200;
    box-shadow: 0 12px 40px rgba(0,0,0,0.35);
}
.ev-dropdown.open .ev-dropdown-menu {
    display: block !important;
}
.ev-dropdown-menu a {
    display: block !important;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 0.85rem;
    white-space: nowrap;
}
.ev-dropdown-menu a:hover {
    color: var(--text-primary);
    background: rgba(255,255,255,0.05);
}
.ev-dropdown-divider {
    height: 1px;
    background: var(--border);
    margin: 4px 8px;
}
.ev-dropdown-heading {
    padding: 6px 12px 4px;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
}

/* Main — same shell as header so content lines up logo → nav */
.ev-main {
    max-width: var(--ev-shell-max);
    margin: 0 auto;
    padding: 32px var(--ev-shell-pad);
}

.ev-container {
    max-width: 100%;
    width: 100%;
    margin: 0;
}

.ev-page-header {
    margin-bottom: 28px;
}

.ev-page-header h2 {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 4px;
}

.ev-page-header p { color: var(--text-secondary); }

/* Cards */
.ev-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    margin-bottom: 16px;
}

.ev-card h3 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 12px;
    color: var(--text-secondary);
}

/* Flash messages */
.ev-flash-container { margin-bottom: 20px; }

.ev-flash {
    padding: 12px 16px;
    border-radius: var(--radius);
    font-size: 0.9rem;
    margin-bottom: 8px;
    border: 1px solid;
}

.ev-flash-success {
    background: rgba(74, 222, 128, 0.1);
    border-color: rgba(74, 222, 128, 0.3);
    color: var(--green);
}

.ev-flash-error {
    background: rgba(248, 113, 113, 0.1);
    border-color: rgba(248, 113, 113, 0.3);
    color: var(--red);
}

.ev-flash-info {
    background: rgba(129, 140, 248, 0.1);
    border-color: rgba(129, 140, 248, 0.3);
    color: var(--accent);
}

/* Forms */
.ev-form-group {
    margin-bottom: 16px;
}

.ev-form-group label {
    display: block;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--text-secondary);
    margin-bottom: 6px;
}

.ev-form-group input, .ev-form-group textarea, .ev-form-group select {
    width: 100%;
    padding: 10px 14px;
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    color: var(--text-primary);
    font-size: 0.95rem;
    transition: border-color var(--transition);
    font-family: inherit;
}

.ev-form-group input:focus, .ev-form-group textarea:focus, .ev-form-group select:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(129, 140, 248, 0.15);
}

.ev-form-check {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    font-size: 0.9rem;
    color: var(--text-secondary);
}

/* Buttons */
.ev-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    border: none;
    border-radius: var(--radius);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition);
    text-decoration: none;
}

.ev-btn-primary {
    background: var(--accent);
    color: #fff;
}

.ev-btn-primary:hover { background: var(--accent-hover); color: #fff; }

.ev-btn-secondary {
    background: var(--bg-primary);
    color: var(--text-primary);
    border: 1px solid var(--border);
}

.ev-btn-secondary:hover { border-color: var(--accent); color: var(--accent); }

.ev-btn-outline {
    background: transparent;
    color: var(--text-secondary);
    border: 1px solid var(--border);
}

.ev-btn-outline:hover { border-color: var(--red); color: var(--red); }

.ev-btn-full { width: 100%; justify-content: center; }

.ev-btn-lg { padding: 14px 28px; font-size: 1rem; }

.ev-btn-sm { padding: 6px 12px; font-size: 0.8rem; }

/* Stats */
.ev-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}

.ev-stat-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px;
    text-align: center;
}

.ev-stat-value {
    font-size: 2rem;
    font-weight: 800;
    color: var(--text-primary);
}

.ev-stat-label {
    font-size: 0.8rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 4px;
}

.ev-stat-valid .ev-stat-value { color: var(--green); }
.ev-stat-invalid .ev-stat-value { color: var(--red); }
.ev-stat-catchall .ev-stat-value { color: var(--yellow); }
.ev-stat-disposable .ev-stat-value { color: var(--orange); }
.ev-stat-unknown .ev-stat-value { color: #6b7280; }
.ev-stat-risky .ev-stat-value { color: #d97706; }
.ev-stat-overquota .ev-stat-value { color: #f59e0b; }

.ev-actions {
    display: flex;
    gap: 12px;
    margin-bottom: 24px;
}

/* Single check */
.ev-single-form {
    display: flex;
    gap: 12px;
}

.ev-input-lg {
    flex: 1;
    padding: 14px 18px;
    background: var(--bg-primary);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    color: var(--text-primary);
    font-size: 1.05rem;
}

.ev-input-lg:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(129, 140, 248, 0.15);
}

/* Spinner */
.ev-spinner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 32px;
    color: var(--text-secondary);
}

.ev-spinner-icon {
    width: 28px;
    height: 28px;
    border: 3px solid var(--border);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

/* Result */
.ev-result {
    margin-top: 16px;
    padding: 20px 24px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
    display: none;
}

.ev-result-valid { display: block; background: rgba(74, 222, 128, 0.08); border-color: rgba(74, 222, 128, 0.3); }
.ev-result-risky { display: block; background: rgba(251, 191, 36, 0.08); border-color: rgba(251, 191, 36, 0.35); }
.ev-result-invalid { display: block; background: rgba(248, 113, 113, 0.08); border-color: rgba(248, 113, 113, 0.3); }
.ev-result-catch-all { display: block; background: rgba(251, 191, 36, 0.08); border-color: rgba(251, 191, 36, 0.3); }
.ev-result-disposable { display: block; background: rgba(251, 146, 60, 0.08); border-color: rgba(251, 146, 60, 0.3); }
.ev-result-unknown { display: block; background: rgba(148, 163, 184, 0.08); border-color: rgba(148, 163, 184, 0.3); }
.ev-result-error { display: block; background: rgba(248, 113, 113, 0.08); border-color: rgba(248, 113, 113, 0.3); }

.ev-result-status {
    font-size: 1.4rem;
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.ev-result-valid .ev-result-status { color: var(--green); }
.ev-result-risky .ev-result-status { color: var(--yellow); }
.ev-result-invalid .ev-result-status { color: var(--red); }
.ev-result-catch-all .ev-result-status { color: var(--yellow); }
.ev-result-disposable .ev-result-status { color: var(--orange); }
.ev-result-unknown .ev-result-status { color: var(--text-muted); }
.ev-result-error .ev-result-status { color: var(--red); }

.ev-result-reason { color: var(--text-secondary); margin-bottom: 8px; }

.ev-result-details {
    font-size: 0.85rem;
    color: var(--text-muted);
}

.ev-result-details div { margin-bottom: 2px; }

/* API key */
.ev-api-key {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 8px;
}

.ev-api-key code {
    flex: 1;
    background: var(--bg-primary);
    padding: 10px 14px;
    border-radius: var(--radius);
    font-size: 0.85rem;
    color: var(--accent);
    word-break: break-all;
}

.ev-text-muted {
    color: var(--text-muted);
    font-size: 0.85rem;
}

.ev-text-muted code {
    background: rgba(129, 140, 248, 0.1);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.8rem;
}

/* Table */
.ev-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

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

.ev-table td {
    padding: 10px 14px;
    border-bottom: 1px solid rgba(51, 65, 85, 0.5);
    color: var(--text-secondary);
    word-break: break-all;
}

.ev-table tr:hover td { background: rgba(255,255,255,0.02); }

/* Table scroll wrapper for mobile */
.ev-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Badges */
.ev-badge {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    white-space: nowrap;
}

.ev-badge-valid { background: rgba(74, 222, 128, 0.15); color: var(--green); }
.ev-badge-invalid { background: rgba(248, 113, 113, 0.15); color: var(--red); }
.ev-badge-catch_all { background: rgba(251, 191, 36, 0.15); color: var(--yellow); }
.ev-badge-disposable { background: rgba(251, 146, 60, 0.15); color: var(--orange); }
.ev-badge-unknown { background: rgba(148, 163, 184, 0.15); color: var(--text-muted); }

/* Bulk upload */
.ev-upload-zone {
    border: 2px dashed var(--border);
    border-radius: var(--radius);
    padding: 40px;
    text-align: center;
    cursor: pointer;
    transition: all var(--transition);
    position: relative;
}

.ev-upload-zone:hover, .ev-upload-zone.ev-dragover {
    border-color: var(--accent);
    background: rgba(129, 140, 248, 0.05);
}

.ev-upload-zone p {
    color: var(--text-secondary);
    margin-top: 12px;
}

.ev-upload-zone input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.ev-file-name {
    margin-top: 8px;
    font-size: 0.9rem;
    color: var(--accent);
    font-weight: 600;
    word-break: break-all;
}

/* Job status */
.ev-job-info {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.ev-job-info div { color: var(--text-secondary); word-break: break-all; }

.ev-status-pending { color: var(--yellow); }
.ev-status-processing { color: var(--accent); }
.ev-status-reverifying { color: var(--orange); font-weight: 600; }
.ev-status-completed { color: var(--green); }
.ev-status-failed { color: var(--red); }
.ev-status-waiting { color: var(--orange); }
.ev-status-paused { color: var(--orange); }

.ev-progress-bar {
    height: 6px;
    background: var(--bg-primary);
    border-radius: 3px;
    overflow: hidden;
}

.ev-progress-fill {
    height: 100%;
    background: var(--accent);
    border-radius: 3px;
    transition: width 1s ease;
}

/* Live table - dark theme */
.ev-live-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13px;
    min-width: 820px;
}

.ev-live-table thead th {
    background: rgba(51, 65, 85, 0.5);
    color: var(--text-muted);
    padding: 10px 16px;
    text-align: left;
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 1;
}

.ev-live-table thead th.ev-col-email   { min-width: 230px; }
.ev-live-table thead th.ev-col-status  { min-width: 100px; }
.ev-live-table thead th.ev-col-mx      { min-width: 230px; }
.ev-live-table thead th.ev-col-ip      { min-width: 135px; }
.ev-live-table thead th.ev-col-time    { min-width: 100px; }

.ev-live-table tbody td {
    padding: 10px 16px;
    border-bottom: 1px solid rgba(51, 65, 85, 0.3);
    word-break: break-word;
}

.ev-live-table tbody tr:last-child td {
    border-bottom: none;
}

.ev-live-table tbody tr {
    transition: background 0.2s;
}

.ev-live-table tbody tr:last-child {
    animation: fadeIn 0.3s ease;
}

.ev-live-table tbody tr:hover {
    background: rgba(255,255,255,0.03);
}

td.ev-live-status-valid { color: var(--green) !important; font-weight: 600; }
td.ev-live-status-invalid { color: var(--red) !important; font-weight: 600; }
td.ev-live-status-catch-all { color: var(--yellow) !important; font-weight: 600; }
td.ev-live-status-risky { color: var(--orange) !important; font-weight: 600; font-style: italic; }
td.ev-live-status-retry { color: var(--purple, #a855f7) !important; font-weight: 600; }
td.ev-live-status-disposable { color: var(--orange) !important; font-weight: 600; }
td.ev-live-status-unknown { color: var(--text-muted) !important; }
td.ev-live-status-error { color: var(--red) !important; }
td.ev-live-status-duplicate { color: var(--text-muted) !important; font-weight: 600; }
td.ev-live-status-skipped-role { color: var(--text-muted) !important; }
td.ev-live-status-skipped-free { color: var(--text-muted) !important; }


.ev-live-container {
    max-height: 600px;
    overflow-y: auto;
    overflow-x: auto;
    margin-top: 15px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg-primary);
    -webkit-overflow-scrolling: touch;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

.ev-live-counter {
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    color: var(--accent);
    margin: 10px 0;
}

.ev-status-note {
    text-align: center;
    font-size: 13px;
    color: var(--text-muted);
    margin: 8px 0;
    font-style: italic;
}

.ev-live-spinner {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(129,140,248,0.2);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
    margin-right: 6px;
    vertical-align: middle;
}

/* ================================================================ */
/* MOBILE RESPONSIVE                                                 */
/* ================================================================ */

@media (max-width: 768px) {
    :root {
        --ev-shell-pad: 16px;
    }

    /* Header */
    .ev-header-inner {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 10px var(--ev-shell-pad);
    }

    .ev-logo {
        font-size: 0.95rem;
    }

    .ev-logo svg {
        width: 24px;
        height: 24px;
    }

    .ev-nav {
        justify-content: center;
        gap: 4px;
    }

    .ev-nav a {
        padding: 6px 10px;
        font-size: 0.8rem;
    }

    /* Main content */
    .ev-main {
        padding: 16px var(--ev-shell-pad);
    }

    .ev-page-header h2 {
        font-size: 1.3rem;
    }

    .ev-page-header p {
        font-size: 0.85rem;
    }

    /* Cards */
    .ev-card {
        padding: 16px;
    }

    /* Stats */
    .ev-stats-grid {
        grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
        gap: 8px;
    }

    .ev-stat-card {
        padding: 14px 10px;
    }

    .ev-stat-value {
        font-size: 1.4rem;
    }

    .ev-stat-label {
        font-size: 0.7rem;
    }

    /* Actions */
    .ev-actions {
        flex-direction: column;
    }

    .ev-actions .ev-btn {
        width: 100%;
        justify-content: center;
    }

    /* Single check form */
    .ev-single-form {
        flex-direction: column;
    }

    .ev-input-lg {
        font-size: 1rem;
        padding: 12px 14px;
    }

    /* Upload zone */
    .ev-upload-zone {
        padding: 24px 16px;
    }

    .ev-upload-zone svg {
        width: 36px;
        height: 36px;
    }

    .ev-upload-zone p {
        font-size: 0.85rem;
    }

    /* API key */
    .ev-api-key {
        flex-direction: column;
        align-items: stretch;
    }

    .ev-api-key code {
        font-size: 0.75rem;
        padding: 8px 10px;
    }

    /* Buttons */
    .ev-btn {
        padding: 10px 16px;
        font-size: 0.85rem;
    }

    .ev-btn-lg {
        padding: 12px 20px;
        font-size: 0.9rem;
    }

    /* Auth */
    .ev-auth-card {
        padding: 24px 20px;
        margin: 0 10px;
    }

    .ev-auth-logo h1 {
        font-size: 1.3rem;
    }

    /* Tables */
    .ev-table th,
    .ev-table td {
        padding: 8px 10px;
        font-size: 0.8rem;
    }

    /* Job info */
    .ev-job-info {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .ev-job-info div {
        font-size: 0.85rem;
    }

    /* Live container */
    .ev-live-container {
        max-height: 400px;
        margin-left: -12px;
        margin-right: -12px;
        border-radius: 0;
    }

    .ev-card {
        padding: 12px;
    }

    .ev-main {
        padding: 12px 8px;
    }

    .ev-live-table {
        min-width: 650px;
    }

    .ev-live-table thead th {
        font-size: 0.65rem;
        padding: 8px 6px;
    }

    .ev-live-table tbody td {
        font-size: 0.7rem;
        padding: 6px 6px;
    }

    .ev-live-table thead th.ev-col-email   { min-width: 180px; }
    .ev-live-table thead th.ev-col-status  { min-width: 75px; }
    .ev-live-table thead th.ev-col-mx      { min-width: 180px; }
    .ev-live-table thead th.ev-col-ip      { min-width: 115px; }
    .ev-live-table thead th.ev-col-time    { min-width: 75px; }

    .ev-live-counter {
        font-size: 15px;
    }

    .ev-status-note {
        font-size: 11px;
    }
}

@media (max-width: 480px) {
    :root {
        --ev-shell-pad: 12px;
    }

    .ev-header-inner {
        padding: 8px var(--ev-shell-pad);
    }

    .ev-main {
        padding: 12px 8px;
    }

    .ev-card {
        padding: 12px;
        border-radius: 6px;
    }

    .ev-page-header h2 {
        font-size: 1.15rem;
    }

    /* Stats - 2 columns */
    .ev-stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 6px;
    }

    .ev-stat-value {
        font-size: 1.2rem;
    }

    /* Live — stacked card layout, ALL columns visible */
    .ev-live-container {
        max-height: none;
        overflow-x: hidden;
        overflow-y: auto;
        margin: 0;
        border-radius: 8px;
        border: 1px solid var(--border);
    }

    .ev-live-table {
        min-width: 0;
        border: none;
    }

    .ev-live-table thead {
        display: none;
    }

    .ev-live-table tbody tr {
        display: block;
        padding: 10px 12px;
        border-bottom: 1px solid rgba(51, 65, 85, 0.35);
    }

    .ev-live-table tbody tr:last-child {
        border-bottom: none;
    }

    .ev-live-table tbody td {
        display: block;
        padding: 2px 0;
        font-size: 0.75rem;
        border-bottom: none;
        word-break: break-word;
    }

    /* Cell labels for mobile card layout */
    .ev-live-table tbody td:nth-child(1)::before { content: "Email: ";    color: var(--text-muted); font-size: 0.65rem; text-transform: uppercase; }
    .ev-live-table tbody td:nth-child(2)::before { content: "Status: ";   color: var(--text-muted); font-size: 0.65rem; text-transform: uppercase; }
    .ev-live-table tbody td:nth-child(3)::before { content: "MX: ";       color: var(--text-muted); font-size: 0.65rem; text-transform: uppercase; }
    .ev-live-table tbody td:nth-child(4)::before { content: "Src IP: ";   color: var(--text-muted); font-size: 0.65rem; text-transform: uppercase; }
    .ev-live-table tbody td:nth-child(5)::before { content: "Time: ";     color: var(--text-muted); font-size: 0.65rem; text-transform: uppercase; }

    /* Status — keep color, slightly bigger */
    .ev-live-table tbody td:nth-child(2) {
        font-weight: 600;
        font-size: 0.8rem;
    }
}

/* ═══════════════════════════════════════════════════════════
   Pricing Page
   ═══════════════════════════════════════════════════════════ */
.ev-pricing-page { max-width: var(--ev-shell-max); margin: 0 auto; padding: 40px var(--ev-shell-pad); }
.ev-pricing-page h1 { text-align: center; font-size: 2rem; margin-bottom: 8px; }
.ev-pricing-sub { text-align: center; color: var(--text-muted); margin-bottom: 32px; font-size: 1rem; }
.ev-pricing-tabs { display: flex; justify-content: center; gap: 8px; margin-bottom: 32px; }
.ev-pricing-tabs .ev-tab { padding: 10px 24px; border: 1px solid var(--border); background: var(--surface); border-radius: 8px; cursor: pointer; font-size: 0.9rem; font-weight: 500; color: var(--text); transition: all 0.15s; }
.ev-pricing-tabs .ev-tab.active { background: var(--accent); color: #fff; border-color: var(--accent); }
.ev-pricing-tabs .ev-tab:hover:not(.active) { border-color: var(--accent); color: var(--accent); }
.ev-pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.ev-plan-card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 24px 20px; position: relative; transition: box-shadow 0.2s, transform 0.2s; }
.ev-plan-card:hover { box-shadow: 0 4px 24px rgba(0,0,0,0.08); transform: translateY(-2px); }
.ev-plan-popular { border-color: var(--accent); border-width: 2px; }
.ev-plan-card .ev-plan-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--accent); color: #fff; font-size: 0.7rem; padding: 3px 14px; border-radius: 999px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.ev-plan-card h3 { margin: 0 0 12px; font-size: 1.1rem; }
.ev-plan-price { margin-bottom: 12px; }
.ev-price-currency { font-size: 1.2rem; font-weight: 500; vertical-align: top; }
.ev-price-amount { font-size: 2rem; font-weight: 700; }
.ev-price-unit { font-size: 0.85rem; color: var(--text-muted); margin-left: 4px; }
.ev-plan-yearly { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 8px; }
.ev-plan-desc { font-size: 0.85rem; color: var(--text-muted); margin-bottom: 16px; }
.ev-plan-features { list-style: none; padding: 0; margin: 0 0 20px; font-size: 0.85rem; }
.ev-plan-features li { padding: 4px 0; }
.ev-plan-features li::before { content: '✓ '; color: var(--accent); font-weight: 700; }
.ev-btn-full { width: 100%; text-align: center; }

/* ── Payment method row ────────────────────────────────────────────────
   Card checkout (Lemon Squeezy) and PayPal sit side by side. PayPal keeps
   its brand gold so it reads as "the other way to pay".

   The card button stacks "Card" over the wallet names. Apple Pay and Google
   Pay are ways to *use* a card, not separate rails, so they belong on a
   quieter second line — run together on one line they read as a single long
   product name, which is what made the row look untidy.

   The faces are display:block so they stack whether the button ends up a
   flex column (here) or an inline-block (the landing plan cards). */
.ev-pay-row { display: flex; gap: 8px; align-items: stretch; }
.ev-pay-row .ev-btn {
    flex: 1 1 0;
    min-width: 0;
    padding-left: 12px;
    padding-right: 12px;
    font-size: 0.82rem;
    line-height: 1.25;
    text-align: center;
    justify-content: center;
}
/* Both buttons must be flex containers *here*, and the doubled class is
   deliberate: the landing page styles .ev-btn as inline-block, and that rule
   wins on source order at equal specificity. Flex layout then blockifies the
   button, so it stretches to the row height while its single line of text sits
   at the top — the PayPal wordmark ended up 24px above centre (9px above,
   33px below) inside a 61px button. Restating display here also keeps the
   wordmark centred on the landing page. */
.ev-pay-row .ev-btn.ev-btn-paypal,
.ev-pay-row .ev-btn.ev-btn-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.ev-pay-row .ev-btn-card {
    flex: 1.4 1 0;
    flex-direction: column;
    gap: 0;
    line-height: 1.15;
    padding-top: 5px;
    padding-bottom: 5px;
}
.ev-card-label { display: block; font-size: 0.86rem; font-weight: 700; }
/* Wraps on purpose. The plan cards are ~220px wide, so a side-by-side card
   button is only ~96px and its inner width ~72px, while
   "Apple Pay · Google Pay" on one line needs ~113px. Each name is nowrap'd
   (see .ev-wallet) so the break falls between the two names rather than
   inside one, and a full-width button — mobile, where the row stacks —
   fits both on a single line instead. */
.ev-card-wallets {
    display: block;
    font-size: 0.66rem;
    font-weight: 400;
    opacity: 0.82;
    letter-spacing: 0.15px;
    line-height: 1.2;
}
/* Keeps each wallet name whole so the line breaks between the two names
   rather than inside one ("Apple" / "Pay"). */
.ev-wallet { white-space: nowrap; }
.ev-pp-blue { font-style: italic; color: #009cde; }
/* The PayPal button sits in a form, so the form takes the button's place in
   the flex row and the button fills it. */
.ev-pay-row .ev-pp-form { display: flex; flex: 1 1 0; min-width: 0; margin: 0; }
.ev-pay-row .ev-pp-form .ev-btn-paypal { flex: 1 1 auto; width: 100%; }
.ev-btn-paypal { border: 0; cursor: pointer; font-family: inherit; }
.ev-btn-paypal { background: #ffc439; color: #003087; font-weight: 700; }
.ev-btn-paypal:hover { background: #f2b52c; color: #003087; }
.ev-pay-note { font-size: 0.72rem; color: var(--text-muted); margin-top: 8px; text-align: center; }
.ev-pay-secure { display: flex; align-items: center; justify-content: center; gap: 5px; }
@media (max-width: 520px) {
    .ev-pay-row { flex-direction: column; }
    .ev-pay-row .ev-btn { font-size: 0.85rem; }
}
.ev-pricing-footer { text-align: center; margin-top: 40px; padding: 20px 0; color: var(--text-muted); font-size: 0.85rem; border-top: 1px solid var(--border); }
.ev-pricing-footer a { color: var(--accent); }
.ev-plan-free { border-style: dashed; border-color: #22c55e; background: linear-gradient(135deg, rgba(34,197,94,0.04), rgba(34,197,94,0.01)); }
.ev-plan-free h3 { color: #16a34a; }
.ev-plan-free .ev-price-amount { color: #22c55e; }
.ev-plan-free .ev-btn-outline { background: #22c55e; color: #fff; border-color: #22c55e; font-weight: 600; }
.ev-plan-free .ev-btn-outline:hover { background: #16a34a; border-color: #16a34a; color: #fff; transform: scale(1.02); }
@media (max-width: 640px) {
    .ev-pricing-grid { grid-template-columns: 1fr; }
    .ev-pricing-page h1 { font-size: 1.5rem; }
    .ev-pricing-tabs .ev-tab { padding: 8px 16px; font-size: 0.82rem; }
}

/* ═══════════════════════════════════════════════════════════
   Footer
   ═══════════════════════════════════════════════════════════ */
.ev-footer {
    border-top: 1px solid var(--border);
    background: var(--bg-secondary);
    margin-top: 60px;
    padding: 32px 0;
}

.ev-footer-inner {
    max-width: var(--ev-shell-max);
    margin: 0 auto;
    padding: 0 var(--ev-shell-pad);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
}

.ev-footer-inner p {
    color: var(--text-muted);
    font-size: 0.85rem;
    margin: 0;
}

.ev-footer-links {
    display: flex;
    gap: 20px;
}

.ev-footer-links a {
    color: var(--text-muted);
    font-size: 0.85rem;
    text-decoration: none;
    transition: color var(--transition);
}

.ev-footer-links a:hover {
    color: var(--accent);
}

@media (max-width: 640px) {
    .ev-footer-inner {
        flex-direction: column;
        text-align: center;
    }
    .ev-footer-links {
        justify-content: center;
    }
}

/* Breadcrumb */
.ev-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--text-muted);
    margin-bottom: 12px;
}
.ev-breadcrumb a {
    color: var(--text-secondary);
    text-decoration: none;
}
.ev-breadcrumb a:hover {
    color: var(--accent);
}
.ev-breadcrumb-sep {
    color: var(--text-muted);
    opacity: 0.6;
    user-select: none;
}
.ev-breadcrumb-muted {
    color: var(--text-muted);
}
.ev-breadcrumb-current {
    color: var(--text-primary);
    font-weight: 500;
}

/* Dashboard hub */
.ev-hub {
    margin-bottom: 24px;
}
.ev-hub-intro {
    font-size: 0.88rem;
    color: var(--text-muted);
    margin: 0 0 16px;
}
.ev-hub-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}
.ev-hub-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
}
.ev-hub-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
}
.ev-hub-card-head h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
}
.ev-hub-tag {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--accent);
    background: rgba(129, 140, 248, 0.12);
    padding: 2px 8px;
    border-radius: 999px;
    white-space: nowrap;
}
.ev-hub-desc {
    font-size: 0.82rem;
    color: var(--text-muted);
    margin: 0 0 14px;
    line-height: 1.45;
}
.ev-hub-links {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: auto;
}
.ev-hub-link {
    display: block;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--text-secondary);
    text-decoration: none;
    border: 1px solid transparent;
    transition: all var(--transition);
}
.ev-hub-link:hover {
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--border);
}
.ev-hub-link-primary {
    background: var(--accent);
    color: #fff !important;
    border-color: var(--accent);
    font-weight: 600;
}
.ev-hub-link-primary:hover {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
    color: #fff !important;
}
